Section 1
//MochiCoins (mochi.as3.MochiCoins)
package mochi.as3 {
public class MochiCoins {
public static const STORE_HIDE:String = "StoreHide";
public static const NO_USER:String = "NoUser";
public static const IO_ERROR:String = "IOError";
public static const ITEM_NEW:String = "ItemNew";
public static const ITEM_OWNED:String = "ItemOwned";
public static const STORE_ITEMS:String = "StoreItems";
public static const ERROR:String = "Error";
public static const STORE_SHOW:String = "StoreShow";
public static var _inventory:MochiInventory;
public static function triggerEvent(_arg1:String, _arg2:Object):void{
MochiSocial.triggerEvent(_arg1, _arg2);
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
MochiSocial.removeEventListener(_arg1, _arg2);
}
public static function addEventListener(_arg1:String, _arg2:Function):void{
MochiSocial.addEventListener(_arg1, _arg2);
}
public static function getStoreItems():void{
MochiServices.send("coins_getStoreItems");
}
public static function get inventory():MochiInventory{
return (_inventory);
}
public static function showStore(_arg1:Object=null):void{
MochiServices.bringToTop();
MochiServices.send("coins_showStore", {options:_arg1}, null, null);
}
public static function showItem(_arg1:Object=null):void{
if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){
trace("ERROR: showItem call must pass an Object with an item key");
return;
};
MochiServices.bringToTop();
MochiServices.send("coins_showItem", {options:_arg1}, null, null);
}
public static function getVersion():String{
return (MochiServices.getVersion());
}
public static function showVideo(_arg1:Object=null):void{
if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){
trace("ERROR: showVideo call must pass an Object with an item key");
return;
};
MochiServices.bringToTop();
MochiServices.send("coins_showVideo", {options:_arg1}, null, null);
}
MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{
_inventory = new MochiInventory();
});
MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{
_inventory = null;
});
}
}//package mochi.as3
Section 2
//MochiDigits (mochi.as3.MochiDigits)
package mochi.as3 {
public final class MochiDigits {
private var Sibling:MochiDigits;
private var Fragment:Number;
private var Encoder:Number;
public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{
Encoder = 0;
setValue(_arg1, _arg2);
}
public function set value(_arg1:Number):void{
setValue(_arg1);
}
public function reencode():void{
var _local1:uint;
_local1 = int((2147483647 * Math.random()));
Fragment = (Fragment ^ (_local1 ^ Encoder));
Encoder = _local1;
}
public function toString():String{
var _local1:String;
_local1 = String.fromCharCode((Fragment ^ Encoder));
if (Sibling != null){
_local1 = (_local1 + Sibling.toString());
};
return (_local1);
}
public function get value():Number{
return (Number(this.toString()));
}
public function setValue(_arg1:Number=0, _arg2:uint=0):void{
var _local3:String;
_local3 = _arg1.toString();
var _temp1 = _arg2;
_arg2 = (_arg2 + 1);
Fragment = (_local3.charCodeAt(_temp1) ^ Encoder);
if (_arg2 < _local3.length){
Sibling = new MochiDigits(_arg1, _arg2);
} else {
Sibling = null;
};
reencode();
}
public function addValue(_arg1:Number):void{
value = (value + _arg1);
}
}
}//package mochi.as3
Section 3
//MochiEventDispatcher (mochi.as3.MochiEventDispatcher)
package mochi.as3 {
public class MochiEventDispatcher {
private var eventTable:Object;
public function MochiEventDispatcher():void{
eventTable = {};
}
public function triggerEvent(_arg1:String, _arg2:Object):void{
var _local3:Object;
if (eventTable[_arg1] == undefined){
return;
};
for (_local3 in eventTable[_arg1]) {
var _local6 = eventTable[_arg1];
_local6[_local3](_arg2);
};
}
public function removeEventListener(_arg1:String, _arg2:Function):void{
var _local3:Object;
if (eventTable[_arg1] == undefined){
eventTable[_arg1] = [];
return;
};
for (_local3 in eventTable[_arg1]) {
if (eventTable[_arg1][_local3] != _arg2){
} else {
eventTable[_arg1].splice(Number(_local3), 1);
};
};
}
public function addEventListener(_arg1:String, _arg2:Function):void{
removeEventListener(_arg1, _arg2);
eventTable[_arg1].push(_arg2);
}
}
}//package mochi.as3
Section 4
//MochiEvents (mochi.as3.MochiEvents)
package mochi.as3 {
import flash.display.*;
public class MochiEvents {
public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL";
public static const FORMAT_LONG:String = "LongForm";
public static const ALIGN_BOTTOM:String = "ALIGN_B";
public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived";
public static const FORMAT_SHORT:String = "ShortForm";
public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR";
public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR";
public static const ALIGN_TOP:String = "ALIGN_T";
public static const ALIGN_LEFT:String = "ALIGN_L";
public static const ALIGN_RIGHT:String = "ALIGN_R";
public static const ALIGN_TOP_LEFT:String = "ALIGN_TL";
public static const ALIGN_CENTER:String = "ALIGN_C";
private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher();
private static var gameStart:Number;
private static var levelStart:Number;
public static function endPlay():void{
MochiServices.send("events_clearRoundID", null, null, null);
}
public static function addEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.addEventListener(_arg1, _arg2);
}
public static function trackEvent(_arg1:String, _arg2=null):void{
MochiServices.send("events_trackEvent", {tag:_arg1, value:_arg2}, null, null);
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.removeEventListener(_arg1, _arg2);
}
public static function startSession(_arg1:String):void{
MochiServices.send("events_beginSession", {achievementID:_arg1}, null, null);
}
public static function triggerEvent(_arg1:String, _arg2:Object):void{
_dispatcher.triggerEvent(_arg1, _arg2);
}
public static function setNotifications(_arg1:MovieClip, _arg2:Object):void{
var _local3:Object;
var _local4:Object;
_local3 = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
_local3.clip = _arg1;
MochiServices.send("events_setNotifications", _local3, null, null);
}
public static function getVersion():String{
return (MochiServices.getVersion());
}
public static function startPlay(_arg1:String="gameplay"):void{
MochiServices.send("events_setRoundID", {tag:String(_arg1)}, null, null);
}
}
}//package mochi.as3
Section 5
//MochiInventory (mochi.as3.MochiInventory)
package mochi.as3 {
import flash.events.*;
import flash.utils.*;
public dynamic class MochiInventory extends Proxy {
private var _timer:Timer;
private var _names:Array;
private var _consumableProperties:Object;
private var _syncID:Number;
private var _storeSync:Object;
private var _outstandingID:Number;
private var _syncPending:Boolean;
public static const READY:String = "InvReady";
public static const ERROR:String = "Error";
public static const IO_ERROR:String = "IoError";
private static const KEY_SALT:String = " syncMaint";
public static const WRITTEN:String = "InvWritten";
public static const NOT_READY:String = "InvNotReady";
public static const VALUE_ERROR:String = "InvValueError";
private static const CONSUMER_KEY:String = "MochiConsumables";
private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher();
public function MochiInventory():void{
MochiCoins.addEventListener(MochiCoins.ITEM_OWNED, itemOwned);
MochiCoins.addEventListener(MochiCoins.ITEM_NEW, newItems);
MochiSocial.addEventListener(MochiSocial.LOGGED_IN, loggedIn);
MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, loggedOut);
_storeSync = new Object();
_syncPending = false;
_outstandingID = 0;
_syncID = 0;
_timer = new Timer(1000);
_timer.addEventListener(TimerEvent.TIMER, sync);
_timer.start();
if (MochiSocial.loggedIn){
loggedIn();
} else {
loggedOut();
};
}
private function newItems(_arg1:Object):void{
if (!this[(_arg1.id + KEY_SALT)]){
this[(_arg1.id + KEY_SALT)] = 0;
};
if (!this[_arg1.id]){
this[_arg1.id] = 0;
};
this[(_arg1.id + KEY_SALT)] = (this[(_arg1.id + KEY_SALT)] + _arg1.count);
this[_arg1.id] = (this[_arg1.id] + _arg1.count);
if (_arg1.privateProperties.consumable){
if (!this[_arg1.privateProperties.tag]){
this[_arg1.privateProperties.tag] = 0;
};
this[_arg1.privateProperties.tag] = (this[_arg1.privateProperties.tag] + (_arg1.privateProperties.inc * _arg1.count));
};
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){
if (_consumableProperties == null){
triggerEvent(ERROR, {type:NOT_READY});
return (-1);
};
if (_consumableProperties[_arg1]){
return (MochiDigits(_consumableProperties[_arg1]).value);
};
return (undefined);
}
public function release():void{
MochiCoins.removeEventListener(MochiCoins.ITEM_NEW, newItems);
MochiSocial.removeEventListener(MochiSocial.LOGGED_IN, loggedIn);
MochiSocial.removeEventListener(MochiSocial.LOGGED_OUT, loggedOut);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(_arg1):Boolean{
if (_consumableProperties == null){
triggerEvent(ERROR, {type:NOT_READY});
return (false);
};
if (_consumableProperties[_arg1] == undefined){
return (false);
};
return (true);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(_arg1:int):int{
return (((_arg1)>=_names.length) ? 0 : (_arg1 + 1));
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{
var _local3:MochiDigits;
if (_consumableProperties == null){
triggerEvent(ERROR, {type:NOT_READY});
return;
};
if (!(_arg2 is Number)){
triggerEvent(ERROR, {type:VALUE_ERROR, error:"Invalid type", arg:_arg2});
return;
};
if (_consumableProperties[_arg1]){
_local3 = MochiDigits(_consumableProperties[_arg1]);
if (_local3.value == _arg2){
return;
};
_local3.value = _arg2;
} else {
_names.push(_arg1);
_consumableProperties[_arg1] = new MochiDigits(_arg2);
};
_syncID++;
}
private function sync(_arg1:Event=null):void{
var _local2:Object;
var _local3:String;
if (((_syncPending) || ((_syncID == _outstandingID)))){
return;
};
_outstandingID = _syncID;
_local2 = {};
for (_local3 in _consumableProperties) {
_local2[_local3] = MochiDigits(_consumableProperties[_local3]).value;
};
MochiUserData.put(CONSUMER_KEY, _local2, putConsumableBag);
_syncPending = true;
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(_arg1:int):String{
return (_names[(_arg1 - 1)]);
}
private function loggedIn(_arg1:Object=null):void{
MochiUserData.get(CONSUMER_KEY, getConsumableBag);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function deleteProperty(_arg1):Boolean{
if (!_consumableProperties[_arg1]){
return (false);
};
_names.splice(_names.indexOf(_arg1), 1);
delete _consumableProperties[_arg1];
return (true);
}
private function itemOwned(_arg1:Object):void{
_storeSync[_arg1.id] = {properties:_arg1.properties, count:_arg1.count};
}
private function putConsumableBag(_arg1:MochiUserData):void{
_syncPending = false;
if (_arg1.error){
triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error});
_outstandingID = -1;
};
triggerEvent(WRITTEN, {});
}
private function getConsumableBag(_arg1:MochiUserData):void{
var _local2:String;
var _local3:Number;
if (_arg1.error){
triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error});
return;
};
_consumableProperties = {};
_names = new Array();
if (_arg1.data){
for (_local2 in _arg1.data) {
_names.push(_local2);
_consumableProperties[_local2] = new MochiDigits(_arg1.data[_local2]);
};
};
for (_local2 in _storeSync) {
_local3 = _storeSync[_local2].count;
if (_consumableProperties[(_local2 + KEY_SALT)]){
_local3 = (_local3 - _consumableProperties[_local2]);
};
if (_local3 == 0){
} else {
newItems({id:_local2, count:_local3, properties:_storeSync[_local2].properties});
};
};
triggerEvent(READY, {});
}
private function loggedOut(_arg1:Object=null):void{
_consumableProperties = null;
}
public static function triggerEvent(_arg1:String, _arg2:Object):void{
_dispatcher.triggerEvent(_arg1, _arg2);
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.removeEventListener(_arg1, _arg2);
}
public static function addEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.addEventListener(_arg1, _arg2);
}
}
}//package mochi.as3
Section 6
//MochiScores (mochi.as3.MochiScores)
package mochi.as3 {
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 n:Number;
var options = _arg1;
if (options != null){
delete options.clip;
MochiServices.setContainer();
MochiServices.bringToTop();
if (options.name != null){
if ((options.name is TextField)){
if (options.name.text.length > 0){
options.name = options.name.text;
};
};
};
if (options.score != null){
if ((options.score is TextField)){
if (options.score.text.length > 0){
options.score = options.score.text;
};
} else {
if ((options.score is MochiDigits)){
options.score = options.score.value;
};
};
n = Number(options.score);
if (isNaN(n)){
trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'"));
} else {
if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){
trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite"));
} else {
if (Math.floor(n) != n){
trace((("WARNING: Submitted score '" + options.score) + "' will be truncated"));
};
options.score = n;
};
};
};
if (options.onDisplay != null){
options.onDisplay();
} else {
if (MochiServices.clip != null){
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onDisplay.");
};
};
};
} else {
options = {};
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onDisplay.");
};
};
if (options.onClose != null){
onCloseHandler = options.onClose;
} else {
onCloseHandler = function ():void{
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.play();
} else {
trace("Warning: Container is not a MovieClip, cannot call default onClose.");
};
};
};
if (options.onError != null){
onErrorHandler = options.onError;
} else {
onErrorHandler = null;
};
if (options.boardID == null){
if (MochiScores.boardID != null){
options.boardID = MochiScores.boardID;
};
};
MochiServices.warnID(options.boardID, true);
trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal");
MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose);
}
public static function closeLeaderboard():void{
MochiServices.send("scores_closeLeaderboard");
}
public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{
MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2);
}
public static function 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{
_arg1 = Number(_arg1);
if (isNaN(_arg1)){
trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is 'Not a Number'"));
} else {
if ((((_arg1 == Number.NEGATIVE_INFINITY)) || ((_arg1 == Number.POSITIVE_INFINITY)))){
trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is an infinite"));
} else {
if (Math.floor(_arg1) != _arg1){
trace((("WARNING: Submitted score '" + String(_arg1)) + "' will be truncated"));
};
_arg1 = Number(_arg1);
};
};
MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4);
}
public static function onClose(_arg1:Object=null):void{
if (((((_arg1) && ((_arg1.error == true)))) && (onErrorHandler))){
if (_arg1.errorCode == null){
_arg1.errorCode = "IOError";
};
onErrorHandler(_arg1.errorCode);
MochiServices.doClose();
return;
};
onCloseHandler();
MochiServices.doClose();
}
public static function setBoardID(_arg1:String):void{
MochiServices.warnID(_arg1, true);
MochiScores.boardID = _arg1;
MochiServices.send("scores_setBoardID", {boardID:_arg1});
}
}
}//package mochi.as3
Section 7
//MochiServices (mochi.as3.MochiServices)
package mochi.as3 {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
import flash.geom.*;
public class MochiServices {
private static var _container:Object;
private static var _connected:Boolean = false;
private static var _queue:Array;
private static var _swfVersion:String;
private static var _preserved:Object;
public static var netupAttempted:Boolean = false;
private static var _sendChannel:LocalConnection;
public static var servicesSync:MochiSync = new MochiSync();
private static var _nextCallbackID:Number;
private static var _clip:MovieClip;
private static var _id:String;
private static var _services:String = "services.swf";
private static var _servURL:String = "http://www.mochiads.com/static/lib/services/";
public static var widget:Boolean = false;
private static var _timer:Timer;
private static var _sendChannelName:String;
private static var _loader:Loader;
private static var _callbacks:Object;
private static var _connecting:Boolean = false;
private static var _mochiLocalConnection:MovieClip;
private static var _listenChannelName:String = "__ms_";
public static var onError:Object;
public static var netup:Boolean = true;
private static var _mochiLC:String = "MochiLC.swf";
public static function isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function get connected():Boolean{
return (_connected);
}
private static function onReceive(_arg1:Object):void{
var cb:String;
var cblst:Object;
var method:*;
var methodName:String;
var obj:Object;
var pkg = _arg1;
cb = pkg.callbackID;
cblst = _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 _callbacks[cb];
}
public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{
if (_connected){
_mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_nextCallbackID});
} else {
if ((((_clip == null)) || (!(_connecting)))){
trace(("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + _arg1));
handleError(_arg2, _arg3, _arg4);
flush(true);
return;
};
_queue.push({methodName:_arg1, args:_arg2, callbackID:_nextCallbackID});
};
if (_clip != null){
if (_callbacks != null){
_callbacks[_nextCallbackID] = {callbackObject:_arg3, callbackMethod:_arg4};
_nextCallbackID++;
};
};
}
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);
}
private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{
var _local3:Array;
var _local4:int;
var _local5:Array;
var _local6:Array;
var _local7:MovieClip;
var _local8:LocalConnection;
var _local9:String;
var _local10:ByteArray;
var _local11:ByteArray;
var _local12:uint;
var _local13:uint;
var _local14:Loader;
_local3 = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23];
_local5 = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3];
_local6 = [0, 64, 0, 0, 0];
_local7 = new MovieClip();
_local8 = new LocalConnection();
_local9 = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time));
_local8 = new LocalConnection();
_local7.lc = _local8;
_local7.click = _arg2;
_local8.client = _local7;
_local8.connect(_local9);
_local10 = new ByteArray();
_local11 = new ByteArray();
_local11.endian = Endian.LITTLE_ENDIAN;
_local11.writeShort(1);
_local11.writeUTFBytes(((_arg1 + " ") + _local9));
_local11.writeByte(0);
_local12 = ((_local3.length + _local11.length) + 4);
_local13 = (_local12 + 35);
_local10.endian = Endian.LITTLE_ENDIAN;
_local10.writeUTFBytes("FWS");
_local10.writeByte(8);
_local10.writeUnsignedInt(_local13);
for each (_local4 in _local5) {
_local10.writeByte(_local4);
};
_local10.writeUnsignedInt(_local12);
_local10.writeByte(136);
_local10.writeShort(_local11.length);
_local10.writeBytes(_local11);
for each (_local4 in _local3) {
_local10.writeByte(_local4);
};
for each (_local4 in _local6) {
_local10.writeByte(_local4);
};
_local14 = new Loader();
_local14.loadBytes(_local10);
_local7.addChild(_local14);
return (_local7);
}
public static function stayOnTop():void{
_container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true);
if (_clip != null){
_clip.visible = true;
};
}
public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{
var vars:Object;
var avm1Click:DisplayObject;
var s:String;
var i:Number;
var x:String;
var req:URLRequest;
var loader:Loader;
var setURL:Function;
var err:Function;
var complete:Function;
var url = _arg1;
var burl = _arg2;
var btn = _arg3;
var onClick = _arg4;
vars = new Object();
vars["mav"] = getVersion();
vars["swfv"] = "9";
vars["swfurl"] = btn.loaderInfo.loaderURL;
vars["fv"] = Capabilities.version;
vars["os"] = Capabilities.os;
vars["lang"] = Capabilities.language;
vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY);
s = "?";
i = 0;
for (x in vars) {
if (i != 0){
s = (s + "&");
};
i = (i + 1);
s = (((s + x) + "=") + escape(vars[x]));
};
req = new URLRequest("http://x.mochiads.com/linkping.swf");
loader = new Loader();
setURL = function (_arg1:String):void{
var _local2:Rectangle;
if (avm1Click){
btn.removeChild(avm1Click);
};
avm1Click = clickMovie(_arg1, onClick);
_local2 = btn.getBounds(btn);
btn.addChild(avm1Click);
avm1Click.x = _local2.x;
avm1Click.y = _local2.y;
avm1Click.scaleX = (0.01 * _local2.width);
avm1Click.scaleY = (0.01 * _local2.height);
};
err = function (_arg1:Object):void{
netup = false;
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
setURL(burl);
};
complete = function (_arg1:Object):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
};
if (netup){
setURL((url + s));
} else {
setURL(burl);
};
if (!((netupAttempted) || (_connected))){
netupAttempted = true;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);
loader.load(req);
};
}
public static function disconnect():void{
if (((_connected) || (_connecting))){
if (_clip != null){
if (_clip.parent != null){
if ((_clip.parent is Sprite)){
Sprite(_clip.parent).removeChild(_clip);
_clip = null;
};
};
};
_connecting = (_connected = false);
flush(true);
try {
_mochiLocalConnection.close();
} catch(error:Error) {
};
};
if (_timer != null){
try {
_timer.stop();
} catch(error:Error) {
};
};
}
public static function allowDomains(_arg1:String):String{
var _local2:String;
if (Security.sandboxType != "application"){
Security.allowDomain("*");
Security.allowInsecureDomain("*");
};
if (_arg1.indexOf("http://") != -1){
_local2 = _arg1.split("/")[2].split(":")[0];
if (Security.sandboxType != "application"){
Security.allowDomain(_local2);
Security.allowInsecureDomain(_local2);
};
};
return (_local2);
}
public static function getVersion():String{
return ("3.8 as3");
}
public static function doClose():void{
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
}
public static function warnID(_arg1:String, _arg2:Boolean):void{
var _local3:Number;
_arg1 = _arg1.toLowerCase();
if (_arg1.length != 16){
trace((("WARNING: " + (_arg2) ? "board" : "game") + " ID is not the appropriate length"));
return;
} else {
if (_arg1 == "1e113c7239048b3f"){
if (_arg2){
trace("WARNING: Using testing board ID");
} else {
trace("WARNING: Using testing board ID as game ID");
};
return;
} else {
if (_arg1 == "84993a1de4031cd8"){
if (_arg2){
trace("WARNING: Using testing game ID as board ID");
} else {
trace("WARNING: Using testing game ID");
};
return;
};
};
};
_local3 = 0;
while (_local3 < _arg1.length) {
switch (_arg1.charAt(_local3)){
case "0":
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
case "a":
case "b":
case "c":
case "d":
case "e":
case "f":
break;
default:
trace(("WARNING: Board ID contains illegal characters: " + _arg1));
return;
};
_local3++;
};
}
private static function flush(_arg1:Boolean):void{
var _local2:Object;
var _local3:Object;
if (((_clip) && (_queue))){
while (_queue.length > 0) {
_local2 = _queue.shift();
_local3 = null;
if (_local2 != null){
if (_local2.callbackID != null){
_local3 = _callbacks[_local2.callbackID];
};
delete _callbacks[_local2.callbackID];
if (((_arg1) && (!((_local3 == null))))){
handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod);
};
};
};
};
}
public static function get id():String{
return (_id);
}
private static function onEvent(_arg1:Object):void{
var _local2:String;
var _local3:String;
_local2 = _arg1.target;
_local3 = _arg1.event;
switch (_local2){
case "events":
MochiEvents.triggerEvent(_arg1.event, _arg1.args);
break;
case "coins":
MochiCoins.triggerEvent(_arg1.event, _arg1.args);
break;
case "sync":
servicesSync.triggerEvent(_arg1.event, _arg1.args);
break;
};
}
private static function urlOptions(_arg1:Object):Object{
var _local2:Object;
var _local3:String;
var _local4:Array;
var _local5:Number;
var _local6:Array;
_local2 = {};
if (_arg1.stage){
_local3 = _arg1.stage.loaderInfo.parameters.mochiad_options;
} else {
_local3 = _arg1.loaderInfo.parameters.mochiad_options;
};
if (_local3){
_local4 = _local3.split("&");
_local5 = 0;
while (_local5 < _local4.length) {
_local6 = _local4[_local5].split("=");
_local2[unescape(_local6[0])] = unescape(_local6[1]);
_local5++;
};
};
return (_local2);
}
public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{
if (_clip.parent){
_clip.parent.removeChild(_clip);
};
if (_arg1 != null){
if ((_arg1 is DisplayObjectContainer)){
_container = _arg1;
};
};
if (_arg2){
if ((_container is DisplayObjectContainer)){
DisplayObjectContainer(_container).addChild(_clip);
};
};
}
private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{
var args = _arg1;
var callbackObject = _arg2;
var callbackMethod = _arg3;
if (args != null){
if (args.onError != null){
args.onError.apply(null, ["NotConnected"]);
};
if (((!((args.options == null))) && (!((args.options.onError == null))))){
args.options.onError.apply(null, ["NotConnected"]);
};
};
if (callbackMethod != null){
args = {};
args.error = true;
args.errorCode = "NotConnected";
if (((!((callbackObject == null))) && ((callbackMethod is String)))){
try {
var _local5 = callbackObject;
_local5[callbackMethod](args);
} catch(error:Error) {
};
} else {
if (callbackMethod != null){
try {
callbackMethod.apply(args);
} catch(error:Error) {
};
};
};
};
}
private static function loadError(_arg1:Object):void{
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load.");
MochiServices.disconnect();
MochiServices.onError("IOError");
}
private static function initComChannels():void{
if (!_connected){
trace("[SERVICES_API] connected!");
_connecting = false;
_connected = true;
_mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, version:getVersion(), parentURL:_container.loaderInfo.loaderURL});
_clip.onReceive = onReceive;
_clip.onEvent = onEvent;
_clip.onError = function ():void{
MochiServices.onError("IOError");
};
while (_queue.length > 0) {
_mochiLocalConnection.send(_sendChannelName, "onReceive", _queue.shift());
};
};
}
private static function loadLCBridge(_arg1:Object):void{
var loader:Loader;
var mochiLCURL:String;
var req:URLRequest;
var complete:Function;
var clip = _arg1;
loader = new Loader();
mochiLCURL = (_servURL + _mochiLC);
req = new URLRequest(mochiLCURL);
complete = function (_arg1:Object):void{
_mochiLocalConnection = MovieClip(loader.content);
listen();
};
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError);
loader.load(req);
clip.addChild(loader);
}
private static function listen():void{
_mochiLocalConnection.connect(_listenChannelName);
_clip.handshake = function (_arg1:Object):void{
MochiServices.comChannelName = _arg1.newChannel;
};
trace("Waiting for MochiAds services to connect...");
}
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");
initComChannels();
};
};
}
private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{
var _local3:String;
var _local4:URLRequest;
var _local5:URLVariables;
if (_clip != null){
return (_clip);
};
if (!MochiServices.isNetworkAvailable()){
return (null);
};
if (urlOptions(_arg2).servURL){
_servURL = urlOptions(_arg2).servURL;
};
_local3 = (_servURL + _services);
if (urlOptions(_arg2).servicesURL){
_local3 = urlOptions(_arg2).servicesURL;
};
_listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999))));
MochiServices.allowDomains(_local3);
_clip = new MovieClip();
loadLCBridge(_clip);
_loader = new Loader();
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError);
_local4 = new URLRequest(_local3);
_local5 = new URLVariables();
_local5.listenLC = _listenChannelName;
_local5.mochiad_options = _arg2.loaderInfo.parameters.mochiad_options;
_local5.api_version = getVersion();
if (widget){
_local5.widget = true;
};
_local4.data = _local5;
_loader.load(_local4);
_clip.addChild(_loader);
_sendChannel = new LocalConnection();
_queue = [];
_nextCallbackID = 0;
_callbacks = {};
_timer = new Timer(10000, 1);
_timer.addEventListener(TimerEvent.TIMER, connectWait);
_timer.start();
return (_clip);
}
public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{
var id = _arg1;
var clip = _arg2;
var onError = _arg3;
warnID(id, false);
if ((clip is DisplayObject)){
if (clip.stage == null){
trace("MochiServices connect requires the containing clip be attached to the stage");
};
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 updateCopy(_arg1:Object):void{
MochiServices.send("coins_updateCopy", _arg1, null, null);
}
public static function bringToTop(_arg1:Event=null):void{
var e = _arg1;
if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){
try {
if (MochiServices.clip.numChildren > 1){
MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1));
};
} catch(errorObject:Error) {
trace("Warning: Depth sort error.");
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
};
};
}
public static function connectWait(_arg1:TimerEvent):void{
if (!_connected){
_clip._mochiad_ctr_failed = true;
trace("MochiServices could not load. (timeout)");
MochiServices.disconnect();
MochiServices.onError("IOError");
};
}
}
}//package mochi.as3
Section 8
//MochiSocial (mochi.as3.MochiSocial)
package mochi.as3 {
public class MochiSocial {
public static const LOGGED_IN:String = "LoggedIn";
public static const PROFILE_HIDE:String = "ProfileHide";
public static const NO_USER:String = "NoUser";
public static const PROPERTIES_SIZE:String = "PropertiesSize";
public static const IO_ERROR:String = "IOError";
public static const PROPERTIES_SAVED:String = "PropertySaved";
public static const WIDGET_LOADED:String = "WidgetLoaded";
public static const USER_INFO:String = "UserInfo";
public static const ERROR:String = "Error";
public static const LOGIN_SHOW:String = "LoginShow";
public static const LOGGED_OUT:String = "LoggedOut";
public static const PROFILE_SHOW:String = "ProfileShow";
public static const LOGIN_SHOWN:String = "LoginShown";
public static const LOGIN_HIDE:String = "LoginHide";
private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher();
public static var _user_info:Object = null;
public static function getVersion():String{
return (MochiServices.getVersion());
}
public static function saveUserProperties(_arg1:Object):void{
MochiServices.send("coins_saveUserProperties", _arg1);
}
public static function get loggedIn():Boolean{
return (!((_user_info == null)));
}
public static function triggerEvent(_arg1:String, _arg2:Object):void{
_dispatcher.triggerEvent(_arg1, _arg2);
}
public static function addEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.addEventListener(_arg1, _arg2);
}
public static function getUserInfo():void{
MochiServices.send("coins_getUserInfo");
}
public static function showLoginWidget(_arg1:Object=null):void{
MochiServices.setContainer();
MochiServices.bringToTop();
MochiServices.send("coins_showLoginWidget", {options:_arg1});
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.removeEventListener(_arg1, _arg2);
}
public static function requestLogin():void{
MochiServices.send("coins_requestLogin");
}
public static function getAPIURL():String{
if (!_user_info){
return (null);
};
return (_user_info.api_url);
}
public static function hideLoginWidget():void{
MochiServices.send("coins_hideLoginWidget");
}
public static function getAPIToken():String{
if (!_user_info){
return (null);
};
return (_user_info.api_token);
}
MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{
_user_info = _arg1;
});
MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{
_user_info = null;
});
}
}//package mochi.as3
Section 9
//MochiSync (mochi.as3.MochiSync)
package mochi.as3 {
import flash.utils.*;
public dynamic class MochiSync extends Proxy {
private var _syncContainer:Object;
public static var SYNC_PROPERTY:String = "UpdateProperty";
public static var SYNC_REQUEST:String = "SyncRequest";
public function MochiSync():void{
_syncContainer = {};
}
public function triggerEvent(_arg1:String, _arg2:Object):void{
switch (_arg1){
case SYNC_REQUEST:
MochiServices.send("sync_syncronize", _syncContainer);
break;
case SYNC_PROPERTY:
_syncContainer[_arg2.name] = _arg2.value;
break;
};
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){
return (_syncContainer[_arg1]);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{
var _local3:String;
if (_syncContainer[_arg1] == _arg2){
return;
};
_local3 = _arg1.toString();
_syncContainer[_local3] = _arg2;
MochiServices.send("sync_propUpdate", {name:_local3, value:_arg2});
}
}
}//package mochi.as3
Section 10
//MochiUserData (mochi.as3.MochiUserData)
package mochi.as3 {
import flash.events.*;
import flash.utils.*;
import flash.net.*;
public class MochiUserData extends EventDispatcher {
public var callback:Function;// = null
public var error:Event;// = null
public var key:String;// = null
public var operation:String;// = null
public var data;// = null
public var _loader:URLLoader;
public function MochiUserData(_arg1:String="", _arg2:Function=null){
key = null;
data = null;
error = null;
operation = null;
callback = null;
super();
this.key = _arg1;
this.callback = _arg2;
}
public function securityErrorHandler(_arg1:SecurityErrorEvent):void{
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + _arg1.toString())));
}
public function putEvent(_arg1):void{
request("put", serialize(_arg1));
}
public function request(_arg1:String, _arg2:ByteArray):void{
var api_url:String;
var api_token:String;
var args:URLVariables;
var req:URLRequest;
var _operation = _arg1;
var _data = _arg2;
operation = _operation;
api_url = MochiSocial.getAPIURL();
api_token = MochiSocial.getAPIToken();
if ((((api_url == null)) || ((api_token == null)))){
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, "not logged in"));
return;
};
_loader = new URLLoader();
args = new URLVariables();
args.op = _operation;
args.key = key;
req = new URLRequest((((MochiSocial.getAPIURL() + "/") + "MochiUserData?") + args.toString()));
req.method = URLRequestMethod.POST;
req.contentType = "application/x-mochi-userdata";
req.requestHeaders = [new URLRequestHeader("x-mochi-services-version", MochiServices.getVersion()), new URLRequestHeader("x-mochi-api-token", api_token)];
req.data = _data;
_loader.dataFormat = URLLoaderDataFormat.BINARY;
_loader.addEventListener(Event.COMPLETE, completeHandler);
_loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
_loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
try {
_loader.load(req);
} catch(e:SecurityError) {
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + e.toString())));
};
}
public function completeHandler(_arg1:Event):void{
var event = _arg1;
try {
if (_loader.data.length){
data = deserialize(_loader.data);
} else {
data = null;
};
} catch(e:Error) {
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("deserialize error: " + e.toString())));
return;
};
if (callback != null){
performCallback();
} else {
dispatchEvent(event);
};
close();
}
public function performCallback():void{
try {
callback(this);
} catch(e:Error) {
trace(("[MochiUserData] exception during callback: " + e));
};
}
public function serialize(_arg1):ByteArray{
var _local2:ByteArray;
_local2 = new ByteArray();
_local2.objectEncoding = ObjectEncoding.AMF3;
_local2.writeObject(_arg1);
_local2.compress();
return (_local2);
}
public function errorHandler(_arg1:IOErrorEvent):void{
data = null;
error = _arg1;
if (callback != null){
performCallback();
} else {
dispatchEvent(_arg1);
};
close();
}
public function getEvent():void{
request("get", serialize(null));
}
override public function toString():String{
return ((((((((("[MochiUserData operation=" + operation) + " key=\"") + key) + "\" data=") + data) + " error=\"") + error) + "\"]"));
}
public function close():void{
if (_loader){
_loader.removeEventListener(Event.COMPLETE, completeHandler);
_loader.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler);
_loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
_loader.close();
_loader = null;
};
error = null;
callback = null;
}
public function deserialize(_arg1:ByteArray){
_arg1.objectEncoding = ObjectEncoding.AMF3;
_arg1.uncompress();
return (_arg1.readObject());
}
public static function get(_arg1:String, _arg2:Function):void{
var _local3:MochiUserData;
_local3 = new MochiUserData(_arg1, _arg2);
_local3.getEvent();
}
public static function put(_arg1:String, _arg2, _arg3:Function):void{
var _local4:MochiUserData;
_local4 = new MochiUserData(_arg1, _arg3);
_local4.putEvent(_arg2);
}
}
}//package mochi.as3
Section 11
//ag_intro_mc_3 (ninja_fla.ag_intro_mc_3)
package ninja_fla {
import flash.display.*;
public dynamic class ag_intro_mc_3 extends MovieClip {
public function ag_intro_mc_3(){
addFrameScript(0, frame1, 217, frame218);
}
function frame218(){
MovieClip(root).nextFrame();
}
function frame1(){
MovieClip(root).stop();
gotoAndPlay(2);
}
}
}//package ninja_fla
Section 12
//allSounds_6 (ninja_fla.allSounds_6)
package ninja_fla {
import flash.display.*;
public dynamic class allSounds_6 extends MovieClip {
public function allSounds_6(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package ninja_fla
Section 13
//MainTimeline (ninja_fla.MainTimeline)
package ninja_fla {
import flash.events.*;
import flash.display.*;
import mochi.as3.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.system.*;
import flash.geom.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var japan:japanImgClass;
public var btShadow:btShadowImgClass;
public var LOADER:Boolean;
public var loader:Loader;
public var floor:Array;
public var white:Array;
public var agi_url:String;
public var temple:templeImgClass;
public var bm:BitmapData;
public var tree2:treeImgClass;
public var mina:Array;
public var localver:int;
public var btAbility:btAbilityImgClass;
public var timetxt:timetxtImgClass;
public var walll2:walll2ImgClass;
public var red:redImgClass;
public var spbas:spbasImgClass;
public var treey:Number;
public var btSubmitClick:btSubmitClickImgClass;
public var dragond:Array;
public var mtime:int;
public var dragonp:Array;
public var hole:Array;
public var stepsSnd:stepsSndClass;
public var btPause:btPauseImgClass;
public var dsrcnt:int;
public var dragons:int;
public var FR:int;
public var statue1:statue1ImgClass;
public var statue2:statue2ImgClass;
public var statue3:statue1ImgClass;
public var statue4:statue2ImgClass;
public var btMenu:btMenuImgClass;
public var lampI1:lamp2ImgClass;
public var lampI2:lamp2ImgClass;
public var lampI4:lamp2ImgClass;
public var back:Array;
public var lampI3:lamp2ImgClass;
public var btMusic:btMusicImgClass;
public var exploSnd:exploSndClass;
public var btSubmitTime:btSubmitTimeImgClass;
public var agi;
public var scoreTypes:Array;
public var gameKey:String;
public var mouseevent:MouseEvent;
public var ARMOR:Boolean;
public var shad:Array;
public var tnt:Array;
public var wallr2:wallr2ImgClass;
public var track:trackImgClass;
public var _mochiads_game_id:String;
public var levtim:int;
public var punchSnd:punchSndClass;
public var levSt:int;
public var ninshapp:int;
public var mooni:moonImgClass;
public var author:authorImgClass;
public var musCh:SoundChannel;
public var moony:Number;
public var intromsg:intromsgImgClass;
public var rockb:Array;
public var DOMAINOK:Boolean;
public var o1:Object;
public var tick:int;
public var musSnd:musSndClass;
public var btEnter:btEnterImgClass;
public var o2:Object;
public var btMenub:btMenubImgClass;
public var ninjamx:Number;
public var ninjamy:Number;
public var starSnd:starSndClass;
public var ninsha:ninjaImgClass;
public var gatitle:titleImgClass;
public var levA:int;
public var ninshab:Array;
public var boardID1:String;
public var boardID2:String;
public var levT:int;
public var levP:int;
public var backscr:backscrImgClass;
public var ninshap:Array;
public var lamp:Array;
public var levN:int;
public var levcli:int;
public var floorp:Array;
public var varStats:URLVariables;
public var ledSound:led2ImgClass;
public var gameSt:int;
public var MultCnt:int;
public var ninjaox:Number;
public var stepsCh:SoundChannel;
public var devKey:String;
public var besttxt:besttxtImgClass;
public var urlRequest:URLRequest;
public var levcnt:int;
public var btAgain:btAgainImgClass;
public var redDie:int;
public var DEBUG:Boolean;
public var fire:Boolean;
public var MultSpd:Number;
public var swordSnd:swordSndClass;
public var allSounds:MovieClip;
public var bclicktxt:bclicktxtImgClass;
public var sendrandom:int;
public var star:Array;
public var floorIx:int;
public var chompSnd:chompSndClass;
public var pauseOn:Boolean;
public var dscnt;
public var doori:Array;
public var ninjaSnd:ninjaSndClass;
public var dooro:Array;
public var ninja:ninjaImgClass;
public var laserSt:int;
public var starmanSnd:starmanSndClass;
public var endSnd:endSndClass;
public var jumpcnt:int;
public var laserSnd:laserSndClass;
public var reqStats:URLRequest;
public var btPlay:btPlayImgClass;
public var rockCh:SoundChannel;
public var ledPause:led2ImgClass;
public var transf:SoundTransform;
public var btMore:btMoreImgClass;
public var loadsymbperc:MovieClip;
public var spearSnd:punch3SndClass;
public var base:baseImgClass;
public var ledMusic:led2ImgClass;
public var congrat:congratImgClass;
public var LMB:Boolean;
public var musicOn:Boolean;
public var jumpbcnt:int;
public var moon:moonImgClass;
public var ledShadow:led2ImgClass;
public var ns1:int;
public var redlife:redlifeImgClass;
public var ns0:int;
public var floorpw:int;
public var btSpeed:btSpeedImgClass;
public var ninjad:int;
public var besttype:int;
public var floorpm:int;
public var ninjam:int;
public var ninjai:ninjaImgClass;
public var ninjap:int;
public var shadowOn:Boolean;
public var evilSnd:evilSndClass;
public var help:helpImgClass;
public var soundOn:Boolean;
public var fireSnd:fireSndClass;
public var jumpbst:Boolean;
public var jumpbmed:int;
public var loadStats:URLLoader;
public var rock:Array;
public var local:SharedObject;
public var allImages:MovieClip;
public var fall:Boolean;
public var coverI:coverImgClass;
public var btRanking:btRankingImgClass;
public var levOrd:Array;
public var elev:Array;
public var tree:treeImgClass;
public var cover:Bitmap;
public var playname:playnameImgClass;
public var introt:int;
public var ninshabp:int;
public var loadtxt:TextField;
public var rockSnd:rockSndClass;
public var MultSt:Boolean;
public var spear:Array;
public var btSound:btSoundImgClass;
public var domainfault:MovieClip;
public var walll:Array;
public var wallr:Array;
public var clicks:int;
public var clicktxt:clicktxtImgClass;
public var part:Array;
public var dragonType:int;
public function MainTimeline(){
addFrameScript(0, frame1, 1, frame2, 3, frame4, 9, frame10, 15, frame16, 21, frame22, 27, frame28, 33, frame34, 34, frame35);
}
public function checkWhite():void{
var _local1:int;
var _local2:int;
_local1 = 0;
_local2 = 0;
_local1 = 0;
while (_local1 < 8) {
if (((!((white[_local1].f == levP))) || (!(white[_local1].live)))){
} else {
if (white[_local1].t > 0){
white[_local1].t--;
} else {
if (white[_local1].t == 0){
white[_local1].visible = true;
};
white[_local1].x = (white[_local1].x + white[_local1].dx);
if (++white[_local1].m >= 6){
white[_local1].m = 0;
if (++white[_local1].p >= 2){
white[_local1].p = 0;
};
};
white[_local1].gotoAndStop((((1 + (white[_local1].d * 2)) + (white[_local1].s * 4)) + white[_local1].p));
if ((((white[_local1].s == 0)) && ((Math.abs((ninja.x - white[_local1].x)) < 32)))){
soundPlay(swordSnd);
throwNinja();
white[_local1].s = 1;
return;
};
};
};
_local1++;
};
_local1 = 0;
while (_local1 < 8) {
if (!star[_local1].visible){
} else {
_local2 = 0;
while (_local2 < 8) {
if (((!(white[_local2].visible)) || (!(white[_local2].live)))){
} else {
if (white[_local2].f != star[_local1].f){
} else {
if (Math.abs((star[_local1].x - white[_local2].x)) < 20){
soundPlay(starmanSnd);
star[_local1].visible = false;
white[_local2].gotoAndStop((9 + white[_local2].d));
white[_local2].y = (white[_local2].y + 10);
white[_local2].live = false;
};
};
};
_local2++;
};
};
_local1++;
};
}
public function frmbestmImg():void{
btPlay.y = -5000;
btPlay.visible = false;
btRanking.y = -5000;
btRanking.visible = false;
btMore.y = -5000;
btMore.visible = false;
menubaseImg();
btSpeed.x = 150;
btSpeed.y = 120;
btSpeed.visible = true;
btAbility.x = 150;
btAbility.y = 200;
btAbility.visible = true;
btMenub.x = 150;
btMenub.y = 280;
btMenub.visible = true;
}
public function timeStr(_arg1:int):String{
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:String;
_local2 = (_arg1 / 2400);
_local3 = ((_arg1 % 2400) / 40);
_local4 = ((_arg1 % 40) / 4);
_local5 = "";
if (_local2 < 10){
_local5 = (_local5 + "0");
};
_local5 = (_local5 + (String(_local2) + ":"));
if (_local3 < 10){
_local5 = (_local5 + "0");
};
_local5 = (_local5 + ((String(_local3) + ".") + String(_local4)));
return (_local5);
}
public function dropAll():void{
var _local1:int;
_local1 = 0;
_local1 = 1;
while (_local1 <= (levT + 1)) {
floor[_local1].y++;
if (_local1 > levT){
break;
};
back[_local1].y++;
walll[_local1].y++;
wallr[_local1].y++;
doori[_local1].y++;
dooro[_local1].y++;
lamp[_local1].y++;
elev[_local1].y++;
shad[_local1].y++;
_local1++;
};
_local1 = 0;
while (_local1 < 32) {
if (mina[_local1].visible){
if (++mina[_local1].y >= base.y){
mina[_local1].visible = false;
};
};
if (tnt[_local1].visible){
if (++tnt[_local1].y >= base.y){
tnt[_local1].visible = false;
};
};
if (((white[_local1].visible) || (white[_local1].live))){
if (++white[_local1].y >= base.y){
white[_local1].visible = false;
white[_local1].live = false;
};
};
if (spear[_local1].visible){
spear[_local1].yi++;
if (++spear[_local1].y >= base.y){
spear[_local1].visible = false;
};
};
if (rockb[_local1].visible){
rock[_local1].y++;
if (++rockb[_local1].y >= base.y){
rockb[_local1].visible = false;
rock[_local1].visible = false;
};
};
if (hole[_local1].visible){
if (++hole[_local1].y >= base.y){
hole[_local1].visible = false;
};
};
if (floorp[_local1].visible){
if (++floorp[_local1].y >= base.y){
floorp[_local1].visible = false;
if (_local1 == floorpm){
floorpm = -1;
};
};
};
_local1++;
};
ninja.y++;
red.y++;
spbas.y++;
if (spbas.y >= base.y){
spbas.visible = false;
};
moony = (moony + 0.05);
moon.y = moony;
treey = (treey + 0.1);
tree.y = treey;
tree2.y = (treey - 50);
statue1.y++;
statue2.y++;
statue3.y++;
statue4.y++;
_local1 = 0;
while (_local1 < dragons) {
if (dragonp[_local1].y < base.y){
if (++dragonp[_local1].y >= base.y){
dragonp[_local1].visible = false;
};
};
_local1++;
};
walll2.y++;
wallr2.y++;
help.y++;
}
public function reinitWhite():void{
var _local1:int;
_local1 = 0;
_local1 = 0;
while (_local1 < 16) {
if (white[_local1].f == levP){
white[_local1].x = white[_local1].xi;
white[_local1].t = white[_local1].ti;
white[_local1].s = 0;
white[_local1].visible = false;
};
_local1++;
};
}
public function introTimer():void{
tick++;
if (ninjai.y < 140){
stepsCh.stop();
gameSt = -1;
gotoAndStop("game");
};
if (ninjai.x < 430){
ninjai.width = (ninjai.width * 0.995);
ninjai.height = (ninjai.height * 0.995);
ninjai.x = (ninjai.x + 6);
ninjai.y = (ninjai.y - 1.1);
if (ninjai.x >= 430){
stepsCh.stop();
ninjaSnd.play();
intromsg.visible = true;
ninjad = 3;
introt = tick;
};
};
if ((((ninjai.x >= 430)) && (((tick - introt) > 80)))){
if (ninjad == 3){
stepsCh = stepsSnd.play(0, 100);
soundVol(stepsCh, 0.6);
ninjad = 2;
};
ninjai.width = (ninjai.width * 0.99);
ninjai.height = (ninjai.height * 0.99);
ninjai.x = (ninjai.x + 0.8);
ninjai.y = (ninjai.y - 2);
};
if (++ninjam >= 4){
ninjam = 0;
if (++ninjap >= 2){
ninjap = 0;
};
};
ninjai.gotoAndStop(((1 + (ninjad * 2)) + ninjap));
}
public function loadComplete(_arg1:Event):void{
agi = _arg1.currentTarget.content;
addChild(agi);
agi.init(devKey, gameKey);
}
public function initAllImages():void{
addChild(backscr);
backscr.x = 0;
backscr.y = 0;
addChild(japan);
addChild(gatitle);
addChild(author);
addChild(lampI1);
addChild(lampI2);
addChild(lampI3);
addChild(lampI4);
addChild(playname);
addChild(btEnter);
addChild(btPlay);
addChild(btRanking);
addChild(btMore);
addChild(btSpeed);
addChild(btAbility);
addChild(btMenub);
addChild(intromsg);
addChild(track);
addChild(temple);
addChild(mooni);
addChild(ninjai);
initGameImages();
addChild(cover);
cover.x = 0;
cover.y = 0;
}
public function domainfaultClick(_arg1:MouseEvent):void{
var _local2:URLRequest;
_local2 = new URLRequest("http://www.mochimedia.com/games/nano-ninja/");
navigateToURL(_local2);
}
function frame10(){
frmmenuImg();
gameSt = 0;
stop();
}
public function btMusicClick(_arg1:MouseEvent):void{
if (musicOn){
musicOn = false;
ledMusic.gotoAndStop(2);
soundVol(musCh, 0);
} else {
musicOn = true;
ledMusic.gotoAndStop(1);
if (!pauseOn){
soundVol(musCh, 0.5);
};
};
}
public function frminitImg():void{
menubaseImg();
playname.x = 50;
playname.y = 166;
playname.visible = true;
btEnter.x = 196;
btEnter.y = 230;
btEnter.visible = true;
}
function frame16(){
frmgameImg();
redDie = 0;
dragond = new Array(0, 70, 80, 80, 80, 80, 80, 80, 70, 0, 0);
floorpm = -1;
floorpw = 0;
dsrcnt = 0;
ninjaox = 0;
jumpcnt = 0;
jumpbcnt = 0;
jumpbmed = 0;
jumpbst = false;
MultSt = false;
MultCnt = 0;
MultSpd = 0;
dscnt = 0;
laserSt = 1;
shad[1].alpha = 0;
ninja.gotoAndStop(3);
ninjad = 1;
levP = 1;
levN = 2;
levA = levOrd[levP];
levSt = 0;
initLev(levP);
initLev((levP + 1));
initLev((levP + 2));
initLev((levP + 3));
ninjamx = 0;
ninjamy = 0;
tick = 50;
mtime = 0;
clicks = 0;
levcnt = levP;
levtim = 0;
levcli = 0;
if (soundOn){
ledSound.gotoAndStop(1);
} else {
soundVol(musCh, 0);
ledSound.gotoAndStop(2);
};
musCh = musSnd.play(0, 1000);
if (musicOn){
soundVol(musCh, 0.5);
ledMusic.gotoAndStop(1);
} else {
soundVol(musCh, 0);
ledMusic.gotoAndStop(2);
};
pauseOn = false;
ledPause.gotoAndStop(1);
if (ninshabp == 0){
btShadow.visible = false;
ledShadow.visible = false;
besttxt.visible = false;
bclicktxt.visible = false;
} else {
showBest();
};
gameSt = 1;
stop();
}
public function btRankingClick(_arg1:MouseEvent):void{
gameSt = -1;
gotoAndStop("bestm");
}
function frame1(){
stage.showDefaultContextMenu = false;
stage.quality = StageQuality.BEST;
DOMAINOK = true;
ARMOR = true;
DEBUG = false;
LOADER = false;
if (ARMOR){
LOADER = true;
};
_mochiads_game_id = "93ee515650012a7f";
if (((!(DEBUG)) && (!(ARMOR)))){
MochiServices.connect(_mochiads_game_id, root);
};
o1 = {n:[12, 1, 0, 2, 4, 10, 14, 13, 3, 6, 3, 10, 4, 12, 12, 11], f:function (_arg1:Number, _arg2:String):String{
if (_arg2.length == 16){
return (_arg2);
};
return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16))));
}};
boardID1 = o1.f(0, "");
o2 = {n:[7, 7, 14, 5, 4, 1, 11, 6, 9, 7, 3, 0, 4, 10, 7, 12], f:function (_arg1:Number, _arg2:String):String{
if (_arg2.length == 16){
return (_arg2);
};
return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16))));
}};
boardID2 = o2.f(0, "");
if (((ARMOR) && ((this.root.loaderInfo.url.indexOf("armorgames.com") == -1)))){
ARMOR = false;
DOMAINOK = false;
};
agi_url = "http://agi.armorgames.com/assets/agi/AGI.swf";
if (ARMOR){
Security.allowDomain(agi_url);
};
devKey = "4ba19bc6c8eb8c926b46b0f3dd8e6864";
gameKey = "nano-ninja";
urlRequest = new URLRequest(agi_url);
loader = new Loader();
}
function frame28(){
frmbestImg();
if (besttype == 1){
MochiScores.showLeaderboard({boardID:boardID1, res:"550x400"});
} else {
MochiScores.showLeaderboard({boardID:boardID2, res:"550x400"});
};
}
function frame2(){
domainfault.visible = false;
if (LOADER){
addEventListener(Event.ENTER_FRAME, handleProgress);
stop();
} else {
loadtxt.visible = false;
};
domainfault.addEventListener(MouseEvent.CLICK, domainfaultClick);
}
public function handleProgress(_arg1:Event):void{
var _local2:int;
var _local3:int;
var _local4:int;
_local2 = stage.loaderInfo.bytesLoaded;
_local3 = stage.loaderInfo.bytesTotal;
_local4 = ((_local2 * 100) / _local3);
loadtxt.text = String(_local4);
if (_local2 >= _local3){
removeEventListener(Event.ENTER_FRAME, handleProgress);
if (!DOMAINOK){
loadtxt.visible = false;
loadsymbperc.visible = false;
domainfault.x = 0;
domainfault.y = 90;
domainfault.visible = true;
} else {
if (ARMOR){
play();
} else {
gotoAndPlay("init");
};
};
};
}
function frame4(){
stage.tabChildren = false;
allImages.visible = false;
allSounds.visible = false;
if (!ARMOR){
MochiBot.track(this, "14eb9d1d");
};
sendrandom = 0;
sendrandom = Math.floor((Math.random() * 100));
backscr = new backscrImgClass();
japan = new japanImgClass();
gatitle = new titleImgClass();
author = new authorImgClass();
lampI1 = new lamp2ImgClass();
lampI2 = new lamp2ImgClass();
lampI3 = new lamp2ImgClass();
lampI4 = new lamp2ImgClass();
playname = new playnameImgClass();
btEnter = new btEnterImgClass();
btPlay = new btPlayImgClass();
btRanking = new btRankingImgClass();
btMore = new btMoreImgClass();
btSpeed = new btSpeedImgClass();
btAbility = new btAbilityImgClass();
btMenub = new btMenubImgClass();
intromsg = new intromsgImgClass();
track = new trackImgClass();
temple = new templeImgClass();
mooni = new moonImgClass();
ninjai = new ninjaImgClass();
shad = new Array(32);
elev = new Array(32);
lamp = new Array(32);
floor = new Array(32);
back = new Array(32);
walll = new Array(32);
wallr = new Array(32);
doori = new Array(32);
dooro = new Array(32);
star = new Array(32);
mina = new Array(32);
tnt = new Array(32);
part = new Array(128);
spear = new Array(32);
white = new Array(32);
rock = new Array(32);
rockb = new Array(32);
hole = new Array(32);
floorp = new Array(32);
dragonp = new Array(16);
dragons = 9;
dragonType = 1;
ninja = new ninjaImgClass();
ninsha = new ninjaImgClass();
red = new redImgClass();
redlife = new redlifeImgClass();
statue1 = new statue1ImgClass();
statue2 = new statue2ImgClass();
statue3 = new statue1ImgClass();
statue4 = new statue2ImgClass();
moon = new moonImgClass();
tree = new treeImgClass();
tree2 = new treeImgClass();
walll2 = new walll2ImgClass();
wallr2 = new wallr2ImgClass();
spbas = new spbasImgClass();
base = new baseImgClass();
ledSound = new led2ImgClass();
ledMusic = new led2ImgClass();
ledPause = new led2ImgClass();
ledShadow = new led2ImgClass();
btMenu = new btMenuImgClass();
btSound = new btSoundImgClass();
btMusic = new btMusicImgClass();
btPause = new btPauseImgClass();
btShadow = new btShadowImgClass();
timetxt = new timetxtImgClass();
clicktxt = new clicktxtImgClass();
besttxt = new besttxtImgClass();
bclicktxt = new bclicktxtImgClass();
help = new helpImgClass();
congrat = new congratImgClass();
btAgain = new btAgainImgClass();
btSubmitTime = new btSubmitTimeImgClass();
btSubmitClick = new btSubmitClickImgClass();
coverI = new coverImgClass();
bm = new BitmapData(550, 400, true, 0);
bm.draw(coverI);
cover = new Bitmap(bm);
levOrd = new Array(0, 2, 1, 4, 5, 11, 9, 18, 16, 17, 6, 8, 12, 3, 10, 7, 14, 15, 13, 22, 21);
levT = 20;
initAllImages();
frminitClr();
frmmenuClr();
frmintroClr();
frmgameClr();
frminitImg();
FR = 2;
gameSt = -1;
levP = 1;
levN = 2;
levA = 0;
levSt = 0;
ninjad = 0;
ninjap = 0;
ninjam = 0;
fire = false;
fall = false;
mtime = 0;
clicks = 0;
besttype = 1;
floorIx = 0;
ninjamx = 0;
ninjamy = 0;
moony = 0;
treey = 0;
ninshap = new Array((((5 * 60) * 40) * 2));
ninshab = new Array((((5 * 60) * 40) * 2));
ninshapp = 0;
ninshabp = 0;
ns0 = 0;
ns1 = 0;
ninshapp = 0;
while (ninshapp < (((5 * 60) * 40) * 2)) {
ninshap[ninshapp] = ns0;
ninshab[ninshapp] = ns0;
ninshapp++;
};
pauseOn = false;
shadowOn = true;
levcnt = 0;
levtim = 0;
levcli = 0;
tick = 0;
stage.addEventListener(Event.ENTER_FRAME, fFrame);
LMB = false;
stage.addEventListener(KeyboardEvent.KEY_DOWN, fkeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, fkeyUp);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
musicOn = true;
soundOn = true;
musSnd = new musSndClass();
laserSnd = new laserSndClass();
exploSnd = new exploSndClass();
stepsSnd = new stepsSndClass();
ninjaSnd = new ninjaSndClass();
starSnd = new starSndClass();
starmanSnd = new starmanSndClass();
rockSnd = new rockSndClass();
fireSnd = new fireSndClass();
chompSnd = new chompSndClass();
evilSnd = new evilSndClass();
endSnd = new endSndClass();
swordSnd = new swordSndClass();
punchSnd = new punchSndClass();
spearSnd = new punch3SndClass();
musCh = new SoundChannel();
rockCh = new SoundChannel();
transf = new SoundTransform();
reqStats = new URLRequest("http://www.canufit.com/ninja/ninlev.php");
reqStats.method = URLRequestMethod.POST;
loadStats = new URLLoader();
loadStats.dataFormat = URLLoaderDataFormat.TEXT;
local = SharedObject.getLocal("local");
localver = 26;
if (local.data.ver == localver){
loadNinsha();
} else {
local.data.clicks = 1000000;
};
playname.txt.borderColor = 0x999999;
playname.txt.border = true;
playname.txt.backgroundColor = 0x2C2C2C;
playname.txt.background = true;
playname.txt.maxChars = 20;
stage.focus = playname.txt;
if (((!((local.data.name == undefined))) && (!((local.data.name == ""))))){
playname.txt.text = local.data.name;
} else {
playname.txt.text = "your name";
};
btEnter.addEventListener(MouseEvent.CLICK, btEnterClick);
btPlay.addEventListener(MouseEvent.CLICK, btPlayClick);
btRanking.addEventListener(MouseEvent.CLICK, btRankingClick);
btMore.addEventListener(MouseEvent.CLICK, btMoreClick);
scoreTypes = new Array();
btSpeed.addEventListener(MouseEvent.CLICK, btSpeedClick);
btAbility.addEventListener(MouseEvent.CLICK, btAbilityClick);
btMenub.addEventListener(MouseEvent.CLICK, btMenubClick);
btMenu.addEventListener(MouseEvent.CLICK, btMenuClick);
btSound.addEventListener(MouseEvent.CLICK, btSoundClick);
btMusic.addEventListener(MouseEvent.CLICK, btMusicClick);
btPause.addEventListener(MouseEvent.CLICK, btPauseClick);
btShadow.addEventListener(MouseEvent.CLICK, btShadowClick);
btAgain.addEventListener(MouseEvent.CLICK, btAgainClick);
btSubmitTime.addEventListener(MouseEvent.CLICK, btSubmitTimeClick);
btSubmitClick.addEventListener(MouseEvent.CLICK, btSubmitClickClick);
gameSt = -2;
if (ARMOR){
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
loader.load(urlRequest);
};
stop();
}
public function reinitTnt():void{
var _local1:int;
_local1 = 0;
while (_local1 < 8) {
if (tnt[_local1].f == levP){
tnt[_local1].visible = true;
};
_local1++;
};
}
public function fkeyDown(_arg1:KeyboardEvent):void{
var _local2:int;
_local2 = _arg1.keyCode;
if (gameSt == -2){
if (_local2 == 13){
checkName();
};
};
if (gameSt != 1){
return;
};
if ((((_local2 == 32)) || ((_local2 == 88)))){
LMBtrue();
};
}
function frame22(){
frmintroImg();
introt = 0;
if (soundOn){
stepsCh = stepsSnd.play(0, 100);
soundVol(stepsCh, 1);
};
ninjad = 1;
gameSt = 2;
stop();
}
function frame34(){
gotoAndStop("bestm");
}
function frame35(){
frmbestmImg();
stop();
}
public function initRock(_arg1:int, _arg2:int):int{
var _local3:int;
_local3 = 0;
_local3 = 0;
while (rock[_local3].visible) {
_local3++;
};
rock[_local3].x = _arg2;
rock[_local3].y = (floor[_arg1].y - 84);
rock[_local3].visible = true;
rock[_local3].f = _arg1;
rock[_local3].t = 0;
rockb[_local3].x = _arg2;
rockb[_local3].y = (floor[_arg1].y - 96);
rockb[_local3].visible = true;
rockb[_local3].height = 8;
return (_local3);
}
public function fFrame(_arg1:Event):void{
var _local2:int;
_local2 = 0;
if (gameSt == 1){
gameTimer();
};
if (gameSt == 2){
introTimer();
};
}
public function initSpear(_arg1:int, _arg2:int, _arg3:int):void{
var _local4:int;
_local4 = 0;
_local4 = 0;
while (spear[_local4].visible) {
_local4++;
};
spear[_local4].f = _arg1;
spear[_local4].visible = true;
if (_arg2 > 10){
spear[_local4].xi = _arg2;
spear[_local4].yi = (floor[_arg1].y + 17);
spear[_local4].ti = -1;
spear[_local4].gotoAndStop(3);
} else {
spear[_local4].yi = (floor[_arg1].y - (_arg2 * 10));
spear[_local4].ti = _arg3;
if ((_arg1 % 2)){
spear[_local4].xi = (spbas.x + 26);
spear[_local4].gotoAndStop(1);
} else {
spear[_local4].xi = (spbas.x - 26);
spear[_local4].gotoAndStop(2);
};
};
spear[_local4].x = spear[_local4].xi;
spear[_local4].y = spear[_local4].yi;
spear[_local4].t = spear[_local4].ti;
}
public function btShadowClick(_arg1:MouseEvent):void{
if (shadowOn){
shadowOn = false;
ledShadow.gotoAndStop(2);
ninsha.visible = false;
} else {
shadowOn = true;
ledShadow.gotoAndStop(1);
};
}
public function checkRock():void{
var _local1:int;
_local1 = 0;
while (_local1 < 8) {
if (rock[_local1].f != levP){
} else {
if ((ninja.y - rock[_local1].y) > 15){
} else {
if (Math.abs((ninja.x - rock[_local1].x)) < 46){
if ((((((ninjad == 0)) && (((ninja.x - rock[_local1].x) >= 44)))) || ((((ninjad == 1)) && (((rock[_local1].x - ninja.x) >= 44)))))){
soundPlay(laserSnd);
throwNinja();
} else {
levSt = 2;
};
};
};
};
_local1++;
};
}
public function timerLev10():void{
checkNinjaJump();
checkTnt();
}
public function timerLev12():void{
checkNinjaStop();
checkSpear();
checkWhite();
}
public function fkeyUp(_arg1:KeyboardEvent):void{
var _local2:int;
_local2 = _arg1.keyCode;
if ((((_local2 == 32)) || ((_local2 == 88)))){
LMB = false;
};
}
public function timerLev15():void{
checkNinjaMult(7);
checkDragon();
}
public function timerLev17():void{
checkNinjaStop();
checkSpear();
}
public function timerLev11():void{
checkNinjaStop();
checkSpear();
}
public function timerLev13():void{
checkNinjaJumpBig();
checkHole();
}
public function checkNinjaRun():void{
if (LMB){
if (ninjad == 0){
ninja.x = (ninja.x - 4);
} else {
ninja.x = (ninja.x + 4);
};
} else {
if (ninjad == 0){
ninja.x = (ninja.x + 1);
} else {
ninja.x = (ninja.x - 1);
};
};
}
public function timerLev14():void{
checkNinjaWalk();
checkRock();
}
public function timerLev16():void{
checkNinjaMult(7);
checkFloorp();
}
public function timerLev20():void{
checkNinjaBack();
}
public function timerLev18():void{
checkNinjaJumpBig();
checkHole();
}
public function timerLev19():void{
checkNinjaRun();
}
public function timerLev21():void{
var _local1:String;
var _local2:int;
if ((((levSt == 3)) || ((Math.abs((ninja.x - doori[levP].x)) < 32)))){
return;
};
levSt = 3;
musCh.stop();
soundPlay(endSnd);
congrat.x = 275;
congrat.y = (floor[levP].y - 85);
congrat.visible = true;
if (ARMOR){
congrat.txt1.text = (((((("congratulations!!!\n" + "you've avenged your master\n") + "in ") + timeStr(mtime)) + " with ") + String(clicks)) + " clicks");
} else {
congrat.txt1.text = (((((("congratulations!!!\n\n" + "you've avenged your master\n") + "in ") + timeStr(mtime)) + " with ") + String(clicks)) + " clicks");
};
congrat.sha1.text = congrat.txt1.text;
congrat.txt2.text = ("now you can try to beat\n" + "your own shadow");
congrat.sha2.text = congrat.txt2.text;
btAgain.x = 275;
btAgain.y = (congrat.y + 150);
btAgain.visible = true;
if ((((ninshabp == 0)) || ((ninshapp < ninshabp)))){
ninshabp = ninshapp;
_local2 = 0;
while (_local2 < ninshapp) {
ninshab[_local2] = ninshap[_local2];
_local2++;
};
saveNinsha();
};
if ((((local.data.clicks == undefined)) || ((clicks < local.data.clicks)))){
local.data.clicks = clicks;
local.flush();
};
showBest();
btShadow.visible = true;
ledShadow.visible = true;
levcnt = 0;
levtim = mtime;
levcli = clicks;
sendStats();
_local1 = local.data.name;
if ((Math.floor((mtime / 4)) * 100) >= 130000){
if (ARMOR){
btSubmitTime.x = 190;
btSubmitTime.y = (congrat.y + 57);
btSubmitTime.visible = true;
} else {
MochiScores.setBoardID(boardID1);
MochiScores.submit((Math.floor((mtime / 4)) * 100), _local1);
};
};
if (clicks >= 66){
if (ARMOR){
btSubmitClick.x = 350;
btSubmitClick.y = (congrat.y + 57);
btSubmitClick.visible = true;
} else {
MochiScores.setBoardID(boardID2);
MochiScores.submit(clicks, _local1);
};
};
}
public function timerLev22():void{
if ((((red.alpha > 0)) && ((++dscnt >= 30)))){
dscnt = 0;
doStar(ninjad, 10, 0, 0);
};
checkRed();
moveStar();
if ((((red.alpha > 0)) || ((ninja.y < (floor[levP].y - 15))))){
checkNinjaFlyFast();
} else {
checkNinjaRun();
};
}
public function initWhite(_arg1:int, _arg2:int, _arg3:int, _arg4:Number):void{
var _local5:int;
_local5 = 0;
_local5 = 0;
while (white[_local5].live) {
_local5++;
};
white[_local5].y = (floor[_arg1].y - 15);
if (_arg2 == 0){
white[_local5].xi = dooro[_arg1].x;
white[_local5].d = ((_arg1 - 1) % 2);
} else {
white[_local5].xi = doori[_arg1].x;
white[_local5].d = (_arg1 % 2);
};
white[_local5].live = true;
white[_local5].f = _arg1;
white[_local5].ti = _arg3;
white[_local5].m = 0;
white[_local5].p = 0;
white[_local5].s = 0;
if (white[_local5].d == 0){
white[_local5].dx = -(_arg4);
} else {
white[_local5].dx = _arg4;
};
white[_local5].x = white[_local5].xi;
white[_local5].t = white[_local5].ti;
}
public function menubaseImg():void{
backscr.gotoAndStop(1);
japan.x = 15;
japan.y = 0;
japan.alpha = 0.15;
japan.visible = true;
gatitle.x = 25;
gatitle.y = 20;
gatitle.visible = true;
author.x = 100;
author.y = 360;
author.visible = true;
lampI1.x = 15;
lampI1.y = 15;
lampI1.rotation = 180;
lampI1.visible = true;
lampI2.x = 535;
lampI2.y = 15;
lampI2.rotation = 180;
lampI2.visible = true;
lampI3.x = 15;
lampI3.y = 385;
lampI3.visible = true;
lampI4.x = 535;
lampI4.y = 385;
lampI4.visible = true;
}
public function soundPlay(... _args):void{
if (!soundOn){
return;
};
if (_args.length == 1){
_args[0].play();
} else {
_args[0].play(0, _args[1]);
};
}
public function mouseUpHandler(_arg1:MouseEvent):void{
LMB = false;
}
public function checkFloorp():void{
var _local1:int;
if ((floor[levP].y - ninja.y) > 15){
return;
};
if ((((((floorpm >= 0)) && ((floorp[floorpm].f == levP)))) && (((doori[levP].x - ninja.x) > 40)))){
floorp[floorpm].width = (floorp[floorpm].width - 1.3);
};
_local1 = 0;
while (_local1 < 8) {
if (floorp[_local1].f != levP){
} else {
if (Math.abs((ninja.x - (floorp[_local1].x + (floorp[_local1].width / 2)))) < (8 + (floorp[_local1].width / 2))){
break;
};
};
_local1++;
};
if (_local1 >= 8){
levSt = 2;
};
}
public function checkNinjaJumpBig():void{
if (((LMB) && (!(jumpbst)))){
if (jumpbcnt < 42){
jumpbcnt = (jumpbcnt + 2);
jumpbmed = (jumpbmed + 1);
ninja.height = (ninja.height - 1);
ninja.y = (ninja.y + 0.5);
};
ninja.x = ninjaox;
return;
};
if (jumpbcnt <= 0){
jumpbst = false;
jumpbmed = 0;
ninja.x = ninjaox;
return;
};
if (!jumpbst){
jumpbst = true;
ninja.height = 30;
ninja.y = (floor[levP].y - 15);
};
if (ninjad == 0){
ninja.x = (ninja.x - 2);
} else {
ninja.x = (ninja.x + 2);
};
if (--jumpbcnt >= jumpbmed){
ninja.y = (ninja.y - 3);
} else {
ninja.y = (ninja.y + 3);
};
}
public function checkDragon():void{
if (((dragonp[0].visible) && ((((ninjad == 1)) && (((ninja.x - dragonp[0].x) < 30)))))){
soundPlay(chompSnd);
initDragon(levP);
throwNinja();
};
}
public function soundVol(_arg1:SoundChannel, _arg2:Number):void{
transf = _arg1.soundTransform;
transf.volume = _arg2;
_arg1.soundTransform = transf;
}
public function moveDragon():void{
var _local1:int;
_local1 = 0;
_local1 = 0;
while (_local1 < dragons) {
dragonp[_local1].x = (dragonp[_local1].x + 2.5);
if (Math.abs((dragonp[_local1].x - doori[dragonp[0].f].x)) < 40){
dragonp[_local1].visible = true;
};
if ((dragonp[_local1].x - dooro[dragonp[0].f].x) > 40){
dragonp[_local1].visible = false;
};
_local1++;
};
_local1 = 0;
while (_local1 < dragons) {
if (!dragonp[_local1].visible){
} else {
if (dragonp[_local1].s){
} else {
if ((dragonp[_local1].x - doori[dragonp[0].f].x) < 20){
break;
};
dragonp[_local1].y = (dragonp[_local1].y + dragonp[_local1].d);
if (++dragonp[_local1].c >= dragonp[_local1].m){
dragonp[_local1].c = 0;
dragonp[_local1].d = -(dragonp[_local1].d);
if ((((dragonp[_local1].d < 0)) && (((dooro[dragonp[0].f].x - dragonp[_local1].x) < 50)))){
dragonp[_local1].s = true;
};
};
};
};
_local1++;
};
}
public function doStar(_arg1:int, _arg2:int, _arg3:int, _arg4:int):void{
var _local5:int;
_local5 = 0;
_local5 = 0;
while (star[_local5].visible) {
_local5++;
};
if (_local5 >= _arg2){
return;
};
if (_arg2 == 1){
soundPlay(starSnd);
};
if (_arg3 == 0){
star[_local5].x = ninja.x;
star[_local5].y = ninja.y;
} else {
star[_local5].x = _arg3;
star[_local5].y = _arg4;
};
star[_local5].visible = true;
star[_local5].d = _arg1;
star[_local5].f = levP;
}
public function initMina(_arg1:int):int{
var _local2:int;
_local2 = 0;
_local2 = 0;
while (mina[_local2].visible) {
_local2++;
};
mina[_local2].y = (floor[_arg1].y - 95);
mina[_local2].visible = true;
mina[_local2].f = _arg1;
return (_local2);
}
public function saveNinsha():void{
var _local1:ByteArray;
var _local2:int;
_local1 = new ByteArray();
_local2 = 0;
_local2 = 0;
while (_local2 < ninshabp) {
_local1.writeInt(ninshab[_local2]);
_local2++;
};
local.data.ver = localver;
local.data.ninshabp = ninshabp;
local.data.ninshab = _local1;
local.data.ninshat = mtime;
local.flush();
}
public function checkNinjaJump():void{
if (((LMB) && ((jumpcnt == 0)))){
jumpcnt = 1;
};
if (jumpcnt > 0){
if (ninjad == 0){
ninja.rotation = (ninja.rotation - 12);
} else {
ninja.rotation = (ninja.rotation + 12);
};
if (ninjamx == 0){
if (ninjad == 0){
ninja.x = (ninja.x - 2);
} else {
ninja.x = (ninja.x + 2);
};
jumpcnt++;
if (jumpcnt <= 15){
ninja.y = (ninja.y - 4);
} else {
if (jumpcnt < 30){
ninja.y = (ninja.y + 4);
} else {
jumpcnt = 0;
ninja.rotation = 0;
};
};
};
};
}
public function frmmenuImg():void{
frminitClr();
frmgameClr();
btSpeed.y = -5000;
btSpeed.visible = false;
btAbility.y = -5000;
btAbility.visible = false;
btMenub.y = -5000;
btMenub.visible = false;
menubaseImg();
btPlay.x = 150;
btPlay.y = 130;
btPlay.visible = true;
btRanking.x = 150;
btRanking.y = 200;
btRanking.visible = true;
btMore.x = 100;
btMore.y = 270;
btMore.visible = true;
}
public function checkNinjaStop():void{
if (LMB){
ninja.x = ninjaox;
};
}
public function moveStar():void{
var _local1:int;
_local1 = 0;
_local1 = 0;
while (_local1 < 8) {
if (!star[_local1].visible){
} else {
if (star[_local1].d == 0){
star[_local1].x = (star[_local1].x - 8);
} else {
star[_local1].x = (star[_local1].x + 8);
};
if ((((star[_local1].x < 0)) || ((star[_local1].x > 550)))){
star[_local1].visible = false;
} else {
star[_local1].gotoAndStop(((1 + (star[_local1].d * 2)) + (Math.floor((tick / 2)) % 2)));
if (star[_local1].d != ninjad){
if ((((Math.abs((ninja.x - star[_local1].x)) < 12)) && ((Math.abs((ninja.y - star[_local1].y)) < 15)))){
soundPlay(starmanSnd);
throwNinja();
star[_local1].visible = false;
redDie = 0;
};
};
if ((((red.alpha > 0)) && ((star[_local1].d == ninjad)))){
if ((((Math.abs((red.x - star[_local1].x)) < 24)) && ((Math.abs((red.y - star[_local1].y)) < 30)))){
star[_local1].visible = false;
redDie++;
};
};
red.alpha = ((6 - redDie) * 0.17);
redlife.width = ((6 - redDie) * 40);
};
};
_local1++;
};
}
public function frminitClr():void{
playname.y = -5000;
playname.visible = false;
btEnter.y = -5000;
btEnter.visible = false;
}
public function frmintroImg():void{
frmmenuClr();
frmgameClr();
backscr.gotoAndStop(1);
intromsg.x = 90;
intromsg.y = 120;
intromsg.visible = false;
track.x = 0;
track.y = 150;
track.visible = true;
temple.width = 150;
temple.height = 150.5;
temple.x = 400;
temple.y = 0;
temple.alpha = 0.6;
temple.visible = true;
mooni.x = 25;
mooni.y = 5;
mooni.visible = true;
ninjai.width = 48;
ninjai.height = 60;
ninjai.x = -40;
ninjai.y = 340;
ninjai.visible = true;
}
public function checkHole():void{
var _local1:int;
if ((floor[levP].y - ninja.y) > 15){
return;
};
_local1 = 0;
while (_local1 < 8) {
if (hole[_local1].f != levP){
} else {
if (Math.abs((ninja.x - hole[_local1].x)) < 35){
soundPlay(fireSnd);
throwNinja();
};
};
_local1++;
};
}
public function initHole(_arg1:int, _arg2:int, _arg3:int):void{
var _local4:int;
_local4 = 0;
_local4 = 0;
while (hole[_local4].visible) {
_local4++;
};
hole[_local4].x = _arg2;
hole[_local4].y = floor[_arg1].y;
hole[_local4].visible = true;
hole[_local4].f = _arg1;
hole[_local4].width = _arg3;
}
public function sendStats():void{
var _local1:String;
if (DEBUG){
return;
};
if (ARMOR){
return;
};
if (sendrandom != 0){
return;
};
_local1 = "";
_local1 = (_local1 + ("nam=" + local.data.name));
_local1 = (_local1 + ("&ver=" + "103"));
_local1 = (_local1 + ("&lev=" + String(levcnt)));
_local1 = (_local1 + ("&tim=" + String(levtim)));
_local1 = (_local1 + ("&cli=" + String(levcli)));
varStats = new URLVariables(_local1);
reqStats.data = varStats;
loadStats.load(reqStats);
}
public function initTnt(_arg1:int):int{
var _local2:int;
_local2 = 0;
_local2 = 0;
while (tnt[_local2].visible) {
_local2++;
};
tnt[_local2].y = (floor[_arg1].y - 15);
tnt[_local2].visible = true;
tnt[_local2].f = _arg1;
return (_local2);
}
public function frmgameImg():void{
var _local1:int;
var _local2:int;
var _local3:int;
frmmenuClr();
frmintroClr();
_local1 = 0;
backscr.gotoAndStop(2);
if (ninshabp == 0){
help.x = 50;
help.y = 265;
help.visible = true;
};
_local1 = 1;
while (_local1 <= (levT + 1)) {
floor[_local1].visible = true;
if (_local1 > levT){
break;
};
shad[_local1].visible = true;
walll[_local1].visible = true;
wallr[_local1].visible = true;
_local1++;
};
_local1 = 0;
while (_local1 < 32) {
star[_local1].width = 8;
star[_local1].height = 8;
tnt[_local1].width = 30;
tnt[_local1].height = 30;
white[_local1].live = false;
_local1++;
};
red.alpha = 1;
ninsha.alpha = 0.1;
ninsha.visible = false;
if (ninshabp > 0){
ninsha.visible = true;
};
ninshapp = 0;
statue3.x = 170;
statue3.y = (267 - (levT * 100));
statue3.visible = true;
statue4.x = 280;
statue4.y = (267 - (levT * 100));
statue4.visible = true;
_local1 = 1;
while (_local1 <= levT) {
doori[_local1].visible = true;
dooro[_local1].visible = true;
lamp[_local1].visible = true;
back[_local1].visible = true;
_local1++;
};
moony = -20;
treey = -100;
if (DEBUG){
moony = (moony + (((20 - levT) * 100) * 0.05));
treey = (treey + (((20 - levT) * 100) * 0.1));
};
moon.x = 70;
moon.y = moony;
moon.visible = true;
tree.x = -90;
tree.y = treey;
tree.rotation = 5;
tree.visible = true;
tree2.x = 440;
tree2.y = (treey - 50);
tree2.rotation = -5;
tree2.visible = true;
_local1 = 1;
while (_local1 <= (levT + 1)) {
floor[_local1].x = 0;
floor[_local1].y = (360 - ((_local1 - 1) * 100));
if (_local1 > 5){
floor[_local1].x = ((_local1 - 5) * FR);
floor[_local1].width = (550 - ((_local1 - 5) * (FR * 2)));
};
if (_local1 > levT){
break;
};
doori[_local1].y = (floor[_local1].y - 50);
dooro[_local1].y = doori[_local1].y;
_local2 = ((24 + (_local1 * FR)) + 10);
_local3 = ((526 - (_local1 * FR)) - 10);
if (DEBUG){
_local2 = (_local2 + ((20 - levT) * FR));
_local3 = (_local3 - ((20 - levT) * FR));
};
if ((_local1 % 2) == 1){
doori[_local1].x = _local2;
dooro[_local1].x = _local3;
} else {
doori[_local1].x = _local3;
dooro[_local1].x = _local2;
};
walll[_local1].x = (_local2 - 22);
walll[_local1].y = floor[_local1].y;
wallr[_local1].x = (_local3 + 22);
wallr[_local1].y = floor[_local1].y;
lamp[_local1].x = doori[_local1].x;
lamp[_local1].y = (floor[_local1].y - 79);
elev[_local1].x = dooro[_local1].x;
elev[_local1].y = (floor[_local1].y - 95);
elev[_local1].visible = false;
shad[_local1].alpha = 0.9;
shad[_local1].x = walll[_local1].x;
shad[_local1].y = floor[_local1].y;
shad[_local1].width = (wallr[_local1].x - walll[_local1].x);
back[_local1].x = walll[_local1].x;
back[_local1].y = floor[_local1].y;
back[_local1].width = shad[_local1].width;
_local1++;
};
floorIx = doori[1].x;
ninja.width = 24;
ninja.height = 30;
ninja.x = floorIx;
ninja.y = (360 - 15);
ninja.visible = true;
base.x = 0;
base.y = 365;
base.visible = true;
ledSound.x = 65;
ledSound.y = 384;
ledSound.visible = true;
ledMusic.x = 142;
ledMusic.y = 384;
ledMusic.visible = true;
ledPause.x = 216;
ledPause.y = 384;
ledPause.visible = true;
ledShadow.x = 296;
ledShadow.y = 384;
ledShadow.visible = true;
btMenu.x = 3;
btMenu.y = 376;
btMenu.visible = true;
btSound.x = 71;
btSound.y = 376;
btSound.visible = true;
btMusic.x = 149;
btMusic.y = 376;
btMusic.visible = true;
btPause.x = 222;
btPause.y = 376;
btPause.visible = true;
btShadow.x = 302;
btShadow.y = 376;
btShadow.visible = true;
timetxt.x = 476;
timetxt.y = 377;
timetxt.visible = true;
clicktxt.x = 476;
clicktxt.y = 361;
clicktxt.visible = true;
besttxt.x = 386;
besttxt.y = 377;
besttxt.visible = true;
bclicktxt.x = 386;
bclicktxt.y = 361;
bclicktxt.visible = true;
}
public function loadNinsha():void{
var _local1:ByteArray;
var _local2:int;
_local1 = new ByteArray();
_local2 = 0;
ninshabp = local.data.ninshabp;
_local1 = local.data.ninshab;
_local2 = 0;
while (_local2 < ninshabp) {
ninshab[_local2] = _local1.readInt();
_local2++;
};
}
public function initNinjaAction():void{
jumpcnt = 0;
jumpbcnt = 0;
jumpbmed = 0;
jumpbst = false;
MultSt = false;
MultCnt = 0;
MultSpd = 0;
}
public function initGameImages():void{
var _local1:int;
_local1 = 0;
_local1 = 1;
while (_local1 <= (levT + 1)) {
floor[_local1] = new floorImgClass();
if (_local1 > levT){
break;
};
back[_local1] = new backImgClass();
walll[_local1] = new walllImgClass();
wallr[_local1] = new wallrImgClass();
doori[_local1] = new dooriImgClass();
dooro[_local1] = new dooroImgClass();
lamp[_local1] = new lampImgClass();
elev[_local1] = new elevImgClass();
shad[_local1] = new shadImgClass();
_local1++;
};
_local1 = 0;
while (_local1 < 32) {
star[_local1] = new starImgClass();
mina[_local1] = new minaImgClass();
tnt[_local1] = new tntImgClass();
white[_local1] = new whiteImgClass();
spear[_local1] = new spearImgClass();
rock[_local1] = new rockImgClass();
rockb[_local1] = new rockbImgClass();
_local1++;
};
dragonp[0] = new dragonHead2ImgClass();
dragonp[1] = new dragonMiddleA2ImgClass();
_local1 = 2;
while (_local1 <= (dragons - 2)) {
dragonp[_local1] = new dragonMiddleB2ImgClass();
_local1++;
};
dragonp[_local1] = new dragonTail2ImgClass();
addChild(moon);
addChild(tree);
addChild(tree2);
_local1 = 1;
while (_local1 <= levT) {
addChild(back[_local1]);
addChild(lamp[_local1]);
addChild(doori[_local1]);
addChild(dooro[_local1]);
_local1++;
};
addChild(statue1);
addChild(statue2);
addChild(statue3);
addChild(statue4);
addChild(redlife);
addChild(red);
addChild(ninsha);
addChild(ninja);
_local1 = 1;
while (_local1 <= levT) {
addChild(elev[_local1]);
_local1++;
};
_local1 = 0;
while (_local1 < 128) {
part[_local1] = new partImgClass();
addChild(part[_local1]);
_local1++;
};
_local1 = (dragons - 1);
while (_local1 >= 0) {
if (_local1 == 0){
} else {
if (_local1 == 1){
} else {
if (_local1 < (dragons - 1)){
dragonp[_local1].width = (dragonp[_local1].width * 0.8);
dragonp[_local1].height = (dragonp[_local1].height * 0.8);
} else {
dragonp[_local1].width = (dragonp[_local1].width * 0.6);
dragonp[_local1].height = (dragonp[_local1].height * 0.6);
};
};
};
addChild(dragonp[_local1]);
dragonp[_local1].width = (dragonp[_local1].width * 0.5);
dragonp[_local1].height = (dragonp[_local1].height * 0.5);
_local1--;
};
_local1 = 0;
while (_local1 < 32) {
addChild(rockb[_local1]);
addChild(rock[_local1]);
addChild(spear[_local1]);
addChild(white[_local1]);
white[_local1].width = (white[_local1].width / 2);
white[_local1].height = (white[_local1].height / 2);
addChild(tnt[_local1]);
addChild(mina[_local1]);
addChild(star[_local1]);
_local1++;
};
addChild(walll2);
addChild(wallr2);
_local1 = 1;
while (_local1 <= (levT + 1)) {
if (_local1 <= levT){
addChild(walll[_local1]);
addChild(wallr[_local1]);
addChild(shad[_local1]);
};
addChild(floor[_local1]);
_local1++;
};
_local1 = 0;
while (_local1 < 32) {
floorp[_local1] = new floorpImgClass();
addChild(floorp[_local1]);
hole[_local1] = new holeImgClass();
addChild(hole[_local1]);
_local1++;
};
addChild(spbas);
addChild(help);
addChild(congrat);
addChild(btAgain);
addChild(btSubmitTime);
addChild(btSubmitClick);
addChild(base);
addChild(ledSound);
addChild(ledMusic);
addChild(ledPause);
addChild(ledShadow);
addChild(btMenu);
addChild(btSound);
addChild(btMusic);
addChild(btPause);
addChild(btShadow);
addChild(timetxt);
addChild(clicktxt);
addChild(besttxt);
addChild(bclicktxt);
}
public function btMenubClick(_arg1:MouseEvent):void{
gameSt = -1;
gotoAndStop("menu");
}
public function mouseDownHandler(_arg1:MouseEvent):void{
if (gameSt == -2){
if (playname.txt.text == "your name"){
checkName();
};
};
if (mouseY > 365){
return;
};
LMBtrue();
}
public function checkRed():void{
if (red.alpha <= 0){
return;
};
if (++dsrcnt >= 24){
dsrcnt = 0;
doStar(0, 20, red.x, ((red.y + 30) - (Math.random() * 60)));
};
red.y = (red.y + red.d);
if ((((red.y <= (floor[levP].y - 65))) || ((red.y >= (floor[levP].y - 30))))){
red.d = -(red.d);
};
}
public function gameTimer():void{
var _local1:int;
_local1 = 0;
if (pauseOn){
return;
};
tick++;
if (levSt != 3){
mtime++;
timetxt.txt.text = timeStr(mtime);
timetxt.sha.text = timetxt.txt.text;
levtim++;
};
if ((((levP > dragonp[0].f)) || ((((((levP == dragonp[0].f)) && ((ninjamx == 0)))) && ((Math.abs((ninja.x - doori[levP].x)) > 40)))))){
moveDragon();
};
if ((((laserSt == 0)) && (((Math.floor((tick / 40)) % 5) > 1)))){
laserSt = 1;
_local1 = 0;
while (_local1 < 8) {
if (mina[_local1].visible){
mina[_local1].gotoAndPlay(1);
};
_local1++;
};
};
if ((((laserSt == 1)) && (((Math.floor((tick / 40)) % 5) < 1)))){
laserSt = 0;
_local1 = 0;
while (_local1 < 8) {
if (mina[_local1].visible){
mina[_local1].gotoAndStop(1);
};
_local1++;
};
};
movePart();
if (ninjamx != 0){
ninja.x = (ninja.x - ninjamx);
ninja.y = (ninja.y - ninjamy);
ninjamy = (ninjamy - 0.5);
if ((((((ninjad == 0)) && ((ninja.x >= (floorIx - 2))))) || ((((ninjad == 1)) && ((ninja.x <= (floorIx + 2))))))){
ninja.x = floorIx;
ninja.y = (floor[levP].y - 15);
ninja.rotation = 0;
ninjamx = 0;
ninjamy = 0;
reinitTnt();
reinitSpear();
reinitWhite();
initNinjaAction();
};
};
_local1 = 0;
while (_local1 < 16) {
if (((!(spear[_local1].visible)) || ((spear[_local1].f > levP)))){
} else {
if (spear[_local1].ti == -1){
if ((((spear[_local1].t == 0)) && (((spear[_local1].y - 33) > floor[(spear[_local1].f + 1)].y)))){
spear[_local1].y = (spear[_local1].y - 3);
};
} else {
if (spear[_local1].t > 0){
spear[_local1].t--;
} else {
if ((spear[_local1].f % 2)){
if ((spear[_local1].x - 48) > (walll[spear[_local1].f].x - 3)){
spear[_local1].x = (spear[_local1].x - 3);
};
} else {
if ((spear[_local1].x + 48) < (wallr[spear[_local1].f].x + 3)){
spear[_local1].x = (spear[_local1].x + 3);
};
};
};
};
};
_local1++;
};
if (rock[0].visible){
rock[0].t++;
if (rock[0].t < 22){
rock[0].y = (rock[0].y + 4);
rockb[0].height = (rockb[0].height + 4);
if (rock[0].t == 20){
if (soundOn){
rockCh = rockSnd.play();
soundVol(rockCh, (1 - (Math.abs((rock[0].f - levP)) * 0.2)));
};
};
} else {
if (rock[0].t < 40){
} else {
if (rock[0].t < 61){
rock[0].y = (rock[0].y - 4);
rockb[0].height = (rockb[0].height - 4);
} else {
if (rock[0].t < 85){
} else {
rock[0].t = 0;
};
};
};
};
};
if (levSt == 1){
if (((!((ninjad == 3))) && ((ninja.y <= (floor[levP].y - 65))))){
ninjad = 3;
if (levOrd[levN] == 15){
walll2.visible = true;
wallr2.visible = true;
};
if (levOrd[levN] == 22){
soundPlay(evilSnd);
};
initNinjaAction();
ninja.x = doori[levN].x;
floorIx = ninja.x;
};
ninja.y = (ninja.y - 1);
if (((!(fall)) && ((levN >= 3)))){
dropAll();
};
if (shad[levN].alpha > 0){
shad[levN].alpha = (shad[levN].alpha - 0.01);
};
if (ninja.y <= (floor[levP].y - 115)){
levP++;
levA = levOrd[levP];
if ((levP % 2) == 0){
ninjad = 0;
} else {
ninjad = 1;
};
fall = false;
levSt = 0;
if (levOrd[levP] == 22){
redlife.x = 155;
redlife.y = (floor[levP].y - 94);
redlife.width = 240;
redlife.visible = true;
};
if (levP > levcnt){
sendStats();
levcnt++;
levtim = 0;
levcli = 0;
};
};
};
if (levSt == 2){
ninja.y = (ninja.y + 4);
if (ninja.y >= (floor[(levP - 1)].y - 15)){
levP--;
levA = levOrd[levP];
levN = (levP + 1);
ninja.y = (floor[levP].y - 15);
floorIx = doori[levP].x;
elev[levP].visible = false;
if ((levP % 2) == 0){
ninjad = 0;
} else {
ninjad = 1;
};
levSt = 0;
fall = true;
if ((((floorpm >= 0)) && ((floorp[floorpm].f == (levP + 1))))){
floorp[floorpm].width = floorpw;
};
};
};
if (levSt == 0){
ninjaox = ninja.x;
if (ninjamx == 0){
if (ninjad == 0){
ninja.x = (ninja.x - 2);
} else {
ninja.x = (ninja.x + 2);
};
};
var _local2 = this;
_local2[("timerLev" + levA)]();
};
if (levSt != 3){
if (++ninjam >= 6){
ninjam = 0;
if (++ninjap >= 2){
ninjap = 0;
};
};
ninja.gotoAndStop(((1 + (ninjad * 2)) + ninjap));
};
if (ninjamx == 0){
if ((((ninjad == 1)) && ((ninja.x >= dooro[levP].x)))){
endLevel();
};
if ((((ninjad == 0)) && ((ninja.x <= dooro[levP].x)))){
endLevel();
};
};
if (ninshapp < (((5 * 60) * 40) * 2)){
ns0 = ((((levP << 0) + (levSt << 8)) + (ninja.rotation << 16)) + (ninja.currentFrame << 25));
ns1 = ((((ninja.x << 0) + ((floor[levP].y - ninja.y) << 10)) + (ninja.width << 18)) + (ninja.height << 25));
ninshap[(ninshapp + 0)] = ns0;
ninshap[(ninshapp + 1)] = ns1;
if (((shadowOn) && ((ninshapp < ninshabp)))){
if (((ninshab[(ninshapp + 0)] >> 8) & (0xFF == 1))){
ninsha.visible = false;
} else {
ninsha.visible = true;
};
ninsha.x = (ninshab[(ninshapp + 1)] & 1023);
ninsha.y = (floor[(ninshab[(ninshapp + 0)] & 0xFF)].y - ((ninshab[(ninshapp + 1)] >> 10) & 0xFF));
ninsha.width = ((ninshab[(ninshapp + 1)] >> 18) & 127);
ninsha.height = ((ninshab[(ninshapp + 1)] >> 25) & 127);
ninsha.rotation = ((ninshab[(ninshapp + 0)] >> 16) & 511);
ninsha.gotoAndStop(((ninshab[(ninshapp + 0)] >> 25) & 127));
} else {
ninsha.visible = false;
};
ninshapp = (ninshapp + 2);
} else {
ninsha.visible = false;
};
}
public function checkNinjaBack():void{
if (LMB){
if (ninjad == 0){
if (ninja.x < doori[levP].x){
ninja.x = (ninja.x + 4);
};
} else {
if (ninja.x > doori[levP].x){
ninja.x = (ninja.x - 4);
};
};
};
}
public function timerLev1():void{
checkNinjaStop();
checkLaser();
}
public function btPlayClick(_arg1:MouseEvent):void{
gameSt = -1;
gotoAndStop("intro");
}
public function timerLev3():void{
checkNinjaRun();
checkLaser();
}
public function timerLev7():void{
checkNinjaFly();
checkSpear();
}
public function timerLev8():void{
checkNinjaJumpBig();
checkFloorp();
}
public function checkLaser():void{
var _local1:int;
if (laserSt == 0){
return;
};
_local1 = 0;
while (_local1 < 8) {
if ((((mina[_local1].f == levP)) && ((Math.abs((ninja.x - mina[_local1].x)) < 14)))){
soundPlay(laserSnd);
throwNinja();
};
_local1++;
};
}
public function timerLev5():void{
checkNinjaFly();
checkSpear();
}
public function timerLev6():void{
checkNinjaFly();
checkSpear();
}
public function timerLev9():void{
checkNinjaJump();
checkTnt();
}
public function timerLev2():void{
checkNinjaFire();
moveStar();
checkWhite();
}
public function showBest():void{
besttxt.visible = true;
besttxt.txt.text = timeStr(local.data.ninshat);
besttxt.sha.text = besttxt.txt.text;
bclicktxt.visible = true;
bclicktxt.txt.text = String(local.data.clicks);
bclicktxt.sha.text = bclicktxt.txt.text;
}
public function checkNinjaFlyFast():void{
if (Math.abs((ninja.x - doori[levP].x)) > 60){
ninja.x = (ninja.x - 1.5);
};
if (((LMB) && ((ninja.y > (floor[levP].y - 80))))){
ninja.y = (ninja.y - 3);
};
if (((!(LMB)) && ((ninja.y < (floor[levP].y - 15))))){
ninja.y = (ninja.y + 3);
};
}
public function checkNinjaFly():void{
if (((LMB) && ((ninja.y > (floor[levP].y - 80))))){
ninja.y--;
};
if (((!(LMB)) && ((ninja.y < (floor[levP].y - 15))))){
ninja.y++;
};
}
public function checkNinjaMult(_arg1:int):void{
var _local2:Number;
if (ninjamx > 0){
return;
};
if (((LMB) && (!(MultSt)))){
MultCnt = (MultCnt + _arg1);
MultSt = true;
if (MultCnt < 12){
MultSpd = 3.75;
};
};
if (!LMB){
MultSt = false;
};
ninja.x = ninjaox;
_local2 = -1;
if (ninjad == 1){
_local2 = 1;
};
if (MultCnt >= 12){
MultSpd = 3;
} else {
MultSpd = (MultSpd * 0.8);
};
if (MultCnt > 0){
ninja.x = (ninja.x + (MultSpd * _local2));
MultCnt--;
};
}
public function timerLev4():void{
checkNinjaJump();
checkTnt();
}
public function btSubmitTimeClick(_arg1:MouseEvent):void{
var _local2:String;
_local2 = local.data.name;
btSubmitTime.visible = false;
scoreTypes[0] = {type:"time", descending:false, format:"time"};
agi.showScoreboardSubmit(Math.floor(((mtime / 4) / 10)), _local2, "time", scoreTypes);
}
public function initLev(_arg1:int):void{
var _local2:int;
var _local3:int;
var _local4:int;
if (_arg1 > levT){
return;
};
_local2 = levOrd[_arg1];
_local3 = 0;
_local4 = 0;
if (_local2 == 1){
mina[initMina(_arg1)].x = 220;
mina[initMina(_arg1)].x = 325;
};
if (_local2 == 2){
initWhite(_arg1, 0, 0, 2);
};
if (_local2 == 3){
if ((_arg1 % 2)){
_local4 = -20;
} else {
_local4 = 20;
};
mina[initMina(_arg1)].x = (dooro[_arg1].x + (_local4 * 3));
mina[initMina(_arg1)].x = (dooro[_arg1].x + (_local4 * 4));
mina[initMina(_arg1)].x = (dooro[_arg1].x + (_local4 * 5));
mina[initMina(_arg1)].x = (dooro[_arg1].x + (_local4 * 6));
mina[initMina(_arg1)].x = (dooro[_arg1].x + (_local4 * 7));
mina[initMina(_arg1)].x = (dooro[_arg1].x + (_local4 * 8));
};
if (_local2 == 4){
tnt[initTnt(_arg1)].x = 275;
};
if ((((((_local2 == 5)) || ((_local2 == 6)))) || ((_local2 == 7)))){
if ((_arg1 % 2)){
spbas.x = (dooro[_arg1].x + 20);
} else {
spbas.x = (dooro[_arg1].x - 20);
};
spbas.y = floor[_arg1].y;
spbas.visible = true;
};
if (_local2 == 5){
initSpear(_arg1, 2, 0);
};
if (_local2 == 6){
initSpear(_arg1, 2, 0);
initSpear(_arg1, 8, 50);
initSpear(_arg1, 3, 100);
};
if (_local2 == 7){
initSpear(_arg1, 2, 0);
initSpear(_arg1, 8, 10);
initSpear(_arg1, 3, 40);
initSpear(_arg1, 4, 130);
initSpear(_arg1, 7, 140);
initSpear(_arg1, 6, 170);
initSpear(_arg1, 1, 190);
};
if (_local2 == 8){
floor[_arg1].visible = false;
initFloorp(_arg1, floor[_arg1].x, 60);
initFloorp(_arg1, ((floor[_arg1].x + floor[_arg1].width) - 60), 60);
initFloorp(_arg1, 150, 50);
initFloorp(_arg1, 250, 50);
initFloorp(_arg1, 370, 50);
};
if (_local2 == 9){
tnt[initTnt(_arg1)].x = 200;
tnt[initTnt(_arg1)].x = 350;
};
if (_local2 == 10){
tnt[initTnt(_arg1)].x = 150;
tnt[initTnt(_arg1)].x = 275;
tnt[initTnt(_arg1)].x = 400;
};
if (_local2 == 11){
initSpear(_arg1, 275, 0);
};
if (_local2 == 12){
initSpear(_arg1, 200, 0);
initSpear(_arg1, 350, 0);
initWhite(_arg1, 1, 100, 2.4);
};
if (_local2 == 13){
initHole(_arg1, 108, 50);
initHole(_arg1, 200, 50);
initHole(_arg1, 300, 50);
initHole(_arg1, 350, 50);
initHole(_arg1, 442, 50);
};
if (_local2 == 14){
initRock(_arg1, 275);
};
if (_local2 == 15){
initDragon(_arg1);
};
if (_local2 == 16){
floor[_arg1].visible = false;
initFloorp(_arg1, floor[_arg1].x, 60);
initFloorp(_arg1, ((floor[_arg1].x + floor[_arg1].width) - 60), 60);
floorpm = initFloorp(_arg1, (floor[_arg1].x + 60), (floor[_arg1].width - 120));
floorpw = floorp[floorpm].width;
};
if (_local2 == 17){
initSpear(_arg1, 175, 0);
initSpear(_arg1, 275, 0);
initSpear(_arg1, 375, 0);
};
if (_local2 == 18){
initHole(_arg1, 150, 50);
initHole(_arg1, 350, 50);
initHole(_arg1, 400, 50);
};
if (_local2 == 22){
red.x = (dooro[_arg1].x - 40);
red.y = (floor[_arg1].y - 30);
red.visible = true;
red.d = -1;
};
}
public function frmbestImg():void{
gatitle.y = -5000;
gatitle.visible = false;
author.y = -5000;
author.visible = false;
btSpeed.y = -5000;
btSpeed.visible = false;
btAbility.y = -5000;
btAbility.visible = false;
btMenub.y = -5000;
btMenub.visible = false;
}
public function frmmenuClr():void{
japan.y = -5000;
japan.visible = false;
gatitle.y = -5000;
gatitle.visible = false;
author.y = -5000;
author.visible = false;
lampI1.y = -5000;
lampI1.visible = false;
lampI2.y = -5000;
lampI2.visible = false;
lampI3.y = -5000;
lampI3.visible = false;
lampI4.y = -5000;
lampI4.visible = false;
btPlay.y = -5000;
btPlay.visible = false;
btRanking.y = -5000;
btRanking.visible = false;
btMore.y = -5000;
btMore.visible = false;
btSpeed.y = -5000;
btSpeed.visible = false;
btAbility.y = -5000;
btAbility.visible = false;
btMenub.y = -5000;
btMenub.visible = false;
}
public function initFloorp(_arg1:int, _arg2:int, _arg3:int):int{
var _local4:int;
_local4 = 0;
_local4 = 0;
while (floorp[_local4].visible) {
_local4++;
};
floorp[_local4].x = _arg2;
floorp[_local4].y = floor[_arg1].y;
floorp[_local4].width = _arg3;
floorp[_local4].visible = true;
floorp[_local4].f = _arg1;
return (_local4);
}
public function btMoreClick(_arg1:MouseEvent):void{
var _local2:URLRequest;
if (ARMOR){
_local2 = new URLRequest("http://armorgames.com/");
} else {
_local2 = new URLRequest("http://x.mochiads.com/link/f9e266088e1a5296");
};
navigateToURL(_local2);
}
public function btPauseClick(_arg1:MouseEvent):void{
if (pauseOn){
pauseOn = false;
ledPause.gotoAndStop(1);
if (musicOn){
soundVol(musCh, 0.5);
};
} else {
pauseOn = true;
ledPause.gotoAndStop(2);
soundVol(musCh, 0);
};
}
public function doPart(_arg1:int, _arg2:int):void{
var _local3:int;
var _local4:int;
_local3 = 0;
_local4 = 0;
do {
while (part[_local3].visible) {
_local3++;
};
part[_local3].visible = true;
part[_local3].x = _arg1;
part[_local3].y = _arg2;
part[_local3].width = ((Math.random() * 10) + 4);
part[_local3].height = ((Math.random() * 10) + 4);
part[_local3].spx = ((Math.random() * 10) - 5);
part[_local3].spy = ((Math.random() * 5) + 3);
part[_local3].rot = ((Math.random() * 40) - 20);
part[_local3].lev = levP;
++_local4;
} while (_local4 < 10);
}
public function frmintroClr():void{
intromsg.y = -5000;
intromsg.visible = false;
track.y = -5000;
track.visible = false;
temple.y = -5000;
temple.visible = false;
mooni.y = -5000;
mooni.visible = false;
ninjai.y = -5000;
ninjai.visible = false;
}
public function checkTnt():void{
var _local1:int;
_local1 = 0;
while (_local1 < 8) {
if (((!((tnt[_local1].f == levP))) || (!(tnt[_local1].visible)))){
} else {
if ((((ninja.x - tnt[_local1].x) * (ninja.x - tnt[_local1].x)) + ((ninja.y - tnt[_local1].y) * (ninja.y - tnt[_local1].y))) < (35 * 35)){
soundPlay(exploSnd);
tnt[_local1].visible = false;
doPart(tnt[_local1].x, tnt[_local1].y);
throwNinja();
};
};
_local1++;
};
}
public function throwNinja():void{
ninjamx = ((ninja.x - floorIx) / 20);
ninjamy = 5;
}
public function btMenuClick(_arg1:MouseEvent):void{
musCh.stop();
gameSt = -1;
gotoAndStop("menu");
}
public function initDragon(_arg1:int):void{
var _local2:int;
_local2 = 0;
while (_local2 < dragons) {
if (dragonType == 1){
dragonp[_local2].y = (floor[_arg1].y - 25);
} else {
dragonp[_local2].y = (floor[_arg1].y - 25);
};
if (_local2 == 0){
dragonp[_local2].x = (doori[_arg1].x - 40);
} else {
dragonp[_local2].x = (dragonp[(_local2 - 1)].x - (dragond[_local2] * 0.6));
};
dragonp[_local2].d = -1;
dragonp[_local2].c = 0;
dragonp[_local2].m = 20;
dragonp[_local2].s = false;
dragonp[_local2].visible = false;
_local2++;
};
dragonp[0].f = _arg1;
walll2.x = doori[_arg1].x;
walll2.y = floor[_arg1].y;
wallr2.x = dooro[_arg1].x;
wallr2.y = floor[_arg1].y;
}
public function checkNinjaWalk():void{
if (!LMB){
ninja.x = ninjaox;
};
}
public function movePart():void{
var _local1:int;
_local1 = 0;
_local1 = 0;
while (_local1 < 128) {
if (!part[_local1].visible){
} else {
part[_local1].x = (part[_local1].x + part[_local1].spx);
part[_local1].y = (part[_local1].y - part[_local1].spy);
part[_local1].rotation = (part[_local1].rotation + part[_local1].rot);
part[_local1].spy = (part[_local1].spy - 0.2);
if (part[_local1].y >= floor[part[_local1].lev].y){
part[_local1].visible = false;
};
};
_local1++;
};
}
public function endLevel():void{
jumpcnt = 0;
ninja.x = dooro[levP].x;
ninja.y = (floor[levP].y - 15);
ninja.rotation = 0;
elev[levP].visible = true;
levSt = 1;
levN = (levP + 1);
if (!fall){
initLev((levN + 3));
};
ninjad = 2;
}
public function btSpeedClick(_arg1:MouseEvent):void{
gameSt = -1;
if (ARMOR){
scoreTypes[0] = {type:"time", descending:false, format:"time"};
agi.showScoreboardList(scoreTypes);
} else {
besttype = 1;
gotoAndStop("best");
};
}
public function btEnterClick(_arg1:MouseEvent):void{
checkName();
}
public function btSubmitClickClick(_arg1:MouseEvent):void{
var _local2:String;
_local2 = local.data.name;
btSubmitClick.visible = false;
scoreTypes[0] = {type:"click", descending:false, format:"none"};
agi.showScoreboardSubmit(clicks, _local2, "click", scoreTypes);
}
public function frmgameClr():void{
var _local1:int;
_local1 = 0;
moon.y = -5000;
moon.visible = false;
tree.y = -5000;
tree.visible = false;
tree2.y = -5000;
tree2.visible = false;
statue1.y = -5000;
statue1.visible = false;
statue2.y = -5000;
statue2.visible = false;
statue3.y = -5000;
statue3.visible = false;
statue4.y = -5000;
statue4.visible = false;
redlife.y = -5000;
redlife.visible = false;
red.y = -5000;
red.visible = false;
ninsha.y = -5000;
ninsha.visible = false;
ninja.y = -5000;
ninja.visible = false;
_local1 = 0;
while (_local1 < 128) {
part[_local1].y = -5000;
part[_local1].visible = false;
_local1++;
};
walll2.y = -5000;
walll2.visible = false;
wallr2.y = -5000;
wallr2.visible = false;
_local1 = (dragons - 1);
while (_local1 >= 0) {
dragonp[_local1].y = -5000;
dragonp[_local1].visible = false;
_local1--;
};
_local1 = 1;
while (_local1 <= (levT + 1)) {
floor[_local1].y = -5000;
floor[_local1].visible = false;
if (_local1 > levT){
break;
};
back[_local1].y = -5000;
back[_local1].visible = false;
walll[_local1].y = -5000;
walll[_local1].visible = false;
wallr[_local1].y = -5000;
wallr[_local1].visible = false;
doori[_local1].y = -5000;
doori[_local1].visible = false;
dooro[_local1].y = -5000;
dooro[_local1].visible = false;
lamp[_local1].y = -5000;
lamp[_local1].visible = false;
elev[_local1].y = -5000;
elev[_local1].visible = false;
shad[_local1].y = -5000;
shad[_local1].visible = false;
_local1++;
};
_local1 = 0;
while (_local1 < 32) {
star[_local1].y = -5000;
star[_local1].visible = false;
mina[_local1].y = -5000;
mina[_local1].visible = false;
tnt[_local1].y = -5000;
tnt[_local1].visible = false;
white[_local1].y = -5000;
white[_local1].visible = false;
spear[_local1].y = -5000;
spear[_local1].visible = false;
rock[_local1].y = -5000;
rock[_local1].visible = false;
rockb[_local1].y = -5000;
rockb[_local1].visible = false;
floorp[_local1].y = -5000;
floorp[_local1].visible = false;
hole[_local1].y = -5000;
hole[_local1].visible = false;
_local1++;
};
spbas.y = -5000;
spbas.visible = false;
base.y = -5000;
base.visible = false;
ledSound.y = -5000;
ledSound.visible = false;
ledMusic.y = -5000;
ledMusic.visible = false;
ledPause.y = -5000;
ledPause.visible = false;
ledShadow.y = -5000;
ledShadow.visible = false;
btMenu.y = -5000;
btMenu.visible = false;
btSound.y = -5000;
btSound.visible = false;
btMusic.y = -5000;
btMusic.visible = false;
btPause.y = -5000;
btPause.visible = false;
btShadow.y = -5000;
btShadow.visible = false;
timetxt.y = -5000;
timetxt.visible = false;
clicktxt.y = -5000;
clicktxt.visible = false;
besttxt.y = -5000;
besttxt.visible = false;
bclicktxt.y = -5000;
bclicktxt.visible = false;
help.y = -5000;
help.visible = false;
congrat.y = -5000;
congrat.visible = false;
btAgain.y = -5000;
btAgain.visible = false;
btSubmitTime.y = -5000;
btSubmitTime.visible = false;
btSubmitClick.y = -5000;
btSubmitClick.visible = false;
}
public function btSoundClick(_arg1:MouseEvent):void{
if (soundOn){
soundOn = false;
ledSound.gotoAndStop(2);
musicOn = false;
soundVol(musCh, 0);
ledMusic.gotoAndStop(2);
} else {
soundOn = true;
ledSound.gotoAndStop(1);
};
}
public function checkSpear():void{
var _local1:int;
_local1 = 0;
while (_local1 < 16) {
if (spear[_local1].f != levP){
} else {
if (spear[_local1].ti == -1){
if (spear[_local1].t == -1){
if (Math.abs((ninja.x - spear[_local1].x)) < 30){
spear[_local1].t = 0;
};
} else {
if ((((((ninjamx == 0)) && ((Math.abs((ninja.x - spear[_local1].x)) < 15)))) && ((Math.abs((ninja.y - spear[_local1].y)) < 45)))){
soundPlay(punchSnd);
throwNinja();
};
};
} else {
if ((((Math.abs((ninja.x - spear[_local1].x)) < 60)) && ((Math.abs((ninja.y - spear[_local1].y)) < 15)))){
soundPlay(spearSnd);
throwNinja();
};
};
};
_local1++;
};
}
public function checkName():void{
if ((((playname.txt.text == "your name")) || ((playname.txt.length < 1)))){
playname.txt.text = "";
stage.focus = playname.txt;
return;
};
local.data.name = playname.txt.text;
local.flush();
soundPlay(swordSnd);
gotoAndStop("menu");
}
public function reinitSpear():void{
var _local1:int;
_local1 = 0;
_local1 = 0;
while (_local1 < 16) {
if (spear[_local1].f == levP){
spear[_local1].x = spear[_local1].xi;
spear[_local1].y = spear[_local1].yi;
spear[_local1].t = spear[_local1].ti;
};
_local1++;
};
}
public function btAbilityClick(_arg1:MouseEvent):void{
gameSt = -1;
if (ARMOR){
scoreTypes[0] = {type:"click", descending:false, format:"none"};
agi.showScoreboardList(scoreTypes);
} else {
besttype = 2;
gotoAndStop("best");
};
}
public function checkNinjaFire():void{
if (((LMB) && (!(fire)))){
fire = true;
doStar(ninjad, 1, 0, 0);
};
if (!LMB){
fire = false;
};
}
public function btAgainClick(_arg1:MouseEvent):void{
musCh.stop();
gameSt = -1;
gotoAndStop("intro");
}
public function LMBtrue():void{
if (((!((gameSt == 1))) || ((levSt == 3)))){
return;
};
if (!LMB){
clicks++;
clicktxt.txt.text = String(clicks);
clicktxt.sha.text = clicktxt.txt.text;
levcli++;
};
LMB = true;
}
}
}//package ninja_fla
Section 14
//authorImgClass (authorImgClass)
package {
import flash.display.*;
public dynamic class authorImgClass extends MovieClip {
}
}//package
Section 15
//backImgClass (backImgClass)
package {
import flash.display.*;
public dynamic class backImgClass extends MovieClip {
}
}//package
Section 16
//backscrImgClass (backscrImgClass)
package {
import flash.display.*;
public dynamic class backscrImgClass extends MovieClip {
public function backscrImgClass(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 17
//baseImgClass (baseImgClass)
package {
import flash.display.*;
public dynamic class baseImgClass extends MovieClip {
}
}//package
Section 18
//bclicktxtImgClass (bclicktxtImgClass)
package {
import flash.display.*;
import flash.text.*;
public dynamic class bclicktxtImgClass extends MovieClip {
public var txt:TextField;
public var sha:TextField;
}
}//package
Section 19
//besttxtImgClass (besttxtImgClass)
package {
import flash.display.*;
import flash.text.*;
public dynamic class besttxtImgClass extends MovieClip {
public var txt:TextField;
public var sha:TextField;
}
}//package
Section 20
//btAbilityImgClass (btAbilityImgClass)
package {
import flash.display.*;
public dynamic class btAbilityImgClass extends SimpleButton {
}
}//package
Section 21
//btAgainImgClass (btAgainImgClass)
package {
import flash.display.*;
public dynamic class btAgainImgClass extends SimpleButton {
}
}//package
Section 22
//btEnterImgClass (btEnterImgClass)
package {
import flash.display.*;
public dynamic class btEnterImgClass extends SimpleButton {
}
}//package
Section 23
//btMenubImgClass (btMenubImgClass)
package {
import flash.display.*;
public dynamic class btMenubImgClass extends SimpleButton {
}
}//package
Section 24
//btMenuImgClass (btMenuImgClass)
package {
import flash.display.*;
public dynamic class btMenuImgClass extends SimpleButton {
}
}//package
Section 25
//btMoreImgClass (btMoreImgClass)
package {
import flash.display.*;
public dynamic class btMoreImgClass extends SimpleButton {
}
}//package
Section 26
//btMusicImgClass (btMusicImgClass)
package {
import flash.display.*;
public dynamic class btMusicImgClass extends SimpleButton {
}
}//package
Section 27
//btPauseImgClass (btPauseImgClass)
package {
import flash.display.*;
public dynamic class btPauseImgClass extends SimpleButton {
}
}//package
Section 28
//btPlayImgClass (btPlayImgClass)
package {
import flash.display.*;
public dynamic class btPlayImgClass extends SimpleButton {
}
}//package
Section 29
//btRankingImgClass (btRankingImgClass)
package {
import flash.display.*;
public dynamic class btRankingImgClass extends SimpleButton {
}
}//package
Section 30
//btShadowImgClass (btShadowImgClass)
package {
import flash.display.*;
public dynamic class btShadowImgClass extends SimpleButton {
}
}//package
Section 31
//btSoundImgClass (btSoundImgClass)
package {
import flash.display.*;
public dynamic class btSoundImgClass extends SimpleButton {
}
}//package
Section 32
//btSpeedImgClass (btSpeedImgClass)
package {
import flash.display.*;
public dynamic class btSpeedImgClass extends SimpleButton {
}
}//package
Section 33
//btSubmitClickImgClass (btSubmitClickImgClass)
package {
import flash.display.*;
public dynamic class btSubmitClickImgClass extends SimpleButton {
}
}//package
Section 34
//btSubmitTimeImgClass (btSubmitTimeImgClass)
package {
import flash.display.*;
public dynamic class btSubmitTimeImgClass extends SimpleButton {
}
}//package
Section 35
//chompSndClass (chompSndClass)
package {
import flash.media.*;
public dynamic class chompSndClass extends Sound {
}
}//package
Section 36
//clicktxtImgClass (clicktxtImgClass)
package {
import flash.display.*;
import flash.text.*;
public dynamic class clicktxtImgClass extends MovieClip {
public var txt:TextField;
public var sha:TextField;
}
}//package
Section 37
//congratImgClass (congratImgClass)
package {
import flash.display.*;
import flash.text.*;
public dynamic class congratImgClass extends MovieClip {
public var sha1:TextField;
public var sha2:TextField;
public var txt1:TextField;
public var txt2:TextField;
}
}//package
Section 38
//coverImgClass (coverImgClass)
package {
import flash.display.*;
public dynamic class coverImgClass extends MovieClip {
}
}//package
Section 39
//dooriImgClass (dooriImgClass)
package {
import flash.display.*;
public dynamic class dooriImgClass extends MovieClip {
}
}//package
Section 40
//dooroImgClass (dooroImgClass)
package {
import flash.display.*;
public dynamic class dooroImgClass extends MovieClip {
}
}//package
Section 41
//dragonHead2ImgClass (dragonHead2ImgClass)
package {
import flash.display.*;
public dynamic class dragonHead2ImgClass extends MovieClip {
}
}//package
Section 42
//dragonMiddleA2ImgClass (dragonMiddleA2ImgClass)
package {
import flash.display.*;
public dynamic class dragonMiddleA2ImgClass extends MovieClip {
}
}//package
Section 43
//dragonMiddleB2ImgClass (dragonMiddleB2ImgClass)
package {
import flash.display.*;
public dynamic class dragonMiddleB2ImgClass extends MovieClip {
}
}//package
Section 44
//dragonTail2ImgClass (dragonTail2ImgClass)
package {
import flash.display.*;
public dynamic class dragonTail2ImgClass extends MovieClip {
}
}//package
Section 45
//elevImgClass (elevImgClass)
package {
import flash.display.*;
public dynamic class elevImgClass extends MovieClip {
}
}//package
Section 46
//endSndClass (endSndClass)
package {
import flash.media.*;
public dynamic class endSndClass extends Sound {
}
}//package
Section 47
//evilSndClass (evilSndClass)
package {
import flash.media.*;
public dynamic class evilSndClass extends Sound {
}
}//package
Section 48
//exploSndClass (exploSndClass)
package {
import flash.media.*;
public dynamic class exploSndClass extends Sound {
}
}//package
Section 49
//fireSndClass (fireSndClass)
package {
import flash.media.*;
public dynamic class fireSndClass extends Sound {
}
}//package
Section 50
//floorImgClass (floorImgClass)
package {
import flash.display.*;
public dynamic class floorImgClass extends MovieClip {
}
}//package
Section 51
//floorpImgClass (floorpImgClass)
package {
import flash.display.*;
public dynamic class floorpImgClass extends MovieClip {
}
}//package
Section 52
//helpImgClass (helpImgClass)
package {
import flash.display.*;
public dynamic class helpImgClass extends MovieClip {
}
}//package
Section 53
//holeImgClass (holeImgClass)
package {
import flash.display.*;
public dynamic class holeImgClass extends MovieClip {
}
}//package
Section 54
//intromsgImgClass (intromsgImgClass)
package {
import flash.display.*;
public dynamic class intromsgImgClass extends MovieClip {
}
}//package
Section 55
//japanImgClass (japanImgClass)
package {
import flash.display.*;
public dynamic class japanImgClass extends MovieClip {
}
}//package
Section 56
//lamp2ImgClass (lamp2ImgClass)
package {
import flash.display.*;
public dynamic class lamp2ImgClass extends MovieClip {
}
}//package
Section 57
//lampImgClass (lampImgClass)
package {
import flash.display.*;
public dynamic class lampImgClass extends MovieClip {
}
}//package
Section 58
//laserSndClass (laserSndClass)
package {
import flash.media.*;
public dynamic class laserSndClass extends Sound {
}
}//package
Section 59
//led2ImgClass (led2ImgClass)
package {
import flash.display.*;
public dynamic class led2ImgClass extends MovieClip {
public function led2ImgClass(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 60
//minaImgClass (minaImgClass)
package {
import flash.display.*;
public dynamic class minaImgClass extends MovieClip {
}
}//package
Section 61
//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 62
//moonImgClass (moonImgClass)
package {
import flash.display.*;
public dynamic class moonImgClass extends MovieClip {
}
}//package
Section 63
//musSndClass (musSndClass)
package {
import flash.media.*;
public dynamic class musSndClass extends Sound {
}
}//package
Section 64
//ninjaImgClass (ninjaImgClass)
package {
import flash.display.*;
public dynamic class ninjaImgClass extends MovieClip {
public function ninjaImgClass(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 65
//ninjaSndClass (ninjaSndClass)
package {
import flash.media.*;
public dynamic class ninjaSndClass extends Sound {
}
}//package
Section 66
//partImgClass (partImgClass)
package {
import flash.display.*;
public dynamic class partImgClass extends MovieClip {
}
}//package
Section 67
//playnameImgClass (playnameImgClass)
package {
import flash.display.*;
import flash.text.*;
public dynamic class playnameImgClass extends MovieClip {
public var txt:TextField;
}
}//package
Section 68
//punch3SndClass (punch3SndClass)
package {
import flash.media.*;
public dynamic class punch3SndClass extends Sound {
}
}//package
Section 69
//punchSndClass (punchSndClass)
package {
import flash.media.*;
public dynamic class punchSndClass extends Sound {
}
}//package
Section 70
//redImgClass (redImgClass)
package {
import flash.display.*;
public dynamic class redImgClass extends MovieClip {
}
}//package
Section 71
//redlifeImgClass (redlifeImgClass)
package {
import flash.display.*;
public dynamic class redlifeImgClass extends MovieClip {
}
}//package
Section 72
//rockbImgClass (rockbImgClass)
package {
import flash.display.*;
public dynamic class rockbImgClass extends MovieClip {
}
}//package
Section 73
//rockImgClass (rockImgClass)
package {
import flash.display.*;
public dynamic class rockImgClass extends MovieClip {
}
}//package
Section 74
//rockSndClass (rockSndClass)
package {
import flash.media.*;
public dynamic class rockSndClass extends Sound {
}
}//package
Section 75
//shadImgClass (shadImgClass)
package {
import flash.display.*;
public dynamic class shadImgClass extends MovieClip {
}
}//package
Section 76
//spbasImgClass (spbasImgClass)
package {
import flash.display.*;
public dynamic class spbasImgClass extends MovieClip {
}
}//package
Section 77
//spearImgClass (spearImgClass)
package {
import flash.display.*;
public dynamic class spearImgClass extends MovieClip {
public function spearImgClass(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 78
//starImgClass (starImgClass)
package {
import flash.display.*;
public dynamic class starImgClass extends MovieClip {
public function starImgClass(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 79
//starmanSndClass (starmanSndClass)
package {
import flash.media.*;
public dynamic class starmanSndClass extends Sound {
}
}//package
Section 80
//starSndClass (starSndClass)
package {
import flash.media.*;
public dynamic class starSndClass extends Sound {
}
}//package
Section 81
//statue1ImgClass (statue1ImgClass)
package {
import flash.display.*;
public dynamic class statue1ImgClass extends MovieClip {
}
}//package
Section 82
//statue2ImgClass (statue2ImgClass)
package {
import flash.display.*;
public dynamic class statue2ImgClass extends MovieClip {
}
}//package
Section 83
//stepsSndClass (stepsSndClass)
package {
import flash.media.*;
public dynamic class stepsSndClass extends Sound {
}
}//package
Section 84
//swordSndClass (swordSndClass)
package {
import flash.media.*;
public dynamic class swordSndClass extends Sound {
}
}//package
Section 85
//templeImgClass (templeImgClass)
package {
import flash.display.*;
public dynamic class templeImgClass extends MovieClip {
}
}//package
Section 86
//timetxtImgClass (timetxtImgClass)
package {
import flash.display.*;
import flash.text.*;
public dynamic class timetxtImgClass extends MovieClip {
public var txt:TextField;
public var sha:TextField;
}
}//package
Section 87
//titleImgClass (titleImgClass)
package {
import flash.display.*;
public dynamic class titleImgClass extends MovieClip {
}
}//package
Section 88
//tntImgClass (tntImgClass)
package {
import flash.display.*;
public dynamic class tntImgClass extends MovieClip {
}
}//package
Section 89
//trackImgClass (trackImgClass)
package {
import flash.display.*;
public dynamic class trackImgClass extends MovieClip {
}
}//package
Section 90
//treeImgClass (treeImgClass)
package {
import flash.display.*;
public dynamic class treeImgClass extends MovieClip {
}
}//package
Section 91
//walll2ImgClass (walll2ImgClass)
package {
import flash.display.*;
public dynamic class walll2ImgClass extends MovieClip {
}
}//package
Section 92
//walllImgClass (walllImgClass)
package {
import flash.display.*;
public dynamic class walllImgClass extends MovieClip {
}
}//package
Section 93
//wallr2ImgClass (wallr2ImgClass)
package {
import flash.display.*;
public dynamic class wallr2ImgClass extends MovieClip {
}
}//package
Section 94
//wallrImgClass (wallrImgClass)
package {
import flash.display.*;
public dynamic class wallrImgClass extends MovieClip {
}
}//package
Section 95
//whiteImgClass (whiteImgClass)
package {
import flash.display.*;
public dynamic class whiteImgClass extends MovieClip {
public function whiteImgClass(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package