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

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

Tidal.swf

This is the info page for
Flash #76917

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


Text
(c) 2009 K. Thor Jensen

E

M

A

G

Y

P

H

D

N

T

R

O

S

PAUSED

Score:                           Combo:

GAME OVER

Title Screen

Submit Score

Score:
Max Combo:
Last Wave:

T I D A L

Wild Mode

How To Play

Normal Mode

Choose your ship.

Ajuga

Estrada

Ola

Spreading shot.

Oscillating shot.

Focused shot.

LEVEL UP

HOW TO PLAY

Main Menu

Move your ship with the mouse
and fire with the left mouse
button. Avoid enemies and shots.
Shoot enemies to raise Combo.

Floater
Dasher
Sinker
Shredder
Spiller

Some enemies become beached
when they hit the tide line.
Shooting beached enemies resets
your Combo.

Beached Floater
Beached Shredder
Beached Spiller

Shoot bombs to destroy beached
enemies with no penalty.

Bomb

Press P to pause.
Press Q to quit.
Press S to toggle sounds on/ off.
Press M to toggle music on/off.

Ad appears every three games.

<p align="center"><font face="Kozuka Gothic Pro EL" size="12" color="#0000cc" letterSpacing="0.000000" kerning="1">score: text: 01234567890</font></p>

ActionScript [AS3]

