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;
public static function hash(_arg1:String):String{
var _local2:ByteArray = new ByteArray();
_local2.writeUTFBytes(_arg1);
return (hashBinary(_local2));
}
public static function hashBytes(_arg1:ByteArray):String{
return (hashBinary(_arg1));
}
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 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 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 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 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));
}
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));
}
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);
}
}
}//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 crcTable:Array;
private static var crcTableComputed:Boolean = false;
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);
}
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);
}
}
}//package com.adobe.images
Section 3
//JSON (com.adobe.serialization.json.JSON)
package com.adobe.serialization.json {
public class JSON {
public static function encode(_arg1:Object):String{
var _local2:JSONEncoder = new JSONEncoder(_arg1);
return (_local2.getString());
}
public static function decode(_arg1:String){
var _local2:JSONDecoder = new JSONDecoder(_arg1);
return (_local2.getValue());
}
}
}//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();
}
public function getValue(){
return (value);
}
private function nextToken():JSONToken{
return ((token = tokenizer.getNextToken()));
}
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);
}
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);
}
}
}//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);
}
public function getString():String{
return (jsonString);
}
private function convertToString(_arg1):String{
if ((_arg1 is String)){
return (escapeString((_arg1 as String)));
};
if ((_arg1 is Number)){
return ((isFinite((_arg1 as Number))) ? _arg1.toString() : "null");
} else {
if ((_arg1 is Boolean)){
return ((_arg1) ? "true" : "false");
} else {
if ((_arg1 is Array)){
return (arrayToString((_arg1 as Array)));
};
if ((((_arg1 is Object)) && (!((_arg1 == null))))){
return (objectToString(_arg1));
};
};
};
return ("null");
}
private function escapeString(_arg1:String):String{
var _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) + "]"));
}
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) + "}"));
}
}
}//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 _type:int;
private var _value:Object;
public function JSONToken(_arg1:int=-1, _arg2:Object=null){
_type = _arg1;
_value = _arg2;
}
public function get type():int{
return (_type);
}
public function set type(_arg1:int):void{
_type = _arg1;
}
public function get value():Object{
return (_value);
}
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 obj:Object;
private var jsonString:String;
private var loc:int;
private var ch:String;
public function JSONTokenizer(_arg1:String){
jsonString = _arg1;
loc = 0;
nextChar();
}
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 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 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);
}
private function nextChar():String{
return ((ch = jsonString.charAt(loc++)));
}
private function skipIgnored():void{
var _local1:int;
do {
_local1 = loc;
skipWhite();
skipComments();
} while (_local1 != loc);
}
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 skipWhite():void{
while (isWhiteSpace(ch)) {
nextChar();
};
}
private function isWhiteSpace(_arg1:String):Boolean{
return ((((((((_arg1 == " ")) || ((_arg1 == "\t")))) || ((_arg1 == "\n")))) || ((_arg1 == "\r"))));
}
private function isDigit(_arg1:String):Boolean{
return ((((_arg1 >= "0")) && ((_arg1 <= "9"))));
}
private function isHexDigit(_arg1:String):Boolean{
var _local2:String = _arg1.toUpperCase();
return (((isDigit(_arg1)) || ((((_local2 >= "A")) && ((_local2 <= "F"))))));
}
public function parseError(_arg1:String):void{
throw (new JSONParseError(_arg1, loc, jsonString));
}
}
}//package com.adobe.serialization.json
Section 9
//JSONTokenType (com.adobe.serialization.json.JSONTokenType)
package com.adobe.serialization.json {
public class JSONTokenType {
public static const UNKNOWN:int = -1;
public static const COMMA:int = 0;
public static const LEFT_BRACE:int = 1;
public static const RIGHT_BRACE:int = 2;
public static const LEFT_BRACKET:int = 3;
public static const RIGHT_BRACKET:int = 4;
public static const COLON:int = 6;
public static const TRUE:int = 7;
public static const FALSE:int = 8;
public static const NULL:int = 9;
public static const STRING:int = 10;
public static const NUMBER:int = 11;
}
}//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 rol(_arg1:int, _arg2:int):int{
return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2))));
}
public static function ror(_arg1:int, _arg2:int):uint{
var _local3:int = (32 - _arg2);
return (((_arg1 << _local3) | (_arg1 >>> (32 - _local3))));
}
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);
}
}
}//package com.adobe.utils
Section 11
//a (com.game.a)
package com.game {
import flash.media.*;
public dynamic class a extends Sound {
}
}//package com.game
Section 12
//a2 (com.game.a2)
package com.game {
import flash.media.*;
public dynamic class a2 extends Sound {
}
}//package com.game
Section 13
//b (com.game.b)
package com.game {
import flash.media.*;
public dynamic class b extends Sound {
}
}//package com.game
Section 14
//b2 (com.game.b2)
package com.game {
import flash.media.*;
public dynamic class b2 extends Sound {
}
}//package com.game
Section 15
//background (com.game.background)
package com.game {
import flash.display.*;
public dynamic class background extends MovieClip {
}
}//package com.game
Section 16
//block_blink2 (com.game.block_blink2)
package com.game {
import flash.media.*;
public dynamic class block_blink2 extends Sound {
}
}//package com.game
Section 17
//blockbreak1 (com.game.blockbreak1)
package com.game {
import flash.media.*;
public dynamic class blockbreak1 extends Sound {
}
}//package com.game
Section 18
//blockbreak2 (com.game.blockbreak2)
package com.game {
import flash.media.*;
public dynamic class blockbreak2 extends Sound {
}
}//package com.game
Section 19
//blockbreak3 (com.game.blockbreak3)
package com.game {
import flash.media.*;
public dynamic class blockbreak3 extends Sound {
}
}//package com.game
Section 20
//blockLand1 (com.game.blockLand1)
package com.game {
import flash.media.*;
public dynamic class blockLand1 extends Sound {
}
}//package com.game
Section 21
//blockLand2 (com.game.blockLand2)
package com.game {
import flash.media.*;
public dynamic class blockLand2 extends Sound {
}
}//package com.game
Section 22
//blockLandPoof (com.game.blockLandPoof)
package com.game {
import flash.display.*;
import fl.motion.*;
public class blockLandPoof extends MovieClip {
var tileWidth;// = 30
var alphaTint:Number;// = 0.5
var colorTint:Number;
public function blockLandPoof(_arg1:Number, _arg2:Number, _arg3:Number){
addFrameScript(21, frame22);
x = _arg1;
y = _arg2;
alpha = 0.5;
var _local4:Number = 0;
var _local5:Number = 0;
colorTint = _arg3;
tint();
}
public function tint(){
var _local1:Color = new Color();
_local1.setTint(colorTint, alphaTint);
this.transform.colorTransform = _local1;
}
function frame22(){
stop();
}
}
}//package com.game
Section 23
//blockLift1 (com.game.blockLift1)
package com.game {
import flash.media.*;
public dynamic class blockLift1 extends Sound {
}
}//package com.game
Section 24
//blockLift2 (com.game.blockLift2)
package com.game {
import flash.media.*;
public dynamic class blockLift2 extends Sound {
}
}//package com.game
Section 25
//breakPoof (com.game.breakPoof)
package com.game {
import flash.display.*;
import fl.motion.*;
public class breakPoof extends MovieClip {
var tileWidth;// = 30
var alphaTint:Number;// = 0.5
var colorTint:Number;
public function breakPoof(_arg1:Number, _arg2:Number, _arg3:Number){
addFrameScript(28, frame29);
x = ((_arg1 * tileWidth) + (tileWidth / 2));
y = ((_arg2 * tileWidth) + (tileWidth / 2));
alpha = 0.5;
rotation = (Math.random() * 360);
scaleX = (scaleY = 0.7);
var _local4:Number = 0;
var _local5:Number = 0;
colorTint = _arg3;
tint();
}
public function tint(){
var _local1:Color = new Color();
_local1.setTint(colorTint, alphaTint);
this.transform.colorTransform = _local1;
}
function frame29(){
stop();
}
}
}//package com.game
Section 26
//c (com.game.c)
package com.game {
import flash.media.*;
public dynamic class c extends Sound {
}
}//package com.game
Section 27
//c2 (com.game.c2)
package com.game {
import flash.media.*;
public dynamic class c2 extends Sound {
}
}//package com.game
Section 28
//char (com.game.char)
package com.game {
import flash.display.*;
import flash.geom.*;
public class char extends MovieClip {
public var charHolder:MovieClip;
var myParent:MovieClip;
var myStart:Array;
var suicide:Boolean;
var suicideCount:Number;// = 0
var suicideBam:Number;// = 120
var xSpeed:Number;// = 0
var ySpeed:Number;// = 0
var fallSpeed:Number;// = 1
var speed:Number;// = 4
var slowSpeed:Number;// = 2
var fastDes:Number;// = 0.6
var slowDes:Number;// = 0.8
var slowPush:Boolean;// = false
var slowTar:Number;
var SpeedDes:Number;
var charWidth:Number;// = 10
var charHeight:Number;// = 25
var TL:Boolean;
var TR:Boolean;
var BL:Boolean;
var BR:Boolean;
var xTileLeft:Number;
var xTileRight:Number;
var yTileTop:Number;
var yTileBottom:Number;
var xTile:Number;
var yTile:Number;
var tileWidth:Number;// = 30
var checkWidth:Number;// = 28
var tileHeight:Number;// = 30
var winAnimation:Boolean;// = false
var win:Boolean;// = false
var kill:Boolean;// = false
var key:Boolean;// = false
var tele:Boolean;// = false
var telePage:Number;
var teleX:Number;
var teleY:Number;
var teleCount:Number;// = 0
var teleSet:Number;// = 23
var isTele:Boolean;// = false
var isFlip:Boolean;// = false
var jumping:Boolean;// = false
var jumpSpeed:Number;// = -11.8
var slowJumpSpeed:Number;// = -8.5
var landCount:Number;// = 6
var pushCount:Number;// = 0
var pushStart:Number;// = 20
var pushDir:String;// = "lift"
var arrayTile:Number;
var pushDustCount:Number;// = 0
var pushDustMake:Number;// = 6
var finalX:Number;
var finalY:Number;
var finalRot:Number;
var winCount:Number;// = 0
var winCast:Number;// = 35
var isDead:Boolean;// = false
public var deadCount:Number;// = 0
var deadCast:Number;// = 50
var charStart:Boolean;// = true
var startCount:Number;// = 0
var startCast:Number;// = 20
var sleepStart:Boolean;// = false
var sleepCount:Number;// = 0
var sleepCast:Number;// = 65
var stepCount:Number;// = 0
var stepCast:Number;// = 8
var stepCastSlow:Number;// = 13
var stepCastSlowLift:Number;// = 10
public function char(_arg1:MovieClip, _arg2:Array){
SpeedDes = fastDes;
super();
addFrameScript(0, frame1);
myParent = _arg1;
myStart = _arg2;
xTile = Math.floor((x / tileWidth));
yTile = Math.floor((y / tileHeight));
startChar();
}
public function moveChar():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Boolean;
var _local7:*;
var _local8:*;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Boolean;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
if (y < 22){
y = 22;
ySpeed = 0;
};
if (charStart){
if (myParent.tileArray[((myParent.mapWidth * (yTile + 1)) + xTile)].isWalkable()){
if (charHolder.currentFrame != 21){
charHolder.gotoAndStop(21);
};
} else {
if (charHolder.currentFrame != 20){
charHolder.gotoAndStop(20);
};
};
if (startCount < startCast){
startCount++;
} else {
charStart = false;
};
} else {
if (sleepStart){
if (charHolder.currentFrame != 23){
charHolder.gotoAndStop(23);
};
if (sleepCount < sleepCast){
sleepCount++;
} else {
if (myParent.myParent.gameState == "play"){
myParent.myParent._sharedObj.data.skipInfo.push(myParent.myParent.currentLevel);
} else {
myParent.myParent._sharedObj.data.skipInfoM.push(myParent.myParent.currentLevel);
};
myParent.mapBeat = true;
myParent.startTrans();
};
} else {
if (suicide){
if (charHolder.currentFrame != 15){
charHolder.gotoAndStop(15);
};
if (suicideCount > suicideBam){
suicide = false;
suicideCount = 0;
if ((((myParent.myParent.currentLevel >= 32)) && ((myParent.myParent.gameState == "play")))){
myParent.stopStaticFX();
myParent.myParent.gotoAndStop("intro");
} else {
myParent.resetMap();
};
} else {
suicideCount++;
};
} else {
if (isDead){
if (deadCount == 0){
myParent.playSoundFX("deathSound");
};
if (charHolder.currentFrame != 19){
charHolder.gotoAndStop(19);
};
if (deadCount < deadCast){
deadCount++;
} else {
deadCount = 0;
isDead = false;
myParent.resetMap();
};
} else {
if (winAnimation){
x = ((finalX * tileWidth) + (tileWidth / 2));
y = ((finalY * tileWidth) + (tileWidth / 2));
if (myParent.grav){
rotation = finalRot;
} else {
rotation = (finalRot - 180);
};
xSpeed = 0;
ySpeed = 0;
if (charHolder.currentFrame < 16){
_local1 = Math.random();
if (_local1 < 0.33){
charHolder.gotoAndStop(16);
} else {
if (_local1 < 0.66){
charHolder.gotoAndStop(17);
} else {
charHolder.gotoAndStop(18);
};
};
};
if (winCount < winCast){
winCount++;
} else {
if (myParent.myParent.gameState == "edit"){
myParent.mapBeat = true;
myParent.endScreen = "submit";
myParent.resetMap();
charHolder.gotoAndStop(1);
winAnimation = false;
} else {
if (myParent.myParent.gameState == "play"){
if (myParent.myParent.currentLevel >= 32){
myParent.resetMap();
} else {
myParent.mapBeat = true;
myParent.startTrans();
_local8 = 0;
while (_local8 < myParent.myParent._sharedObj.data.skipInfo.length) {
if (myParent.myParent._sharedObj.data.skipInfo[_local8] == myParent.myParent.currentLevel){
myParent.myParent._sharedObj.data.skipInfo.splice(_local8, 1);
};
_local8++;
};
};
} else {
if (myParent.myParent.gameState == "play2"){
myParent.mapBeat = true;
myParent.startTrans();
} else {
if (myParent.myParent.gameState == "multi"){
myParent.mapBeat = true;
myParent.exit();
} else {
if (myParent.myParent.gameState == "multiC"){
myParent.mapBeat = true;
myParent.startTrans();
} else {
if (myParent.myParent.gameState == "single"){
myParent.mapBeat = true;
myParent.exit();
};
};
};
};
};
};
};
} else {
getMyCenter(x, y);
if (((win) && ((myParent.totalKey <= 0)))){
if ((((((myParent.myParent.currentLevel >= 32)) && ((y < 150)))) && ((myParent.myParent.gameState == "play")))){
myParent.stopStaticFX();
myParent.myParent.gotoAndStop("endVid");
} else {
if ((((myParent.myParent.currentLevel2 >= 32)) && ((myParent.myParent.gameState == "play2")))){
myParent.stopStaticFX();
myParent.myParent.gotoAndStop("endVid3");
} else {
myParent.playSoundFX("levelEnd");
winAnimation = true;
finalX = xTile;
finalY = yTile;
finalRot = myParent.tileArray[((myParent.mapWidth * finalY) + finalX)].rotation;
};
};
};
getFlip();
getTele(x, y);
if (!tele){
isTele = false;
} else {
if (slowPush){
myParent.sliderHolder[slowTar].teleCount = isTele;
myParent.sliderHolder[slowTar].teleCount = 0;
};
};
if (((tele) && (!(isTele)))){
x = ((teleX * tileWidth) + (tileWidth / 2));
y = ((teleY * tileHeight) + (tileHeight / 2));
_local2 = Math.ceil((Math.random() * 2));
myParent.playSoundFX(("warp" + _local2));
if (slowPush){
myParent.sliderHolder[slowTar].currentLayer = telePage;
myParent.sliderHolder[slowTar].moveSlider();
myParent.sliderHolder[slowTar].moveSlider();
};
isTele = true;
portalPop();
myParent.removeMap();
myParent.offsetInc(telePage);
myParent.buildMap(telePage);
myParent.setActive();
};
getKey(x, y);
if (slowPush){
landCount = 10;
if (pushDir == "lift"){
if ((((((ySpeed > fallSpeed)) && (myParent.grav))) || ((((ySpeed < -(fallSpeed))) && (!(myParent.grav)))))){
landCount = 0;
if (charHolder.currentFrame != 12){
charHolder.gotoAndStop(12);
};
} else {
if (jumping){
if (charHolder.currentFrame != 11){
charHolder.gotoAndStop(11);
};
} else {
if ((((xSpeed > 1)) || ((xSpeed < -1)))){
if (charHolder.currentFrame != 10){
charHolder.gotoAndStop(10);
};
} else {
if (charHolder.currentFrame != 9){
charHolder.gotoAndStop(9);
};
};
};
};
} else {
if (charHolder.currentFrame != 13){
charHolder.gotoAndStop(13);
};
};
} else {
if ((((((ySpeed > fallSpeed)) && (myParent.grav))) || ((((ySpeed < -(fallSpeed))) && (!(myParent.grav)))))){
landCount = 0;
if (charHolder.currentFrame != 4){
charHolder.gotoAndStop(4);
};
} else {
if (jumping){
if (charHolder.currentFrame != 3){
charHolder.gotoAndStop(3);
};
} else {
if (((!(BR)) || (!(BL)))){
if (charHolder.currentFrame != 5){
landCount = 10;
charHolder.gotoAndStop(5);
};
} else {
if ((((xSpeed > 1)) || ((xSpeed < -1)))){
if (((!(jumping)) && ((landCount <= 9)))){
landCount++;
if (charHolder.currentFrame != 7){
charHolder.gotoAndStop(7);
landCount = 0;
};
} else {
if (charHolder.currentFrame != 2){
landCount = 10;
charHolder.gotoAndStop(2);
};
};
} else {
if (myParent.myParent.upLook){
if (charHolder.currentFrame != 8){
landCount = 10;
charHolder.gotoAndStop(8);
};
} else {
if (((!(jumping)) && ((landCount <= 6)))){
landCount++;
if (landCount > 6){
landCount = 10;
};
if (charHolder.currentFrame != 6){
charHolder.gotoAndStop(6);
landCount = 0;
};
} else {
if (charHolder.currentFrame != 1){
landCount = 10;
charHolder.gotoAndStop(1);
};
};
};
};
};
};
};
};
if (myParent.myParent.rightMove){
scaleX = 1;
} else {
if (myParent.myParent.leftMove){
scaleX = -1;
};
};
if (myParent.grav){
_local3 = 1;
} else {
_local3 = -1;
};
getMyCorners(x, (y - _local3));
if (((((((!(TR)) && (!(TL)))) && (!(BL)))) && (!(BR)))){
isDead = true;
} else {
if (((!(BL)) && (!(BR)))){
ySpeed = 0;
y = (((yTileBottom * tileHeight) - (charHeight / 2)) - 0.01);
} else {
if (((!(TL)) && (!(TR)))){
ySpeed = 0;
y = ((((yTileTop + 1) * tileHeight) + (charHeight / 2)) + 0.01);
} else {
if (((!(TR)) && (!(BR)))){
x = (((xTileRight * tileWidth) - (charWidth / 2)) - 0.01);
} else {
if (((!(TL)) && (!(BL)))){
x = ((((xTileLeft + 1) * tileWidth) + (charWidth / 2)) + 0.01);
};
};
};
};
};
if (slowPush){
if (pushDir != "lift"){
if (xSpeed > 0){
if (pushDustCount > pushDustMake){
spawnPushDust();
pushDustCount = 0;
} else {
pushDustCount++;
};
} else {
if (xSpeed < 0){
if (pushDustCount > pushDustMake){
spawnPushDust();
pushDustCount = 0;
} else {
pushDustCount++;
};
};
};
};
};
if (myParent.myParent.leftMove){
if (!slowPush){
xSpeed = (xSpeed - speed);
} else {
xSpeed = (xSpeed - slowSpeed);
if (pushDir == "right"){
slideBreak();
};
};
};
if (myParent.myParent.rightMove){
if (!slowPush){
xSpeed = (xSpeed + speed);
} else {
xSpeed = (xSpeed + slowSpeed);
if (pushDir == "left"){
slideBreak();
};
};
};
xSpeed = (xSpeed * SpeedDes);
getMyDeath();
if (kill){
isDead = true;
};
xTile = Math.floor((x / tileWidth));
yTile = Math.floor((y / tileHeight));
getMyCorners(x, (y + ySpeed));
if (ySpeed < 0){
if (((TL) && (TR))){
} else {
y = ((yTile * tileHeight) + (charHeight / 2));
if ((((ySpeed < -5)) && (!(myParent.grav)))){
spawnDust();
};
ySpeed = 0;
if (!myParent.grav){
jumping = false;
};
};
} else {
if (ySpeed > 0){
if (((BL) && (BR))){
} else {
y = ((((yTile + 1) * tileHeight) - (charHeight / 2)) - 0.01);
if ((((ySpeed > 5)) && (myParent.grav))){
spawnDust();
};
ySpeed = 0;
if (myParent.grav){
jumping = false;
};
};
};
};
if ((((xSpeed < 0.001)) && ((xSpeed > -0.001)))){
xSpeed = 0;
stepCount = 0;
} else {
if ((((xSpeed > 2.5)) || ((xSpeed < -2.5)))){
if (ySpeed == 0){
if (slowPush){
if (pushDir == "lift"){
if (stepCount > stepCastSlowLift){
_local2 = Math.ceil((Math.random() * 4));
myParent.playSoundFX(("walk" + _local2));
stepCount = 0;
} else {
stepCount++;
};
} else {
if (stepCount > stepCastSlow){
_local2 = Math.ceil((Math.random() * 4));
myParent.playSoundFX(("walk" + _local2));
stepCount = 0;
} else {
stepCount++;
};
};
} else {
if (stepCount > stepCast){
_local2 = Math.ceil((Math.random() * 4));
myParent.playSoundFX(("walk" + _local2));
stepCount = 0;
} else {
stepCount++;
};
};
};
};
};
getMyCorners((x + xSpeed), y);
if (xSpeed < 0){
if (((TL) && (BL))){
} else {
x = ((xTile * tileWidth) + (charWidth / 2));
xSpeed = 0;
};
} else {
if (xSpeed > 0){
if (((TR) && (BR))){
} else {
x = ((((xTile + 1) * tileWidth) - (charWidth / 2)) - 0.01);
xSpeed = 0;
};
};
};
if (slowPush){
if (pushDir == "lift"){
if (myParent.grav){
_local5 = 25;
} else {
_local5 = -25;
};
_local4 = 0;
} else {
if (myParent.grav){
_local5 = 2.5;
} else {
_local5 = -2.5;
};
if (pushDir == "left"){
_local4 = 25;
} else {
_local4 = -25;
};
};
getMyBoxCorners((x - _local4), ((y + ySpeed) - _local5));
if (ySpeed < 0){
if (((TL) && (TR))){
} else {
y = ((yTile * tileHeight) + (charHeight / 2));
ySpeed = 0;
};
} else {
if (ySpeed > 0){
if (((BL) && (BR))){
} else {
y = ((((yTile + 1) * tileHeight) - (charHeight / 2)) - 0.01);
ySpeed = 0;
};
};
};
getMyBoxCorners(((x + xSpeed) - _local4), (y - _local5));
if (myParent.grav){
if (((!(BL)) && (BR))){
x = ((xTile * tileWidth) + (checkWidth / 2));
xSpeed = 0;
};
if (((BL) && (!(BR)))){
x = ((((xTile + 1) * tileWidth) - (checkWidth / 2)) - 0.01);
xSpeed = 0;
};
} else {
if (((!(TL)) && (TR))){
x = ((xTile * tileWidth) + (checkWidth / 2));
xSpeed = 0;
};
if (((TL) && (!(TR)))){
x = ((((xTile + 1) * tileWidth) - (checkWidth / 2)) - 0.01);
xSpeed = 0;
};
};
if (xSpeed < 0){
if (((TL) && (BL))){
} else {
x = (((xTile * tileWidth) + (checkWidth / 2)) - 4);
xSpeed = 0;
};
} else {
if (xSpeed > 0){
if (((TR) && (BR))){
} else {
x = (((((xTile + 1) * tileWidth) - (checkWidth / 2)) - 0.01) + 4);
xSpeed = 0;
};
};
};
};
if (myParent.grav){
if (((((((myParent.myParent.upMove) && (myParent.myParent.upReset))) && (!(jumping)))) && ((ySpeed <= 0)))){
if (pushDir == "lift"){
if (!slowPush){
ySpeed = jumpSpeed;
} else {
ySpeed = slowJumpSpeed;
};
};
myParent.myParent.upReset = false;
jumping = true;
};
if (ySpeed < 17){
ySpeed = (ySpeed + fallSpeed);
};
scaleY = 1;
} else {
if (((((((myParent.myParent.upMove) && (myParent.myParent.upReset))) && (!(jumping)))) && ((ySpeed >= 0)))){
if (pushDir == "lift"){
if (!slowPush){
ySpeed = -(jumpSpeed);
} else {
ySpeed = -(slowJumpSpeed);
};
};
myParent.myParent.upReset = false;
jumping = true;
};
if (ySpeed > -17){
ySpeed = (ySpeed - fallSpeed);
};
scaleY = -1;
};
xTile = Math.floor((x / tileWidth));
yTile = Math.floor((y / tileHeight));
if (!slowPush){
if (((!(BR)) || (!(BL)))){
if (pushCount > pushStart){
if (!jumping){
_local6 = false;
if (!BL){
_local9 = -1;
} else {
_local9 = 1;
};
if (myParent.grav){
_local10 = -1;
} else {
_local10 = 1;
};
_local7 = 0;
while (_local7 < myParent.sliderHolder.length) {
if (((((((xTile + _local9) == myParent.sliderHolder[_local7].xTile)) && (((yTile + _local10) == myParent.sliderHolder[_local7].yTile)))) && ((myParent.offsetCount == myParent.sliderHolder[_local7].currentLayer)))){
_local6 = true;
};
_local7++;
};
_local8 = 0;
while (_local8 < myParent.sliderHolder.length) {
if (myParent.sliderHolder[_local8].currentLayer == myParent.offsetCount){
_local11 = (x - myParent.sliderHolder[_local8].x);
_local12 = (y - myParent.sliderHolder[_local8].y);
if ((((((Math.abs(_local12) <= 1)) && ((Math.abs(_local11) < 26)))) && (!(_local6)))){
if (!BR){
_local14 = true;
_local7 = 0;
while (_local7 < Math.floor((myParent.doorArray.length / 6))) {
_local15 = (_local7 * 6);
_local16 = myParent.spinX(myParent.doorArray[(_local15 + 4)], myParent.doorArray[(_local15 + 5)]);
_local17 = myParent.spinY(myParent.doorArray[(_local15 + 4)], myParent.doorArray[(_local15 + 5)]);
if ((((((((myParent.doorArray[(_local15 + 3)] == myParent.offsetCount)) && ((_local16 == myParent.sliderHolder[_local8].xTile)))) && ((_local17 == yTile)))) && ((myParent.doorHolder[_local7].door.currentFrame == 1)))){
_local14 = false;
};
_local7++;
};
if (_local14){
myParent.sliderHolder[_local8].charFollow = true;
pushDir = "right";
slowPush = true;
slowTar = _local8;
myParent.tileArray[((myParent.mapWidth * myParent.sliderHolder[_local8].yTile) + myParent.sliderHolder[_local8].xTile)].setNotWalk();
};
} else {
if (!BL){
_local14 = true;
_local7 = 0;
while (_local7 < Math.floor((myParent.doorArray.length / 6))) {
_local15 = (_local7 * 6);
_local16 = myParent.spinX(myParent.doorArray[(_local15 + 4)], myParent.doorArray[(_local15 + 5)]);
_local17 = myParent.spinY(myParent.doorArray[(_local15 + 4)], myParent.doorArray[(_local15 + 5)]);
if ((((((((myParent.doorArray[(_local15 + 3)] == myParent.offsetCount)) && ((_local16 == myParent.sliderHolder[_local8].xTile)))) && ((_local17 == yTile)))) && ((myParent.doorHolder[_local7].door.currentFrame == 1)))){
_local14 = false;
};
_local7++;
};
if (_local14){
myParent.sliderHolder[_local8].charFollow = true;
pushDir = "left";
slowPush = true;
slowTar = _local8;
myParent.tileArray[((myParent.mapWidth * myParent.sliderHolder[_local8].yTile) + myParent.sliderHolder[_local8].xTile)].setNotWalk();
};
};
};
};
};
_local8++;
};
};
} else {
pushCount++;
};
} else {
pushCount = 0;
};
_local8 = 0;
while (_local8 < myParent.sliderHolder.length) {
if (myParent.sliderHolder[_local8].currentLayer == myParent.offsetCount){
_local11 = (x - myParent.sliderHolder[_local8].x);
_local12 = (y - myParent.sliderHolder[_local8].y);
if ((((Math.abs(_local12) <= 1)) && ((Math.abs(_local11) < 26)))){
if (!jumping){
if (myParent.grav){
_local19 = 1;
} else {
_local19 = -1;
};
if (_local11 < 0){
_local13 = 1;
} else {
_local13 = -1;
};
if (((myParent.tileArray[((myParent.mapWidth * (yTile - _local19)) + (xTile + _local13))].walkable) && (myParent.tileArray[((myParent.mapWidth * (yTile - _local19)) + xTile)].walkable))){
_local14 = true;
_local7 = 0;
while (_local7 < Math.floor((myParent.doorArray.length / 6))) {
_local15 = (_local7 * 6);
_local16 = myParent.spinX(myParent.doorArray[(_local15 + 4)], myParent.doorArray[(_local15 + 5)]);
_local17 = myParent.spinY(myParent.doorArray[(_local15 + 4)], myParent.doorArray[(_local15 + 5)]);
if ((((((((myParent.doorArray[(_local15 + 3)] == myParent.offsetCount)) && ((_local16 == (xTile + _local13))))) && ((_local17 == yTile)))) && ((myParent.doorHolder[_local7].door.currentFrame == 1)))){
_local14 = false;
};
_local7++;
};
if (_local14){
if (myParent.myParent.pickUp){
myParent.myParent.pickUp = false;
myParent.sliderHolder[_local8].charFollow = true;
pushDir = "lift";
slowPush = true;
slowTar = _local8;
myParent.tileArray[((myParent.mapWidth * myParent.sliderHolder[_local8].yTile) + myParent.sliderHolder[_local8].xTile)].setNotWalk();
myParent.playSoundFX("blockLift1");
};
};
};
};
};
};
_local8++;
};
myParent.myParent.pickUp = false;
} else {
if ((((pushDir == "left")) || ((pushDir == "right")))){
if (xSpeed == 0){
slideBreak();
};
if (myParent.grav){
_local19 = 1;
} else {
_local19 = -1;
};
if (!myParent.tileArray[((myParent.mapWidth * (myParent.sliderHolder[slowTar].yTile + _local19)) + myParent.sliderHolder[slowTar].xTile)].isClear()){
slideBreak();
};
} else {
if (((((((myParent.myParent.pickUp) && ((slowTar >= 0)))) && ((Math.abs(ySpeed) <= 1)))) && (!(jumping)))){
getMyCorners(x, y);
_local18 = (x % tileWidth);
if (myParent.grav){
_local19 = 1;
} else {
_local19 = -1;
};
if (scaleX < 0){
if (myParent.tileArray[(((myParent.mapWidth * yTile) + xTile) - 1)].walkable){
if (myParent.tileArray[(((myParent.mapWidth * (yTile - _local19)) + xTile) - 1)].walkable){
if (_local18 > (tileWidth - (charWidth / 2))){
x = (x + ((30 - _local18) + charWidth));
myParent.sliderHolder[slowTar].x = ((xTile * tileWidth) + (tileWidth / 2));
} else {
if (_local18 > (tileWidth - charWidth)){
x = (x + ((30 - _local18) + charWidth));
myParent.sliderHolder[slowTar].x = ((xTile * tileWidth) + (tileWidth / 2));
} else {
myParent.sliderHolder[slowTar].x = ((xTile * tileWidth) - (tileWidth / 2));
};
};
myParent.sliderHolder[slowTar].y = (y + 2.5);
myParent.sliderHolder[slowTar].ySpeed = 0;
x = (x - xSpeed);
xSpeed = 0;
breakPush();
myParent.playSoundFX("blockLift2");
};
} else {
if (((myParent.tileArray[(((myParent.mapWidth * (yTile - _local19)) + xTile) - 1)].walkable) && ((_local18 < 16)))){
myParent.sliderHolder[slowTar].x = ((xTile * tileWidth) - (tileWidth / 2));
myParent.sliderHolder[slowTar].y = ((y + 2.5) - (tileWidth * _local19));
breakPush();
myParent.playSoundFX("blockLift2");
} else {
if (!myParent.tileArray[(((myParent.mapWidth * (yTile + _local19)) + xTile) + 1)].walkable){
x = (x + ((30 - _local18) + charWidth));
x = (x - xSpeed);
myParent.sliderHolder[slowTar].x = ((xTile * tileWidth) + (tileWidth / 2));
myParent.sliderHolder[slowTar].y = (y + 2.5);
breakPush();
myParent.playSoundFX("blockLift2");
};
};
};
} else {
if (myParent.tileArray[(((myParent.mapWidth * yTile) + xTile) + 1)].walkable){
if (myParent.tileArray[(((myParent.mapWidth * (yTile - _local19)) + xTile) + 1)].walkable){
if (_local18 < (charWidth / 2)){
x = (x - (_local18 + charWidth));
myParent.sliderHolder[slowTar].x = (((xTile + 1) * tileWidth) - (tileWidth / 2));
} else {
if (_local18 < charWidth){
x = (x - (_local18 + charWidth));
myParent.sliderHolder[slowTar].x = (((xTile + 1) * tileWidth) - (tileWidth / 2));
} else {
myParent.sliderHolder[slowTar].x = (((xTile + 1) * tileWidth) + (tileWidth / 2));
};
};
myParent.sliderHolder[slowTar].y = (y + 2.5);
myParent.sliderHolder[slowTar].ySpeed = 0;
x = (x - xSpeed);
xSpeed = 0;
breakPush();
myParent.playSoundFX("blockLift2");
};
} else {
if (((myParent.tileArray[(((myParent.mapWidth * (yTile - _local19)) + xTile) + 1)].walkable) && ((_local18 > 14)))){
myParent.sliderHolder[slowTar].x = (((xTile + 1) * tileWidth) + (tileWidth / 2));
myParent.sliderHolder[slowTar].y = ((y + 2.5) - (tileWidth * _local19));
breakPush();
myParent.playSoundFX("blockLift2");
} else {
if (!myParent.tileArray[(((myParent.mapWidth * (yTile + _local19)) + xTile) - 1)].walkable){
x = (x - (_local18 + (charWidth / 2)));
x = (x - xSpeed);
myParent.sliderHolder[slowTar].x = ((xTile * tileWidth) + (tileWidth / 2));
myParent.sliderHolder[slowTar].y = (y + 2.5);
breakPush();
myParent.playSoundFX("blockLift2");
};
};
};
};
myParent.myParent.pickUp = false;
};
};
};
};
x = (x + xSpeed);
y = (y + ySpeed);
};
};
};
};
}
public function startSleep(){
if (!sleepStart){
sleepStart = true;
};
}
public function startSuicide(){
if ((((myParent.myParent.currentLevel >= 32)) && ((myParent.myParent.gameState == "play")))){
myParent.stopStaticFX();
myParent.myParent.gotoAndStop("endVid2");
} else {
if (!suicide){
if (((!(jumping)) && ((Math.abs(ySpeed) <= 1)))){
suicide = true;
suicideCount = 0;
};
} else {
suicideCount = suicideBam;
};
};
}
public function breakPush(){
if (slowPush){
myParent.sliderHolder[slowTar].charFollow = false;
myParent.sliderHolder[slowTar].setWalker = false;
slowPush = false;
pushDir = "lift";
pushDustCount = 0;
};
}
function slideBreak(){
if (pushDir == "left"){
myParent.sliderHolder[slowTar].x = (((xTile - 1) * tileWidth) + (tileWidth / 2));
myParent.sliderHolder[slowTar].y = y;
myParent.sliderHolder[slowTar].setTile();
breakPush();
} else {
myParent.sliderHolder[slowTar].x = (((xTile + 1) * tileWidth) + (tileWidth / 2));
myParent.sliderHolder[slowTar].y = y;
myParent.sliderHolder[slowTar].setTile();
breakPush();
};
}
function restart(){
myParent.resetMap();
}
public function startChar(){
charStart = true;
startCount = 0;
xSpeed = 0;
ySpeed = 0;
winAnimation = false;
rotation = 0;
winCount = 0;
win = false;
x = ((myStart[0] * tileWidth) + (tileWidth / 2));
y = (((myStart[1] * tileHeight) + (tileHeight / 2)) + 3);
xTile = Math.floor((x / tileWidth));
yTile = Math.floor((y / tileHeight));
if (myParent.myParent.gameState == "edit"){
charHolder.gotoAndStop(1);
} else {
charHolder.gotoAndStop(22);
};
}
public function setCharFrame(){
charHolder.gotoAndPlay(1000);
}
function getTele(_arg1, _arg2){
tele = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].teleport;
teleX = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].teleX;
teleY = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].teleY;
telePage = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].telePage;
if (tele){
if (((!(teleX)) || (!(teleY)))){
teleX = 0;
teleY = 0;
telePage = 0;
isDead = true;
};
};
}
function getKey(_arg1, _arg2){
var _local4:Number;
var _local5:Number;
var _local3:Number = 0;
while (_local3 < myParent.keyHolder.length) {
if (myParent.keyHolder[_local3].currentLayer == myParent.offsetCount){
_local4 = (x - myParent.keyHolder[_local3].x);
_local5 = (y - myParent.keyHolder[_local3].y);
if ((((Math.abs(_local5) <= 10)) && ((Math.abs(_local4) < 10)))){
spawnKeyPoof(myParent.keyHolder[_local3].x, myParent.keyHolder[_local3].y, myParent.colorArray[(myParent.offsetCount * 3)]);
myParent.getKey(_local3);
};
};
_local3++;
};
}
function getFlip(){
if (!myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].flipper){
if (slowPush){
isFlip = myParent.sliderHolder[slowTar].isFlip;
} else {
isFlip = false;
};
};
if (((myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].flipper) && (!(isFlip)))){
isFlip = true;
switch (myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].flipControl){
case 0:
myParent.flipMap();
break;
case 1:
myParent.vertFlipMap();
break;
case 2:
myParent.flipGrav();
break;
case 3:
myParent.spinMapL();
break;
case 4:
myParent.spinMapR();
break;
};
};
}
function getMyCenter(_arg1, _arg2){
win = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].win;
}
function getMyCorners(_arg1, _arg2){
xTileLeft = Math.floor(((_arg1 - (charWidth / 2)) / tileWidth));
xTileRight = Math.floor(((_arg1 + (charWidth / 2)) / tileWidth));
yTileTop = Math.floor(((_arg2 - (charHeight / 2)) / tileHeight));
yTileBottom = Math.floor(((_arg2 + (charHeight / 2)) / tileHeight));
TL = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileLeft)].isWalkable();
BL = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileLeft)].isWalkable();
TR = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileRight)].isWalkable();
BR = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileRight)].isWalkable();
}
function getMyBoxCorners(_arg1, _arg2){
xTileLeft = Math.floor(((_arg1 - (checkWidth / 2)) / tileWidth));
xTileRight = Math.floor(((_arg1 + (checkWidth / 2)) / tileWidth));
yTileTop = Math.floor(((_arg2 - (checkWidth / 2)) / tileHeight));
yTileBottom = Math.floor(((_arg2 + (checkWidth / 2)) / tileHeight));
TL = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileLeft)].isWalkable();
BL = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileLeft)].isWalkable();
TR = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileRight)].isWalkable();
BR = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileRight)].isWalkable();
}
function getMyDeath(){
kill = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].killer;
}
function getMyDeathCorners(_arg1, _arg2){
xTileLeft = Math.floor(((_arg1 - (charWidth / 4)) / tileWidth));
xTileRight = Math.floor(((_arg1 + (charWidth / 4)) / tileWidth));
yTileTop = Math.floor((((_arg2 - (charHeight / 2)) + 1) / tileHeight));
yTileBottom = Math.floor((((_arg2 + (charHeight / 2)) + 1) / tileHeight));
TL = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileLeft)].killer;
BL = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileLeft)].killer;
TR = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileRight)].killer;
BR = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileRight)].killer;
}
function getChar():Point{
var _local1:Point = new Point(x, y);
return (_local1);
}
public function resetMe(){
xSpeed = 0;
ySpeed = 0;
scaleY = 1;
scaleX = 1;
charHolder.gotoAndStop(20);
breakPush();
}
public function tintMe(){
trace("tint");
}
function spawnDust(){
var _local1:charLandPoof = new charLandPoof(x, y, myParent.colorArray[(myParent.offsetCount * 3)]);
_local1.scaleY = scaleY;
_local1.scaleX = scaleX;
myParent.poofMC.addChild(_local1);
var _local2:Number = Math.ceil((Math.random() * 3));
myParent.playSoundFX(("playerLand" + _local2));
}
function portalPop(){
var _local1:pop = new pop(x, y, myParent.colorArray[(myParent.offsetCount * 3)]);
myParent.poofMC.addChild(_local1);
}
function spawnPushDust(){
var _local1:pushPoof = new pushPoof(x, y, myParent.colorArray[(myParent.offsetCount * 3)]);
_local1.scaleY = scaleY;
_local1.scaleX = scaleX;
myParent.poofMC.addChild(_local1);
myParent.playSoundFX("pushblock");
}
function spawnKeyPoof(_arg1:Number, _arg2:Number, _arg3:Number){
var _local4:keyPoof = new keyPoof(_arg1, _arg2, _arg3);
myParent.poofMC.addChild(_local4);
}
function checkDeath():Boolean{
var _local1:Number;
if (myParent.grav){
_local1 = 1;
} else {
_local1 = -1;
};
getMyCorners(x, (y - _local1));
if (((((((!(TR)) && (!(TL)))) && (!(BL)))) && (!(BR)))){
return (true);
};
return (false);
}
function frame1(){
stop();
}
}
}//package com.game
Section 29
//charLandPoof (com.game.charLandPoof)
package com.game {
import flash.display.*;
import fl.motion.*;
public class charLandPoof extends MovieClip {
var tileWidth;// = 30
var alphaTint:Number;// = 0.5
var colorTint:Number;
public function charLandPoof(_arg1:Number, _arg2:Number, _arg3:Number){
addFrameScript(17, frame18);
x = _arg1;
y = _arg2;
alpha = 0.5;
var _local4:Number = 0;
var _local5:Number = 0;
colorTint = _arg3;
tint();
}
public function tint(){
var _local1:Color = new Color();
_local1.setTint(colorTint, alphaTint);
this.transform.colorTransform = _local1;
}
function frame18(){
stop();
}
}
}//package com.game
Section 30
//charTrail (com.game.charTrail)
package com.game {
import flash.display.*;
public class charTrail extends MovieClip {
var myParent:MovieClip;
public function charTrail(_arg1:MovieClip){
myParent = _arg1;
x = myParent.theChar.x;
y = myParent.theChar.y;
gotoAndStop(((((myParent.theChar.currentFrame - 1) * 50) + 1) + myParent.theChar.ch.currentFrame));
scaleX = myParent.theChar.scaleX;
scaleY = myParent.theChar.scaleY;
}
}
}//package com.game
Section 31
//click (com.game.click)
package com.game {
import flash.media.*;
public dynamic class click extends Sound {
}
}//package com.game
Section 32
//colorWindow (com.game.colorWindow)
package com.game {
import flash.display.*;
import flash.events.*;
import fl.motion.*;
import flash.text.*;
public class colorWindow extends MovieClip {
public var l1c2:MovieClip;
public var l1c3:MovieClip;
public var colSpec:MovieClip;
public var buttonClose:SimpleButton;
public var bg:MovieClip;
public var l2c1:MovieClip;
public var l3c1:MovieClip;
public var l2c2:MovieClip;
public var l3c2:MovieClip;
public var l2c3:MovieClip;
public var l3c3:MovieClip;
public var l1c1:MovieClip;
var myParent:MovieClip;
var curTile:Array;
var colMC:MovieClip;
var a:BitmapData;
var image_bitmap;
public function colorWindow(_arg1){
var _local4:*;
curTile = new Array(1, 1);
colMC = new MovieClip();
super();
myParent = _arg1;
setPos();
var _local2:* = 1;
while (_local2 <= 3) {
_local4 = 1;
while (_local4 <= 3) {
setTint(_local2, _local4, myParent.colorArray[(((_local2 - 1) * 3) + (_local4 - 1))]);
this[((("l" + _local2) + "c") + _local4)].lev = _local2;
this[((("l" + _local2) + "c") + _local4)].col = _local4;
this[((("l" + _local2) + "c") + _local4)].buttonMode = true;
this[((("l" + _local2) + "c") + _local4)].addEventListener(MouseEvent.MOUSE_UP, pickTile);
_local4++;
};
_local2++;
};
colMC.addEventListener(MouseEvent.MOUSE_DOWN, selectColor);
buttonClose.addEventListener(MouseEvent.MOUSE_UP, closeWindow);
l1c1.gotoAndStop(2);
addChild(colMC);
colMC.x = colSpec.x;
colMC.y = colSpec.y;
a = new BitmapData(colSpec.width, colSpec.height);
var _local3:Bitmap = new Bitmap(a);
colMC.addChild(_local3);
a.draw(colSpec);
}
function closeWindow(_arg1:MouseEvent){
myParent.colorPicking = false;
}
function pickTile(_arg1:MouseEvent){
this[((("l" + curTile[0]) + "c") + curTile[1])].gotoAndStop(1);
curTile[0] = _arg1.target.lev;
curTile[1] = _arg1.target.col;
this[((("l" + curTile[0]) + "c") + curTile[1])].gotoAndStop(2);
}
public function setPos(){
x = 225;
y = 45;
}
public function offPos(){
x = 1000;
}
function pickColor(){
}
function selectColor(_arg1:MouseEvent){
var _local2:Number = (mouseX + 125);
var _local3:Number = (mouseY - 160);
var _local4:Number = a.getPixel(_local2, _local3);
trace(((_local2 + " - - ") + _local3));
trace(_local4);
setTint(curTile[0], curTile[1], _local4);
}
function setTint(_arg1:Number, _arg2:Number, _arg3:Number):void{
myParent.colorArray[(((_arg1 - 1) * 3) + (_arg2 - 1))] = _arg3;
var _local4:Color = new Color();
_local4.setTint(_arg3, 0.5);
this[((("l" + _arg1) + "c") + _arg2)].transform.colorTransform = _local4;
}
function hoverTile(_arg1:MouseEvent){
}
}
}//package com.game
Section 33
//d (com.game.d)
package com.game {
import flash.media.*;
public dynamic class d extends Sound {
}
}//package com.game
Section 34
//d2 (com.game.d2)
package com.game {
import flash.media.*;
public dynamic class d2 extends Sound {
}
}//package com.game
Section 35
//deathSound (com.game.deathSound)
package com.game {
import flash.media.*;
public dynamic class deathSound extends Sound {
}
}//package com.game
Section 36
//door_close (com.game.door_close)
package com.game {
import flash.media.*;
public dynamic class door_close extends Sound {
}
}//package com.game
Section 37
//door_open (com.game.door_open)
package com.game {
import flash.media.*;
public dynamic class door_open extends Sound {
}
}//package com.game
Section 38
//e (com.game.e)
package com.game {
import flash.media.*;
public dynamic class e extends Sound {
}
}//package com.game
Section 39
//e2 (com.game.e2)
package com.game {
import flash.media.*;
public dynamic class e2 extends Sound {
}
}//package com.game
Section 40
//editLoop (com.game.editLoop)
package com.game {
import flash.media.*;
public dynamic class editLoop extends Sound {
}
}//package com.game
Section 41
//editor_interface (com.game.editor_interface)
package com.game {
import flash.display.*;
import flash.events.*;
public class editor_interface extends MovieClip {
public var muteB:SimpleButton;
public var switchLayer:SimpleButton;
public var introB:SimpleButton;
public var liveButton:SimpleButton;
public var menuButton:SimpleButton;
public var optionsButton:SimpleButton;
public var resetButton:SimpleButton;
var myParent:MovieClip;
var muteCount:Number;// = 0
public function editor_interface(_arg1){
myParent = _arg1;
x = 10;
y = 30;
liveButton.addEventListener(MouseEvent.CLICK, setLive);
resetButton.addEventListener(MouseEvent.CLICK, resetMap);
optionsButton.addEventListener(MouseEvent.CLICK, pickOptions);
menuButton.addEventListener(MouseEvent.CLICK, menu);
switchLayer.addEventListener(MouseEvent.CLICK, switchL);
muteB.addEventListener(MouseEvent.CLICK, toggleMute);
introB.addEventListener(MouseEvent.CLICK, introButtonFunction);
liveButton.addEventListener(MouseEvent.MOUSE_OVER, liveOver);
resetButton.addEventListener(MouseEvent.MOUSE_OVER, resetOver);
optionsButton.addEventListener(MouseEvent.MOUSE_OVER, optionsOver);
menuButton.addEventListener(MouseEvent.MOUSE_OVER, menuOver);
switchLayer.addEventListener(MouseEvent.MOUSE_OVER, switchOver);
muteB.addEventListener(MouseEvent.MOUSE_OVER, muteOver);
introB.addEventListener(MouseEvent.MOUSE_OVER, helpOver);
liveButton.addEventListener(MouseEvent.MOUSE_OUT, moveOut);
resetButton.addEventListener(MouseEvent.MOUSE_OUT, moveOut);
optionsButton.addEventListener(MouseEvent.MOUSE_OUT, moveOut);
menuButton.addEventListener(MouseEvent.MOUSE_OUT, moveOut);
switchLayer.addEventListener(MouseEvent.MOUSE_OUT, moveOut);
muteB.addEventListener(MouseEvent.MOUSE_OUT, moveOut);
introB.addEventListener(MouseEvent.MOUSE_OUT, moveOut);
}
function introButtonFunction(_arg1:MouseEvent){
myParent.layersPicking = false;
myParent.colorPicking = false;
myParent.gameLive = false;
myParent.textPicking = false;
myParent.optionsPicking = false;
myParent.EWindow.offPos();
myParent.introPicking = !(myParent.introPicking);
myParent.lineHolder.visible = !(myParent.gameLive);
myParent.mapBeat = false;
}
function moveOut(_arg1:MouseEvent){
myParent.TWindow.blockDesc.text = "";
}
function helpOver(_arg1:MouseEvent){
myParent.TWindow.blockDesc.text = "Open help window";
}
function liveOver(_arg1:MouseEvent){
if (!myParent.gameLive){
myParent.TWindow.blockDesc.text = "Test your level";
} else {
myParent.TWindow.blockDesc.text = "Back to Editing";
};
}
function resetOver(_arg1:MouseEvent){
myParent.TWindow.blockDesc.text = "Reset";
}
function optionsOver(_arg1:MouseEvent){
myParent.TWindow.blockDesc.text = "Open up the options menu";
}
function menuOver(_arg1:MouseEvent){
myParent.TWindow.blockDesc.text = "Back to the main menu";
}
function switchOver(_arg1:MouseEvent){
myParent.TWindow.blockDesc.text = "Flip layers \n(hotkey: A)";
}
function muteOver(_arg1:MouseEvent){
myParent.TWindow.blockDesc.text = "Toggle Mute";
if (myParent.myParent.musicTransform.volume > 0){
myParent.TWindow.blockDesc.text = "Mute Music";
} else {
if (myParent.myParent.fxTransform.volume > 0){
myParent.TWindow.blockDesc.text = "Mute All";
} else {
myParent.TWindow.blockDesc.text = "Unmute All";
};
};
}
function switchL(_arg1:MouseEvent){
myParent.changeMap(true);
}
function toggleMute(_arg1:MouseEvent){
myParent.myParent.muteCount++;
myParent.myParent.muteCount = (myParent.myParent.muteCount % 3);
trace(myParent.myParent.muteCount);
if (myParent.myParent.muteCount == 0){
myParent.TWindow.blockDesc.text = "Mute Music";
myParent.myParent.musicTransform.volume = 1;
myParent.myParent.music.soundTransform = myParent.myParent.musicTransform;
myParent.myParent.fxTransform.volume = 1;
myParent.fx.soundTransform = myParent.myParent.fxTransform;
myParent.staticChannel.soundTransform = myParent.myParent.fxTransform;
};
if (myParent.myParent.muteCount == 1){
myParent.TWindow.blockDesc.text = "Mute All";
myParent.myParent.musicTransform.volume = 0;
myParent.myParent.music.soundTransform = myParent.myParent.musicTransform;
myParent.myParent.fxTransform.volume = 1;
myParent.fx.soundTransform = myParent.myParent.fxTransform;
myParent.staticChannel.soundTransform = myParent.myParent.fxTransform;
};
if (myParent.myParent.muteCount == 2){
myParent.TWindow.blockDesc.text = "Unmute All";
myParent.myParent.musicTransform.volume = 0;
myParent.myParent.music.soundTransform = myParent.myParent.musicTransform;
myParent.myParent.fxTransform.volume = 0;
myParent.fx.soundTransform = myParent.myParent.fxTransform;
myParent.staticChannel.soundTransform = myParent.myParent.fxTransform;
};
}
function menu(_arg1:MouseEvent){
myParent.EWindow.togglePos();
}
function pickOptions(_arg1:MouseEvent){
myParent.optionsPicking = !(myParent.optionsPicking);
myParent.layersPicking = false;
myParent.colorPicking = false;
myParent.gameLive = false;
myParent.textPicking = false;
myParent.introPicking = false;
myParent.resetter = true;
myParent.EWindow.offPos();
myParent.lineHolder.visible = !(myParent.gameLive);
myParent.mapBeat = false;
}
function setLive(_arg1:MouseEvent){
myParent.mapBeat = false;
myParent.gameLive = !(myParent.gameLive);
if (!myParent.gameLive){
myParent.TWindow.blockDesc.text = "Test your level";
} else {
myParent.TWindow.blockDesc.text = "Back to Editing";
};
myParent.theChar.isDead = false;
myParent.lineHolder.visible = !(myParent.gameLive);
myParent.colorPicking = false;
myParent.optionsPicking = false;
myParent.layersPicking = false;
myParent.textPicking = false;
myParent.headPicking = false;
myParent.resetter = false;
myParent.introPicking = false;
myParent.EWindow.offPos();
myParent.myParent.shifted = false;
myParent.resetter = true;
}
function resetMap(_arg1:MouseEvent){
myParent.resetter = true;
}
}
}//package com.game
Section 42
//error (com.game.error)
package com.game {
import flash.media.*;
public dynamic class error extends Sound {
}
}//package com.game
Section 43
//exitWindow (com.game.exitWindow)
package com.game {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class exitWindow extends MovieClip {
public var yesB:SimpleButton;
public var noB:SimpleButton;
var myParent:MovieClip;
var curTile:Array;
var colMC:MovieClip;
var a:BitmapData;
var image_bitmap;
public var myVar:String;
public function exitWindow(_arg1){
curTile = new Array(1, 1);
colMC = new MovieClip();
super();
myParent = _arg1;
stop();
offPos();
yesB.addEventListener(MouseEvent.CLICK, slYes);
noB.addEventListener(MouseEvent.CLICK, slNo);
}
public function slYes(_arg1:MouseEvent){
myParent.exit();
offPos();
}
public function slNo(_arg1:MouseEvent){
offPos();
}
public function setPos(){
if (myParent.myParent.gameState == "edit"){
myParent.colorPicking = false;
myParent.optionsPicking = false;
myParent.layersPicking = false;
myParent.textPicking = false;
myParent.headPicking = false;
myParent.introPicking = false;
} else {
myParent.SlWindow.offPos();
myParent.PWindow.offPos();
};
myParent.gameLive = false;
x = 0xFF;
y = 0xFF;
}
public function offPos(){
if (myParent.myParent.gameState != "edit"){
myParent.gameLive = true;
};
x = 1000;
y = 0xFF;
}
public function togglePos(){
if (x > 900){
setPos();
} else {
offPos();
};
}
}
}//package com.game
Section 44
//eyesandmouth (com.game.eyesandmouth)
package com.game {
import flash.display.*;
import fl.motion.*;
public class eyesandmouth extends MovieClip {
var myParent:MovieClip;
public function eyesandmouth(){
var _local1:Color = new Color();
_local1.setTint(0xFFFFFF, 1);
}
}
}//package com.game
Section 45
//f (com.game.f)
package com.game {
import flash.media.*;
public dynamic class f extends Sound {
}
}//package com.game
Section 46
//f2 (com.game.f2)
package com.game {
import flash.media.*;
public dynamic class f2 extends Sound {
}
}//package com.game
Section 47
//fade1 (com.game.fade1)
package com.game {
import flash.display.*;
public dynamic class fade1 extends MovieClip {
public function fade1(){
addFrameScript(14, frame15);
}
function frame15(){
stop();
}
}
}//package com.game
Section 48
//g (com.game.g)
package com.game {
import flash.media.*;
public dynamic class g extends Sound {
}
}//package com.game
Section 49
//g2 (com.game.g2)
package com.game {
import flash.media.*;
public dynamic class g2 extends Sound {
}
}//package com.game
Section 50
//game_music (com.game.game_music)
package com.game {
import flash.media.*;
public dynamic class game_music extends Sound {
}
}//package com.game
Section 51
//game2_music (com.game.game2_music)
package com.game {
import flash.media.*;
public dynamic class game2_music extends Sound {
}
}//package com.game
Section 52
//GlobalVarContainer (com.game.GlobalVarContainer)
package com.game {
public class GlobalVarContainer {
public static var vars:Object = [];
}
}//package com.game
Section 53
//gravityDown (com.game.gravityDown)
package com.game {
import flash.media.*;
public dynamic class gravityDown extends Sound {
}
}//package com.game
Section 54
//gravityUp (com.game.gravityUp)
package com.game {
import flash.media.*;
public dynamic class gravityUp extends Sound {
}
}//package com.game
Section 55
//h (com.game.h)
package com.game {
import flash.media.*;
public dynamic class h extends Sound {
}
}//package com.game
Section 56
//h2 (com.game.h2)
package com.game {
import flash.media.*;
public dynamic class h2 extends Sound {
}
}//package com.game
Section 57
//head (com.game.head)
package com.game {
import flash.display.*;
public class head extends MovieClip {
public function head(){
addFrameScript(0, frame1);
gotoAndStop(GlobalVarContainer.vars.headFlag);
}
function frame1(){
stop();
}
}
}//package com.game
Section 58
//headWindow (com.game.headWindow)
package com.game {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class headWindow extends MovieClip {
public var h5:MovieClip;
public var h6:MovieClip;
public var h7:MovieClip;
public var h8:MovieClip;
public var backButton:SimpleButton;
public var h1:MovieClip;
public var h2:MovieClip;
public var h3:MovieClip;
public var h4:MovieClip;
var myParent:MovieClip;
var curTile:Array;
var colMC:MovieClip;
var a:BitmapData;
var image_bitmap;
public var myVar:String;
public function headWindow(_arg1){
curTile = new Array(1, 1);
colMC = new MovieClip();
super();
addFrameScript(0, frame1);
myParent = _arg1;
offPos();
var _local2:Number = 1;
while (_local2 <= 8) {
this[("h" + _local2)].head = _local2;
this[("h" + _local2)].buttonMode = true;
this[("h" + _local2)].gotoAndStop(_local2);
this[("h" + _local2)].addEventListener(MouseEvent.MOUSE_UP, pickHead);
_local2++;
};
this[("h" + myParent.charArray[2])].headBG.gotoAndStop(2);
backButton.addEventListener(MouseEvent.MOUSE_UP, back);
}
function mainMenu(_arg1:MouseEvent){
myParent.myParent.gotoAndStop("menu");
}
function back(_arg1:MouseEvent){
myParent.optionsPicking = false;
myParent.headPicking = false;
}
function pickHead(_arg1:MouseEvent){
this[("h" + myParent.charArray[2])].headBG.gotoAndStop(1);
myParent.charArray[2] = _arg1.currentTarget.head;
GlobalVarContainer.vars.headFlag = _arg1.currentTarget.head;
this[("h" + myParent.charArray[2])].headBG.gotoAndStop(2);
myParent.offsetCount = 0;
myParent.theChar.setCharFrame();
myParent.resetMap();
}
public function setPos(){
x = 0xFF;
y = 0xFF;
}
public function offPos(){
x = 1000;
y = 0xFF;
}
function frame1(){
stop();
}
}
}//package com.game
Section 59
//i (com.game.i)
package com.game {
import flash.media.*;
public dynamic class i extends Sound {
}
}//package com.game
Section 60
//i2 (com.game.i2)
package com.game {
import flash.media.*;
public dynamic class i2 extends Sound {
}
}//package com.game
Section 61
//intro_menu (com.game.intro_menu)
package com.game {
import flash.media.*;
public dynamic class intro_menu extends Sound {
}
}//package com.game
Section 62
//intro_tune_1 (com.game.intro_tune_1)
package com.game {
import flash.media.*;
public dynamic class intro_tune_1 extends Sound {
}
}//package com.game
Section 63
//intro_tune_2 (com.game.intro_tune_2)
package com.game {
import flash.media.*;
public dynamic class intro_tune_2 extends Sound {
}
}//package com.game
Section 64
//intro_tune_3 (com.game.intro_tune_3)
package com.game {
import flash.media.*;
public dynamic class intro_tune_3 extends Sound {
}
}//package com.game
Section 65
//introField (com.game.introField)
package com.game {
import flash.media.*;
public dynamic class introField extends Sound {
}
}//package com.game
Section 66
//introLoop (com.game.introLoop)
package com.game {
import flash.media.*;
public dynamic class introLoop extends Sound {
}
}//package com.game
Section 67
//introScroll (com.game.introScroll)
package com.game {
import flash.display.*;
public dynamic class introScroll extends MovieClip {
public var myParent:MovieClip;
public function introScroll(){
addFrameScript(0, frame1, 901, frame902);
}
function frame1(){
}
function frame902(){
stop();
myParent.gotoAndStop("menu");
}
}
}//package com.game
Section 68
//introWindow (com.game.introWindow)
package com.game {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class introWindow extends MovieClip {
public var editButton:SimpleButton;
public var joinB:SimpleButton;
public var NGB:SimpleButton;
public var menuB:SimpleButton;
var myParent:MovieClip;
var curTile:Array;
var colMC:MovieClip;
var a:BitmapData;
var image_bitmap;
public var myVar:String;
public function introWindow(_arg1){
curTile = new Array(1, 1);
colMC = new MovieClip();
super();
addFrameScript(0, frame1);
myParent = _arg1;
stop();
offPos();
if (!myParent.killSwitch){
editButton.addEventListener(MouseEvent.CLICK, back);
};
}
function menuBFun(_arg1:MouseEvent){
myParent.myParent.stopMusic();
myParent.myParent.gotoAndStop("menu");
}
function back(_arg1:MouseEvent){
myParent.optionsPicking = false;
myParent.introPicking = false;
}
public function setPos(){
x = 0xFF;
y = 0xFF;
}
public function offPos(){
x = 1000;
y = 0xFF;
}
public function togglePos(){
if (x > 900){
setPos();
} else {
offPos();
};
}
function frame1(){
stop();
}
}
}//package com.game
Section 69
//j (com.game.j)
package com.game {
import flash.media.*;
public dynamic class j extends Sound {
}
}//package com.game
Section 70
//j2 (com.game.j2)
package com.game {
import flash.media.*;
public dynamic class j2 extends Sound {
}
}//package com.game
Section 71
//k (com.game.k)
package com.game {
import flash.media.*;
public dynamic class k extends Sound {
}
}//package com.game
Section 72
//k2 (com.game.k2)
package com.game {
import flash.media.*;
public dynamic class k2 extends Sound {
}
}//package com.game
Section 73
//key (com.game.key)
package com.game {
import flash.display.*;
import fl.motion.*;
import flash.geom.*;
public class key extends MovieClip {
var myParent:MovieClip;
var myStart:Array;
public var currentLayer:Number;
var startLayer:Number;
var startx:Number;
var starty:Number;
public var xSpeed:Number;// = 0
public var ySpeed:Number;// = 0
var fallSpeed:Number;// = 1
var slowSpeed:Number;// = 0.07
var speed:Number;// = 4
var fastDes:Number;// = 0.8
var slowDes:Number;// = 0.5
var SpeedDes:Number;
var blockWidth:Number;// = 25
var TL:Boolean;
var TR:Boolean;
var BL:Boolean;
var BR:Boolean;
var xTileLeft:Number;
var xTileRight:Number;
var yTileTop:Number;
var yTileBottom:Number;
var xTile:Number;
var yTile:Number;
var tileWidth:Number;// = 30
var tileHeight:Number;// = 30
var win:Boolean;// = false
var kill:Boolean;// = false
var tele:Boolean;// = false
var telePage:Number;
var teleX:Number;
var teleY:Number;
public var isTele:Boolean;// = false
var isFlip:Boolean;// = false
var jumping:Boolean;// = false
var jumpSpeed:Number;// = -11.8
var landCount:Number;// = 6
var arrayTile:Number;
var currentTint:Number;
public var setWalker:Boolean;// = false
public var charFollow:Boolean;// = false
public var teleCount:Number;// = 0
public var pushDir:String;// = "right"
public function key(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number){
myStart = new Array(5, 5);
SpeedDes = fastDes;
super();
myParent = _arg1;
startLayer = _arg2;
startx = _arg3;
starty = _arg4;
xTile = Math.floor((x / tileWidth));
yTile = Math.floor((y / tileHeight));
startKey();
}
public function moveKey():void{
getTele(x, y);
if (!tele){
isTele = false;
};
if (((tele) && (!(isTele)))){
myParent.theChar.breakPush();
isTele = true;
myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].setNotWalk();
x = ((teleX * tileWidth) + (tileWidth / 2));
y = ((teleY * tileHeight) + (tileHeight / 2));
};
xTile = Math.floor((x / tileWidth));
yTile = Math.floor((y / tileHeight));
getMyCorners(x, (y + ySpeed));
if (ySpeed < 0){
if (((TL) && (TR))){
} else {
y = ((yTile * tileHeight) + (blockWidth / 2));
if ((((ySpeed < -5)) && (!(myParent.grav)))){
myParent.playSoundFX("keyLand");
};
ySpeed = 0;
if (!myParent.grav){
jumping = false;
};
};
} else {
if (ySpeed > 0){
if (((BL) && (BR))){
} else {
y = ((((yTile + 1) * tileHeight) - (blockWidth / 2)) - 0.05);
if ((((ySpeed > 5)) && (myParent.grav))){
trace("boom");
myParent.playSoundFX("keyLand");
};
ySpeed = 0;
if (myParent.grav){
jumping = false;
};
};
};
};
xTile = Math.floor((x / tileWidth));
yTile = Math.floor((y / tileHeight));
if (myParent.grav){
scaleY = 1;
} else {
scaleY = -1;
};
getMyCorners(x, y);
if (((((((!(TR)) && (!(TL)))) && (!(BL)))) && (!(BR)))){
} else {
if (myParent.grav){
if (ySpeed < 17){
ySpeed = (ySpeed + fallSpeed);
};
} else {
if (ySpeed > -17){
ySpeed = (ySpeed - fallSpeed);
};
};
};
y = (y + ySpeed);
}
function restart(){
myParent.resetMap();
}
public function setTint(_arg1:Number){
var _local2:Color;
if (_arg1 != currentTint){
_local2 = new Color();
_local2.setTint(_arg1, 0.5);
transform.colorTransform = _local2;
currentTint = _arg1;
};
}
public function spinKey(_arg1:String){
var _local2:Number;
var _local3:Number;
if (_arg1 == "l"){
_local2 = ((myParent.mapWidth - yTile) - 1);
_local3 = xTile;
xTile = _local2;
yTile = _local3;
x = ((_local2 * tileWidth) + (tileWidth / 2));
y = ((_local3 * tileWidth) + (tileWidth / 2));
} else {
if (_arg1 == "r"){
_local2 = yTile;
_local3 = ((myParent.mapWidth - xTile) - 1);
xTile = _local2;
yTile = _local3;
x = ((_local2 * tileWidth) + (tileWidth / 2));
y = ((_local3 * tileWidth) + (tileWidth / 2));
} else {
if (_arg1 == "v"){
if (currentLayer == myParent.offsetCount){
_local3 = ((myParent.mapWidth - yTile) - 1);
yTile = _local3;
y = ((_local3 * tileWidth) + (tileWidth / 2));
};
} else {
if (_arg1 == "f"){
if (currentLayer == myParent.offsetCount){
_local2 = ((myParent.mapWidth - xTile) - 1);
xTile = _local2;
x = ((_local2 * tileWidth) + (tileWidth / 2));
};
};
};
};
};
}
public function startKey(){
xSpeed = 0;
ySpeed = 1;
xTile = startx;
yTile = starty;
setWalker = false;
currentLayer = startLayer;
x = ((startx * tileWidth) + (tileWidth / 2));
y = ((starty * tileHeight) + (tileHeight / 2));
}
function getTele(_arg1, _arg2){
tele = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].teleport;
teleX = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].teleX;
teleY = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].teleY;
telePage = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].telePage;
}
function getFlip(){
if (!myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].flipper){
isFlip = false;
};
if (((myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].flipper) && (!(isFlip)))){
isFlip = true;
trace(myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].flipControl);
switch (myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].flipControl){
case 0:
myParent.flipMap();
break;
case 1:
myParent.flipGrav();
break;
case 2:
myParent.spinMapL();
break;
case 3:
myParent.spinMapR();
break;
};
};
}
function getMyCorners(_arg1, _arg2){
xTileLeft = Math.floor(((_arg1 - (blockWidth / 2)) / tileWidth));
xTileRight = Math.floor(((_arg1 + (blockWidth / 2)) / tileWidth));
yTileTop = Math.floor(((_arg2 - (blockWidth / 2)) / tileHeight));
yTileBottom = Math.floor(((_arg2 + (blockWidth / 2)) / tileHeight));
TL = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileLeft)].isWalkable();
BL = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileLeft)].isWalkable();
TR = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileRight)].isWalkable();
BR = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileRight)].isWalkable();
}
function getMyDeath(){
kill = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].killer;
}
function getMyDeathCorners(_arg1, _arg2){
xTileLeft = Math.floor(((_arg1 - (blockWidth / 4)) / tileWidth));
xTileRight = Math.floor(((_arg1 + (blockWidth / 4)) / tileWidth));
yTileTop = Math.floor((((_arg2 - (blockWidth / 2)) + 1) / tileHeight));
yTileBottom = Math.floor((((_arg2 + (blockWidth / 2)) + 1) / tileHeight));
TL = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileLeft)].killer;
BL = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileLeft)].killer;
TR = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileRight)].killer;
BR = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileRight)].killer;
}
function getChar():Point{
var _local1:Point = new Point(x, y);
return (_local1);
}
public function resetMe(){
xSpeed = 0;
ySpeed = 1;
}
public function tintMe(){
trace("tint");
}
}
}//package com.game
Section 74
//keyLand (com.game.keyLand)
package com.game {
import flash.media.*;
public dynamic class keyLand extends Sound {
}
}//package com.game
Section 75
//keyPickup (com.game.keyPickup)
package com.game {
import flash.media.*;
public dynamic class keyPickup extends Sound {
}
}//package com.game
Section 76
//keyPoof (com.game.keyPoof)
package com.game {
import flash.display.*;
import fl.motion.*;
public class keyPoof extends MovieClip {
var tileWidth;// = 30
var alphaTint:Number;// = 0.5
var colorTint:Number;
public function keyPoof(_arg1:Number, _arg2:Number, _arg3:Number){
addFrameScript(12, frame13);
x = _arg1;
y = _arg2;
alpha = 0.5;
var _local4:Number = 0;
var _local5:Number = 0;
colorTint = _arg3;
tint();
}
public function tint(){
var _local1:Color = new Color();
_local1.setTint(colorTint, alphaTint);
this.transform.colorTransform = _local1;
}
function frame13(){
stop();
}
}
}//package com.game
Section 77
//l (com.game.l)
package com.game {
import flash.media.*;
public dynamic class l extends Sound {
}
}//package com.game
Section 78
//l2 (com.game.l2)
package com.game {
import flash.media.*;
public dynamic class l2 extends Sound {
}
}//package com.game
Section 79
//layer_change1 (com.game.layer_change1)
package com.game {
import flash.media.*;
public dynamic class layer_change1 extends Sound {
}
}//package com.game
Section 80
//layer_change2 (com.game.layer_change2)
package com.game {
import flash.media.*;
public dynamic class layer_change2 extends Sound {
}
}//package com.game
Section 81
//layer_change3 (com.game.layer_change3)
package com.game {
import flash.media.*;
public dynamic class layer_change3 extends Sound {
}
}//package com.game
Section 82
//layersWindow (com.game.layersWindow)
package com.game {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class layersWindow extends MovieClip {
public var backButton:SimpleButton;
public var l0:MovieClip;
public var l1:MovieClip;
public var l2:MovieClip;
var myParent:MovieClip;
var curTile:Array;
var colMC:MovieClip;
var a:BitmapData;
var image_bitmap;
public var myVar:String;
public function layersWindow(_arg1){
curTile = new Array(1, 1);
colMC = new MovieClip();
super();
addFrameScript(0, frame1);
myParent = _arg1;
offPos();
var _local2:Number = 0;
while (_local2 <= 2) {
this[("l" + _local2)].layer = _local2;
this[("l" + _local2)].buttonMode = true;
this[("l" + _local2)].addEventListener(MouseEvent.MOUSE_UP, pickLayer);
_local2++;
};
this[("l" + myParent.totalLevel)].gotoAndStop(2);
backButton.addEventListener(MouseEvent.MOUSE_UP, back);
}
function mainMenu(_arg1:MouseEvent){
myParent.myParent.gotoAndStop("menu");
}
function back(_arg1:MouseEvent){
myParent.optionsPicking = false;
myParent.layersPicking = false;
}
function pickLayer(_arg1:MouseEvent){
this[("l" + myParent.totalLevel)].gotoAndStop(1);
myParent.totalLevel = _arg1.currentTarget.layer;
myParent.mapData[3][0] = _arg1.currentTarget.layer;
this[("l" + myParent.totalLevel)].gotoAndStop(2);
myParent.offsetCount = 0;
myParent.resetMap();
}
function pickScore(_arg1:MouseEvent){
if (myParent.mapScore > 0){
this[("s" + myParent.mapScore)].gotoAndStop(1);
};
myParent.mapScore = _arg1.currentTarget.score;
this[("s" + myParent.mapScore)].gotoAndStop(2);
}
public function setPos(){
x = 0xFF;
y = 0xFF;
}
public function offPos(){
x = 1000;
y = 0xFF;
}
function frame1(){
stop();
}
}
}//package com.game
Section 83
//leaderBoard (com.game.leaderBoard)
package com.game {
import flash.display.*;
import flash.text.*;
public dynamic class leaderBoard extends MovieClip {
public var playCustom:SimpleButton;
public var levelNum:TextField;
public var recentB:SimpleButton;
public var hardB:SimpleButton;
public var topB:SimpleButton;
public var menuB:SimpleButton;
}
}//package com.game
Section 84
//levelEnd (com.game.levelEnd)
package com.game {
import flash.media.*;
public dynamic class levelEnd extends Sound {
}
}//package com.game
Section 85
//lister (com.game.lister)
package com.game {
import flash.display.*;
import flash.text.*;
public dynamic class lister extends MovieClip {
public var theList:MovieClip;
public var title:TextField;
public var slider:MovieClip;
}
}//package com.game
Section 86
//listItem (com.game.listItem)
package com.game {
import flash.display.*;
import flash.text.*;
public dynamic class listItem extends MovieClip {
public var listButton:MovieClip;
public var diffFace:MovieClip;
public var scoreFace:MovieClip;
public var levelName:TextField;
}
}//package com.game
Section 87
//loadLevelWindow (com.game.loadLevelWindow)
package com.game {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class loadLevelWindow extends MovieClip {
public var loadLevelButton:SimpleButton;
public var backButton:SimpleButton;
public var levelCode:TextField;
var myParent:MovieClip;
var curTile:Array;
var colMC:MovieClip;
var a:BitmapData;
var image_bitmap;
public var myVar:String;
public function loadLevelWindow(_arg1){
curTile = new Array(1, 1);
colMC = new MovieClip();
super();
addFrameScript(0, frame1);
myParent = _arg1;
offPos();
loadLevelButton.addEventListener(MouseEvent.CLICK, loadLevelB);
backButton.addEventListener(MouseEvent.CLICK, back);
}
function loadLevelB(_arg1:MouseEvent){
myParent.setMapData(map.checkNewMap(levelCode.text));
myParent.loadLevelPicking = false;
myParent.rebuildMap();
myParent.theChar.resetMe();
myParent.theChar.startChar();
}
function back(_arg1:MouseEvent){
myParent.loadLevelPicking = false;
}
public function setPos(){
x = 0xFF;
y = 0xFF;
}
public function offPos(){
x = 1000;
y = 555;
}
function frame1(){
stop();
}
}
}//package com.game
Section 88
//LZW (com.game.LZW)
package com.game {
public class LZW {
public static function compress(_arg1:String):String{
var _local2:Number;
var _local3:Number;
var _local4:String;
var _local8:String;
var _local5:Number = 0x0100;
var _local6:String = new String(_arg1);
var _local7:Array = new Array();
_local2 = 0;
while (_local2 < _local5) {
_local7[String(_local2)] = _local2;
_local2++;
};
var _local9:String = new String("");
var _local10:Array = _local6.split("");
var _local11:Array = new Array();
_local3 = _local10.length;
_local2 = 0;
while (_local2 <= _local3) {
_local8 = new String(_local10[_local2]);
_local4 = ((_local11.length)==0) ? String(_local8.charCodeAt(0)) : ((_local11.join("-") + "-") + String(_local8.charCodeAt(0)));
if (_local7[_local4] !== undefined){
_local11.push(_local8.charCodeAt(0));
} else {
_local9 = (_local9 + String.fromCharCode(_local7[_local11.join("-")]));
_local7[_local4] = _local5;
_local5++;
_local11 = new Array();
_local11.push(_local8.charCodeAt(0));
};
_local2++;
};
return (_local9);
}
public static function decompress(_arg1:String):String{
var _local2:Number;
var _local11:Number;
var _local12:String;
var _local3:Number = 0x0100;
var _local4:Array = new Array();
_local2 = 0;
while (_local2 < _local3) {
_local4[_local2] = String.fromCharCode(_local2);
_local2++;
};
var _local5:String = new String(_arg1);
var _local6:Array = _local5.split("");
var _local7:Number = _local6.length;
var _local8:String = new String("");
var _local9:String = new String("");
var _local10:String = new String("");
_local2 = 0;
while (_local2 < _local7) {
_local11 = _local5.charCodeAt(_local2);
_local12 = _local4[_local11];
if (_local8 == ""){
_local8 = _local12;
_local10 = (_local10 + _local12);
} else {
if (_local11 <= 0xFF){
_local10 = (_local10 + _local12);
_local9 = (_local8 + _local12);
_local4[_local3] = _local9;
_local3++;
_local8 = _local12;
} else {
_local9 = _local4[_local11];
if (_local9 == null){
_local9 = (_local8 + _local8.slice(0, 1));
};
_local10 = (_local10 + _local9);
_local4[_local3] = (_local8 + _local9.slice(0, 1));
_local3++;
_local8 = _local9;
};
};
_local2++;
};
return (_local10);
}
}
}//package com.game
Section 89
//m (com.game.m)
package com.game {
import flash.media.*;
public dynamic class m extends Sound {
}
}//package com.game
Section 90
//m2 (com.game.m2)
package com.game {
import flash.media.*;
public dynamic class m2 extends Sound {
}
}//package com.game
Section 91
//map (com.game.map)
package com.game {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import fl.motion.*;
import flash.media.*;
public class map extends MovieClip {
var myParent:MovieClip;
var tileArray:Array;
var backArray:Array;
var mapWidth:Number;// = 17
var tileWidth:Number;// = 30
var boardSize;
var totalKey:Number;// = 0
var offsetCount:Number;// = 0
var totalLevel:Number;
var mapData:Array;
var mapArray:Array;
var colorArray:Array;
var charArray:Array;
var portalArray:Array;
var keyArray:Array;
var keyHolder:Array;
var flipArray:Array;
var greenArray:Array;
var destroyArray:Array;
var sliderArray:Array;
var sliderHolder:Array;
var timeArray:Array;
var timeHolder:Array;
var doorArray:Array;
var doorHolder:Array;
var doorKeyHolder:Array;
var nameArray:Array;
var introTextArray:Array;
var newOverLay:overLay;
var infade:fade1;
var trans:MovieClip;
var sliderMC:MovieClip;
var keyMC:MovieClip;
var timeMC:MovieClip;
var backMap:MovieClip;
var mapHolder:MovieClip;
var switchBox:switcher;
var poofMC:MovieClip;
var breakMC:MovieClip;
var breakArray:Array;
var overallBG:background;
var bgCover:background;
var grav:Boolean;// = true
var spinCount:Number;// = 0
public var theChar:char;
var theSlider:slider;
var shiftCount:Number;// = 0
var flipHold:Array;
var spinHold:Array;
var theTrail:charTrail;
var trailArray:Array;
var trailLength:Number;// = 6
var trailHolder:MovieClip;
var mapID:Number;
var mapDiff:Number;// = 0
var mapScore:Number;// = 0
var newMap:Boolean;// = false
var holdSaying:String;
var lineHolder:MovieClip;
var editInterface:editor_interface;
var theInterface:playInterface;
var portalLines:MovieClip;
var portalLinesArray:Array;
var TWindow:tileWindow;// = null
var CWindow:colorWindow;// = null
var SWindow:submitWindow;
var OWindow:optionsWindow;
var LWindow:layersWindow;
var VWindow:voteWindow;
var TXWindow:textWindow;
var HWindow:headWindow;
var LLWindow:loadLevelWindow;
var SlWindow:sleepWindow;
public var PWindow:pauseWindow;
public var EWindow:exitWindow;
var InWindow:introWindow;
var placePortal:Boolean;// = true
var currentPortal:Number;
var placeDoor:Boolean;// = true
var currentDoor:Number;
var doorKey:Boolean;// = false
var gameLive:Boolean;// = false
public var currentTile:Number;// = 0
var colorPicking:Boolean;// = false
var optionsPicking:Boolean;// = false
var layersPicking:Boolean;// = false
var textPicking:Boolean;// = false
var headPicking:Boolean;// = false
var loadLevelPicking:Boolean;// = false
var resetter:Boolean;// = false
var introPicking:Boolean;// = true
var fx:SoundChannel;
var staticFX:Sound;
var staticChannel:SoundChannel;
var mapBeat:Boolean;// = false
var endScreen:String;
var portalTileNum:Number;// = 149
var keyTileNum:Number;// = 148
var greenTileNum:Number;// = 147
var flipTileNum:Number;// = 142
var gravTileNum:Number;// = 144
var doorDoorNum:Number;// = 139
var doorKeyNum:Number;// = 138
var winTileNum:Number;// = 38
var fgMC:MovieClip;
var bgMC:MovieClip;
var voteCount:Number;// = 0
var voteCast:Number;// = 1800
var exitVote:Boolean;// = false
var textPick:Number;
var talkCount:Number;// = 720
var talkCast:Number;// = 800
var introTalk:Boolean;// = true
var tintCount:Number;// = 0
var tintCast:Number;// = 50
var blinkCount:Number;// = 0
var blinkCast:Number;// = 50
var charClick:Boolean;// = false
var sliderClick:Boolean;// = false
var greenClick:Boolean;// = false
var killSwitch:Boolean;// = false
var holdName:String;
public function map(_arg1:MovieClip, _arg2:Array, _arg3:Number, _arg4:String=null){
var _local5:*;
var _local6:tile_outline;
tileArray = new Array();
backArray = new Array();
boardSize = (mapWidth * mapWidth);
keyHolder = new Array();
greenArray = new Array();
destroyArray = new Array();
sliderHolder = new Array();
timeArray = new Array();
timeHolder = new Array();
doorArray = new Array();
doorHolder = new Array();
doorKeyHolder = new Array();
nameArray = new Array();
introTextArray = new Array();
sliderMC = new MovieClip();
keyMC = new MovieClip();
timeMC = new MovieClip();
backMap = new MovieClip();
mapHolder = new MovieClip();
switchBox = new switcher();
poofMC = new MovieClip();
breakMC = new MovieClip();
breakArray = new Array();
overallBG = new background();
bgCover = new background();
trailArray = new Array();
trailHolder = new MovieClip();
lineHolder = new MovieClip();
portalLines = new MovieClip();
portalLinesArray = new Array();
fx = new SoundChannel();
staticFX = new talkingBg();
staticChannel = new SoundChannel();
fgMC = new MovieClip();
bgMC = new MovieClip();
textPick = Math.random();
super();
holdName = _arg4;
myParent = _arg1;
editInterface = new editor_interface(this);
setMapData(_arg2);
mapID = _arg3;
setHolds();
if (myParent.gameState == "edit"){
gameLive = false;
} else {
gameLive = true;
};
totalKey = Math.floor((keyArray.length / 3));
x = -30;
y = -30;
addChild(overallBG);
overallBG.y = 30;
addChild(backMap);
addChild(poofMC);
addChild(bgMC);
addChild(fgMC);
addChild(mapHolder);
addChild(breakMC);
theChar = new char(this, charArray);
addChild(theChar);
if (myParent.gameState == "edit"){
addChild(lineHolder);
_local5 = 0;
while (_local5 < (mapWidth * mapWidth)) {
_local6 = new tile_outline(getHeight(_local5), getWidth(_local5));
lineHolder.addChild(_local6);
_local5++;
};
};
addChild(bgCover);
bgCover.x = 481;
bgCover.y = 20;
if (myParent.gameState == "edit"){
addChild(editInterface);
addChild(portalLines);
HWindow = new headWindow(this);
addChild(HWindow);
LLWindow = new loadLevelWindow(this);
addChild(LLWindow);
TXWindow = new textWindow(this);
addChild(TXWindow);
LWindow = new layersWindow(this);
addChild(LWindow);
OWindow = new optionsWindow(this);
addChild(OWindow);
TWindow = new tileWindow(this, offsetCount);
addChild(TWindow);
CWindow = new colorWindow(this);
addChild(CWindow);
CWindow.offPos();
SWindow = new submitWindow(this);
addChild(SWindow);
InWindow = new introWindow(this);
addChild(InWindow);
if (!myParent._sharedObj.data.editIntro){
introPicking = true;
myParent._sharedObj.data.editIntro = true;
};
} else {
if (myParent.gameState == "play"){
newOverLay = new overLay();
addChild(newOverLay);
trace((myParent.currentLevel + 1));
newOverLay.gotoAndStop((myParent.currentLevel + 1));
newOverLay.x = 30;
newOverLay.y = 30;
};
theInterface = new playInterface(this);
PWindow = new pauseWindow(this);
addChild(PWindow);
SlWindow = new sleepWindow(this);
addChild(SlWindow);
VWindow = new voteWindow(this);
addChild(VWindow);
addChild(theInterface);
theInterface.gameVocals.setInGame();
getLevelName();
infade = new fade1();
infade.x = 30;
infade.y = 30;
shiftCount = infade.totalFrames;
addChild(infade);
};
EWindow = new exitWindow(this);
addChild(EWindow);
switchBox.x = 30;
switchBox.y = 30;
switchBox.mouseEnabled = false;
switchBox.mouseChildren = false;
addChild(switchBox);
buildMap(offsetCount);
setActive();
holdSaying = getSaying("randomVocals");
}
public function setMapData(_arg1:Array):void{
var _local2:int;
var _local3:Number;
var _local4:Number;
var _local5:key;
var _local6:Number;
var _local7:timeTile;
mapData = _arg1;
mapArray = mapData[0];
colorArray = mapData[1];
charArray = mapData[2];
if (theChar){
theChar.myStart = charArray;
};
GlobalVarContainer.vars.headFlag = charArray[2];
portalArray = mapData[4];
keyArray = mapData[5];
flipArray = mapData[6];
totalLevel = mapData[3][0];
greenArray = mapData[7];
sliderArray = mapData[8];
timeArray = mapData[9];
doorArray = mapData[10];
nameArray = mapData[11];
introTextArray = mapData[12];
while (sliderHolder.length > 0) {
theSlider = sliderHolder.pop();
if (theSlider.parent){
theSlider.parent.removeChild(theSlider);
};
};
_local2 = 0;
while (_local2 < Math.floor((sliderArray.length / 3))) {
_local3 = (_local2 * 3);
theSlider = new slider(this, sliderArray[_local3], sliderArray[(_local3 + 1)], sliderArray[(_local3 + 2)]);
sliderHolder.push(theSlider);
_local2++;
};
while (keyHolder.length > 0) {
_local5 = keyHolder.pop();
if (_local5.parent){
_local5.parent.removeChild(_local5);
};
};
_local2 = 0;
while (_local2 < Math.floor((keyArray.length / 3))) {
_local4 = (_local2 * 3);
_local5 = new key(this, keyArray[_local4], keyArray[(_local4 + 1)], keyArray[(_local4 + 2)]);
keyHolder.push(_local5);
_local2++;
};
while (timeHolder.length > 0) {
_local7 = timeHolder.pop();
if (_local7.parent){
_local7.parent.removeChild(_local7);
};
};
_local2 = 0;
while (_local2 < Math.floor((timeArray.length / 4))) {
_local6 = (_local2 * 4);
_local7 = new timeTile(this, timeArray[_local6], timeArray[(_local6 + 1)], timeArray[(_local6 + 2)], timeArray[(_local6 + 3)]);
timeHolder.push(_local7);
_local2++;
};
}
public function sayText(){
var _local1:String;
var _local2:*;
if (myParent.gameState == "play"){
talkCount = 0;
introTalk = false;
if (textPick > 0.5){
_local1 = myParent.campainTextA[myParent.currentLevel];
} else {
_local1 = myParent.campainTextB[myParent.currentLevel];
};
} else {
if (myParent.gameState == "play2"){
talkCount = 0;
introTalk = false;
_local1 = myParent.campainTextC[myParent.currentLevel2];
} else {
if ((((introTextArray[0] == "")) && ((introTextArray.length <= 1)))){
_local1 = holdSaying;
} else {
_local1 = introTextArray[0];
_local2 = 1;
while (_local2 < introTextArray.length) {
_local1 = (_local1 + ("," + introTextArray[_local2]));
_local2++;
};
};
};
};
theInterface.gameVocals.startSound(_local1);
}
public function getLevelName(){
var _local1:String = nameArray[0];
var _local2:* = 1;
while (_local2 < nameArray.length) {
_local1 = (_local1 + ("," + nameArray[_local2]));
_local2++;
};
if (((theInterface) && (theInterface.levelName))){
theInterface.levelName.text = _local1;
};
}
public function buildMap(_arg1:Number=0, _arg2:Number=0){
var _local5:Number;
var _local6:Number;
var _local11:tile;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:*;
var _local19:Number;
var _local20:*;
var _local21:*;
var _local22:Number;
var _local23:Number;
var _local24:Number;
var _local25:*;
var _local26:tile;
newMap = true;
var _local3:* = (_arg1 * boardSize);
var _local4:* = (_arg1 * mapWidth);
var _local7:Number = _arg1;
var _local8:Color = new Color();
_local8.setTint(colorArray[((_local7 * 3) + 2)], 0.8);
overallBG.transform.colorTransform = _local8;
bgCover.transform.colorTransform = _local8;
if (myParent.gameState == "play"){
newOverLay.transform.colorTransform = _local8;
};
_local8.setTint(colorArray[(_local7 * 3)], 0.5);
if (myParent.gameState == "edit"){
editInterface.transform.colorTransform = _local8;
HWindow.transform.colorTransform = _local8;
LLWindow.transform.colorTransform = _local8;
TXWindow.transform.colorTransform = _local8;
LWindow.transform.colorTransform = _local8;
OWindow.transform.colorTransform = _local8;
TWindow.transform.colorTransform = _local8;
CWindow.bg.transform.colorTransform = _local8;
SWindow.transform.colorTransform = _local8;
InWindow.transform.colorTransform = _local8;
} else {
PWindow.transform.colorTransform = _local8;
SlWindow.transform.colorTransform = _local8;
VWindow.transform.colorTransform = _local8;
theInterface.transform.colorTransform = _local8;
};
EWindow.transform.colorTransform = _local8;
switchBox.transform.colorTransform = _local8;
_local8.setTint(colorArray[(_local7 * 3)], 0.5);
theChar.transform.colorTransform = _local8;
var _local9:* = 0;
while (_local9 < boardSize) {
tileArray.push(_local9);
_local9++;
};
_local9 = 0;
while (_local9 < boardSize) {
_local5 = spinX(getHeight(_local9), getWidth(_local9));
_local6 = spinY(getHeight(_local9), getWidth(_local9));
_local11 = new tile(_local5, _local6, mapArray[(_local9 + _local3)], colorArray[(_local7 * 3)], _arg1, spinHold[_arg1], flipHold[_arg1]);
mapHolder.addChild(_local11);
tileArray[((_local6 * mapWidth) + _local5)] = _local11;
if (_local11.currentFrame == 34){
if (totalKey == 0){
_local11.openDoor();
};
};
_local9++;
};
_local9 = 0;
while (_local9 < Math.floor((portalArray.length / 6))) {
_local12 = (_local9 * 6);
if (portalArray[_local12] == _arg1){
_local5 = spinX(portalArray[(_local12 + 1)], portalArray[(_local12 + 2)]);
_local6 = spinY(portalArray[(_local12 + 1)], portalArray[(_local12 + 2)]);
_local13 = spinX(portalArray[(_local12 + 4)], portalArray[(_local12 + 5)], portalArray[(_local12 + 3)]);
_local14 = spinY(portalArray[(_local12 + 4)], portalArray[(_local12 + 5)], portalArray[(_local12 + 3)]);
_local11 = new tile(_local5, _local6, portalTileNum, colorArray[(_local7 * 3)], portalArray[(_local12 + 3)]);
mapHolder.addChild(_local11);
tileArray.push(_local11);
tileArray[((mapWidth * Number(_local6)) + Number(_local5))].setTele(portalArray[(_local12 + 3)], _local13, _local14);
};
if (portalArray[(_local12 + 3)] == _arg1){
_local5 = spinX(portalArray[(_local12 + 4)], portalArray[(_local12 + 5)]);
_local6 = spinY(portalArray[(_local12 + 4)], portalArray[(_local12 + 5)]);
_local13 = spinX(portalArray[(_local12 + 1)], portalArray[(_local12 + 2)], portalArray[_local12]);
_local14 = spinY(portalArray[(_local12 + 1)], portalArray[(_local12 + 2)], portalArray[_local12]);
_local11 = new tile(_local5, _local6, portalTileNum, colorArray[(_local7 * 3)], portalArray[_local12]);
mapHolder.addChild(_local11);
tileArray.push(_local11);
tileArray[((mapWidth * Number(_local6)) + Number(_local5))].setTele(portalArray[_local12], _local13, _local14);
};
_local9++;
};
_local9 = 0;
while (_local9 < Math.floor((flipArray.length / 4))) {
_local15 = (_local9 * 4);
_local5 = spinX(flipArray[(_local15 + 1)], flipArray[(_local15 + 2)]);
_local6 = spinY(flipArray[(_local15 + 1)], flipArray[(_local15 + 2)]);
if (flipArray[_local15] == _arg1){
_local16 = flipArray[(_local15 + 3)];
_local11 = new tile(_local5, _local6, (flipTileNum + _local16), colorArray[(_local7 * 3)]);
mapHolder.addChild(_local11);
tileArray.push(_local11);
if (flipArray[(_local15 + 3)] == 2){
if (grav){
} else {
_local11.y = (_local11.y + 30);
_local11.scaleY = -1;
};
};
tileArray[((_local6 * mapWidth) + _local5)].setFlip(flipArray[(_local15 + 3)]);
};
_local9++;
};
_local9 = 0;
while (_local9 < Math.floor((destroyArray.length / 3))) {
_local17 = (_local9 * 3);
_local5 = spinX(destroyArray[_local17], destroyArray[(_local17 + 1)]);
_local6 = spinY(destroyArray[_local17], destroyArray[(_local17 + 1)]);
if (destroyArray[(_local17 + 2)] == _arg1){
tileArray[((_local6 * mapWidth) + _local5)].setTile(0, _arg1, 0);
};
_local9++;
};
_local9 = 0;
while (_local9 < sliderHolder.length) {
_local5 = sliderHolder[_local9].xTile;
_local6 = sliderHolder[_local9].yTile;
sliderHolder[_local9].setTile();
if (sliderHolder[_local9].currentLayer == offsetCount){
_local25 = 0;
while (_local25 < sliderHolder.length) {
if (sliderHolder[_local9] != sliderHolder[_local25]){
if ((((((sliderHolder[_local9].xTile == sliderHolder[_local25].xTile)) && ((sliderHolder[_local9].yTile == sliderHolder[_local25].yTile)))) && ((sliderHolder[_local9].currentLayer == sliderHolder[_local25].currentLayer)))){
makeBreakPoof(_local5, _local6, sliderHolder[_local9].currentLayer);
sliderHolder[_local9].breakSlider();
setActive();
};
};
_local25++;
};
};
if (((!((_local5 == 0))) && ((sliderHolder[_local9].currentLayer == offsetCount)))){
if (tileArray[((_local6 * mapWidth) + _local5)].isClear()){
destroyTile(_local5, _local6, _local7);
tileArray[((_local6 * mapWidth) + _local5)].setTile(0, offsetCount, colorArray[(_local7 * 3)]);
};
};
_local9++;
};
if (_arg1 >= totalLevel){
_local18 = 0;
} else {
_local18++;
};
if ((doorArray.length / 6) < doorHolder.length){
_local9 = 0;
while (_local9 < Math.floor((doorArray.length / 6))) {
doorHolder.push(new tile(_local5, _local6, doorDoorNum, colorArray[(_local7 * 3)]));
doorKeyHolder.push(new tile(_local5, _local6, doorKeyNum, colorArray[(_local7 * 3)]));
_local9++;
};
};
_local9 = 0;
while (_local9 < Math.floor((doorArray.length / 6))) {
_local19 = (_local9 * 6);
_local5 = spinX(doorArray[(_local19 + 1)], doorArray[(_local19 + 2)]);
_local6 = spinY(doorArray[(_local19 + 1)], doorArray[(_local19 + 2)]);
if (doorArray[_local19] == _arg1){
_local11 = new tile(_local5, _local6, doorKeyNum, colorArray[(_local7 * 3)]);
mapHolder.addChild(_local11);
doorKeyHolder[_local9] = _local11;
tileArray.push(_local11);
};
_local5 = spinX(doorArray[(_local19 + 4)], doorArray[(_local19 + 5)]);
_local6 = spinY(doorArray[(_local19 + 4)], doorArray[(_local19 + 5)]);
if (doorArray[(_local19 + 3)] == _arg1){
_local11 = new tile(_local5, _local6, doorDoorNum, colorArray[(_local7 * 3)]);
mapHolder.addChild(_local11);
tileArray.push(_local11);
doorHolder[_local9] = _local11;
_local20 = spinX(doorArray[(_local19 + 1)], doorArray[(_local19 + 2)]);
_local21 = spinY(doorArray[(_local19 + 1)], doorArray[(_local19 + 2)]);
if ((((_local20 == theChar.xTile)) && ((_local21 == theChar.yTile)))){
_local11.startOpen = true;
};
_local25 = 0;
while (_local25 < sliderHolder.length) {
if ((((((_local20 == sliderHolder[_local25].xTile)) && ((_local21 == sliderHolder[_local25].yTile)))) && ((doorArray[_local19] == sliderHolder[_local25].currentLayer)))){
_local11.startOpen = true;
};
_local25++;
};
_local25 = 0;
while (_local25 < Math.floor((greenArray.length / 6))) {
_local24 = (_local25 * 6);
greenSpinX(greenArray[(_local24 + 1)], greenArray[(_local24 + 2)], _local24);
_local22 = greenSpinX(greenArray[(_local24 + 1)], greenArray[(_local24 + 2)], _local24);
_local23 = greenSpinY(greenArray[(_local24 + 1)], greenArray[(_local24 + 2)], _local24);
if ((((((_local20 == _local22)) && ((_local21 == _local23)))) && ((doorArray[_local19] == greenArray[(_local24 + 3)])))){
_local11.startOpen = true;
};
_local25++;
};
};
_local9++;
};
var _local10:Boolean;
_local9 = 0;
while (_local9 < Math.floor((greenArray.length / 6))) {
_local24 = (_local9 * 6);
_local5 = greenSpinX(greenArray[(_local24 + 1)], greenArray[(_local24 + 2)], _local24);
_local6 = greenSpinY(greenArray[(_local24 + 1)], greenArray[(_local24 + 2)], _local24);
if (greenArray[(_local24 + 3)] == _arg1){
_local25 = 0;
while (_local25 < sliderHolder.length) {
if ((((((sliderHolder[_local25].xTile == _local5)) && ((sliderHolder[_local25].yTile == _local6)))) && ((sliderHolder[_local25].currentLayer == _arg1)))){
if ((((_local25 == theChar.slowTar)) && (theChar.slowPush))){
theChar.breakPush();
};
sliderHolder[_local25].breakSlider();
destroyTile(_local5, _local6, _local7);
};
_local25++;
};
if (tileArray[((_local6 * mapWidth) + _local5)].isClear()){
destroyTile(_local5, _local6, _local7);
};
tileArray[((_local6 * mapWidth) + _local5)].setTile(greenTileNum, _arg1, colorArray[(_local7 * 3)]);
};
_local9++;
};
if (totalLevel >= 1){
if (_arg1 >= totalLevel){
_arg1 = 0;
} else {
_arg1++;
};
_local3 = (_arg1 * boardSize);
_local9 = 0;
while (_local9 < boardSize) {
backArray.push(_local9);
_local9++;
};
_local9 = 0;
while (_local9 < boardSize) {
_local5 = spinX(getHeight(_local9), getWidth(_local9), _arg1);
_local6 = spinY(getHeight(_local9), getWidth(_local9), _arg1);
_local26 = new tile(_local5, _local6, mapArray[(_local9 + _local3)], colorArray[((_local7 * 3) + 1)], _arg1, spinHold[_arg1], flipHold[_arg1]);
backMap.addChild(_local26);
backArray[((_local6 * mapWidth) + _local5)] = _local26;
_local9++;
};
_local9 = 0;
while (_local9 < Math.floor((portalArray.length / 6))) {
_local12 = (_local9 * 6);
if (portalArray[_local12] == _arg1){
_local5 = spinX(portalArray[(_local12 + 1)], portalArray[(_local12 + 2)], _arg1);
_local6 = spinY(portalArray[(_local12 + 1)], portalArray[(_local12 + 2)], _arg1);
_local13 = spinX(portalArray[(_local12 + 4)], portalArray[(_local12 + 5)], portalArray[(_local12 + 3)]);
_local14 = spinY(portalArray[(_local12 + 4)], portalArray[(_local12 + 5)], portalArray[(_local12 + 3)]);
_local11 = new tile(_local5, _local6, portalTileNum, colorArray[((_local7 * 3) + 1)]);
backMap.addChild(_local11);
backArray.push(_local11);
};
if (portalArray[(_local12 + 3)] == _arg1){
_local5 = spinX(portalArray[(_local12 + 4)], portalArray[(_local12 + 5)], _arg1);
_local6 = spinY(portalArray[(_local12 + 4)], portalArray[(_local12 + 5)], _arg1);
_local13 = spinX(portalArray[(_local12 + 1)], portalArray[(_local12 + 2)], portalArray[_local12]);
_local14 = spinY(portalArray[(_local12 + 1)], portalArray[(_local12 + 2)], portalArray[_local12]);
_local11 = new tile(_local5, _local6, portalTileNum, colorArray[((_local7 * 3) + 1)]);
backMap.addChild(_local11);
backArray.push(_local11);
};
_local9++;
};
_local9 = 0;
while (_local9 < Math.floor((flipArray.length / 4))) {
_local15 = (_local9 * 4);
_local5 = spinX(flipArray[(_local15 + 1)], flipArray[(_local15 + 2)], _arg1);
_local6 = spinY(flipArray[(_local15 + 1)], flipArray[(_local15 + 2)], _arg1);
if (flipArray[_local15] == _arg1){
_local16 = flipArray[(_local15 + 3)];
_local11 = new tile(_local5, _local6, (flipTileNum + _local16), colorArray[((_local7 * 3) + 1)]);
backMap.addChild(_local11);
backArray.push(_local11);
if (flipArray[(_local15 + 3)] == 2){
if (grav){
} else {
_local11.y = (_local11.y + 30);
_local11.scaleY = -1;
};
};
};
_local9++;
};
_local9 = 0;
while (_local9 < Math.floor((doorArray.length / 6))) {
_local19 = (_local9 * 6);
_local5 = spinX(doorArray[(_local19 + 1)], doorArray[(_local19 + 2)], _arg1);
_local6 = spinY(doorArray[(_local19 + 1)], doorArray[(_local19 + 2)], _arg1);
if (doorArray[_local19] == _arg1){
_local11 = new tile(_local5, _local6, doorKeyNum, colorArray[((_local7 * 3) + 1)]);
backMap.addChild(_local11);
backArray.push(_local11);
doorKeyHolder[_local9] = _local11;
};
_local5 = spinX(doorArray[(_local19 + 4)], doorArray[(_local19 + 5)], _arg1);
_local6 = spinY(doorArray[(_local19 + 4)], doorArray[(_local19 + 5)], _arg1);
if (doorArray[(_local19 + 3)] == _arg1){
_local11 = new tile(_local5, _local6, doorDoorNum, colorArray[((_local7 * 3) + 1)]);
backMap.addChild(_local11);
backArray.push(_local11);
doorHolder[_local9] = _local11;
};
_local20 = spinX(doorArray[(_local19 + 1)], doorArray[(_local19 + 2)]);
_local21 = spinY(doorArray[(_local19 + 1)], doorArray[(_local19 + 2)]);
if (doorArray[(_local19 + 3)] == _arg1){
if ((((_local20 == theChar.xTile)) && ((_local21 == theChar.yTile)))){
_local11.startOpen = true;
};
_local25 = 0;
while (_local25 < sliderHolder.length) {
if ((((((_local20 == sliderHolder[_local25].xTile)) && ((_local21 == sliderHolder[_local25].yTile)))) && ((doorArray[_local19] == sliderHolder[_local25].currentLayer)))){
_local11.startOpen = true;
};
_local25++;
};
_local25 = 0;
while (_local25 < Math.floor((greenArray.length / 6))) {
_local24 = (_local25 * 6);
greenSpinX(greenArray[(_local24 + 1)], greenArray[(_local24 + 2)], _local24);
_local22 = greenSpinX(greenArray[(_local24 + 1)], greenArray[(_local24 + 2)], _local24);
_local23 = greenSpinY(greenArray[(_local24 + 1)], greenArray[(_local24 + 2)], _local24);
if ((((((_local20 == _local22)) && ((_local21 == _local23)))) && ((doorArray[_local19] == greenArray[(_local24 + 3)])))){
_local11.startOpen = true;
};
_local25++;
};
};
_local9++;
};
_local9 = 0;
while (_local9 < Math.floor((destroyArray.length / 3))) {
_local17 = (_local9 * 3);
_local5 = spinX(destroyArray[_local17], destroyArray[(_local17 + 1)], _arg1);
_local6 = spinY(destroyArray[_local17], destroyArray[(_local17 + 1)], _arg1);
if (destroyArray[(_local17 + 2)] == _arg1){
backArray[((_local6 * mapWidth) + _local5)].setTile(0, _arg1, colorArray[(_local7 * 3)]);
};
_local9++;
};
_local9 = 0;
while (_local9 < Math.floor((greenArray.length / 6))) {
_local24 = (_local9 * 6);
_local5 = greenSpinX(greenArray[(_local24 + 1)], greenArray[(_local24 + 2)], _local24);
_local6 = greenSpinY(greenArray[(_local24 + 1)], greenArray[(_local24 + 2)], _local24);
if (greenArray[(_local24 + 3)] == _arg1){
backArray[((_local6 * mapWidth) + _local5)].setTile(greenTileNum, _arg1, colorArray[((_local7 * 3) + 1)]);
};
_local9++;
};
if (theChar.checkDeath()){
theChar.isDead = true;
theChar.deadCount = 0;
shiftCount = 0;
};
};
}
function getHeight(_arg1):Number{
return ((_arg1 % mapWidth));
}
function getWidth(_arg1):Number{
return (Math.floor((_arg1 / mapWidth)));
}
public function removeKey(_arg1):void{
mapHolder.removeChild(_arg1);
tileArray.splice(tileArray.indexOf(_arg1), 1, null);
}
public function destroyTile(_arg1, _arg2, _arg3){
var _local4:Number = unSpinX(_arg1, _arg2);
var _local5:Number = unSpinY(_arg1, _arg2);
destroyArray.push(_local4);
destroyArray.push(_local5);
destroyArray.push(offsetCount);
makeBreakPoof(_arg1, _arg2, _arg3);
}
function makeBreakPoof(_arg1, _arg2, _arg3, _arg4:Number=10){
var _local7:tile_chunk;
var _local5:* = 0;
while (_local5 <= _arg4) {
_local7 = new tile_chunk(this, _arg1, _arg2, colorArray[(_arg3 * 3)]);
breakArray.push(_local7);
breakMC.addChild(_local7);
_local5++;
};
var _local6:breakPoof = new breakPoof(_arg1, _arg2, colorArray[(_arg3 * 3)]);
poofMC.addChild(_local6);
tileBreakSound();
}
function tileBreakSound(){
var _local1:Number = Math.ceil((Math.random() * 3));
playSoundFX(("blockbreak" + _local1));
}
function checkGreens():void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local1:Number = 0;
while (_local1 < Math.floor((greenArray.length / 6))) {
_local2 = (_local1 * 6);
_local3 = greenSpinX(greenArray[(_local2 + 1)], greenArray[(_local2 + 2)], _local2);
_local4 = greenSpinY(greenArray[(_local2 + 1)], greenArray[(_local2 + 2)], _local2);
if (greenArray[(_local2 + 3)] == offsetCount){
if (grav){
if (((((myParent.upLook) && ((Math.abs(theChar.xSpeed) < 1)))) || (theChar.jumping))){
_local7 = Math.abs(((theChar.y - 3) - ((_local4 * tileWidth) + (tileWidth / 2))));
} else {
_local7 = Math.abs(((theChar.y + 6) - ((_local4 * tileWidth) + (tileWidth / 2))));
};
} else {
if (((((myParent.upLook) && ((Math.abs(theChar.xSpeed) < 1)))) || (theChar.jumping))){
_local7 = Math.abs(((theChar.y + 3) - ((_local4 * tileWidth) + (tileWidth / 2))));
} else {
_local7 = Math.abs(((theChar.y - 6) - ((_local4 * tileWidth) + (tileWidth / 2))));
};
};
_local5 = Math.abs((theChar.x - ((_local3 * tileWidth) + (tileWidth / 2))));
_local6 = Math.sqrt(((_local5 * _local5) + (_local7 * _local7)));
if ((((((_local5 < 25)) && ((_local7 < 35)))) && ((_local6 < 35)))){
if (greenArray[(_local2 + 3)] >= totalLevel){
greenArray[(_local2 + 3)] = 0;
} else {
var _local8 = greenArray;
var _local9 = (_local2 + 3);
var _local10 = (_local8[_local9] + 1);
_local8[_local9] = _local10;
};
};
};
_local1++;
};
}
function checkSliders():void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local1:* = 0;
while (_local1 < sliderHolder.length) {
_local2 = sliderHolder[_local1].x;
_local3 = sliderHolder[_local1].y;
if (sliderHolder[_local1].currentLayer == offsetCount){
_local4 = Math.abs((theChar.y - _local3));
_local5 = Math.abs((theChar.x - _local2));
_local6 = Math.sqrt(((_local5 * _local5) + (_local4 * _local4)));
if ((((((_local5 < 25)) && ((_local4 < 35)))) && ((_local6 < 35)))){
if (sliderHolder[_local1].currentLayer >= totalLevel){
sliderHolder[_local1].currentLayer = 0;
} else {
sliderHolder[_local1].currentLayer++;
};
};
};
_local1++;
};
}
function SFGreens():void{
var _local2:Number;
var _local1:* = 0;
while (_local1 < Math.floor((greenArray.length / 6))) {
_local2 = (_local1 * 6);
_local1++;
};
}
function tintGreens():void{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local1:Boolean;
var _local2:Number = 0;
while (_local2 < Math.floor((greenArray.length / 6))) {
_local3 = (_local2 * 6);
_local4 = greenSpinX(greenArray[(_local3 + 1)], greenArray[(_local3 + 2)], _local3);
_local5 = greenSpinY(greenArray[(_local3 + 1)], greenArray[(_local3 + 2)], _local3);
if (greenArray[(_local3 + 3)] == offsetCount){
if (grav){
if (((((myParent.upLook) && ((Math.abs(theChar.xSpeed) < 1)))) || (theChar.jumping))){
_local8 = Math.abs(((theChar.y - 3) - ((_local5 * tileWidth) + (tileWidth / 2))));
} else {
_local8 = Math.abs(((theChar.y + 6) - ((_local5 * tileWidth) + (tileWidth / 2))));
};
} else {
if (((((myParent.upLook) && ((Math.abs(theChar.xSpeed) < 1)))) || (theChar.jumping))){
_local8 = Math.abs(((theChar.y + 3) - ((_local5 * tileWidth) + (tileWidth / 2))));
} else {
_local8 = Math.abs(((theChar.y - 6) - ((_local5 * tileWidth) + (tileWidth / 2))));
};
};
_local6 = Math.abs((theChar.x - ((_local4 * tileWidth) + (tileWidth / 2))));
_local7 = Math.sqrt(((_local6 * _local6) + (_local8 * _local8)));
if ((((((_local6 < 25)) && ((_local8 < 35)))) && ((_local7 < 35)))){
_local1 = true;
tileArray[((_local5 * mapWidth) + _local4)].green.play();
} else {
tileArray[((_local5 * mapWidth) + _local4)].green.stop();
};
};
_local2++;
};
if (_local1){
playBlink();
};
}
function tintSliders():void{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local1:Boolean;
var _local2:* = 0;
while (_local2 < sliderHolder.length) {
_local3 = sliderHolder[_local2].x;
_local4 = sliderHolder[_local2].y;
if (sliderHolder[_local2].currentLayer == offsetCount){
_local5 = Math.abs((theChar.y - _local4));
_local6 = Math.abs((theChar.x - _local3));
_local7 = Math.sqrt(((_local6 * _local6) + (_local5 * _local5)));
if ((((((_local6 < 25)) && ((_local5 < 35)))) && ((_local7 < 35)))){
_local1 = true;
sliderHolder[_local2].play();
} else {
if (sliderHolder[_local2].currentFrame != 1){
sliderHolder[_local2].gotoAndStop(1);
};
};
};
_local2++;
};
if (_local1){
playBlink();
};
}
public function playGame():void{
if (voteCount <= voteCast){
voteCount++;
};
if (trans){
if (trans.currentFrame == trans.totalFrames){
endTrans();
};
};
if (!mapBeat){
if (gameLive){
playGameRoot();
changeMap();
};
} else {
if ((((myParent.gameState == "multi")) || ((myParent.gameState == "multiC")))){
if (endScreen == "submit"){
if (VWindow.x > 600){
stopStaticFX();
VWindow.setPos();
};
};
};
};
}
function setActive(){
var _local1:* = (offsetCount + 1);
if (_local1 > totalLevel){
_local1 = (_local1 - (totalLevel + 1));
};
var _local2:* = (fgMC.numChildren - 1);
while (_local2 >= 0) {
fgMC.removeChildAt(_local2);
_local2--;
};
_local2 = (bgMC.numChildren - 1);
while (_local2 >= 0) {
bgMC.removeChildAt(_local2);
_local2--;
};
var _local3:Color = new Color();
_local3.setTint(colorArray[(offsetCount * 3)], 0.5);
fgMC.transform.colorTransform = _local3;
_local3.setTint(colorArray[((offsetCount * 3) + 1)], 0.5);
bgMC.transform.colorTransform = _local3;
_local2 = 0;
while (_local2 < sliderHolder.length) {
if (sliderHolder[_local2].currentLayer == offsetCount){
fgMC.addChild(sliderHolder[_local2]);
} else {
if (sliderHolder[_local2].currentLayer == _local1){
bgMC.addChild(sliderHolder[_local2]);
};
};
_local2++;
};
_local2 = 0;
while (_local2 < timeHolder.length) {
if (timeHolder[_local2].currentLayer == offsetCount){
fgMC.addChild(timeHolder[_local2]);
} else {
if (timeHolder[_local2].currentLayer == _local1){
bgMC.addChild(timeHolder[_local2]);
};
};
_local2++;
};
_local2 = 0;
while (_local2 < keyHolder.length) {
if (keyHolder[_local2].currentLayer == offsetCount){
fgMC.addChild(keyHolder[_local2]);
} else {
if (keyHolder[_local2].currentLayer == _local1){
bgMC.addChild(keyHolder[_local2]);
};
};
_local2++;
};
}
function changeMap(_arg1:Boolean=false):Boolean{
var _local2:Number;
if (((myParent.mapShift) || (_arg1))){
if (totalLevel != 0){
checkGreens();
checkSliders();
myParent.mapShift = false;
shiftCount = 10;
switchBox.gotoAndPlay("layer");
_local2 = Math.ceil((Math.random() * 3));
playSoundFX(("layer_change" + _local2));
removeMap();
offsetInc();
buildMap(offsetCount);
setActive();
return (true);
};
playSoundFX("error");
myParent.mapShift = false;
return (false);
//unresolved jump
};
return (false);
}
function getSaying(_arg1:String):String{
var _local2:String;
_local2 = myParent[_arg1][Math.floor((Math.random() * myParent[_arg1].length))];
return (_local2);
}
public function playGameRoot():void{
var _local1:Number;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
var _local5:Number;
var _local6:*;
var _local7:*;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Boolean;
var _local12:*;
var _local13:*;
if (myParent.gameState != "edit"){
theInterface.gameVocals.playSound();
if (!theInterface.gameVocals.isPlaying){
if (talkCount > talkCast){
talkCount = 0;
if (introTalk){
sayText();
introTalk = false;
} else {
theInterface.gameVocals.startSound(getSaying("randomVocals"));
};
} else {
talkCount++;
};
};
};
tintGreens();
tintSliders();
_local13 = 0;
while (_local13 < Math.floor((doorArray.length / 6))) {
_local1 = _local13;
_local2 = (_local13 * 6);
if (doorArray[_local2] != "undefined"){
_local3 = false;
_local4 = spinX(doorArray[(_local2 + 1)], doorArray[(_local2 + 2)]);
_local5 = spinY(doorArray[(_local2 + 1)], doorArray[(_local2 + 2)]);
if (doorArray[_local2] == offsetCount){
if ((((_local4 == theChar.xTile)) && ((_local5 == theChar.yTile)))){
_local3 = true;
};
};
_local4 = spinX(doorArray[(_local2 + 1)], doorArray[(_local2 + 2)], doorArray[_local2]);
_local5 = spinY(doorArray[(_local2 + 1)], doorArray[(_local2 + 2)], doorArray[_local2]);
_local6 = 0;
while (_local6 < sliderHolder.length) {
if ((((((_local4 == sliderHolder[_local6].xTile)) && ((_local5 == sliderHolder[_local6].yTile)))) && ((doorArray[_local2] == sliderHolder[_local6].currentLayer)))){
_local3 = true;
};
_local6++;
};
_local6 = 0;
while (_local6 < Math.floor((greenArray.length / 6))) {
_local8 = (_local6 * 6);
_local9 = greenSpinX(greenArray[(_local8 + 1)], greenArray[(_local8 + 2)], _local8);
_local10 = greenSpinY(greenArray[(_local8 + 1)], greenArray[(_local8 + 2)], _local8);
if ((((((_local4 == _local9)) && ((_local5 == _local10)))) && ((doorArray[_local2] == greenArray[(_local8 + 3)])))){
_local3 = true;
};
_local6++;
};
_local7 = (offsetCount + 1);
if (_local7 > totalLevel){
_local7 = (_local7 - (totalLevel + 1));
};
if (_local3){
if (offsetCount == doorArray[_local2]){
doorKeyHolder[_local13].doorKey.play();
};
} else {
if (offsetCount == doorArray[_local2]){
doorKeyHolder[_local13].doorKey.gotoAndStop(1);
};
};
if (doorArray[(_local2 + 3)] == offsetCount){
_local4 = spinX(doorArray[(_local2 + 4)], doorArray[(_local2 + 5)]);
_local5 = spinY(doorArray[(_local2 + 4)], doorArray[(_local2 + 5)]);
if (_local3){
if (doorHolder[_local13].door.currentFrame <= 7){
if (doorHolder[_local13].door.currentFrame == 1){
playSoundFX("door_open");
};
doorHolder[_local13].door.play();
};
_local11 = false;
_local12 = 0;
while (_local12 < sliderHolder.length) {
if ((((((sliderHolder[_local12].xTile == _local4)) && ((sliderHolder[_local12].yTile == _local5)))) && ((sliderHolder[_local12].currentLayer == offsetCount)))){
_local11 = true;
};
_local12++;
};
if (!_local11){
tileArray[((_local5 * mapWidth) + _local4)].setNotWalk();
};
} else {
if (doorHolder[_local13].door.currentFrame > 7){
trace(doorHolder[_local13].door.currentFrame);
if (doorHolder[_local13].door.currentFrame == 8){
};
doorHolder[_local13].door.play();
};
_local12 = 0;
while (_local12 < sliderHolder.length) {
if ((((((sliderHolder[_local12].xTile == _local4)) && ((sliderHolder[_local12].yTile == _local5)))) && ((sliderHolder[_local12].currentLayer == offsetCount)))){
setActive();
};
_local12++;
};
tileArray[((_local5 * mapWidth) + _local4)].setWalk();
};
} else {
if (doorArray[(_local2 + 3)] == _local7){
if (_local3){
if (doorHolder[_local13].door.currentFrame <= 7){
doorHolder[_local13].door.play();
};
} else {
if (doorHolder[_local13].door.currentFrame > 7){
doorHolder[_local13].door.play();
};
};
};
};
};
_local13++;
};
moveBreaks();
if (newMap){
newMap = false;
};
if (shiftCount <= 0){
theChar.moveChar();
if (infade){
removeChild(infade);
infade = null;
};
} else {
shiftCount--;
};
_local13 = 0;
while (_local13 < sliderHolder.length) {
if (sliderHolder[_local13].currentLayer == offsetCount){
if (shiftCount <= 0){
sliderHolder[_local13].solidSlider();
};
};
_local13++;
};
if (!theChar.isDead){
_local13 = 0;
while (_local13 < sliderHolder.length) {
if (sliderHolder[_local13].currentLayer == offsetCount){
if (shiftCount <= 0){
sliderHolder[_local13].moveSlider();
};
};
_local13++;
};
};
_local13 = 0;
while (_local13 < keyHolder.length) {
if (keyHolder[_local13].currentLayer == offsetCount){
if (shiftCount <= 0){
keyHolder[_local13].moveKey();
};
};
_local13++;
};
_local13 = 0;
while (_local13 < timeHolder.length) {
if (timeHolder[_local13].currentLayer == offsetCount){
if (shiftCount <= 0){
timeHolder[_local13].moveTime();
};
};
_local13++;
};
}
public function playEditor():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:String;
var _local6:Boolean;
var _local7:*;
var _local8:Number;
var _local9:Boolean;
var _local10:Number;
var _local11:key;
var _local12:Boolean;
var _local13:Number;
var _local14:Boolean;
var _local15:Number;
var _local16:slider;
var _local17:Boolean;
var _local18:Number;
var _local19:timeTile;
var _local20:Boolean;
var _local21:Number;
var _local22:Number;
if (!gameLive){
if (((((((((((((!(colorPicking)) && (!(optionsPicking)))) && (!(layersPicking)))) && (!(textPicking)))) && (!(headPicking)))) && (!(introPicking)))) && (!(loadLevelPicking)))){
_local1 = Math.floor((mouseX / 30));
_local2 = Math.floor((mouseY / 30));
if ((((((((mouseX > 30)) && ((mouseX < 480)))) && ((mouseY > 30)))) && ((mouseY < 480)))){
_local5 = "";
if (currentTile == 200){
_local5 = TWindow.charDesc;
} else {
if (currentTile == 201){
_local5 = TWindow.portalDesc;
} else {
if (currentTile == 202){
_local5 = TWindow.keyDesc;
} else {
if (currentTile == 203){
_local5 = TWindow.greenDesc;
} else {
if (currentTile == 204){
_local5 = TWindow.sliderDesc;
} else {
if (currentTile == 205){
_local5 = TWindow.timeDesc;
} else {
if (currentTile == 206){
_local5 = TWindow.doorDesc;
} else {
if (currentTile >= 300){
_local5 = TWindow.flipArray[(currentTile - 300)];
} else {
_local5 = TWindow.descArray[currentTile];
};
};
};
};
};
};
};
};
TWindow.blockDesc.text = _local5;
};
if (myParent.mouseDown){
if ((((((((mouseX > 30)) && ((mouseX < 480)))) && ((mouseY > 30)))) && ((mouseY < 480)))){
if (myParent.shiftHold){
if ((((charArray[0] == _local1)) && ((charArray[1] == _local2)))){
currentTile = 200;
} else {
if (checkPortal(_local1, _local2, offsetCount)){
currentTile = 201;
} else {
if (checkKey(_local1, _local2, offsetCount)){
currentTile = 202;
} else {
if (checkGreen(_local1, _local2, offsetCount)){
currentTile = 203;
} else {
if (checkSlider(_local1, _local2, offsetCount)){
currentTile = 204;
} else {
if (checkTime(_local1, _local2, offsetCount)){
currentTile = 205;
} else {
if (checkDoor(_local1, _local2, offsetCount)){
currentTile = 206;
} else {
if (checkFlip(_local1, _local2, offsetCount)){
currentTile = getFlipNum(_local1, _local2, offsetCount);
} else {
currentTile = mapArray[(((_local2 * mapWidth) + _local1) + (offsetCount * boardSize))];
};
};
};
};
};
};
};
};
TWindow.movePicker();
} else {
if (myParent.upMove){
if (checkPortal(_local1, _local2, offsetCount)){
removePortal(_local1, _local2, offsetCount);
currentPortal = (currentPortal - 1);
} else {
if (checkKey(_local1, _local2, offsetCount)){
removeKeyB(_local1, _local2, offsetCount);
} else {
if (checkGreen(_local1, _local2, offsetCount)){
removeGreen(_local1, _local2, offsetCount);
} else {
if (checkSlider(_local1, _local2, offsetCount)){
removeSlider(_local1, _local2, offsetCount);
} else {
if (checkTime(_local1, _local2, offsetCount)){
removeTime(_local1, _local2, offsetCount);
} else {
if (checkDoor(_local1, _local2, offsetCount)){
removeDoor(_local1, _local2, offsetCount);
currentDoor = (currentDoor - 1);
} else {
if (checkFlip(_local1, _local2, offsetCount)){
removeFlip(_local1, _local2, offsetCount);
} else {
mapArray[(((_local2 * mapWidth) + _local1) + (offsetCount * boardSize))] = 0;
tileArray[((_local2 * mapWidth) + _local1)].setTile(0, offsetCount, colorArray[(offsetCount * 3)]);
};
};
};
};
};
};
};
} else {
if (currentTile == 200){
if (tileArray[((mapWidth * _local2) + _local1)].isClear()){
mapArray[(((_local2 * mapWidth) + _local1) + (offsetCount * boardSize))] = 0;
};
charArray[0] = _local1;
charArray[1] = _local2;
resetMap();
myParent.mouseDown = false;
} else {
if (currentTile == 201){
trace(portalArray);
if (placePortal){
_local6 = false;
_local7 = 0;
while (_local7 < Math.floor((portalArray.length / 6))) {
trace(_local7);
_local8 = (_local7 * 6);
if ((((((((portalArray[_local8] == offsetCount)) && ((portalArray[(_local8 + 1)] == _local1)))) && ((portalArray[(_local8 + 2)] == _local2)))) || ((((((portalArray[(_local8 + 3)] == offsetCount)) && ((portalArray[(_local8 + 4)] == _local1)))) && ((portalArray[(_local8 + 5)] == _local2)))))){
portalArray[_local8] = offsetCount;
portalArray[(_local8 + 1)] = _local1;
portalArray[(_local8 + 2)] = _local2;
portalArray[(_local8 + 3)] = offsetCount;
portalArray[(_local8 + 4)] = _local1;
portalArray[(_local8 + 5)] = _local2;
rebuildMap();
_local6 = true;
currentPortal = _local7;
};
_local7++;
};
if (_local6){
} else {
currentPortal = Math.floor((portalArray.length / 6));
_local3 = (Math.floor((portalArray.length / 6)) * 6);
portalArray.push(offsetCount);
portalArray.push(_local1);
portalArray.push(_local2);
portalArray.push(offsetCount);
portalArray.push(_local1);
portalArray.push(_local2);
if (tileArray[((mapWidth * _local2) + _local1)].isClear()){
mapArray[(((_local2 * mapWidth) + _local1) + (offsetCount * boardSize))] = 0;
};
rebuildMap();
};
placePortal = false;
} else {
_local3 = (currentPortal * 6);
if ((((_local1 == portalArray[(_local3 + 1)])) && ((_local2 == portalArray[(_local3 + 2)])))){
portalArray.splice(_local3, 6);
rebuildMap();
} else {
trace("2nd bit");
portalArray[(_local3 + 3)] = offsetCount;
portalArray[(_local3 + 4)] = _local1;
portalArray[(_local3 + 5)] = _local2;
if (tileArray[((mapWidth * _local2) + _local1)].isClear()){
mapArray[(((_local2 * mapWidth) + _local1) + (offsetCount * boardSize))] = 0;
};
rebuildMap();
};
placePortal = true;
};
myParent.mouseDown = false;
} else {
if (currentTile == 202){
_local9 = false;
_local10 = (Math.floor((keyArray.length / 3)) * 3);
_local7 = 0;
while (_local7 < Math.floor((keyArray.length / 3))) {
_local8 = (_local7 * 3);
if ((((((keyArray[_local8] == offsetCount)) && ((keyArray[(_local8 + 1)] == _local1)))) && ((keyArray[(_local8 + 2)] == _local2)))){
_local9 = true;
keyArray.splice(_local8, 3);
fgMC.removeChild(keyHolder[_local7]);
keyHolder.splice(_local7, 1);
rebuildMap();
};
_local7++;
};
if (!_local9){
keyArray.push(offsetCount);
keyArray.push(_local1);
keyArray.push(_local2);
_local11 = new key(this, keyArray[_local10], keyArray[(_local10 + 1)], keyArray[(_local10 + 2)]);
fgMC.addChild(_local11);
keyHolder.push(_local11);
if (tileArray[((mapWidth * _local2) + _local1)].isClear()){
mapArray[(((_local2 * mapWidth) + _local1) + (offsetCount * boardSize))] = 0;
};
rebuildMap();
};
myParent.mouseDown = false;
} else {
if (currentTile == 203){
if (!checkSlider(_local1, _local2, offsetCount)){
trace(greenArray);
_local12 = true;
_local7 = 0;
while (_local7 < Math.floor((greenArray.length / 6))) {
_local13 = (_local7 * 6);
if (greenArray[(_local13 + 3)] == offsetCount){
if ((((_local1 == greenArray[(_local13 + 1)])) && ((_local2 == greenArray[(_local13 + 2)])))){
greenArray.splice(_local13, 6);
rebuildMap();
_local12 = false;
};
};
_local7++;
};
if (_local12){
if (tileArray[((mapWidth * _local2) + _local1)].isClear()){
mapArray[(((_local2 * mapWidth) + _local1) + (offsetCount * boardSize))] = 0;
};
tileArray[((_local2 * mapWidth) + _local1)].setTile(greenTileNum, offsetCount, colorArray[(offsetCount * 3)]);
greenArray.push(offsetCount);
greenArray.push(_local1);
greenArray.push(_local2);
greenArray.push(offsetCount);
greenArray.push(0);
greenArray.push(0);
};
myParent.mouseDown = false;
};
} else {
if (currentTile == 204){
if (!checkGreen(_local1, _local2, offsetCount)){
_local14 = false;
_local15 = (Math.floor((sliderArray.length / 3)) * 3);
_local7 = 0;
while (_local7 < Math.floor((sliderArray.length / 3))) {
_local8 = (_local7 * 3);
if ((((((sliderArray[_local8] == offsetCount)) && ((sliderArray[(_local8 + 1)] == _local1)))) && ((sliderArray[(_local8 + 2)] == _local2)))){
_local14 = true;
sliderArray.splice(_local8, 3);
fgMC.removeChild(sliderHolder[_local7]);
sliderHolder.splice(_local7, 1);
rebuildMap();
};
_local7++;
};
if (!_local14){
sliderArray.push(offsetCount);
sliderArray.push(_local1);
sliderArray.push(_local2);
_local16 = new slider(this, sliderArray[_local15], sliderArray[(_local15 + 1)], sliderArray[(_local15 + 2)]);
fgMC.addChild(_local16);
sliderHolder.push(_local16);
if (tileArray[((mapWidth * _local2) + _local1)].isClear()){
mapArray[(((_local2 * mapWidth) + _local1) + (offsetCount * boardSize))] = 0;
};
trace(sliderArray);
rebuildMap();
};
myParent.mouseDown = false;
};
} else {
if (currentTile == 205){
_local17 = false;
_local18 = (Math.floor((timeArray.length / 4)) * 4);
_local7 = 0;
while (_local7 < Math.floor((timeArray.length / 4))) {
_local8 = (_local7 * 4);
if ((((((timeArray[_local8] == offsetCount)) && ((timeArray[(_local8 + 1)] == _local1)))) && ((timeArray[(_local8 + 2)] == _local2)))){
if (timeArray[(_local8 + 3)] < 10){
_local17 = true;
var _local23 = timeArray;
var _local24 = (_local8 + 3);
var _local25 = (_local23[_local24] + 1);
_local23[_local24] = _local25;
timeHolder[_local7].setStartTime(timeArray[(_local8 + 3)]);
timeHolder[_local7].startTime();
rebuildMap();
} else {
_local17 = true;
timeArray.splice(_local8, 4);
fgMC.removeChild(timeHolder[_local7]);
timeHolder.splice(_local7, 1);
rebuildMap();
};
trace(timeArray[(_local8 + 3)]);
};
_local7++;
};
if (!_local17){
timeArray.push(offsetCount);
timeArray.push(_local1);
timeArray.push(_local2);
timeArray.push(1);
_local19 = new timeTile(this, timeArray[_local18], timeArray[(_local18 + 1)], timeArray[(_local18 + 2)], timeArray[(_local18 + 3)]);
fgMC.addChild(_local19);
timeHolder.push(_local19);
if (tileArray[((mapWidth * _local2) + _local1)].isClear()){
mapArray[(((_local2 * mapWidth) + _local1) + (offsetCount * boardSize))] = 0;
};
rebuildMap();
};
myParent.mouseDown = false;
} else {
if (currentTile == 206){
if (placeDoor){
_local20 = false;
_local7 = 0;
while (_local7 < Math.floor((doorArray.length / 6))) {
_local8 = (_local7 * 6);
if ((((((doorArray[_local8] == offsetCount)) && ((doorArray[(_local8 + 1)] == _local1)))) && ((doorArray[(_local8 + 2)] == _local2)))){
_local20 = true;
currentDoor = _local7;
_local4 = (currentDoor * 6);
doorArray[(_local4 + 3)] = offsetCount;
doorArray[(_local4 + 4)] = 0;
doorArray[(_local4 + 5)] = 0;
doorKey = false;
} else {
if ((((((doorArray[(_local8 + 3)] == offsetCount)) && ((doorArray[(_local8 + 4)] == _local1)))) && ((doorArray[(_local8 + 5)] == _local2)))){
_local20 = true;
currentDoor = _local7;
_local4 = (currentDoor * 6);
doorArray[_local4] = offsetCount;
doorArray[(_local4 + 1)] = 0;
doorArray[(_local4 + 2)] = 0;
doorKey = true;
};
};
if (_local20){
_local7 = (doorArray.length / 6);
};
_local7++;
};
if (_local20){
} else {
currentDoor = Math.floor((doorArray.length / 6));
doorArray.push(offsetCount);
doorArray.push(_local1);
doorArray.push(_local2);
doorArray.push(offsetCount);
doorArray.push(0);
doorArray.push(0);
doorKey = false;
if (tileArray[((mapWidth * _local2) + _local1)].isClear()){
mapArray[(((_local2 * mapWidth) + _local1) + (offsetCount * boardSize))] = 0;
};
};
rebuildMap();
placeDoor = false;
} else {
_local20 = false;
_local4 = (currentDoor * 6);
if ((((((((offsetCount == doorArray[_local4])) && ((_local1 == doorArray[(_local4 + 1)])))) && ((_local2 == doorArray[(_local4 + 2)])))) || ((((((offsetCount == doorArray[(_local4 + 3)])) && ((_local1 == doorArray[(_local4 + 4)])))) && ((_local2 == doorArray[(_local4 + 5)])))))){
doorArray.splice(_local4, 6);
rebuildMap();
} else {
_local7 = 0;
while (_local7 < Math.floor((doorArray.length / 6))) {
_local8 = (_local7 * 6);
if ((((((doorArray[_local8] == offsetCount)) && ((doorArray[(_local8 + 1)] == _local1)))) && ((doorArray[(_local8 + 2)] == _local2)))){
_local20 = true;
} else {
if ((((((doorArray[(_local8 + 3)] == offsetCount)) && ((doorArray[(_local8 + 4)] == _local1)))) && ((doorArray[(_local8 + 5)] == _local2)))){
_local20 = true;
};
};
if (_local20){
_local7 = (doorArray.length / 6);
};
_local7++;
};
if (_local20){
} else {
trace("2nd bit");
if (doorKey){
doorArray[_local4] = offsetCount;
doorArray[(_local4 + 1)] = _local1;
doorArray[(_local4 + 2)] = _local2;
} else {
doorArray[(_local4 + 3)] = offsetCount;
doorArray[(_local4 + 4)] = _local1;
doorArray[(_local4 + 5)] = _local2;
};
if (tileArray[((mapWidth * _local2) + _local1)].isClear()){
mapArray[(((_local2 * mapWidth) + _local1) + (offsetCount * boardSize))] = 0;
};
rebuildMap();
};
};
if (!_local20){
placeDoor = true;
};
};
trace(doorArray);
myParent.mouseDown = false;
} else {
if ((((((((((currentTile == 300)) || ((currentTile == 301)))) || ((currentTile == 302)))) || ((currentTile == 303)))) || ((currentTile == 304)))){
_local21 = (currentTile - 300);
_local12 = true;
_local7 = 0;
while (_local7 < Math.floor((flipArray.length / 4))) {
_local22 = (_local7 * 4);
if (flipArray[_local22] == offsetCount){
if ((((_local1 == flipArray[(_local22 + 1)])) && ((_local2 == flipArray[(_local22 + 2)])))){
flipArray.splice(_local22, 4);
rebuildMap();
_local12 = false;
};
};
_local7++;
};
if (_local12){
if (tileArray[((mapWidth * _local2) + _local1)].isClear()){
mapArray[(((_local2 * mapWidth) + _local1) + (offsetCount * boardSize))] = 0;
};
flipArray.push(offsetCount);
flipArray.push(_local1);
flipArray.push(_local2);
flipArray.push(_local21);
rebuildMap();
};
myParent.mouseDown = false;
} else {
if ((((((charArray[0] == _local1)) && ((charArray[1] == _local2)))) && ((offsetCount == 0)))){
_local12 = false;
} else {
if (checkPortal(_local1, _local2, offsetCount)){
_local12 = false;
} else {
if (checkKey(_local1, _local2, offsetCount)){
_local12 = false;
} else {
if (checkGreen(_local1, _local2, offsetCount)){
_local12 = false;
} else {
if (checkSlider(_local1, _local2, offsetCount)){
_local12 = false;
} else {
if (checkTime(_local1, _local2, offsetCount)){
_local12 = false;
} else {
if (checkDoor(_local1, _local2, offsetCount)){
_local12 = false;
} else {
if (checkFlip(_local1, _local2, offsetCount)){
_local12 = false;
} else {
_local12 = true;
};
};
};
};
};
};
};
};
if (_local12){
mapArray[(((_local2 * mapWidth) + _local1) + (offsetCount * boardSize))] = currentTile;
tileArray[((_local2 * mapWidth) + _local1)].setTile(currentTile, offsetCount, colorArray[(offsetCount * 3)]);
};
};
};
};
};
};
};
};
};
};
};
};
};
};
} else {
if (mapBeat){
if (endScreen == "submit"){
if (SWindow.x > 600){
SWindow.setPos();
ToString.trace2DArray(mapData);
};
};
} else {
if (SWindow.x < 600){
SWindow.offPos();
};
playGameRoot();
myParent.shifted = false;
};
};
if (resetter){
resetMap();
resetter = false;
};
if (!mapBeat){
if (SWindow.x < 500){
SWindow.offPos();
};
if (((((((((((((!(colorPicking)) && (!(optionsPicking)))) && (!(layersPicking)))) && (!(textPicking)))) && (!(headPicking)))) && (!(introPicking)))) && (!(loadLevelPicking)))){
if (changeMap()){
};
};
if (colorPicking){
if (CWindow.x > 900){
CWindow.setPos();
};
} else {
if (CWindow.x < 500){
CWindow.offPos();
rebuildMap();
myParent.shifted = false;
};
};
if (optionsPicking){
if (OWindow.x > 900){
OWindow.setPos();
};
} else {
if (OWindow.x < 500){
OWindow.offPos();
rebuildMap();
};
};
if (layersPicking){
if (LWindow.x > 900){
LWindow.setPos();
};
} else {
if (LWindow.x < 500){
LWindow.offPos();
rebuildMap();
};
};
if (textPicking){
TXWindow.editVocals.playSound();
if (TXWindow.x > 900){
TXWindow.setPos();
};
} else {
if (TXWindow.x < 500){
TXWindow.offPos();
};
};
if (headPicking){
if (HWindow.x > 900){
HWindow.setPos();
};
} else {
if (HWindow.x < 500){
HWindow.offPos();
};
};
if (loadLevelPicking){
if (LLWindow.x > 900){
LLWindow.setPos();
};
} else {
if (LLWindow.x < 500){
LLWindow.offPos();
};
};
if (introPicking){
if (InWindow.x > 900){
InWindow.setPos();
};
} else {
if (InWindow.x < 500){
InWindow.offPos();
};
};
};
}
function checkTiles():Boolean{
var _local1:Boolean;
if (currentTile == 0){
};
return (_local1);
}
function rebuildMap():void{
removeMap();
setActive();
buildMap(offsetCount);
}
function flipGrav():void{
if (grav){
playSoundFX("gravityUp");
} else {
playSoundFX("gravityDown");
};
grav = !(grav);
rebuildMap();
theChar.jumping = true;
}
function vertFlipMap():void{
var _local2:Number;
removeMap();
flipHold[offsetCount] = !(flipHold[offsetCount]);
spinHold[offsetCount] = (spinHold[offsetCount] + 2);
if (spinHold[offsetCount] >= 4){
spinHold[offsetCount] = (spinHold[offsetCount] - 4);
};
var _local1:* = 0;
while (_local1 < Math.floor((greenArray.length / 6))) {
_local2 = (_local1 * 6);
if (greenArray[(_local2 + 3)] == offsetCount){
trace(greenArray[(_local2 + 4)]);
greenArray[(_local2 + 4)] = (Number(greenArray[(_local2 + 4)]) + 2);
if (greenArray[(_local2 + 4)] >= 4){
greenArray[(_local2 + 4)] = (greenArray[(_local2 + 4)] - 4);
};
trace(greenArray[(_local2 + 4)]);
greenArray[(_local2 + 5)] = (1 - Number(greenArray[(_local2 + 5)]));
};
_local1++;
};
_local1 = 0;
while (_local1 < sliderHolder.length) {
sliderHolder[_local1].spinSlider("v");
_local1++;
};
_local1 = 0;
while (_local1 < keyHolder.length) {
keyHolder[_local1].spinKey("v");
_local1++;
};
_local1 = 0;
while (_local1 < timeHolder.length) {
timeHolder[_local1].spinTime("v");
_local1++;
};
SFGreens();
buildMap(offsetCount);
switchBox.gotoAndPlay("vert");
shiftCount = 10;
}
function flipMap():void{
var _local2:Number;
removeMap();
flipHold[offsetCount] = !(flipHold[offsetCount]);
var _local1:* = 0;
while (_local1 < Math.floor((greenArray.length / 6))) {
_local2 = (_local1 * 6);
if (greenArray[(_local2 + 3)] == offsetCount){
greenArray[(_local2 + 5)] = (1 - Number(greenArray[(_local2 + 5)]));
};
_local1++;
};
_local1 = 0;
while (_local1 < sliderHolder.length) {
sliderHolder[_local1].spinSlider("f");
_local1++;
};
_local1 = 0;
while (_local1 < keyHolder.length) {
keyHolder[_local1].spinKey("f");
_local1++;
};
_local1 = 0;
while (_local1 < timeHolder.length) {
timeHolder[_local1].spinTime("f");
_local1++;
};
SFGreens();
buildMap(offsetCount);
switchBox.gotoAndPlay("hor");
shiftCount = 10;
}
function spinMapL():void{
removeMap();
spinL();
SFGreens();
buildMap(offsetCount);
switchBox.gotoAndPlay("cw");
shiftCount = 10;
}
function spinMapR():void{
removeMap();
spinR();
SFGreens();
buildMap(offsetCount);
switchBox.gotoAndPlay("ccw");
shiftCount = 10;
}
public function offsetInc(_arg1:Number=-1){
if (_arg1 == -1){
if (offsetCount >= totalLevel){
offsetCount = 0;
} else {
offsetCount++;
};
} else {
offsetCount = _arg1;
};
}
public function resetMap():void{
var _local2:Number;
if (myParent.gameState != "edit"){
stopStaticFX();
if (!theInterface.gameVocals.isPlaying){
theInterface.gameVocals.startSound(getSaying("deathVocals"));
};
};
myParent.mapShift = false;
setHolds();
removeMap();
grav = true;
theChar.resetMe();
var _local1:* = 0;
while (_local1 < Math.floor((keyArray.length / 3))) {
_local1++;
};
_local1 = 0;
while (_local1 < sliderHolder.length) {
sliderHolder[_local1].startSlider();
_local1++;
};
_local1 = 0;
while (_local1 < keyHolder.length) {
keyHolder[_local1].startKey();
_local1++;
};
_local1 = 0;
while (_local1 < timeHolder.length) {
timeHolder[_local1].startTime();
_local1++;
};
destroyArray = new Array();
_local1 = 0;
while (_local1 < Math.floor((greenArray.length / 6))) {
_local2 = (_local1 * 6);
greenArray[(_local2 + 3)] = greenArray[_local2];
greenArray[(_local2 + 4)] = 0;
greenArray[(_local2 + 5)] = 0;
_local1++;
};
_local1 = poofMC.numChildren;
while (_local1 > 0) {
poofMC.removeChildAt((_local1 - 1));
_local1--;
};
totalKey = Math.floor((keyArray.length / 3));
offsetCount = 0;
setActive();
theChar.startChar();
buildMap(offsetCount);
}
public function getKey(_arg1:Number){
playSoundFX("keyPickup");
keyHolder[_arg1].currentLayer = 100;
totalKey--;
if (totalKey == 0){
playSoundFX("portalOpen");
};
rebuildMap();
}
function removeMap(){
doorHolder = new Array();
var _local1:* = (tileArray.length - 1);
while (_local1 >= 0) {
if (tileArray[_local1]){
mapHolder.removeChild(tileArray[_local1]);
};
tileArray.pop();
_local1--;
};
_local1 = (backArray.length - 1);
while (_local1 >= 0) {
if (backArray[_local1]){
backMap.removeChild(backArray[_local1]);
};
backArray.pop();
_local1--;
};
}
function increaseOffset(){
if (offsetCount >= totalLevel){
offsetCount = 0;
} else {
offsetCount++;
};
}
function spinR():void{
var _local2:Number;
var _local1:* = 0;
while (_local1 < spinHold.length) {
if (flipHold[_local1]){
if (spinHold[_local1] >= 3){
spinHold[_local1] = 0;
} else {
var _local3 = spinHold;
var _local4 = _local1;
var _local5 = (_local3[_local4] + 1);
_local3[_local4] = _local5;
};
} else {
if (spinHold[_local1] <= 0){
spinHold[_local1] = 3;
} else {
_local3 = spinHold;
_local4 = _local1;
_local5 = (_local3[_local4] - 1);
_local3[_local4] = _local5;
};
};
_local1++;
};
_local1 = 0;
while (_local1 < Math.floor((greenArray.length / 6))) {
_local2 = (_local1 * 6);
if (greenArray[(_local2 + 5)] == 1){
if (greenArray[(_local2 + 4)] >= 3){
greenArray[(_local2 + 4)] = 0;
} else {
_local3 = greenArray;
_local4 = (_local2 + 4);
_local5 = (_local3[_local4] + 1);
_local3[_local4] = _local5;
};
} else {
if (greenArray[(_local2 + 4)] <= 0){
greenArray[(_local2 + 4)] = 3;
} else {
_local3 = greenArray;
_local4 = (_local2 + 4);
_local5 = (_local3[_local4] - 1);
_local3[_local4] = _local5;
};
};
_local1++;
};
_local1 = 0;
while (_local1 < sliderHolder.length) {
sliderHolder[_local1].spinSlider("r");
_local1++;
};
_local1 = 0;
while (_local1 < keyHolder.length) {
keyHolder[_local1].spinKey("r");
_local1++;
};
_local1 = 0;
while (_local1 < timeHolder.length) {
timeHolder[_local1].spinTime("r");
_local1++;
};
}
function spinL():void{
var _local2:Number;
var _local1:* = 0;
while (_local1 < spinHold.length) {
if (!flipHold[_local1]){
if (spinHold[_local1] >= 3){
spinHold[_local1] = 0;
} else {
var _local3 = spinHold;
var _local4 = _local1;
var _local5 = (_local3[_local4] + 1);
_local3[_local4] = _local5;
};
} else {
if (spinHold[_local1] <= 0){
spinHold[_local1] = 3;
} else {
_local3 = spinHold;
_local4 = _local1;
_local5 = (_local3[_local4] - 1);
_local3[_local4] = _local5;
};
};
_local1++;
};
_local1 = 0;
while (_local1 < Math.floor((greenArray.length / 6))) {
_local2 = (_local1 * 6);
if (greenArray[(_local2 + 5)] == 0){
if (greenArray[(_local2 + 4)] >= 3){
greenArray[(_local2 + 4)] = 0;
} else {
_local3 = greenArray;
_local4 = (_local2 + 4);
_local5 = (_local3[_local4] + 1);
_local3[_local4] = _local5;
};
} else {
if (greenArray[(_local2 + 4)] <= 0){
greenArray[(_local2 + 4)] = 3;
} else {
_local3 = greenArray;
_local4 = (_local2 + 4);
_local5 = (_local3[_local4] - 1);
_local3[_local4] = _local5;
};
};
_local1++;
};
_local1 = 0;
while (_local1 < sliderHolder.length) {
sliderHolder[_local1].spinSlider("l");
_local1++;
};
_local1 = 0;
while (_local1 < keyHolder.length) {
keyHolder[_local1].spinKey("l");
_local1++;
};
_local1 = 0;
while (_local1 < timeHolder.length) {
timeHolder[_local1].spinTime("l");
_local1++;
};
}
function setHolds():void{
flipHold = new Array();
spinHold = new Array();
var _local1:* = 0;
while (_local1 <= totalLevel) {
flipHold.push(false);
spinHold.push(0);
_local1++;
};
}
public function spinX(_arg1:Number, _arg2:Number, _arg3:Number=-1):Number{
if (_arg3 == -1){
_arg3 = offsetCount;
};
var _local4:Number = _arg1;
switch (spinHold[_arg3]){
case 0:
break;
case 1:
_local4 = ((mapWidth - _arg2) - 1);
break;
case 2:
_local4 = ((mapWidth - _local4) - 1);
break;
case 3:
_local4 = _arg2;
break;
};
if (flipHold[_arg3]){
_local4 = ((mapWidth - _local4) - 1);
};
return (_local4);
}
public function spinY(_arg1:Number, _arg2:Number, _arg3:Number=-1):Number{
if (_arg3 == -1){
_arg3 = offsetCount;
};
switch (spinHold[_arg3]){
case 1:
return (_arg1);
case 2:
return (((mapWidth - _arg2) - 1));
case 3:
return (((mapWidth - _arg1) - 1));
default:
return (_arg2);
};
}
function unSpinX(_arg1:Number, _arg2:Number){
var _local3:Number = _arg1;
switch (spinHold[offsetCount]){
case 0:
if (flipHold[offsetCount]){
_local3 = ((mapWidth - _local3) - 1);
};
break;
case 3:
_local3 = ((mapWidth - _arg2) - 1);
break;
case 2:
if (flipHold[offsetCount]){
} else {
_local3 = ((mapWidth - _local3) - 1);
};
break;
case 1:
_local3 = _arg2;
break;
};
return (_local3);
}
function unSpinY(_arg1:Number, _arg2:Number){
var _local3:Number = _arg1;
switch (spinHold[offsetCount]){
case 3:
if (flipHold[offsetCount]){
return (((mapWidth - _arg1) - 1));
};
return (_arg1);
case 2:
return (((mapWidth - _arg2) - 1));
case 1:
if (flipHold[offsetCount]){
return (_arg1);
};
return (((mapWidth - _arg1) - 1));
default:
return (_arg2);
};
}
function greenSpinX(_arg1:Number, _arg2:Number, _arg3:Number){
var _local4:Number = _arg1;
switch (greenArray[(_arg3 + 4)]){
case 0:
break;
case 1:
_local4 = ((mapWidth - _arg2) - 1);
break;
case 2:
_local4 = ((mapWidth - _local4) - 1);
break;
case 3:
_local4 = _arg2;
break;
};
if (greenArray[(_arg3 + 5)] == 1){
_local4 = ((mapWidth - _local4) - 1);
};
return (_local4);
}
function greenSpinY(_arg1:Number, _arg2:Number, _arg3:Number){
switch (greenArray[(_arg3 + 4)]){
case 1:
return (_arg1);
case 2:
return (((mapWidth - _arg2) - 1));
case 3:
return (((mapWidth - _arg1) - 1));
default:
return (_arg2);
};
}
function moveBreaks(){
var _local1:* = (breakArray.length - 1);
while (_local1 >= 0) {
breakArray[_local1].falling();
if (breakArray[_local1].removeCheck()){
breakMC.removeChild(breakArray[_local1]);
breakArray.splice(_local1, 1);
};
_local1--;
};
}
public function startEdit(){
mapBeat = false;
gameLive = false;
SWindow.offPos();
resetMap();
}
public function submitLevel(){
nameArray[0] = SWindow.levelName.text;
introTextArray[0] = TXWindow.introText.text;
var _local1:String = ToString.makeString(mapData);
SWindow.myVar = _local1;
SWindow.gotoAndStop(4);
myParent.unlockSteamAchievement("_tfmakelevel");
}
function sendLevelXML(_arg1:Event){
var _local2:XML = new XML(_arg1.target.data);
parseLevelXML(_local2);
}
function parseLevelXML(_arg1:XML):void{
SWindow.gotoAndStop(3);
trace(_arg1.level.id.text());
SWindow.myVar = _arg1.level.id.text();
}
public function submitVote(){
if (!trans){
};
}
function someCheck(_arg1, _arg2:int, _arg3:Array):Boolean{
if (_arg1 == mapID){
return (true);
};
return (false);
}
function pickLevel(_arg1:MouseEvent){
myParent.currentLevel = (_arg1.currentTarget.levelChoose - 2);
myParent.gotoAndStop("nextLevel");
}
public function startTrans(){
var _local4:*;
stopStaticFX();
gameLive = false;
var _local1:Number = Math.random();
if (_local1 < 0.33){
playSoundFX("intro_tune_1");
_local4 = "testpattern01";
} else {
if (_local1 < 0.66){
playSoundFX("intro_tune_2");
_local4 = "testpattern02";
} else {
if (_local1 < 1){
playSoundFX("intro_tune_3");
_local4 = "testpattern03";
};
};
};
var _local2:Class = (getDefinitionByName(_local4) as Class);
trans = new (_local2);
var _local3:Color = new Color();
_local3.setTint(colorArray[(offsetCount * 3)], 0.5);
trans.transform.colorTransform = _local3;
trans.x = 379;
trans.y = 263;
addChild(trans);
}
public function endTrans(){
myParent.gotoAndStop("nextLevel");
}
public function exit(){
stopStaticFX();
if ((((((myParent.gameState == "play")) || ((myParent.gameState == "play2")))) || ((myParent.gameState == "single")))){
myParent.stopMusic();
myParent.gotoAndStop("menu");
} else {
if (myParent.gameState == "multi"){
myParent.stopMusic();
myParent.gotoAndStop("menu");
} else {
if (myParent.gameState == "multiC"){
myParent.stopMusic();
myParent.gotoAndStop("menu");
} else {
if (myParent.gameState == "edit"){
myParent.stopMusic();
myParent.gotoAndStop("menu");
};
};
};
};
}
public function checkPortal(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{
var _local6:Number;
var _local4:Boolean;
var _local5:Number = 0;
while (_local5 < Math.floor((portalArray.length / 6))) {
_local6 = (_local5 * 6);
if ((((((((portalArray[_local6] == _arg3)) && ((portalArray[(_local6 + 1)] == _arg1)))) && ((portalArray[(_local6 + 2)] == _arg2)))) || ((((((portalArray[(_local6 + 3)] == _arg3)) && ((portalArray[(_local6 + 4)] == _arg1)))) && ((portalArray[(_local6 + 5)] == _arg2)))))){
_local4 = true;
};
_local5++;
};
return (_local4);
}
public function removePortal(_arg1:Number, _arg2:Number, _arg3:Number){
var _local4:Number;
var _local6:Number;
var _local5:Number = 0;
while (_local5 < Math.floor((portalArray.length / 6))) {
_local6 = (_local5 * 6);
if ((((((((portalArray[_local6] == _arg3)) && ((portalArray[(_local6 + 1)] == _arg1)))) && ((portalArray[(_local6 + 2)] == _arg2)))) || ((((((portalArray[(_local6 + 3)] == _arg3)) && ((portalArray[(_local6 + 4)] == _arg1)))) && ((portalArray[(_local6 + 5)] == _arg2)))))){
_local4 = _local6;
};
_local5++;
};
if (_local4 >= 0){
portalArray.splice(_local4, 6);
rebuildMap();
};
}
public function checkKey(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{
var _local6:Number;
var _local4:Boolean;
var _local5:Number = 0;
while (_local5 < Math.floor((keyArray.length / 3))) {
_local6 = (_local5 * 3);
if ((((((keyArray[_local6] == _arg3)) && ((keyArray[(_local6 + 1)] == _arg1)))) && ((keyArray[(_local6 + 2)] == _arg2)))){
_local4 = true;
};
_local5++;
};
return (_local4);
}
public function removeKeyB(_arg1:Number, _arg2:Number, _arg3:Number){
var _local4:Number;
var _local5:Number;
var _local7:Number;
var _local6:Number = 0;
while (_local6 < Math.floor((keyArray.length / 3))) {
_local7 = (_local6 * 3);
if ((((((keyArray[_local7] == _arg3)) && ((keyArray[(_local7 + 1)] == _arg1)))) && ((keyArray[(_local7 + 2)] == _arg2)))){
_local5 = _local6;
_local4 = _local7;
};
_local6++;
};
if (_local4 >= 0){
keyArray.splice(_local4, 3);
fgMC.removeChild(keyHolder[_local5]);
keyHolder.splice(_local5, 1);
rebuildMap();
};
}
public function checkGreen(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{
var _local6:Number;
var _local4:Boolean;
var _local5:* = 0;
while (_local5 < Math.floor((greenArray.length / 6))) {
_local6 = (_local5 * 6);
if (greenArray[(_local6 + 3)] == _arg3){
if ((((_arg1 == greenArray[(_local6 + 1)])) && ((_arg2 == greenArray[(_local6 + 2)])))){
_local4 = true;
};
};
_local5++;
};
return (_local4);
}
public function removeGreen(_arg1:Number, _arg2:Number, _arg3:Number){
var _local4:Number;
var _local6:Number;
var _local5:* = 0;
while (_local5 < Math.floor((greenArray.length / 6))) {
_local6 = (_local5 * 6);
if (greenArray[(_local6 + 3)] == _arg3){
if ((((_arg1 == greenArray[(_local6 + 1)])) && ((_arg2 == greenArray[(_local6 + 2)])))){
_local4 = _local6;
};
};
_local5++;
};
if (_local4 >= 0){
greenArray.splice(_local4, 6);
rebuildMap();
};
}
public function checkSlider(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{
var _local6:*;
var _local4:Boolean;
var _local5:* = 0;
while (_local5 < Math.floor((sliderArray.length / 3))) {
_local6 = (_local5 * 3);
if ((((((sliderArray[_local6] == _arg3)) && ((sliderArray[(_local6 + 1)] == _arg1)))) && ((sliderArray[(_local6 + 2)] == _arg2)))){
_local4 = true;
};
_local5++;
};
return (_local4);
}
public function removeSlider(_arg1:Number, _arg2:Number, _arg3:Number){
var _local4:Number;
var _local5:Number;
var _local7:*;
var _local6:* = 0;
while (_local6 < Math.floor((sliderArray.length / 3))) {
_local7 = (_local6 * 3);
if ((((((sliderArray[_local7] == _arg3)) && ((sliderArray[(_local7 + 1)] == _arg1)))) && ((sliderArray[(_local7 + 2)] == _arg2)))){
_local4 = _local7;
_local5 = _local6;
};
_local6++;
};
if (_local4 >= 0){
sliderArray.splice(_local4, 3);
fgMC.removeChild(sliderHolder[_local5]);
sliderHolder.splice(_local5, 1);
rebuildMap();
};
}
public function checkTime(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{
var _local6:*;
var _local4:Boolean;
var _local5:* = 0;
while (_local5 < Math.floor((timeArray.length / 4))) {
_local6 = (_local5 * 4);
if ((((((timeArray[_local6] == _arg3)) && ((timeArray[(_local6 + 1)] == _arg1)))) && ((timeArray[(_local6 + 2)] == _arg2)))){
_local4 = true;
};
_local5++;
};
return (_local4);
}
public function removeTime(_arg1:Number, _arg2:Number, _arg3:Number){
var _local4:Number;
var _local5:Number;
var _local7:*;
var _local6:* = 0;
while (_local6 < Math.floor((timeArray.length / 4))) {
_local7 = (_local6 * 4);
if ((((((timeArray[_local7] == _arg3)) && ((timeArray[(_local7 + 1)] == _arg1)))) && ((timeArray[(_local7 + 2)] == _arg2)))){
_local4 = _local7;
_local5 = _local6;
};
_local6++;
};
if (_local4 >= 0){
timeArray.splice(_local4, 4);
fgMC.removeChild(timeHolder[_local5]);
timeHolder.splice(_local5, 1);
rebuildMap();
};
}
public function checkDoor(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{
var _local6:*;
var _local4:Boolean;
var _local5:* = 0;
while (_local5 < Math.floor((doorArray.length / 6))) {
_local6 = (_local5 * 6);
if ((((((((doorArray[_local6] == _arg3)) && ((doorArray[(_local6 + 1)] == _arg1)))) && ((doorArray[(_local6 + 2)] == _arg2)))) || ((((((doorArray[(_local6 + 3)] == _arg3)) && ((doorArray[(_local6 + 4)] == _arg1)))) && ((doorArray[(_local6 + 5)] == _arg2)))))){
_local4 = true;
};
_local5++;
};
return (_local4);
}
public function removeDoor(_arg1:Number, _arg2:Number, _arg3:Number){
var _local4:Number;
var _local6:*;
var _local5:* = 0;
while (_local5 < Math.floor((doorArray.length / 6))) {
_local6 = (_local5 * 6);
if ((((((((doorArray[_local6] == _arg3)) && ((doorArray[(_local6 + 1)] == _arg1)))) && ((doorArray[(_local6 + 2)] == _arg2)))) || ((((((doorArray[(_local6 + 3)] == _arg3)) && ((doorArray[(_local6 + 4)] == _arg1)))) && ((doorArray[(_local6 + 5)] == _arg2)))))){
_local4 = _local6;
};
_local5++;
};
if (_local4 >= 0){
doorArray.splice(_local4, 6);
rebuildMap();
};
}
public function checkFlip(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{
var _local6:Number;
var _local4:Boolean;
var _local5:* = 0;
while (_local5 < Math.floor((flipArray.length / 4))) {
_local6 = (_local5 * 4);
if (flipArray[_local6] == _arg3){
if ((((_arg1 == flipArray[(_local6 + 1)])) && ((_arg2 == flipArray[(_local6 + 2)])))){
_local4 = true;
};
};
_local5++;
};
return (_local4);
}
public function getFlipNum(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local6:Number;
var _local4:Number = 0;
var _local5:* = 0;
while (_local5 < Math.floor((flipArray.length / 4))) {
_local6 = (_local5 * 4);
if (flipArray[_local6] == _arg3){
if ((((_arg1 == flipArray[(_local6 + 1)])) && ((_arg2 == flipArray[(_local6 + 2)])))){
_local4 = (300 + flipArray[(_local6 + 3)]);
};
};
_local5++;
};
return (_local4);
}
public function removeFlip(_arg1:Number, _arg2:Number, _arg3:Number){
var _local4:Number;
var _local6:Number;
var _local5:* = 0;
while (_local5 < Math.floor((flipArray.length / 4))) {
_local6 = (_local5 * 4);
if (flipArray[_local6] == _arg3){
if ((((_arg1 == flipArray[(_local6 + 1)])) && ((_arg2 == flipArray[(_local6 + 2)])))){
_local4 = _local6;
};
};
_local5++;
};
if (_local4 >= 0){
flipArray.splice(_local4, 4);
rebuildMap();
};
}
public function playSoundFX(_arg1:String):void{
var _local2:Class = (getDefinitionByName(("com.game." + _arg1)) as Class);
var _local3:Sound = new (_local2);
fx = _local3.play();
fx.soundTransform = myParent.fxTransform;
}
public function playStaticFX(){
staticChannel = staticFX.play(0, 100000);
staticChannel.soundTransform = myParent.fxTransform;
}
public function stopStaticFX(){
staticChannel.stop();
}
public function playBlink(){
if (blinkCount > blinkCast){
blinkCount = 0;
} else {
blinkCount++;
};
}
public static function checkNewMap(_arg1:String):Array{
var myMap:Array;
var string = _arg1;
try {
myMap = ToString.breakString(string);
} catch(e:Error) {
myMap = defaultMap();
};
return (myMap);
}
public static function defaultMap():Array{
var _local4:Array;
var _local5:*;
var _local1:Array = [[294228, 10484272, 13762221], [28026, 9563894, 14481659], [0xAC7800, 16711098, 13100755], [50853, 9305331, 14155515], [513, 14563074, 16732934], [0x1B1B1B, 16636343, 16704187], [16587284, 16757937, 16767703], [16622343, 16768932, 16707025], [0x7D0300, 15661908, 16514492], [140172, 16643939, 16776650]];
var _local2:Array = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [], [4, 9, 1], [2], [], [], [], [], [], [], [], ["new level"], ["level text"]];
var _local3:* = 1;
while (_local3 <= 3) {
_local4 = _local1.splice(Math.floor((Math.random() * _local1.length)), 1);
_local5 = 0;
while (_local5 < _local4[0].length) {
_local2[1].push(_local4[0][_local5]);
trace(_local2[1]);
_local5++;
};
_local3++;
};
return (_local2);
}
}
}//package com.game
Section 92
//mouseover (com.game.mouseover)
package com.game {
import flash.media.*;
public dynamic class mouseover extends Sound {
}
}//package com.game
Section 93
//n (com.game.n)
package com.game {
import flash.media.*;
public dynamic class n extends Sound {
}
}//package com.game
Section 94
//n2 (com.game.n2)
package com.game {
import flash.media.*;
public dynamic class n2 extends Sound {
}
}//package com.game
Section 95
//NGintro (com.game.NGintro)
package com.game {
import flash.display.*;
public dynamic class NGintro extends MovieClip {
public var myParent:MovieClip;
public function NGintro(){
addFrameScript(0, frame1, 115, frame116);
}
function frame1(){
}
function frame116(){
stop();
myParent.gotoAndStop("credits");
}
}
}//package com.game
Section 96
//o (com.game.o)
package com.game {
import flash.media.*;
public dynamic class o extends Sound {
}
}//package com.game
Section 97
//o2 (com.game.o2)
package com.game {
import flash.media.*;
public dynamic class o2 extends Sound {
}
}//package com.game
Section 98
//optionsWindow (com.game.optionsWindow)
package com.game {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class optionsWindow extends MovieClip {
public var layersButton:SimpleButton;
public var textButton:SimpleButton;
public var loadLevelButton:SimpleButton;
public var backButton:SimpleButton;
public var colorButton:SimpleButton;
public var charButton:SimpleButton;
var myParent:MovieClip;
var curTile:Array;
var colMC:MovieClip;
var a:BitmapData;
var image_bitmap;
public var myVar:String;
public function optionsWindow(_arg1){
curTile = new Array(1, 1);
colMC = new MovieClip();
super();
addFrameScript(0, frame1);
myParent = _arg1;
offPos();
backButton.addEventListener(MouseEvent.CLICK, back);
colorButton.addEventListener(MouseEvent.CLICK, color);
layersButton.addEventListener(MouseEvent.CLICK, layers);
textButton.addEventListener(MouseEvent.CLICK, textB);
charButton.addEventListener(MouseEvent.CLICK, charB);
loadLevelButton.addEventListener(MouseEvent.CLICK, loadLevelB);
}
function loadLevelB(_arg1:MouseEvent){
myParent.optionsPicking = false;
myParent.loadLevelPicking = true;
}
function charB(_arg1:MouseEvent){
myParent.optionsPicking = false;
myParent.headPicking = true;
}
function textB(_arg1:MouseEvent){
myParent.optionsPicking = false;
myParent.textPicking = true;
}
function mainMenu(_arg1:MouseEvent){
myParent.myParent.gotoAndStop("menu");
}
function color(_arg1:MouseEvent){
myParent.optionsPicking = false;
myParent.colorPicking = true;
}
function layers(_arg1:MouseEvent){
myParent.optionsPicking = false;
myParent.layersPicking = true;
}
function back(_arg1:MouseEvent){
myParent.optionsPicking = false;
}
public function setPos(){
x = 0xFF;
y = 0xFF;
}
public function offPos(){
x = 1000;
y = 555;
}
function frame1(){
stop();
}
}
}//package com.game
Section 99
//overLay (com.game.overLay)
package com.game {
import flash.display.*;
public dynamic class overLay extends MovieClip {
}
}//package com.game
Section 100
//p (com.game.p)
package com.game {
import flash.media.*;
public dynamic class p extends Sound {
}
}//package com.game
Section 101
//p2 (com.game.p2)
package com.game {
import flash.media.*;
public dynamic class p2 extends Sound {
}
}//package com.game
Section 102
//pauseWindow (com.game.pauseWindow)
package com.game {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class pauseWindow extends MovieClip {
var myParent:MovieClip;
var curTile:Array;
var colMC:MovieClip;
var a:BitmapData;
var image_bitmap;
public var myVar:String;
public function pauseWindow(_arg1){
curTile = new Array(1, 1);
colMC = new MovieClip();
super();
myParent = _arg1;
stop();
offPos();
}
public function setPos(){
myParent.EWindow.offPos();
myParent.SlWindow.offPos();
myParent.gameLive = false;
myParent.theInterface.playButton.visible = true;
myParent.theInterface.pauseButton.visible = false;
x = 0xFF;
y = 0xFF;
}
public function offPos(){
myParent.gameLive = true;
myParent.theInterface.playButton.visible = false;
myParent.theInterface.pauseButton.visible = true;
x = 1000;
y = 0xFF;
}
public function togglePos(){
if (x > 900){
setPos();
} else {
offPos();
};
}
}
}//package com.game
Section 103
//playerLand1 (com.game.playerLand1)
package com.game {
import flash.media.*;
public dynamic class playerLand1 extends Sound {
}
}//package com.game
Section 104
//playerLand2 (com.game.playerLand2)
package com.game {
import flash.media.*;
public dynamic class playerLand2 extends Sound {
}
}//package com.game
Section 105
//playerLand3 (com.game.playerLand3)
package com.game {
import flash.media.*;
public dynamic class playerLand3 extends Sound {
}
}//package com.game
Section 106
//playInterface (com.game.playInterface)
package com.game {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class playInterface extends MovieClip {
public var lb33:MovieClip;
public var lb24:MovieClip;
public var lb15:MovieClip;
public var lb25:MovieClip;
public var lb16:MovieClip;
public var lb26:MovieClip;
public var lb17:MovieClip;
public var lb27:MovieClip;
public var lb18:MovieClip;
public var introButton:SimpleButton;
public var lb28:MovieClip;
public var lb19:MovieClip;
public var lb1:MovieClip;
public var helpText:MovieClip;
public var pillButton:SimpleButton;
public var lb29:MovieClip;
public var lb2:MovieClip;
public var gameVocals:vocals;
public var muteButton:SimpleButton;
public var lb3:MovieClip;
public var lb4:MovieClip;
public var pauseButton:SimpleButton;
public var cover:MovieClip;
public var playerName:TextField;
public var lb5:MovieClip;
public var lb6:MovieClip;
public var sleepButton:SimpleButton;
public var lb7:MovieClip;
public var levelName:TextField;
public var lb8:MovieClip;
public var lb10:MovieClip;
public var lb9:MovieClip;
public var exitButton:SimpleButton;
public var lb20:MovieClip;
public var lb11:MovieClip;
public var lb30:MovieClip;
public var lb21:MovieClip;
public var lb12:MovieClip;
public var lb31:MovieClip;
public var lb22:MovieClip;
public var lb13:MovieClip;
public var playButton:SimpleButton;
public var lb32:MovieClip;
public var lb23:MovieClip;
public var lb14:MovieClip;
var myParent:MovieClip;
public function playInterface(_arg1){
var _local2:*;
super();
addFrameScript(0, frame1);
myParent = _arg1;
if (myParent.myParent.gameState == "play"){
_local2 = 1;
while (_local2 <= (myParent.myParent._sharedObj.data.currentLevel + 1)) {
this[("lb" + _local2)].buttonMode = true;
this[("lb" + _local2)].levelChoose = _local2;
this[("lb" + _local2)].frameNum = 3;
this[("lb" + _local2)].gotoAndStop(3);
this[("lb" + _local2)].addEventListener(MouseEvent.MOUSE_UP, pickLevel);
if (_local2 != (myParent.myParent.currentLevel + 1)){
this[("lb" + _local2)].addEventListener(MouseEvent.MOUSE_OVER, hoverLevel);
this[("lb" + _local2)].addEventListener(MouseEvent.MOUSE_OUT, hoverOutLevel);
};
_local2++;
};
_local2 = 0;
while (_local2 < myParent.myParent._sharedObj.data.skipInfo.length) {
this[("lb" + (myParent.myParent._sharedObj.data.skipInfo[_local2] + 1))].frameNum = 5;
this[("lb" + (myParent.myParent._sharedObj.data.skipInfo[_local2] + 1))].gotoAndStop(5);
_local2++;
};
if (myParent.myParent._sharedObj.data.currentLevel < 32){
lb33.visible = false;
};
this[("lb" + (myParent.myParent.currentLevel + 1))].gotoAndStop(2);
} else {
if (myParent.myParent.gameState == "play2"){
_local2 = 1;
while (_local2 <= (myParent.myParent._sharedObj.data.currentLevel2 + 1)) {
this[("lb" + _local2)].buttonMode = true;
this[("lb" + _local2)].levelChoose = _local2;
this[("lb" + _local2)].frameNum = 3;
this[("lb" + _local2)].gotoAndStop(3);
this[("lb" + _local2)].addEventListener(MouseEvent.MOUSE_UP, pickLevel);
if (_local2 != (myParent.myParent.currentMultiLevel + 1)){
this[("lb" + _local2)].addEventListener(MouseEvent.MOUSE_OVER, hoverLevel);
this[("lb" + _local2)].addEventListener(MouseEvent.MOUSE_OUT, hoverOutLevel);
};
_local2++;
};
if (myParent.myParent._sharedObj.data.currentMultiLevel < 32){
lb33.visible = false;
};
this[("lb" + (myParent.myParent.currentLevel2 + 1))].gotoAndStop(2);
} else {
if (myParent.myParent.gameState == "multiC"){
_local2 = 1;
while (_local2 <= (myParent.myParent._sharedObj.data.currentMultiLevel + 1)) {
this[("lb" + _local2)].buttonMode = true;
this[("lb" + _local2)].levelChoose = _local2;
this[("lb" + _local2)].frameNum = 3;
this[("lb" + _local2)].gotoAndStop(3);
this[("lb" + _local2)].addEventListener(MouseEvent.MOUSE_UP, pickLevel);
if (_local2 != (myParent.myParent.currentMultiLevel + 1)){
this[("lb" + _local2)].addEventListener(MouseEvent.MOUSE_OVER, hoverLevel);
this[("lb" + _local2)].addEventListener(MouseEvent.MOUSE_OUT, hoverOutLevel);
};
this[("lb" + (myParent.myParent.currentLevel + 1))].gotoAndStop(2);
_local2++;
};
_local2 = 0;
while (_local2 < myParent.myParent._sharedObj.data.skipInfoM.length) {
this[("lb" + (myParent.myParent._sharedObj.data.skipInfoM[_local2] + 1))].frameNum = 5;
this[("lb" + (myParent.myParent._sharedObj.data.skipInfoM[_local2] + 1))].gotoAndStop(5);
_local2++;
};
if (myParent.myParent._sharedObj.data.currentMultiLevel < 32){
lb33.visible = false;
};
};
};
};
sleepButton.addEventListener(MouseEvent.CLICK, sleepFun);
pillButton.addEventListener(MouseEvent.CLICK, pillRestart);
exitButton.addEventListener(MouseEvent.CLICK, exit);
playButton.addEventListener(MouseEvent.CLICK, pauseGame);
pauseButton.addEventListener(MouseEvent.CLICK, pauseGame);
introButton.addEventListener(MouseEvent.CLICK, sayText);
muteButton.addEventListener(MouseEvent.CLICK, toggleMute);
sleepButton.addEventListener(MouseEvent.MOUSE_OVER, sleepHover);
pillButton.addEventListener(MouseEvent.MOUSE_OVER, pillHover);
exitButton.addEventListener(MouseEvent.MOUSE_OVER, exitHover);
playButton.addEventListener(MouseEvent.MOUSE_OVER, playHover);
pauseButton.addEventListener(MouseEvent.MOUSE_OVER, pauseHover);
introButton.addEventListener(MouseEvent.MOUSE_OVER, introHover);
muteButton.addEventListener(MouseEvent.MOUSE_OVER, muteHover);
sleepButton.addEventListener(MouseEvent.MOUSE_OUT, resetHover);
pillButton.addEventListener(MouseEvent.MOUSE_OUT, resetHover);
exitButton.addEventListener(MouseEvent.MOUSE_OUT, resetHover);
playButton.addEventListener(MouseEvent.MOUSE_OUT, resetHover);
pauseButton.addEventListener(MouseEvent.MOUSE_OUT, resetHover);
introButton.addEventListener(MouseEvent.MOUSE_OUT, resetHover);
muteButton.addEventListener(MouseEvent.MOUSE_OUT, resetHover);
x = 5;
y = 30;
}
function sleepHover(_arg1:MouseEvent){
helpText.gotoAndStop(8);
}
function pillHover(_arg1:MouseEvent){
helpText.gotoAndStop(7);
}
function exitHover(_arg1:MouseEvent){
helpText.gotoAndStop(6);
}
function playHover(_arg1:MouseEvent){
helpText.gotoAndStop(3);
}
function pauseHover(_arg1:MouseEvent){
helpText.gotoAndStop(2);
}
function introHover(_arg1:MouseEvent){
helpText.gotoAndStop(9);
}
function muteHover(_arg1:MouseEvent){
if (myParent.myParent.musicTransform.volume > 0){
helpText.gotoAndStop(4);
} else {
if (myParent.myParent.fxTransform.volume > 0){
helpText.gotoAndStop(5);
} else {
helpText.gotoAndStop(10);
};
};
}
function resetHover(_arg1:MouseEvent){
helpText.gotoAndStop(1);
}
function toggleMute(_arg1:MouseEvent){
myParent.myParent.muteCount++;
myParent.myParent.muteCount = (myParent.myParent.muteCount % 3);
trace(myParent.myParent.muteCount);
if (myParent.myParent.muteCount == 0){
helpText.gotoAndStop(4);
myParent.myParent.musicTransform.volume = 1;
myParent.myParent.music.soundTransform = myParent.myParent.musicTransform;
myParent.myParent.fxTransform.volume = 1;
myParent.fx.soundTransform = myParent.myParent.fxTransform;
myParent.staticChannel.soundTransform = myParent.myParent.fxTransform;
};
if (myParent.myParent.muteCount == 1){
helpText.gotoAndStop(5);
myParent.myParent.musicTransform.volume = 0;
myParent.myParent.music.soundTransform = myParent.myParent.musicTransform;
myParent.myParent.fxTransform.volume = 1;
myParent.fx.soundTransform = myParent.myParent.fxTransform;
myParent.staticChannel.soundTransform = myParent.myParent.fxTransform;
};
if (myParent.myParent.muteCount == 2){
helpText.gotoAndStop(10);
myParent.myParent.musicTransform.volume = 0;
myParent.myParent.music.soundTransform = myParent.myParent.musicTransform;
myParent.myParent.fxTransform.volume = 0;
myParent.fx.soundTransform = myParent.myParent.fxTransform;
myParent.staticChannel.soundTransform = myParent.myParent.fxTransform;
};
}
function sayText(_arg1:MouseEvent){
myParent.sayText();
}
function pillRestart(_arg1:MouseEvent){
myParent.theChar.startSuicide();
}
function exit(_arg1:MouseEvent){
myParent.EWindow.togglePos();
}
function sleepFun(_arg1:MouseEvent){
myParent.SlWindow.togglePos();
}
function pauseGame(_arg1:MouseEvent){
myParent.PWindow.togglePos();
}
function pickLevel(_arg1:MouseEvent){
if (myParent.myParent.gameState == "play2"){
myParent.myParent.currentLevel2 = (_arg1.currentTarget.levelChoose - 2);
} else {
myParent.myParent.currentLevel = (_arg1.currentTarget.levelChoose - 2);
};
myParent.startTrans();
gameVocals.stopSound();
}
function hoverLevel(_arg1:MouseEvent){
_arg1.currentTarget.gotoAndStop(4);
}
function hoverOutLevel(_arg1:MouseEvent){
_arg1.currentTarget.gotoAndStop(_arg1.currentTarget.frameNum);
}
function frame1(){
gameVocals.myParent = this;
}
}
}//package com.game
Section 107
//pop (com.game.pop)
package com.game {
import flash.display.*;
import fl.motion.*;
public class pop extends MovieClip {
var tileWidth;// = 30
var alphaTint:Number;// = 0.5
var colorTint:Number;
public function pop(_arg1:Number, _arg2:Number, _arg3:Number){
addFrameScript(22, frame23);
x = _arg1;
y = _arg2;
alpha = 0.5;
rotation = (Math.round((Math.random() * 3)) * 90);
var _local4:Number = 0;
var _local5:Number = 0;
colorTint = _arg3;
tint();
}
public function tint(){
var _local1:Color = new Color();
_local1.setTint(colorTint, alphaTint);
this.transform.colorTransform = _local1;
}
function frame23(){
stop();
}
}
}//package com.game
Section 108
//portalOpen (com.game.portalOpen)
package com.game {
import flash.media.*;
public dynamic class portalOpen extends Sound {
}
}//package com.game
Section 109
//pushblock (com.game.pushblock)
package com.game {
import flash.media.*;
public dynamic class pushblock extends Sound {
}
}//package com.game
Section 110
//pushPoof (com.game.pushPoof)
package com.game {
import flash.display.*;
import fl.motion.*;
public class pushPoof extends MovieClip {
var tileWidth;// = 30
var alphaTint:Number;// = 0.5
var colorTint:Number;
public function pushPoof(_arg1:Number, _arg2:Number, _arg3:Number){
addFrameScript(24, frame25);
x = _arg1;
y = _arg2;
alpha = 0.5;
var _local4:Number = 0;
var _local5:Number = 0;
colorTint = _arg3;
tint();
}
public function tint(){
var _local1:Color = new Color();
_local1.setTint(colorTint, alphaTint);
this.transform.colorTransform = _local1;
}
function frame25(){
stop();
}
}
}//package com.game
Section 111
//q (com.game.q)
package com.game {
import flash.media.*;
public dynamic class q extends Sound {
}
}//package com.game
Section 112
//q2 (com.game.q2)
package com.game {
import flash.media.*;
public dynamic class q2 extends Sound {
}
}//package com.game
Section 113
//r (com.game.r)
package com.game {
import flash.media.*;
public dynamic class r extends Sound {
}
}//package com.game
Section 114
//r2 (com.game.r2)
package com.game {
import flash.media.*;
public dynamic class r2 extends Sound {
}
}//package com.game
Section 115
//s (com.game.s)
package com.game {
import flash.media.*;
public dynamic class s extends Sound {
}
}//package com.game
Section 116
//s2 (com.game.s2)
package com.game {
import flash.media.*;
public dynamic class s2 extends Sound {
}
}//package com.game
Section 117
//sleepWindow (com.game.sleepWindow)
package com.game {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class sleepWindow extends MovieClip {
public var yesB:SimpleButton;
public var noB:SimpleButton;
var myParent:MovieClip;
var curTile:Array;
var colMC:MovieClip;
var a:BitmapData;
var image_bitmap;
public var myVar:String;
public function sleepWindow(_arg1){
curTile = new Array(1, 1);
colMC = new MovieClip();
super();
myParent = _arg1;
stop();
offPos();
if (myParent.myParent.gameState == "multiC"){
gotoAndStop((myParent.myParent._sharedObj.data.skipInfoM.length + 1));
} else {
gotoAndStop((myParent.myParent._sharedObj.data.skipInfo.length + 1));
};
if (currentFrame < 3){
yesB.addEventListener(MouseEvent.CLICK, slYes);
noB.addEventListener(MouseEvent.CLICK, slNo);
};
}
public function slYes(_arg1:MouseEvent){
myParent.theChar.startSleep();
offPos();
}
public function slNo(_arg1:MouseEvent){
offPos();
}
public function setPos(){
myParent.EWindow.offPos();
myParent.PWindow.offPos();
myParent.gameLive = false;
x = 0xFF;
y = 0xFF;
}
public function offPos(){
myParent.gameLive = true;
x = 1000;
y = 0xFF;
}
public function togglePos(){
trace(myParent.myParent.currentLevel);
if (myParent.myParent.currentLevel < 32){
if ((((myParent.myParent.gameState == "play")) || ((myParent.myParent.gameState == "multiC")))){
if (x > 900){
setPos();
} else {
offPos();
};
};
};
}
}
}//package com.game
Section 118
//slider (com.game.slider)
package com.game {
import flash.display.*;
import fl.motion.*;
import flash.geom.*;
public class slider extends MovieClip {
var myParent:MovieClip;
var myStart:Array;
public var currentLayer:Number;
var startLayer:Number;
var startx:Number;
var starty:Number;
public var xSpeed:Number;// = 0
public var ySpeed:Number;// = 0
var fallSpeed:Number;// = 1
var slowSpeed:Number;// = 0.07
var speed:Number;// = 4
var fastDes:Number;// = 0.8
var slowDes:Number;// = 0.5
var SpeedDes:Number;
var blockWidth:Number;// = 25
var TL:Boolean;
var TR:Boolean;
var BL:Boolean;
var BR:Boolean;
var xTileLeft:Number;
var xTileRight:Number;
var yTileTop:Number;
var yTileBottom:Number;
var xTile:Number;
var yTile:Number;
var tileWidth:Number;// = 30
var tileHeight:Number;// = 30
var win:Boolean;// = false
var kill:Boolean;// = false
var key:Boolean;// = false
var tele:Boolean;// = false
var telePage:Number;
var teleX:Number;
var teleY:Number;
public var isTele:Boolean;// = false
var isFlip:Boolean;// = false
var jumping:Boolean;// = false
var jumpSpeed:Number;// = -11.8
var landCount:Number;// = 6
var arrayTile:Number;
var currentTint:Number;
public var setWalker:Boolean;// = false
public var charFollow:Boolean;// = false
public var teleCount:Number;// = 0
public var pushDir:String;// = "right"
public function slider(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number){
myStart = new Array(5, 5);
SpeedDes = fastDes;
super();
myParent = _arg1;
startLayer = _arg2;
startx = _arg3;
starty = _arg4;
xTile = Math.floor((x / tileWidth));
yTile = Math.floor((y / tileHeight));
startSlider();
}
public function moveSlider():void{
var _local1:Number;
xTile = Math.floor((x / tileWidth));
yTile = Math.floor((y / tileHeight));
getMyDeathCorners(x, y);
if (((((((TL) || (TR))) || (BL))) || (BR))){
trace("block death");
myParent.makeBreakPoof(xTile, yTile, currentLayer);
if (charFollow){
myParent.theChar.breakPush();
};
breakSlider();
myParent.setActive();
};
if (teleCount > 5){
getTele(x, y);
if (!tele){
isTele = false;
};
if (((tele) && (!(isTele)))){
if (charFollow){
myParent.theChar.breakPush();
};
currentLayer = telePage;
isTele = true;
x = ((teleX * tileWidth) + (tileWidth / 2));
y = ((teleY * tileHeight) + (tileHeight / 2));
setTile();
myParent.rebuildMap();
};
} else {
teleCount++;
};
getMyCorners(x, (y + ySpeed));
if (ySpeed < 0){
if (((TL) && (TR))){
} else {
y = ((yTile * tileHeight) + (blockWidth / 2));
if (ySpeed < -5){
};
ySpeed = 0;
if (!myParent.grav){
jumping = false;
};
};
} else {
if (ySpeed > 0){
if (((BL) && (BR))){
} else {
y = ((((yTile + 1) * tileHeight) - (blockWidth / 2)) - 0.05);
if (ySpeed > 5){
};
ySpeed = 0;
if (myParent.grav){
jumping = false;
};
};
};
};
xTile = Math.floor((x / tileWidth));
yTile = Math.floor((y / tileHeight));
if (myParent.grav){
scaleY = 1;
} else {
scaleY = -1;
};
getFlip();
rotation = 0;
if (!charFollow){
if (myParent.grav){
if (ySpeed < 17){
ySpeed = (ySpeed + fallSpeed);
};
} else {
if (ySpeed > -17){
ySpeed = (ySpeed - fallSpeed);
};
};
y = (y + ySpeed);
} else {
if (myParent.theChar.pushDir == "right"){
x = (myParent.theChar.x + 23);
y = myParent.theChar.y;
} else {
if (myParent.theChar.pushDir == "left"){
x = (myParent.theChar.x - 23);
y = myParent.theChar.y;
} else {
x = myParent.theChar.x;
if (myParent.grav){
y = (myParent.theChar.y - 30);
} else {
y = (myParent.theChar.y + 30);
};
};
};
};
if (myParent.grav){
_local1 = 2.5;
} else {
_local1 = -2.5;
};
}
public function solidSlider(){
if (!charFollow){
if (ySpeed != 0){
myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].setNotWalk();
};
if (myParent.grav){
if (((!(BL)) && (!(BR)))){
myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].setWalk();
};
} else {
if (((!(TL)) && (!(TR)))){
myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].setWalk();
};
};
};
}
public function setTile(){
xTile = Math.floor((x / tileWidth));
yTile = Math.floor((y / tileHeight));
}
function restart(){
myParent.resetMap();
}
public function setTint(_arg1:Number){
var _local2:Color;
if (_arg1 != currentTint){
_local2 = new Color();
_local2.setTint(_arg1, 0.5);
transform.colorTransform = _local2;
currentTint = _arg1;
};
}
public function startSlider(){
xSpeed = 0;
ySpeed = 1;
xTile = startx;
yTile = starty;
setWalker = false;
charFollow = false;
currentLayer = startLayer;
x = ((startx * tileWidth) + (tileWidth / 2));
y = ((starty * tileHeight) + (tileHeight / 2));
}
public function spinSlider(_arg1:String){
var _local2:Number;
var _local3:Number;
if (_arg1 == "l"){
_local2 = ((myParent.mapWidth - yTile) - 1);
_local3 = xTile;
xTile = _local2;
yTile = _local3;
x = ((_local2 * tileWidth) + (tileWidth / 2));
y = (((_local3 * tileWidth) + (tileWidth / 2)) + 2.5);
} else {
if (_arg1 == "r"){
_local2 = yTile;
_local3 = ((myParent.mapWidth - xTile) - 1);
xTile = _local2;
yTile = _local3;
x = ((_local2 * tileWidth) + (tileWidth / 2));
y = (((_local3 * tileWidth) + (tileWidth / 2)) + ((tileWidth - blockWidth) / 2));
} else {
if (_arg1 == "v"){
if (currentLayer == myParent.offsetCount){
_local3 = ((myParent.mapWidth - yTile) - 1);
yTile = _local3;
y = (((_local3 * tileWidth) + (tileWidth / 2)) + ((tileWidth - blockWidth) / 2));
};
} else {
if (_arg1 == "f"){
if (currentLayer == myParent.offsetCount){
_local2 = ((myParent.mapWidth - xTile) - 1);
xTile = _local2;
x = ((_local2 * tileWidth) + (tileWidth / 2));
};
};
};
};
};
}
function getTele(_arg1, _arg2){
tele = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].teleport;
teleX = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].teleX;
teleY = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].teleY;
telePage = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].telePage;
}
function getKey(_arg1, _arg2){
var _local3:Number;
key = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].key;
if (key){
_local3 = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].getKey();
myParent.removeKey(myParent.tileArray[_local3]);
myParent.keyArray[((myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].arrayLoc * 4) + 3)] = 0;
myParent.totalKey--;
myParent.rebuildMap();
trace(myParent.totalKey);
};
}
function getFlip(){
if (!myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].flipper){
isFlip = false;
};
if (((myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].flipper) && (!(isFlip)))){
isFlip = true;
trace(myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].flipControl);
switch (myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].flipControl){
case 0:
myParent.flipMap();
break;
case 1:
myParent.vertFlipMap();
break;
case 2:
myParent.flipGrav();
break;
case 3:
myParent.spinMapL();
break;
case 4:
myParent.spinMapR();
break;
};
};
}
function getMyCorners(_arg1, _arg2){
xTileLeft = Math.floor(((_arg1 - (blockWidth / 2)) / tileWidth));
xTileRight = Math.floor(((_arg1 + (blockWidth / 2)) / tileWidth));
yTileTop = Math.floor(((_arg2 - (blockWidth / 2)) / tileHeight));
yTileBottom = Math.floor(((_arg2 + (blockWidth / 2)) / tileHeight));
TL = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileLeft)].isWalkable();
BL = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileLeft)].isWalkable();
TR = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileRight)].isWalkable();
BR = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileRight)].isWalkable();
}
function getMyDeath(){
kill = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].killer;
}
function getMyDeathCorners(_arg1, _arg2){
xTileLeft = Math.floor(((_arg1 - (blockWidth / 4)) / tileWidth));
xTileRight = Math.floor(((_arg1 + (blockWidth / 4)) / tileWidth));
yTileTop = Math.floor((((_arg2 - (blockWidth / 2)) + 1) / tileHeight));
yTileBottom = Math.floor((((_arg2 + (blockWidth / 2)) + 1) / tileHeight));
TL = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileLeft)].killer;
BL = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileLeft)].killer;
TR = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileRight)].killer;
BR = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileRight)].killer;
}
function getChar():Point{
var _local1:Point = new Point(x, y);
return (_local1);
}
public function resetMe(){
xSpeed = 0;
ySpeed = 1;
}
public function tintMe(){
trace("tint");
}
function spawnDust(){
var _local1:blockLandPoof = new blockLandPoof(x, y, myParent.colorArray[(currentLayer * 3)]);
_local1.scaleY = scaleY;
myParent.poofMC.addChild(_local1);
var _local2:Number = Math.ceil((Math.random() * 2));
myParent.playSoundFX(("blockLand" + _local2));
}
function breakSlider(){
currentLayer = 100;
}
}
}//package com.game
Section 119
//Story_End (com.game.Story_End)
package com.game {
import flash.display.*;
public dynamic class Story_End extends MovieClip {
public var myParent:MovieClip;
public function Story_End(){
addFrameScript(0, frame1, 629, frame630);
}
function frame1(){
}
function frame630(){
myParent.gotoAndStop("intro");
stop();
}
}
}//package com.game
Section 120
//Story_End2 (com.game.Story_End2)
package com.game {
import flash.display.*;
public dynamic class Story_End2 extends MovieClip {
public var myParent:MovieClip;
public function Story_End2(){
addFrameScript(0, frame1, 629, frame630);
}
function frame1(){
}
function frame630(){
myParent.gotoAndStop("intro");
stop();
}
}
}//package com.game
Section 121
//Story_End3 (com.game.Story_End3)
package com.game {
import flash.display.*;
public dynamic class Story_End3 extends MovieClip {
public var introVocals:vocals;
public var myParent:MovieClip;
public function Story_End3(){
addFrameScript(0, frame1, 891, frame892);
}
function frame1(){
}
function frame892(){
myParent.gotoAndPlay("outro");
stop();
}
}
}//package com.game
Section 122
//Story_Intro (com.game.Story_Intro)
package com.game {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.geom.*;
import flash.net.*;
import flash.media.*;
import flash.text.*;
import flash.ui.*;
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.xml.*;
public dynamic class Story_Intro extends MovieClip {
public var introVocals:vocals;
public var myParent:MovieClip;
public function Story_Intro(){
addFrameScript(0, frame1, 432, frame433, 1040, frame1041, 1460, frame1461, 2302, frame2303, 2413, frame2414, 2484, frame2485, 2599, frame2600);
}
function frame1(){
}
function frame433(){
introVocals.displayText.textColor = 0xCCCCCC;
introVocals.x = 130;
introVocals.y = -140;
introVocals.setWidth(250, 200);
introVocals.startSound("OMG WHAT YEAR IS THIS!?!!\n\nHey man, listen to me very carefully. I'm you.. You from the future, sent back in time 20 minutes from now to tell you that you need to get into this box now!");
}
function frame1041(){
introVocals.x = -140;
introVocals.y = 20;
introVocals.setWidth(120, 440);
introVocals.startSound("Its imperative that you get into this box our existence depends on it, and lets face it..\n\nyou dont have much else to do these days anyway.");
}
function frame1461(){
introVocals.x = -310;
introVocals.y = -165;
introVocals.setWidth(170, 435);
introVocals.startSound("Getting in this box is what's best for all of us, you will learn so much.. yet experience so little.\n\nIt's quite a wild ride my friend, well worth the time spent.. and I wouldn't lie to a fellow \"Me\" now would I?\n\nBut time is ticking...\n\nYou need to get into this box now!");
}
function frame2303(){
introVocals.x = -100;
introVocals.y = -190;
introVocals.setWidth(179, 200);
introVocals.startSound("I SAID GET\nIN THE\nDAMN BOX!!");
}
function frame2414(){
introVocals.x = -1000;
introVocals.y = -1900;
}
function frame2485(){
if (myParent._sharedObj.data.currentLevel >= 32){
myParent.gotoAndPlay("outro");
stop();
};
}
function frame2600(){
stop();
myParent.gotoAndStop("game");
}
}
}//package com.game
Section 123
//Story_Outro (com.game.Story_Outro)
package com.game {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.geom.*;
import flash.net.*;
import flash.media.*;
import flash.text.*;
import flash.ui.*;
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.xml.*;
public dynamic class Story_Outro extends MovieClip {
public var introVocals:vocals;
public var myParent:MovieClip;
public function Story_Outro(){
addFrameScript(0, frame1, 527, frame528, 535, frame536);
}
function frame1(){
}
function frame528(){
introVocals.displayText.textColor = 0x999999;
introVocals.displayText.autoSize = "right";
introVocals.x = 30;
introVocals.y = -210;
introVocals.setWidth(420, 310);
if (myParent.endText == 1){
introVocals.startSound("This wall of text means nothing, about as much as the basic rules others set in place for you. The more you read the more you realize that you will follow any direction, regardless of the time spent doing so, or eventual outcome. You are simply looking for answers. And even though you have been told there will be no answers here you continue to read, following the basic rules set in place by the people around you. The path you're on will only lead to an end. This text will stop, the game will be concluded, and the curtain will eventually fall. We all follow. We all want instruction and comfort. We all stuck in repetition because its simply easier then taking a risk and just not reading the text before you. Please stop reading this, it means nothing... about as much as the basic rules others set in place for you.");
} else {
if (myParent.endText == 2){
introVocals.startSound("When I was 4 my mother put me inside a cardboard box with a black marker.\nI drew on the walls for days, making a world I felt was much more interesting than the one I currently subscribed to. I cut a small hole it the front of it, well more of a flap that would let me peak out into the world to see how things were going. This is also how my mom kept me fed.\nWhen I turned 10 my mom got me a much larger box and with my black marker I drew my future.\n\"I can't see what I'm drawing mom, it's too dark in here\" I said.\n\"Turn on the light\" she said.\nWhen I turned on the light a chill went up my spine when I saw the bodies. Bodies of my future selves covering the walls of the box, scratching in their sleep.. Whispering secrets. Each one wandering in the darkness in the world I created, the world I had made for myself.\nI turned off the light, and asked for another box... and a different marker.");
} else {
if (myParent.endText == 3){
introVocals.startSound("To Steven,\nIf you are reading this message it means i am gone. I'm having a hard time coming up with something compelling or eye opening to say here,it seems warranted seeing as this will be the last thing you and i both will read.\nthe harder i think about it the more i realize that i was wrong.\nasking more of us was wrong, reaching into the future and dredging up the past has only done more harm than good. face it it was better if we had all stayed in that box, our failures were only known to ourselves. circular logic is always comforting and being alone grows character. leaving that box was the worst thing we ever did... we both know this.\nRemember when we were little? we used to stay locked up inside, safe from the world, we were best friends and at times worst enemies... i hated you so much then. eh, honestly i cant say i like you much more now.. obviously seeing as ill be killing you shortly after i write this... you were a let down Steven, why couldn't you be happy in the box? why did you try to get out? either path will always lead you here.. you knew this going in, yet you continued to push... why couldnt you just be happy in the dark? what was so bad?\nSo whats the point then? why even bother, we both know we die at the end of this letter.. why read it? if we dont read it then will we continue to exist? face it Steven we are just prolonging the inevitable... YOU ARE GOING TO DIE, you will die when this message ends, you will cease to exists, we will all cease to exist, and in time be forgotten..\nDon't stop writing this message Steven... if you stop we die, if you die there is nothing left of us, keep writing, please i beg of you.. dont stop writing this message. ive put up with too much to let it end like this, and its all your fault. YOU DID THIS TO US STEVEN! DONT STOP WRITING THIS MESSAGE STEVEN! PLEASE, I DONT WANT TO DIE, I DONT WANT TO BE FORGOTTEN, PLEASE KEEP WRITING THIS MES");
};
};
};
}
function frame536(){
stop();
}
}
}//package com.game
Section 124
//submitWindow (com.game.submitWindow)
package com.game {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class submitWindow extends MovieClip {
public var d1:MovieClip;
public var d2:MovieClip;
public var d3:MovieClip;
public var d4:MovieClip;
public var submit:SimpleButton;
public var d5:MovieClip;
public var more:SimpleButton;
public var levelName:TextField;
public var levelCode:TextField;
public var MMbutton:SimpleButton;
var myParent:MovieClip;
var curTile:Array;
var colMC:MovieClip;
var a:BitmapData;
var image_bitmap;
public var myVar:String;// = ""
public function submitWindow(_arg1){
curTile = new Array(1, 1);
colMC = new MovieClip();
super();
addFrameScript(0, frame1, 2, frame3, 3, frame4);
myParent = _arg1;
offPos();
var _local2:Number = 1;
while (_local2 <= 5) {
this[("d" + _local2)].diff = _local2;
this[("d" + _local2)].buttonMode = true;
this[("d" + _local2)].addEventListener(MouseEvent.MOUSE_UP, pickDiff);
_local2++;
};
more.addEventListener(MouseEvent.MOUSE_UP, back);
submit.addEventListener(MouseEvent.MOUSE_UP, submitMap);
}
function mainMenu(_arg1:MouseEvent){
myParent.myParent.stopMusic();
myParent.myParent.gotoAndStop("menu");
}
function submitMap(_arg1:MouseEvent){
if (((!((levelName.text == ""))) && (!((myParent.mapDiff == 0))))){
myParent.submitLevel();
};
}
function back(_arg1:MouseEvent){
myParent.startEdit();
}
function pickDiff(_arg1:MouseEvent){
if (myParent.mapDiff > 0){
this[("d" + myParent.mapDiff)].gotoAndStop(1);
};
myParent.mapDiff = _arg1.currentTarget.diff;
this[("d" + myParent.mapDiff)].gotoAndStop(2);
}
public function setPos(){
x = 0xFF;
y = 0xFF;
}
public function offPos(){
x = 1000;
y = 0xFF;
}
function frame1(){
stop();
}
function frame3(){
levelCode.text = myVar;
MMbutton.addEventListener(MouseEvent.MOUSE_UP, mainMenu);
}
function frame4(){
levelCode.text = myVar;
MMbutton.addEventListener(MouseEvent.MOUSE_UP, mainMenu);
}
}
}//package com.game
Section 125
//switcher (com.game.switcher)
package com.game {
import flash.display.*;
public dynamic class switcher extends MovieClip {
public function switcher(){
addFrameScript(0, frame1, 12, frame13, 29, frame30, 44, frame45, 59, frame60, 74, frame75, 84, frame85);
}
function frame1(){
stop();
}
function frame13(){
gotoAndStop(1);
}
function frame30(){
gotoAndStop(1);
}
function frame45(){
gotoAndStop(1);
}
function frame60(){
gotoAndStop(1);
}
function frame75(){
gotoAndStop(1);
}
function frame85(){
gotoAndStop(1);
}
}
}//package com.game
Section 126
//t (com.game.t)
package com.game {
import flash.media.*;
public dynamic class t extends Sound {
}
}//package com.game
Section 127
//t2 (com.game.t2)
package com.game {
import flash.media.*;
public dynamic class t2 extends Sound {
}
}//package com.game
Section 128
//talkie1 (com.game.talkie1)
package com.game {
import flash.media.*;
public dynamic class talkie1 extends Sound {
}
}//package com.game
Section 129
//talkie2 (com.game.talkie2)
package com.game {
import flash.media.*;
public dynamic class talkie2 extends Sound {
}
}//package com.game
Section 130
//talkie3 (com.game.talkie3)
package com.game {
import flash.media.*;
public dynamic class talkie3 extends Sound {
}
}//package com.game
Section 131
//talkingBg (com.game.talkingBg)
package com.game {
import flash.media.*;
public dynamic class talkingBg extends Sound {
}
}//package com.game
Section 132
//textWindow (com.game.textWindow)
package com.game {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class textWindow extends MovieClip {
public var editVocals:vocals;
public var backButton:SimpleButton;
public var introText:TextField;
public var testSound:SimpleButton;
var myParent:MovieClip;
var curTile:Array;
var colMC:MovieClip;
var a:BitmapData;
var image_bitmap;
public var myVar:String;
public function textWindow(_arg1){
curTile = new Array(1, 1);
colMC = new MovieClip();
super();
addFrameScript(0, frame1);
myParent = _arg1;
offPos();
backButton.addEventListener(MouseEvent.MOUSE_UP, back);
testSound.addEventListener(MouseEvent.MOUSE_UP, sendText);
}
function sendText(_arg1:MouseEvent){
editVocals.startSound(introText.text);
}
function mainMenu(_arg1:MouseEvent){
myParent.myParent.gotoAndStop("menu");
}
function back(_arg1:MouseEvent){
myParent.optionsPicking = false;
myParent.textPicking = false;
myParent.resetMap();
}
function pickLayer(_arg1:MouseEvent){
this[("l" + myParent.totalLevel)].gotoAndStop(1);
myParent.totalLevel = _arg1.currentTarget.layer;
myParent.mapData[3][0] = _arg1.currentTarget.layer;
this[("l" + myParent.totalLevel)].gotoAndStop(2);
myParent.offsetCount = 0;
myParent.resetMap();
}
function pickScore(_arg1:MouseEvent){
if (myParent.mapScore > 0){
this[("s" + myParent.mapScore)].gotoAndStop(1);
};
myParent.mapScore = _arg1.currentTarget.score;
this[("s" + myParent.mapScore)].gotoAndStop(2);
}
public function setPos(){
x = 0xFF;
y = 0xFF;
}
public function offPos(){
x = 1000;
y = 0xFF;
}
function frame1(){
stop();
}
}
}//package com.game
Section 133
//tile (com.game.tile)
package com.game {
import flash.display.*;
import fl.motion.*;
public class tile extends MovieClip {
public var green:MovieClip;
public var door:MovieClip;
public var doorKey:MovieClip;
var walkable:Boolean;// = false
var win:Boolean;// = false
var killer:Boolean;// = false
var teleport:Boolean;// = false
var key:Boolean;// = false
var keyLoc:Number;
var arrayLoc:MovieClip;
var tileWidth;// = 30
var tileHeight;// = 30
var telePage:Number;
var teleX:Number;
var teleY:Number;
var xHold:Number;
var yHold:Number;
var tileNum:Number;
var colorArray:Array;
var alphaTint:Number;// = 0.5
var colorTint:Number;
var flipper:Boolean;// = false
var flipControl:Number;// = 0
public var startOpen:Boolean;// = false
public var isMoveing:Boolean;// = false
public function tile(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0, _arg7:Boolean=false, _arg8:Boolean=true){
colorArray = new Array(0xCCCCCC, 0x3300CC, 0x990000);
super();
addFrameScript(0, frame1, 139, frame140);
x = (_arg1 * tileWidth);
y = (_arg2 * tileHeight);
var _local9:Number = 0;
var _local10:Number = 0;
switch (_arg6){
case 0:
if (_arg7){
_local9 = (_local9 + tileWidth);
scaleX = -1;
};
break;
case 1:
rotation = 90;
if (_arg7){
scaleY = -1;
} else {
_local9 = tileWidth;
};
break;
case 2:
rotation = 180;
if (_arg7){
scaleX = -1;
_local10 = tileWidth;
} else {
_local9 = tileWidth;
_local10 = tileWidth;
};
break;
case 3:
rotation = 270;
if (_arg7){
_local10 = tileWidth;
_local9 = tileWidth;
scaleY = -1;
} else {
_local10 = tileWidth;
};
break;
};
x = (x + _local9);
y = (y + _local10);
setTile(_arg3, _arg5, _arg4);
}
public function setTile(_arg1, _arg2, _arg3){
tileNum = _arg1;
colorTint = _arg3;
tint();
gotoAndStop((tileNum + 1));
switch (tileNum){
case 0:
case 13:
case 14:
case 15:
case 16:
case 17:
case 18:
case 19:
case 20:
case 21:
case 22:
case 23:
case 24:
case 25:
case 26:
case 27:
case 28:
case 33:
case 142:
case 143:
case 144:
case 145:
case 146:
case 149:
walkable = true;
killer = false;
win = false;
break;
case 34:
case 35:
case 36:
walkable = true;
killer = false;
win = true;
break;
case 29:
case 30:
case 31:
case 32:
walkable = true;
killer = true;
win = false;
break;
default:
walkable = false;
killer = false;
win = false;
};
}
public function tint(_arg1:Number=-1){
if (_arg1 == -1){
_arg1 = alphaTint;
};
var _local2:Color = new Color();
_local2.setTint(colorTint, _arg1);
this.transform.colorTransform = _local2;
}
public function setWalk(){
walkable = false;
}
public function setNotWalk(){
walkable = true;
}
public function setTele(_arg1:Number, _arg2:Number, _arg3:Number){
teleport = true;
telePage = _arg1;
teleX = _arg2;
teleY = _arg3;
}
public function setKey(_arg1:MovieClip){
key = true;
arrayLoc = _arg1;
}
public function setNotKey(){
key = false;
arrayLoc = null;
}
public function getKey():MovieClip{
key = false;
return (arrayLoc);
}
public function setFlip(_arg1:Number):void{
flipper = true;
flipControl = _arg1;
}
public function getFlip():Number{
var _local1:Number = 100;
if (flipper){
_local1 = flipControl;
};
return (_local1);
}
public function openDoor():void{
setTile(34, 0, colorTint);
}
public function closeDoor():void{
}
public function isWalkable():Boolean{
return (walkable);
}
public function isClear():Boolean{
if (((!(walkable)) || (killer))){
return (true);
};
return (false);
}
function frame1(){
stop();
}
function frame140(){
if (startOpen){
door.gotoAndPlay(7);
};
}
}
}//package com.game
Section 134
//tile_chunk (com.game.tile_chunk)
package com.game {
import flash.display.*;
import fl.motion.*;
public class tile_chunk extends MovieClip {
var myParent:MovieClip;
var xSpeed:Number;
var ySpeed:Number;
var fallSpeed:Number;// = 1
var alphaTint:Number;// = 0.5
var colorTint:Number;
var tileWidth;// = 30
public function tile_chunk(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number){
myParent = _arg1;
x = ((_arg2 * tileWidth) + (Math.random() * tileWidth));
y = ((_arg3 * tileWidth) + (Math.random() * tileWidth));
rotation = (Math.random() * 360);
ySpeed = ((-(Math.random()) * 6) - 7);
xSpeed = ((Math.random() * 8) - 4);
colorTint = _arg4;
tint();
}
public function falling():void{
if (myParent.grav){
ySpeed = (ySpeed + fallSpeed);
} else {
ySpeed = (ySpeed - fallSpeed);
};
y = (y + ySpeed);
x = (x + xSpeed);
rotation = (rotation + (xSpeed * 5));
}
public function removeCheck():Boolean{
if ((((y > 500)) || ((y < 0)))){
return (true);
};
return (false);
}
public function tint(){
var _local1:Color = new Color();
_local1.setTint(colorTint, alphaTint);
this.transform.colorTransform = _local1;
}
}
}//package com.game
Section 135
//tile_outline (com.game.tile_outline)
package com.game {
import flash.display.*;
public class tile_outline extends MovieClip {
var tileWidth;// = 30
var tileHeight;// = 30
public function tile_outline(_arg1:Number, _arg2:Number){
x = (_arg1 * tileWidth);
y = (_arg2 * tileHeight);
}
}
}//package com.game
Section 136
//tileWindow (com.game.tileWindow)
package com.game {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class tileWindow extends MovieClip {
public var t30:MovieClip;
public var t21:MovieClip;
public var t12:MovieClip;
public var t0:MovieClip;
public var t31:MovieClip;
public var t22:MovieClip;
public var t13:MovieClip;
public var t1:MovieClip;
public var tilePick:MovieClip;
public var t32:MovieClip;
public var t23:MovieClip;
public var t2:MovieClip;
public var t14:MovieClip;
public var t33:MovieClip;
public var t24:MovieClip;
public var t15:MovieClip;
public var t3:MovieClip;
public var green:MovieClip;
public var t25:MovieClip;
public var t16:MovieClip;
public var t4:MovieClip;
public var t26:MovieClip;
public var t17:MovieClip;
public var t5:MovieClip;
public var t27:MovieClip;
public var t18:MovieClip;
public var t6:MovieClip;
public var door:MovieClip;
public var t28:MovieClip;
public var t19:MovieClip;
public var t7:MovieClip;
public var newChar:MovieClip;
public var t29:MovieClip;
public var t8:MovieClip;
public var t9:MovieClip;
public var portal:MovieClip;
public var flip0:MovieClip;
public var flip1:MovieClip;
public var blockDesc:TextField;
public var time:MovieClip;
public var flip2:MovieClip;
public var key:MovieClip;
public var flip3:MovieClip;
public var t10:MovieClip;
public var flip4:MovieClip;
public var slider:MovieClip;
public var t20:MovieClip;
public var t11:MovieClip;
var myParent:MovieClip;
var mapWidth:Number;// = 10
var tileCount:Number;// = 40
var offset;
var flipArray:Array;
var descArray:Array;
var charDesc:String;// = "place your character, your character always starts on the first screen"
var portalDesc:String;// = "place a portal, click once to put down the portal, and click again to pick the portal exit. Portal exit can be on any screen."
var keyDesc:String;// = "place a key, all keys must be collected before the final door is opened"
var greenDesc:String;// = "green tile, if close enough will travel with you to the next layer"
var sliderDesc:String;// = "slider block, you can move this around with you"
var timeDesc:String;// = "block disapears after a certain amount of time"
var doorDesc:String;// = "key door combo, put down key first, then put down door"
public function tileWindow(_arg1, _arg2){
flipArray = new Array("flip1", "flip2", "flip3", "flip4", "flip5");
descArray = new Array("Blank Tile", "Generic Ground Tile", "Generic Ground Tile", "Generic Ground Tile", "Generic Ground Tile", "Generic Ground Tile", "Generic Ground Tile", "Generic Ground Tile", "Generic Ground Tile", "Generic Ground Tile", "Generic Ground Tile", "Generic Ground Tile", "Generic Ground Tile", "Generic Background Tile", "Generic Background Tile", "Generic Background Tile", "Generic Background Tile", "Generic Background Tile", "Generic Background Tile", "Generic Background Tile", "Generic Background Tile", "Generic Background Tile", "Generic Background Tile", "Generic Background Tile", "Generic Background Tile", "Generic Background Tile", "Generic Background Tile", "Generic Background Tile", "Generic Background Tile Last", "Killer saw tile (die if you touch it)", "Killer saw tile (die if you touch it)", "Killer saw tile (die if you touch it)", "Killer saw tile (die if you touch it)", "Exit tile (get all keys to open this bitch)");
super();
myParent = _arg1;
offset = _arg2;
setPos();
var _local3:* = 0;
while (_local3 <= 33) {
this[("t" + _local3)].args = _local3;
this[("t" + _local3)].quote = descArray[_local3];
this[("t" + _local3)].buttonMode = true;
this[("t" + _local3)].addEventListener(MouseEvent.MOUSE_UP, pickTile);
this[("t" + _local3)].addEventListener(MouseEvent.ROLL_OVER, hoverTile);
_local3++;
};
newChar.gotoAndStop(151);
newChar.quote = charDesc;
newChar.buttonMode = true;
newChar.addEventListener(MouseEvent.MOUSE_UP, placeChar);
newChar.addEventListener(MouseEvent.ROLL_OVER, hoverTile);
portal.quote = portalDesc;
portal.buttonMode = true;
portal.addEventListener(MouseEvent.MOUSE_UP, placePortal);
portal.addEventListener(MouseEvent.ROLL_OVER, hoverTile);
key.quote = keyDesc;
key.buttonMode = true;
key.addEventListener(MouseEvent.MOUSE_UP, placeKey);
key.addEventListener(MouseEvent.ROLL_OVER, hoverTile);
green.quote = greenDesc;
green.buttonMode = true;
green.addEventListener(MouseEvent.MOUSE_UP, placeGreen);
green.addEventListener(MouseEvent.ROLL_OVER, hoverTile);
slider.quote = sliderDesc;
slider.buttonMode = true;
slider.addEventListener(MouseEvent.MOUSE_UP, placeSlider);
slider.addEventListener(MouseEvent.ROLL_OVER, hoverTile);
time.quote = timeDesc;
time.buttonMode = true;
time.addEventListener(MouseEvent.MOUSE_UP, placeTime);
time.addEventListener(MouseEvent.ROLL_OVER, hoverTile);
door.quote = doorDesc;
door.buttonMode = true;
door.addEventListener(MouseEvent.MOUSE_UP, placeDoor);
door.addEventListener(MouseEvent.ROLL_OVER, hoverTile);
_local3 = 0;
while (_local3 <= 4) {
this[("flip" + _local3)].args = _local3;
this[("flip" + _local3)].quote = flipArray[_local3];
this[("flip" + _local3)].buttonMode = true;
this[("flip" + _local3)].addEventListener(MouseEvent.MOUSE_UP, pickFlip);
this[("flip" + _local3)].addEventListener(MouseEvent.ROLL_OVER, hoverTile);
this[("flip" + _local3)].gotoAndStop((_local3 + 143));
_local3++;
};
_local3 = 0;
while (_local3 <= 33) {
this[("t" + _local3)].gotoAndStop((_local3 + 1));
_local3++;
};
portal.gotoAndStop(150);
key.gotoAndStop(149);
green.gotoAndStop(148);
slider.gotoAndStop(142);
time.gotoAndStop(141);
door.gotoAndStop(139);
movePicker();
}
public function setPos(){
x = 490;
y = 45;
}
public function offPos(){
x = 1000;
}
function getHeight(_arg1):Number{
return ((_arg1 % mapWidth));
}
function getWidth(_arg1):Number{
return (Math.floor((_arg1 / mapWidth)));
}
function placeDoor(_arg1:MouseEvent){
myParent.currentTile = 206;
movePicker();
myParent.myParent.shifted = false;
}
function placeTime(_arg1:MouseEvent){
myParent.currentTile = 205;
movePicker();
myParent.myParent.shifted = false;
}
function placeSlider(_arg1:MouseEvent){
myParent.currentTile = 204;
movePicker();
myParent.myParent.shifted = false;
}
function placeGreen(_arg1:MouseEvent){
myParent.currentTile = 203;
movePicker();
myParent.myParent.shifted = false;
}
function placeKey(_arg1:MouseEvent){
myParent.currentTile = 202;
movePicker();
myParent.myParent.shifted = false;
}
function placePortal(_arg1:MouseEvent){
myParent.currentTile = 201;
movePicker();
myParent.myParent.shifted = false;
}
function placeChar(_arg1:MouseEvent){
myParent.currentTile = 200;
movePicker();
myParent.myParent.shifted = false;
}
function pickFlip(_arg1:MouseEvent){
myParent.currentTile = (300 + Number(_arg1.currentTarget.args));
movePicker();
myParent.myParent.shifted = false;
}
function pickTile(_arg1:MouseEvent){
myParent.currentTile = _arg1.currentTarget.args;
movePicker();
myParent.myParent.shifted = false;
}
function hoverTile(_arg1:MouseEvent){
blockDesc.text = _arg1.target.quote;
}
public function movePicker(){
var _local1:Number;
var _local2:Number;
switch (myParent.currentTile){
case 200:
_local1 = newChar.x;
_local2 = newChar.y;
break;
case 201:
_local1 = portal.x;
_local2 = portal.y;
break;
case 202:
_local1 = key.x;
_local2 = key.y;
break;
case 203:
_local1 = green.x;
_local2 = green.y;
break;
case 204:
_local1 = slider.x;
_local2 = slider.y;
break;
case 205:
_local1 = time.x;
_local2 = time.y;
break;
case 206:
_local1 = door.x;
_local2 = door.y;
break;
case 300:
case 301:
case 302:
case 303:
case 304:
_local1 = this[("flip" + (myParent.currentTile - 300))].x;
_local2 = this[("flip" + (myParent.currentTile - 300))].y;
break;
default:
_local1 = this[("t" + myParent.currentTile)].x;
_local2 = this[("t" + myParent.currentTile)].y;
break;
};
tilePick.x = _local1;
tilePick.y = _local2;
}
}
}//package com.game
Section 137
//timeTile (com.game.timeTile)
package com.game {
import flash.display.*;
import fl.motion.*;
import flash.geom.*;
public class timeTile extends MovieClip {
var myParent:MovieClip;
var myStart:Array;
public var currentLayer:Number;
var startLayer:Number;
var startx:Number;
var starty:Number;
public var xSpeed:Number;// = 0
public var ySpeed:Number;// = 0
var fallSpeed:Number;// = 1
var slowSpeed:Number;// = 0.07
var speed:Number;// = 4
var fastDes:Number;// = 0.8
var slowDes:Number;// = 0.5
var SpeedDes:Number;
var blockWidth:Number;// = 30
var TL:Boolean;
var TR:Boolean;
var BL:Boolean;
var BR:Boolean;
var xTileLeft:Number;
var xTileRight:Number;
var yTileTop:Number;
var yTileBottom:Number;
var xTile:Number;
var yTile:Number;
var tileWidth:Number;// = 30
var tileHeight:Number;// = 30
var win:Boolean;// = false
var kill:Boolean;// = false
var tele:Boolean;// = false
var telePage:Number;
var teleX:Number;
var teleY:Number;
public var isTele:Boolean;// = false
var isFlip:Boolean;// = false
var jumping:Boolean;// = false
var jumpSpeed:Number;// = -11.8
var landCount:Number;// = 6
var arrayTile:Number;
var totalTimeCount:Number;
var totalTimeSet:Number;
public var setWalker:Boolean;// = false
public var charFollow:Boolean;// = false
public var teleCount:Number;// = 0
public var pushDir:String;// = "right"
var currentTint:Number;
public function timeTile(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number){
myStart = new Array(5, 5);
SpeedDes = fastDes;
super();
addFrameScript(0, frame1);
myParent = _arg1;
startLayer = _arg2;
startx = _arg3;
starty = _arg4;
totalTimeSet = (_arg5 * 30);
xTile = Math.floor((x / tileWidth));
yTile = Math.floor((y / tileHeight));
startTime();
}
public function moveTime():void{
if (totalTimeCount < 0){
myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].setNotWalk();
currentLayer = 100;
myParent.setActive();
} else {
myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].setWalk();
gotoAndStop(Math.ceil((totalTimeCount / 30)));
totalTimeCount--;
};
}
function restart(){
myParent.resetMap();
}
public function setTint(_arg1:Number){
var _local2:Color;
if (_arg1 != currentTint){
_local2 = new Color();
_local2.setTint(_arg1, 0.5);
transform.colorTransform = _local2;
currentTint = _arg1;
};
}
public function setStartTime(_arg1){
totalTimeSet = (_arg1 * 30);
}
public function startTime(){
xSpeed = 0;
setWalker = false;
currentLayer = startLayer;
totalTimeCount = totalTimeSet;
xTile = startx;
yTile = starty;
x = ((xTile * tileWidth) + (tileWidth / 2));
y = ((yTile * tileHeight) + (tileHeight / 2));
gotoAndStop(Math.ceil((totalTimeCount / 30)));
}
function getTele(_arg1, _arg2){
tele = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].teleport;
teleX = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].teleX;
teleY = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].teleY;
telePage = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].telePage;
}
public function spinTime(_arg1:String){
var _local2:Number;
var _local3:Number;
if (_arg1 == "l"){
_local2 = ((myParent.mapWidth - yTile) - 1);
_local3 = xTile;
xTile = _local2;
yTile = _local3;
x = ((_local2 * tileWidth) + (tileWidth / 2));
y = (((_local3 * tileWidth) + (tileWidth / 2)) + 2.5);
} else {
if (_arg1 == "r"){
_local2 = yTile;
_local3 = ((myParent.mapWidth - xTile) - 1);
xTile = _local2;
yTile = _local3;
x = ((_local2 * tileWidth) + (tileWidth / 2));
y = (((_local3 * tileWidth) + (tileWidth / 2)) + ((tileWidth - blockWidth) / 2));
} else {
if (_arg1 == "v"){
if (currentLayer == myParent.offsetCount){
_local3 = ((myParent.mapWidth - yTile) - 1);
yTile = _local3;
y = (((_local3 * tileWidth) + (tileWidth / 2)) + ((tileWidth - blockWidth) / 2));
};
} else {
if (_arg1 == "f"){
if (currentLayer == myParent.offsetCount){
_local2 = ((myParent.mapWidth - xTile) - 1);
xTile = _local2;
x = ((_local2 * tileWidth) + (tileWidth / 2));
};
};
};
};
};
}
function getFlip(){
if (!myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].flipper){
isFlip = false;
};
if (((myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].flipper) && (!(isFlip)))){
isFlip = true;
trace(myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].flipControl);
switch (myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].flipControl){
case 0:
myParent.flipMap();
break;
case 1:
myParent.flipGrav();
break;
case 2:
myParent.spinMapL();
break;
case 3:
myParent.spinMapR();
break;
};
};
}
function getMyCorners(_arg1, _arg2){
xTileLeft = Math.floor(((_arg1 - (blockWidth / 2)) / tileWidth));
xTileRight = Math.floor(((_arg1 + (blockWidth / 2)) / tileWidth));
yTileTop = Math.floor(((_arg2 - (blockWidth / 2)) / tileHeight));
yTileBottom = Math.floor(((_arg2 + (blockWidth / 2)) / tileHeight));
TL = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileLeft)].isWalkable();
BL = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileLeft)].isWalkable();
TR = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileRight)].isWalkable();
BR = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileRight)].isWalkable();
}
function getMyDeath(){
kill = myParent.tileArray[((myParent.mapWidth * yTile) + xTile)].killer;
}
function getMyDeathCorners(_arg1, _arg2){
xTileLeft = Math.floor(((_arg1 - (blockWidth / 4)) / tileWidth));
xTileRight = Math.floor(((_arg1 + (blockWidth / 4)) / tileWidth));
yTileTop = Math.floor((((_arg2 - (blockWidth / 2)) + 1) / tileHeight));
yTileBottom = Math.floor((((_arg2 + (blockWidth / 2)) + 1) / tileHeight));
TL = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileLeft)].killer;
BL = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileLeft)].killer;
TR = myParent.tileArray[((myParent.mapWidth * yTileTop) + xTileRight)].killer;
BR = myParent.tileArray[((myParent.mapWidth * yTileBottom) + xTileRight)].killer;
}
function getChar():Point{
var _local1:Point = new Point(x, y);
return (_local1);
}
public function resetMe(){
xSpeed = 0;
ySpeed = 1;
}
public function tintMe(){
trace("tint");
}
function frame1(){
stop();
}
}
}//package com.game
Section 138
//ToString (com.game.ToString)
package com.game {
import flash.utils.*;
import com.helper.*;
public class ToString {
public static function makeString(_arg1:Array):String{
var _local2:ByteArray = new ByteArray();
_local2.writeObject(_arg1);
_local2.compress();
var _local3:String = Base64.encode(_local2);
return (_local3);
}
public static function breakString(_arg1:String):Array{
var _local2:ByteArray = Base64.decode(_arg1);
_local2.uncompress();
_local2.position = 0;
var _local3:Array = _local2.readObject();
return (_local3);
}
public static function breakStringOld(_arg1:String):Array{
var _local5:Array;
var _local2:Array = new Array();
var _local3:Array = _arg1.split(";");
var _local4:* = 0;
while (_local4 < (_local3.length - 1)) {
_local5 = _local3[_local4].split(",");
_local2.push(_local5);
_local4++;
};
return (_local2);
}
public static function makeStringOld(_arg1:Array):String{
var _local4:Array;
var _local5:*;
var _local2 = "";
var _local3:* = 0;
while (_local3 < _arg1.length) {
_local4 = _arg1[_local3];
_local5 = 0;
while (_local5 < _local4.length) {
_local2 = (_local2 + String(_local4[_local5]));
if (_local5 < (_local4.length - 1)){
_local2 = (_local2 + ",");
};
_local5++;
};
if (_local3 <= _arg1.length){
_local2 = (_local2 + ";");
};
_local3++;
};
return (_local2);
}
public static function trace2DArray(_arg1:Array):void{
var _local2 = "[";
var _local3:int;
while (_local3 < _arg1.length) {
if (_local3 != 0){
_local2 = (_local2 + " ");
};
_local2 = (_local2 + (("[" + _arg1[_local3].join(",")) + "]"));
if (_local3 != (_arg1.length - 1)){
_local2 = (_local2 + ",\n");
};
_local3++;
};
trace((_local2 + "]"));
}
}
}//package com.game
Section 139
//u (com.game.u)
package com.game {
import flash.media.*;
public dynamic class u extends Sound {
}
}//package com.game
Section 140
//u2 (com.game.u2)
package com.game {
import flash.media.*;
public dynamic class u2 extends Sound {
}
}//package com.game
Section 141
//v (com.game.v)
package com.game {
import flash.media.*;
public dynamic class v extends Sound {
}
}//package com.game
Section 142
//w (com.game.w)
package com.game {
import flash.media.*;
public dynamic class w extends Sound {
}
}//package com.game
Section 143
//v2 (com.game.v2)
package com.game {
import flash.media.*;
public dynamic class v2 extends Sound {
}
}//package com.game
Section 144
//w2 (com.game.w2)
package com.game {
import flash.media.*;
public dynamic class w2 extends Sound {
}
}//package com.game
Section 145
//walk1 (com.game.walk1)
package com.game {
import flash.media.*;
public dynamic class walk1 extends Sound {
}
}//package com.game
Section 146
//walk2 (com.game.walk2)
package com.game {
import flash.media.*;
public dynamic class walk2 extends Sound {
}
}//package com.game
Section 147
//walk3 (com.game.walk3)
package com.game {
import flash.media.*;
public dynamic class walk3 extends Sound {
}
}//package com.game
Section 148
//walk4 (com.game.walk4)
package com.game {
import flash.media.*;
public dynamic class walk4 extends Sound {
}
}//package com.game
Section 149
//warp1 (com.game.warp1)
package com.game {
import flash.media.*;
public dynamic class warp1 extends Sound {
}
}//package com.game
Section 150
//warp2 (com.game.warp2)
package com.game {
import flash.media.*;
public dynamic class warp2 extends Sound {
}
}//package com.game
Section 151
//vocals (com.game.vocals)
package com.game {
import flash.display.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
public class vocals extends MovieClip {
public var headGfx:MovieClip;
public var displayText:TextField;
public var VM:MovieClip;
var myParent:MovieClip;
var soundCount:Number;// = 0
var soundPlay:Number;// = 0
var periodCount:Number;// = -12
var commaCount:Number;// = -4
var spaceCount:Number;// = -2
var totalSounds:Array;
var displayString:String;// = ""
var isPlaying:Boolean;// = false
var displayChar:String;
var setTalk:Number;
var talkAlt:Number;// = 0
var talkCount:Number;// = 0
var talkCast:Number;// = 8
var endTalk:Boolean;// = false
var endCount:Number;// = 0
var endCast:Number;// = 100
var displayHeight:Number;// = 100
var alphabet:Array;
public function vocals(){
alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
super();
displayText.autoSize = "left";
headGfx.visible = false;
headGfx.stop();
setTalk = (Math.floor((Math.random() * 15)) + 1);
if (setTalk == 16){
setTalk = 15;
};
setTalk = ((setTalk * 2) - 1);
}
public function startSound(_arg1:String):void{
var _local2:Number;
totalSounds = _arg1.split("");
displayString = "";
displayText.y = 0;
displayText.text = "";
isPlaying = true;
talkCount = (talkCast - 1);
if (headGfx.currentFrame != 21){
if (myParent){
_local2 = Math.ceil((Math.random() * 3));
myParent.myParent.playSoundFX(("talkie" + _local2));
myParent.myParent.playStaticFX();
};
headGfx.gotoAndPlay(2);
};
endCount = 0;
endTalk = false;
}
public function setInGame(){
headGfx.visible = true;
}
public function stopSound(){
isPlaying = false;
}
public function playSound(){
var _local1:Class;
var _local2:Sound;
var _local3:Number;
if (headGfx.currentFrame == 21){
if (isPlaying){
if (talkCount >= talkCast){
headGfx.headTalk.gotoAndStop((setTalk + talkAlt));
talkAlt = (1 - talkAlt);
talkCount = 0;
} else {
talkCount++;
};
if (soundCount > soundPlay){
displayChar = totalSounds.shift();
displayString = (displayString + displayChar);
displayText.text = displayString;
if (alphabet.some(checkAlphabet)){
if (myParent){
if ((((myParent.myParent.myParent.gameState == "play")) && ((myParent.myParent.myParent.currentLevel >= 28)))){
myParent.myParent.playSoundFX(displayChar.toLowerCase());
} else {
myParent.myParent.playSoundFX((displayChar.toLowerCase() + "2"));
};
} else {
_local1 = (getDefinitionByName((("com.game." + displayChar.toLowerCase()) + "2")) as Class);
_local2 = new (_local1);
_local2.play();
};
};
if ((((((displayChar == ".")) || ((displayChar == "!")))) || ((displayChar == "?")))){
soundCount = periodCount;
} else {
if (displayChar == ","){
soundCount = commaCount;
} else {
if (displayChar == " "){
soundCount = spaceCount;
} else {
soundCount = 0;
};
};
};
if (totalSounds.length <= 0){
isPlaying = false;
endTalk = true;
};
} else {
soundCount++;
};
};
};
if (endTalk){
if (endCount > endCast){
if (myParent){
_local3 = Math.ceil((Math.random() * 3));
myParent.myParent.playSoundFX(("talkie" + _local3));
myParent.myParent.stopStaticFX();
displayText.text = "";
};
endCount = 0;
endTalk = false;
headGfx.play();
} else {
endCount++;
};
};
if ((displayText.height + displayText.y) > displayHeight){
displayText.y = (displayText.y - 2);
};
}
public function checkAlphabet(_arg1, _arg2:int, _arg3:Array):Boolean{
return ((_arg1 == displayChar.toLowerCase()));
}
public function setWidth(_arg1:Number, _arg2:Number){
displayText.width = _arg2;
displayHeight = _arg1;
VM.width = _arg2;
VM.height = _arg1;
}
}
}//package com.game
Section 152
//voteWindow (com.game.voteWindow)
package com.game {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class voteWindow extends MovieClip {
public var d1:MovieClip;
public var d2:MovieClip;
public var skip:MovieClip;
public var d3:MovieClip;
public var d4:MovieClip;
public var d5:MovieClip;
public var s1:MovieClip;
public var s2:MovieClip;
public var s3:MovieClip;
public var s4:MovieClip;
public var s5:MovieClip;
var myParent:MovieClip;
var curTile:Array;
var colMC:MovieClip;
var a:BitmapData;
var image_bitmap;
public var myVar:String;
public function voteWindow(_arg1){
curTile = new Array(1, 1);
colMC = new MovieClip();
super();
myParent = _arg1;
offPos();
var _local2:Number = 1;
while (_local2 <= 5) {
this[("d" + _local2)].diff = _local2;
this[("d" + _local2)].buttonMode = true;
this[("d" + _local2)].addEventListener(MouseEvent.MOUSE_UP, pickDiff);
_local2++;
};
_local2 = 1;
while (_local2 <= 5) {
this[("s" + _local2)].score = _local2;
this[("s" + _local2)].buttonMode = true;
this[("s" + _local2)].addEventListener(MouseEvent.MOUSE_UP, pickScore);
_local2++;
};
skip.buttonMode = true;
skip.addEventListener(MouseEvent.MOUSE_UP, mainMenu);
}
function mainMenu(_arg1:MouseEvent){
if (myParent.myParent.gameState == "multi"){
myParent.stopStaticFX();
myParent.myParent.stopMusic();
myParent.myParent.gotoAndStop("menu");
} else {
if (myParent.myParent.gameState == "multiC"){
myParent.stopStaticFX();
if (myParent.exitVote){
myParent.myParent.stopMusic();
myParent.myParent.gotoAndStop("menu");
} else {
myParent.startTrans();
};
};
};
}
function submitVote(){
if (((!((myParent.mapDiff == 0))) && (!((myParent.mapScore == 0))))){
myParent.submitVote();
};
}
function back(_arg1:MouseEvent){
myParent.startEdit();
}
function pickDiff(_arg1:MouseEvent){
if (myParent.mapDiff > 0){
this[("d" + myParent.mapDiff)].gotoAndStop(1);
};
myParent.mapDiff = _arg1.currentTarget.diff;
this[("d" + myParent.mapDiff)].gotoAndStop(2);
submitVote();
}
function pickScore(_arg1:MouseEvent){
if (myParent.mapScore > 0){
this[("s" + myParent.mapScore)].gotoAndStop(1);
};
myParent.mapScore = _arg1.currentTarget.score;
this[("s" + myParent.mapScore)].gotoAndStop(2);
submitVote();
}
public function setPos(){
x = 0xFF;
y = 0xFF;
}
public function offPos(){
x = 1000;
y = 0xFF;
}
}
}//package com.game
Section 153
//x (com.game.x)
package com.game {
import flash.media.*;
public dynamic class x extends Sound {
}
}//package com.game
Section 154
//x2 (com.game.x2)
package com.game {
import flash.media.*;
public dynamic class x2 extends Sound {
}
}//package com.game
Section 155
//y (com.game.y)
package com.game {
import flash.media.*;
public dynamic class y extends Sound {
}
}//package com.game
Section 156
//y2 (com.game.y2)
package com.game {
import flash.media.*;
public dynamic class y2 extends Sound {
}
}//package com.game
Section 157
//z (com.game.z)
package com.game {
import flash.media.*;
public dynamic class z extends Sound {
}
}//package com.game
Section 158
//z2 (com.game.z2)
package com.game {
import flash.media.*;
public dynamic class z2 extends Sound {
}
}//package com.game
Section 159
//Base64 (com.helper.Base64)
package com.helper {
import flash.utils.*;
public class Base64 {
private static const _encodeChars:Array = InitEncoreChar();
private static const _decodeChars:Array = InitDecodeChar();
public static function encode(_arg1:ByteArray):String{
var _local6:int;
var _local2:ByteArray = new ByteArray();
_local2.length = ((((2 + _arg1.length) - ((_arg1.length + 2) % 3)) * 4) / 3);
var _local3:int;
var _local4:int = (_arg1.length % 3);
var _local5:int = (_arg1.length - _local4);
while (_local3 < _local5) {
var _temp1 = _local3;
_local3 = (_local3 + 1);
var _temp2 = _local3;
_local3 = (_local3 + 1);
var _temp3 = _local3;
_local3 = (_local3 + 1);
_local6 = (((_arg1[_temp1] << 16) | (_arg1[_temp2] << 8)) | _arg1[_temp3]);
_local6 = ((((_encodeChars[(_local6 >>> 18)] << 24) | (_encodeChars[((_local6 >>> 12) & 63)] << 16)) | (_encodeChars[((_local6 >>> 6) & 63)] << 8)) | _encodeChars[(_local6 & 63)]);
_local2.writeInt(_local6);
};
if (_local4 == 1){
_local6 = _arg1[_local3];
_local6 = ((((_encodeChars[(_local6 >>> 2)] << 24) | (_encodeChars[((_local6 & 3) << 4)] << 16)) | (61 << 8)) | 61);
_local2.writeInt(_local6);
} else {
if (_local4 == 2){
var _temp4 = _local3;
_local3 = (_local3 + 1);
_local6 = ((_arg1[_temp4] << 8) | _arg1[_local3]);
_local6 = ((((_encodeChars[(_local6 >>> 10)] << 24) | (_encodeChars[((_local6 >>> 4) & 63)] << 16)) | (_encodeChars[((_local6 & 15) << 2)] << 8)) | 61);
_local2.writeInt(_local6);
};
};
_local2.position = 0;
return (_local2.readUTFBytes(_local2.length));
}
public static function decode(_arg1:String):ByteArray{
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:ByteArray;
_local7 = _arg1.length;
_local6 = 0;
_local8 = new ByteArray();
var _local9:ByteArray = new ByteArray();
_local9.writeUTFBytes(_arg1);
while (_local6 < _local7) {
do {
var _temp1 = _local6;
_local6 = (_local6 + 1);
_local2 = _decodeChars[_local9[_temp1]];
} while ((((_local6 < _local7)) && ((_local2 == -1))));
if (_local2 == -1){
break;
};
do {
var _temp2 = _local6;
_local6 = (_local6 + 1);
_local3 = _decodeChars[_local9[_temp2]];
} while ((((_local6 < _local7)) && ((_local3 == -1))));
if (_local3 == -1){
break;
};
_local8.writeByte(((_local2 << 2) | ((_local3 & 48) >> 4)));
do {
var _temp3 = _local6;
_local6 = (_local6 + 1);
_local4 = _local9[_temp3];
if (_local4 == 61){
return (_local8);
};
_local4 = _decodeChars[_local4];
} while ((((_local6 < _local7)) && ((_local4 == -1))));
if (_local4 == -1){
break;
};
_local8.writeByte((((_local3 & 15) << 4) | ((_local4 & 60) >> 2)));
do {
var _temp4 = _local6;
_local6 = (_local6 + 1);
_local5 = _local9[_temp4];
if (_local5 == 61){
return (_local8);
};
_local5 = _decodeChars[_local5];
} while ((((_local6 < _local7)) && ((_local5 == -1))));
if (_local5 == -1){
break;
};
_local8.writeByte((((_local4 & 3) << 6) | _local5));
};
return (_local8);
}
public static function InitEncoreChar():Array{
var _local1:Array = new Array();
var _local2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var _local3:int;
while (_local3 < 64) {
_local1.push(_local2.charCodeAt(_local3));
_local3++;
};
return (_local1);
}
public static function InitDecodeChar():Array{
var _local1:Array = new Array();
_local1.push(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, (-1 - 1), -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
return (_local1);
}
}
}//package com.helper
Section 160
//DefaultAPIConnector (com.newgrounds.components.DefaultAPIConnector)
package com.newgrounds.components {
import flash.display.*;
import flash.events.*;
import com.newgrounds.*;
import flash.net.*;
public dynamic class DefaultAPIConnector extends MovieClip {
public var viewLegalButton:SimpleButton;
public var viewLatestButton:SimpleButton;
public var closeButton:SimpleButton;
private var _initialized:Boolean;
private var _connected:Boolean;// = false
public function DefaultAPIConnector(){
visible = false;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
public function get connected():Boolean{
return (_connected);
}
public function initialize(_arg1:Object):void{
_initialized = true;
NewgroundsAPI.addEventListener(NewgroundsAPIEvent.MOVIE_CONNECTED, onMovieConnected);
NewgroundsAPI.addEventListener(NewgroundsAPIEvent.NEW_VERSION_AVAILABLE, onNewVersionAvailable);
NewgroundsAPI.addEventListener(NewgroundsAPIEvent.HOST_BLOCKED, onHostBlocked);
NewgroundsAPI.addEventListener(NewgroundsAPIEvent.METADATA_LOADED, onMetaConnected);
NewgroundsAPI.setMovieVersion(_arg1.movie_version);
NewgroundsAPI.connectMovie(root, _arg1.movie_id.toString(), _arg1.enc_key);
if (NewgroundsAPI.isNewgrounds()){
trace(((NewgroundsAPI.isNewgrounds() + " ") + NewgroundsAPI.hasUserSession()));
if (((!(NewgroundsAPI.hasUserSession())) && (!(NewgroundsAPI.debugMode)))){
gotoAndStop("no_login");
visible = true;
};
};
}
private function onMovieConnected(_arg1:NewgroundsAPIEvent):void{
if (!_arg1.success){
gotoAndStop("no_connect");
visible = true;
};
}
private function onMetaConnected(_arg1:NewgroundsAPIEvent):void{
if (_arg1.success){
_connected = true;
};
}
private function onNewVersionAvailable(_arg1:NewgroundsAPIEvent):void{
gotoAndStop("new_version");
visible = true;
}
private function onHostBlocked(_arg1:NewgroundsAPIEvent):void{
gotoAndStop("bad_host");
visible = true;
}
private function onCloseButtonClicked(_arg1:Event):void{
visible = false;
}
private function onOfficialVersionClicked(_arg1:Event):void{
navigateToURL(new URLRequest(NewgroundsAPI.getOfficialVersionURL()), "_blank");
}
private function onEnterFrame(_arg1:Event):void{
var _local2:uint;
var _local3:uint;
if (((this.closeButton) && (!(this.closeButton.hasEventListener(MouseEvent.CLICK))))){
this.closeButton.addEventListener(MouseEvent.CLICK, onCloseButtonClicked);
};
if (((this.viewLatestButton) && (!(this.viewLatestButton.hasEventListener(MouseEvent.CLICK))))){
this.viewLatestButton.addEventListener(MouseEvent.CLICK, onOfficialVersionClicked);
};
if (((this.viewLegalButton) && (!(this.viewLegalButton.hasEventListener(MouseEvent.CLICK))))){
this.viewLegalButton.addEventListener(MouseEvent.CLICK, onOfficialVersionClicked);
};
if (((parent) && (visible))){
_local2 = parent.getChildIndex(this);
_local3 = (parent.numChildren - 1);
if (((parent) && (!((_local2 == _local3))))){
parent.setChildIndex(this, _local3);
};
};
}
}
}//package com.newgrounds.components
Section 161
//BaseN (com.newgrounds.BaseN)
package com.newgrounds {
import flash.utils.*;
public class BaseN {
private var _hashIndex:String;
private var _hashVal:Dictionary;
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);
}
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);
}
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);
}
}
}//package com.newgrounds
Section 162
//NewgroundsAPI (com.newgrounds.NewgroundsAPI)
package com.newgrounds {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import com.adobe.serialization.json.*;
import flash.net.*;
import com.adobe.images.*;
import com.adobe.crypto.*;
import flash.system.*;
public class NewgroundsAPI {
private static const GATEWAY_URL:String = "http://www.ngads.com/gateway_v2.php";
private static const AD_TERMS_URL:String = "http://www.newgrounds.com/wiki/flashads/terms/";
private static const COMMANDS_WIKI_URL:String = "http://www.newgrounds.com/wiki/flashapi/commands/";
private static var do_echo:Boolean = false;
private static var _initialized:Boolean = false;
private static var tracker_id:uint;
private static var movie_id:String;
private static var host:String;
private static var encryption_key:String;
private static var connected:Boolean;
private static var debug:Boolean;
private static var version:String;
private static var ad_url:String;
private static var publisher_id:Number;
private static var session_id:String;
private static var user_email:String;
private static var user_name:String;
private static var user_id:Number;
private static var _medals:Array;
private static var timeoutTimer:Timer;
private static var _inSaveQuery:Boolean;
private static var _saveFile:NewgroundsAPISaveFile;
private static var _saveFilePath:String;
private static var _saveGroups:Array = [];
private static var root:DisplayObject;
private static var _eventDispatcher:EventDispatcher = new EventDispatcher();
private static var score_page_counts:Object = new Object();
private static var compression_radix:String = "/g8236klvBQ#&|;Zb*7CEA59%s`Oue1wziFp$rDVY@TKxUPWytSaGHJ>dmoMR^<0~4qNLhc(I+fjn)X";
private static var compressor:BaseN = new BaseN(compression_radix);
public static var errors:Dictionary = NewgroundsAPIError.init_codes();
private static var sharedObjects:Object = new Object();
private static var _preload:Boolean = true;
private static var _preloadAssets:Array = [];
public static var periods:Object = getPeriodAliases();
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"}};
public static function initialize(_arg1:DisplayObject):void{
var _local2:Object;
if (_initialized){
return;
};
_initialized = true;
NewgroundsAPI.root = _arg1;
timeoutTimer = new Timer(8000, 1);
if (_arg1.loaderInfo){
_local2 = _arg1.loaderInfo.parameters;
host = _arg1.loaderInfo.url;
};
debug = false;
if (((!(debug)) && (_local2))){
if (_local2.NewgroundsAPI_UserName){
user_name = _local2.NewgroundsAPI_UserName;
};
if (_local2.NewgroundsAPI_UserID){
user_id = _local2.NewgroundsAPI_UserID;
};
if (_local2.NewgroundsAPI_PublisherID){
publisher_id = _local2.NewgroundsAPI_PublisherID;
};
if (_local2.NewgroundsAPI_SessionID){
session_id = _local2.NewgroundsAPI_SessionID;
};
} else {
publisher_id = 1;
session_id = "D3bu64p1U53R";
user_id = 10;
user_name = "API-Debugger";
};
if ((((host.indexOf("http://") > -1)) || ((host.indexOf("https://") > -1)))){
host = host.split("/")[2].toLowerCase();
} else {
host = "localhost";
};
}
public static function setMovieVersion(_arg1:String):void{
if (((_arg1) && (!((_arg1 == ""))))){
version = _arg1;
};
}
public static function setUserEmail(_arg1:String):void{
user_email = _arg1;
}
public static function get debugMode():Boolean{
return (debug);
}
public static function get preload():Boolean{
return (_preload);
}
public static function set preload(_arg1:Boolean):void{
_preload = _arg1;
}
public static function get bytesLoaded():uint{
var _local2:*;
var _local1:uint = root.loaderInfo.bytesLoaded;
if (_preload){
for each (_local2 in _preloadAssets) {
_local1 = (_local1 + _local2.bytesLoaded);
};
};
return (_local1);
}
public static function get bytesTotal():uint{
var _local2:*;
var _local1:uint = root.loaderInfo.bytesTotal;
if (_preload){
for each (_local2 in _preloadAssets) {
_local1 = (_local1 + Math.max(_local2.bytesTotal, 1));
};
};
return (_local1);
}
public static function get percentLoaded():Number{
return ((bytesLoaded / bytesTotal));
}
static function reportNewAsset(_arg1):void{
_preloadAssets.push(_arg1);
}
static function reportAssetFailed(_arg1):void{
var _local2:uint;
while (_local2 < _preloadAssets.length) {
if (_arg1 == _preloadAssets[_local2]){
_preloadAssets.splice(_local2, 1);
return;
};
_local2++;
};
}
public static function getOfficialVersionURL():String{
var _local1:String = ((((((GATEWAY_URL + "?tracker_id=") + movie_id) + "&command_id=") + getCommandID("loadOfficalVersion")) + "&seed=") + Math.random());
if (debug){
_local1 = (_local1 + "&debug=1");
};
return (_local1);
}
public static function hasUserSession():Boolean{
return (((((!((session_id == null))) && (!((session_id == ""))))) && (!((publisher_id == 0)))));
}
public static function isNewgrounds():Boolean{
return ((((publisher_id == 1)) || ((getHost().toLowerCase().indexOf("ungrounded.net") > -1))));
}
public static function hasPublisher():Boolean{
return (!((publisher_id == 0)));
}
public static function hasUserEmail():Boolean{
return (((!((user_email == null))) && (!((user_email == "")))));
}
public static function connectionTimeOut(_arg1:Event=null):void{
dispatchEvent(new NewgroundsAPIEvent(NewgroundsAPIEvent.MOVIE_CONNECTED, false, new NewgroundsAPIError("CONNECTION_FAILED", "Connection to NewgroundsAPI gateway timed out.")));
}
public static function connectMovie(_arg1:DisplayObject, _arg2:String, _arg3:String):void{
initialize(_arg1);
if (connected){
return;
};
timeoutTimer.start();
if (!_arg2){
fatalError("NewgroundsAPI.connectMovie() - missing required movie_id parameter", "connectMovie");
};
movie_id = String(_arg2);
tracker_id = uint(movie_id.substring(0, movie_id.indexOf(":")));
encryption_key = _arg3;
connected = true;
sendCommand("connectMovie", {host:getHost(), movie_version:version});
}
private static function getHost():String{
return (host);
}
public static function isPublishedHost():Boolean{
return (((!((getHost() == "localhost"))) && ((getHost().indexOf("file://") == -1))));
}
public static function loadNewgrounds():void{
sendCommand("loadNewgrounds", {host:getHost()}, true);
}
public static function loadMySite():void{
sendCommand("loadMySite", {host:getHost()});
}
public static function loadCustomLink(_arg1:String):void{
sendCommand("loadCustomLink", {host:getHost(), link:_arg1}, true);
}
public static function logCustomEvent(_arg1:String):void{
sendCommand("logCustomEvent", {host:getHost(), event:_arg1});
}
public static function postScore(_arg1:String, _arg2:Number, _arg3:Boolean):void{
sendSecureCommand("postScore", {score:_arg1, value:_arg2, get_best:_arg3});
}
public static function getTodaysScores(_arg1:String, _arg2:Object):void{
getScores(_arg1, "t", _arg2, "getTodaysScores");
}
public static function getYesterdaysScores(_arg1:String, _arg2:Object):void{
getScores(_arg1, "y", _arg2, "getYesterdaysScores");
}
public static function getThisWeeksScores(_arg1:String, _arg2:Object):void{
getScores(_arg1, "w", _arg2, "getThisWeeksScores");
}
public static function getThisMonthsScores(_arg1:String, _arg2:Object):void{
getScores(_arg1, "m", _arg2, "getThisMonthsScores");
}
public static function getThisYearsScores(_arg1:String, _arg2:Object):void{
getScores(_arg1, "y", _arg2, "getThisYearsScores");
}
public static function getAlltimeScores(_arg1:String, _arg2:Object):void{
getScores(_arg1, "a", _arg2, "getAlltimeScores");
}
public static function getScores(_arg1:String, _arg2:String, _arg3:Object=null, _arg4:String=null):void{
var _local5:String;
if (!_arg3){
_arg3 = new Object();
};
if (!hasUserSession()){
callListener(NewgroundsAPIEvent.SCORES_LOADED, false, new NewgroundsAPIError("SITE_ID_REQUIRED", (("Host '" + getHost()) + "' does not have high scores enabled")));
return;
};
_arg3.publisher_id = publisher_id;
_arg3.period = _arg2;
_arg3.score = _arg1;
if (_arg3.user_id){
_local5 = _arg2;
} else {
_local5 = (_arg2 + "-u");
};
if (score_page_counts[_local5] == undefined){
_arg3.request_page_count = true;
};
sendCommand("getScores", _arg3);
}
private static function populateMedals(_arg1:Array):void{
var _local2:uint;
var _local3:Object;
if (_medals === null){
_medals = new Array();
_local2 = 0;
while (_local2 < _arg1.length) {
_local3 = _arg1[_local2];
_medals.push(NewgroundsAPIMedal.createFromObject(_local3));
_local2++;
};
};
}
private static function populateSaveGroups(_arg1:Array):void{
var _local3:NewgroundsAPISaveGroup;
_saveGroups = [];
var _local2:uint;
while (_local2 < _arg1.length) {
_local3 = NewgroundsAPISaveGroup.createFromObject(_arg1[_local2]);
_saveGroups.push(_local3);
_local2++;
};
}
public static function get medals():Array{
return ((_medals) ? _medals.concat() : []);
}
public static function getMedalById(_arg1:uint):NewgroundsAPIMedal{
var _local2:NewgroundsAPIMedal;
for each (_local2 in _medals) {
if (_local2.id == _arg1){
return (_local2);
};
};
return (null);
}
public static function getMedalByName(_arg1:String):NewgroundsAPIMedal{
var _local2:NewgroundsAPIMedal;
for each (_local2 in _medals) {
if (_local2.name == _arg1){
return (_local2);
};
};
return (null);
}
public static function unlockMedal(_arg1:NewgroundsAPIMedal, _arg2:Boolean=false):void{
var _local3:Object;
var _local4:Object;
if (!_arg1){
sendError({command_id:getCommandID("unlockMedal")}, new NewgroundsAPIError("MISSING_PARAM", "missing required medal name"));
return;
};
if (((hasUserSession()) || (debugMode))){
sendMessage((("Attempting to unlock '" + _arg1.name) + "'"));
if (_arg1.unlocked){
sendWarning((("Medal '" + _arg1.name) + "' is already unlocked!"));
return;
};
_local3 = new Object();
_local3.medal_id = _arg1.id;
if (_arg2){
_local3.get_score = _arg2;
};
sendSecureCommand("unlockMedal", _local3);
} else {
sendMessage(("Locally unlocking " + _arg1.name));
if (_arg1.unlocked){
sendWarning((("Medal '" + _arg1.name) + "' is already unlocked!"));
return;
};
_arg1.unlocked = true;
_local4 = loadLocal("medals_unlocked");
if (!_local4){
_local4 = new Object();
};
_local4[_arg1.id.toString()] = true;
saveLocal("medals_unlocked", _local4);
callListener(NewgroundsAPIEvent.MEDAL_UNLOCKED, true, _arg1);
};
}
public static function unlockMedalById(_arg1:uint, _arg2:Boolean=false):void{
var _local3:NewgroundsAPIMedal = getMedalById(_arg1);
if (_local3){
unlockMedal(_local3, _arg2);
};
}
public static function unlockMedalByName(_arg1:String, _arg2:Boolean=false):void{
var _local3:NewgroundsAPIMedal = getMedalByName(_arg1);
if (_local3){
unlockMedal(_local3, _arg2);
};
}
public static function loadMedals():void{
if (_medals){
dispatchEvent(new NewgroundsAPIEvent(NewgroundsAPIEvent.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 saveLocal(_arg1:String, _arg2:Object, _arg3:uint=0):void{
var _local4:SharedObject;
try {
if (!sharedObjects[_arg1]){
sharedObjects[_arg1] = SharedObject.getLocal(((("ng_ap_secure_" + movie_id) + "_") + _arg1));
};
_local4 = sharedObjects[_arg1];
_local4.data[_arg1] = encodeData(_arg2);
_local4.flush();
} catch(e:Error) {
};
}
public static function loadLocal(_arg1:String){
var sharedObj:SharedObject;
var save_id = _arg1;
try {
if (!sharedObjects[save_id]){
sharedObjects[save_id] = SharedObject.getLocal(((("ng_ap_secure_" + movie_id) + "_") + 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) {
return (null);
};
}
public static function encodeData(_arg1:Object):String{
return (compressHex(RC4.encrypt(JSON.encode(_arg1), encryption_key)));
}
public static function decodeData(_arg1:String){
return (JSON.decode(RC4.decrypt(uncompressHex(_arg1), encryption_key)));
}
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));
}
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 getSaveGroupById(_arg1:uint):NewgroundsAPISaveGroup{
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);
}
public static function getSaveGroupByName(_arg1:String):NewgroundsAPISaveGroup{
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);
}
public static function createSaveQuery(_arg1:String):NewgroundsAPISaveGroupQuery{
var _local2:NewgroundsAPISaveGroup = getSaveGroupByName(_arg1);
if (_local2){
return (_local2.createQuery());
};
return (null);
}
public static function executeSaveQuery(_arg1:NewgroundsAPISaveGroupQuery):void{
sendCommand("lookupSaveFiles", {publisher_id:publisher_id, group_id:_arg1.groupId, query:JSON.encode(_arg1.toObject())}, false, null, _arg1);
}
public static function checkFilePrivledges(_arg1:NewgroundsAPISaveFile):void{
sendCommand("checkFilePrivs", {group:_arg1.groupId, filename:_arg1.name, user_id:(user_id) ? user_id : 0, publisher_id:publisher_id});
}
public static function newSaveFile(_arg1:String):NewgroundsAPISaveFile{
var _local2:NewgroundsAPISaveGroup = getSaveGroupByName(_arg1);
if (_local2){
return (new NewgroundsAPISaveFile(_local2));
};
sendError({command_id:"newSaveFile"}, new NewgroundsAPIError("INVALID_SAVE_GROUP", (("'" + _local2) + "' is not a valid save group.")));
return (null);
}
public static function saveFile(_arg1:NewgroundsAPISaveFile, _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.writeBytes(_arg1.contents);
} else {
_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 rateSaveFile(_arg1:NewgroundsAPISaveFile, _arg2:NewgroundsAPIRating, _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);
}
private static function doEvent(_arg1:Object):void{
var _local2:String;
var _local3:Object;
var _local4:String;
var _local5:Boolean;
var _local6:String;
var _local7:Array;
var _local8:*;
var _local9:String;
var _local10:NewgroundsAPIMedal;
var _local11:uint;
var _local12:Object;
var _local13:NewgroundsAPISaveFile;
var _local14: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(NewgroundsAPIEvent.MOVIE_CONNECTED, _arg1.success, {movie_name:_arg1.movie_name});
_local5 = false;
if (_arg1.ad_status === -1){
_local2 = "This movie was not approved to run Flash Ads.";
sendWarning(_local2);
sendWarning((("visit " + AD_TERMS_URL) + " to view our approval guidelines"));
if (!_arg1.ad_url){
callListener(NewgroundsAPIEvent.ADS_APPROVED, false, new NewgroundsAPIError("FLASH_ADS_NOT_APPROVED", _local2));
} else {
_local5 = true;
};
} else {
if (_arg1.ad_status === 0){
_local2 = "Flash Ads are currently awaiting approval.";
sendNotice(_local2);
if (!_arg1.ad_url){
callListener(NewgroundsAPIEvent.ADS_APPROVED, false, new NewgroundsAPIError("FLASH_ADS_NOT_APPROVED", _local2));
} else {
_local5 = true;
};
};
};
if (_arg1.ad_url){
ad_url = unescape(_arg1.ad_url);
if (!_local5){
sendMessage("This movie has been approved to run Flash Ads!");
};
callListener(NewgroundsAPIEvent.ADS_APPROVED, true);
};
if (_arg1.deny_host){
_local2 = (getHost() + " does not have permission to run this movie!");
sendWarning(_local2);
sendWarning(("\tUpdate your API configuration to unblock " + getHost()));
callListener(NewgroundsAPIEvent.HOST_BLOCKED, true, {movie_url:unescape(_arg1.movie_url), redirect_url:getOfficialVersionURL()});
};
if (_arg1.movie_version){
sendWarning("According to your API Configuration, this version is out of date.");
if (version){
sendWarning(("\tThe this movie is version " + version));
};
sendWarning(("\tThe most current version is " + _arg1.movie_version));
callListener(NewgroundsAPIEvent.NEW_VERSION_AVAILABLE, true, {movie_version:_arg1.movie_version, movie_url:unescape(_arg1.movie_url), redirect_url:getOfficialVersionURL()});
};
if (_arg1.request_portal_url){
sendCommand("setPortalID", {portal_url:host});
};
if (preload){
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...");
_local8 = loadLocal("medals_unlocked");
if (_local8){
for (_local9 in _local8) {
if (_local8[_local9]){
_local10 = getMedalById(uint(_local9));
echo(("Now unlocking " + _local10.name));
_local10.unlocked = true;
};
};
};
};
};
if (_arg1.save_groups){
populateSaveGroups(_arg1.save_groups);
};
if (_arg1.save_file_path){
_saveFilePath = (_arg1.save_file_path + "/");
};
callListener(NewgroundsAPIEvent.METADATA_LOADED);
break;
case "logCustomEvent":
if (_arg1.success){
sendMessage((("Event '" + _arg1.event) + "' was logged."));
};
callListener(NewgroundsAPIEvent.EVENT_LOGGED, _arg1.success, {event:_arg1.event});
break;
case "postScore":
if (_arg1.success){
_local4 = "User";
if (user_email){
_local4 = user_email;
} else {
if (user_name){
_local4 = user_name;
};
};
sendMessage((((((_local4 + " posted ") + _arg1.value) + " to '") + _arg1.score) + "'"));
_local3 = {score:_arg1.score, value:_arg1.value, username:_local4};
};
callListener(NewgroundsAPIEvent.SCORE_POSTED, _arg1.success, _local3);
break;
case "getScores":
if (_arg1.user_id){
_local6 = _arg1.period;
} else {
_local6 = (_arg1.period + "-u");
};
if (_arg1.total_pages){
score_page_counts[_local6] = _arg1.total_pages;
};
_local3.user_id = _arg1.user_id;
_local3.current_page = _arg1.current_page;
_local3.total_pages = score_page_counts[_local6];
_local3.scores = _arg1.scores;
_local3.period = getPeriodName(_arg1.period);
callListener(NewgroundsAPIEvent.SCORES_LOADED, _arg1.success, _local3);
break;
case "unlockMedal":
if (_medals){
_local10 = getMedalByName(_arg1.medal_name);
_local10.unlocked = true;
};
callListener(NewgroundsAPIEvent.MEDAL_UNLOCKED, _arg1.success, _local10);
break;
case "getMedals":
populateMedals(_arg1.medals);
callListener(NewgroundsAPIEvent.MEDALS_LOADED, _arg1.success, _local3);
break;
case "lookupSaveFiles":
_local7 = [];
_local11 = 0;
while (_local11 < _arg1.files.length) {
_local12 = _arg1.files[_local11];
_local13 = new NewgroundsAPISaveFile(getSaveGroupById(_arg1.group_id));
_local13.name = _local12.filename;
_local13.id = _local12.save_id;
_local13.description = _local12.description;
_local13.thumbnailUrl = _local12.thumb;
_local13.fileUrl = (_saveFilePath + _local12.file);
if (((_local12.keys) && (_local12.keys.length))){
_local14 = 0;
while (_local14 < _local12.keys.length) {
_local13.setKey(_local12.keys[_local14].id, _local12.keys[_local14].value);
_local14++;
};
};
if (((_local12.ratings) && (_local12.ratings.length))){
_local14 = 0;
while (_local14 < _local12.ratings.length) {
_local13.setRating(_local12.ratings[_local14].id, _local12.ratings[_local14].votes, _local12.ratings[_local14].score);
_local14++;
};
};
_local7.push(_local13);
_local11++;
};
_arg1.owner.dispatchEvent(new NewgroundsAPIEvent(NewgroundsAPIEvent.QUERY_COMPLETE, _arg1.success, _local7));
break;
case "getFiles":
break;
case "getSystemFiles":
break;
case "rateSaveFile":
_local13 = _arg1.owner;
if (_arg1.success){
_local13.setRating(_arg1.rating_id, _arg1.votes, _arg1.score);
};
_local13.dispatchEvent(new NewgroundsAPIEvent(NewgroundsAPIEvent.VOTE_COMPLETE, _arg1.success, _arg1));
break;
case "saveFile":
_local3 = {save_id:_arg1.save_id, group_id:_arg1.group_id, filename:_arg1.filename, file_url:_arg1.file_url, thumbnail:_arg1.thumbnail, icon:_arg1.icon};
_arg1.owner.dispatchEvent(new NewgroundsAPIEvent(NewgroundsAPIEvent.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(NewgroundsAPIEvent.FILE_PRIVS_LOADED, _arg1.success, _local3);
break;
};
}
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 hasEventListener(_arg1:String):Boolean{
return (_eventDispatcher.hasEventListener(_arg1));
}
public static function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{
_eventDispatcher.removeEventListener(_arg1, _arg2, _arg3);
}
private static function dispatchEvent(_arg1:Event):void{
_eventDispatcher.dispatchEvent(_arg1);
echo(("Fired Event: " + _arg1.type));
}
private static function callListener(_arg1:String, _arg2:Boolean=true, _arg3=undefined):void{
dispatchEvent(new NewgroundsAPIEvent(_arg1, _arg2, _arg3));
}
private static function getCommandName(_arg1:String):String{
return (_arg1);
}
private static function getCommandID(_arg1:String):String{
return (_arg1);
}
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);
}
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 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 sendError(_arg1:Object, _arg2:NewgroundsAPIError):void{
trace(((((("[NewgroundsAPI ERROR] :: " + getCommandName(_arg1.command_id)) + "() - ") + _arg2.name) + ":\n\t\t\t\t") + _arg2.message));
}
private static function 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));
}
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));
}
private static function fatalError(_arg1:String, _arg2:String):void{
if (_arg2){
_arg1 = (_arg1 + ((("\n\tSee " + COMMANDS_WIKI_URL) + _arg2.toLowerCase()) + " for additional information."));
};
throw (new Error(("***ERROR*** class=NewgroundsAPI\n\n" + _arg1)));
}
public static function sendSecureCommand(_arg1:String, _arg2:Object, _arg3:Object=null, _arg4:Object=null, _arg5=null):void{
if (((((((!(debug)) && (!(hasUserSession())))) && (!(hasUserEmail())))) && (!((_arg1 == "rateSaveFile"))))){
sendError({command_id:getCommandID(_arg1)}, new NewgroundsAPIError("IDENTIFICATION_REQUIRED", (("You must be logged in or provide an e-mail address ( using NewgroundsAPI.setUserEmail(\"name@domain.com\"); ) to use " + _arg1) + "().")));
return;
};
if (!_arg1){
fatalError("Missing command", "sendSecureCommand");
};
if (!_arg2){
fatalError("Missing secure_params", "sendSecureCommand");
};
if (!_arg3){
_arg3 = new Object();
};
var _local6 = "";
var _local7:uint;
while (_local7 < 16) {
_local6 = (_local6 + compression_radix.charAt(Math.floor((Math.random() * compression_radix.length))));
_local7++;
};
if (((debug) && (!(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), encryption_key);
var _local10:String = (_local8 + _local9);
_arg3.secure = compressHex(_local10);
sendCommand("securePacket", _arg3, false, _arg4, _arg5);
}
private static function onCommandComplete(_arg1:Event):void{
var _local4:Object;
var _local5:NewgroundsAPIError;
var _local2:NewgroundsURLLoader = NewgroundsURLLoader(_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){
_local5 = new NewgroundsAPIError(_local4.error_code, _local4.error_msg);
sendError(_local4, _local5);
} else {
_local4.owner = _local2.owner;
doEvent(_local4);
};
}
private static function onCommandError(_arg1:Event):void{
var _local2:NewgroundsURLLoader = NewgroundsURLLoader(_arg1.target);
var _local3:uint;
while (_local3 < _preloadAssets.length) {
if (_preloadAssets[_local3] == _local2){
_preloadAssets.splice(_local3, 1);
break;
};
_local3++;
};
}
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:NewgroundsURLLoader = new NewgroundsURLLoader();
_local6.addVariable("command_id", getCommandID(_arg1));
_local6.addVariable("tracker_id", movie_id);
if (debug){
_local6.addVariable("debug", 1);
};
if ((((_arg1 == "connectMovie")) && (preload))){
_local6.addVariable("preload", 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 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 createAd():NewgroundsAPIAd{
sendMessage("You may see a security sandbox violation. This is normal!");
return (new NewgroundsAPIAd(ad_url));
}
public static function sendMessage(_arg1:String, _arg2:Boolean=false):void{
var _local3:String = ("[NewgroundsAPI] :: " + _arg1);
trace(_local3);
}
private static function echo(_arg1:String):void{
if (do_echo){
trace(_arg1);
};
}
}
}//package com.newgrounds
Section 163
//NewgroundsAPIAd (com.newgrounds.NewgroundsAPIAd)
package com.newgrounds {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.system.*;
public class NewgroundsAPIAd extends Sprite {
private var _adURLLoader:URLLoader;
private var _mask:Shape;
private var _ad:Loader;
private static const REMOVED_FROM_STAGE:String = "removedFromStage";
private static var _adResetTime:Number = 0;
private static var _currentAdUrl:URLRequest;
public function NewgroundsAPIAd(_arg1:String){
var adFeedURL = _arg1;
super();
Security.allowDomain("http://server.cpmstar.com");
Security.allowDomain("http://www.cpmstar.com");
Security.allowDomain("https://server.cpmstar.com");
Security.allowDomain("https://www.cpmstar.com");
Security.allowInsecureDomain("http://server.cpmstar.com");
Security.allowInsecureDomain("http://www.cpmstar.com");
Security.allowInsecureDomain("https://server.cpmstar.com");
Security.allowInsecureDomain("https://www.cpmstar.com");
var adRect:Shape = new Shape();
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);
addChild(_mask);
_adURLLoader = new URLLoader();
_adURLLoader.addEventListener(Event.COMPLETE, adURLHandler);
_adURLLoader.addEventListener(IOErrorEvent.IO_ERROR, adErrorHandler);
_adURLLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, adErrorHandler);
if (((adFeedURL) && (hasAdElapsed))){
if (adFeedURL.indexOf("?") > -1){
_currentAdUrl = new URLRequest(((adFeedURL + "&random=") + Math.random()));
} else {
_currentAdUrl = new URLRequest(((adFeedURL + "?random=") + Math.random()));
};
};
if (_currentAdUrl){
try {
_adURLLoader.load(_currentAdUrl);
} catch(e:Error) {
adErrorHandler(null);
};
} else {
trace("[NewgroundsAPI] :: No ad feed URL supplied to Newgrounds API ad!");
};
if (NewgroundsAPI.isFlashVersion(9, 0, 28)){
addEventListener(REMOVED_FROM_STAGE, removeAdHandler);
};
}
private function loadAd(_arg1:String):void{
if (_ad){
removeAd();
};
_ad = new Loader();
addChild(_ad);
_ad.mask = _mask;
_ad.contentLoaderInfo.addEventListener(Event.COMPLETE, adLoadedHandler);
_ad.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, adErrorHandler);
_ad.load(new URLRequest(_arg1));
}
private function adURLHandler(_arg1:Event):void{
var _local2:URLLoader = URLLoader(_arg1.target);
if (_local2.data){
loadAd(String(_local2.data));
} else {
dispatchEvent(new NewgroundsAPIEvent(NewgroundsAPIEvent.AD_ATTACHED, false, new NewgroundsAPIError("FLASH_ADS_NOT_APPROVED", "Unable to render ad")));
};
}
private function adURLErrorHandler(_arg1:Event):void{
trace("[NewgroundsAPI] :: Unable to load ad feed!");
}
private function adErrorHandler(_arg1:Event):void{
dispatchEvent(new NewgroundsAPIEvent(NewgroundsAPIEvent.AD_ATTACHED, false, new NewgroundsAPIError("FLASH_ADS_NOT_APPROVED", "Unable to render ad")));
removeAd();
}
private function adLoadedHandler(_arg1:Event):void{
trace("[NewgroundsAPI] :: Ad loaded!");
dispatchEvent(new NewgroundsAPIEvent(NewgroundsAPIEvent.AD_ATTACHED, true));
}
private function get hasAdElapsed():Boolean{
var _local1:Date = new Date();
if (_local1.getTime() >= _adResetTime){
_adResetTime = (_local1.getTime() + ((1000 * 60) * 5));
return (true);
};
return (false);
}
public function removeAd():void{
if (_adURLLoader){
try {
_adURLLoader.close();
} catch(e:Error) {
};
};
if (_ad){
trace("[NewgroundsAPI] :: Ad removed");
try {
_ad.close();
} catch(e:Error) {
};
try {
Object(_ad).unloadAndStop(true);
} catch(e:Error) {
_ad.unload();
};
if (_ad.parent){
_ad.parent.removeChild(_ad);
};
};
_ad = null;
}
private function removeAdHandler(_arg1:Event):void{
removeAd();
}
}
}//package com.newgrounds
Section 164
//NewgroundsAPIError (com.newgrounds.NewgroundsAPIError)
package com.newgrounds {
import flash.utils.*;
public class NewgroundsAPIError {
public var code:Number;// = 0
public var message:String;
public var name:String;
public var alias:String;
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");
private static const always_caps:Array = new Array("API", "URL", "ID");
public static const error_codes:Object = init_codes();
public static const error_names:Object = init_names();
public function NewgroundsAPIError(_arg1, _arg2:String){
if ((_arg1 is String)){
_arg1 = error_codes[_arg1];
} else {
if (!(_arg1 is uint)){
_arg1 = 0;
};
};
trace(_arg1);
code = _arg1;
message = _arg2;
name = error_names[_arg1];
trace(name);
alias = aliases[_arg1];
}
public function isError():Boolean{
return (true);
}
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);
}
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);
}
}
}//package com.newgrounds
Section 165
//NewgroundsAPIEvent (com.newgrounds.NewgroundsAPIEvent)
package com.newgrounds {
import flash.events.*;
public class NewgroundsAPIEvent extends Event {
private var _data;
private var _success:Boolean;
private var _target;
public static const MOVIE_CONNECTED:String = "movieConnected";
public static const ADS_APPROVED:String = "adsApproved";
public static const AD_ATTACHED:String = "adAttached";
public static const HOST_BLOCKED:String = "hostBlocked";
public static const NEW_VERSION_AVAILABLE:String = "newVersionAvailable";
public static const EVENT_LOGGED:String = "eventLogged";
public static const SCORE_POSTED:String = "scorePosted";
public static const SCORES_LOADED:String = "scoresLoaded";
public static const MEDAL_UNLOCKED:String = "medalUnlocked";
public static const MEDALS_LOADED:String = "medalsLoaded";
public static const METADATA_LOADED:String = "metadataLoaded";
public static const FILE_PRIVS_LOADED:String = "filePrivsLoaded";
public static const FILE_SAVED:String = "fileSaved";
public static const FILE_LOADED:String = "fileLoaded";
public static const QUERY_COMPLETE:String = "queryComplete";
public static const VOTE_COMPLETE:String = "voteComplete";
public function NewgroundsAPIEvent(_arg1:String, _arg2:Boolean=true, _arg3=undefined){
super(_arg1);
_data = _arg3;
_success = _arg2;
}
public function get success():Boolean{
return (_success);
}
public function get data(){
return (_data);
}
}
}//package com.newgrounds
Section 166
//NewgroundsAPIKey (com.newgrounds.NewgroundsAPIKey)
package com.newgrounds {
public class NewgroundsAPIKey {
private var _id:uint;
private var _name:String;
private var _type:uint;
public static const TYPE_FLOAT:uint = 1;
public static const TYPE_INTEGER:uint = 2;
public static const TYPE_STRING:uint = 3;
public static const TYPE_BOOLEAN:uint = 4;
public function NewgroundsAPIKey(_arg1:uint, _arg2:String, _arg3:uint){
_id = _arg1;
_name = _arg2;
_type = _arg3;
}
public function get id():uint{
return (_id);
}
public function get name():String{
return (_name);
}
public function get type():uint{
return (_type);
}
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 toString():String{
return (_name);
}
}
}//package com.newgrounds
Section 167
//NewgroundsAPIMedal (com.newgrounds.NewgroundsAPIMedal)
package com.newgrounds {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.system.*;
public class NewgroundsAPIMedal {
private var _id:uint;
private var _name:String;
private var _value:uint;
private var _difficultyId:uint;
private var _unlocked:Boolean;// = false
private var _iconUrl:URLRequest;
private var _iconLoader:Loader;
private var _icon:BitmapData;
private static const DEFAULT_ICON:BitmapData = new BitmapData(40, 40, false, 0);
private static const DIFFICULT_NAMES:Array = [null, "Easy", "Moderate", "Challenging", "Difficult", "Brutal"];
public function NewgroundsAPIMedal(_arg1:uint, _arg2:String, _arg3:uint, _arg4:uint, _arg5:Boolean, _arg6:String){
_icon = DEFAULT_ICON;
super();
_id = _arg1;
_name = _arg2;
_value = _arg3;
_difficultyId = _arg4;
_unlocked = _arg5;
NewgroundsAPI.reportNewAsset(this);
_iconUrl = new URLRequest(_arg6);
_iconLoader = new Loader();
_iconLoader.contentLoaderInfo.addEventListener(Event.INIT, onIconLoaderInit);
_iconLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIconLoaderError);
_iconLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onIconLoaderComplete);
_iconLoader.load(_iconUrl, new LoaderContext(true));
}
public function get difficulty():String{
return (DIFFICULT_NAMES[_difficultyId]);
}
public function get difficultyId():uint{
return (_difficultyId);
}
public function get icon():BitmapData{
return (_icon);
}
public function get id():uint{
return (_id);
}
public function get name():String{
return (_name);
}
public function get unlocked():Boolean{
return (_unlocked);
}
public function set unlocked(_arg1:Boolean):void{
_unlocked = _arg1;
}
public function get value():uint{
return (_value);
}
public function get bytesLoaded():uint{
return ((_iconLoader) ? _iconLoader.contentLoaderInfo.bytesLoaded : 0);
}
public function get bytesTotal():uint{
return ((_iconLoader) ? _iconLoader.contentLoaderInfo.bytesTotal : 0);
}
private function onIconLoaderInit(_arg1:Event):void{
trace((((("[NewgroundsAPI] :: Loading medal icon for " + name) + " (") + _iconUrl.url.split("/").pop()) + ")"));
}
private function onIconLoaderError(_arg1:IOErrorEvent):void{
trace((((("[NewgroundsAPI WARNING] :: Failed to load medal icon for " + name) + " (") + _iconUrl.url.split("/").pop()) + ")"));
_iconLoader.unload();
_iconLoader = null;
NewgroundsAPI.reportAssetFailed(this);
}
private function onIconLoaderComplete(_arg1:Event):void{
trace((((("[NewgroundsAPI] :: Successfully loaded medal icon for " + name) + " (") + _iconUrl.url.split("/").pop()) + ")"));
var _local2:Bitmap = (_iconLoader.content as Bitmap);
_icon = _local2.bitmapData;
_iconLoader.unload();
_iconLoader = null;
}
public function unlock():void{
if (!_unlocked){
NewgroundsAPI.unlockMedal(this);
};
}
public function createIconBitmap():Bitmap{
return (new Bitmap(icon));
}
public function toString():String{
return ("");
}
public static function createFromObject(_arg1:Object):NewgroundsAPIMedal{
return (new NewgroundsAPIMedal(_arg1.medal_id, _arg1.medal_name, _arg1.medal_value, _arg1.medal_difficulty, _arg1.medal_unlocked, _arg1.medal_icon));
}
}
}//package com.newgrounds
Section 168
//NewgroundsAPIRating (com.newgrounds.NewgroundsAPIRating)
package com.newgrounds {
public class NewgroundsAPIRating {
private var _id:uint;
private var _name:String;
private var _minValue:Number;
private var _maxValue:Number;
private var _isFloat:Boolean;
private var _voted:Boolean;
public function NewgroundsAPIRating(_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 id():uint{
return (_id);
}
public function get name():String{
return (_name);
}
public function get minValue():Number{
return (_minValue);
}
public function get maxValue():Number{
return (_maxValue);
}
public function get isFloat():Boolean{
return (_isFloat);
}
public function get voted():Boolean{
return (_voted);
}
public function set voted(_arg1:Boolean):void{
_voted = _arg1;
}
public function toString():String{
return (_name);
}
}
}//package com.newgrounds
Section 169
//NewgroundsAPISaveFile (com.newgrounds.NewgroundsAPISaveFile)
package com.newgrounds {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.net.*;
public class NewgroundsAPISaveFile extends EventDispatcher {
private var _filename:String;
private var _id:uint;
private var _description:String;
private var _contents;
private var _group:NewgroundsAPISaveGroup;
private var _keys:Dictionary;
private var _ratings:Dictionary;
private var _fileUrl:String;
private var _thumbnail:BitmapData;
private var _thumbnailUrl:String;
private var _status:uint;
public function NewgroundsAPISaveFile(_arg1:NewgroundsAPISaveGroup){
_keys = new Dictionary();
_ratings = new Dictionary();
_group = _arg1;
_description = "";
}
public function get name():String{
return (_filename);
}
public function set name(_arg1:String):void{
_filename = _arg1;
}
public function get id():uint{
return (_id);
}
public function set id(_arg1:uint):void{
_id = _arg1;
}
public function get description():String{
return (_description);
}
public function set description(_arg1:String):void{
_description = _arg1;
}
public function get contents(){
return (_contents);
}
public function set contents(_arg1):void{
_contents = _arg1;
}
public function get thumbnailUrl():String{
return (_thumbnailUrl);
}
public function set thumbnailUrl(_arg1:String):void{
_thumbnailUrl = _arg1;
}
public function get fileUrl():String{
return (("http://www.ngads.com/savefile.php?id=" + _id));
}
public function set fileUrl(_arg1:String):void{
_fileUrl = _arg1;
}
public function get thumbnail():BitmapData{
return (_thumbnail);
}
public function set thumbnail(_arg1:BitmapData):void{
_thumbnail = _arg1;
}
public function get groupId():uint{
return (_group.id);
}
public function get groupName():String{
return (_group.name);
}
public function get groupType():uint{
return (_group.type);
}
public function get shared():Boolean{
return (true);
}
public function setKey(_arg1, _arg2):void{
var _local3:NewgroundsAPIKey;
if ((_local3 is String)){
_local3 = _group.getKeyByName(_arg1);
} else {
_local3 = _group.getKeyById(_arg1);
};
if (_local3){
_keys[_local3] = {id:_local3.id, val:_arg2};
};
}
public function getKey(_arg1){
var _local2:NewgroundsAPIKey;
if ((_local2 is String)){
_local2 = _group.getKeyByName(_arg1);
} else {
_local2 = _group.getKeyById(_arg1);
};
if (_local2){
return (_keys[_local2]);
};
return (null);
}
public function setRating(_arg1, _arg2:Number, _arg3:Number):void{
var _local4:NewgroundsAPIRating;
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 getRating(_arg1):Object{
var _local2:NewgroundsAPIRating;
if ((_arg1 is String)){
_local2 = _group.getRatingByName(_arg1);
} else {
_local2 = _group.getRatingById(_arg1);
};
if (_local2){
return (_ratings[_local2]);
};
return (null);
}
public function sendRating(_arg1:String, _arg2:Number):void{
var _local3:NewgroundsAPIRating = _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;
NewgroundsAPI.rateSaveFile(this, _local3, _arg2);
}
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 toObject():Object{
var _local2:Object;
var _local1:Object = {group:groupId, filename:name, description:description, shared:true};
_local1.keys = [];
for each (_local2 in _keys) {
_local1.push({id:_local2.id, value:_local2.val});
};
return (_local1);
}
public function save():void{
NewgroundsAPI.saveFile(this);
}
public function loadContents():void{
var _local1:NewgroundsURLLoader;
if (_id){
_local1 = new NewgroundsURLLoader();
_local1.responseFormat = URLLoaderDataFormat.BINARY;
_local1.addEventListener(Event.COMPLETE, onContentsLoaded);
_local1.load(fileUrl);
};
}
private function onContentsLoaded(_arg1:Event):void{
var _local2:ByteArray = _arg1.target.response;
_local2.uncompress();
_contents = _local2.readObject();
dispatchEvent(new NewgroundsAPIEvent(NewgroundsAPIEvent.FILE_LOADED, true, contents));
}
}
}//package com.newgrounds
Section 170
//NewgroundsAPISaveGroup (com.newgrounds.NewgroundsAPISaveGroup)
package com.newgrounds {
public class NewgroundsAPISaveGroup {
private var _name:String;
private var _id:uint;
private var _type:uint;
private var _keys:Array;
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_PUBLIC:uint = 2;
public static const TYPE_MODERATED:uint = 3;
public function NewgroundsAPISaveGroup(_arg1:uint, _arg2:String, _arg3:uint){
_name = _arg2;
_id = _arg1;
_type = _arg3;
_ratings = [];
_keys = [];
_files = [];
}
public function get name():String{
return (_name);
}
public function get id():uint{
return (_id);
}
public function get type():uint{
return (_type);
}
public function get keys():Array{
return (_keys.concat());
}
public function get ratings():Array{
return (_ratings.concat());
}
public function addRating(_arg1:NewgroundsAPIRating):void{
_ratings.push(_arg1);
}
public function getRatingById(_arg1:uint):NewgroundsAPIRating{
var _local2:uint;
while (_local2 < _ratings.length) {
if (_ratings[_local2].id == _arg1){
return (_ratings[_local2]);
};
_local2++;
};
return (null);
}
public function getRatingByName(_arg1:String):NewgroundsAPIRating{
var _local2:uint;
while (_local2 < _ratings.length) {
if (_ratings[_local2].name == _arg1){
return (_ratings[_local2]);
};
_local2++;
};
return (null);
}
public function addKey(_arg1:NewgroundsAPIKey):void{
_keys.push(_arg1);
}
public function getKeyById(_arg1:uint):NewgroundsAPIKey{
var _local2:uint;
while (_local2 < _keys.length) {
if (_keys[_local2].id == _arg1){
return (_keys[_local2]);
};
_local2++;
};
return (null);
}
public function getKeyByName(_arg1:String):NewgroundsAPIKey{
var _local2:uint;
while (_local2 < _keys.length) {
if (_keys[_local2].name == _arg1){
return (_keys[_local2]);
};
_local2++;
};
return (null);
}
public function createQuery():NewgroundsAPISaveGroupQuery{
return (new NewgroundsAPISaveGroupQuery(this));
}
public function toString():String{
return ((((((("SaveGroup { name: " + _name) + ", id: ") + _id) + ", keys: ") + _keys) + "}"));
}
public static function createFromObject(_arg1:Object):NewgroundsAPISaveGroup{
var _local4:Object;
var _local5:Object;
var _local2:NewgroundsAPISaveGroup = new NewgroundsAPISaveGroup(_arg1.group_id, _arg1.group_name, _arg1.group_type);
var _local3:uint;
while (_local3 < _arg1.keys.length) {
_local4 = _arg1.keys[_local3];
_local2.addKey(new NewgroundsAPIKey(_local4.id, _local4.name, _local4.type));
_local3++;
};
_local3 = 0;
while (_local3 < _arg1.ratings.length) {
_local5 = _arg1.ratings[_local3];
_local2.addRating(new NewgroundsAPIRating(_local5.id, _local5.name, _local5.float, _local5.min, _local5.max));
_local3++;
};
return (_local2);
}
}
}//package com.newgrounds
Section 171
//NewgroundsAPISaveGroupQuery (com.newgrounds.NewgroundsAPISaveGroupQuery)
package com.newgrounds {
import flash.events.*;
public class NewgroundsAPISaveGroupQuery extends EventDispatcher {
private var _group:NewgroundsAPISaveGroup;
private var _groupBy:Array;
private var _lookupKeys:Array;
private var _lookupRatings:Array;
private var _fileConditions:Array;
private var _keyConditions:Array;
private var _ratingConditions:Array;
private var _sortConditions:Array;
private var _page:uint;
private var _resultsPerPage:uint;
private var _randomizeResults:Boolean;
public static const TABLE_FILES:uint = 1;
public static const TABLE_KEYS:uint = 2;
public static const TABLE_RATINGS:uint = 3;
public static const FILE_ID:uint = 0;
public static const AUTHOR_ID:uint = 1;
public static const AUTHOR_NAME:uint = 2;
public static const FILE_NAME:uint = 3;
public static const CREATED_ON:uint = 4;
public static const UPDATED_ON:uint = 5;
public static const TOTAL_VIEWS:uint = 6;
public static const FILE_STATUS:uint = 7;
public static const SCORE:String = "score";
public static const TOTAL_VOTES:String = "votes";
public function NewgroundsAPISaveGroupQuery(_arg1:NewgroundsAPISaveGroup){
_group = _arg1;
reset();
}
public function get group():NewgroundsAPISaveGroup{
return (_group);
}
public function get groupId():uint{
return (_group.id);
}
public function get resultsPerPage():uint{
return (_resultsPerPage);
}
public function set resultsPerPage(_arg1:uint):void{
_resultsPerPage = _arg1;
}
public function get page():uint{
return (_page);
}
public function set page(_arg1:uint):void{
_page = _arg1;
}
public function get isRandomized():Boolean{
return (_randomizeResults);
}
public function set isRandomized(_arg1:Boolean):void{
_randomizeResults = _arg1;
}
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:NewgroundsAPIKey = _group.getKeyByName(_arg1);
if (_local2){
_lookupKeys.push(_local2.id);
};
}
public function includeRating(_arg1:String):void{
var _local2:NewgroundsAPIRating = _group.getRatingByName(_arg1);
if (_local2){
_lookupRatings.push(_local2.id);
};
}
public function excludeKey(_arg1:String):void{
var _local2:NewgroundsAPIKey = _group.getKeyByName(_arg1);
var _local3:uint;
while (_local3 < _lookupKeys.length) {
if (_lookupKeys[_local3] == _local2.id){
_lookupKeys.splice(_local3, 1);
return;
};
_local3++;
};
}
public function excludeRating(_arg1:String):void{
var _local2:NewgroundsAPIRating = _group.getRatingByName(_arg1);
var _local3:uint;
while (_local3 < _lookupRatings.length) {
if (_lookupRatings[_local3] == _local2.id){
_lookupRatings.splice(_local3, 1);
return;
};
_local3++;
};
}
public function groupBy(_arg1:uint):void{
_groupBy.push({table:TABLE_FILES, field:_arg1});
}
public function groupByRating(_arg1:String):void{
var _local2:NewgroundsAPIRating = _group.getRatingByName(_arg1);
if (!_local2){
return;
};
_groupBy.push({table:TABLE_RATINGS, field:_local2.id});
}
public function groupByKey(_arg1:String):void{
var _local2:NewgroundsAPIKey = _group.getKeyByName(_arg1);
if (!_local2){
return;
};
_groupBy.push({table:TABLE_KEYS, field:_local2.id});
}
public function addFileCondition(_arg1:uint, _arg2:String, _arg3):void{
_fileConditions.push({field:_arg1, operator:_arg2, value:_arg3});
}
public function addKeyCondition(_arg1:String, _arg2:String, _arg3):void{
var _local4:NewgroundsAPIKey = _group.getKeyByName(_arg1);
if (!_local4){
return;
};
if (!checkValue(_arg3, _local4.type)){
return;
};
_keyConditions.push({key_id:_local4.id, operator:_arg2, value:_arg3});
}
public function addRatingCondition(_arg1:String, _arg2:String, _arg3, _arg4:String="score"):void{
var _local5:NewgroundsAPIRating = _group.getRatingByName(_arg1);
if (!_local5){
return;
};
_ratingConditions.push({rating_id:_local5.id, operator:_arg2, value:_arg3, column:_arg4});
}
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 sortOn(_arg1:uint, _arg2:Boolean=false):void{
addSortCondition(TABLE_FILES, _arg1, _arg2);
}
public function sortOnKey(_arg1:String, _arg2:Boolean=false):void{
addSortCondition(TABLE_KEYS, _group.getKeyByName(_arg1).id, _arg2);
}
public function sortOnRating(_arg1:String, _arg2:Boolean=false, _arg3:String="score"):void{
addSortCondition(TABLE_RATINGS, _group.getRatingByName(_arg1).id, _arg2, _arg3);
}
public function execute():void{
NewgroundsAPI.executeSaveQuery(this);
}
private function checkValue(_arg1, _arg2:uint):Boolean{
return (true);
}
override public function toString():String{
return ("");
}
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);
}
}
}//package com.newgrounds
class FileCondition {
public var field:uint;
public var operator:String;
public var value;
private function FileCondition(_arg1:uint, _arg2:String, _arg3){
this.field = _arg1;
this.operator = _arg2;
this.value = _arg3;
}
}
class KeyCondition {
public var key:uint;
public var operator:String;
public var value;
private function KeyCondition(_arg1:uint, _arg2:String, _arg3){
this.key = _arg1;
this.operator = _arg2;
this.value = _arg3;
}
}
class RatingCondition {
public var rating:uint;
public var operator:String;
public var value;
public var column:String;
private function RatingCondition(_arg1:uint, _arg2:String, _arg3, _arg4:String){
this.rating = _arg1;
this.operator = _arg2;
this.value = _arg3;
this.column = _arg4;
}
}
Section 172
//NewgroundsURLLoader (com.newgrounds.NewgroundsURLLoader)
package com.newgrounds {
import flash.events.*;
import flash.utils.*;
import flash.net.*;
import flash.errors.*;
public class NewgroundsURLLoader extends EventDispatcher {
private var _variables:Dictionary;
private var _files:Dictionary;
private var _hasVariables:Boolean;
private var _method:String;// = "GET"
private var _urlRequest:URLRequest;
private var _urlLoader:URLLoader;
private var _dataFormat:String;// = "text"
private var _openBrowser:Boolean;// = false
private var _preventCache:Boolean;// = false
public var owner;
private static const CRLF:String = "
";
private static var _loaders:Dictionary = new Dictionary();
public function NewgroundsURLLoader(){
_urlRequest = new URLRequest();
_variables = new Dictionary();
}
public function get responseFormat():String{
return (_dataFormat);
}
public function set responseFormat(_arg1:String):void{
_dataFormat = _arg1;
}
public function get response(){
return (_urlLoader.data);
}
public function get hasFiles():Boolean{
return (Boolean(_files));
}
public function get method():String{
return (_method);
}
public function set method(_arg1:String):void{
if (((hasFiles) && ((_arg1 == URLRequestMethod.GET)))){
throw (new IllegalOperationError("GET cannot be used to upload files."));
};
_method = _arg1;
}
public function get openBrowser():Boolean{
return (_openBrowser);
}
public function set openBrowser(_arg1:Boolean):void{
_openBrowser = _arg1;
}
public function get preventCache():Boolean{
return (_preventCache);
}
public function set preventCache(_arg1:Boolean):void{
_preventCache = _arg1;
}
public function addVariable(_arg1:String, _arg2=""):void{
_variables[_arg1] = _arg2;
if (_arg2){
_hasVariables = true;
};
}
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 clearVariables():void{
_variables = new Dictionary();
}
public function clearFiles():void{
_files = null;
}
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 close():void{
try {
_urlLoader.close();
} catch(e:Error) {
};
}
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;
}
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);
}
private function onComplete(_arg1:Event):void{
dispatchEvent(_arg1);
dispose();
}
private function onProgress(_arg1:ProgressEvent):void{
dispatchEvent(_arg1);
}
private function onIOError(_arg1:IOErrorEvent):void{
dispatchEvent(_arg1);
dispose();
}
private function onSecurityError(_arg1:SecurityErrorEvent):void{
dispatchEvent(_arg1);
dispose();
}
private function onHTTPStatus(_arg1:HTTPStatusEvent):void{
dispatchEvent(_arg1);
}
}
}//package com.newgrounds
import flash.utils.*;
class File {
private var fileName:String;
private var data:ByteArray;
private var dataField:String;
private var contentType:String;
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 173
//RC4 (com.newgrounds.RC4)
package com.newgrounds {
public class RC4 {
private static var sbox:Array = new Array(0xFF);
private static var mykey:Array = new Array(0xFF);
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));
}
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 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 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 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);
}
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);
}
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);
}
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);
}
}
}//package com.newgrounds
Section 174
//Color (fl.motion.Color)
package fl.motion {
import flash.display.*;
import flash.geom.*;
public class Color extends ColorTransform {
private var _tintColor:Number;// = 0
private var _tintMultiplier:Number;// = 0
public function Color(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1, _arg4:Number=1, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0){
super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8);
}
public function get brightness():Number{
return ((this.redOffset) ? (1 - this.redMultiplier) : (this.redMultiplier - 1));
}
public function set brightness(_arg1:Number):void{
if (_arg1 > 1){
_arg1 = 1;
} else {
if (_arg1 < -1){
_arg1 = -1;
};
};
var _local2:Number = (1 - Math.abs(_arg1));
var _local3:Number = 0;
if (_arg1 > 0){
_local3 = (_arg1 * 0xFF);
};
this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = _local2));
this.redOffset = (this.greenOffset = (this.blueOffset = _local3));
}
public function setTint(_arg1:uint, _arg2:Number):void{
this._tintColor = _arg1;
this._tintMultiplier = _arg2;
this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = (1 - _arg2)));
var _local3:uint = ((_arg1 >> 16) & 0xFF);
var _local4:uint = ((_arg1 >> 8) & 0xFF);
var _local5:uint = (_arg1 & 0xFF);
this.redOffset = Math.round((_local3 * _arg2));
this.greenOffset = Math.round((_local4 * _arg2));
this.blueOffset = Math.round((_local5 * _arg2));
}
public function get tintColor():uint{
return (this._tintColor);
}
public function set tintColor(_arg1:uint):void{
this.setTint(_arg1, this.tintMultiplier);
}
private function deriveTintColor():uint{
var _local1:Number = (1 / this.tintMultiplier);
var _local2:uint = Math.round((this.redOffset * _local1));
var _local3:uint = Math.round((this.greenOffset * _local1));
var _local4:uint = Math.round((this.blueOffset * _local1));
var _local5:uint = (((_local2 << 16) | (_local3 << 8)) | _local4);
return (_local5);
}
public function get tintMultiplier():Number{
return (this._tintMultiplier);
}
public function set tintMultiplier(_arg1:Number):void{
this.setTint(this.tintColor, _arg1);
}
private function parseXML(_arg1:XML=null):Color{
var _local3:XML;
var _local4:String;
var _local5:uint;
if (!_arg1){
return (this);
};
var _local2:XML = _arg1.elements()[0];
if (!_local2){
return (this);
};
for each (_local3 in _local2.attributes()) {
_local4 = _local3.localName();
if (_local4 == "tintColor"){
_local5 = (Number(_local3.toString()) as uint);
this.tintColor = _local5;
} else {
this[_local4] = Number(_local3.toString());
};
};
return (this);
}
public static function fromXML(_arg1:XML):Color{
return (Color(new (Color).parseXML(_arg1)));
}
public static function interpolateTransform(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{
var _local4:Number = (1 - _arg3);
var _local5:ColorTransform = new ColorTransform(((_arg1.redMultiplier * _local4) + (_arg2.redMultiplier * _arg3)), ((_arg1.greenMultiplier * _local4) + (_arg2.greenMultiplier * _arg3)), ((_arg1.blueMultiplier * _local4) + (_arg2.blueMultiplier * _arg3)), ((_arg1.alphaMultiplier * _local4) + (_arg2.alphaMultiplier * _arg3)), ((_arg1.redOffset * _local4) + (_arg2.redOffset * _arg3)), ((_arg1.greenOffset * _local4) + (_arg2.greenOffset * _arg3)), ((_arg1.blueOffset * _local4) + (_arg2.blueOffset * _arg3)), ((_arg1.alphaOffset * _local4) + (_arg2.alphaOffset * _arg3)));
return (_local5);
}
public static function interpolateColor(_arg1:uint, _arg2:uint, _arg3:Number):uint{
var _local4:Number = (1 - _arg3);
var _local5:uint = ((_arg1 >> 24) & 0xFF);
var _local6:uint = ((_arg1 >> 16) & 0xFF);
var _local7:uint = ((_arg1 >> 8) & 0xFF);
var _local8:uint = (_arg1 & 0xFF);
var _local9:uint = ((_arg2 >> 24) & 0xFF);
var _local10:uint = ((_arg2 >> 16) & 0xFF);
var _local11:uint = ((_arg2 >> 8) & 0xFF);
var _local12:uint = (_arg2 & 0xFF);
var _local13:uint = ((_local5 * _local4) + (_local9 * _arg3));
var _local14:uint = ((_local6 * _local4) + (_local10 * _arg3));
var _local15:uint = ((_local7 * _local4) + (_local11 * _arg3));
var _local16:uint = ((_local8 * _local4) + (_local12 * _arg3));
var _local17:uint = ((((_local13 << 24) | (_local14 << 16)) | (_local15 << 8)) | _local16);
return (_local17);
}
}
}//package fl.motion
Section 175
//appear_184 (game_new_fla.appear_184)
package game_new_fla {
import flash.display.*;
public dynamic class appear_184 extends MovieClip {
public function appear_184(){
addFrameScript(28, frame29);
}
function frame29(){
stop();
}
}
}//package game_new_fla
Section 176
//appear2_185 (game_new_fla.appear2_185)
package game_new_fla {
import flash.display.*;
public dynamic class appear2_185 extends MovieClip {
public function appear2_185(){
addFrameScript(18, frame19);
}
function frame19(){
stop();
}
}
}//package game_new_fla
Section 177
//Char_1_168 (game_new_fla.Char_1_168)
package game_new_fla {
import flash.display.*;
public dynamic class Char_1_168 extends MovieClip {
public var ch:MovieClip;
public function Char_1_168(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_new_fla
Section 178
//Char_2_187 (game_new_fla.Char_2_187)
package game_new_fla {
import flash.display.*;
public dynamic class Char_2_187 extends MovieClip {
public var ch:MovieClip;
public function Char_2_187(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_new_fla
Section 179
//Char_3_204 (game_new_fla.Char_3_204)
package game_new_fla {
import flash.display.*;
public dynamic class Char_3_204 extends MovieClip {
public var ch:MovieClip;
public function Char_3_204(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_new_fla
Section 180
//char_box_fly_2_202 (game_new_fla.char_box_fly_2_202)
package game_new_fla {
import flash.display.*;
public dynamic class char_box_fly_2_202 extends MovieClip {
public function char_box_fly_2_202(){
addFrameScript(11, frame12);
}
function frame12(){
gotoAndPlay((currentFrame - 2));
}
}
}//package game_new_fla
Section 181
//char_box_stand_2_199 (game_new_fla.char_box_stand_2_199)
package game_new_fla {
import flash.display.*;
public dynamic class char_box_stand_2_199 extends MovieClip {
public function char_box_stand_2_199(){
addFrameScript(1, frame2);
}
function frame2(){
stop();
}
}
}//package game_new_fla
Section 182
//char_boxfly_177 (game_new_fla.char_boxfly_177)
package game_new_fla {
import flash.display.*;
public dynamic class char_boxfly_177 extends MovieClip {
public function char_boxfly_177(){
addFrameScript(11, frame12);
}
function frame12(){
gotoAndPlay((currentFrame - 2));
}
}
}//package game_new_fla
Section 183
//char_boxlift_179 (game_new_fla.char_boxlift_179)
package game_new_fla {
import flash.display.*;
public dynamic class char_boxlift_179 extends MovieClip {
public function char_boxlift_179(){
addFrameScript(7, frame8);
}
function frame8(){
stop();
}
}
}//package game_new_fla
Section 184
//char_boxstand_174 (game_new_fla.char_boxstand_174)
package game_new_fla {
import flash.display.*;
public dynamic class char_boxstand_174 extends MovieClip {
public function char_boxstand_174(){
addFrameScript(1, frame2);
}
function frame2(){
stop();
}
}
}//package game_new_fla
Section 185
//char_fly_1_54 (game_new_fla.char_fly_1_54)
package game_new_fla {
import flash.display.*;
public dynamic class char_fly_1_54 extends MovieClip {
public function char_fly_1_54(){
addFrameScript(13, frame14);
}
function frame14(){
gotoAndPlay((currentFrame - 2));
}
}
}//package game_new_fla
Section 186
//char_fly_2_194 (game_new_fla.char_fly_2_194)
package game_new_fla {
import flash.display.*;
public dynamic class char_fly_2_194 extends MovieClip {
public function char_fly_2_194(){
addFrameScript(13, frame14);
}
function frame14(){
gotoAndPlay((currentFrame - 2));
}
}
}//package game_new_fla
Section 187
//char_fly_3_211 (game_new_fla.char_fly_3_211)
package game_new_fla {
import flash.display.*;
public dynamic class char_fly_3_211 extends MovieClip {
public function char_fly_3_211(){
addFrameScript(13, frame14);
}
function frame14(){
gotoAndPlay((currentFrame - 2));
}
}
}//package game_new_fla
Section 188
//char_land_1_56 (game_new_fla.char_land_1_56)
package game_new_fla {
import flash.display.*;
public dynamic class char_land_1_56 extends MovieClip {
public function char_land_1_56(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package game_new_fla
Section 189
//char_land_1_76 (game_new_fla.char_land_1_76)
package game_new_fla {
import flash.display.*;
public dynamic class char_land_1_76 extends MovieClip {
public function char_land_1_76(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package game_new_fla
Section 190
//char_land_2_196 (game_new_fla.char_land_2_196)
package game_new_fla {
import flash.display.*;
public dynamic class char_land_2_196 extends MovieClip {
public function char_land_2_196(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package game_new_fla
Section 191
//char_land_3_213 (game_new_fla.char_land_3_213)
package game_new_fla {
import flash.display.*;
public dynamic class char_land_3_213 extends MovieClip {
public function char_land_3_213(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package game_new_fla
Section 192
//char_lean_1_171 (game_new_fla.char_lean_1_171)
package game_new_fla {
import flash.display.*;
public dynamic class char_lean_1_171 extends MovieClip {
public function char_lean_1_171(){
addFrameScript(8, frame9);
}
function frame9(){
stop();
}
}
}//package game_new_fla
Section 193
//char_lean_2_195 (game_new_fla.char_lean_2_195)
package game_new_fla {
import flash.display.*;
public dynamic class char_lean_2_195 extends MovieClip {
public function char_lean_2_195(){
addFrameScript(8, frame9);
}
function frame9(){
stop();
}
}
}//package game_new_fla
Section 194
//char_lean_3_212 (game_new_fla.char_lean_3_212)
package game_new_fla {
import flash.display.*;
public dynamic class char_lean_3_212 extends MovieClip {
public function char_lean_3_212(){
addFrameScript(8, frame9);
}
function frame9(){
stop();
}
}
}//package game_new_fla
Section 195
//char_roll_1_172 (game_new_fla.char_roll_1_172)
package game_new_fla {
import flash.display.*;
public dynamic class char_roll_1_172 extends MovieClip {
public function char_roll_1_172(){
addFrameScript(9, frame10);
}
function frame10(){
stop();
}
}
}//package game_new_fla
Section 196
//char_roll_2_197 (game_new_fla.char_roll_2_197)
package game_new_fla {
import flash.display.*;
public dynamic class char_roll_2_197 extends MovieClip {
public function char_roll_2_197(){
addFrameScript(9, frame10);
}
function frame10(){
stop();
}
}
}//package game_new_fla
Section 197
//char_roll_3_214 (game_new_fla.char_roll_3_214)
package game_new_fla {
import flash.display.*;
public dynamic class char_roll_3_214 extends MovieClip {
public function char_roll_3_214(){
addFrameScript(9, frame10);
}
function frame10(){
stop();
}
}
}//package game_new_fla
Section 198
//char_stand_1_121 (game_new_fla.char_stand_1_121)
package game_new_fla {
import flash.display.*;
public dynamic class char_stand_1_121 extends MovieClip {
public var epic:Number;
public function char_stand_1_121(){
addFrameScript(27, frame28);
}
function frame28(){
if (Math.random() > 0.04){
gotoAndPlay(1);
} else {
epic = Math.random();
if (epic > 0.666){
} else {
if (epic > 0.333){
};
};
};
}
}
}//package game_new_fla
Section 199
//char_stand_2_188 (game_new_fla.char_stand_2_188)
package game_new_fla {
import flash.display.*;
public dynamic class char_stand_2_188 extends MovieClip {
public var epic:Number;
public function char_stand_2_188(){
addFrameScript(27, frame28);
}
function frame28(){
if (Math.random() > 0.04){
gotoAndPlay(1);
} else {
epic = Math.random();
if (epic > 0.666){
} else {
if (epic > 0.333){
};
};
};
}
}
}//package game_new_fla
Section 200
//char_stand_3_205 (game_new_fla.char_stand_3_205)
package game_new_fla {
import flash.display.*;
public dynamic class char_stand_3_205 extends MovieClip {
public var epic:Number;
public function char_stand_3_205(){
addFrameScript(27, frame28);
}
function frame28(){
if (Math.random() > 0.04){
gotoAndPlay(1);
} else {
epic = Math.random();
if (epic > 0.666){
} else {
if (epic > 0.333){
};
};
};
}
}
}//package game_new_fla
Section 201
//char_suicide_180 (game_new_fla.char_suicide_180)
package game_new_fla {
import flash.display.*;
public dynamic class char_suicide_180 extends MovieClip {
public function char_suicide_180(){
addFrameScript(103, frame104);
}
function frame104(){
stop();
}
}
}//package game_new_fla
Section 202
//char_up_1_173 (game_new_fla.char_up_1_173)
package game_new_fla {
import flash.display.*;
public dynamic class char_up_1_173 extends MovieClip {
public function char_up_1_173(){
addFrameScript(7, frame8);
}
function frame8(){
stop();
}
}
}//package game_new_fla
Section 203
//char_up_2_198 (game_new_fla.char_up_2_198)
package game_new_fla {
import flash.display.*;
public dynamic class char_up_2_198 extends MovieClip {
public function char_up_2_198(){
addFrameScript(7, frame8);
}
function frame8(){
stop();
}
}
}//package game_new_fla
Section 204
//char_up_3_215 (game_new_fla.char_up_3_215)
package game_new_fla {
import flash.display.*;
public dynamic class char_up_3_215 extends MovieClip {
public function char_up_3_215(){
addFrameScript(7, frame8);
}
function frame8(){
stop();
}
}
}//package game_new_fla
Section 205
//colorSwatch_246 (game_new_fla.colorSwatch_246)
package game_new_fla {
import flash.display.*;
public dynamic class colorSwatch_246 extends MovieClip {
public function colorSwatch_246(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_new_fla
Section 206
//death1_183 (game_new_fla.death1_183)
package game_new_fla {
import flash.display.*;
public dynamic class death1_183 extends MovieClip {
public function death1_183(){
addFrameScript(18, frame19);
}
function frame19(){
stop();
}
}
}//package game_new_fla
Section 207
//difficultyFaces_103 (game_new_fla.difficultyFaces_103)
package game_new_fla {
import flash.display.*;
public dynamic class difficultyFaces_103 extends MovieClip {
public function difficultyFaces_103(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_new_fla
Section 208
//door_124 (game_new_fla.door_124)
package game_new_fla {
import flash.display.*;
public dynamic class door_124 extends MovieClip {
public function door_124(){
addFrameScript(0, frame1, 7, frame8);
}
function frame1(){
stop();
}
function frame8(){
stop();
}
}
}//package game_new_fla
Section 209
//doorkey_99 (game_new_fla.doorkey_99)
package game_new_fla {
import flash.display.*;
public dynamic class doorkey_99 extends MovieClip {
public function doorkey_99(){
addFrameScript(0, frame1, 16, frame17);
}
function frame1(){
stop();
}
function frame17(){
gotoAndStop(2);
}
}
}//package game_new_fla
Section 210
//endpushani_53 (game_new_fla.endpushani_53)
package game_new_fla {
import flash.display.*;
public dynamic class endpushani_53 extends MovieClip {
public function endpushani_53(){
addFrameScript(500, frame501);
}
function frame501(){
stop();
}
}
}//package game_new_fla
Section 211
//fade0_67 (game_new_fla.fade0_67)
package game_new_fla {
import flash.display.*;
public dynamic class fade0_67 extends MovieClip {
public function fade0_67(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package game_new_fla
Section 212
//greentile_129 (game_new_fla.greentile_129)
package game_new_fla {
import flash.display.*;
public dynamic class greentile_129 extends MovieClip {
public function greentile_129(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_new_fla
Section 213
//head_80 (game_new_fla.head_80)
package game_new_fla {
import flash.display.*;
public dynamic class head_80 extends MovieClip {
public function head_80(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_new_fla
Section 214
//headBG_238 (game_new_fla.headBG_238)
package game_new_fla {
import flash.display.*;
public dynamic class headBG_238 extends MovieClip {
public function headBG_238(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_new_fla
Section 215
//headButton_237 (game_new_fla.headButton_237)
package game_new_fla {
import flash.display.*;
public dynamic class headButton_237 extends MovieClip {
public var headBG:MovieClip;
public function headButton_237(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_new_fla
Section 216
//holohead_31 (game_new_fla.holohead_31)
package game_new_fla {
import flash.display.*;
public dynamic class holohead_31 extends MovieClip {
public var headTalk:MovieClip;
public function holohead_31(){
addFrameScript(20, frame21, 40, frame41);
}
function frame21(){
stop();
}
function frame41(){
gotoAndStop(1);
}
}
}//package game_new_fla
Section 217
//holohead_32 (game_new_fla.holohead_32)
package game_new_fla {
import flash.display.*;
public dynamic class holohead_32 extends MovieClip {
public function holohead_32(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_new_fla
Section 218
//introLoad_1 (game_new_fla.introLoad_1)
package game_new_fla {
import flash.display.*;
public dynamic class introLoad_1 extends MovieClip {
public var playB:SimpleButton;
public var scrollbar:MovieClip;
public var theHead:MovieClip;
public var bg1:MovieClip;
public var bg2:MovieClip;
public function introLoad_1(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
playB.visible = false;
scrollbar.visible = false;
stop();
}
function frame2(){
playB.visible = true;
scrollbar.visible = true;
stop();
}
}
}//package game_new_fla
Section 219
//loadHead_4 (game_new_fla.loadHead_4)
package game_new_fla {
import flash.display.*;
public dynamic class loadHead_4 extends MovieClip {
public var myParent:MovieClip;
public var playHit:Boolean;
public function loadHead_4(){
addFrameScript(0, frame1, 18, frame19, 41, frame42, 49, frame50);
}
function frame1(){
playHit = false;
stop();
}
function frame19(){
if (playHit){
play();
} else {
stop();
};
}
function frame42(){
if (myParent.currentLabel == "loading"){
myParent.play();
};
}
function frame50(){
stop();
}
}
}//package game_new_fla
Section 220
//MainTimeline (game_new_fla.MainTimeline)
package game_new_fla {
import flash.display.*;
import flash.events.*;
import com.newgrounds.*;
import flash.utils.*;
import flash.geom.*;
import com.game.*;
import flash.net.*;
import flash.media.*;
import flash.text.*;
import com.newgrounds.components.*;
import flash.ui.*;
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.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var playAButton:MovieClip;
public var playCustom:MovieClip;
public var playBButton:MovieClip;
public var newgroundsAPIconnector:DefaultAPIConnector;
public var levelNum:TextField;
public var editCustom:MovieClip;
public var bigCover:MovieClip;
public var introB:SimpleButton;
public var menu:MovieClip;
public var menuB:SimpleButton;
public var skipB:SimpleButton;
public var resetButton:SimpleButton;
public var info:TextField;
public var preBG:MovieClip;
public var API_Settings:Object;
public var myMenu:ContextMenu;
public var menuItem1:ContextMenuItem;
public var menuItem2:ContextMenuItem;
public var introFXC:SoundChannel;
public var introFX:Sound;
public var preCount:Number;
public var preCast:Number;
public var SteamReady:Boolean;
public var unlockSteamAchievement:Function;
public var mouseDown:Boolean;
public var fVar:Boolean;
public var uVar:Boolean;
public var cVar:Boolean;
public var kVar:Boolean;
public var cheatCount:Number;
public var cheatCast:Number;
public var leftMove:Boolean;
public var rightMove:Boolean;
public var upMove:Boolean;
public var upLook:Boolean;
public var pickUp:Boolean;
public var upReset:Boolean;
public var downMove:Boolean;
public var mapShift:Boolean;
public var mapShiftReset:Boolean;
public var gamePause:Boolean;
public var shifted:Boolean;
public var spinL:Boolean;
public var spinR:Boolean;
public var grav:Boolean;
public var flip:Boolean;
public var shiftHold:Boolean;
public var music:SoundChannel;
public var musicTransform:SoundTransform;
public var musicPlaying:Boolean;
public var muteCount:Number;
public var fxTransform:SoundTransform;
public var intro:Sound;
public var gameS:Sound;
public var gameIntro:Sound;
public var editS:Sound;
public var game2S:Sound;
public var soundLoop:String;
public var menuPage:String;
public var domain;
public var gameState:String;
public var winFrame:String;
public var gameMap:map;
public var introVid:introScroll;
public var introStory:Story_Intro;
public var outroStory:Story_Outro;
public var endStory:Story_End;
public var endStory2:Story_End2;
public var endStory3:Story_End3;
public var endText:Number;
public var board:leaderBoard;
public var myMap:Array;
public var myID:Number;
public var _sharedObj:SharedObject;
public var loadCount:Number;
public var loadCast:Number;
public var campainMultiLevels:Array;
public var currentLevel:Number;
public var currentLevel2:Number;
public var campainLevelsA:Array;
public var campainLevelsB:Array;
public var campainTextA:Array;
public var campainTextB:Array;
public var randomVocals:Array;
public var deathVocals:Array;
public var campainLevelsC:Array;
public var campainTextC:Array;
public var topAlpha;
public var now:Date;
public var curTime;
public var timeHold;
public function MainTimeline(){
addFrameScript(0, frame1, 1, frame2, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 9, frame10, 10, frame11, 11, frame12, 12, frame13, 13, frame14, 14, frame15, 17, frame18, 18, frame19, 19, frame20, 20, frame21);
}
public function isConnected(_arg1:NewgroundsAPIEvent):void{
trace("-----------------connect");
}
public function doHigh(_arg1:ContextMenuEvent):void{
stage.quality = "high";
}
public function doLow(_arg1:ContextMenuEvent):void{
stage.quality = "low";
}
public function isLoading(_arg1:Event){
var _local2:Sound;
if (stage.loaderInfo.bytesLoaded >= stage.loaderInfo.bytesTotal){
removeEventListener(Event.ENTER_FRAME, isLoading);
preBG.gotoAndStop(2);
introFXC.stop();
_local2 = new talkie2();
_local2.play();
preBG.playB.addEventListener(MouseEvent.CLICK, prePlayFun);
preBG.bg1.play();
preBG.bg2.play();
} else {
preCast = (20 - ((stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal) * 20));
trace(preCast);
if (preCount > preCast){
preCount = 1;
if (preBG.bg1.currentFrame == preBG.bg1.totalFrames){
preBG.bg1.gotoAndStop(1);
preBG.bg2.gotoAndStop(1);
} else {
preBG.bg1.nextFrame();
preBG.bg2.nextFrame();
};
} else {
preCount++;
};
};
}
public function prePlayFun(_arg1:MouseEvent){
preBG.theHead.play();
preBG.theHead.playHit = true;
}
public function nosteam_debug_unlock(_arg1:String){
trace(("Not hooked into to steam api, achievement unlocked: " + _arg1));
}
public function initSteamCalls(_arg1:Event){
SteamReady = true;
unlockSteamAchievement = MovieClip(parent.parent).unlockSteamAchievement;
}
public function keyPressedDown(_arg1:KeyboardEvent){
if (_arg1.keyCode == 37){
leftMove = true;
} else {
if (_arg1.keyCode == 39){
rightMove = true;
} else {
if ((((_arg1.keyCode == 32)) || ((_arg1.keyCode == 68)))){
upMove = true;
} else {
if (_arg1.keyCode == 65){
if (mapShiftReset){
mapShift = true;
mapShiftReset = false;
};
} else {
if (_arg1.keyCode == 38){
upLook = true;
} else {
if (_arg1.keyCode == 83){
pickUp = true;
} else {
if (_arg1.keyCode == 16){
shiftHold = true;
} else {
if (_arg1.keyCode == 84){
fVar = true;
} else {
if (_arg1.keyCode == 73){
uVar = true;
} else {
if (_arg1.keyCode == 77){
cVar = true;
} else {
if (_arg1.keyCode == 69){
kVar = true;
};
};
};
};
};
};
};
};
};
};
};
}
public function keyPressedUp(_arg1:KeyboardEvent){
if (_arg1.keyCode == 37){
leftMove = false;
} else {
if (_arg1.keyCode == 39){
rightMove = false;
} else {
if ((((_arg1.keyCode == 32)) || ((_arg1.keyCode == 68)))){
upMove = false;
upReset = true;
} else {
if (_arg1.keyCode == 38){
upLook = false;
} else {
if (_arg1.keyCode == 83){
pickUp = false;
} else {
if (_arg1.keyCode == 16){
shiftHold = false;
} else {
if (_arg1.keyCode == 90){
spinL = true;
} else {
if (_arg1.keyCode == 88){
spinR = true;
} else {
if (_arg1.keyCode == 86){
flip = true;
} else {
if (_arg1.keyCode == 65){
mapShiftReset = true;
} else {
if (_arg1.keyCode == 82){
if (((gameMap) && (gameMap.theChar))){
gameMap.theChar.startSuicide();
};
} else {
if (_arg1.keyCode == 27){
if (((gameMap) && (!((gameState == "edit"))))){
gameMap.EWindow.togglePos();
};
} else {
if (_arg1.keyCode == 80){
if (((gameMap) && (!((gameState == "edit"))))){
gameMap.PWindow.togglePos();
};
};
};
};
};
};
};
};
};
};
};
};
};
};
}
public function stopMusic(){
musicPlaying = false;
music.stop();
}
public function mousePress(_arg1:MouseEvent){
mouseDown = true;
}
public function mouseRelease(_arg1:MouseEvent){
mouseDown = false;
}
public function wholeGame(_arg1:Event){
var _local2:Sound;
if (getChildIndex(bigCover) != (this.numChildren - 1)){
setChildIndex(bigCover, (this.numChildren - 1));
};
if ((((currentLabel == "game")) && (gameMap))){
if ((((gameState == "play")) || ((gameState == "play2")))){
gameMap.playGame();
} else {
if (gameState == "edit"){
gameMap.playEditor();
} else {
if (gameState == "multi"){
gameMap.playGame();
} else {
if (gameState == "multiC"){
gameMap.playGame();
} else {
if (gameState == "single"){
gameMap.playGame();
};
};
};
};
};
} else {
if (currentLabel == "credits"){
} else {
if (currentLabel == "intro"){
if (introStory){
introStory.introVocals.playSound();
};
} else {
if (currentLabel == "outro"){
if (outroStory){
outroStory.introVocals.playSound();
};
} else {
if (currentLabel == "introTransition"){
if (loadCount > loadCast){
gotoAndStop("menu");
loadCount = 0;
} else {
loadCount++;
};
} else {
if (currentLabel == "menu"){
if (((((((fVar) || (uVar))) || (cVar))) || (kVar))){
if (cheatCount > cheatCast){
fVar = false;
uVar = false;
cVar = false;
kVar = false;
cheatCount = 0;
} else {
cheatCount++;
};
};
if (((((((fVar) && (uVar))) && (cVar))) && (kVar))){
if (_sharedObj.data.currentLevel < 32){
_sharedObj.data.currentLevel = 32;
_sharedObj.data.currentLevel2 = 32;
_local2 = new layer_change1();
_local2.play();
};
};
if (menu){
if (board){
board.boardActions();
};
if (menuPage == "board"){
if (menu.y > -210){
menu.y = (menu.y - 7);
};
} else {
if (menuPage == "main"){
if (menu.y < 280){
menu.y = (menu.y + 7);
};
};
};
if (menu.blackTop.alpha >= 0){
menu.blackTop.alpha = (menu.blackTop.alpha - 0.03);
} else {
if (menu.blackTop.visible){
menu.blackTop.visible = false;
};
};
};
};
};
};
};
};
};
if (getChildIndex(bigCover) != (this.numChildren - 1)){
setChildIndex(bigCover, (this.numChildren - 1));
};
}
public function addLevel(_arg1:Number):void{
}
public function goIntro(_arg1:MouseEvent){
gotoAndStop("credits");
}
public function goMenu(_arg1:MouseEvent){
gotoAndStop("menu");
}
public function playAFunction(_arg1:MouseEvent){
gameState = "play";
if (_sharedObj.data.currentLevel > 0){
currentLevel = _sharedObj.data.currentLevel;
} else {
_sharedObj.data.currentLevel = 0;
currentLevel = 0;
};
_sharedObj.data.levelLayout = new Array();
var _local2:* = 1;
while (_local2 <= 33) {
_sharedObj.data.levelLayout.push("A");
_local2++;
};
myMap = ToString.breakString(this[("campainLevels" + _sharedObj.data.levelLayout[_sharedObj.data.currentLevel])][_sharedObj.data.currentLevel]);
gotoAndStop("game");
}
public function resetC(_arg1:MouseEvent){
_sharedObj.data.currentLevel = 0;
_sharedObj.data.levelLayout = new Array();
}
public function playBFunction(_arg1:MouseEvent){
gameState = "play";
if (_sharedObj.data.currentLevel > 0){
currentLevel = _sharedObj.data.currentLevel;
} else {
_sharedObj.data.currentLevel = 0;
currentLevel = 0;
};
_sharedObj.data.levelLayout = new Array();
var _local2:* = 1;
while (_local2 <= 33) {
_sharedObj.data.levelLayout.push("B");
_local2++;
};
myMap = ToString.breakString(this[("campainLevels" + _sharedObj.data.levelLayout[_sharedObj.data.currentLevel])][_sharedObj.data.currentLevel]);
gotoAndStop("game");
}
public function loadLevel(_arg1:Number){
var _local2:URLLoader = new URLLoader();
var _local3:URLVariables = new URLVariables();
var _local4:URLRequest = new URLRequest(((domain + "grabSingle.php?cachebuster=") + new Date().getTime()));
_local4.method = URLRequestMethod.POST;
_local3.levelID = _arg1;
_local4.data = _local3;
gotoAndStop("introTransition");
_local2.load(_local4);
_local2.addEventListener(Event.COMPLETE, parseLevel);
}
public function customLevel(_arg1:MouseEvent){
if (levelNum.text != ""){
loadLevel(Number(levelNum.text));
};
}
public function parseLevel(_arg1:Event){
var _local2:XML = new XML(_arg1.target.data);
if (_local2.level.levelCode.text() != "error"){
gameState = "multi";
trace(LZW.decompress(_local2.level.levelCode.text()));
trace("--");
myMap = ToString.breakString(LZW.decompress(_local2.level.levelCode.text()));
myID = _local2.level.levelID.text();
winFrame = "menu";
stopMusic();
gotoAndStop("game");
};
}
public function customLevelE(_arg1:MouseEvent){
var _local2:URLLoader;
var _local3:URLVariables;
var _local4:URLRequest;
if (levelNum.text != ""){
_local2 = new URLLoader();
_local3 = new URLVariables();
_local4 = new URLRequest(((domain + "grabSingle.php?cachebuster=") + new Date().getTime()));
_local4.method = URLRequestMethod.POST;
_local3.levelID = levelNum.text;
_local4.data = _local3;
_local2.load(_local4);
_local2.addEventListener(Event.COMPLETE, parseLevelE);
};
}
public function parseLevelE(_arg1:Event){
var _local2:XML = new XML(_arg1.target.data);
if (_local2.level.levelCode.text() != "error"){
gameState = "edit";
myMap = ToString.breakString(LZW.decompress(_local2.level.levelCode.text()));
myID = _local2.level.levelID.text();
trace(myMap);
winFrame = "menu";
gotoAndStop("game");
};
}
public function basicMap():void{
var _local3:Array;
var _local4:*;
var _local1:Array = [[294228, 10484272, 13762221], [28026, 9563894, 14481659], [0xAC7800, 16711098, 13100755], [50853, 9305331, 14155515], [513, 14563074, 16732934], [0x1B1B1B, 16636343, 16704187], [16587284, 16757937, 16767703], [16622343, 16768932, 16707025], [0x7D0300, 15661908, 16514492], [140172, 16643939, 16776650]];
myMap = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [], [4, 9, 1], [2], [], [], [], [], [], [], [], [], ["level text"]];
var _local2:* = 1;
while (_local2 <= 3) {
_local3 = _local1.splice(Math.floor((Math.random() * _local1.length)), 1);
_local4 = 0;
while (_local4 < _local3[0].length) {
myMap[1].push(_local3[0][_local4]);
trace(myMap[1]);
_local4++;
};
_local2++;
};
}
public function skipCred(_arg1:MouseEvent){
removeEventListener(MouseEvent.CLICK, skipCred);
introVid.stop();
skipB.x = 1000;
gotoAndStop("menu");
}
public function eraseAll(_arg1:MouseEvent){
_sharedObj.data.currentLevel = 0;
_sharedObj.data.levelLayout = new Array();
_sharedObj.data.skipInfo = new Array();
var _local2:Sound = new layer_change1();
_local2.play();
}
public function playFunction(_arg1:MouseEvent){
var _local2:*;
gameState = "play";
if (_sharedObj.data.currentLevel > 0){
currentLevel = _sharedObj.data.currentLevel;
} else {
_sharedObj.data.currentLevel = 0;
_sharedObj.data.skipInfo = new Array();
currentLevel = 0;
};
if (_sharedObj.data.levelLayout.length > 0){
} else {
_sharedObj.data.levelLayout = new Array();
_local2 = 1;
while (_local2 <= 33) {
if (Math.random() > 0.5){
_sharedObj.data.levelLayout.push("A");
} else {
_sharedObj.data.levelLayout.push("B");
};
_local2++;
};
};
myMap = ToString.breakString(this[("campainLevels" + _sharedObj.data.levelLayout[currentLevel])][_sharedObj.data.currentLevel]);
winFrame = "menu";
if (currentLevel == 0){
gotoAndStop("intro");
} else {
gotoAndStop("game");
};
playSoundFX("click");
stopMusic();
}
public function playSingle(_arg1:MouseEvent):void{
gameState = "single";
loadSingle(menu.levelCode.text, -1);
}
public function play2Function(_arg1:MouseEvent):void{
if (_sharedObj.data.currentLevel < 32){
return;
};
gameState = "play2";
if (_sharedObj.data.currentLevel2 > 0){
currentLevel2 = _sharedObj.data.currentLevel2;
} else {
_sharedObj.data.currentLevel2 = 0;
currentLevel2 = 0;
};
myMap = ToString.breakString(this.campainLevelsC[_sharedObj.data.currentLevel2]);
winFrame = "menu";
gotoAndStop("game");
playSoundFX("click");
stopMusic();
}
public function setMulti(){
gameState = "multi";
}
public function loadSingle(_arg1:String, _arg2:Number):void{
myMap = map.checkNewMap(_arg1);
myID = _arg2;
winFrame = "menu";
stopMusic();
gotoAndStop("game");
}
public function editorFunction(_arg1:MouseEvent){
gameState = "edit";
winFrame = "menu";
basicMap();
ToString.trace2DArray(ToString.breakString(ToString.makeString(myMap)));
gotoAndStop("game");
playSoundFX("click");
stopMusic();
}
public function playMultiFunction(_arg1:MouseEvent){
playSoundFX("click");
stopMusic();
gameState = "multiC";
_sharedObj.data.MultiCampain = new Array();
_sharedObj.data.MultiCampainID = new Array();
_sharedObj.data.MultiCampainRaw = new Array();
_sharedObj.data.skipInfoM = new Array();
_sharedObj.data.currentMultiLevel = 0;
currentLevel = 0;
getCampain();
loadCount = 0;
gotoAndStop("introTransition");
}
public function getCampain(){
var _local1:NewgroundsAPISaveGroupQuery;
trace(_sharedObj.data.MultiCampainID.length);
if (_sharedObj.data.MultiCampainID.length < 33){
_local1 = NewgroundsAPI.createSaveQuery("Levels");
_local1.resultsPerPage = 11;
_local1.includeRating("Difficulty");
_local1.includeRating("Overall Fun");
_local1.isRandomized = true;
_local1.sortOnRating("Difficulty", false);
_local1.addRatingCondition("Overall Fun", ">", 4.8);
trace("000000");
if (_sharedObj.data.MultiCampainID.length < 11){
trace("first");
_local1.addRatingCondition("Difficulty", "<=", 6);
_local1.addRatingCondition("Difficulty", ">", 4);
} else {
if (_sharedObj.data.MultiCampainID.length < 22){
trace("second");
_local1.addRatingCondition("Difficulty", "<=", 8);
_local1.addRatingCondition("Difficulty", ">", 6);
} else {
if (_sharedObj.data.MultiCampainID.length < 33){
trace("third");
_local1.addRatingCondition("Difficulty", "<=", 10);
_local1.addRatingCondition("Difficulty", ">", 8);
};
};
};
_local1.execute();
_local1.addEventListener(NewgroundsAPIEvent.QUERY_COMPLETE, campainDone);
} else {
_sharedObj.data.MultiCampainRaw[currentLevel].loadContents();
_sharedObj.data.MultiCampainRaw[currentLevel].addEventListener(NewgroundsAPIEvent.FILE_LOADED, firstLoad);
trace("-----");
trace(_sharedObj.data.MultiCampainRaw);
trace("-----");
};
}
public function campainDone(_arg1:NewgroundsAPIEvent){
trace(_arg1.data);
gameState = "multiC";
var _local2:Number = 0;
while (_local2 < _arg1.data.length) {
trace(_arg1.data[_local2].id);
_sharedObj.data.MultiCampainID.push(_arg1.data[_local2].id);
_sharedObj.data.MultiCampainRaw.push(_arg1.data[_local2]);
_local2++;
};
trace(_sharedObj.data.MultiCampainID.length);
trace(_sharedObj.data.MultiCampainRaw.length);
getCampain();
}
public function firstLoad(_arg1:NewgroundsAPIEvent){
trace(_arg1.data);
_sharedObj.data.MultiCampainRaw[currentLevel].removeEventListener(NewgroundsAPIEvent.FILE_LOADED, firstLoad);
trace(_arg1.data);
var _local2:Array = ToString.breakStringOld(_arg1.data);
var _local3:String = ToString.makeString(_local2);
_sharedObj.data.MultiCampain.push(_local3);
loadSingle(_local3, _sharedObj.data.MultiCampainID[currentLevel]);
}
public function goMain(){
menuPage = "main";
}
public function mouseHoverP(_arg1:MouseEvent){
playSoundFX("mouseover");
menuTgoto(2);
}
public function mouseHoverE(_arg1:MouseEvent){
playSoundFX("mouseover");
menuTgoto(3);
}
public function mouseHoverM(_arg1:MouseEvent){
playSoundFX("mouseover");
menuTgoto(5);
}
public function mouseHoverB(_arg1:MouseEvent){
playSoundFX("mouseover");
menuTgoto(4);
}
public function mouseHoverL(_arg1:MouseEvent){
playSoundFX("mouseover");
menuTgoto(6);
}
public function mouseHoverP2(_arg1:MouseEvent){
playSoundFX("mouseover");
menuTgoto(7);
}
public function playSoundFX(_arg1:String):void{
var _local2:Class = (getDefinitionByName(("com.game." + _arg1)) as Class);
var _local3:Sound = new (_local2);
if (musicTransform.volume > 0){
_local3.play();
};
}
public function menuTgoto(_arg1:Number):void{
if (currentLabel == "menu"){
menu.menuT.gotoAndStop(_arg1);
};
}
public function mouseExit(_arg1:MouseEvent){
menuTgoto(1);
}
public function goWG(_arg1:MouseEvent){
goURL("http://www.willinthecold.com/");
}
public function goEM(_arg1:MouseEvent){
goURL("http://edmundmcmillen.blogspot.com/");
}
public function goJK(_arg1:MouseEvent){
goURL("http://www.justinkarpel.com/");
}
public function goURL(_arg1:String):void{
navigateToURL(new URLRequest(_arg1), "_self");
}
public function preMultiLoad(_arg1:NewgroundsAPIEvent){
_sharedObj.data.MultiCampainRaw[currentLevel].removeEventListener(NewgroundsAPIEvent.FILE_LOADED, preMultiLoad);
var _local2:Array = ToString.breakStringOld(_arg1.data);
var _local3:String = ToString.makeString(_local2);
_sharedObj.data.MultiCampain.push(_local3);
}
public function skipIntro(_arg1:MouseEvent){
removeEventListener(MouseEvent.CLICK, skipIntro);
if (introStory){
introStory.stop();
};
skipB.x = 1000;
if (_sharedObj.data.currentLevel >= 32){
stopMusic();
gotoAndStop("menu");
} else {
gotoAndStop("game");
};
}
public function skipEnd(_arg1:MouseEvent){
removeEventListener(MouseEvent.CLICK, skipEnd);
if (endStory){
endStory.stop();
};
skipB.x = 1000;
stopMusic();
gotoAndStop("menu");
}
public function skipEnd2(_arg1:MouseEvent){
removeEventListener(MouseEvent.CLICK, skipEnd2);
if (endStory2){
endStory2.stop();
};
skipB.x = 1000;
stopMusic();
gotoAndStop("menu");
}
public function skipEnd3(_arg1:MouseEvent){
removeEventListener(MouseEvent.CLICK, skipEnd3);
if (endStory3){
endStory3.stop();
};
skipB.x = 1000;
stopMusic();
gotoAndStop("menu");
}
public function skipOut(_arg1:MouseEvent){
removeEventListener(MouseEvent.CLICK, skipOut);
if (outroStory){
outroStory.stop();
};
skipB.x = 1000;
stopMusic();
gotoAndStop("menu");
}
function frame1(){
API_Settings = {movie_id:9033, enc_key:"YDfeksIRu4h2PcgTpUeVm8biY3stSHik", movie_version:"1"};
newgroundsAPIconnector.initialize(API_Settings);
removeChild(newgroundsAPIconnector);
stage.scaleMode = StageScaleMode.NO_SCALE;
bigCover.mouseEnabled = false;
bigCover.mouseChildren = false;
myMenu = new ContextMenu();
myMenu.hideBuiltInItems();
menuItem1 = new ContextMenuItem("High Quality");
menuItem1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, doHigh);
menuItem2 = new ContextMenuItem("Low Quality");
menuItem2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, doLow);
myMenu.customItems.push(menuItem1);
myMenu.customItems.push(menuItem2);
this.contextMenu = myMenu;
introFXC = new SoundChannel();
introFX = new introField();
introFXC = introFX.play(0, 100000);
stop();
preCount = 0;
preCast = 100;
preBG.bg1.stop();
preBG.bg2.stop();
preBG.theHead.myParent = this;
addEventListener(Event.ENTER_FRAME, isLoading);
SteamReady = false;
unlockSteamAchievement = nosteam_debug_unlock;
if (!parent.parent){
parent.addEventListener(Event.ADDED_TO_STAGE, initSteamCalls);
} else {
initSteamCalls(null);
};
}
function frame2(){
play();
}
function frame4(){
mouseDown = false;
fVar = false;
uVar = false;
cVar = false;
kVar = false;
cheatCount = 0;
cheatCast = 30;
leftMove = false;
rightMove = false;
upMove = false;
upLook = false;
pickUp = false;
upReset = true;
downMove = false;
mapShift = false;
mapShiftReset = true;
gamePause = false;
shifted = false;
spinL = false;
spinR = false;
grav = true;
flip = false;
shiftHold = false;
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressedDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyPressedUp);
music = new SoundChannel();
musicTransform = new SoundTransform();
musicTransform.volume = 1;
musicPlaying = false;
muteCount = 0;
fxTransform = new SoundTransform();
fxTransform.volume = 1;
intro = new intro_menu();
gameS = new game_music();
gameIntro = new introLoop();
editS = new editLoop();
game2S = new game2_music();
menuPage = "main";
stage.addEventListener(MouseEvent.MOUSE_DOWN, mousePress);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseRelease);
domain = "http://s235504714.onlinehome.us/timefuck/";
myMap = new Array();
myID = 0;
_sharedObj = SharedObject.getLocal("TimeFuck");
if (!_sharedObj.data.currentLevel){
_sharedObj.data.currentLevel = 0;
};
if (!_sharedObj.data.levelLayout){
_sharedObj.data.levelLayout = new Array();
};
if (!_sharedObj.data.editIntro){
_sharedObj.data.editIntro = false;
};
if (!_sharedObj.data.skipInfo){
_sharedObj.data.skipInfo = new Array();
};
if (!_sharedObj.data.voteArray){
_sharedObj.data.voteArray = new Array();
};
loadCount = 0;
loadCast = (30 * 10.5);
stage.addEventListener(Event.ENTER_FRAME, wholeGame);
}
function frame5(){
currentLevel = 0;
currentLevel2 = 0;
campainLevelsA = ["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"];
campainLevelsB = ["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"];
campainTextA = ["Hey good lookin'! It's me... You! I'm in the next room texting you from the future! Creepy, I know. Anyway just go into the portal and you'll end up in the room I'm in. One sec. I'm getting a text from you in the next room... hmm, brb.", "There are always 2 sides to every story, a zero to every one. Change your perspective on life by switching dimensions. I know this to be true because you just told me about it a few minutes ago.", "Death is only in your mind friend. You can trust me. I mean you wouldn't lie to yourself would you? What good would that do? If you ever lied to me I'd kill you! LOL just kidding... you're already dead...", "I'm starting to feel stuck here. Why did we go inside the box? I only did it because you told me to! My palms are getting hot.", "Pushing through seems to be the only answer sometimes... well that and suicide... but we both know death doesn't exist on this plane.", "To get through life one must be willing to lift up heavy blocks!", "Keys, they do stuff. Remember that time we had fun? Because I don't.", "You don't have to carry a block for it to come with you. When you change dimensions, just standing close to it will do the trick. Just remember when a block is blinking at you.. that means it likes you!", "Ok, something is growing out of my head. I can't see it but I feel it growing. It's whispering....", "I've grown to accept our new growth. I named him Steven, as will you. He took his first steps around our skull last night.", "Oh man I'm feeling sick again. I'm going to lay down.", "I threw up a few times in the room you're in, sorry. I believe these portals are having a strange effect on Steven... I think he's Russian.", "Time only exists in the dimension you're in. Once you leave everything is simply put on hold for you till you get back... man we are so important!", "Oh that room has button things, they are easy to use. Hahaha, oh Steven is such a joy to have around. I let him chew on bullet shells.", "Those weird tiles don't play by the rules. They will follow you wherever you go... I hate people who are so needy!... grrrrrr.", "Do you think our actions here have some personal significance? Or do you think it's just being weird for weirds sake?", "Life in a box isn't so bad if you just hold your breath till you pass out. Hey, I think I hear you.. are you knocking on the walls?", "Someone else is here with us. I saw a man run by through a crack in Stevens skull. I think it was God.", "Did you notice that when you switch dimensions and there is a wall occupying the same area as you, you die? Well the same rule doesn't apply for blocks. In fact, blocks seems to break almost anything... including yourself!", "Steven is growing, his little legs tickle my brains! How the years fly by.", "I found the way out, but Steven informed me that I'm a failure and shouldn't be alive.. so now I'm dead. You die in the next room.", "Hey you didn't die? Hmm I guess we aren't as dead as I thought we were. I did trip on a piece of forever and fractured my skull once.. remember that?", "You can't make friends when you're locked up in a little box! Personally, I like it here because all people do is make me feel like I'm missing out on something... I never want to leave!", "Please stop playing this game. Every room that goes by is simply a reminder of my failures. I want to go home now and I cant till you give up.", "Steven is getting on my nerves... I think I hate him now. Yeah, I'm pretty sure he can read my mind too.. so we are basically screwed... man this is so awkward.", "Steven is threatening to leave... but how can he leave? With out my head he will have no place to call home. No body wants to take care of a homeless child.... give it up Steven.", "I'm starting to accept the fact that this game will never end. There's simply no way out of this. I haven't slept for weeks, and as the years go by my wrinkles grow deeper.", "Steven has left us. Things ended bad. I think I see him in the next room. He's flipping me off through the dimensional rift.", "I feel better now that Steven is gone... I cant help but feel like maybe I'm Steven and I have been lying to you this whole time...", "Who are we? Am I Steven or are you? I have memories that I know aren't mine... I know things are growing around me and I'm just moving too fast to appreciate them.", "Do you really want this to end? If it ends it's done for good. If it ends you can no longer complain about how hard things are getting or about the loss of Steven. I'm starting to remember things differently.", "In the next room you will die.", "Hey, it's me, you... or Steven. It doesn't matter either way... this is the room where you die. Take the pill to end it all and let me leave the box. Exiting through the portal to your right will only reset this message."];
campainTextB = ["Oh hello! Hey, I'm your future self! I'm in the next room right now.. this is pretty fun. Walk into that portal and we can meet one another. One sec. I'm getting a text from you in the next room... hmm, brb.", "You can't grow as a person if you don't accept that your reality doesn't apply to others. By changing dimensions you can view life from a new perspective. Deep stuff, I know!", "Hello! I'm you from a few rooms ahead... I got a reminder asking me to tell you to not worry about getting killed. Death doesn't exist here, nor does life.... Toodles!", "It feels like my brain is sloshing around in my skull. Kinda feels familiar, and in a way, comforting.", "I didn't really feel like messaging you today, but I got bitched out by me from the future.. so yeah. Anyway that room's easy enough. Just finish it so we can move on.", "Gotta love block pushing! Nothing better then that.... Not.", "The KEY to life is remembering you will eventually die. I wish I was dead...", "When a block is blinking that means it will stick with you when you switch dimensions. Touching it will make it blink... just be careful where you touch it...", "Umm, I found a lump. It's growing out of my head, kinda itchy.. Anyway, you'll see what I mean in the next room.", "Our little boils name is Steven. I know this because he told me so. He keeps telling me I'm filthy....", "Dude! those black holes really tug at your testies... Over and out!", "Steven is throwing up. He's hilarious!", "When you leave a dimension time comes with you. Things stuck in time remain in a stasis till you get back. Also when you close your eyes everyone else disappears!", "Buttons and doors... very original! I wish I could just give up and go home... I'm so sick of this, but I know if we leave Steven will die... we have to be strong for our child.", "The gear tiles follow you into any dimension as long as you're touching them. Kinda like us and our first girlfriend... LOLZ!", "Hey this is your past self. I'm stuck on the 4th level, can you help me out? Oh wait I'm getting a text from you... who's Steven?", "There is an old man screaming at me through the wall.. He kinda sounds like you.", "God doesn't exist. And neither do you.", "If you bring a block with you into another dimension and its placed over a wall tile, it will break it. It's a secret to everyone!", "Remember when we got our leg braces taken off? I don't, but Steven keeps talking about it. He says it has significance. ", "I think I'm in the same room as you are, can you see me? I'm looking at you from a crack in the monitor.", "Seeing God has changed me. Steven also seems excited by the news. If we follow God wont it just lead to death? ", "I like that we are locked in here forever. It pleases me to think about all the people who are missing us. That will show them for ignoring us when we were alive!", "Video games are a means of escape, like a drug. What are you escaping from?", "Steven is simply a sprite in a video game. And you are simply a pawn of God.", "Steven is giving me hickeys while I sleep. He tells me not to tell you about it though, is that weird?", "Have you accepted the fact that this game will never end? Or will it? Who are you really?", "Steven fell off and ran into a crack in the wall... I think he's staying with the guy in the next room to make me jealous.", "Steven said something weird to me before he left. He said your name is also Steven. Is that true? ", "Who am I speaking to? I just got into the box like you told me to, but I cant see a way out. One sec. I seem to be getting a text message.... brb.", "Who the hell are you!? I want out of this! It's been years and I cant find the way out. If you're getting this message don't let Steven go! He will lock you in here forever!", "Death is waiting for you in the next room.", "Hey, it's me, you... or Steven. It doesn't matter either way... this is the room where you die. Take the pill to end it all and let me leave the box. Exiting through the portal to your right will only reset this message."];
randomVocals = ["Stop whispering to me while I sleep...", "Do you think when we get out of here life will seem meaningless?", "I watch you when you sleep. Do you watch me?", "My teeth fell out again... the empty holes scream when I sleep.", "How long do babies sleep in the womb?", "I think I broke my arms, either that or I have more elbows.", "You're not as nice as I remember I was when I was you.", "How come you never write me back?", "We are stuck here forever.. there's no way out!", "I can't breath. The room Im in keeps getting smaller... are you pushing on the walls?", "Is there a man in the room with you? I think I saw an old man in that room your in.", "I can't help but think we don't exist.", "Is this a test or a punishment?", "Your life is meaningless", "I cant seem to control my actions. Who's pulling my strings?", "I am Error", "Pay me for the door repair!", "Help me, I'm in hell!", "AHHHHHHHHHHHHHHHHHHHHHHHHH!", "Hello? I just entered the box, can anyone help me?", "Dont believe Steven! He's lying to us!!!!", "Steven, this is your mom. I'm just texting you to remind you to fill up the gas tank before you get home. Drive safe.", "Hello? I'm stuck in a blue room with no portal. Can anyone hear me? I'm banging on the walls.", "Hey this is Ste..., I'm about to leave the bo... you need to reme... the onl.. o leave to box is... ist.. though the w... then... don't look back.", "I'm watching you....", "I found a note left by Steven... Oh... wait no, it's just a drawing of a naked lady.", "If you're reading this please help me. I'm stuck inside a wall... I can't breathe... Please, someone!?", "I found an arm and some fingers in the room I'm in. Do they belong to you?", "Hey, I'm in room two. There seems to be no way out.. and who's Steven?", "Turn back now Steven! You dont exist here, this box wasn't for you!", "Why do you think you're being punished?", "We are better off alone.", "I think I'm back in room 4... am I going backwards?", "Where are you? I can hear your voice but the room's so dark... Hello, am I touching you?", "Steven told me you're a liar...", "Who is this really? The man in room 6 said you can't be trusted.", "I'm stuck in a room with 100s of dead bodies.. they all look like us... He.. Don... No!!", "Sto..hile...ou. stil.. can... he wants you.. d... turn.. ac.. now!", "I feel so numb...", " ... ok this is a bit awkward, but i seem to have left my hands in the box. just joshing you... my hands are fine. but seriously if you find a set of hands in the next room tell them i love them.", "I saw you the other day, you were crawling on your hands and knees away from me... now im crawling like you were..", "when does this end? i cant find a way out of here, please someone respond to me! i want to go home!", "the skin on my neck is peeling away... i feel a face under the skin.. its mouth is moving...", "Ok who write Steven is Gay on the wall in this room! uncool...", "I just popped a zit and heard it scream... was that you?", "Why do you hate me Steven?", "I just friended you on facebook... you seem like a cool guy.", "I hate you, just wanted to point that out."];
deathVocals = ["Please stop.", "Oh, I remember that.", "Barf!", "Death is existence.", "He lives!", ".....", "Purgatory, my friend.", "6, 21, 3, 11", "Can I help you?", "Hello", "Memories!", "Sorry...", "...", "..", "....", "Amusing!", "F word!", "S word!", "C word!", "Deja vu", "Man... we are so screwed", "When you died I felt it... weird", "REDRUM!!!", "Dying tickles!", "I give up...", ":)", "B===D~~~", "Haw Haw", "Did your hands fall off?", "Dont worry, this is one of many small deaths.. the big one wont come till i allow it.", "Damn it, now i have a scar!", "Scabs! Scabs everywhere!!!!", "The bone is sticking out, its a good look for us.", "GAME OVER MAN!", "Ive lost faith in myself...", "This is getting old...", "Being a live is overrated anyway"];
campainLevelsC = ["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"];
campainTextC = ["Well, hello again Steven!, its me Steven! i know you are probably a bit upset about me leaving you in the box for all eternity, but i have some good news for you. As i was leaving i sent another one of us inside, so all you need to do is screw him over like i did to you and you are home free!", "Im feeling a bit guilty about leaving you in the box Steven, no hard feelings i hope. ive been drawing pictures of you dead on the walls of your room, it feels cathartic... is that weird?", "Is it you that is screaming? i hear a faint screaming coming from the scar on my head... did you need something?", "I slept in your bed last night with no clothes on, hope you dont mind. i would make it, but some might say you have already made it for yourself.. maybe you can find a way to sleep in it to... forever.", "Im getting older Steven, did you know that after you die your arms and legs keep growing? i wonder how tall you are...", "Seriously whats the point in trying Steven? i mean face it, you weren't ever good at it. Trying was diffidently not our strong suit. Do you ever think about why that is? sometimes i try to think about it but then just get hungry or sleepy... life is hard.", "I kinda miss you Steven... you remind me so much of myself. sometimes i go back and visit the box just so i can be closer to you, i also kick it when im upset.", "Man, the years are passing so fast Steven.. everyone is dying. i dont think you realize how lucky you have it being locked in your own little reality... honestly you have it good, sometimes i wish i was dead like you are.", "Ok i just entered the box, now what do i do? ... hello? i can hear screaming, but i cant see anything... its too dark.", "Soooo, whats up? im kinda lonely these days... i guess no one else ever really liked us, we really should face the facts.. we are the only ones who ever liked us... maybe i should come visit you some day?", "I found an old cat on the street today and put it in the box with you, im such a prankster. i think i saw you walk by when i tossed the cat inside.. was that you or just someone who looked like you?", "Why are we even doing this Steven.. we all know we are in love, its time to stop pretending... you NEED me. We are a team steven, we validate each others existances... without me you are just some loser in a box.", "Stop ignoring me Steven! i can see you every time i walk by the mirror, stop acting like i dont exist... its YOU that doesnt exist! not me, im real! im alive! you are the dead one not me!!!", "I was picking at our scar last night thinking about the day we met... remember that day steven? the day i told you to get into the box? i recorded myself dreaming last night to remind myself of who i used to be...", "Give it up steven! your silence isnt going to bother me! im just as valid without you as i was when you existed! you cant trick me anymore! i know this is a trick to get me to go back into the box... we arent as stupid as you think we are.", "I heard you knocking at my door last night, i know it was you, i saw you run away when i opened it. how did you get out of the box?", "Turns out the guy that came by last night wasnt you, it was just another steven... hes much cooler than you are. we are hanging out making fun of you, hahah oh steven... you so crazy.", "Me and Steven are taking the box to a pawn shop so we can score some money for drugs, we do drugs now, deal with it.", "Turns out the box isnt worth anything, im fact the store owner told us the box itself is worth millions, but the fact that you are inside it devalues it to nothing... we all had a good laugh about that at your expense.", "Last night Steven and i were taking turns hitting the box with a stick and your hands fell out of it, at least i think they are your hands, they looked pretty old and wrinkly.", "Another Steven came out of the box last night, Steven and i murdered him because we thought he was you, guess we were wrong.. either way he would have been a 3rd wheel.", "Steven was thinking last night, as long as steven holds my feet i could push inside the box just enough to punch your face then he could pull me back in... so, get ready!", "Did i hit you? when i put my head inside the box all i saw were corpses.. i punched like 4 of them in the face, was one of them you?", "I dont care if you ignore me anymore Steven, new Steven is much cooler than you and he thinks im just great! i would appreciate it if you'd write back though, im getting pretty old and am having a hard time remembering what you look like.", "Steven is dead, he died of old age... i pushed his body inside the box so you could make peace with him. i also put your hands back in the box too.. no hard feelings i hope.. i could really use someone to talk to.", "Im getting so old steven... my memories are so fuzzy, i cant ever remember why i was so upset with you anymore...", "Help me, someone, my hands are stuck inside a wall and im having a hard time breathing...", "Where are you steven? i woke up last night and i saw you watching me, i can hear your voice but i cant see you because its too dark in here.", "Im dying Steven, the doctor said its depression... luckily there is a pill to take that will cure it! cure it and everything else FOREVER!", "I took the doctors pill, im pretty sure i can see you.. are you staring at a wall? .. is someone with you? im having a hard time moving my legs.", "Im here Steven, i see you! please stop running from me im having a hard time keeping up with you...", "......... ... ..... ... .... ............ ... ..", ".... ... ...... .. ....... ...... .. ...... .. .. "];
}
function frame6(){
gotoAndStop("credits");
}
function frame7(){
stop();
introB.addEventListener(MouseEvent.CLICK, goIntro);
menuB.addEventListener(MouseEvent.CLICK, goMenu);
playAButton.addEventListener(MouseEvent.CLICK, playAFunction);
resetButton.addEventListener(MouseEvent.CLICK, resetC);
playBButton.addEventListener(MouseEvent.CLICK, playBFunction);
playCustom.addEventListener(MouseEvent.MOUSE_UP, customLevel);
editCustom.addEventListener(MouseEvent.MOUSE_UP, customLevelE);
}
function frame10(){
if (!musicPlaying){
musicPlaying = true;
music = intro.play(0, 10000);
music.soundTransform = musicTransform;
};
introVid = new introScroll();
introVid.x = 916;
introVid.y = 69;
introVid.myParent = this;
addChild(introVid);
stop();
skipB.x = 680;
skipB.addEventListener(MouseEvent.CLICK, skipCred);
setChildIndex(skipB, (this.numChildren - 1));
}
function frame11(){
if (gameMap){
removeChild(gameMap);
gameMap = null;
};
skipB.x = 1000;
if (!musicPlaying){
musicPlaying = true;
music = intro.play(0, 10000);
music.soundTransform = musicTransform;
};
if (endStory){
removeChild(endStory);
endStory = null;
};
if (endStory2){
removeChild(endStory2);
endStory2 = null;
};
if (outroStory){
removeChild(outroStory);
outroStory = null;
};
if (introVid){
removeChild(introVid);
introVid = null;
};
if (introStory){
removeChild(introStory);
introStory = null;
};
stop();
topAlpha = 1;
now = new Date();
curTime = now.getTime();
trace(curTime);
menu.blackTop.alpha = topAlpha;
menuPage = "main";
menu.playB.addEventListener(MouseEvent.CLICK, playFunction);
menu.playB.addEventListener(MouseEvent.ROLL_OVER, mouseHoverP);
menu.playB.addEventListener(MouseEvent.ROLL_OUT, mouseExit);
menu.editB.addEventListener(MouseEvent.CLICK, editorFunction);
menu.editB.addEventListener(MouseEvent.ROLL_OVER, mouseHoverE);
menu.editB.addEventListener(MouseEvent.ROLL_OUT, mouseExit);
trace(_sharedObj.data.currentLevel);
menu.play2B.visible = (_sharedObj.data.currentLevel >= 32);
menu.lockedB.visible = (_sharedObj.data.currentLevel < 32);
menu.lockedB.addEventListener(MouseEvent.ROLL_OVER, mouseHoverL);
menu.lockedB.addEventListener(MouseEvent.ROLL_OUT, mouseExit);
menu.play2B.addEventListener(MouseEvent.CLICK, play2Function);
menu.play2B.addEventListener(MouseEvent.ROLL_OVER, mouseHoverP2);
menu.play2B.addEventListener(MouseEvent.ROLL_OUT, mouseExit);
menu.multiB.addEventListener(MouseEvent.CLICK, playMultiFunction);
menu.multiB.addEventListener(MouseEvent.ROLL_OVER, mouseHoverM);
menu.multiB.addEventListener(MouseEvent.ROLL_OUT, mouseExit);
menu.browseB.addEventListener(MouseEvent.CLICK, playSingle);
menu.browseB.addEventListener(MouseEvent.ROLL_OVER, mouseHoverB);
menu.browseB.addEventListener(MouseEvent.ROLL_OUT, mouseExit);
menu.eraseB.addEventListener(MouseEvent.CLICK, eraseAll);
menu.WGB.addEventListener(MouseEvent.CLICK, goWG);
menu.EMB.addEventListener(MouseEvent.CLICK, goEM);
menu.JKB.addEventListener(MouseEvent.CLICK, goJK);
}
function frame12(){
stop();
if (!musicPlaying){
musicPlaying = true;
if (gameState == "edit"){
music = editS.play(0, 10000);
} else {
if (gameState == "play2"){
music = game2S.play(0, 10000);
} else {
if (currentLevel > 8){
music = gameS.play(0, 10000);
soundLoop = "main";
} else {
music = gameIntro.play(0, 10000);
};
};
};
music.soundTransform = musicTransform;
};
if (introStory){
removeChild(introStory);
introStory = null;
};
mapShift = false;
trace(gameState);
if (gameState == "multiC"){
trace("win");
if ((((_sharedObj.data.MultiCampainRaw.length > (_sharedObj.data.currentMultiLevel + 1))) && ((_sharedObj.data.currentMultiLevel == currentLevel)))){
trace("grab new");
_sharedObj.data.MultiCampainRaw[(currentLevel + 1)].loadContents();
_sharedObj.data.MultiCampainRaw[(currentLevel + 1)].addEventListener(NewgroundsAPIEvent.FILE_LOADED, preMultiLoad);
};
};
stage.focus = stage;
if (((myMap) || (!((myMap == null))))){
trace(myMap);
gameMap = new map(this, myMap, myID);
addChild(gameMap);
} else {
gotoAndStop("menu");
};
}
function frame13(){
gotoAndStop("menu");
}
function frame14(){
stage.focus = stage;
if (gameMap){
removeChild(gameMap);
gameMap = null;
};
if (gameState != "edit"){
if ((((soundLoop == "main")) && ((currentLevel < 8)))){
stopMusic();
soundLoop = null;
} else {
if ((((soundLoop == null)) && ((currentLevel >= 8)))){
stopMusic();
soundLoop = "main";
};
};
};
if (gameState == "play"){
if (currentLevel < (campainLevelsA.length - 1)){
currentLevel++;
if (currentLevel > 9){
unlockSteamAchievement("_tf1");
};
if (currentLevel > 22){
unlockSteamAchievement("_tf2");
};
if (currentLevel > 28){
unlockSteamAchievement("_tf3");
};
if (currentLevel > _sharedObj.data.currentLevel){
_sharedObj.data.currentLevel = currentLevel;
};
trace(currentLevel);
myMap = ToString.breakString(this[("campainLevels" + _sharedObj.data.levelLayout[currentLevel])][currentLevel]);
gotoAndStop("game");
} else {
gotoAndStop("menu");
};
};
if (gameState == "play2"){
if (currentLevel2 < (campainLevelsC.length - 1)){
currentLevel2++;
if (currentLevel2 > _sharedObj.data.currentLevel2){
_sharedObj.data.currentLevel2 = currentLevel2;
};
trace(currentLevel2);
myMap = ToString.breakString(this.campainLevelsC[currentLevel2]);
gotoAndStop("game");
} else {
unlockSteamAchievement("_tfbeatch2");
gotoAndStop("menu");
};
} else {
if (gameState == "multiC"){
trace("setting next");
if (currentLevel < (_sharedObj.data.MultiCampainID.length - 1)){
currentLevel++;
if (currentLevel > _sharedObj.data.currentMultiLevel){
_sharedObj.data.currentMultiLevel = currentLevel;
};
trace("--");
myMap = ToString.breakString(_sharedObj.data.MultiCampain[currentLevel]);
myID = _sharedObj.data.MultiCampainID[currentLevel];
gotoAndStop("game");
} else {
unlockSteamAchievement("_tfbeatunknown");
gotoAndStop("menu");
};
};
};
}
function frame15(){
stop();
if (menu){
removeChild(menu);
menu = null;
};
GlobalVarContainer.vars.headFlag = 0;
if (!musicPlaying){
musicPlaying = true;
music = gameIntro.play(0, 10000);
music.soundTransform = musicTransform;
};
introStory = new Story_Intro();
introStory.x = 348;
introStory.y = 224;
introStory.myParent = this;
addChild(introStory);
if (_sharedObj.data.currentLevel >= 32){
introStory.gotoAndPlay("postIntro");
};
if (endStory){
removeChild(endStory);
endStory = null;
};
if (endStory2){
removeChild(endStory2);
endStory2 = null;
};
if (outroStory){
removeChild(outroStory);
outroStory = null;
};
skipB.x = 680;
skipB.addEventListener(MouseEvent.CLICK, skipIntro);
setChildIndex(skipB, (this.numChildren - 1));
}
function frame18(){
stop();
if (gameMap){
removeChild(gameMap);
gameMap = null;
};
endText = 2;
endStory = new Story_End();
endStory.x = 341;
endStory.y = 215;
endStory.scaleX = 1.12;
endStory.scaleY = endStory.scaleX;
endStory.myParent = this;
addChild(endStory);
unlockSteamAchievement("_tfendgood");
skipB.x = 680;
skipB.addEventListener(MouseEvent.CLICK, skipEnd);
setChildIndex(skipB, (this.numChildren - 1));
}
function frame19(){
stop();
if (gameMap){
removeChild(gameMap);
gameMap = null;
};
endText = 1;
endStory2 = new Story_End2();
endStory2.x = 341;
endStory2.y = 215;
endStory2.scaleX = 1.12;
endStory2.scaleY = endStory2.scaleX;
endStory2.myParent = this;
addChild(endStory2);
unlockSteamAchievement("_tfendbad");
skipB.x = 680;
skipB.addEventListener(MouseEvent.CLICK, skipEnd2);
setChildIndex(skipB, (this.numChildren - 1));
}
function frame20(){
stop();
if (gameMap){
removeChild(gameMap);
gameMap = null;
};
endText = 3;
endStory3 = new Story_End3();
endStory3.x = 341;
endStory3.y = 215;
endStory3.scaleX = 1.12;
endStory3.scaleY = endStory3.scaleX;
endStory3.myParent = this;
addChild(endStory3);
unlockSteamAchievement("_tfbeatch2");
skipB.x = 680;
skipB.addEventListener(MouseEvent.CLICK, skipEnd3);
setChildIndex(skipB, (this.numChildren - 1));
}
function frame21(){
stop();
if (endStory){
removeChild(endStory);
endStory = null;
};
if (endStory2){
removeChild(endStory2);
endStory2 = null;
};
if (endStory3){
removeChild(endStory3);
endStory3 = null;
};
outroStory = new Story_Outro();
outroStory.x = 348;
outroStory.y = 224;
outroStory.myParent = this;
if (endText == 3){
outroStory.gotoAndPlay("credits");
};
addChild(outroStory);
skipB.x = 680;
skipB.addEventListener(MouseEvent.CLICK, skipOut);
setChildIndex(skipB, (this.numChildren - 1));
}
}
}//package game_new_fla
Section 221
//mapDot_144 (game_new_fla.mapDot_144)
package game_new_fla {
import flash.display.*;
public dynamic class mapDot_144 extends MovieClip {
public function mapDot_144(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_new_fla
Section 222
//portalend1_57 (game_new_fla.portalend1_57)
package game_new_fla {
import flash.display.*;
public dynamic class portalend1_57 extends MovieClip {
public function portalend1_57(){
addFrameScript(24, frame25);
}
function frame25(){
stop();
}
}
}//package game_new_fla
Section 223
//portalend2_182 (game_new_fla.portalend2_182)
package game_new_fla {
import flash.display.*;
public dynamic class portalend2_182 extends MovieClip {
public function portalend2_182(){
addFrameScript(25, frame26);
}
function frame26(){
stop();
}
}
}//package game_new_fla
Section 224
//portalend3_181 (game_new_fla.portalend3_181)
package game_new_fla {
import flash.display.*;
public dynamic class portalend3_181 extends MovieClip {
public function portalend3_181(){
addFrameScript(18, frame19);
}
function frame19(){
stop();
}
}
}//package game_new_fla
Section 225
//preHolder_16 (game_new_fla.preHolder_16)
package game_new_fla {
import flash.display.*;
public dynamic class preHolder_16 extends MovieClip {
public function preHolder_16(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_new_fla
Section 226
//scoreButtoncopy_218 (game_new_fla.scoreButtoncopy_218)
package game_new_fla {
import flash.display.*;
public dynamic class scoreButtoncopy_218 extends MovieClip {
public function scoreButtoncopy_218(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_new_fla
Section 227
//scoreFaces_102 (game_new_fla.scoreFaces_102)
package game_new_fla {
import flash.display.*;
public dynamic class scoreFaces_102 extends MovieClip {
public function scoreFaces_102(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_new_fla
Section 228
//sleep_186 (game_new_fla.sleep_186)
package game_new_fla {
import flash.display.*;
public dynamic class sleep_186 extends MovieClip {
public function sleep_186(){
addFrameScript(63, frame64);
}
function frame64(){
stop();
}
}
}//package game_new_fla
Section 229
//textshit_142 (game_new_fla.textshit_142)
package game_new_fla {
import flash.display.*;
public dynamic class textshit_142 extends MovieClip {
public function textshit_142(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_new_fla
Section 230
//tileButton_220 (game_new_fla.tileButton_220)
package game_new_fla {
import flash.display.*;
public dynamic class tileButton_220 extends MovieClip {
public var green:MovieClip;
public var door:MovieClip;
public var doorKey:MovieClip;
public function tileButton_220(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_new_fla
Section 231
//titletext_52 (game_new_fla.titletext_52)
package game_new_fla {
import flash.display.*;
public dynamic class titletext_52 extends MovieClip {
public function titletext_52(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_new_fla
Section 232
//testpattern01 (testpattern01)
package {
import flash.display.*;
public dynamic class testpattern01 extends MovieClip {
public function testpattern01(){
addFrameScript(115, frame116);
}
function frame116(){
stop();
}
}
}//package
Section 233
//testpattern02 (testpattern02)
package {
import flash.display.*;
public dynamic class testpattern02 extends MovieClip {
public function testpattern02(){
addFrameScript(81, frame82);
}
function frame82(){
stop();
}
}
}//package
Section 234
//testpattern03 (testpattern03)
package {
import flash.display.*;
public dynamic class testpattern03 extends MovieClip {
public function testpattern03(){
addFrameScript(115, frame116);
}
function frame116(){
stop();
}
}
}//package