Section 1
//MatrixTransformer (fl.motion.MatrixTransformer)
package fl.motion {
import flash.geom.*;
public class MatrixTransformer {
public static function getSkewY(_arg1:Matrix):Number{
return ((Math.atan2(_arg1.b, _arg1.a) * (180 / Math.PI)));
}
public static function getScaleX(_arg1:Matrix):Number{
return (Math.sqrt(((_arg1.a * _arg1.a) + (_arg1.b * _arg1.b))));
}
public static function getScaleY(_arg1:Matrix):Number{
return (Math.sqrt(((_arg1.c * _arg1.c) + (_arg1.d * _arg1.d))));
}
public static function setSkewXRadians(_arg1:Matrix, _arg2:Number):void{
var _local3:Number;
_local3 = getScaleY(_arg1);
_arg1.c = (-(_local3) * Math.sin(_arg2));
_arg1.d = (_local3 * Math.cos(_arg2));
}
public static function setRotation(_arg1:Matrix, _arg2:Number):void{
setRotationRadians(_arg1, (_arg2 * (Math.PI / 180)));
}
public static function rotateAroundInternalPoint(_arg1:Matrix, _arg2:Number, _arg3:Number, _arg4:Number):void{
var _local5:Point;
_local5 = new Point(_arg2, _arg3);
_local5 = _arg1.transformPoint(_local5);
_arg1.tx = (_arg1.tx - _local5.x);
_arg1.ty = (_arg1.ty - _local5.y);
_arg1.rotate((_arg4 * (Math.PI / 180)));
_arg1.tx = (_arg1.tx + _local5.x);
_arg1.ty = (_arg1.ty + _local5.y);
}
public static function setSkewX(_arg1:Matrix, _arg2:Number):void{
setSkewXRadians(_arg1, (_arg2 * (Math.PI / 180)));
}
public static function setSkewY(_arg1:Matrix, _arg2:Number):void{
setSkewYRadians(_arg1, (_arg2 * (Math.PI / 180)));
}
public static function setScaleX(_arg1:Matrix, _arg2:Number):void{
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local3 = getScaleX(_arg1);
if (_local3){
_local4 = (_arg2 / _local3);
_arg1.a = (_arg1.a * _local4);
_arg1.b = (_arg1.b * _local4);
} else {
_local5 = getSkewYRadians(_arg1);
_arg1.a = (Math.cos(_local5) * _arg2);
_arg1.b = (Math.sin(_local5) * _arg2);
};
}
public static function setScaleY(_arg1:Matrix, _arg2:Number):void{
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local3 = getScaleY(_arg1);
if (_local3){
_local4 = (_arg2 / _local3);
_arg1.c = (_arg1.c * _local4);
_arg1.d = (_arg1.d * _local4);
} else {
_local5 = getSkewXRadians(_arg1);
_arg1.c = (-(Math.sin(_local5)) * _arg2);
_arg1.d = (Math.cos(_local5) * _arg2);
};
}
public static function setRotationRadians(_arg1:Matrix, _arg2:Number):void{
var _local3:Number;
var _local4:Number;
_local3 = getRotationRadians(_arg1);
_local4 = getSkewXRadians(_arg1);
setSkewXRadians(_arg1, ((_local4 + _arg2) - _local3));
setSkewYRadians(_arg1, _arg2);
}
public static function setSkewYRadians(_arg1:Matrix, _arg2:Number):void{
var _local3:Number;
_local3 = getScaleX(_arg1);
_arg1.a = (_local3 * Math.cos(_arg2));
_arg1.b = (_local3 * Math.sin(_arg2));
}
public static function getSkewX(_arg1:Matrix):Number{
return ((Math.atan2(-(_arg1.c), _arg1.d) * (180 / Math.PI)));
}
public static function getSkewYRadians(_arg1:Matrix):Number{
return (Math.atan2(_arg1.b, _arg1.a));
}
public static function getSkewXRadians(_arg1:Matrix):Number{
return (Math.atan2(-(_arg1.c), _arg1.d));
}
public static function getRotation(_arg1:Matrix):Number{
return ((getRotationRadians(_arg1) * (180 / Math.PI)));
}
public static function rotateAroundExternalPoint(_arg1:Matrix, _arg2:Number, _arg3:Number, _arg4:Number):void{
_arg1.tx = (_arg1.tx - _arg2);
_arg1.ty = (_arg1.ty - _arg3);
_arg1.rotate((_arg4 * (Math.PI / 180)));
_arg1.tx = (_arg1.tx + _arg2);
_arg1.ty = (_arg1.ty + _arg3);
}
public static function getRotationRadians(_arg1:Matrix):Number{
return (getSkewYRadians(_arg1));
}
public static function matchInternalPointWithExternal(_arg1:Matrix, _arg2:Point, _arg3:Point):void{
var _local4:Point;
var _local5:Number;
var _local6:Number;
_local4 = _arg1.transformPoint(_arg2);
_local5 = (_arg3.x - _local4.x);
_local6 = (_arg3.y - _local4.y);
_arg1.tx = (_arg1.tx + _local5);
_arg1.ty = (_arg1.ty + _local6);
}
}
}//package fl.motion
Section 2
//cover_3 (game_fla.cover_3)
package game_fla {
import flash.display.*;
public dynamic class cover_3 extends MovieClip {
public var k1:MovieClip;
public var k2:MovieClip;
public var k3:MovieClip;
public var h1:MovieClip;
public var h2:MovieClip;
}
}//package game_fla
Section 3
//hpbase_6 (game_fla.hpbase_6)
package game_fla {
import flash.display.*;
public dynamic class hpbase_6 extends MovieClip {
public function hpbase_6(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_fla
Section 4
//hpmc_5 (game_fla.hpmc_5)
package game_fla {
import flash.display.*;
public dynamic class hpmc_5 extends MovieClip {
public var hp1:MovieClip;
public var hp3:MovieClip;
public var hp4:MovieClip;
public var hp5:MovieClip;
public var mymap:MovieClip;
public var hp2:MovieClip;
public function hpmc_5(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_fla
Section 5
//logo_8 (game_fla.logo_8)
package game_fla {
import flash.display.*;
public dynamic class logo_8 extends MovieClip {
public var anim:MovieClip;
public function logo_8(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_fla
Section 6
//logoanim_9 (game_fla.logoanim_9)
package game_fla {
import flash.display.*;
public dynamic class logoanim_9 extends MovieClip {
public function logoanim_9(){
addFrameScript(20, frame21, 40, frame41);
}
function frame21(){
stop();
}
function frame41(){
stop();
}
}
}//package game_fla
Section 7
//MainTimeline (game_fla.MainTimeline)
package game_fla {
import flash.display.*;
public dynamic class MainTimeline extends MovieClip {
public var myPre:Preloader;
public var mygame:Game;
public function MainTimeline(){
addFrameScript(0, frame1, 2, frame3);
}
function frame3(){
mygame = new Game(this);
stop();
}
function frame1(){
myPre = new Preloader(this);
}
}
}//package game_fla
Section 8
//menumc_12 (game_fla.menumc_12)
package game_fla {
import flash.display.*;
public dynamic class menumc_12 extends MovieClip {
public var menubut:SimpleButton;
}
}//package game_fla
Section 9
//soundoptions_13 (game_fla.soundoptions_13)
package game_fla {
import flash.display.*;
public dynamic class soundoptions_13 extends MovieClip {
public function soundoptions_13(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_fla
Section 10
//sounds_mc_14 (game_fla.sounds_mc_14)
package game_fla {
import flash.display.*;
public dynamic class sounds_mc_14 extends MovieClip {
public function sounds_mc_14(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package game_fla
Section 11
//startmenu_10 (game_fla.startmenu_10)
package game_fla {
import flash.display.*;
public dynamic class startmenu_10 extends MovieClip {
public var namebut:SimpleButton;
public var scorebut:SimpleButton;
public var loadbut:SimpleButton;
public var startbut:SimpleButton;
}
}//package game_fla
Section 12
//MochiScores (mochi.MochiScores)
package mochi {
import flash.display.*;
import flash.text.*;
public class MochiScores {
private static var boardID:String;
public static var onErrorHandler:Object;
public static var onCloseHandler:Object;
public static function showLeaderboard(_arg1:Object=null):void{
var options = _arg1;
if (options != null){
if (options.clip != null){
if ((options.clip is Sprite)){
MochiServices.setContainer(options.clip);
};
delete options.clip;
} else {
MochiServices.setContainer();
};
MochiServices.stayOnTop();
if (options.name != null){
if ((options.name is TextField)){
if (options.name.text.length > 0){
options.name = options.name.text;
};
};
};
if (options.score != null){
if ((options.score is TextField)){
if (options.score.text.length > 0){
options.score = options.score.text;
};
};
};
if (options.onDisplay != null){
options.onDisplay();
} else {
if (MochiServices.clip != null){
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onDisplay.");
};
};
};
} else {
options = {};
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onDisplay.");
};
};
if (options.onClose != null){
onCloseHandler = options.onClose;
} else {
onCloseHandler = function ():void{
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.play();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onClose.");
};
};
};
if (options.onError != null){
onErrorHandler = options.onError;
} else {
onErrorHandler = null;
};
if (options.boardID == null){
if (MochiScores.boardID != null){
options.boardID = MochiScores.boardID;
};
};
MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose);
}
public static function closeLeaderboard():void{
MochiServices.send("scores_closeLeaderboard");
}
public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{
MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2);
}
public static function requestList(_arg1:Object, _arg2:Object=null):void{
MochiServices.send("scores_requestList", null, _arg1, _arg2);
}
public static function scoresArrayToObjects(_arg1:Object):Object{
var _local2:Object;
var _local3:Number;
var _local4:Number;
var _local5:Object;
var _local6:Object;
var _local7:String;
var _local8:String;
_local2 = {};
for (_local7 in _arg1) {
if (typeof(_arg1[_local7]) == "object"){
if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){
_local2[_local7] = [];
_local5 = _arg1[_local7];
_local4 = 0;
while (_local4 < _local5.rows.length) {
_local6 = {};
_local3 = 0;
while (_local3 < _local5.cols.length) {
_local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3];
_local3++;
};
_local2[_local7].push(_local6);
_local4++;
};
} else {
_local2[_local7] = {};
for (_local8 in _arg1[_local7]) {
_local2[_local7][_local8] = _arg1[_local7][_local8];
};
};
} else {
_local2[_local7] = _arg1[_local7];
};
};
return (_local2);
}
public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{
MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4);
}
public static function onClose(_arg1:Object=null):void{
if (_arg1 != null){
if (_arg1.error != null){
if (_arg1.error == true){
if (onErrorHandler != null){
if (_arg1.errorCode == null){
_arg1.errorCode = "IOError";
};
onErrorHandler(_arg1.errorCode);
MochiServices.doClose();
return;
};
};
};
};
onCloseHandler();
MochiServices.doClose();
}
public static function setBoardID(_arg1:String):void{
MochiScores.boardID = _arg1;
MochiServices.send("scores_setBoardID", {boardID:_arg1});
}
}
}//package mochi
Section 13
//MochiServices (mochi.MochiServices)
package mochi {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
public class MochiServices {
private static var _container:Object;
private static var _connected:Boolean = false;
private static var _swfVersion:String;
private static var _sendChannel:LocalConnection;
private static var _rcvChannelName:String;
private static var _gatewayURL:String = "http://www.mochiads.com/static/lib/services/services.swf";
private static var _clip:MovieClip;
private static var _loader:Loader;
private static var _id:String;
private static var _listenChannel:LocalConnection;
private static var _timer:Timer;
private static var _sendChannelName:String;
private static var _startTime:Number;
private static var _connecting:Boolean = false;
public static var onError:Object;
private static var _listenChannelName:String = "__mochiservices";
private static var _rcvChannel:LocalConnection;
public static function isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{
if (_connected){
_sendChannel.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID});
} else {
if ((((_clip == null)) || (!(_connecting)))){
onError("NotConnected");
handleError(_arg2, _arg3, _arg4);
flush(true);
return;
};
_clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID});
};
if (_clip != null){
if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){
_clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4};
_clip._nextcallbackID++;
};
};
}
public static function get connected():Boolean{
return (_connected);
}
private static function flush(_arg1:Boolean):void{
var _local2:Object;
var _local3:Object;
if (_clip != null){
if (_clip._queue != null){
while (_clip._queue.length > 0) {
_local2 = _clip._queue.shift();
_local3 = null;
if (_local2 != null){
if (_local2.callbackID != null){
_local3 = _clip._callbacks[_local2.callbackID];
};
delete _clip._callbacks[_local2.callbackID];
if (((_arg1) && (!((_local3 == null))))){
handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod);
};
};
};
};
};
}
private static function init(_arg1:String, _arg2:Object):void{
_id = _arg1;
if (_arg2 != null){
_container = _arg2;
loadCommunicator(_arg1, _container);
};
}
public static function get childClip():Object{
return (_clip);
}
public static function get id():String{
return (_id);
}
public static function stayOnTop():void{
_container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true);
if (_clip != null){
_clip.visible = true;
};
}
public static function getVersion():String{
return ("1.31");
}
public static function disconnect():void{
if (((_connected) || (_connecting))){
if (_clip != null){
if (_clip.parent != null){
if ((_clip.parent is Sprite)){
Sprite(_clip.parent).removeChild(_clip);
_clip = null;
};
};
};
_connecting = (_connected = false);
flush(true);
try {
_listenChannel.close();
_rcvChannel.close();
} catch(error:Error) {
};
};
if (_timer != null){
try {
_timer.stop();
} catch(error:Error) {
};
};
}
public static function allowDomains(_arg1:String):String{
var _local2:String;
Security.allowDomain("*");
Security.allowInsecureDomain("*");
if (_arg1.indexOf("http://") != -1){
_local2 = _arg1.split("/")[2].split(":")[0];
Security.allowDomain(_local2);
Security.allowInsecureDomain(_local2);
};
return (_local2);
}
public static function doClose():void{
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
if (_clip.parent != null){
Sprite(_clip.parent).removeChild(_clip);
};
}
public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{
if (_arg1 != null){
if ((_arg1 is Sprite)){
_container = _arg1;
};
};
if (_arg2){
if ((_container is Sprite)){
Sprite(_container).addChild(_clip);
};
};
}
private static function onStatus(_arg1:StatusEvent):void{
switch (_arg1.level){
case "error":
_connected = false;
_listenChannel.connect(_listenChannelName);
break;
};
}
private static function initComChannels():void{
if (!_connected){
_sendChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus);
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_container, version:getVersion()});
_rcvChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus);
_clip.onReceive = function (_arg1:Object):void{
var cb:String;
var cblst:Object;
var method:*;
var methodName:String;
var obj:Object;
var pkg = _arg1;
cb = pkg.callbackID;
cblst = this.client._callbacks[cb];
if (!cblst){
return;
};
method = cblst.callbackMethod;
methodName = "";
obj = cblst.callbackObject;
if (((obj) && ((typeof(method) == "string")))){
methodName = method;
if (obj[method] != null){
method = obj[method];
} else {
trace((("Error: Method " + method) + " does not exist."));
};
};
if (method != undefined){
try {
method.apply(obj, pkg.args);
} catch(error:Error) {
trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString()));
};
} else {
if (obj != null){
try {
obj(pkg.args);
} catch(error:Error) {
trace(("Error invoking method on object: " + error.toString()));
};
};
};
delete this.client._callbacks[cb];
};
_clip.onError = function ():void{
MochiServices.onError("IOError");
};
_rcvChannel.connect(_rcvChannelName);
trace("connected!");
_connecting = false;
_connected = true;
_listenChannel.close();
while (_clip._queue.length > 0) {
_sendChannel.send(_sendChannelName, "onReceive", _clip._queue.shift());
};
};
}
private static function listen():void{
_listenChannel = new LocalConnection();
_listenChannel.client = _clip;
_clip.handshake = function (_arg1:Object):void{
MochiServices.comChannelName = _arg1.newChannel;
};
_listenChannel.allowDomain("*", "localhost");
_listenChannel.allowInsecureDomain("*", "localhost");
_listenChannel.connect(_listenChannelName);
trace("Waiting for MochiAds services to connect...");
}
private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{
var args = _arg1;
var callbackObject = _arg2;
var callbackMethod = _arg3;
if (args != null){
if (args.onError != null){
args.onError.apply(null, ["NotConnected"]);
};
};
if (callbackMethod != null){
args = {};
args.error = true;
args.errorCode = "NotConnected";
if (((!((callbackObject == null))) && ((callbackMethod is String)))){
try {
var _local5 = callbackObject;
_local5[callbackMethod](args);
} catch(error:Error) {
};
} else {
if (callbackMethod != null){
try {
callbackMethod.apply(args);
} catch(error:Error) {
};
};
};
};
}
public static function get clip():Object{
return (_container);
}
public static function set comChannelName(_arg1:String):void{
if (_arg1 != null){
if (_arg1.length > 3){
_sendChannelName = (_arg1 + "_fromgame");
_rcvChannelName = _arg1;
initComChannels();
};
};
}
private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{
var clipname:String;
var f:Function;
var req:URLRequest;
var id = _arg1;
var clip = _arg2;
clipname = ("_mochiservices_com_" + id);
if (_clip != null){
return (_clip);
};
if (!MochiServices.isNetworkAvailable()){
return (null);
};
MochiServices.allowDomains(_gatewayURL);
_clip = createEmptyMovieClip(clip, clipname, 10336, false);
_loader = new Loader();
_timer = new Timer(1000, 0);
_startTime = getTimer();
_timer.addEventListener(TimerEvent.TIMER, connectWait);
_timer.start();
f = function (_arg1:Object):void{
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load.");
MochiServices.disconnect();
MochiServices.onError("IOError");
};
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f);
req = new URLRequest(_gatewayURL);
_loader.load(req);
_clip.addChild(_loader);
_clip._mochiservices_com = _loader;
_sendChannel = new LocalConnection();
_clip._queue = [];
_rcvChannel = new LocalConnection();
_rcvChannel.allowDomain("*", "localhost");
_rcvChannel.allowInsecureDomain("*", "localhost");
_rcvChannel.client = _clip;
_clip._nextcallbackID = 0;
_clip._callbacks = {};
listen();
return (_clip);
}
public static function bringToTop(_arg1:Event):void{
var e = _arg1;
if (MochiServices.clip != null){
if (MochiServices.childClip != null){
try {
if (MochiServices.clip.numChildren > 1){
MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1));
};
} catch(errorObject:Error) {
trace("Warning: Depth sort error.");
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
};
};
};
}
public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{
var id = _arg1;
var clip = _arg2;
var onError = _arg3;
if ((clip is DisplayObject)){
if (((!(_connected)) && ((_clip == null)))){
trace("MochiServices Connecting...");
_connecting = true;
init(id, clip);
};
} else {
trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage.");
};
if (onError != null){
MochiServices.onError = onError;
} else {
if (MochiServices.onError == null){
MochiServices.onError = function (_arg1:String):void{
trace(_arg1);
};
};
};
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Boolean=true):MovieClip{
var mc:MovieClip;
var parent = _arg1;
var name = _arg2;
var depth = _arg3;
var doAdd = _arg4;
mc = new MovieClip();
if (doAdd){
if (((false) && (depth))){
parent.addChildAt(mc, depth);
} else {
parent.addChild(mc);
};
};
try {
parent[name] = mc;
} catch(e:Error) {
throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
};
mc["_name"] = name;
return (mc);
}
public static function connectWait(_arg1:TimerEvent):void{
if ((getTimer() - _startTime) > 10000){
if (!_connected){
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load.");
MochiServices.disconnect();
MochiServices.onError("IOError");
};
_timer.stop();
};
}
}
}//package mochi
Section 14
//backbmp (backbmp)
package {
import flash.display.*;
public dynamic class backbmp extends BitmapData {
public function backbmp(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 15
//Game (Game)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import mochi.*;
import fl.motion.*;
import flash.net.*;
import flash.ui.*;
public class Game {
private var pt:Point;
private var mySoundsCh:Object;
private var maps:Object;
public var myClip:mainGraphics;
private var matrx:Matrix;
private var movingObClip:Sprite;
private var animBmp:Bitmap;
private var gameData:Object;
private var tilesBmp:Bitmap;
private var tSheet:BitmapData;
private var ob;
private var map1:BitmapData;
private var map2:BitmapData;
private var map:BitmapData;
private var rect:Rectangle;
private var gameOb:Object;
private var i:Number;
private var j:Number;
private var heroOb:Object;
private var n:Number;
private var tilesBmp2:Bitmap;
private var keys:Object;
private var tilesClip:Sprite;
private var myParent;
public function Game(_arg1:Sprite){
myParent = _arg1;
prepareGame();
}
private function checkTile(_arg1:String, _arg2:Number, _arg3:Number):Boolean{
var _local4:*;
var _local5:Boolean;
var _local6:*;
_local4 = gameOb.tiles[_arg1];
_local5 = false;
if (_local4 == null){
return (_local5);
};
if (_local4.walkable == 1){
_local5 = true;
} else {
if (_local4.t == "wb"){
addSound("s_door");
effect(_local4);
} else {
if ((((_local4.t == "w1")) && ((heroOb.k1 == 1)))){
addSound("s_door");
effect(_local4);
} else {
if ((((_local4.t == "w2")) && ((heroOb.k2 == 1)))){
addSound("s_door");
effect(_local4);
} else {
if ((((_local4.t == "w3")) && ((heroOb.k3 == 1)))){
addSound("s_door");
effect(_local4);
} else {
if ((((_local4.t == "bl")) && ((heroOb.sprNum > 0)))){
_local6 = gameOb.tiles[((("t_" + (_local4.yTile + _arg3)) + "_") + (_local4.xTile + _arg2))];
if ((((_local6.walkable == 1)) && ((_local6.t == null)))){
heroOb.pushingSpeed = (1 / gameOb.pushSpeed);
gameOb.enOb[_local4.enNum].dx = _arg2;
gameOb.enOb[_local4.enNum].dy = _arg3;
_local5 = true;
addSound("s_push");
};
} else {
if (_local4.t == "en"){
hurtHero();
};
};
};
};
};
};
};
return (_local5);
}
private function addSound(_arg1:String, _arg2:int=1):void{
var _local3:Class;
if (gameData.sound == 2){
return;
};
mySoundsCh.soundCounter++;
if (mySoundsCh.soundCounter == 20){
mySoundsCh.soundCounter = 0;
};
_local3 = (myParent.loaderInfo.applicationDomain.getDefinition(_arg1) as Class);
mySoundsCh.sloop = new (_local3);
mySoundsCh[("s" + mySoundsCh.soundCounter)] = new (_local3);
mySoundsCh[("s" + mySoundsCh.soundCounter)].play(0, _arg2);
}
private function readso(){
var _local1:SharedObject;
_local1 = SharedObject.getLocal("kavalmaja");
if (((!((_local1.data.score == null))) && ((_local1.data.gameVer == gameData.gameVer)))){
myClip.startmenu.loadbut.visible = true;
for (ob in _local1.data) {
gameData[ob] = _local1.data[ob];
};
} else {
createName();
myClip.startmenu.loadbut.visible = false;
};
}
private function soundLoop(_arg1:Event):void{
addLoop();
}
private function buildMap():void{
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
myClip.logo.visible = false;
for each (_local1 in keys) {
if (_local1.down == 1){
_local1.down = 2;
};
};
while (movingObClip.numChildren > 0) {
movingObClip.removeChildAt(0);
};
rect = new Rectangle(0, 0, (gameOb.mapW * gameOb.tSize), (gameOb.mapW * gameOb.tSize));
tilesBmp2.bitmapData.fillRect(rect, 0);
map = this[("map" + gameData.curFloor)];
if (gameData.score == gameData.pointsToFind){
map.setPixel32(gameData.finishX, gameData.finishY, 4294967295);
};
gameOb.tiles = new Object();
if (gameData.removedObjects[((gameData.mapY + "_") + gameData.mapX)] == null){
gameData.removedObjects[((gameData.mapY + "_") + gameData.mapX)] = new Object();
};
gameOb.curMap = gameData.removedObjects[((gameData.mapY + "_") + gameData.mapX)];
gameOb.enOb = new Object();
gameOb.enCounter = 0;
i = 0;
while (i < gameOb.mapH) {
j = 0;
while (j < gameOb.mapW) {
_local4 = ((("t_" + i) + "_") + j);
gameOb.tiles[_local4] = new Object();
ob = gameOb.tiles[_local4];
ob.yTile = i;
ob.xTile = j;
_local5 = map.getPixel32(((gameData.mapX * (gameOb.mapW - 1)) + j), ((gameData.mapY * (gameOb.mapH - 1)) + i));
if (((!((_local5 == 0))) && ((gameOb.curMap[((i + "_") + j)] == null)))){
n = 0;
while (n < gameOb.frameCols.length) {
if (_local5 == gameOb.frameCols[n]){
ob.sprNum = gameOb.frameNums[n];
ob.t = gameOb.frameTypes[n];
break;
};
n++;
};
ob.walkable = 0;
if (ob.t != null){
if (ob.t.charAt(0) != "w"){
ob.walkable = 1;
};
};
if ((((((ob.t == "bl")) || ((ob.t == "en")))) || ((ob.t == "ec")))){
ob.walkable = 0;
gameOb.enCounter++;
ob.enNum = gameOb.enCounter;
gameOb.enOb[gameOb.enCounter] = new Object();
ob = gameOb.enOb[gameOb.enCounter];
ob.enNum = gameOb.enCounter;
ob.yTile = i;
ob.xTile = j;
ob.sprNum = gameOb.frameNums[n];
ob.dx = 0;
ob.dy = 0;
ob.t = gameOb.frameTypes[n];
ob.rot = 0;
if (ob.t == "bl"){
ob.speed = (gameOb.moveSpeed / gameOb.pushSpeed);
} else {
if (ob.t == "ec"){
_local6 = maps.mapData[((((((gameData.mapY + "_") + gameData.mapX) + "_") + ob.yTile) + "_") + ob.xTile)];
ob.rot = _local6.rot;
ob.rotDir = _local6.rotDir;
} else {
ob.speed = gameOb.moveSpeed;
};
};
drawObject(ob);
} else {
drawTile(ob, tilesBmp2);
};
} else {
ob.walkable = 1;
};
j++;
};
i++;
};
gameOb.scrollX = ((gameOb.mapW - 1) * gameOb.tSize);
gameOb.scrollY = ((gameOb.mapH - 1) * gameOb.tSize);
ob = heroOb;
_local2 = Math.floor(((ob.dx + 1) / 2));
_local3 = Math.floor(((ob.dy + 1) / 2));
movingObClip.x = (movingObClip.x + (gameOb.scrollX * _local2));
movingObClip.y = (movingObClip.y + (gameOb.scrollY * _local3));
ob.hp = ob.maxhp;
showHP();
pt = new Point(((gameOb.mapW * gameOb.tSize) * _local2), ((gameOb.mapH * gameOb.tSize) * _local3));
rect = new Rectangle((_local2 * gameOb.tSize), (_local3 * gameOb.tSize), ((gameOb.mapW * gameOb.tSize) + (ob.dx * gameOb.tSize)), ((gameOb.mapH * gameOb.tSize) + (ob.dy * gameOb.tSize)));
tilesBmp.bitmapData.copyPixels(tilesBmp2.bitmapData, rect, pt);
drawObject(ob);
rotateOb(ob, (gameOb.tSize / 2), (gameOb.tSize / 2), ob.rot);
ob.doing = "scrolling";
}
private function steppedTile():void{
var _local1:Array;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
ob = heroOb;
if (ob.myTile.t == "p"){
gameData.score++;
myClip.txt.text = gameData.score;
effect(ob.myTile, true, 4294571008);
if (gameData.score == gameData.pointsToFind){
_local1 = new Array();
while (_local1.length == 0) {
_local3 = rand(0, gameOb.floorW);
_local4 = rand(0, gameOb.floorH);
if (((!((_local3 == gameData.mapX))) || (!((_local4 == gameData.mapY))))){
i = (2 + (_local4 * gameOb.mapH));
while (i < (((_local4 + 1) * gameOb.mapH) - 2)) {
j = (2 + (_local3 * gameOb.mapW));
while (j < (((_local3 + 1) * gameOb.mapW) - 2)) {
_local5 = map.getPixel32(j, i);
if (_local5 == 0){
_local1.push([j, i]);
};
j++;
};
i++;
};
};
};
_local2 = _local1[rand(0, _local1.length)];
gameData.finishX = _local2[0];
gameData.finishY = _local2[1];
myClip.txt.appendText("!");
map.setPixel32(gameData.finishX, gameData.finishY, 4294967295);
addSound("s_point", 4);
} else {
addSound("s_point");
};
saveso();
} else {
if (ob.myTile.t == "k1"){
addSound("s_key");
ob.k1 = 1;
effect(ob.myTile, true, 4294571008);
saveso();
} else {
if (ob.myTile.t == "k2"){
addSound("s_key");
ob.k2 = 1;
effect(ob.myTile, true, 4294571008);
saveso();
} else {
if (ob.myTile.t == "k3"){
addSound("s_key");
ob.k3 = 1;
effect(ob.myTile, true, 4294571008);
saveso();
} else {
if (ob.myTile.t == "ma"){
addSound("s_power");
ob.mapfound = 1;
effect(ob.myTile, true, 4278255360);
saveso();
} else {
if (ob.myTile.t == "h1"){
addSound("s_power");
if (ob.sprNum == 0){
ob.sprNum = 1;
};
drawObject(ob);
effect(ob.myTile, true, 4278255360);
saveso();
} else {
if (ob.myTile.t == "h2"){
addSound("s_power");
ob.sprNum = 2;
drawObject(ob);
effect(ob.myTile, true, 4278255360);
saveso();
} else {
if (ob.myTile.t == "hp"){
addSound("s_power");
ob.maxhp++;
ob.hp = ob.maxhp;
effect(ob.myTile, true, 4278255360);
saveso();
} else {
if (ob.myTile.t == "ic"){
if (checkTile(((("t_" + (ob.yTile + ob.dy)) + "_") + (ob.xTile + ob.dx)), ob.dx, ob.dy)){
ob.doing = "moving";
};
} else {
if (ob.myTile.t == "r1"){
detectMove(keys[Keyboard.RIGHT]);
} else {
if (ob.myTile.t == "r2"){
detectMove(keys[Keyboard.DOWN]);
} else {
if (ob.myTile.t == "r3"){
detectMove(keys[Keyboard.LEFT]);
} else {
if (ob.myTile.t == "r4"){
detectMove(keys[Keyboard.UP]);
} else {
if (ob.myTile.t == "hu"){
hurtHero();
} else {
if (ob.myTile.t == "te"){
_local6 = maps.mapData[((((((gameData.mapY + "_") + gameData.mapX) + "_") + ob.yTile) + "_") + ob.xTile)];
ob.newxTile = _local6.xTile;
ob.newyTile = _local6.yTile;
gameData.mapX = _local6.xMap;
gameData.mapY = _local6.yMap;
addSound("s_tele");
effectTele();
} else {
if (ob.myTile.t == "fi"){
ob.dead = true;
effectTele();
} else {
if (ob.myTile.t == "sw"){
addSound("s_switch");
_local7 = maps.mapData[((((((gameData.mapY + "_") + gameData.mapX) + "_") + ob.yTile) + "_") + ob.xTile)];
n = 1;
while (n < _local7.length) {
_local8 = gameOb.tiles[((("t_" + _local7[n][0]) + "_") + _local7[n][1])];
if (_local7[0] == "change"){
if (_local8.walkable == true){
_local8.walkable = false;
_local8.sprNum = 8;
_local8.t = "w";
} else {
_local8.t = null;
_local8.walkable = true;
_local8.sprNum = gameOb.emptyFrameNum;
};
drawTile(_local8, tilesBmp);
} else {
if (_local7[0] == "rotate"){
for each (_local9 in gameOb.enOb) {
if ((((_local7[n][1] == _local9.xTile)) && ((_local7[n][0] == _local9.yTile)))){
_local9.rot = (_local9.rot + (_local7[n][2] * 90));
drawObject(_local9);
};
};
};
};
n++;
};
if (_local7[0] == "change"){
if (ob.myTile.sprNum == 25){
ob.myTile.sprNum = 26;
} else {
ob.myTile.sprNum = 25;
};
drawTile(ob.myTile, tilesBmp);
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
}
private function drawTile(_arg1:Object, _arg2:Bitmap):void{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
_local3 = _arg1.sprNum;
_local4 = (tSheet.width / gameOb.tSize);
_local5 = (_local3 % _local4);
_local6 = Math.floor((_local3 / _local4));
rect = new Rectangle((_local5 * gameOb.tSize), (_local6 * gameOb.tSize), gameOb.tSize, gameOb.tSize);
if ((((_arg2 == tilesBmp2)) || ((_arg2 == tilesBmp)))){
pt = new Point((_arg1.xTile * gameOb.tSize), (_arg1.yTile * gameOb.tSize));
} else {
pt = new Point(0, 0);
};
_arg2.bitmapData.copyPixels(tSheet, rect, pt);
}
private function detectMove(_arg1:Object):void{
var _local2:*;
var _local3:*;
var _local4:*;
ob = heroOb;
if (checkTile(((("t_" + (ob.yTile + _arg1.dy)) + "_") + (ob.xTile + _arg1.dx)), _arg1.dx, _arg1.dy)){
ob.doing = "moving";
_local2 = gameOb.tiles[((("t_" + (ob.yTile + ob.dy)) + "_") + (ob.xTile + ob.dx))];
_local3 = gameOb.tiles[((("t_" + (ob.yTile + _arg1.dy)) + "_") + (ob.xTile + _arg1.dx))];
if ((((((((((_local3.walkable == 1)) && ((_local3.t == null)))) && ((ob.sprNum == 2)))) && ((_local2.t == "bl")))) && ((Math.abs((ob.rot - _arg1.rot)) == 180)))){
ob.pushingSpeed = (1 / gameOb.pushSpeed);
gameOb.enOb[_local2.enNum].dx = _arg1.dx;
gameOb.enOb[_local2.enNum].dy = _arg1.dy;
addSound("s_push");
} else {
ob.rot = _arg1.rot;
};
ob.dx = _arg1.dx;
ob.dy = _arg1.dy;
drawObject(ob);
movingObClip.graphics.clear();
for each (_local4 in gameOb.enOb) {
if ((((_local4.t == "ec")) && (!((_local4.rotDir == 0))))){
_local4.rot = (_local4.rot + (_local4.rotDir * 90));
drawObject(_local4);
};
};
gameData.steps++;
};
}
private function effect(_arg1:Object, _arg2:Boolean=true, _arg3:uint=4278190080):void{
heroOb.doing = "animate";
animBmp.visible = true;
tilesClip.addChild(animBmp);
rect = new Rectangle(0, 0, (gameOb.mapW * gameOb.tSize), (gameOb.mapW * gameOb.tSize));
animBmp.bitmapData.fillRect(rect, _arg3);
rect = new Rectangle((_arg1.xTile * gameOb.tSize), (_arg1.yTile * gameOb.tSize), gameOb.tSize, gameOb.tSize);
pt = new Point((_arg1.xTile * gameOb.tSize), (_arg1.yTile * gameOb.tSize));
animBmp.bitmapData.copyPixels(tilesBmp.bitmapData, rect, pt, null, null, true);
if (_arg2){
deleteTile(_arg1);
};
showHP();
}
private function prepareGame(){
myClip = new mainGraphics();
MochiBot.track(myParent, "301d4915");
MochiServices.connect("1ad3a5c585dea43e", myClip);
myParent.stage.stageFocusRect = false;
gameOb = new Object();
gameData = new Object();
gameData.gameVer = 4;
gameData.score = 0;
gameOb.stageW = 600;
gameOb.stageH = 450;
gameOb.mapW = 12;
gameOb.mapH = 12;
gameOb.floorW = 8;
gameOb.floorH = 5;
gameOb.floorDot = 4;
map1 = new mapbmp1(0, 0);
myClip.focusRect = false;
myClip.x = (gameOb.stageW / 2);
myClip.y = (gameOb.stageH / 2);
gameOb.tSize = 24;
gameOb.moveSpeed = 4;
gameOb.scrollSpeed = (gameOb.tSize / 2);
gameOb.animSpeed = 0.025;
gameOb.pushSpeed = 4;
gameOb.baseX = ((-(gameOb.mapW) * gameOb.tSize) / 2);
gameOb.baseY = ((-(gameOb.mapH) * gameOb.tSize) / 2);
tSheet = new TileSheet(0, 0);
myParent.addChild(myClip);
gameOb.timeCounter = new Date();
gameOb.lastTime = gameOb.timeCounter.getTime();
keys = new Object();
keys[Keyboard.UP] = {down:0, dx:0, dy:-1, rot:270};
keys[Keyboard.DOWN] = {down:0, dx:0, dy:1, rot:90};
keys[Keyboard.LEFT] = {down:0, dx:-1, dy:0, rot:180};
keys[Keyboard.RIGHT] = {down:0, dx:1, dy:0, rot:0};
maps = new Maps();
gameOb.mapBmp = new Bitmap(new BitmapData((gameOb.floorW * gameOb.floorDot), (gameOb.floorH * gameOb.floorDot), true, 0), "always", false);
myClip.hp.mymap.addChild(gameOb.mapBmp);
gameOb.emptyFrameNum = 14;
gameOb.frameNums = [8, 9, 10, 11, 12, 16, 17, 18, 19, 20, 21, 22, 24, 25, 27, 28, 29, 30, 31, 13, 15, 6, 7, 23, 27];
gameOb.frameTypes = [undefined, "wb", "w1", "w2", "w3", "p", "k1", "k2", "k3", "h1", "h2", "hp", "ic", "sw", "te", "r1", "r2", "r3", "r4", "bl", "hu", "en", "ec", "ma", "fi"];
gameOb.frameCols = [];
n = 0;
while (n < map1.width) {
gameOb.frameCols[n] = map1.getPixel32(((map1.width - 1) - n), (map1.height - 1));
n++;
};
myClip.back.visible = false;
myClip.hp.visible = false;
myClip.menumc.visible = false;
myClip.txt.text = "";
myClip.maptxt.text = "";
myClip.addEventListener(MouseEvent.CLICK, mclick, false, 0, true);
myClip.myname.text = "";
myClip.startmenu.startbut.visible = false;
mySoundsCh = new Object();
mySoundsCh.soundCounter = 0;
gameData.sound = 1;
myClip.soundoptions.buttonMode = true;
readso();
myClip.soundoptions.gotoAndStop(gameData.sound);
addLoop();
}
private function runGame(_arg1:Event):void{
if (myParent.stage.focus != myClip){
myParent.stage.focus = myClip;
};
gameOb.timeCounter = new Date();
gameOb.time = (gameOb.timeCounter.getTime() - gameOb.lastTime);
gameOb.lastTime = gameOb.timeCounter.getTime();
if ((((gameOb.time > 100)) || ((gameOb.time < 1)))){
return;
};
ob = heroOb;
if (ob.doing == "animate"){
animBmp.alpha = (animBmp.alpha - gameOb.animSpeed);
if (animBmp.alpha <= 0.4){
animBmp.alpha = 1;
animBmp.visible = false;
drawLasers();
if (ob.dead == null){
ob.doing = "waiting";
} else {
effectTele();
};
};
return;
} else {
if (ob.doing == "teleport"){
animBmp.alpha = (animBmp.alpha + gameOb.animSpeed);
if (animBmp.alpha >= 1){
if (ob.dead == null){
myClip.txt.text = gameData.score;
if (gameData.score == gameData.pointsToFind){
myClip.txt.appendText("!");
};
myClip.back.visible = true;
myClip.hp.visible = true;
myClip.menumc.visible = true;
buildMap();
animBmp.alpha = 1;
animBmp.visible = false;
endScroll();
} else {
endGame();
};
};
return;
} else {
if (ob.doing == "scrolling"){
rect = tilesClip.scrollRect;
rect.x = (rect.x + (gameOb.scrollSpeed * ob.dx));
rect.y = (rect.y + (gameOb.scrollSpeed * ob.dy));
tilesClip.scrollRect = rect;
if (gameOb.scrollCount == 0){
endScroll();
};
gameOb.scrollCount--;
return;
};
};
};
if (ob.doing == "waiting"){
detectKeys();
};
if (ob.doing == "moving"){
moveHero();
ob = heroOb;
if (ob.doing == "waiting"){
drawLasers();
};
};
}
private function endScroll():void{
ob = heroOb;
rect = new Rectangle(0, 0, (gameOb.mapW * gameOb.tSize), (gameOb.mapH * gameOb.tSize));
tilesClip.scrollRect = rect;
pt = new Point(0, 0);
tilesBmp.bitmapData.copyPixels(tilesBmp2.bitmapData, rect, pt);
ob.bmp.visible = true;
movingObClip.x = 0;
movingObClip.y = 0;
ob.xTile = ob.newxTile;
ob.yTile = ob.newyTile;
ob.myTile = gameOb.tiles[((("t_" + ob.yTile) + "_") + ob.xTile)];
gameData.visitedMaps[((gameData.mapY + "_") + gameData.mapX)] = true;
showHP();
drawObject(ob);
ob.doing = "waiting";
drawLasers();
saveso();
}
private function drawObject(_arg1:Object):void{
if (_arg1.bmp == null){
_arg1.bmp = new Bitmap(new BitmapData(gameOb.tSize, gameOb.tSize, true, 0), "always", false);
} else {
_arg1.bmp.rotation = 0;
};
drawTile(_arg1, _arg1.bmp);
_arg1.bmp.x = (_arg1.xTile * gameOb.tSize);
_arg1.bmp.y = (_arg1.yTile * gameOb.tSize);
movingObClip.addChild(_arg1.bmp);
if (_arg1 == heroOb){
tilesClip.addChild(_arg1.bmp);
};
rotateOb(_arg1, (gameOb.tSize / 2), (gameOb.tSize / 2), _arg1.rot);
}
private function moveEnemies():void{
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:Boolean;
var _local6:*;
for each (_local1 in gameOb.enOb) {
if ((((((_local1.t == "en")) && ((_local1.dx == 0)))) && ((_local1.dy == 0)))){
_local2 = (heroOb.xTile - _local1.xTile);
_local3 = (heroOb.yTile - _local1.yTile);
if ((((_local2 == 0)) || ((_local3 == 0)))){
_local4 = (Math.abs(_local2) + Math.abs(_local3));
if (_local2 != 0){
_local2 = (_local2 / Math.abs(_local2));
};
if (_local3 != 0){
_local3 = (_local3 / Math.abs(_local3));
};
if (_local4 > 0){
_local5 = true;
if ((((((_local4 == 2)) && ((_local2 == -(heroOb.dx))))) && ((_local3 == -(heroOb.dy))))){
_local5 = false;
};
} else {
_local5 = false;
};
n = 1;
while ((((n < 2)) && ((_local5 == true)))) {
_local6 = gameOb.tiles[((("t_" + (_local1.yTile + (n * _local3))) + "_") + (_local1.xTile + (n * _local2)))];
if (((!((_local6.walkable == 1))) || (!((_local6.t == null))))){
_local5 = false;
};
n++;
};
if (_local5 == true){
_local1.dx = _local2;
_local1.dy = _local3;
_local6 = gameOb.tiles[((("t_" + (_local1.yTile + _local3)) + "_") + (_local1.xTile + _local2))];
_local6.walkable = 0;
};
};
};
if (((!((_local1.dx == 0))) || (!((_local1.dy == 0))))){
_local1.bmp.x = Math.round((_local1.bmp.x + (_local1.dx * _local1.speed)));
_local1.bmp.y = Math.round((_local1.bmp.y + (_local1.dy * _local1.speed)));
if (((((_local1.bmp.x % gameOb.tSize) == 0)) && (((_local1.bmp.y % gameOb.tSize) == 0)))){
_local6 = gameOb.tiles[((("t_" + _local1.yTile) + "_") + _local1.xTile)];
_local6.t = null;
_local6.walkable = 1;
_local6.enNum = null;
_local1.xTile = (_local1.xTile + _local1.dx);
_local1.yTile = (_local1.yTile + _local1.dy);
_local6 = gameOb.tiles[((("t_" + _local1.yTile) + "_") + _local1.xTile)];
_local6.t = _local1.t;
_local6.walkable = 0;
_local6.enNum = _local1.enNum;
_local1.dx = 0;
_local1.dy = 0;
};
};
};
}
private function rand(_arg1:Number, _arg2:Number):Number{
var _local3:*;
_local3 = (_arg1 + Math.floor((Math.random() * (_arg2 - _arg1))));
return (_local3);
}
private function createName():void{
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
_local1 = rand(5, 7);
_local2 = "AEIOU";
_local3 = "BDGHKLMNPRSTVBDGHKLMNPRSTVBCDFGHJKLMNPQRSTVWXZ";
gameData.myName = "";
if (rand(0, 2) == 0){
_local4 = 0;
} else {
_local4 = 1;
};
n = 0;
while (n < _local1) {
if (_local4 == 0){
gameData.myName = (gameData.myName + _local3.charAt(rand(0, _local3.length)));
_local4 = 1;
} else {
gameData.myName = (gameData.myName + _local2.charAt(rand(0, _local2.length)));
_local4 = 0;
};
n++;
};
gameData.myName = (gameData.myName + " ");
_local2 = "ash,axe,blood,bronze,dark,elder,frost,grim,grave,ice,iron,long,mighty,moon,old,rain,shadow,short,silver,spell,strong,sun,tall,wind,bald,black,blue,brown,far,golden,grey,grim,half,hammer,hunch,iron,one,red,wall,weak,white,yellow,bear, beer,bone,brass,bread,cat,clever,cow,crystal,deer,demon,dog,doom,double,dragon,dwarf,elf,fairy,fast,fat,fine,fire,fish,goat,great,greedy,green,heavy,jewel,light,mole,mud,narrow,nimble,pure,rich,scar,sharp,shoe,skull,smoke,snow,spot,stone,summer,swamp,tale,thin,thorn,tree,troll,truth,ugly,under,winter,wolf,banana,apple,cherry,potato,carrot,orange";
_local2 = _local2.split(",");
_local3 = "breaker,chewer,cutter,dancer,digger,diver,eater,facer,giver,hacker,hunter,jumper,maker,painter,rider,ringer,singer,slayer,sneezer,speaker,splitter,stalker,talker,teacher,teller,weaver,walker,adviser,arranger,assembler,assister,booster,builder,coder,combiner,composer,conducter,constructer,controller,converter,debater,dealer,debugger,decider,defender,designer,developer,engineer,enhancer,entertainer,establisher,examiner,exchanger,expander,explainer,explorer,fixer,founder,governer,handler,helper,importer,informer,installer,introducer,joiner,launcher,leader,learner,lister,manager,mapper,master,modeller,observer,performer,planner,preparer,presenter,printer,producer,programmer,provider,publisher,reader,recruiter,reducer,releaser,repairer,replacer,reporter,saver,scanner,scripter,selecter,server,setter,shaper,seller,solver,starter,supplier,supporter,tester,tracer,trader,tracker,trainer,updater,user,viewer,winner,writer";
_local3 = _local3.split(",");
gameData.myName = (gameData.myName + _local2[rand(0, _local2.length)]);
gameData.myName = (gameData.myName + _local3[rand(0, _local3.length)]);
gameData.myName = gameData.myName.toUpperCase();
myClip.myname.text = gameData.myName;
myClip.startmenu.startbut.visible = true;
}
private function saveso():void{
var _local1:SharedObject;
for (ob in heroOb) {
if (gameData.heroOb[ob] != null){
gameData.heroOb[ob] = heroOb[ob];
};
};
_local1 = SharedObject.getLocal("kavalmaja");
_local1.clear();
for (ob in gameData) {
_local1.data[ob] = gameData[ob];
};
_local1.flush();
}
private function hurtHero():void{
var _local1:SharedObject;
ob = heroOb;
ob.hp--;
if (ob.hp < 0){
addSound("s_die");
ob.hp = 0;
ob.dead = true;
gameData.deaths++;
_local1 = SharedObject.getLocal("kavalmaja");
_local1.data.deaths = gameData.deaths;
_local1.flush();
} else {
addSound("s_hurt");
};
effect(ob.myTile, false, 4292804649);
}
private function upKeys(_arg1:KeyboardEvent):void{
if (keys[_arg1.keyCode] != undefined){
keys[_arg1.keyCode].down = 0;
};
}
private function rotateOb(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number):void{
matrx = new Matrix();
matrx.translate((_arg1.xTile * gameOb.tSize), (_arg1.yTile * gameOb.tSize));
MatrixTransformer.rotateAroundInternalPoint(matrx, _arg2, _arg3, _arg1.rot);
_arg1.bmp.transform.matrix = matrx;
}
private function downKeys(_arg1:KeyboardEvent):void{
if (keys[_arg1.keyCode] != undefined){
if (keys[_arg1.keyCode].down == 0){
keys[_arg1.keyCode].down = 1;
};
};
}
private function detectKeys():void{
var _local1:*;
for each (_local1 in keys) {
if ((((_local1.down == 1)) && (!((_local1.dx == null))))){
detectMove(_local1);
break;
};
};
}
private function mclick(_arg1:MouseEvent):void{
if (_arg1.target.name == "startbut"){
addSound("s_click");
myClip.startmenu.visible = false;
gameOb.loadGame = false;
myClip.myname.text = "";
myClip.logo.gotoAndStop(1);
myClip.logo.anim.play();
if (mySoundsCh.channel != null){
mySoundsCh.channel.stop();
mySoundsCh.channel.removeEventListener(Event.SOUND_COMPLETE, soundLoop);
};
MochiAd.showInterLevelAd({clip:myParent, id:"1ad3a5c585dea43e", res:"600x450", no_bg:true, color:0, outline:0xFFFFFF, ad_finished:startGame});
} else {
if (_arg1.target.name == "loadbut"){
addSound("s_click");
myClip.startmenu.visible = false;
gameOb.loadGame = true;
readso();
myClip.myname.text = "";
myClip.logo.gotoAndStop(1);
myClip.logo.anim.play();
if (mySoundsCh.channel != null){
mySoundsCh.channel.stop();
mySoundsCh.channel.removeEventListener(Event.SOUND_COMPLETE, soundLoop);
};
MochiAd.showInterLevelAd({clip:myParent, id:"1ad3a5c585dea43e", res:"600x450", no_bg:true, color:0, outline:0xFFFFFF, ad_finished:startGame});
} else {
if (_arg1.target.name == "namebut"){
addSound("s_click");
createName();
} else {
if (_arg1.target.name == "menubut"){
addSound("s_click");
heroOb.dead = true;
effect(heroOb.myTile, false);
} else {
if (_arg1.target.name == "scorebut"){
addSound("s_click");
myClip.startmenu.visible = false;
myClip.logo.anim.play();
myClip.logo.gotoAndStop(1);
myClip.myname.text = "";
MochiScores.showLeaderboard({boardID:"0b5f8e6909518be9", clip:myParent, onClose:closeBoard});
} else {
if (_arg1.target.name == "soundoptions"){
if (gameData.sound == 1){
gameData.sound = 2;
} else {
gameData.sound = 1;
};
myClip.soundoptions.gotoAndStop(gameData.sound);
addLoop();
} else {
if (_arg1.target.name == "tony"){
navigateToURL(new URLRequest("http://www.tonypa.pri.ee"), "_blank");
} else {
if (_arg1.target.name == "kevin"){
navigateToURL(new URLRequest("http://www.incompetech.com"), "_blank");
};
};
};
};
};
};
};
};
}
private function showHP():void{
var _local1:*;
var _local2:*;
var _local3:*;
_local1 = 1;
while (_local1 <= 5) {
if (heroOb.maxhp < _local1){
myClip.hp[("hp" + _local1)].visible = false;
} else {
myClip.hp[("hp" + _local1)].visible = true;
if (heroOb.hp < _local1){
myClip.hp[("hp" + _local1)].gotoAndStop(2);
} else {
myClip.hp[("hp" + _local1)].gotoAndStop(1);
};
};
_local1++;
};
if (heroOb.sprNum > 0){
myClip.cover.h1.visible = false;
};
if (heroOb.sprNum > 1){
myClip.cover.h2.visible = false;
};
myClip.cover.k1.visible = !(heroOb.k1);
myClip.cover.k2.visible = !(heroOb.k2);
myClip.cover.k3.visible = !(heroOb.k3);
myClip.hp.mymap.visible = heroOb.mapfound;
rect = new Rectangle(0, 0, (gameOb.floorW * gameOb.floorDot), (gameOb.floorH * gameOb.floorDot));
gameOb.mapBmp.bitmapData.fillRect(rect, 4278190080);
for (_local1 in gameData.visitedMaps) {
_local3 = _local1.split("_");
rect = new Rectangle((_local3[1] * gameOb.floorDot), (_local3[0] * gameOb.floorDot), (gameOb.floorDot - 1), (gameOb.floorDot - 1));
if ((((_local3[1] == gameData.mapX)) && ((_local3[0] == gameData.mapY)))){
gameOb.mapBmp.bitmapData.fillRect(rect, 4278255104);
} else {
gameOb.mapBmp.bitmapData.fillRect(rect, 4286611584);
};
};
_local2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
myClip.maptxt.text = ((_local2.charAt(gameData.mapX) + "-") + gameData.mapY);
myClip.myname.text = gameData.myName;
}
private function closeBoard():void{
addSound("s_click");
myClip.startmenu.visible = true;
myClip.logo.anim.gotoAndPlay(1);
myClip.logo.gotoAndStop(1);
readso();
}
private function effectTele():void{
heroOb.doing = "teleport";
animBmp.visible = true;
tilesClip.addChild(animBmp);
animBmp.alpha = 0.2;
rect = new Rectangle(0, 0, (gameOb.mapW * gameOb.tSize), (gameOb.mapW * gameOb.tSize));
animBmp.bitmapData.fillRect(rect, 4278190080);
}
private function checkDoor():void{
var _local1:*;
var _local2:*;
ob = heroOb;
if ((((ob.xTile == 0)) && ((ob.dx == -1)))){
gameData.mapX--;
ob.newxTile = (gameOb.mapW - 1);
ob.changeMap = true;
} else {
if ((((ob.xTile == (gameOb.mapW - 1))) && ((ob.dx == 1)))){
gameData.mapX++;
ob.newxTile = 0;
ob.changeMap = true;
} else {
if ((((ob.yTile == 0)) && ((ob.dy == -1)))){
gameData.mapY--;
ob.newyTile = (gameOb.mapW - 1);
ob.changeMap = true;
} else {
if ((((ob.yTile == (gameOb.mapW - 1))) && ((ob.dy == 1)))){
gameData.mapY++;
ob.newyTile = 0;
ob.changeMap = true;
} else {
ob.dx = Math.round(Math.cos(((ob.rot / 180) * Math.PI)));
ob.dy = Math.round(Math.sin(((ob.rot / 180) * Math.PI)));
};
};
};
};
if (ob.changeMap == true){
tilesBmp.bitmapData.draw(tilesClip);
ob.bmp.visible = false;
rect = new Rectangle(0, 0, (gameOb.mapW * gameOb.tSize), (gameOb.mapH * gameOb.tSize));
_local1 = Math.floor(((-(ob.dx) + 1) / 2));
_local2 = Math.floor(((-(ob.dy) + 1) / 2));
pt = new Point((gameOb.scrollX * _local1), (gameOb.scrollY * _local2));
tilesBmp.bitmapData.copyPixels(tilesBmp.bitmapData, rect, pt);
rect = new Rectangle((gameOb.scrollX * _local1), (gameOb.scrollY * _local2), (gameOb.mapW * gameOb.tSize), (gameOb.mapH * gameOb.tSize));
tilesClip.scrollRect = rect;
gameOb.scrollCount = (((Math.abs(((gameOb.mapW - 1) * ob.dx)) + Math.abs(((gameOb.mapH - 1) * ob.dy))) * gameOb.tSize) / gameOb.scrollSpeed);
movingObClip.graphics.clear();
};
}
private function drawLasers():void{
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
movingObClip.graphics.clear();
movingObClip.graphics.lineStyle(2, 0xFF0000, 1);
for each (_local1 in gameOb.enOb) {
if (_local1.t == "ec"){
_local2 = Math.round(Math.sin(((_local1.rot / 180) * Math.PI)));
_local3 = Math.round(Math.cos(((_local1.rot / 180) * Math.PI)));
_local4 = ((_local1.xTile * gameOb.tSize) + (gameOb.tSize / 2));
_local5 = ((_local1.yTile * gameOb.tSize) + (gameOb.tSize / 2));
_local6 = 1;
while (_local6 < 100) {
_local7 = gameOb.tiles[((("t_" + (_local1.yTile + (_local6 * _local2))) + "_") + (_local1.xTile + (_local6 * _local3)))];
if (_local7 == null){
break;
} else {
if (_local7.walkable != 1){
break;
} else {
if ((((_local7 == heroOb.myTile)) && ((heroOb.doing == "waiting")))){
hurtHero();
break;
};
};
};
_local6++;
};
movingObClip.graphics.moveTo(_local4, _local5);
movingObClip.graphics.lineTo(((_local4 + ((_local6 * _local3) * gameOb.tSize)) - ((_local3 * gameOb.tSize) / 2)), ((_local5 + ((_local6 * _local2) * gameOb.tSize)) - ((_local2 * gameOb.tSize) / 2)));
};
};
}
private function deleteTile(_arg1:Object):void{
_arg1.sprNum = gameOb.emptyFrameNum;
drawTile(_arg1, tilesBmp);
_arg1.walkable = 1;
_arg1.t = null;
gameOb.curMap[((_arg1.yTile + "_") + _arg1.xTile)] = true;
}
private function moveHero():void{
ob.bmp.x = Math.round((ob.bmp.x + ((ob.dx * gameOb.moveSpeed) * ob.pushingSpeed)));
ob.bmp.y = Math.round((ob.bmp.y + ((ob.dy * gameOb.moveSpeed) * ob.pushingSpeed)));
moveEnemies();
if (((((ob.bmp.x % gameOb.tSize) == 0)) && (((ob.bmp.y % gameOb.tSize) == 0)))){
ob.xTile = (ob.xTile + ob.dx);
ob.yTile = (ob.yTile + ob.dy);
heroOb.pushingSpeed = 1;
ob.myTile = gameOb.tiles[((("t_" + ob.yTile) + "_") + ob.xTile)];
ob.changeMap = false;
ob.newxTile = ob.xTile;
ob.newyTile = ob.yTile;
checkDoor();
if (ob.changeMap == true){
buildMap();
} else {
ob.doing = "waiting";
if (ob.myTile.t != null){
steppedTile();
};
};
};
}
private function startGame():void{
addLoop();
map1 = new mapbmp1(0, 0);
myClip.myname.text = "";
myClip.logo.gotoAndStop(1);
tilesClip = new Sprite();
tilesClip.x = gameOb.baseX;
tilesClip.y = gameOb.baseY;
myClip.addChild(tilesClip);
tilesBmp = new Bitmap(new BitmapData(((2 * gameOb.mapW) * gameOb.tSize), ((2 * gameOb.mapH) * gameOb.tSize), true, 0), "always", false);
tilesBmp2 = new Bitmap(new BitmapData((gameOb.mapW * gameOb.tSize), (gameOb.mapH * gameOb.tSize), true, 0), "always", false);
tilesBmp.scrollRect = new Rectangle(0, 0, tilesBmp.width, tilesBmp.height);
tilesClip.addChild(tilesBmp);
movingObClip = new Sprite();
tilesClip.addChild(movingObClip);
animBmp = new Bitmap(new BitmapData((gameOb.mapW * gameOb.tSize), (gameOb.mapH * gameOb.tSize), true, 0), "always", false);
tilesClip.addChild(animBmp);
if (gameOb.loadGame == false){
gameData.removedObjects = new Object();
gameData.visitedMaps = new Object();
gameData.score = 0;
gameData.pointsToFind = 50;
gameData.deaths = 0;
gameData.steps = 0;
gameData.mapX = 2;
gameData.mapY = 2;
gameData.curFloor = 1;
gameData.heroOb = new Object();
gameData.heroOb.xTile = 5;
gameData.heroOb.yTile = 6;
gameData.heroOb.sprNum = 0;
gameData.heroOb.dx = 0;
gameData.heroOb.dy = 1;
gameData.heroOb.hp = 1;
gameData.heroOb.maxhp = 1;
gameData.heroOb.k1 = 0;
gameData.heroOb.k2 = 0;
gameData.heroOb.k3 = 0;
gameData.heroOb.rot = 90;
gameData.heroOb.mapfound = 0;
};
heroOb = new Object();
for (ob in gameData.heroOb) {
heroOb[ob] = gameData.heroOb[ob];
};
heroOb.pushingSpeed = 1;
myClip.hp.gotoAndStop(heroOb.maxphp);
heroOb.newxTile = heroOb.xTile;
heroOb.newyTile = heroOb.yTile;
myClip.addEventListener(Event.ENTER_FRAME, runGame, false, 0, true);
myClip.addEventListener(KeyboardEvent.KEY_DOWN, downKeys, false, 0, true);
myClip.addEventListener(KeyboardEvent.KEY_UP, upKeys, false, 0, true);
effectTele();
}
private function endGame():void{
var _local1:*;
var _local2:SharedObject;
myClip.removeEventListener(Event.ENTER_FRAME, runGame);
myClip.removeEventListener(KeyboardEvent.KEY_DOWN, downKeys);
myClip.removeEventListener(KeyboardEvent.KEY_UP, upKeys);
tilesClip.removeChild(tilesBmp);
tilesClip.removeChild(movingObClip);
tilesClip.removeChild(heroOb.bmp);
tilesClip.removeChild(animBmp);
myClip.removeChild(tilesClip);
myClip.back.visible = false;
myClip.hp.visible = false;
myClip.menumc.visible = false;
myClip.txt.text = "";
myClip.maptxt.text = "";
myClip.myname.text = "";
myClip.logo.visible = true;
if (heroOb.myTile.t == "fi"){
myClip.logo.gotoAndStop(3);
_local1 = ((gameData.deaths * 100) + gameData.steps);
_local2 = SharedObject.getLocal("kavalmaja");
_local2.clear();
_local2.flush();
MochiScores.showLeaderboard({boardID:"0b5f8e6909518be9", clip:myParent, onClose:closeBoard, score:_local1, name:gameData.myName});
} else {
readso();
createName();
myClip.startmenu.visible = true;
myClip.logo.gotoAndStop(2);
myClip.logo.anim.gotoAndPlay(1);
};
}
private function addLoop():void{
var _local1:*;
var _local2:Class;
if (mySoundsCh.channel != null){
mySoundsCh.channel.stop();
mySoundsCh.channel.removeEventListener(Event.SOUND_COMPLETE, soundLoop);
};
if (gameData.sound == 2){
return;
};
_local1 = ("m" + rand(1, ((gameData.score % 10) + 2)));
_local2 = (myParent.loaderInfo.applicationDomain.getDefinition(_local1) as Class);
mySoundsCh.sloop = new (_local2);
mySoundsCh.channel = mySoundsCh.sloop.play(0, rand(2, 5));
mySoundsCh.channel.addEventListener(Event.SOUND_COMPLETE, soundLoop, false, 0, true);
}
}
}//package
Section 16
//m1 (m1)
package {
import flash.media.*;
public dynamic class m1 extends Sound {
}
}//package
Section 17
//m10 (m10)
package {
import flash.media.*;
public dynamic class m10 extends Sound {
}
}//package
Section 18
//m2 (m2)
package {
import flash.media.*;
public dynamic class m2 extends Sound {
}
}//package
Section 19
//m3 (m3)
package {
import flash.media.*;
public dynamic class m3 extends Sound {
}
}//package
Section 20
//m4 (m4)
package {
import flash.media.*;
public dynamic class m4 extends Sound {
}
}//package
Section 21
//m5 (m5)
package {
import flash.media.*;
public dynamic class m5 extends Sound {
}
}//package
Section 22
//m6 (m6)
package {
import flash.media.*;
public dynamic class m6 extends Sound {
}
}//package
Section 23
//m7 (m7)
package {
import flash.media.*;
public dynamic class m7 extends Sound {
}
}//package
Section 24
//m8 (m8)
package {
import flash.media.*;
public dynamic class m8 extends Sound {
}
}//package
Section 25
//m9 (m9)
package {
import flash.media.*;
public dynamic class m9 extends Sound {
}
}//package
Section 26
//mainGraphics (mainGraphics)
package {
import flash.display.*;
import flash.text.*;
public dynamic class mainGraphics extends MovieClip {
public var hp:MovieClip;
public var menumc:MovieClip;
public var myname:TextField;
public var txt:TextField;
public var kevin:SimpleButton;
public var tony:SimpleButton;
public var maptxt:TextField;
public var soundoptions:MovieClip;
public var cover:MovieClip;
public var logo:MovieClip;
public var startmenu:MovieClip;
public var back:MovieClip;
public function mainGraphics(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 27
//mapbmp1 (mapbmp1)
package {
import flash.display.*;
public dynamic class mapbmp1 extends BitmapData {
public function mapbmp1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 28
//Maps (Maps)
package {
public class Maps {
public var mapData:Object;
public function Maps(){
mapData = new Object();
mapData["2_2_1_6"] = ["change", [4, 9]];
mapData["1_1_10_6"] = ["change", [10, 3], [6, 1]];
mapData["1_1_1_10"] = ["change", [8, 6]];
mapData["0_3_7_4"] = ["change", [8, 4], [4, 10]];
mapData["0_1_10_10"] = ["change", [2, 2]];
mapData["0_0_5_9"] = ["change", [2, 5]];
mapData["0_0_7_9"] = ["change", [1, 6], [8, 8]];
mapData["0_0_7_7"] = ["change", [4, 7], [2, 5]];
mapData["0_0_5_7"] = ["change", [4, 7], [2, 5], [1, 6]];
mapData["2_1_9_2"] = ["change", [6, 10]];
mapData["4_0_2_2"] = {rot:90, rotDir:0};
mapData["4_0_2_9"] = {rot:90, rotDir:0};
mapData["4_2_2_1"] = {rot:90, rotDir:0};
mapData["4_2_7_4"] = {rot:90, rotDir:1};
mapData["4_2_7_5"] = {rot:270, rotDir:-1};
mapData["4_2_6_2"] = ["change", [3, 1], [10, 2]];
mapData["3_0_2_2"] = {xMap:4, yMap:0, xTile:1, yTile:1};
mapData["3_3_10_1"] = {xMap:3, yMap:3, xTile:10, yTile:2};
mapData["3_3_1_10"] = {xMap:3, yMap:3, xTile:9, yTile:8};
mapData["3_3_4_7"] = {rot:180, rotDir:0};
mapData["3_3_4_2"] = ["rotate", [4, 7, -1]];
mapData["4_3_7_6"] = {rot:0, rotDir:-1};
mapData["2_3_10_2"] = {rot:0, rotDir:0};
mapData["2_3_5_3"] = {rot:0, rotDir:0};
mapData["2_4_2_8"] = ["change", [6, 1]];
mapData["2_4_9_8"] = ["change", [5, 1]];
mapData["0_4_5_5"] = {xMap:0, yMap:3, xTile:1, yTile:1};
mapData["0_4_5_6"] = {xMap:5, yMap:0, xTile:1, yTile:1};
mapData["0_4_6_5"] = {xMap:4, yMap:0, xTile:10, yTile:10};
mapData["0_4_6_6"] = {xMap:4, yMap:0, xTile:10, yTile:1};
mapData["0_5_5_5"] = {xMap:4, yMap:0, xTile:1, yTile:10};
mapData["0_5_6_5"] = {xMap:4, yMap:1, xTile:1, yTile:1};
mapData["0_5_5_6"] = {xMap:5, yMap:0, xTile:10, yTile:1};
mapData["0_5_6_6"] = {xMap:0, yMap:3, xTile:1, yTile:1};
mapData["1_4_5_5"] = {xMap:4, yMap:4, xTile:1, yTile:10};
mapData["1_4_6_5"] = {xMap:0, yMap:3, xTile:1, yTile:1};
mapData["1_4_5_6"] = {xMap:4, yMap:0, xTile:10, yTile:1};
mapData["1_4_6_6"] = {xMap:5, yMap:0, xTile:1, yTile:10};
mapData["3_5_2_10"] = ["change", [2, 8]];
mapData["3_5_3_10"] = ["change", [3, 8]];
mapData["3_5_4_10"] = ["change", [5, 8]];
mapData["3_5_5_10"] = ["change", [6, 8]];
mapData["3_5_6_10"] = ["change", [7, 8]];
mapData["3_5_7_10"] = ["change", [9, 8]];
mapData["3_5_8_10"] = ["change", [8, 8]];
mapData["3_5_9_10"] = ["change", [4, 8]];
mapData["3_5_10_8"] = ["change", [4, 8], [6, 8], [8, 8]];
mapData["1_5_6_1"] = {rot:270, rotDir:0};
mapData["1_5_6_2"] = {rot:0, rotDir:0};
mapData["1_6_4_10"] = {rot:180, rotDir:0};
mapData["1_6_6_10"] = {rot:180, rotDir:0};
mapData["0_6_1_6"] = {xMap:4, yMap:0, xTile:1, yTile:1};
mapData["0_6_7_4"] = {rot:0, rotDir:1};
mapData["0_6_5_10"] = {rot:90, rotDir:0};
mapData["0_6_6_6"] = {rot:0, rotDir:0};
mapData["2_6_1_4"] = ["change", [1, 2]];
mapData["2_6_4_1"] = ["change", [6, 4]];
mapData["2_6_1_8"] = {rot:90, rotDir:0};
mapData["2_6_6_7"] = {rot:270, rotDir:0};
mapData["3_6_4_1"] = {rot:90, rotDir:1};
mapData["3_6_6_2"] = {rot:270, rotDir:1};
mapData["3_6_2_5"] = {rot:90, rotDir:0};
mapData["4_6_1_8"] = ["change", [5, 2], [5, 3], [5, 4], [5, 5], [5, 6], [5, 7], [5, 8], [5, 9], [5, 10]];
mapData["4_6_1_9"] = ["change", [4, 3], [5, 3], [6, 3], [7, 3], [8, 3], [9, 3], [10, 3]];
mapData["4_6_1_10"] = ["change", [9, 2], [9, 3], [9, 4], [9, 5], [9, 6], [9, 7], [9, 8], [9, 9], [9, 10]];
mapData["4_6_3_8"] = ["change", [10, 2], [10, 3], [10, 4], [10, 5], [10, 6], [10, 7], [10, 8], [10, 9], [10, 10]];
mapData["4_6_3_9"] = ["change", [4, 8], [5, 8], [6, 8], [7, 8], [8, 8], [9, 8], [10, 8]];
mapData["4_6_3_10"] = ["change", [4, 2], [4, 3], [4, 4], [4, 5], [4, 6], [4, 7], [4, 8], [4, 9], [4, 10]];
mapData["4_7_8_1"] = {xMap:7, yMap:4, xTile:10, yTile:7};
mapData["4_7_10_3"] = {xMap:7, yMap:4, xTile:7, yTile:7};
mapData["4_7_7_5"] = {xMap:7, yMap:4, xTile:6, yTile:10};
mapData["4_7_7_8"] = {xMap:7, yMap:4, xTile:9, yTile:9};
mapData["4_7_9_6"] = {xMap:7, yMap:4, xTile:1, yTile:1};
mapData["4_7_10_8"] = {xMap:7, yMap:4, xTile:2, yTile:9};
mapData["4_7_8_10"] = {xMap:7, yMap:4, xTile:1, yTile:1};
mapData["3_7_1_9"] = {rot:90, rotDir:0};
mapData["3_7_10_8"] = {rot:270, rotDir:0};
mapData["3_7_10_10"] = {rot:270, rotDir:0};
mapData["2_7_10_5"] = {rot:0, rotDir:0};
mapData["1_7_4_8"] = ["change", [9, 9]];
mapData["1_7_8_8"] = ["change", [5, 9], [7, 9]];
}
}
}//package
Section 29
//MochiAd (MochiAd)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
public class MochiAd {
public static function getVersion():String{
return ("2.2");
}
public static function showTimedAd(_arg1:Object):void{
MochiAd.showInterLevelAd(_arg1);
}
public static function _allowDomains(_arg1:String):String{
var _local2:String;
_local2 = _arg1.split("/")[2].split(":")[0];
Security.allowDomain("*");
Security.allowDomain(_local2);
Security.allowInsecureDomain("*");
Security.allowInsecureDomain(_local2);
return (_local2);
}
public static function load(_arg1:Object):MovieClip{
var DEFAULTS:Object;
var clip:Object;
var depth:Number;
var mc:MovieClip;
var wh:Array;
var lv:URLVariables;
var k:String;
var server:String;
var hostname:String;
var lc:LocalConnection;
var name:String;
var loader:Loader;
var f:Function;
var g:Function;
var req:URLRequest;
var v:Object;
var options = _arg1;
DEFAULTS = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
if (!MochiAd._isNetworkAvailable()){
return (null);
};
try {
if (clip._mochiad_loaded){
return (null);
};
} catch(e:Error) {
throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
};
depth = options.depth;
delete options.depth;
mc = createEmptyMovieClip(clip, "_mochiad", depth);
wh = MochiAd._getRes(options, clip);
options.res = ((wh[0] + "x") + wh[1]);
options.server = (options.server + options.id);
delete options.id;
clip._mochiad_loaded = true;
if (clip.loaderInfo.loaderURL.indexOf("http") == 0){
options.as3_swf = clip.loaderInfo.loaderURL;
};
lv = new URLVariables();
for (k in options) {
v = options[k];
if (!(v is Function)){
lv[k] = v;
};
};
server = lv.server;
delete lv.server;
hostname = _allowDomains(server);
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.lc = lc;
lv.lc = name;
lv.st = getTimer();
loader = new Loader();
f = function (_arg1:Object):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
mc._mochiad_ctr_failed = true;
};
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f);
g = function (_arg1:Object):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
MochiAd.unload(clip);
};
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g);
req = new URLRequest((server + ".swf"));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader.load(req);
mc.addChild(loader);
mc._mochiad_ctr = loader;
return (mc);
}
public static function sendHighScore(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{
var _local4:MovieClip;
_local4 = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id});
if (!_local4){
return (false);
};
_local4.doSend(["sendHighScore", _arg1], _arg2, _arg3);
return (true);
}
public static function _parseOptions(_arg1:Object, _arg2:Object):Object{
var _local3:Object;
var _local4:String;
var _local5:Array;
var _local6:Number;
var _local7:Array;
_local3 = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
if (_arg1){
for (_local4 in _arg1) {
_local3[_local4] = _arg1[_local4];
};
};
if (_local3.clip == undefined){
throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite."));
};
_arg1 = _local3.clip.loaderInfo.parameters.mochiad_options;
if (_arg1){
_local5 = _arg1.split("&");
_local6 = 0;
while (_local6 < _local5.length) {
_local7 = _local5[_local6].split("=");
_local3[unescape(_local7[0])] = unescape(_local7[1]);
_local6++;
};
};
if (_local3.id == "test"){
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
};
return (_local3);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function _cleanup(_arg1:Object):void{
var idx:Number;
var k:String;
var lc:LocalConnection;
var f:Function;
var mc = _arg1;
if (("lc" in mc)){
lc = mc.lc;
f = function ():void{
try {
lc.client = null;
lc.close();
} catch(e:Error) {
};
};
setTimeout(f, 0);
};
idx = DisplayObjectContainer(mc).numChildren;
while (idx > 0) {
idx = (idx - 1);
DisplayObjectContainer(mc).removeChildAt(idx);
};
for (k in mc) {
delete mc[k];
};
}
public static function unload(_arg1:Object):Boolean{
if (((_arg1.clip) && (_arg1.clip._mochiad))){
_arg1 = _arg1.clip;
};
if (!_arg1._mochiad){
return (false);
};
if (_arg1._mochiad.onUnload){
_arg1._mochiad.onUnload();
};
delete _arg1._mochiad_loaded;
delete _arg1._mochiad;
return (true);
}
public static function showInterLevelAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_msec:Number;
var ad_timeout:Number;
var fadeout_time:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
ad_msec = 11000;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
_local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = (_arg1 - 250);
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
_local1 = this.parent._mochiad_ctr;
_local2 = (getTimer() - this.started);
_local3 = false;
if (!chk.showing){
_local4 = _local1.loaderInfo.bytesTotal;
if ((((_local4 > 0)) || (("number" == "undefined")))){
chk.showing = true;
chk.started = getTimer();
} else {
if (_local2 > chk.ad_timeout){
_local3 = true;
};
};
};
if ((((_local2 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){
_local3 = true;
};
if (_local3){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function _getRes(_arg1:Object, _arg2:Object):Array{
var _local3:Object;
var _local4:Number;
var _local5:Number;
var _local6:Array;
_local3 = _arg2.getBounds(_arg2.root);
_local4 = 0;
_local5 = 0;
if (typeof(_arg1.res) != "undefined"){
_local6 = _arg1.res.split("x");
_local4 = parseFloat(_local6[0]);
_local5 = parseFloat(_local6[1]);
} else {
_local4 = (_local3.xMax - _local3.xMin);
_local5 = (_local3.yMax - _local3.yMin);
};
if ((((_local4 == 0)) || ((_local5 == 0)))){
_local4 = _arg2.stage.stageWidth;
_local5 = _arg2.stage.stageHeight;
};
return ([_local4, _local5]);
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{
var _local4:MovieClip;
_local4 = new MovieClip();
if (((false) && (_arg3))){
_arg1.addChildAt(_local4, _arg3);
} else {
_arg1.addChild(_local4);
};
_arg1[_arg2] = _local4;
_local4["_name"] = _arg2;
return (_local4);
}
public static function _loadCommunicator(_arg1:Object):MovieClip{
var DEFAULTS:Object;
var clip:Object;
var clipname:String;
var server:String;
var depth:Number;
var mc:MovieClip;
var lv:URLVariables;
var k:String;
var lc:LocalConnection;
var name:String;
var req:URLRequest;
var loader:Loader;
var options = _arg1;
DEFAULTS = {com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
clipname = ("_mochiad_com_" + options.id);
if (!MochiAd._isNetworkAvailable()){
return (null);
};
if (clip[clipname]){
return (clip[clipname]);
};
server = (options.com_server + options.id);
MochiAd._allowDomains(server);
delete options.id;
delete options.com_server;
depth = options.depth;
delete options.depth;
mc = createEmptyMovieClip(clip, clipname, depth);
lv = new URLVariables();
for (k in options) {
lv[k] = options[k];
};
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.name = name;
mc.lc = lc;
lv.lc = name;
mc._id = 0;
mc._queue = [];
mc.rpcResult = function (_arg1:Object):void{
var _local3:Array;
var _local4:Array;
var _local5:Number;
var _local6:Object;
var _local7:Object;
_arg1 = parseInt(_arg1.toString());
_local3 = mc._callbacks[_arg1];
if (typeof(_local3) == "undefined"){
return;
};
delete mc._callbacks[_arg1];
_local4 = [];
_local5 = 2;
while (_local5 < _local3.length) {
_local4.push(_local3[_local5]);
_local5++;
};
_local5 = 1;
while (_local5 < arguments.length) {
_local4.push(arguments[_local5]);
_local5++;
};
_local6 = _local3[1];
_local7 = _local3[0];
if (((_local7) && ((typeof(_local6) == "string")))){
_local6 = _local7[_local6];
};
if (typeof(_local6) == "function"){
_local6.apply(_local7, _local4);
};
};
mc._didConnect = function (_arg1:String):void{
var _local2:Array;
var _local3:Function;
var _local4:Number;
var _local5:Array;
mc._endpoint = _arg1;
_local2 = mc._queue;
delete mc._queue;
_local3 = mc.doSend;
_local4 = 0;
while (_local4 < _local2.length) {
_local5 = _local2[_local4];
_local3.apply(this, _local5);
_local4++;
};
};
mc.doSend = function (_arg1:Array, _arg2:Object, _arg3:Object):void{
var _local5:Number;
var _local6:LocalConnection;
var _local7:Array;
var _local8:Number;
if (mc._endpoint == null){
_local7 = [];
_local8 = 0;
while (_local8 < arguments.length) {
_local7.push(arguments[_local8]);
_local8++;
};
mc._queue.push(_local7);
return;
};
mc._id = (mc._id + 1);
_local5 = mc._id;
mc._callbacks[_local5] = [_arg2, ((_arg3) || (_arg2))];
_local6 = new LocalConnection();
_local6.send(mc._endpoint, "rpc", _local5, _arg1);
};
mc._callbacks = {};
mc._callbacks[0] = [mc, "_didConnect"];
lv.st = getTimer();
req = new URLRequest((server + ".swf"));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader = new Loader();
loader.load(req);
mc.addChild(loader);
mc._mochiad_com = loader;
return (mc);
}
public static function showPreGameAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_msec:Number;
var ad_timeout:Number;
var fadeout_time:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var bar:MovieClip;
var bar_color:Number;
var bar_background:Number;
var bar_outline:Number;
var backing_mc:MovieClip;
var backing:Object;
var inside_mc:MovieClip;
var inside:Object;
var outline_mc:MovieClip;
var outline:Object;
var complete:Boolean;
var unloaded:Boolean;
var f:Function;
var r:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
ad_msec = 11000;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
var fn:Function;
MochiAd._cleanup(mc);
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.x = (w * -0.5);
chk.y = (h * -0.5);
bar = createEmptyMovieClip(chk, "_mochiad_bar", 4);
bar.x = 10;
bar.y = (h - 20);
bar_color = options.color;
delete options.color;
bar_background = options.background;
delete options.background;
bar_outline = options.outline;
delete options.outline;
backing_mc = createEmptyMovieClip(bar, "_outline", 1);
backing = backing_mc.graphics;
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo((w - 20), 0);
backing.lineTo((w - 20), 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
inside_mc = createEmptyMovieClip(bar, "_inside", 2);
inside = inside_mc.graphics;
inside.beginFill(bar_color);
inside.moveTo(0, 0);
inside.lineTo((w - 20), 0);
inside.lineTo((w - 20), 10);
inside.lineTo(0, 10);
inside.lineTo(0, 0);
inside.endFill();
inside_mc.scaleX = 0;
outline_mc = createEmptyMovieClip(bar, "_outline", 3);
outline = outline_mc.graphics;
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo((w - 20), 0);
outline.lineTo((w - 20), 10);
outline.lineTo(0, 10);
outline.lineTo(0, 0);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number;
_local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
complete = false;
unloaded = false;
f = function (_arg1:Event):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
complete = true;
if (unloaded){
MochiAd.unload(clip);
};
};
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
if ((clip.root is MovieClip)){
r = (clip.root as MovieClip);
if (r.framesLoaded >= r.totalFrames){
complete = true;
};
};
mc.unloadAd = function ():void{
unloaded = true;
if (complete){
MochiAd.unload(clip);
};
};
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = _arg1;
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Object;
var _local3:Number;
var _local4:Boolean;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Object;
var _local10:Number;
var _local11:Number;
if (!this.parent.parent){
delete this["onEnterFrame"];
return;
};
_local1 = this.parent.parent.root;
_local2 = this.parent._mochiad_ctr;
_local3 = (getTimer() - this.started);
_local4 = false;
_local5 = _local1.loaderInfo.bytesTotal;
_local6 = _local1.loaderInfo.bytesLoaded;
if (complete){
_local6 = Math.max(1, _local6);
_local5 = _local6;
};
_local7 = ((100 * _local6) / _local5);
_local8 = ((100 * _local3) / chk.ad_msec);
_local9 = this._mochiad_bar._inside;
_local10 = Math.min(100, Math.min(((_local7) || (0)), _local8));
_local10 = Math.max(this.last_pcnt, _local10);
this.last_pcnt = _local10;
_local9.scaleX = (_local10 * 0.01);
if (!chk.showing){
_local11 = _local2.loaderInfo.bytesTotal;
if ((((_local11 > 0)) || (("number" == "undefined")))){
chk.showing = true;
chk.started = getTimer();
} else {
if (_local3 > chk.ad_timeout){
_local4 = true;
};
};
};
if ((((_local3 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){
_local4 = true;
};
if (((complete) && (_local4))){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function showPreloaderAd(_arg1:Object):void{
MochiAd.showPreGameAd(_arg1);
}
public static function fetchHighScores(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{
var _local4:MovieClip;
_local4 = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id});
if (!_local4){
return (false);
};
_local4.doSend(["fetchHighScores", _arg1], _arg2, _arg3);
return (true);
}
public static function doOnEnterFrame(_arg1:MovieClip):void{
var f:Function;
var mc = _arg1;
f = function (_arg1:Object):void{
if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){
mc.onEnterFrame();
} else {
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package
Section 30
//MochiBot (MochiBot)
package {
import flash.display.*;
import flash.net.*;
import flash.system.*;
public dynamic class MochiBot extends Sprite {
public static function track(_arg1:Sprite, _arg2:String):MochiBot{
var _local3:MochiBot;
var _local4:String;
var _local5:URLVariables;
var _local6:String;
var _local7:URLRequest;
var _local8:Loader;
if (Security.sandboxType == "localWithFile"){
return (null);
};
_local3 = new (MochiBot);
_arg1.addChild(_local3);
Security.allowDomain("*");
Security.allowInsecureDomain("*");
_local4 = "http://core.mochibot.com/my/core.swf";
_local5 = new URLVariables();
_local5["sb"] = Security.sandboxType;
_local5["v"] = Capabilities.version;
_local5["swfid"] = _arg2;
_local5["mv"] = "8";
_local5["fv"] = "9";
_local6 = _local3.root.loaderInfo.loaderURL;
if (_local6.indexOf("http") == 0){
_local5["url"] = _local6;
} else {
_local5["url"] = "local";
};
_local7 = new URLRequest(_local4);
_local7.contentType = "application/x-www-form-urlencoded";
_local7.method = URLRequestMethod.POST;
_local7.data = _local5;
_local8 = new Loader();
_local3.addChild(_local8);
_local8.load(_local7);
return (_local3);
}
}
}//package
Section 31
//Preloader (Preloader)
package {
import flash.display.*;
import flash.events.*;
public class Preloader {
private var stageH:Number;
private var lb:Sprite;
private var stageW:Number;
private var myColors:Object;
private var myParent;
public function Preloader(_arg1:Sprite){
myParent = _arg1;
prepareGame();
}
private function prepareGame(){
stageW = 600;
stageH = 450;
myColors = new Object();
myColors.white = 0xFFFFFF;
myColors.black = 0;
myParent.loaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress, false, 0, true);
myParent.loaderInfo.addEventListener(Event.COMPLETE, loadDone, false, 0, true);
lb = new Sprite();
lb.y = ((stageH / 2) - 5);
lb.x = ((stageW / 2) - 50);
myParent.addChild(lb);
}
private function loadProgress(_arg1:ProgressEvent):void{
var _local2:Number;
_local2 = (_arg1.bytesLoaded / _arg1.bytesTotal);
lb.graphics.clear();
lb.graphics.lineStyle(2, myColors.white, 1, true, "none", null, null, 3);
lb.graphics.drawRect(0, 0, 100, 10);
lb.graphics.beginFill(myColors.white);
lb.graphics.drawRect(0, 0, (_local2 * 100), 10);
}
private function loadDone(_arg1:Event):void{
myParent.removeChild(lb);
myParent.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, loadProgress);
myParent.loaderInfo.removeEventListener(Event.COMPLETE, loadDone);
myParent.gotoAndPlay(2);
}
}
}//package
Section 32
//s_click (s_click)
package {
import flash.media.*;
public dynamic class s_click extends Sound {
}
}//package
Section 33
//s_die (s_die)
package {
import flash.media.*;
public dynamic class s_die extends Sound {
}
}//package
Section 34
//s_door (s_door)
package {
import flash.media.*;
public dynamic class s_door extends Sound {
}
}//package
Section 35
//s_hurt (s_hurt)
package {
import flash.media.*;
public dynamic class s_hurt extends Sound {
}
}//package
Section 36
//s_key (s_key)
package {
import flash.media.*;
public dynamic class s_key extends Sound {
}
}//package
Section 37
//s_point (s_point)
package {
import flash.media.*;
public dynamic class s_point extends Sound {
}
}//package
Section 38
//s_power (s_power)
package {
import flash.media.*;
public dynamic class s_power extends Sound {
}
}//package
Section 39
//s_push (s_push)
package {
import flash.media.*;
public dynamic class s_push extends Sound {
}
}//package
Section 40
//s_switch (s_switch)
package {
import flash.media.*;
public dynamic class s_switch extends Sound {
}
}//package
Section 41
//s_tele (s_tele)
package {
import flash.media.*;
public dynamic class s_tele extends Sound {
}
}//package
Section 42
//TileSheet (TileSheet)
package {
import flash.display.*;
public dynamic class TileSheet extends BitmapData {
public function TileSheet(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package