Section 1
//KongregateEvent (com.kongregate.as3.client.events.KongregateEvent) package com.kongregate.as3.client.events { import flash.events.*; public class KongregateEvent extends Event { public static const COMPLETE:String = "component_api_available"; public function KongregateEvent(_arg1:String){ super(_arg1); } } }//package com.kongregate.as3.client.events
Section 2
//AbstractShadowService (com.kongregate.as3.client.services.AbstractShadowService) package com.kongregate.as3.client.services { import flash.events.*; public class AbstractShadowService extends EventDispatcher { protected function alert(_arg1:String, _arg2:String, _arg3="", _arg4:String=""):void{ trace(((((((("Kongregate API: " + _arg1) + ".") + _arg2) + "(") + _arg3) + ") ") + _arg4)); } } }//package com.kongregate.as3.client.services
Section 3
//HighScoreServiceShadow (com.kongregate.as3.client.services.HighScoreServiceShadow) package com.kongregate.as3.client.services { public class HighScoreServiceShadow extends AbstractShadowService implements IHighScoreServices { private var mode:String; public function HighScoreServiceShadow(){ mode = ""; } public function submit(_arg1:Number, _arg2:String=null):void{ alert("IHighScoreServices", "submit", arguments); } public function connect():Boolean{ alert("IKongregateServices", "connect"); return (true); } public function requestList(_arg1:Function):void{ alert("IHighScoreServices", "requestList", "", (("[Mode: " + mode) + "]")); _arg1({success:false}); } public function setMode(_arg1:String):void{ alert("IHighScoreServices", "setMode", arguments); this.mode = _arg1; } } }//package com.kongregate.as3.client.services
Section 4
//IHighScoreServices (com.kongregate.as3.client.services.IHighScoreServices) package com.kongregate.as3.client.services { public interface IHighScoreServices { function setMode(_arg1:String):void; function submit(_arg1:Number, _arg2:String=null):void; function requestList(_arg1:Function):void; } }//package com.kongregate.as3.client.services
Section 5
//IKongregateServices (com.kongregate.as3.client.services.IKongregateServices) package com.kongregate.as3.client.services { import flash.events.*; public interface IKongregateServices extends IEventDispatcher { function getPlayerInfo(_arg1:Function):void; function connect(_arg1:Number=-1):Boolean; } }//package com.kongregate.as3.client.services
Section 6
//IStatServices (com.kongregate.as3.client.services.IStatServices) package com.kongregate.as3.client.services { public interface IStatServices { function submitArray(_arg1:Array):void; function submit(_arg1:String, _arg2:Number):void; } }//package com.kongregate.as3.client.services
Section 7
//IUserServices (com.kongregate.as3.client.services.IUserServices) package com.kongregate.as3.client.services { public interface IUserServices { function getName():String; function getPlayerInfo(_arg1:Function):void; } }//package com.kongregate.as3.client.services
Section 8
//KongregateServiceShadow (com.kongregate.as3.client.services.KongregateServiceShadow) package com.kongregate.as3.client.services { public class KongregateServiceShadow extends AbstractShadowService implements IKongregateServices { public function getName():String{ alert("IKongregateServices", "getName"); return ("Guest"); } public function connect(_arg1:Number=-1):Boolean{ alert("IKongregateServices", "connect", arguments); return (true); } public function getPlayerInfo(_arg1:Function):void{ alert("IKongregateServices", "getPlayerInfo"); _arg1(new Object()); } } }//package com.kongregate.as3.client.services
Section 9
//StatServiceShadow (com.kongregate.as3.client.services.StatServiceShadow) package com.kongregate.as3.client.services { public class StatServiceShadow extends AbstractShadowService implements IStatServices { public function submitArray(_arg1:Array):void{ alert("IStatServices", "submitArray", arguments); } public function submit(_arg1:String, _arg2:Number):void{ alert("IStatServices", "submitStat", arguments); } } }//package com.kongregate.as3.client.services
Section 10
//UserServiceShadow (com.kongregate.as3.client.services.UserServiceShadow) package com.kongregate.as3.client.services { public class UserServiceShadow extends AbstractShadowService implements IUserServices { public function getName():String{ alert("UserService", "getName"); return ("Guest"); } public function getPlayerInfo(_arg1:Function):void{ alert("UserService", "getPlayerInfo"); _arg1({isGuest:true, name:"Guest", points:0, level:0, isMode:false, isAdmin:false, isDeveloper:false, avatarPath:"", chatAvatarPath:""}); } } }//package com.kongregate.as3.client.services
Section 11
//IAPIBootstrap (com.kongregate.as3.client.IAPIBootstrap) package com.kongregate.as3.client { import flash.events.*; import flash.display.*; public interface IAPIBootstrap { function init(_arg1:Event=null, _arg2:Stage=null):void; function hideLog():void; function showLog(_arg1:int=0):void; } }//package com.kongregate.as3.client
Section 12
//KongregateAPI (com.kongregate.as3.client.KongregateAPI) package com.kongregate.as3.client { import flash.events.*; import flash.display.*; import com.kongregate.as3.client.services.*; import com.kongregate.as3.client.events.*; import flash.system.*; import flash.utils.*; import flash.net.*; import flash.errors.*; public class KongregateAPI extends Sprite { private const VERSION:Number = 1; private var loader:Loader; private var loadedDomain:ApplicationDomain; private static const CLASS_USER:String = "com.kongregate.as3.client.services.UserServices"; private static const CLASS_STATS:String = "com.kongregate.as3.client.services.StatServices"; private static const CLASS_SERVICES:String = "com.kongregate.as3.client.services.KongregateServices"; private static const CLASS_SCORES:String = "com.kongregate.as3.client.services.HighScoreServices"; private static const DEBUG_API_URL:String = "//Linuxpc/kongregate/public/flash/API_AS3.swf"; private static var _connected:Boolean; private static var kUser:IUserServices; private static var _loaded:Boolean; private static var kServices:IKongregateServices; private static var kScores:IHighScoreServices; private static var mInstance:KongregateAPI; private static var kStats:IStatServices; private static var kAPI:IAPIBootstrap; public function KongregateAPI(){ if (mInstance != null){ throw (new Error("Warning: KongregateAPI has been added to stage more than once or accessed improperly. Use getInstance() or a stage reference to access.")); }; mInstance = this; this.addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true); } public function get loaded():Boolean{ return (_loaded); } public function get connected():Boolean{ return (_connected); } private function alertConnected(_arg1:TimerEvent=null):void{ var _local2:KongregateEvent; var _local3:Boolean; _local2 = new KongregateEvent(KongregateEvent.COMPLETE); _local3 = this.dispatchEvent(_local2); } private function init(_arg1:Event):void{ var _local2:Object; var _local3:String; var _local4:URLRequest; var _local5:LoaderContext; this.removeEventListener(Event.ADDED_TO_STAGE, init); _loaded = false; _connected = false; _local2 = LoaderInfo(root.loaderInfo).parameters; _local3 = _local2.api_path; if (_local3 == null){ trace("Alert: Kongregate API could not be loaded, due to local testing. API will load when the game is uploaded."); createShadowServices(); return; }; Security.allowDomain("*.kongregate.com"); Security.allowDomain("kongregatetrunk.com"); _local4 = new URLRequest(_local3); _local5 = new LoaderContext(false); _local5.applicationDomain = ApplicationDomain.currentDomain; _local5.securityDomain = SecurityDomain.currentDomain; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); loader.load(_local4, _local5); } public function get api():IAPIBootstrap{ return (kAPI); } private function loadComplete(_arg1:Event):void{ getServices(); } public function get scores():IHighScoreServices{ return (kScores); } private function ioErrorHandler(_arg1:IOErrorEvent):void{ throw (new IOError(("API file not found. " + _arg1))); } public function get services():IKongregateServices{ return (kServices); } public function get stats():IStatServices{ return (kStats); } private function createShadowServices():void{ var _local1:Timer; trace(">>> Kongregate Shadow Services instantiated for local development.."); kServices = new KongregateServiceShadow(); kScores = new HighScoreServiceShadow(); kStats = new StatServiceShadow(); kUser = new UserServiceShadow(); _local1 = new Timer(200, 1); _local1.addEventListener(TimerEvent.TIMER_COMPLETE, alertConnected); _local1.start(); _connected = true; } public function get user():IUserServices{ return (kUser); } private function getServices():void{ var _local1:ApplicationDomain; var _local2:*; var _local3:*; var _local4:*; var _local5:*; _local1 = ApplicationDomain.currentDomain; kAPI = IAPIBootstrap(loader.getChildAt(0)); this.addChild(loader); _local2 = _local1.getDefinition(CLASS_SERVICES); trace(_local2); kServices = _local2.getInstance(); _local3 = _local1.getDefinition(CLASS_SCORES); kScores = _local3.getInstance(); _local4 = _local1.getDefinition(CLASS_STATS); kStats = _local4.getInstance(); _local5 = _local1.getDefinition(CLASS_USER); kUser = _local5.getInstance(); kServices.connect(VERSION); _loaded = true; _connected = true; alertConnected(); } public static function getInstance():KongregateAPI{ if (!mInstance){ throw (new IllegalOperationError("You must add the Kongregate API component to the stage before attempting to access it.")); }; return (mInstance); } } }//package com.kongregate.as3.client
Section 13
//MochiAd (mochi.as3.MochiAd) package mochi.as3 { import flash.events.*; import flash.display.*; import flash.system.*; import flash.utils.*; import flash.net.*; public class MochiAd { public static function getVersion():String{ return ("3.0 as3"); } public static function showClickAwayAd(_arg1:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_timeout:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var sendHostProgress:Boolean; var options = _arg1; DEFAULTS = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{ }, ad_finished:function ():void{ }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; ad_timeout = options.ad_timeout; delete options.ad_timeout; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; sendHostProgress = false; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; chk["onEnterFrame"] = function ():void{ var _local1:Object; var _local2:Number; var _local3:Boolean; var _local4:Number; if (!this.parent){ delete this.onEnterFrame; return; }; _local1 = this.parent._mochiad_ctr; _local2 = (getTimer() - this.started); _local3 = false; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; _local3 = true; chk.started = getTimer(); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (this.root == null){ _local3 = true; }; if (_local3){ delete this.onEnterFrame; }; }; doOnEnterFrame(chk); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function _allowDomains(_arg1:String):String{ var _local2:String; _local2 = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType == "application"){ return (_local2); }; Security.allowDomain("*"); Security.allowDomain(_local2); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(_local2); return (_local2); } public static function unload(_arg1:Object):Boolean{ if (((_arg1.clip) && (_arg1.clip._mochiad))){ _arg1 = _arg1.clip; }; if (_arg1.origFrameRate != undefined){ _arg1.stage.frameRate = _arg1.origFrameRate; }; if (!_arg1._mochiad){ return (false); }; if (_arg1._mochiad._containerLCName != undefined){ _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"}); }; if (_arg1._mochiad.onUnload){ _arg1._mochiad.onUnload(); }; delete _arg1._mochiad_loaded; delete _arg1._mochiad; return (true); } public static function showInterLevelAd(_arg1:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_msec:Number; var ad_timeout:Number; var fadeout_time:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var options = _arg1; DEFAULTS = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; ad_msec = 11000; ad_timeout = options.ad_timeout; delete options.ad_timeout; fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; _local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object; _local2 = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = (_arg1 - 250); }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; chk["onEnterFrame"] = function ():void{ var _local1:Object; var _local2:Number; var _local3:Boolean; var _local4:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; _local1 = this.parent._mochiad_ctr; _local2 = (getTimer() - this.started); _local3 = false; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (_local2 > chk.ad_msec){ _local3 = true; }; if (_local3){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function _parseOptions(_arg1:Object, _arg2:Object):Object{ var _local3:Object; var _local4:String; var _local5:Array; var _local6:Number; var _local7:Array; _local3 = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; if (_arg1){ for (_local4 in _arg1) { _local3[_local4] = _arg1[_local4]; }; }; if (_local3.clip == undefined){ throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite.")); }; _arg1 = _local3.clip.loaderInfo.parameters.mochiad_options; if (_arg1){ _local5 = _arg1.split("&"); _local6 = 0; while (_local6 < _local5.length) { _local7 = _local5[_local6].split("="); _local3[unescape(_local7[0])] = unescape(_local7[1]); _local6++; }; }; if (_local3.id == "test"){ trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!"); }; return (_local3); } public static function _cleanup(_arg1:Object):void{ var idx:Number; var k:String; var lc:LocalConnection; var f:Function; var mc = _arg1; if (("lc" in mc)){ lc = mc.lc; f = function ():void{ try { lc.client = null; lc.close(); } catch(e:Error) { }; }; setTimeout(f, 0); }; idx = DisplayObjectContainer(mc).numChildren; while (idx > 0) { idx = (idx - 1); DisplayObjectContainer(mc).removeChildAt(idx); }; for (k in mc) { delete mc[k]; }; } public static function load(_arg1:Object):MovieClip{ var DEFAULTS:Object; var clip:Object; var depth:Number; var mc:MovieClip; var wh:Array; var lv:URLVariables; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var g:Function; var req:URLRequest; var v:Object; var options = _arg1; DEFAULTS = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; if (!MochiAd._isNetworkAvailable()){ return (null); }; try { if (clip._mochiad_loaded){ return (null); }; } catch(e:Error) { throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; depth = options.depth; delete options.depth; mc = createEmptyMovieClip(clip, "_mochiad", depth); wh = MochiAd._getRes(options, clip); options.res = ((wh[0] + "x") + wh[1]); options.server = (options.server + options.id); delete options.id; clip._mochiad_loaded = true; if (clip.loaderInfo.loaderURL.indexOf("http") == 0){ options.as3_swf = clip.loaderInfo.loaderURL; } else { trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal"); }; lv = new URLVariables(); for (k in options) { v = options[k]; if (!(v is Function)){ lv[k] = v; }; }; server = lv.server; delete lv.server; hostname = _allowDomains(server); lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.lc = lc; mc.lcName = name; lv.lc = name; lv.st = getTimer(); loader = new Loader(); g = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); MochiAd.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime())); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent):void{ trace("[MochiAds] Blocked URL"); }); loader.load(req); mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{ var _local4:Array; var _local5:Number; _local4 = _arg2.split("."); _local5 = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return (undefined); }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; if (typeof(_arg1[_local4[_local5]]) == "function"){ return (_arg1[_local4[_local5]].apply(_arg1, _arg3)); }; return (undefined); } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{ var _local4:MovieClip; _local4 = new MovieClip(); if (((false) && (_arg3))){ _arg1.addChildAt(_local4, _arg3); } else { _arg1.addChild(_local4); }; _arg1[_arg2] = _local4; _local4["_name"] = _arg2; return (_local4); } public static function _getRes(_arg1:Object, _arg2:Object):Array{ var _local3:Object; var _local4:Number; var _local5:Number; var _local6:Array; _local3 = _arg2.getBounds(_arg2.root); _local4 = 0; _local5 = 0; if (typeof(_arg1.res) != "undefined"){ _local6 = _arg1.res.split("x"); _local4 = parseFloat(_local6[0]); _local5 = parseFloat(_local6[1]); } else { _local4 = (_local3.xMax - _local3.xMin); _local5 = (_local3.yMax - _local3.yMin); }; if ((((_local4 == 0)) || ((_local5 == 0)))){ _local4 = _arg2.stage.stageWidth; _local5 = _arg2.stage.stageHeight; }; return ([_local4, _local5]); } public static function adShowing(_arg1:Object):void{ _arg1.origFrameRate = _arg1.stage.frameRate; _arg1.stage.frameRate = 30; } public static function getValue(_arg1:Object, _arg2:String):Object{ var _local3:Array; var _local4:Number; _local3 = _arg2.split("."); _local4 = 0; while (_local4 < (_local3.length - 1)) { if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){ return (undefined); }; _arg1 = _arg1[_local3[_local4]]; _local4++; }; return (_arg1[_local3[_local4]]); } public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{ var _local4:Object; var _local5:Object; switch (_arg3.id){ case "setValue": MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value); break; case "getValue": _local4 = MochiAd.getValue(_arg1, _arg3.objectName); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4); break; case "runMethod": _local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5); break; default: trace(("[mochiads rpc] unknown rpc id: " + _arg3.id)); }; } public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Array; var _local5:Number; _local4 = _arg2.split("."); _local5 = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return; }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; _arg1[_local4[_local5]] = _arg3; } public static function showPreGameAd(_arg1:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_msec:Number; var ad_timeout:Number; var fadeout_time:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var bar:MovieClip; var bar_color:Number; var bar_background:Number; var bar_outline:Number; var backing_mc:MovieClip; var backing:Object; var inside_mc:MovieClip; var inside:Object; var outline_mc:MovieClip; var outline:Object; var complete:Boolean; var unloaded:Boolean; var f:Function; var sendHostProgress:Boolean; var fn:Function; var r:MovieClip; var options = _arg1; DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }, ad_progress:function (_arg1:Number):void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){ options.ad_started(); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); return; }; clip = options.clip; ad_msec = 11000; ad_timeout = options.ad_timeout; delete options.ad_timeout; fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ var fn:Function; MochiAd._cleanup(mc); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.x = (w * -0.5); chk.y = (h * -0.5); bar = createEmptyMovieClip(chk, "_mochiad_bar", 4); if (options.no_progress_bar){ bar.visible = false; delete options.no_progress_bar; } else { bar.x = 10; bar.y = (h - 20); }; bar_color = options.color; delete options.color; bar_background = options.background; delete options.background; bar_outline = options.outline; delete options.outline; backing_mc = createEmptyMovieClip(bar, "_outline", 1); backing = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo((w - 20), 0); backing.lineTo((w - 20), 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); inside_mc = createEmptyMovieClip(bar, "_inside", 2); inside = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo((w - 20), 0); inside.lineTo((w - 20), 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; outline_mc = createEmptyMovieClip(bar, "_outline", 3); outline = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo((w - 20), 0); outline.lineTo((w - 20), 10); outline.lineTo(0, 10); outline.lineTo(0, 0); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number; _local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; complete = false; unloaded = false; f = function (_arg1:Event):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); complete = true; if (unloaded){ MochiAd.unload(clip); }; }; clip.loaderInfo.addEventListener(Event.COMPLETE, f); if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object; _local2 = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = _arg1; }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; mc.rpcTestFn = function (_arg1:String):Object{ trace(("[MOCHIAD rpcTestFn] " + _arg1)); return (_arg1); }; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; sendHostProgress = false; mc.sendHostLoadProgress = function (_arg1:String):void{ sendHostProgress = true; }; chk["onEnterFrame"] = function ():void{ var _local1:Object; var _local2:Object; var _local3:Number; var _local4:Boolean; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Object; var _local10:Number; var _local11:Number; if (((!(this.parent)) || (!(this.parent.parent)))){ delete this["onEnterFrame"]; return; }; _local1 = this.parent.parent.root; _local2 = this.parent._mochiad_ctr; _local3 = (getTimer() - this.started); _local4 = false; _local5 = _local1.loaderInfo.bytesTotal; _local6 = _local1.loaderInfo.bytesLoaded; if (complete){ _local6 = Math.max(1, _local6); _local5 = _local6; }; _local7 = ((100 * _local6) / _local5); _local8 = ((100 * _local3) / chk.ad_msec); _local9 = this._mochiad_bar._inside; _local10 = Math.min(100, Math.min(((_local7) || (0)), _local8)); _local10 = Math.max(this.last_pcnt, _local10); this.last_pcnt = _local10; _local9.scaleX = (_local10 * 0.01); options.ad_progress(_local10); if (sendHostProgress){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local7}); if (_local7 == 100){ sendHostProgress = false; }; }; if (!chk.showing){ _local11 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local11 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if ((((_local3 > chk.ad_timeout)) && ((_local7 == 100)))){ options.ad_failed(); _local4 = true; }; }; }; if (_local3 > chk.ad_msec){ _local4 = true; }; if (((complete) && (_local4))){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function showPreloaderAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0"); MochiAd.showPreGameAd(_arg1); } public static function showTimedAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0"); MochiAd.showInterLevelAd(_arg1); } public static function doOnEnterFrame(_arg1:MovieClip):void{ var f:Function; var mc = _arg1; f = function (_arg1:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } } }//package mochi.as3
Section 14
//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 15
//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){ if (options.clip != null){ if ((options.clip is Sprite)){ MochiServices.setContainer(options.clip); }; delete options.clip; } else { MochiServices.setContainer(); }; MochiServices.stayOnTop(); if (options.name != null){ if ((options.name is TextField)){ if (options.name.text.length > 0){ options.name = options.name.text; }; }; }; if (options.score != null){ if ((options.score is TextField)){ if (options.score.text.length > 0){ options.score = options.score.text; }; } 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; }; }; 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 != null){ if (_arg1.error != null){ if (_arg1.error == true){ if (onErrorHandler != null){ if (_arg1.errorCode == null){ _arg1.errorCode = "IOError"; }; onErrorHandler(_arg1.errorCode); MochiServices.doClose(); return; }; }; }; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(_arg1:String):void{ MochiScores.boardID = _arg1; MochiServices.send("scores_setBoardID", {boardID:_arg1}); } } }//package mochi.as3
Section 16
//MochiServices (mochi.as3.MochiServices) package mochi.as3 { import flash.events.*; import flash.display.*; import flash.system.*; import flash.utils.*; import flash.net.*; import flash.geom.*; public class MochiServices { private static var _container:Object; private static var _connected:Boolean = false; private static var _swfVersion:String; public static var netupAttempted:Boolean = false; private static var _sendChannel:LocalConnection; private static var _clip:MovieClip; private static var _loader:Loader; private static var _id:String; private static var _listenChannel:LocalConnection; public static var widget:Boolean = false; private static var _timer:Timer; private static var _sendChannelName:String; private static var _connecting:Boolean = false; public static var onError:Object; private static var _listenChannelName:String = "__ms_"; private static var _servicesURL:String = "http://www.mochiads.com/static/lib/services/services.swf"; public static var netup:Boolean = true; public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function get connected():Boolean{ return (_connected); } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (_clip != null){ if (_clip._queue != null){ while (_clip._queue.length > 0) { _local2 = _clip._queue.shift(); _local3 = null; if (_local2 != null){ if (_local2.callbackID != null){ _local3 = _clip._callbacks[_local2.callbackID]; }; delete _clip._callbacks[_local2.callbackID]; if (((_arg1) && (!((_local3 == null))))){ handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod); }; }; }; }; }; } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _sendChannel.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ onError("NotConnected"); handleError(_arg2, _arg3, _arg4); flush(true); return; }; _clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); }; if (_clip != null){ if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){ _clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4}; _clip._nextcallbackID++; }; }; } 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().getTime())); _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 { _listenChannel.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.0"); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); if (_clip.parent != null){ Sprite(_clip.parent).removeChild(_clip); }; } private static function onStatus(_arg1:StatusEvent):void{ switch (_arg1.level){ case "error": _connected = false; _listenChannel.connect(_listenChannelName); break; }; } public static function get id():String{ return (_id); } private static function urlOptions(_arg1:Object):Object{ var _local2:Object; var _local3:String; var _local4:Array; var _local5:Number; var _local6:Array; _local2 = {}; _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 (_arg1 != null){ if ((_arg1 is Sprite)){ _container = _arg1; }; }; if (_arg2){ if ((_container is Sprite)){ Sprite(_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 initComChannels():void{ if (!_connected){ _sendChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_container, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _listenChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _clip.onReceive = function (_arg1:Object):void{ var cb:String; var cblst:Object; var method:*; var methodName:String; var obj:Object; var pkg = _arg1; cb = pkg.callbackID; cblst = this.client._callbacks[cb]; if (!cblst){ return; }; method = cblst.callbackMethod; methodName = ""; obj = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ methodName = method; if (obj[method] != null){ method = obj[method]; } else { trace((("Error: Method " + method) + " does not exist.")); }; }; if (method != undefined){ try { method.apply(obj, pkg.args); } catch(error:Error) { trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString())); }; } else { if (obj != null){ try { obj(pkg.args); } catch(error:Error) { trace(("Error invoking method on object: " + error.toString())); }; }; }; delete this.client._callbacks[cb]; }; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; trace("connected!"); _connecting = false; _connected = true; while (_clip._queue.length > 0) { _sendChannel.send(_sendChannelName, "onReceive", _clip._queue.shift()); }; }; } private static function listen():void{ _listenChannel = new LocalConnection(); _listenChannel.client = _clip; _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; _listenChannel.allowDomain("*", "localhost"); _listenChannel.allowInsecureDomain("*", "localhost"); _listenChannel.connect(_listenChannelName); trace("Waiting for MochiAds services to connect..."); } 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 clipname:String; var f:Function; var req:URLRequest; var vars:URLVariables; var id = _arg1; var clip = _arg2; clipname = ("_mochiservices_com_" + id); if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (urlOptions(clip).servicesURL != undefined){ _servicesURL = urlOptions(clip).servicesURL; }; MochiServices.allowDomains(_servicesURL); _clip = createEmptyMovieClip(clip, clipname, 10336, false); _loader = new Loader(); f = function (_arg1:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); }; _listenChannelName = (_listenChannelName + ((Math.floor(new Date().getTime()) + "_") + Math.floor((Math.random() * 99999)))); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f); req = new URLRequest(_servicesURL); vars = new URLVariables(); vars.listenLC = _listenChannelName; vars.mochiad_options = clip.loaderInfo.parameters.mochiad_options; if (widget){ vars.widget = true; }; req.data = vars; listen(); _loader.load(req); _clip.addChild(_loader); _clip._mochiservices_com = _loader; _sendChannel = new LocalConnection(); _clip._queue = []; _clip._nextcallbackID = 0; _clip._callbacks = {}; _timer = new Timer(10000, 1); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); return (_clip); } public static function get clip():Object{ return (_container); } public static function bringToTop(_arg1:Event):void{ var e = _arg1; if (MochiServices.clip != null){ if (MochiServices.childClip != null){ try { if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; } catch(errorObject:Error) { trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; }; } public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{ var id = _arg1; var clip = _arg2; var onError = _arg3; if ((clip is DisplayObject)){ if (((!(_connected)) && ((_clip == null)))){ trace("MochiServices Connecting..."); _connecting = true; init(id, clip); }; } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (_arg1:String):void{ trace(_arg1); }; }; }; } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Boolean=true):MovieClip{ var mc:MovieClip; var parent = _arg1; var name = _arg2; var depth = _arg3; var doAdd = _arg4; mc = new MovieClip(); if (doAdd){ if (((false) && (depth))){ parent.addChildAt(mc, depth); } else { parent.addChild(mc); }; }; try { parent[name] = mc; } catch(e:Error) { throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; mc["_name"] = name; return (mc); } public static function connectWait(_arg1:TimerEvent):void{ if (!_connected){ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load. (timeout)"); MochiServices.disconnect(); MochiServices.onError("IOError"); }; } } }//package mochi.as3
Section 17
//MainTimeline (tidal_fla.MainTimeline) package tidal_fla { import flash.events.*; import flash.display.*; import mochi.as3.*; import flash.media.*; import flash.system.*; import flash.utils.*; import flash.net.*; import flash.geom.*; import flash.text.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public var gametype:String; public var shipselect:ShipSelect; public var playCount:int; public var screenstatus:String; public var adappears; public var mochiad:MochiAdScreen; public var gameloop:GameLoop; public var soundManager:SoundManager; public var gameoverscreen:GameOverScreen; public var howtoplayscreen:HowToPlayScreen; public var titlescreen:TitleScreen; public function MainTimeline(){ addFrameScript(0, frame1); } public function MakeTitleScreen(){ adappears.visible = false; titlescreen = new TitleScreen(this); this.addChild(titlescreen); titlescreen.x = 200; titlescreen.y = 300; } public function StartWithTitle(){ soundManager.PlayBGM("titlescreen"); titlescreen = new TitleScreen(this); this.addChild(titlescreen); titlescreen.x = 200; titlescreen.y = 300; stop(); } public function NewTitleScreen(){ var myOptions:Object; playCount++; soundManager.PlayBGM("titlescreen"); this.removeChild(gameoverscreen); if (playCount == 3){ adappears.visible = true; myOptions = {id:"0e428d8c0c2fd8c5", res:"400x600", clip:this, ad_finished:function (){ MakeTitleScreen(); }}; MochiAd.showInterLevelAd(myOptions); playCount = 0; } else { MakeTitleScreen(); }; } public function NewTitleScreenFromHowToPlay(){ this.removeChild(howtoplayscreen); titlescreen = new TitleScreen(this); this.addChild(titlescreen); titlescreen.x = 200; titlescreen.y = 300; } public function setMouseStatusDown(_arg1:MouseEvent):void{ gameloop.MouseHeldDown = true; } function frame1(){ MochiServices.connect("0e428d8c0c2fd8c5", root); Mouse.hide(); playCount = 0; adappears = new AdAppears(); adappears.x = 200; adappears.y = 30; screenstatus = "x"; addChild(adappears); adappears.visible = false; soundManager = new SoundManager(); addChild(soundManager); StartWithMochi(); stop(); } public function NewHowToPlayScreen(){ this.removeChild(titlescreen); howtoplayscreen = new HowToPlayScreen(this); this.addChild(howtoplayscreen); howtoplayscreen.x = 200; howtoplayscreen.y = 300; } public function NewGame(_arg1){ soundManager.StopBGM(); soundManager.PlayBGM("maingame"); this.removeChild(shipselect); gameloop = new GameLoop(_arg1, gametype, this); this.addChild(gameloop); screenstatus = "p"; stage.addEventListener(KeyboardEvent.KEY_DOWN, pauseFunction); stage.addEventListener(MouseEvent.MOUSE_DOWN, setMouseStatusDown); stage.addEventListener(MouseEvent.MOUSE_UP, setMouseStatusUp); } public function NewGameOverScreen(_arg1, _arg2, _arg3, _arg4){ screenstatus = "x"; soundManager.StopBGM(); this.removeChild(gameloop); gameoverscreen = new GameOverScreen(this, _arg1, _arg2, _arg3, _arg4); this.addChild(gameoverscreen); gameoverscreen.x = 200; gameoverscreen.y = 300; stage.removeEventListener(KeyboardEvent.KEY_DOWN, pauseFunction); stage.removeEventListener(MouseEvent.MOUSE_DOWN, setMouseStatusDown); stage.removeEventListener(MouseEvent.MOUSE_UP, setMouseStatusUp); } public function StartWithMochi(){ var myOptions:Object; myOptions = {id:"0e428d8c0c2fd8c5", res:"400x600", clip:this, ad_finished:function (){ StartWithTitle(); }}; MochiAd.showPreGameAd(myOptions); } public function setMouseStatusUp(_arg1:MouseEvent):void{ gameloop.MouseHeldDown = false; } public function NewFirstTitleScreen(){ soundManager.PlayBGM("titlescreen"); this.removeChild(mochiad); titlescreen = new TitleScreen(this); this.addChild(titlescreen); titlescreen.x = 200; titlescreen.y = 300; } public function pauseFunction(_arg1:KeyboardEvent){ if (screenstatus == "p"){ if (_arg1.keyCode == 80){ if (gameloop.gameStatus == "playing"){ gameloop.gameStatus = "paused"; soundManager.PlaySound("pause"); gameloop.pausebox.visible = true; } else { gameloop.gameStatus = "playing"; gameloop.pausebox.visible = false; }; }; if (_arg1.keyCode == 81){ gameloop.GameOver(); }; }; if (_arg1.keyCode == 83){ soundManager.ToggleSound(); }; if (_arg1.keyCode == 77){ soundManager.ToggleBGM(); }; } public function NewShipSelect(_arg1){ soundManager.StopBGM(); this.removeChild(titlescreen); shipselect = new ShipSelect(this); this.addChild(shipselect); shipselect.x = 200; shipselect.y = 300; gametype = _arg1; } } }//package tidal_fla
Section 18
//AdAppears (AdAppears) package { import flash.display.*; public dynamic class AdAppears extends MovieClip { } }//package
Section 19
//Ajuga (Ajuga) package { public class Ajuga extends Avatar { public function Ajuga(){ shottoggle = 3; shottogglemax = 3; shotangle = 0; shotanglemax = 0; shotmodifier = 0; } } }//package
Section 20
//ArrowButton (ArrowButton) package { import flash.display.*; public dynamic class ArrowButton extends SimpleButton { } }//package
Section 21
//ASHLGamesBox (ASHLGamesBox) package { import flash.display.*; public dynamic class ASHLGamesBox extends MovieClip { } }//package
Section 22
//Avatar (Avatar) package { import flash.events.*; import flash.display.*; public class Avatar extends MovieClip { public var shotangle:int; private var bulletHolder:Object; private var myParent:Object; public var shotanglemax:int; public var shottoggle:int; public var shotmodifier:int; public var shottogglemax:uint; public function Avatar(){ addEventListener(Event.ADDED, beginClass); } public function PlayerStopShoot():void{ shottoggle--; shotangle = 0; } private function beginClass(_arg1:Event):void{ myParent = this.parent; bulletHolder = myParent.getChildAt(1); x = myParent.mouseX; y = myParent.mouseY; removeEventListener(Event.ADDED, beginClass); } public function PlayerShoot():void{ var _local1:*; if (shottoggle < 1){ myParent.PlayerShotSound(); _local1 = new PlayerBullet(this.x, this.y, this.shotangle); shotangle = (shotangle + shotmodifier); if (Math.abs(shotangle) > shotanglemax){ shotmodifier = (shotmodifier * -1); shotangle = (shotangle + (shotmodifier * 2)); }; shottoggle = shottogglemax; bulletHolder.addChild(_local1); } else { shottoggle--; }; } public function MoveAvatar():void{ var _local1:Number; var _local2:Number; var _local3:*; _local1 = (x - myParent.mouseX); _local2 = (y - myParent.mouseY); _local3 = (Math.atan2(_local2, _local1) / (Math.PI / 180)); x = (x - (Math.cos(((_local3 * Math.PI) / 180)) * Math.abs((_local1 / 2)))); y = (y - (Math.sin(((_local3 * Math.PI) / 180)) * Math.abs((_local2 / 2)))); if (x < 10){ x = 10; }; if (x > 390){ x = 390; }; if (y < 10){ y = 10; }; if (y > 590){ y = 590; }; if (shottoggle < 0){ shottoggle = 0; }; } } }//package
Section 23
//BackgroundOct (BackgroundOct) package { import flash.display.*; public class BackgroundOct extends MovieClip { public var speed:uint; public var rotationAmount:Number; public function BackgroundOct(){ rotationAmount = new Number(); speed = new uint(); super(); x = (Math.round((Math.random() * 600)) - 100); y = (Math.round((Math.random() * -100)) - width); width = (Math.round((Math.random() * 350)) + 50); height = width; rotationAmount = ((Math.random() * 6) - 3); speed = (Math.round((Math.random() * 4)) + 1); } private function ResetOct():void{ x = (Math.round((Math.random() * 600)) - 100); y = (Math.round((Math.random() * -100)) - width); width = (Math.round((Math.random() * 350)) + 50); height = width; rotationAmount = ((Math.random() * 6) - 3); speed = (Math.round((Math.random() * 4)) + 1); } public function MoveOct():void{ y = (y + speed); rotation = (rotation + rotationAmount); if (y > (600 + (width / 2))){ this.ResetOct(); }; } } }//package
Section 24
//BGM1 (BGM1) package { import flash.media.*; public dynamic class BGM1 extends Sound { } }//package
Section 25
//BGM2 (BGM2) package { import flash.media.*; public dynamic class BGM2 extends Sound { } }//package
Section 26
//Blocker (Blocker) package { import flash.events.*; import flash.display.*; public class Blocker extends MovieClip { private var hp:Number; private var bulletHolder:Object; private var shotCounterMax:int; private var myParent:Object; private var maxhp:Number; private var shotCounter:int; private var isAlive:Boolean; private var mainLoop:Object; public function Blocker(_arg1, _arg2, _arg3, _arg4){ mainLoop = _arg4; x = _arg1; y = _arg2; width = _arg3; height = _arg3; shotCounter = ((100 + Math.floor((Math.random() * 100))) - 50); shotCounterMax = ((100 + Math.floor((Math.random() * 100))) - 50); rotation = (Math.floor((Math.random() * 4)) * 90); hp = (mainLoop.enemyBaseHP / 2); maxhp = hp; addEventListener(Event.ADDED, beginClass); } public function MoveEnemy(){ if (isAlive == true){ checkFrame(); checkHitPlayer(); checkShot(); checkShotDead(); }; if (isAlive == true){ shotCounter--; if (shotCounter < 1){ shotCounter = shotCounterMax; makeShot(); }; }; } protected function checkShot(){ var _local1:int; var _local2:PlayerBullet; _local1 = 0; while (_local1 < bulletHolder.numChildren) { _local2 = bulletHolder.getChildAt(_local1); if (hitTestObject(_local2)){ hp--; bulletHolder.getChildAt(_local1).RemoveBullet(); mainLoop.NewSplash(x, y); }; _local1++; }; } private function checkHitPlayer(){ var _local1:int; var _local2:int; if (hitTestObject(myParent.parent.avatar) == true){ _local1 = Math.abs((x - myParent.parent.avatar.x)); _local2 = Math.abs((y - myParent.parent.avatar.y)); if ((((_local1 < (width - (width / 10)))) && ((_local2 < (width - (width / 10)))))){ myParent.parent.GameOver(); }; }; } protected function makeShot(){ myParent.parent.NewEnemyShot(x, y); } protected function checkFrame(){ hp = (hp + 0.01); if (hp > maxhp){ hp = maxhp; }; gotoAndStop(Math.floor(((hp / maxhp) * 5))); } private function beginClass(_arg1:Event):void{ myParent = this.parent; bulletHolder = mainLoop.getChildAt(1); isAlive = true; removeEventListener(Event.ADDED, beginClass); } public function die(){ isAlive = false; myParent.parent.NewBlockerSplash(x, y, width); myParent.removeChild(this); } protected function checkShotDead(){ if (hp < 1){ die(); mainLoop.ResetCombo(); }; } } }//package
Section 27
//BombExplosion (BombExplosion) package { import flash.events.*; import flash.display.*; public class BombExplosion extends MovieClip { private var enemyHolder:Object; private var myParent:Object; private var blockerHolder:Object; private var enemyShotHolder:Object; public function BombExplosion(_arg1, _arg2){ addFrameScript(14, frame15); x = _arg1; y = _arg2; width = 30; height = 30; addEventListener(Event.ADDED, beginClass); } public function AnimateExplosion(){ var _local1:int; var _local2:Enemy; var _local3:Blocker; var _local4:EnemyShot; if (enemyHolder.numChildren > 0){ _local1 = 0; while (_local1 < enemyHolder.numChildren) { _local2 = enemyHolder.getChildAt(_local1); if (hitTestObject(_local2)){ enemyHolder.removeChild(_local2); myParent.parent.BombScore(); }; _local1++; }; }; if (blockerHolder.numChildren > 0){ _local1 = 0; while (_local1 < blockerHolder.numChildren) { _local3 = blockerHolder.getChildAt(_local1); if (hitTestObject(_local3)){ blockerHolder.removeChild(_local3); myParent.parent.ResetVerticalOffset(); }; _local1++; }; }; if (enemyShotHolder.numChildren > 0){ _local1 = 0; while (_local1 < enemyShotHolder.numChildren) { _local4 = enemyShotHolder.getChildAt(_local1); if (hitTestObject(_local4)){ _local4.RemoveBullet(); }; _local1++; }; }; if (currentFrame > 9){ myParent.removeChild(this); }; } function frame15(){ stop(); } private function beginClass(_arg1:Event):void{ myParent = this.parent; enemyHolder = myParent.parent.getChildAt(2); blockerHolder = myParent.parent.getChildAt(6); enemyShotHolder = myParent.parent.getChildAt(7); removeEventListener(Event.ADDED, beginClass); } } }//package
Section 28
//BombSplash (BombSplash) package { import flash.events.*; public class BombSplash extends Splash { private var myParent:Object; public function BombSplash(_arg1, _arg2, _arg3){ super(_arg1, _arg2, _arg3); addEventListener(Event.ADDED, beginClass); x = _arg1; y = _arg2; width = _arg3; height = width; rotation = (Math.random() * 360); gotoAndPlay((Math.floor((Math.random() * 4)) + 1)); } override protected function beginClass(_arg1:Event):void{ myParent = this.parent; removeEventListener(Event.ADDED, beginClass); } private function killSplash(){ if (currentFrame > 8){ myParent.removeChild(this); }; } override public function AnimateSplash(){ killSplash(); } } }//package
Section 29
//BoundingBox (BoundingBox) package { import flash.display.*; public dynamic class BoundingBox extends MovieClip { } }//package
Section 30
//Cursor (Cursor) package { import flash.display.*; public dynamic class Cursor extends MovieClip { } }//package
Section 31
//Diamond (Diamond) package { import flash.events.*; public class Diamond extends Enemy { private var hp:Number; private var topspeed:int; private var downTimerBase:uint; private var upTimerBase:uint; private var bulletHolder:Object; private var speed:int; private var upTimer:uint; private var endPoint:uint; private var myParent:Object; private var moveDirection:int; private var downTimer:uint; private var isAlive:Boolean; private var accel:Number; public function Diamond(_arg1, _arg2){ var _local3:int; super(_arg1, _arg2); _local3 = (400 / _arg2); width = _local3; height = width; rotation = 0; x = Math.floor(((_arg1 * _local3) + (_local3 / 2))); addEventListener(Event.ADDED, beginClass); } private function beginClass(_arg1:Event):void{ var _local2:int; myParent = this.parent; hp = Math.round((myParent.parent.enemyBaseHP / (400 / width))); if (hp < 1){ hp = 1; }; speed = 0; topspeed = Math.floor(myParent.parent.topspeed); moveDirection = 1; accel = myParent.parent.accel; downTimer = myParent.parent.downTimer; upTimer = myParent.parent.upTimer; downTimerBase = downTimer; upTimerBase = upTimer; _local2 = (x / (width / (40 / (400 / width)))); endPoint = myParent.parent.sineWave.sineDotArray[_local2].y; y = ((endPoint - myParent.parent.verticalOffset) - (width * 2)); endPoint = (600 + (width * 2)); bulletHolder = myParent.parent.getChildAt(1); isAlive = true; gotoAndPlay(0); removeEventListener(Event.ADDED, beginClass); } override protected function checkEnd(){ if (y > endPoint){ y = (0 - (width / 2)); rotation = (rotation + 180); moveDirection = (moveDirection * -1); speed = 0; }; } } }//package
Section 32
//Enemy (Enemy) package { import flash.events.*; import flash.display.*; public class Enemy extends MovieClip { private var hp:Number; private var topspeed:int; private var downTimerBase:uint; private var upTimerBase:uint; private var bulletHolder:Object; private var speed:int; private var upTimer:uint; private var endPoint:uint; private var myParent:Object; private var moveDirection:int; private var downTimer:uint; private var isAlive:Boolean; private var accel:Number; public function Enemy(_arg1, _arg2){ var _local3:int; super(); _local3 = (400 / _arg2); width = _local3; height = width; rotation = (Math.floor((Math.random() * 4)) * 90); x = Math.floor(((_arg1 * _local3) + (_local3 / 2))); addEventListener(Event.ADDED, beginClass); } public function MoveEnemy(){ if (isAlive == true){ checkShotDead(); }; if (isAlive == true){ checkEnd(); }; if (isAlive == true){ verticalMotion(); checkHitPlayer(); checkShot(); }; } protected function checkShot(){ var _local1:int; var _local2:PlayerBullet; _local1 = 0; while (_local1 < bulletHolder.numChildren) { _local2 = bulletHolder.getChildAt(_local1); if (hitTestObject(_local2)){ hp--; bulletHolder.getChildAt(_local1).RemoveBullet(); myParent.parent.NewSplash(_local2.x, (_local2.y - 10)); y = (y - 5); }; _local1++; }; } private function checkHitPlayer(){ var _local1:int; var _local2:int; if (hitTestObject(myParent.parent.avatar) == true){ _local1 = Math.abs((x - myParent.parent.avatar.x)); _local2 = Math.abs((y - myParent.parent.avatar.y)); if ((((_local1 < (width - (width / 10)))) && ((_local2 < (width - (width / 10)))))){ myParent.parent.GameOver(); }; }; } private function beginClass(_arg1:Event):void{ var _local2:int; myParent = this.parent; hp = Math.round((myParent.parent.enemyBaseHP / (400 / width))); if (hp < 1){ hp = 1; }; speed = 0; topspeed = Math.floor(myParent.parent.topspeed); moveDirection = 1; accel = myParent.parent.accel; downTimer = myParent.parent.downTimer; upTimer = myParent.parent.upTimer; downTimerBase = downTimer; upTimerBase = upTimer; _local2 = (x / (width / (40 / (400 / width)))); endPoint = myParent.parent.sineWave.sineDotArray[_local2].y; y = ((endPoint - myParent.parent.verticalOffset) - (width * 2)); bulletHolder = myParent.parent.getChildAt(1); isAlive = true; gotoAndPlay(Math.floor((Math.random() * 10))); removeEventListener(Event.ADDED, beginClass); } protected function checkShotDead(){ if (hp < 1){ isAlive = false; myParent.parent.NewBoxSplash(x, y, width); myParent.parent.Score(); myParent.removeChild(this); }; } protected function checkEnd(){ if (y > endPoint){ myParent.parent.NewBlocker(x, y, width); myParent.removeChild(this); }; } protected function verticalMotion(){ if (moveDirection == 1){ downTimer--; speed = (speed + accel); if (speed > topspeed){ speed = topspeed; }; } else { speed = (speed - accel); upTimer--; if (speed < (topspeed * -1)){ speed = (topspeed * -1); }; }; y = (y + speed); if ((((downTimer < 1)) || ((upTimer < 1)))){ moveDirection = (moveDirection * -1); downTimer = downTimerBase; upTimer = upTimerBase; }; } } }//package
Section 33
//EnemyCircle (EnemyCircle) package { import flash.events.*; public class EnemyCircle extends Enemy { private var hp:Number; private var topspeed:int; private var downTimerBase:uint; private var upTimerBase:uint; private var bulletHolder:Object; private var speed:int; private var upTimer:uint; private var endPoint:uint; private var myParent:Object; private var moveDirection:int; private var downTimer:uint; private var isAlive:Boolean; private var accel:Number; public function EnemyCircle(_arg1, _arg2){ var _local3:int; super(_arg1, _arg2); _local3 = (400 / _arg2); width = _local3; height = width; rotation = 0; x = Math.floor(((_arg1 * _local3) + (_local3 / 2))); addEventListener(Event.ADDED, beginCircleClass); } override protected function checkShot(){ var _local1:int; var _local2:PlayerBullet; _local1 = 0; while (_local1 < bulletHolder.numChildren) { _local2 = bulletHolder.getChildAt(_local1); if (hitTestObject(_local2)){ hp--; bulletHolder.getChildAt(_local1).RemoveBullet(); myParent.parent.NewSplash(x, y); y = (y - 5); }; _local1++; }; } private function beginCircleClass(_arg1:Event):void{ var _local2:int; myParent = this.parent; hp = Math.round((myParent.parent.enemyBaseHP / (400 / width))); if (hp < 1){ hp = 1; }; speed = 0; topspeed = Math.floor(myParent.parent.topspeed); moveDirection = 1; accel = myParent.parent.accel; downTimer = myParent.parent.downTimer; upTimer = myParent.parent.upTimer; downTimerBase = downTimer; upTimerBase = upTimer; _local2 = (x / (width / (40 / (400 / width)))); endPoint = (600 + width); y = (0 - width); bulletHolder = myParent.parent.getChildAt(1); isAlive = true; removeEventListener(Event.ADDED, beginCircleClass); } override protected function checkShotDead(){ if (hp < 1){ isAlive = false; myParent.parent.MakeNewExplosion(x, y); myParent.parent.Score(); myParent.removeChild(this); }; } override protected function checkEnd(){ if (y > endPoint){ myParent.removeChild(this); myParent.parent.BombScore(); }; } } }//package
Section 34
//EnemyMine (EnemyMine) package { import flash.events.*; public class EnemyMine extends Enemy { private var hp:Number; private var topspeed:int; private var downTimerBase:uint; private var upTimerBase:uint; private var bulletHolder:Object; private var speed:int; private var upTimer:uint; private var endPoint:uint; private var myParent:Object; private var moveDirection:int; private var downTimer:uint; private var isAlive:Boolean; private var accel:Number; public function EnemyMine(_arg1, _arg2){ var _local3:int; super(_arg1, _arg2); _local3 = (400 / _arg2); width = _local3; height = width; rotation = 0; x = Math.floor(((_arg1 * _local3) + (_local3 / 2))); addEventListener(Event.ADDED, beginClass); } override protected function checkShot(){ var _local1:int; var _local2:PlayerBullet; var _local3:int; _local1 = 0; while (_local1 < bulletHolder.numChildren) { _local2 = bulletHolder.getChildAt(_local1); if (hitTestObject(_local2)){ hp--; bulletHolder.getChildAt(_local1).RemoveBullet(); myParent.parent.NewSplash(_local2.x, (_local2.y - 10)); y = (y - 5); _local3 = 0; while (_local3 < 280) { myParent.parent.NewEnemyShrapnel(x, y, (rotation + _local3)); _local3 = (_local3 + 90); }; }; _local1++; }; } private function beginClass(_arg1:Event):void{ var _local2:int; myParent = this.parent; hp = Math.round((myParent.parent.enemyBaseHP / (300 / width))); if (hp < 1){ hp = 1; }; speed = 0; topspeed = Math.floor(myParent.parent.topspeed); moveDirection = 1; accel = myParent.parent.accel; downTimer = myParent.parent.downTimer; upTimer = myParent.parent.upTimer; downTimerBase = downTimer; upTimerBase = upTimer; _local2 = (x / (width / (40 / (400 / width)))); endPoint = myParent.parent.sineWave.sineDotArray[_local2].y; y = ((endPoint - myParent.parent.verticalOffset) - (width * 2)); bulletHolder = myParent.parent.getChildAt(1); isAlive = true; gotoAndPlay(0); removeEventListener(Event.ADDED, beginClass); } override protected function checkShotDead(){ if (hp < 1){ isAlive = false; myParent.parent.NewBoxSplash(x, y, width); myParent.parent.Score(); myParent.removeChild(this); }; } override protected function checkEnd(){ rotation = (rotation + 2); if (y > endPoint){ myParent.parent.NewEnemyMineBlocker(x, y, width); myParent.removeChild(this); }; } } }//package
Section 35
//EnemyMineBlocker (EnemyMineBlocker) package { import flash.events.*; public class EnemyMineBlocker extends Blocker { private var hp:Number; private var bulletHolder:Object; private var shotCounterMax:int; private var myParent:Object; private var maxhp:Number; private var shotCounter:int; private var isAlive:Boolean; private var mainLoop:Object; public function EnemyMineBlocker(_arg1, _arg2, _arg3, _arg4){ super(_arg1, _arg2, _arg3, _arg4); mainLoop = _arg4; x = _arg1; y = _arg2; width = _arg3; height = _arg3; shotCounter = ((200 + Math.floor((Math.random() * 100))) - 50); shotCounterMax = ((200 + Math.floor((Math.random() * 100))) - 50); rotation = (Math.floor((Math.random() * 4)) * 90); hp = Math.floor((mainLoop.enemyBaseHP / 4)); maxhp = hp; addEventListener(Event.ADDED, beginClass); } override protected function checkShot(){ var _local1:int; var _local2:PlayerBullet; var _local3:int; rotation = (rotation + 2); _local1 = 0; while (_local1 < bulletHolder.numChildren) { _local2 = bulletHolder.getChildAt(_local1); if (hitTestObject(_local2)){ hp--; bulletHolder.getChildAt(_local1).RemoveBullet(); mainLoop.NewSplash(x, y); _local3 = 0; while (_local3 < 359) { myParent.parent.NewEnemyShrapnel(x, y, (rotation + _local3)); _local3 = (_local3 + 45); }; }; _local1++; }; } override protected function checkFrame(){ hp = (hp + 0.01); if (hp > maxhp){ hp = maxhp; }; gotoAndStop(Math.floor(((hp / maxhp) * 5))); } private function beginClass(_arg1:Event):void{ myParent = this.parent; bulletHolder = mainLoop.getChildAt(1); isAlive = true; removeEventListener(Event.ADDED, beginClass); } override protected function checkShotDead(){ if (hp < 1){ die(); mainLoop.ResetCombo(); }; } } }//package
Section 36
//EnemyShot (EnemyShot) package { import flash.events.*; import flash.display.*; public class EnemyShot extends MovieClip { private var myParent:Object; public function EnemyShot(_arg1, _arg2, _arg3){ x = _arg1; y = _arg2; rotation = (_arg3 - 180); addEventListener(Event.ADDED, beginClass); } protected function checkHitPlayer(){ var _local1:int; var _local2:int; if (hitTestObject(myParent.parent.avatar) == true){ _local1 = Math.abs((x - myParent.parent.avatar.x)); _local2 = Math.abs((y - myParent.parent.avatar.y)); if ((((_local1 < 6)) && ((_local2 < 6)))){ RemoveBullet(); myParent.parent.GameOver(); }; }; } public function MoveBullet():void{ x = (x - (Math.cos((((rotation - 90) * Math.PI) / 180)) * 6)); y = (y - (Math.sin((((rotation - 90) * Math.PI) / 180)) * 6)); if ((((((((y < -300)) || ((y > 900)))) || ((x < -300)))) || ((x > 700)))){ RemoveBullet(); }; checkHitPlayer(); } protected function beginClass(_arg1:Event):void{ myParent = this.parent; removeEventListener(Event.ADDED, beginClass); } public function RemoveBullet():void{ myParent.removeChild(this); } } }//package
Section 37
//EnemyShotEffect (EnemyShotEffect) package { import flash.events.*; public class EnemyShotEffect extends Splash { private var myParent:Object; public function EnemyShotEffect(_arg1, _arg2, _arg3, _arg4){ super(_arg1, _arg2, _arg3); addEventListener(Event.ADDED, beginClass); x = _arg1; y = _arg2; width = _arg3; height = width; rotation = (_arg4 + 180); } override protected function beginClass(_arg1:Event):void{ myParent = this.parent; removeEventListener(Event.ADDED, beginClass); } private function killSplash(){ if (currentFrame > 8){ myParent.removeChild(this); }; } override public function AnimateSplash(){ killSplash(); } } }//package
Section 38
//EnemyShrapnel (EnemyShrapnel) package { import flash.events.*; public class EnemyShrapnel extends EnemyShot { private var minspeed:int; private var speed:int; private var myParent:Object; public function EnemyShrapnel(_arg1, _arg2, _arg3){ super(_arg1, _arg2, _arg3); x = _arg1; y = _arg2; rotation = (_arg3 - 180); addEventListener(Event.ADDED, beginClass); } override protected function checkHitPlayer(){ var _local1:int; var _local2:int; if (hitTestObject(myParent.parent.avatar) == true){ _local1 = Math.abs((x - myParent.parent.avatar.x)); _local2 = Math.abs((y - myParent.parent.avatar.y)); if ((((_local1 < 6)) && ((_local2 < 6)))){ RemoveBullet(); myParent.parent.GameOver(); }; }; } override public function MoveBullet():void{ speed--; if (speed < minspeed){ speed = minspeed; }; x = (x - (Math.cos((((rotation - 90) * Math.PI) / 180)) * speed)); y = (y - (Math.sin((((rotation - 90) * Math.PI) / 180)) * speed)); if ((((((((y < -300)) || ((y > 900)))) || ((x < -300)))) || ((x > 700)))){ RemoveBullet(); }; checkHitPlayer(); } override protected function beginClass(_arg1:Event):void{ myParent = this.parent; speed = 20; minspeed = 5; removeEventListener(Event.ADDED, beginClass); } override public function RemoveBullet():void{ myParent.removeChild(this); } } }//package
Section 39
//EnemyWave (EnemyWave) package { import flash.events.*; import flash.display.*; public class EnemyWave extends MovieClip { private var total:int; private var waveAr4:Array; private var waveAr5:Array; private var waveAr7:Array; private var waveAr3:Array; private var waveAr8:Array; private var myParent:Object; private var waveAr2:Array; private var waveAr1:Array; private var replaceMe:int; private var waveAr9:Array; private var waveAr6:Array; private var type:int; private var waveAr10:Array; private var waveAr13:Array; private var waveAr14:Array; private var waveAr16:Array; private var waveAr17:Array; private var enemyArray:Array; private var waveAr15:Array; private var waveAr11:Array; private var waveAr12:Array; private var waveArray:Array; public function EnemyWave(_arg1, _arg2){ enemyArray = new Array(); waveAr1 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; waveAr2 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; waveAr3 = [0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1]; waveAr4 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; waveAr5 = [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]; waveAr6 = [2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0]; waveAr7 = [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0]; waveAr8 = [0, 3, 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 0, 0, 3, 0]; waveAr9 = [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]; waveAr10 = [4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0]; waveAr11 = [4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2]; waveAr12 = [1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3]; waveAr13 = [3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0]; waveAr14 = [3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4]; waveAr15 = [0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 4, 4, 4, 4, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0]; waveAr16 = [7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7]; waveAr17 = [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]; waveArray = [waveAr1, waveAr2, waveAr3, waveAr4, waveAr5, waveAr6, waveAr7, waveAr8, waveAr9, waveAr10, waveAr11, waveAr12, waveAr13, waveAr14, waveAr15, waveAr16, waveAr17]; super(); total = _arg1; type = _arg2; addEventListener(Event.ADDED, beginClass); } private function beginClass(_arg1:Event):void{ var _local2:int; var _local3:int; var _local4:EnemyCircle; var _local5:Enemy; var _local6:Triangle; var _local7:Diamond; var _local8:EnemyWaveCannon; var _local9:EnemyMine; var _local10:EnemyCircle; myParent = this.parent; enemyArray = new Array(); if (type == 3){ replaceMe = Math.floor((Math.random() * total)); }; _local2 = 0; while (_local2 < total) { _local3 = waveArray[type][_local2]; if (_local3 == 7){ _local3 = Math.floor((Math.random() * 5)); }; if ((((type == 3)) && ((_local2 == replaceMe)))){ _local4 = new EnemyCircle(_local2, total); enemyArray[_local2] = _local4; } else { switch (_local3){ case 0: _local5 = new Enemy(_local2, total); enemyArray[_local2] = _local5; break; case 1: _local6 = new Triangle(_local2, total); enemyArray[_local2] = _local6; break; case 2: _local7 = new Diamond(_local2, total); enemyArray[_local2] = _local7; break; case 3: _local8 = new EnemyWaveCannon(_local2, total); enemyArray[_local2] = _local8; break; case 4: _local9 = new EnemyMine(_local2, total); enemyArray[_local2] = _local9; break; case 5: _local10 = new EnemyCircle(_local2, total); enemyArray[_local2] = _local10; break; }; }; myParent.getChildAt(2).addChild(enemyArray[_local2]); _local2++; }; removeEventListener(Event.ADDED, beginClass); } } }//package
Section 40
//EnemyWaveCannon (EnemyWaveCannon) package { import flash.events.*; public class EnemyWaveCannon extends Enemy { private var hp:Number; private var topspeed:int; private var downTimerBase:uint; private var upTimerBase:uint; private var bulletHolder:Object; private var speed:int; private var upTimer:uint; private var endPoint:uint; private var myParent:Object; private var shottimer:int; private var moveDirection:int; private var downTimer:uint; private var isAlive:Boolean; private var accel:Number; public function EnemyWaveCannon(_arg1, _arg2){ var _local3:int; super(_arg1, _arg2); _local3 = (400 / _arg2); width = _local3; height = width; rotation = 0; x = Math.floor(((_arg1 * _local3) + (_local3 / 2))); addEventListener(Event.ADDED, beginClass); } private function beginClass(_arg1:Event):void{ var _local2:int; myParent = this.parent; shottimer = 0; hp = Math.round((myParent.parent.enemyBaseHP / (400 / width))); if (hp < 1){ hp = 1; }; speed = 0; topspeed = Math.floor(myParent.parent.topspeed); moveDirection = 1; accel = myParent.parent.accel; downTimer = myParent.parent.downTimer; upTimer = myParent.parent.upTimer; downTimerBase = downTimer; upTimerBase = upTimer; _local2 = (x / (width / (40 / (400 / width)))); endPoint = myParent.parent.sineWave.sineDotArray[_local2].y; y = ((endPoint - myParent.parent.verticalOffset) - (width * 2)); bulletHolder = myParent.parent.getChildAt(1); isAlive = true; gotoAndPlay(0); removeEventListener(Event.ADDED, beginClass); } override protected function checkEnd(){ var _local1:int; shottimer++; if (shottimer > 100){ _local1 = 1; while (_local1 < 5) { myParent.parent.NewEnemyWaveShot(x, (y + 20), 0, (width / 2), ((_local1 * 3) + 3)); _local1++; }; myParent.parent.NewEnemyWaveShotEffect(x, y, 0, (width / 2)); shottimer = 0; }; if (y > endPoint){ myParent.parent.NewEnemyWaveCannonBlocker(x, y, width); myParent.removeChild(this); }; } } }//package
Section 41
//EnemyWaveCannonBlocker (EnemyWaveCannonBlocker) package { import flash.events.*; public class EnemyWaveCannonBlocker extends Blocker { private var hp:Number; private var bulletHolder:Object; private var shotCounterMax:int; private var myParent:Object; private var maxhp:Number; private var shotCounter:int; private var isAlive:Boolean; private var mainLoop:Object; public function EnemyWaveCannonBlocker(_arg1, _arg2, _arg3, _arg4){ super(_arg1, _arg2, _arg3, _arg4); mainLoop = _arg4; x = _arg1; y = _arg2; width = _arg3; height = _arg3; shotCounter = ((150 + Math.floor((Math.random() * 100))) - 50); shotCounterMax = ((150 + Math.floor((Math.random() * 100))) - 50); rotation = (Math.floor((Math.random() * 4)) * 90); hp = (mainLoop.enemyBaseHP / 2); maxhp = hp; addEventListener(Event.ADDED, beginClass); } override protected function makeShot(){ var _local1:int; _local1 = 1; while (_local1 < 5) { myParent.parent.NewEnemyWaveShot(x, y, rotation, (width / 2), ((_local1 * 3) + 3)); _local1++; }; myParent.parent.NewEnemyWaveShotEffect(x, y, rotation, (width / 2)); } override protected function checkFrame(){ var _local1:Number; var _local2:Number; var _local3:*; hp = (hp + 0.01); if (hp > maxhp){ hp = maxhp; }; gotoAndStop(Math.floor(((hp / maxhp) * 5))); _local1 = (x - myParent.parent.mouseX); _local2 = (y - myParent.parent.mouseY); _local3 = (Math.atan2(_local2, _local1) / (Math.PI / 180)); rotation = (_local3 + 90); } private function beginClass(_arg1:Event):void{ myParent = this.parent; bulletHolder = mainLoop.getChildAt(1); isAlive = true; removeEventListener(Event.ADDED, beginClass); } } }//package
Section 42
//EnemyWaveShot (EnemyWaveShot) package { import flash.events.*; public class EnemyWaveShot extends EnemyShot { private var speed:int; private var maxspeed:int; private var myParent:Object; public function EnemyWaveShot(_arg1, _arg2, _arg3, _arg4, _arg5){ super(_arg1, _arg2, _arg3); x = _arg1; y = _arg2; rotation = _arg3; width = _arg4; maxspeed = _arg5; addEventListener(Event.ADDED, beginClass); } override protected function checkHitPlayer(){ var _local1:int; var _local2:int; if (hitTestObject(myParent.parent.avatar) == true){ _local1 = Math.abs((x - myParent.parent.avatar.x)); _local2 = Math.abs((y - myParent.parent.avatar.y)); if ((((_local1 < 8)) && ((_local2 < 8)))){ RemoveBullet(); myParent.parent.GameOver(); }; }; } override public function MoveBullet():void{ speed++; if (speed > maxspeed){ speed = maxspeed; }; x = (x - (Math.cos((((rotation - 90) * Math.PI) / 180)) * speed)); y = (y - (Math.sin((((rotation - 90) * Math.PI) / 180)) * speed)); if ((((((((y < -300)) || ((y > 900)))) || ((x < -300)))) || ((x > 700)))){ RemoveBullet(); }; checkHitPlayer(); } override protected function beginClass(_arg1:Event):void{ myParent = this.parent; speed = 0; removeEventListener(Event.ADDED, beginClass); } override public function RemoveBullet():void{ myParent.removeChild(this); } } }//package
Section 43
//Estrada (Estrada) package { public class Estrada extends Avatar { public function Estrada():void{ shottoggle = 4; shottogglemax = 4; shotangle = 0; shotanglemax = 9; shotmodifier = 3; } } }//package
Section 44
//GameLoop (GameLoop) package { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.text.*; public class GameLoop extends MovieClip { public var topspeed:int;// = 5 public var EarnExtraLife:int; public var pausebox:PauseBox; public var BlockerHolder:Sprite; public var combotextfield; public var playerExplosionCount:int; public var lifedisplay:LifeDisplay; public var myTextFormat; public var GameTimer:Timer; public var InvincibilityWindow:int; public var amplitude;// = 20 public var gameStatus:String;// = "playing" public var score:int;// = 0 public var sineHolder:MovieClip; public var maxcombo:int;// = 0 public var gameMode:String; public var scoretext:String; private var OctHolder:Sprite; public var EnemyShotHolder:Sprite; public var Lives:int; public var accel:int;// = 1 public var enemyWaveCount:Array; public var ExplosionHolder:Sprite; public var SplashHolder:Sprite; public var MouseHeldDown:Boolean;// = false public var sineWave:SineWave; public var OctArray:Array; public var EnemyHolder:Sprite; public var levelupanimation:LevelUpAnimation; public var enemyBaseHP:int;// = 10 public var shipstring:String; public var frequency;// = 2.5 public var BulletHolder:Sprite; public var upTimer:int;// = 20 public var myParent:Object; public var enemyWaveType:Array; public var combo:int;// = 0 public var enemy:EnemyWave; public var avatar:Avatar; public var scoretextfield; public var gameloop:Object; public var waveNumber:int;// = 0 public var verticalOffset:int;// = 180 public var combotext:String; public var numEnemies:int; public var downTimer:int;// = 30 public var ExplosionSplashArray:Array; public function GameLoop(_arg1, _arg2, _arg3){ gameStatus = "playing"; gameloop = this; enemyBaseHP = 10; downTimer = 30; upTimer = 20; accel = 1; topspeed = 5; waveNumber = 0; score = 0; combo = 0; maxcombo = 0; scoretextfield = new TextField(); combotextfield = new TextField(); myTextFormat = new TextFormat(); MouseHeldDown = false; OctHolder = new Sprite(); BulletHolder = new Sprite(); EnemyHolder = new Sprite(); SplashHolder = new Sprite(); BlockerHolder = new Sprite(); EnemyShotHolder = new Sprite(); ExplosionHolder = new Sprite(); levelupanimation = new LevelUpAnimation(); sineHolder = new MovieClip(); amplitude = 20; frequency = 2.5; verticalOffset = 180; super(); shipstring = _arg1; gameMode = _arg2; myParent = _arg3; setUp(); } public function GameOver(){ var _local1:int; var _local2:int; var _local3:PlayerExplosion; var _local4:PlayerFragment; if (InvincibilityWindow < 1){ Lives--; lifedisplay.UpdateLifeDisplay((Lives + 1)); playerExplosionCount = 20; if (Lives == 0){ ExplosionSplashArray = new Array(); _local1 = 0; while (_local1 < 4) { _local3 = new PlayerExplosion(avatar.x, avatar.y, 40); ExplosionSplashArray[_local1] = _local3; SplashHolder.addChild(ExplosionSplashArray[_local1]); _local1++; }; ExplosionSplashArray = new Array(); _local2 = 0; while (_local2 < 10) { _local4 = new PlayerFragment(avatar.x, avatar.y, 100); ExplosionSplashArray[_local2] = _local4; SplashHolder.addChild(ExplosionSplashArray[_local2]); _local2++; }; avatar.visible = false; removeEventListener(MouseEvent.MOUSE_DOWN, setMouseStatusDown); removeEventListener(MouseEvent.MOUSE_UP, setMouseStatusUp); playerExplosionCount = 0; gameStatus = "over"; } else { MakeNewExplosion(avatar.x, avatar.y); }; }; } private function MakeScoreBox(){ var _local1:*; _local1 = new ScoreComboHeader(); addChild(_local1); _local1.x = 198; _local1.y = 17; myTextFormat.size = 26; myTextFormat.color = 0xFFFFFF; myTextFormat.font = "Kozuka Gothic Pro EL"; addChild(scoretextfield); scoretextfield.x = 88; scoretextfield.y = -1; scoretextfield.text = "0"; scoretextfield.setTextFormat(myTextFormat); scoretextfield.embedFonts = true; scoretextfield.defaultTextFormat = myTextFormat; addChild(combotextfield); combotextfield.x = 338; combotextfield.y = -1; combotextfield.text = "0"; combotextfield.setTextFormat(myTextFormat); combotextfield.embedFonts = true; combotextfield.defaultTextFormat = myTextFormat; } public function NewSplash(_arg1, _arg2){ var _local3:Splash; _local3 = new Splash(_arg1, _arg2, 40); SplashHolder.addChild(_local3); } public function PlayerShotSound(){ myParent.soundManager.PlaySound("playershoot"); } public function NewBlocker(_arg1, _arg2, _arg3){ var _local4:Blocker; numEnemies--; _local4 = new Blocker(_arg1, _arg2, _arg3, this); BlockerHolder.addChild(_local4); } public function NewEnemyShrapnel(_arg1, _arg2, _arg3){ var _local4:EnemyShrapnel; _local4 = new EnemyShrapnel(_arg1, _arg2, _arg3); EnemyShotHolder.addChild(_local4); myParent.soundManager.PlaySound("enemyshrapnel"); } public function Score(){ myParent.soundManager.PlaySound("enemydestroyed"); numEnemies--; combo++; score = (score + combo); scoretext = score.toString(); combotext = combo.toString(); scoretextfield.text = scoretext; combotextfield.text = combotext; scoretextfield.setTextFormat(myTextFormat); combotextfield.setTextFormat(myTextFormat); if (combo > maxcombo){ maxcombo = combo; }; if (score > EarnExtraLife){ Lives++; lifedisplay.UpdateLifeDisplay((Lives + 1)); EarnExtraLife = (EarnExtraLife + 10000); }; } public function MakeNewExplosion(_arg1, _arg2){ var _local3:BombExplosion; var _local4:int; var _local5:BombSplash; myParent.soundManager.PlaySound("bombexplosion"); _local3 = new BombExplosion(_arg1, _arg2); ExplosionHolder.addChild(_local3); ExplosionSplashArray = new Array(); _local4 = 0; while (_local4 < 7) { _local5 = new BombSplash(_arg1, _arg2, 70); ExplosionSplashArray[_local4] = _local5; SplashHolder.addChild(ExplosionSplashArray[_local4]); _local4++; }; } private function setUp(){ var _local1:int; var _local2:BackgroundOct; if (gameMode == "normal"){ enemyWaveCount = [6, 6, 8, 8, 8, 6, 8, 10, 12, 8, 8, 4, 8, 16, 8, 4, 16, 8, 4, 8, 8, 12, 8, 8, 8, 4, 8, 12, 12, 8, 4, 8, 2, 1, 8, 8, 4, 20, 12, 8, 4, 8, 16, 16, 8, 8, 16, 16, 1, 8, 8, 24, 12, 24, 8, 8, 8, 40, 16, 8, 20, 20, 20, 40, 8, 4, 8, 16, 32, 8, 1, 1, 1, 1, 8, 40, 40, 40, 40, 8, 16, 16, 16, 16, 8, 32, 16, 8, 4, 8, 40, 40, 40, 40, 8, 1, 1, 1, 1, 1]; enemyWaveType = [0, 0, 0, 0, 3, 1, 1, 1, 1, 3, 0, 1, 0, 1, 3, 0, 1, 0, 2, 3, 4, 4, 4, 2, 3, 0, 5, 6, 5, 3, 8, 1, 2, 8, 3, 9, 9, 1, 6, 3, 12, 7, 0, 5, 3, 12, 8, 14, 4, 16, 8, 1, 13, 5, 0, 5, 6, 5, 11, 3, 0, 10, 2, 9, 3, 1, 7, 4, 14, 3, 0, 1, 8, 7, 3, 0, 1, 8, 7, 3, 6, 10, 11, 13, 3, 0, 0, 0, 0, 3, 15, 15, 15, 15, 3, 15, 15, 15, 15, 16]; }; if (gameMode == "wild"){ enemyWaveCount = [(Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1), (Math.floor((Math.random() * 19)) + 1)]; enemyWaveType = [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]; }; GameTimer = new Timer(25); GameTimer.addEventListener(TimerEvent.TIMER, GameActions); GameTimer.start(); addChild(OctHolder); addChild(BulletHolder); addChild(EnemyHolder); OctArray = new Array(); _local1 = 0; while (_local1 < 11) { _local2 = new BackgroundOct(); OctArray.push(_local2); OctHolder.addChild(_local2); _local1++; }; if (shipstring == "ajuga"){ avatar = new Ajuga(); }; if (shipstring == "estrada"){ avatar = new Estrada(); }; if (shipstring == "ola"){ avatar = new Ola(); }; addChild(avatar); sineWave = new SineWave(verticalOffset, amplitude, frequency); addChild(sineHolder); sineHolder.addChild(sineWave); enemy = new EnemyWave(enemyWaveCount[waveNumber], enemyWaveType[waveNumber]); numEnemies = enemyWaveCount[waveNumber]; addChild(SplashHolder); addChild(BlockerHolder); addChild(EnemyShotHolder); addChild(ExplosionHolder); MakeScoreBox(); addChild(enemy); levelupanimation = new LevelUpAnimation(); addChild(levelupanimation); levelupanimation.x = 200; levelupanimation.y = 300; levelupanimation.gotoAndStop(0); InvincibilityWindow = 10; Lives = 3; lifedisplay = new LifeDisplay(); addChild(lifedisplay); EarnExtraLife = 10000; pausebox = new PauseBox(); addChild(pausebox); pausebox.x = 200; pausebox.y = 300; pausebox.visible = false; } public function NewBoxSplash(_arg1, _arg2, _arg3){ var _local4:BombSplash; var _local5:BombSplash; myParent.soundManager.PlaySound("enemydestroyed"); _arg3 = (_arg3 / 2); _local4 = new BombSplash(_arg1, _arg2, _arg3); SplashHolder.addChild(_local4); _local5 = new BombSplash(_arg1, _arg2, _arg3); SplashHolder.addChild(_local5); } private function GameActions(_arg1:TimerEvent):void{ var _local2:BackgroundOct; var _local3:int; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; InvincibilityWindow--; if (InvincibilityWindow < 0){ InvincibilityWindow = 0; }; if (gameStatus == "playing"){ for each (_local2 in OctArray) { _local2.MoveOct(); }; if (numEnemies < 1){ waveNumber++; NewWave(); }; avatar.MoveAvatar(); NewShipTracer(); if (MouseHeldDown == true){ avatar.PlayerShoot(); } else { avatar.PlayerStopShoot(); }; if (BulletHolder.numChildren > 0){ _local3 = 0; while (_local3 < BulletHolder.numChildren) { _local4 = BulletHolder.getChildAt(_local3); _local4.MoveBullet(); _local3++; }; }; if (EnemyHolder.numChildren > 0){ _local3 = 0; while (_local3 < EnemyHolder.numChildren) { _local5 = EnemyHolder.getChildAt(_local3); _local5.MoveEnemy(); _local3++; }; }; if (BlockerHolder.numChildren > 0){ _local3 = 0; while (_local3 < BlockerHolder.numChildren) { _local6 = BlockerHolder.getChildAt(_local3); _local6.MoveEnemy(); _local3++; }; }; if (EnemyShotHolder.numChildren > 0){ _local3 = 0; while (_local3 < EnemyShotHolder.numChildren) { _local7 = EnemyShotHolder.getChildAt(_local3); _local7.MoveBullet(); _local3++; }; }; if (ExplosionHolder.numChildren > 0){ _local3 = 0; while (_local3 < ExplosionHolder.numChildren) { _local8 = ExplosionHolder.getChildAt(_local3); _local8.AnimateExplosion(); _local3++; }; }; if (SplashHolder.numChildren > 0){ _local3 = 0; while (_local3 < SplashHolder.numChildren) { _local9 = SplashHolder.getChildAt(_local3); _local9.AnimateSplash(); _local3++; }; }; }; if (gameStatus == "over"){ avatar.MoveAvatar(); if (SplashHolder.numChildren > 0){ _local3 = 0; while (_local3 < SplashHolder.numChildren) { _local10 = SplashHolder.getChildAt(_local3); _local10.AnimateSplash(); _local3++; }; }; playerExplosionCount++; if (playerExplosionCount == 40){ if (Lives == 0){ GameTimer.removeEventListener(TimerEvent.TIMER, GameActions); GameTimer.stop(); myParent.NewGameOverScreen(score, maxcombo, (waveNumber + 1), gameMode); } else { gameStatus = "playing"; }; }; }; } private function setMouseStatusUp(_arg1:MouseEvent):void{ MouseHeldDown = false; } public function NewWave(){ var _local1:*; myParent.soundManager.PlaySound("newwave"); if (waveNumber > 98){ if (waveNumber > 98){ myParent.NewGameOverScreen(score, maxcombo, (waveNumber + 1), gameMode); }; myParent.NewGameOverScreen(score, maxcombo, (waveNumber + 1), gameMode); }; _local1 = 0; while (_local1 < BlockerHolder.numChildren) { if (verticalOffset < BlockerHolder.getChildAt(_local1).y){ verticalOffset = BlockerHolder.getChildAt(_local1).y; }; _local1++; }; sineHolder.removeChild(sineWave); if (verticalOffset > 570){ verticalOffset = 570; }; sineWave = new SineWave(verticalOffset, amplitude, frequency); sineHolder.addChild(sineWave); numEnemies = enemyWaveCount[waveNumber]; enemy = new EnemyWave(enemyWaveCount[waveNumber], enemyWaveType[waveNumber]); addChild(enemy); if ((waveNumber / 5) == Math.floor((waveNumber / 5))){ levelupanimation.gotoAndPlay(0); enemyBaseHP = (enemyBaseHP + 2); downTimer = (downTimer + 4); upTimer = (upTimer - 1); topspeed = (topspeed + 0.5); amplitude = (amplitude + 5); frequency = (frequency + 0.625); }; } public function NewEnemyWaveCannonBlocker(_arg1, _arg2, _arg3){ var _local4:EnemyWaveCannonBlocker; numEnemies--; _local4 = new EnemyWaveCannonBlocker(_arg1, _arg2, _arg3, this); BlockerHolder.addChild(_local4); } public function ResetVerticalOffset(){ var _local1:*; var _local2:*; verticalOffset = 0; if (BlockerHolder.numChildren > 0){ _local1 = 0; while (_local1 < BlockerHolder.numChildren) { _local2 = BlockerHolder.getChildAt(_local1); if (_local2.y > verticalOffset){ verticalOffset = _local2.y; }; _local1++; }; } else { verticalOffset = 180; }; } public function NewShipTracer(){ var _local1:ShipTracer; _local1 = new ShipTracer(avatar.x, avatar.y, 40); SplashHolder.addChild(_local1); } public function BombScore(){ numEnemies--; } public function NewEnemyShot(_arg1, _arg2){ var _local3:Number; var _local4:Number; var _local5:*; var _local6:EnemyShotEffect; var _local7:EnemyShot; myParent.soundManager.PlaySound("enemyshot"); _local3 = (_arg1 - mouseX); _local4 = (_arg2 - mouseY); _local5 = (Math.atan2(_local4, _local3) / (Math.PI / 180)); _local5 = (_local5 - 90); _local6 = new EnemyShotEffect(_arg1, _arg2, 10, _local5); SplashHolder.addChild(_local6); _local7 = new EnemyShot(_arg1, _arg2, _local5); EnemyShotHolder.addChild(_local7); } public function NewEnemyWaveShotEffect(_arg1, _arg2, _arg3, _arg4){ var _local5:EnemyShotEffect; _local5 = new EnemyShotEffect(_arg1, _arg2, _arg4, _arg3); SplashHolder.addChild(_local5); myParent.soundManager.PlaySound("wavecannon"); } public function NewEnemyMineBlocker(_arg1, _arg2, _arg3){ var _local4:EnemyMineBlocker; numEnemies--; _local4 = new EnemyMineBlocker(_arg1, _arg2, _arg3, this); BlockerHolder.addChild(_local4); } public function NewBlockerSplash(_arg1, _arg2, _arg3){ var _local4:BombSplash; myParent.soundManager.PlaySound("blockerdestroyed"); _local4 = new BombSplash(_arg1, _arg2, _arg3); SplashHolder.addChild(_local4); } private function setMouseStatusDown(_arg1:MouseEvent):void{ MouseHeldDown = true; } public function ResetCombo(){ myParent.soundManager.PlaySound("combobroken"); combo = 0; combotextfield.text = "0"; ResetVerticalOffset(); } public function NewEnemyWaveShot(_arg1, _arg2, _arg3, _arg4, _arg5){ var _local6:EnemyWaveShot; _local6 = new EnemyWaveShot(_arg1, _arg2, _arg3, _arg4, _arg5); EnemyShotHolder.addChild(_local6); } } }//package
Section 45
//GameOverScreen (GameOverScreen) package { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.text.*; public class GameOverScreen extends MovieClip { public var myCursor:Cursor; public var leaderboardscreen:LeaderboardScreen; public var gametype:String; public var leaderboardopen:Boolean; private var GameTimer:Timer; public var myParent:Object; public var score:int; public var lastwave:int; public var maxcombo:int; public function GameOverScreen(_arg1, _arg2, _arg3, _arg4, _arg5){ myParent = _arg1; score = _arg2; maxcombo = _arg3; lastwave = _arg4; gametype = _arg5; setUp(); } private function MakeScoreBox(){ var _local1:TextFormat; var _local2:TextField; var _local3:TextField; var _local4:TextField; _local1 = new TextFormat(); _local1.size = 26; _local1.color = 0xFFFFFF; _local1.align = "right"; _local1.font = "Kozuka Gothic Pro EL"; _local2 = new TextField(); addChild(_local2); _local2.x = 80; _local2.y = -120; _local2.text = score.toString(); _local2.setTextFormat(_local1); _local2.embedFonts = true; _local2.defaultTextFormat = _local1; _local3 = new TextField(); addChild(_local3); _local3.x = 80; _local3.y = -50; _local3.text = maxcombo.toString(); _local3.setTextFormat(_local1); _local3.embedFonts = true; _local3.defaultTextFormat = _local1; _local4 = new TextField(); addChild(_local4); _local4.x = 80; _local4.y = 20; _local4.text = lastwave.toString(); _local4.setTextFormat(_local1); _local4.embedFonts = true; _local4.defaultTextFormat = _local1; } private function TitleScreenButtonPressed(_arg1:MouseEvent){ if (leaderboardopen == false){ myParent.NewTitleScreen(); }; } private function GameActions(_arg1:TimerEvent):void{ myCursor.x = mouseX; myCursor.y = mouseY; } private function setUp(){ var _local1:SelectionButton; var _local2:SelectionButton; myCursor = new Cursor(); addChild(myCursor); _local1 = new SelectionButton(); _local1.addEventListener(MouseEvent.MOUSE_UP, TitleScreenButtonPressed); _local2 = new SelectionButton(); _local2.addEventListener(MouseEvent.MOUSE_UP, SubmitScore); addChild(_local1); _local1.y = 114; _local1.height = 50; addChild(_local2); _local2.y = 181; _local2.height = 50; MakeScoreBox(); GameTimer = new Timer(25); GameTimer.addEventListener(TimerEvent.TIMER, GameActions); GameTimer.start(); leaderboardopen = false; } private function SubmitScore(_arg1:MouseEvent){ if (leaderboardopen == false){ leaderboardscreen = new LeaderboardScreen(this, score, gametype); addChild(leaderboardscreen); leaderboardopen = true; }; } public function CloseLeaderboard(){ removeChild(leaderboardscreen); leaderboardopen = false; } } }//package
Section 46
//HowToPlayScreen (HowToPlayScreen) package { import flash.events.*; import flash.display.*; import flash.utils.*; public class HowToPlayScreen extends MovieClip { public var myCursor:Cursor; public var arrowLast:int; public var GameTimer:Timer; public var myParent:Object; public var arrowNext:int; public function HowToPlayScreen(_arg1){ myParent = _arg1; setUp(); } private function MainMenuButtonPressed(_arg1:MouseEvent){ myParent.NewTitleScreenFromHowToPlay(); } private function GameActions(_arg1:TimerEvent):void{ myCursor.x = mouseX; myCursor.y = mouseY; } private function setUp(){ var _local1:SelectionButton; myCursor = new Cursor(); addChild(myCursor); _local1 = new SelectionButton(); _local1.addEventListener(MouseEvent.MOUSE_UP, MainMenuButtonPressed); addChild(_local1); _local1.y = 265; _local1.height = 50; _local1.width = 300; GameTimer = new Timer(25); GameTimer.addEventListener(TimerEvent.TIMER, GameActions); GameTimer.start(); } } }//package
Section 47
//LeaderboardScreen (LeaderboardScreen) package { import flash.display.*; import mochi.as3.*; import flash.ui.*; public class LeaderboardScreen extends MovieClip { public var theStage:Object; public var gametype:String; public var playerScore:int; public var myParent:Object; public function LeaderboardScreen(_arg1, _arg2, _arg3){ myParent = _arg1; playerScore = _arg2; gametype = _arg3; theStage = myParent.parent; setUp(); } private function setUp(){ var o:Object; var boardID:String; Mouse.show(); if (gametype == "normal"){ o = {n:[7, 7, 12, 13, 2, 0, 5, 11, 6, 15, 15, 0, 5, 10, 1, 15], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; boardID = o.f(0, ""); }; if (gametype == "wild"){ o = {n:[2, 13, 1, 15, 2, 4, 10, 9, 12, 10, 2, 14, 9, 13, 13, 2], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; boardID = o.f(0, ""); }; MochiScores.showLeaderboard({boardID:boardID, score:playerScore, onClose:function (){ CloseLeaderboard(); }}); } private function CloseLeaderboard(){ myParent.CloseLeaderboard(); } public function onConnectError(_arg1:String){ myParent.CloseLeaderboard(); } } }//package
Section 48
//LevelUpAnimation (LevelUpAnimation) package { import flash.display.*; public dynamic class LevelUpAnimation extends MovieClip { public function LevelUpAnimation(){ addFrameScript(41, frame42); } function frame42(){ stop(); } } }//package
Section 49
//LifeDisplay (LifeDisplay) package { import flash.display.*; public class LifeDisplay extends MovieClip { public function LifeDisplay():void{ addFrameScript(0, frame1); x = 7; y = 585; gotoAndStop(4); } function frame1(){ stop(); } public function UpdateLifeDisplay(_arg1:int){ gotoAndStop(_arg1); } } }//package
Section 50
//MochiAdScreen (MochiAdScreen) package { import flash.display.*; import mochi.as3.*; public class MochiAdScreen extends MovieClip { public var myParent:Object; public var score:int; public var lastwave:int; public var maxcombo:int; public function MochiAdScreen(_arg1){ myParent = _arg1; setUp(); } public function adStopped(){ myParent.NewFirstTitleScreen(); } public function adPlaying(){ } private function setUp(){ RunAd(); } private function RunAd(){ var myOptions:Object; myOptions = {id:"0e428d8c0c2fd8c5", res:"400x600", clip:myParent, ad_started:function (){ adPlaying(); }, ad_finished:function (){ adStopped(); }}; MochiAd.showPreGameAd(myOptions); } } }//package
Section 51
//Ola (Ola) package { import flash.events.*; public class Ola extends Avatar { private var bulletHolder:Object; private var myParent:Object; public function Ola(){ shottoggle = 28; shottogglemax = 28; shotangle = 0; shotanglemax = 0; shotmodifier = 0; addEventListener(Event.ADDED, beginClass); } private function beginClass(_arg1:Event):void{ myParent = this.parent; bulletHolder = myParent.getChildAt(1); } override public function PlayerShoot():void{ var _local1:Array; var _local2:int; var _local3:*; _local1 = [-30, -10, 0, 10, 30]; if (shottoggle < 1){ myParent.PlayerShotSound(); _local2 = 0; while (_local2 < _local1.length) { _local3 = new PlayerBullet(this.x, this.y, _local1[_local2]); bulletHolder.addChild(_local3); _local2++; }; shottoggle = shottogglemax; } else { shottoggle--; }; } } }//package
Section 52
//PauseBox (PauseBox) package { import flash.display.*; public dynamic class PauseBox extends MovieClip { } }//package
Section 53
//PlayerBullet (PlayerBullet) package { import flash.events.*; import flash.display.*; public class PlayerBullet extends MovieClip { private var myParent:Object; public function PlayerBullet(_arg1, _arg2, _arg3){ x = _arg1; y = _arg2; rotation = _arg3; addEventListener(Event.ADDED, beginClass); } public function MoveBullet():void{ x = (x - (Math.cos((((rotation + 90) * Math.PI) / 180)) * 10)); y = (y - (Math.sin((((rotation + 90) * Math.PI) / 180)) * 10)); if (y < 0){ RemoveBullet(); }; } private function beginClass(_arg1:Event):void{ myParent = this.parent; removeEventListener(Event.ADDED, beginClass); } public function RemoveBullet():void{ myParent.removeChild(this); } } }//package
Section 54
//PlayerExplosion (PlayerExplosion) package { import flash.events.*; public class PlayerExplosion extends Splash { private var myParent:Object; public function PlayerExplosion(_arg1, _arg2, _arg3){ super(_arg1, _arg2, _arg3); addEventListener(Event.ADDED, beginClass); x = _arg1; y = _arg2; width = _arg3; height = width; rotation = Math.floor((Math.random() * 360)); } override protected function beginClass(_arg1:Event):void{ myParent = this.parent; removeEventListener(Event.ADDED, beginClass); } private function killSplash(){ if (currentFrame > 10){ myParent.removeChild(this); }; } override public function AnimateSplash(){ killSplash(); } } }//package
Section 55
//PlayerFragment (PlayerFragment) package { import flash.events.*; public class PlayerFragment extends Splash { private var myParent:Object; public function PlayerFragment(_arg1, _arg2, _arg3){ super(_arg1, _arg2, _arg3); addEventListener(Event.ADDED, beginClass); x = _arg1; y = _arg2; width = _arg3; height = width; rotation = (Math.random() * 360); } override protected function beginClass(_arg1:Event):void{ myParent = this.parent; removeEventListener(Event.ADDED, beginClass); } private function killSplash(){ if (currentFrame > 18){ myParent.removeChild(this); }; } override public function AnimateSplash(){ killSplash(); } } }//package
Section 56
//ScoreComboHeader (ScoreComboHeader) package { import flash.display.*; public dynamic class ScoreComboHeader extends MovieClip { } }//package
Section 57
//SelectionButton (SelectionButton) package { import flash.display.*; public dynamic class SelectionButton extends SimpleButton { } }//package
Section 58
//ShipSelect (ShipSelect) package { import flash.events.*; import flash.display.*; import flash.utils.*; public class ShipSelect extends MovieClip { public var ShipSelected:String; public var myCursor:Cursor; public var OctArray:Array; public var GameTimer:Timer; public var myParent:Object; public var OctHolder:MovieClip; public function ShipSelect(_arg1){ OctHolder = new MovieClip(); super(); myParent = _arg1; setUp(); } private function OlaButtonPressed(_arg1:MouseEvent){ ShipSelected = "ola"; myParent.NewGame(ShipSelected); } private function AjugaButtonPressed(_arg1:MouseEvent){ ShipSelected = "ajuga"; myParent.NewGame(ShipSelected); } private function EstradaButtonPressed(_arg1:MouseEvent){ ShipSelected = "estrada"; myParent.NewGame(ShipSelected); } private function GameActions(_arg1:TimerEvent):void{ var _local2:BackgroundOct; for each (_local2 in OctArray) { _local2.MoveOct(); }; myCursor.x = mouseX; myCursor.y = mouseY; } private function setUp(){ var _local1:int; var _local2:SelectionButton; var _local3:SelectionButton; var _local4:SelectionButton; var _local5:BackgroundOct; OctHolder = new MovieClip(); OctHolder.y = -300; OctHolder.x = -200; addChild(OctHolder); myCursor = new Cursor(); addChild(myCursor); OctArray = new Array(); _local1 = 0; while (_local1 < 11) { _local5 = new BackgroundOct(); OctArray.push(_local5); OctHolder.addChild(_local5); _local1++; }; _local2 = new SelectionButton(); _local2.addEventListener(MouseEvent.MOUSE_UP, AjugaButtonPressed); _local3 = new SelectionButton(); _local3.addEventListener(MouseEvent.MOUSE_UP, EstradaButtonPressed); _local4 = new SelectionButton(); _local4.addEventListener(MouseEvent.MOUSE_UP, OlaButtonPressed); addChild(_local2); _local2.y = -145; addChild(_local3); _local3.y = 25; addChild(_local4); _local4.y = 195; GameTimer = new Timer(25); GameTimer.addEventListener(TimerEvent.TIMER, GameActions); GameTimer.start(); } } }//package
Section 59
//ShipTracer (ShipTracer) package { import flash.events.*; public class ShipTracer extends Splash { private var myParent:Object; public function ShipTracer(_arg1, _arg2, _arg3){ super(_arg1, _arg2, _arg3); addEventListener(Event.ADDED, beginClass); x = _arg1; y = _arg2; width = _arg3; height = width; rotation = (Math.random() * 360); gotoAndPlay(1); } override protected function beginClass(_arg1:Event):void{ myParent = this.parent; removeEventListener(Event.ADDED, beginClass); } private function killSplash(){ if (currentFrame > 20){ myParent.removeChild(this); }; } override public function AnimateSplash(){ killSplash(); } } }//package
Section 60
//SineDot (SineDot) package { import flash.display.*; public class SineDot extends MovieClip { public function SineDot(){ addFrameScript(113, frame114); gotoAndPlay(0); } function frame114(){ stop(); } } }//package
Section 61
//SineWave (SineWave) package { import flash.display.*; public class SineWave extends MovieClip { public var sineDotArray:Array; public var frequency:Number;// = 2.5 public var amplitude:int;// = 20 private var offset:int; public var verticalOffset:int;// = 200 private var tempGraphicsObject:SineDot; public function SineWave(_arg1, _arg2, _arg3){ amplitude = 20; frequency = 2.5; verticalOffset = 200; super(); verticalOffset = _arg1; amplitude = _arg2; frequency = _arg3; makeSineWave(); } public function makeSineWave(){ var _local1:int; var _local2:SineDot; offset = Math.floor((Math.random() * 100)); sineDotArray = new Array(); _local1 = 0; while (_local1 < 40) { _local2 = new SineDot(); sineDotArray[_local1] = _local2; sineDotArray[_local1].x = (_local1 * 10); sineDotArray[_local1].y = Math.round((amplitude * Math.sin(((frequency * sineDotArray[_local1].x) + offset)))); sineDotArray[_local1].y = (sineDotArray[_local1].y + amplitude); sineDotArray[_local1].y = (sineDotArray[_local1].y + verticalOffset); this.addChild(sineDotArray[_local1]); _local1++; }; } } }//package
Section 62
//soundBlockerDestroyed (soundBlockerDestroyed) package { import flash.media.*; public dynamic class soundBlockerDestroyed extends Sound { } }//package
Section 63
//soundBombExplosion (soundBombExplosion) package { import flash.media.*; public dynamic class soundBombExplosion extends Sound { } }//package
Section 64
//soundComboBroken (soundComboBroken) package { import flash.media.*; public dynamic class soundComboBroken extends Sound { } }//package
Section 65
//soundEnemyDestroyed (soundEnemyDestroyed) package { import flash.media.*; public dynamic class soundEnemyDestroyed extends Sound { } }//package
Section 66
//soundEnemyShot (soundEnemyShot) package { import flash.media.*; public dynamic class soundEnemyShot extends Sound { } }//package
Section 67
//soundEnemyShrapnel (soundEnemyShrapnel) package { import flash.media.*; public dynamic class soundEnemyShrapnel extends Sound { } }//package
Section 68
//soundEnemyWaveCannon (soundEnemyWaveCannon) package { import flash.media.*; public dynamic class soundEnemyWaveCannon extends Sound { } }//package
Section 69
//SoundManager (SoundManager) package { import flash.events.*; import flash.display.*; import flash.media.*; public class SoundManager extends MovieClip { public var BGMToggle:Boolean; public var soundToggle:Boolean; public var soundCount:int; public var BGMArray:Array; public var playingBGM1:BGM1; public var mySound:Sound; public var soundChannelArray:Array; public var playingBGM2:BGM2; public var soundTrans:SoundTransform; public var BGMTrans:SoundTransform; public var myBGMChannel:SoundChannel; public function SoundManager(){ addEventListener(Event.ADDED, beginClass); } public function PlaySound(_arg1){ var _local2:*; switch (_arg1){ case "pause": _local2 = new soundPause(); soundChannelArray[soundCount] = _local2.play(0, 1, soundTrans); break; case "blockerdestroyed": _local2 = new soundBlockerDestroyed(); soundChannelArray[soundCount] = _local2.play(0, 1, soundTrans); break; case "bombexplosion": _local2 = new soundBombExplosion(); soundChannelArray[soundCount] = _local2.play(0, 1, soundTrans); break; case "combobroken": _local2 = new soundComboBroken(); soundChannelArray[soundCount] = _local2.play(0, 1, soundTrans); break; case "enemydestroyed": _local2 = new soundEnemyDestroyed(); soundChannelArray[soundCount] = _local2.play(0, 1, soundTrans); break; case "enemyshot": _local2 = new soundEnemyShot(); soundChannelArray[soundCount] = _local2.play(0, 1, soundTrans); break; case "playerdestroyed": _local2 = new soundPlayerDestroyed(); soundChannelArray[soundCount] = _local2.play(0, 1, soundTrans); break; case "playershoot": _local2 = new soundPlayerShoot(); soundChannelArray[soundCount] = _local2.play(0, 1, soundTrans); break; case "newwave": _local2 = new soundNewWave(); soundChannelArray[soundCount] = _local2.play(0, 1, soundTrans); break; case "enemyshrapnel": _local2 = new soundEnemyShrapnel(); soundChannelArray[soundCount] = _local2.play(0, 1, soundTrans); break; case "wavecannon": _local2 = new soundEnemyWaveCannon(); soundChannelArray[soundCount] = _local2.play(0, 1, soundTrans); break; }; soundCount++; if (soundCount > 7){ soundCount = 0; }; } private function loopBGM1(_arg1:Event){ var _local2:*; _local2 = new BGM1(); myBGMChannel = _local2.play(0, 1, BGMTrans); myBGMChannel.addEventListener(Event.SOUND_COMPLETE, loopBGM1); } private function loopBGM2(_arg1:Event){ var _local2:*; _local2 = new BGM2(); myBGMChannel = _local2.play(0, 1, BGMTrans); myBGMChannel.addEventListener(Event.SOUND_COMPLETE, loopBGM2); } private function beginClass(_arg1:Event){ var _local2:int; var _local3:SoundChannel; soundChannelArray = new Array(); _local2 = 0; while (_local2 > 8) { _local3 = new SoundChannel(); soundChannelArray[_local2] = _local3; _local2++; }; myBGMChannel = new SoundChannel(); BGMArray = [myBGMChannel]; soundCount = 0; soundToggle = true; soundTrans = new SoundTransform(0.9, 0); BGMToggle = true; BGMTrans = new SoundTransform(1, 0); removeEventListener(Event.ADDED, beginClass); } public function ToggleSound(){ if (soundToggle == true){ soundToggle = false; soundTrans = new SoundTransform(0, 0); } else { soundToggle = true; soundTrans = new SoundTransform(0.9, 0); }; } public function StopBGM(){ myBGMChannel.stop(); } public function ToggleBGM(){ if (BGMToggle == true){ BGMToggle = false; BGMTrans = new SoundTransform(0, 0); myBGMChannel.stop(); myBGMChannel.removeEventListener(Event.SOUND_COMPLETE, loopBGM2); } else { BGMToggle = true; BGMTrans = new SoundTransform(1, 0); playingBGM2 = new BGM2(); myBGMChannel = playingBGM2.play(0, 1, BGMTrans); myBGMChannel.addEventListener(Event.SOUND_COMPLETE, loopBGM2); }; } public function PlayBGM(_arg1){ myBGMChannel = new SoundChannel(); BGMArray = new Array(); BGMArray = [myBGMChannel]; if (BGMToggle == true){ playingBGM1 = new BGM1(); playingBGM2 = new BGM2(); switch (_arg1){ case "titlescreen": myBGMChannel = playingBGM1.play(0, 1, BGMTrans); myBGMChannel.addEventListener(Event.SOUND_COMPLETE, loopBGM1); break; case "maingame": myBGMChannel = playingBGM2.play(0, 1, BGMTrans); myBGMChannel.addEventListener(Event.SOUND_COMPLETE, loopBGM2); break; }; }; } } }//package
Section 70
//soundNewWave (soundNewWave) package { import flash.media.*; public dynamic class soundNewWave extends Sound { } }//package
Section 71
//soundPause (soundPause) package { import flash.media.*; public dynamic class soundPause extends Sound { } }//package
Section 72
//soundPlayerDestroyed (soundPlayerDestroyed) package { import flash.media.*; public dynamic class soundPlayerDestroyed extends Sound { } }//package
Section 73
//soundPlayerShoot (soundPlayerShoot) package { import flash.media.*; public dynamic class soundPlayerShoot extends Sound { } }//package
Section 74
//soundQuit (soundQuit) package { import flash.media.*; public dynamic class soundQuit extends Sound { } }//package
Section 75
//Splash (Splash) package { import flash.events.*; import flash.display.*; public class Splash extends MovieClip { private var myParent:Object; public function Splash(_arg1, _arg2, _arg3){ addEventListener(Event.ADDED, beginClass); x = _arg1; y = (_arg2 + 15); rotation = (Math.random() * 360); gotoAndPlay(0); } protected function beginClass(_arg1:Event):void{ myParent = this.parent; removeEventListener(Event.ADDED, beginClass); } private function killSplash(){ if (currentFrame > 3){ myParent.removeChild(this); }; } public function AnimateSplash(){ killSplash(); } } }//package
Section 76
//TitleLogo (TitleLogo) package { import flash.display.*; public dynamic class TitleLogo extends MovieClip { } }//package
Section 77
//TitleScreen (TitleScreen) package { import flash.events.*; import flash.display.*; import flash.utils.*; public class TitleScreen extends MovieClip { public var myCursor:Cursor; public var OctArray:Array; public var GameTimer:Timer; public var myParent:Object; public var OctHolder:MovieClip; public function TitleScreen(_arg1){ OctHolder = new MovieClip(); super(); myParent = _arg1; setUp(); } private function StartGameNormalButtonPressed(_arg1:MouseEvent){ myParent.NewShipSelect("normal"); } private function HowToPlayButtonPressed(_arg1:MouseEvent){ myParent.NewHowToPlayScreen(); } private function GameActions(_arg1:TimerEvent):void{ var _local2:BackgroundOct; for each (_local2 in OctArray) { _local2.MoveOct(); }; myCursor.x = mouseX; myCursor.y = mouseY; } private function setUp(){ var _local1:int; var _local2:SelectionButton; var _local3:SelectionButton; var _local4:SelectionButton; var _local5:BackgroundOct; OctHolder = new MovieClip(); OctHolder.y = -300; OctHolder.x = -200; addChild(OctHolder); myCursor = new Cursor(); addChild(myCursor); OctArray = new Array(); _local1 = 0; while (_local1 < 11) { _local5 = new BackgroundOct(); OctArray.push(_local5); OctHolder.addChild(_local5); _local1++; }; _local2 = new SelectionButton(); _local2.addEventListener(MouseEvent.MOUSE_UP, StartGameNormalButtonPressed); _local3 = new SelectionButton(); _local3.addEventListener(MouseEvent.MOUSE_UP, StartGameWildButtonPressed); _local4 = new SelectionButton(); _local4.addEventListener(MouseEvent.MOUSE_UP, HowToPlayButtonPressed); addChild(_local2); _local2.y = 47; _local2.height = 50; addChild(_local3); _local3.y = 114; _local3.height = 50; addChild(_local4); _local4.y = 181; _local4.height = 50; GameTimer = new Timer(25); GameTimer.addEventListener(TimerEvent.TIMER, GameActions); GameTimer.start(); } private function StartGameWildButtonPressed(_arg1:MouseEvent){ myParent.NewShipSelect("wild"); } } }//package
Section 78
//Triangle (Triangle) package { import flash.events.*; public class Triangle extends Enemy { private var hp:Number; private var topspeed:int; private var downTimerBase:uint; private var upTimerBase:uint; private var bulletHolder:Object; private var speed:int; private var upTimer:uint; private var endPoint:uint; private var myParent:Object; private var moveDirection:int; private var downTimer:uint; private var isAlive:Boolean; private var accel:Number; public function Triangle(_arg1, _arg2){ var _local3:int; super(_arg1, _arg2); _local3 = (400 / _arg2); width = _local3; height = width; rotation = 0; x = Math.floor(((_arg1 * _local3) + (_local3 / 2))); addEventListener(Event.ADDED, beginClass); } private function beginClass(_arg1:Event):void{ var _local2:int; myParent = this.parent; hp = Math.round((myParent.parent.enemyBaseHP / (400 / width))); if (hp < 1){ hp = 1; }; speed = 0; topspeed = Math.floor((myParent.parent.topspeed * 1.5)); moveDirection = 1; accel = myParent.parent.accel; downTimer = myParent.parent.downTimer; upTimer = myParent.parent.upTimer; downTimerBase = downTimer; upTimerBase = upTimer; _local2 = (x / (width / (40 / (400 / width)))); endPoint = (600 + (width * 2)); y = (0 - (width * 2)); bulletHolder = myParent.parent.getChildAt(1); isAlive = true; gotoAndPlay(Math.floor((Math.random() * 20))); removeEventListener(Event.ADDED, beginClass); } override protected function checkEnd(){ if (y > endPoint){ y = (y - width); rotation = (rotation + 180); moveDirection = (moveDirection * -1); speed = 0; }; if (y < (0 - width)){ y = (y + width); rotation = (rotation + 180); moveDirection = (moveDirection * -1); speed = 0; }; } override protected function verticalMotion(){ if (moveDirection == 1){ speed = (speed + accel); if (speed > topspeed){ speed = topspeed; }; } else { speed = (speed - accel); upTimer--; if (speed < (topspeed * -1)){ speed = (topspeed * -1); }; }; y = (y + speed); } } }//package

Library Items

Symbol 1 Sound {soundQuit}
Symbol 2 Sound {soundPlayerShoot}
Symbol 3 Sound {soundPlayerDestroyed}
Symbol 4 Sound {soundPause}
Symbol 5 Sound {soundNewWave}
Symbol 6 Sound {soundEnemyWaveCannon}
Symbol 7 Sound {soundEnemyShrapnel}
Symbol 8 Sound {soundEnemyShot}
Symbol 9 Sound {soundEnemyDestroyed}
Symbol 10 Sound {soundComboBroken}
Symbol 11 Sound {soundBombExplosion}
Symbol 12 Sound {soundBlockerDestroyed}
Symbol 13 Sound {BGM2}
Symbol 14 Sound {BGM1}
Symbol 15 GraphicUsed by:16
Symbol 16 MovieClip {LifeDisplay}Uses:15
Symbol 17 GraphicUsed by:19 132 135 138 163 166 171
Symbol 18 GraphicUsed by:19 163
Symbol 19 MovieClip {Triangle}Uses:17 18
Symbol 20 GraphicUsed by:21 23
Symbol 21 MovieClipUses:20Used by:24 174
Symbol 22 GraphicUsed by:24 174
Symbol 23 MovieClipUses:20Used by:24 174
Symbol 24 MovieClip {EnemyCircle}Uses:21 22 23
Symbol 25 GraphicUsed by:28 75 140 144 162 167 170 172
Symbol 26 GraphicUsed by:27
Symbol 27 MovieClipUses:26Used by:28 162
Symbol 28 MovieClip {Enemy}Uses:25 27
Symbol 29 GraphicUsed by:30
Symbol 30 MovieClip {EnemyShot}Uses:29
Symbol 31 GraphicUsed by:32
Symbol 32 MovieClip {PlayerBullet}Uses:31
Symbol 33 GraphicUsed by:34
Symbol 34 MovieClip {Ola}Uses:33
Symbol 35 GraphicUsed by:36
Symbol 36 MovieClip {Ajuga}Uses:35
Symbol 37 GraphicUsed by:38
Symbol 38 MovieClip {Estrada}Uses:37
Symbol 39 GraphicUsed by:42
Symbol 40 GraphicUsed by:42
Symbol 41 GraphicUsed by:42
Symbol 42 MovieClip {Splash}Uses:39 40 41
Symbol 43 GraphicUsed by:44
Symbol 44 MovieClipUses:43Used by:45
Symbol 45 MovieClip {SineDot}Uses:44
Symbol 46 GraphicUsed by:62
Symbol 47 FontUsed by:48 49 50 51 52 53 54 55 56 57 58 59 60 61 64 77 96 97 98 99 101 103 104 105 108 109 110 111 112 113 114 116 158 159 160 161 168 169 173 175 176 183 187
Symbol 48 TextUses:47Used by:62
Symbol 49 TextUses:47Used by:62
Symbol 50 TextUses:47Used by:62
Symbol 51 TextUses:47Used by:62
Symbol 52 TextUses:47Used by:62
Symbol 53 TextUses:47Used by:62
Symbol 54 TextUses:47Used by:62
Symbol 55 TextUses:47Used by:62
Symbol 56 TextUses:47Used by:62
Symbol 57 TextUses:47Used by:62
Symbol 58 TextUses:47Used by:62
Symbol 59 TextUses:47Used by:62
Symbol 60 TextUses:47Used by:62
Symbol 61 TextUses:47Used by:62
Symbol 62 MovieClip {ASHLGamesBox}Uses:46 48 49 50 51 52 53 54 55 56 57 58 59 60 61
Symbol 63 GraphicUsed by:65
Symbol 64 TextUses:47Used by:65
Symbol 65 MovieClip {PauseBox}Uses:63 64
Symbol 66 GraphicUsed by:67
Symbol 67 MovieClip {BoundingBox}Uses:66
Symbol 68 GraphicUsed by:69
Symbol 69 MovieClip {BackgroundOct}Uses:68
Symbol 70 GraphicUsed by:75
Symbol 71 GraphicUsed by:75
Symbol 72 GraphicUsed by:75
Symbol 73 GraphicUsed by:75
Symbol 74 GraphicUsed by:75 170
Symbol 75 MovieClip {Blocker}Uses:25 70 71 72 73 74
Symbol 76 GraphicUsed by:78
Symbol 77 TextUses:47Used by:78
Symbol 78 MovieClip {ScoreComboHeader}Uses:76 77
Symbol 79 GraphicUsed by:83
Symbol 80 GraphicUsed by:83
Symbol 81 GraphicUsed by:83
Symbol 82 GraphicUsed by:83
Symbol 83 Button {SelectionButton}Uses:79 80 81 82
Symbol 84 ShapeTweeningUsed by:90
Symbol 85 ShapeTweeningUsed by:90
Symbol 86 ShapeTweeningUsed by:90
Symbol 87 ShapeTweeningUsed by:90
Symbol 88 GraphicUsed by:90
Symbol 89 GraphicUsed by:90
Symbol 90 MovieClip {BombSplash}Uses:84 85 86 87 88 89
Symbol 91 ShapeTweeningUsed by:94
Symbol 92 ShapeTweeningUsed by:94
Symbol 93 GraphicUsed by:94
Symbol 94 MovieClip {BombExplosion}Uses:91 92 93
Symbol 95 GraphicUsed by:100 106
Symbol 96 TextUses:47Used by:100
Symbol 97 TextUses:47Used by:100
Symbol 98 TextUses:47Used by:100
Symbol 99 TextUses:47Used by:100
Symbol 100 MovieClip {GameOverScreen}Uses:95 96 97 98 99
Symbol 101 TextUses:47Used by:102
Symbol 102 MovieClip {TitleLogo}Uses:101Used by:106
Symbol 103 TextUses:47Used by:106
Symbol 104 TextUses:47Used by:106
Symbol 105 TextUses:47Used by:106
Symbol 106 MovieClip {TitleScreen}Uses:95 102 103 104 105
Symbol 107 GraphicUsed by:115
Symbol 108 TextUses:47Used by:115
Symbol 109 TextUses:47Used by:115
Symbol 110 TextUses:47Used by:115
Symbol 111 TextUses:47Used by:115
Symbol 112 TextUses:47Used by:115
Symbol 113 TextUses:47Used by:115
Symbol 114 TextUses:47Used by:115
Symbol 115 MovieClip {ShipSelect}Uses:107 108 109 110 111 112 113 114
Symbol 116 TextUses:47Used by:117
Symbol 117 MovieClip {LevelUpAnimation}Uses:116
Symbol 118 GraphicUsed by:120
Symbol 119 GraphicUsed by:120
Symbol 120 MovieClip {Cursor}Uses:118 119
Symbol 121 ShapeTweeningUsed by:125
Symbol 122 ShapeTweeningUsed by:125
Symbol 123 ShapeTweeningUsed by:125
Symbol 124 GraphicUsed by:125
Symbol 125 MovieClip {PlayerExplosion}Uses:121 122 123 124
Symbol 126 GraphicUsed by:127
Symbol 127 MovieClip {PlayerFragment}Uses:126
Symbol 128 GraphicUsed by:129
Symbol 129 MovieClip {ShipTracer}Uses:128
Symbol 130 GraphicUsed by:133
Symbol 131 GraphicUsed by:132
Symbol 132 MovieClipUses:131 17Used by:133 165
Symbol 133 MovieClip {Diamond}Uses:130 132
Symbol 134 GraphicUsed by:135 166
Symbol 135 MovieClip {EnemyMine}Uses:17 134
Symbol 136 GraphicUsed by:138 171
Symbol 137 GraphicUsed by:138 171
Symbol 138 MovieClip {EnemyMineBlocker}Uses:136 17 137
Symbol 139 GraphicUsed by:140 167
Symbol 140 MovieClip {EnemyWaveCannon}Uses:139 25
Symbol 141 GraphicUsed by:144 172
Symbol 142 GraphicUsed by:144
Symbol 143 GraphicUsed by:144
Symbol 144 MovieClip {EnemyWaveCannonBlocker}Uses:141 142 25 143
Symbol 145 GraphicUsed by:148
Symbol 146 ShapeTweeningUsed by:148
Symbol 147 GraphicUsed by:148
Symbol 148 MovieClip {EnemyWaveShot}Uses:145 146 147
Symbol 149 GraphicUsed by:153
Symbol 150 GraphicUsed by:153
Symbol 151 GraphicUsed by:153
Symbol 152 GraphicUsed by:153
Symbol 153 MovieClip {EnemyShrapnel}Uses:149 150 151 152
Symbol 154 GraphicUsed by:157
Symbol 155 GraphicUsed by:157
Symbol 156 GraphicUsed by:157
Symbol 157 Button {ArrowButton}Uses:154 155 156
Symbol 158 TextUses:47Used by:177
Symbol 159 TextUses:47Used by:177
Symbol 160 TextUses:47Used by:177
Symbol 161 TextUses:47Used by:177
Symbol 162 MovieClipUses:25 27Used by:177
Symbol 163 MovieClipUses:17 18Used by:177
Symbol 164 GraphicUsed by:165
Symbol 165 MovieClipUses:164 132Used by:177
Symbol 166 MovieClipUses:17 134Used by:177
Symbol 167 MovieClipUses:139 25Used by:177
Symbol 168 TextUses:47Used by:177
Symbol 169 TextUses:47Used by:177
Symbol 170 MovieClipUses:25 74Used by:177
Symbol 171 MovieClipUses:136 17 137Used by:177
Symbol 172 MovieClipUses:141 25Used by:177
Symbol 173 TextUses:47Used by:177
Symbol 174 MovieClipUses:21 22 23Used by:177
Symbol 175 TextUses:47Used by:177
Symbol 176 TextUses:47Used by:177
Symbol 177 MovieClip {HowToPlayScreen}Uses:158 159 160 161 162 163 165 166 167 168 169 170 171 172 173 174 175 176
Symbol 178 GraphicUsed by:182
Symbol 179 GraphicUsed by:182
Symbol 180 GraphicUsed by:182
Symbol 181 GraphicUsed by:182
Symbol 182 MovieClip {EnemyShotEffect}Uses:178 179 180 181
Symbol 183 TextUses:47Used by:184
Symbol 184 MovieClip {AdAppears}Uses:183
Symbol 185 MovieClip {com.kongregate.as3.client.KongregateAPI}
Symbol 186 GraphicUsed by:Timeline
Symbol 187 EditableTextUses:47Used by:Timeline

Special Tags

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




http://swfchan.com/16/76917/info.shtml
Created: 4/4 -2019 10:39:54 Last modified: 4/4 -2019 10:39:54 Server time: 17/05 -2024 07:04:48