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
//Color (fl.motion.Color)
package fl.motion {
import flash.display.*;
import flash.geom.*;
public class Color extends ColorTransform {
private var _tintMultiplier:Number;// = 0
private var _tintColor:Number;// = 0
public function Color(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1, _arg4:Number=1, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0){
_tintColor = 0;
_tintMultiplier = 0;
super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8);
}
public function setTint(_arg1:uint, _arg2:Number):void{
var _local3:uint;
var _local4:uint;
var _local5:uint;
this._tintColor = _arg1;
this._tintMultiplier = _arg2;
this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = (1 - _arg2)));
_local3 = ((_arg1 >> 16) & 0xFF);
_local4 = ((_arg1 >> 8) & 0xFF);
_local5 = (_arg1 & 0xFF);
this.redOffset = Math.round((_local3 * _arg2));
this.greenOffset = Math.round((_local4 * _arg2));
this.blueOffset = Math.round((_local5 * _arg2));
}
public function set tintColor(_arg1:uint):void{
this.setTint(_arg1, this.tintMultiplier);
}
public function get brightness():Number{
return ((this.redOffset) ? (1 - this.redMultiplier) : (this.redMultiplier - 1));
}
private function deriveTintColor():uint{
var _local1:Number;
var _local2:uint;
var _local3:uint;
var _local4:uint;
var _local5:uint;
_local1 = (1 / this.tintMultiplier);
_local2 = Math.round((this.redOffset * _local1));
_local3 = Math.round((this.greenOffset * _local1));
_local4 = Math.round((this.blueOffset * _local1));
_local5 = (((_local2 << 16) | (_local3 << 8)) | _local4);
return (_local5);
}
public function get tintMultiplier():Number{
return (this._tintMultiplier);
}
public function get tintColor():uint{
return (this._tintColor);
}
public function set brightness(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
if (_arg1 > 1){
_arg1 = 1;
} else {
if (_arg1 < -1){
_arg1 = -1;
};
};
_local2 = (1 - Math.abs(_arg1));
_local3 = 0;
if (_arg1 > 0){
_local3 = (_arg1 * 0xFF);
};
this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = _local2));
this.redOffset = (this.greenOffset = (this.blueOffset = _local3));
}
public function set tintMultiplier(_arg1:Number):void{
this.setTint(this.tintColor, _arg1);
}
private function parseXML(_arg1:XML=null):Color{
var _local2:XML;
var _local3:XML;
var _local4:String;
var _local5:uint;
if (!_arg1){
return (this);
};
_local2 = _arg1.elements()[0];
if (!_local2){
return (this);
};
for each (_local3 in _local2.attributes()) {
_local4 = _local3.localName();
if (_local4 == "tintColor"){
_local5 = (Number(_local3.toString()) as uint);
this.tintColor = _local5;
} else {
this[_local4] = Number(_local3.toString());
};
};
return (this);
}
public static function interpolateColor(_arg1:uint, _arg2:uint, _arg3:Number):uint{
var _local4:Number;
var _local5:uint;
var _local6:uint;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local10:uint;
var _local11:uint;
var _local12:uint;
var _local13:uint;
var _local14:uint;
var _local15:uint;
var _local16:uint;
var _local17:uint;
_local4 = (1 - _arg3);
_local5 = ((_arg1 >> 24) & 0xFF);
_local6 = ((_arg1 >> 16) & 0xFF);
_local7 = ((_arg1 >> 8) & 0xFF);
_local8 = (_arg1 & 0xFF);
_local9 = ((_arg2 >> 24) & 0xFF);
_local10 = ((_arg2 >> 16) & 0xFF);
_local11 = ((_arg2 >> 8) & 0xFF);
_local12 = (_arg2 & 0xFF);
_local13 = ((_local5 * _local4) + (_local9 * _arg3));
_local14 = ((_local6 * _local4) + (_local10 * _arg3));
_local15 = ((_local7 * _local4) + (_local11 * _arg3));
_local16 = ((_local8 * _local4) + (_local12 * _arg3));
_local17 = ((((_local13 << 24) | (_local14 << 16)) | (_local15 << 8)) | _local16);
return (_local17);
}
public static function interpolateTransform(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{
var _local4:Number;
var _local5:ColorTransform;
_local4 = (1 - _arg3);
_local5 = new ColorTransform(((_arg1.redMultiplier * _local4) + (_arg2.redMultiplier * _arg3)), ((_arg1.greenMultiplier * _local4) + (_arg2.greenMultiplier * _arg3)), ((_arg1.blueMultiplier * _local4) + (_arg2.blueMultiplier * _arg3)), ((_arg1.alphaMultiplier * _local4) + (_arg2.alphaMultiplier * _arg3)), ((_arg1.redOffset * _local4) + (_arg2.redOffset * _arg3)), ((_arg1.greenOffset * _local4) + (_arg2.greenOffset * _arg3)), ((_arg1.blueOffset * _local4) + (_arg2.blueOffset * _arg3)), ((_arg1.alphaOffset * _local4) + (_arg2.alphaOffset * _arg3)));
return (_local5);
}
public static function fromXML(_arg1:XML):Color{
return (Color(new (Color).parseXML(_arg1)));
}
}
}//package fl.motion
Section 14
//TweenLite (gs.TweenLite)
package gs {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.utils.*;
public class TweenLite {
public var delay:Number;
protected var _hasUpdate:Boolean;
public var started:Boolean;
protected var _subTweens:Array;
public var initted:Boolean;
public var startTime:Number;
public var forceActive:Boolean;
public var duration:Number;
protected var _specialVars:Object;
public var target:Object;
protected var _hst:Boolean;
public var gc:Boolean;
protected var _isDisplayObject:Boolean;
public var vars:Object;
public var ease:Function;
public var tweens:Array;
public var combinedTimeScale:Number;
public var initTime:Number;
private static var _timer:Timer = new Timer(2000);
private static var _classInitted:Boolean;
public static var defaultEase:Function = TweenLite.easeOut;
public static var version:Number = 9.25;
public static var masterList:Dictionary = new Dictionary(false);
private static var _sprite:Sprite = new Sprite();
public static var currentTime:uint;
public static var overwriteManager:Object;
public static var killDelayedCallsTo:Function = TweenLite.killTweensOf;
public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){
var _local4:int;
super();
if (_arg1 == null){
return;
};
if (!_classInitted){
currentTime = getTimer();
_sprite.addEventListener(Event.ENTER_FRAME, executeAll);
if (overwriteManager == null){
overwriteManager = {mode:1, enabled:false};
};
_timer.addEventListener("timer", killGarbage);
_timer.start();
_classInitted = true;
};
this.vars = _arg3;
this.duration = ((_arg2) || (0.001));
this.delay = ((_arg3.delay) || (0));
this.combinedTimeScale = ((_arg3.timeScale) || (1));
this.forceActive = (((_arg2 == 0)) && ((this.delay == 0)));
this.target = _arg1;
_isDisplayObject = (_arg1 is DisplayObject);
if (!(this.vars.ease is Function)){
this.vars.ease = defaultEase;
};
if (this.vars.easeParams != null){
this.vars.proxiedEase = this.vars.ease;
this.vars.ease = easeProxy;
};
this.ease = this.vars.ease;
if (!isNaN(Number(this.vars.autoAlpha))){
this.vars.alpha = Number(this.vars.autoAlpha);
this.vars.visible = (this.vars.alpha > 0);
};
_specialVars = ((this.vars.isTV)==true) ? this.vars.exposedProps : this.vars;
this.tweens = [];
_subTweens = [];
_hst = (this.initted = false);
this.initTime = currentTime;
this.startTime = (this.initTime + (this.delay * 1000));
_local4 = ((((_arg3.overwrite == undefined)) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite);
if ((((masterList[_arg1] == undefined)) || (((!((_arg1 == null))) && ((_local4 == 1)))))){
masterList[_arg1] = [];
};
masterList[_arg1].push(this);
if ((((((this.vars.runBackwards == true)) && (!((this.vars.renderOnStart == true))))) || (this.forceActive))){
initTweenVals();
if (this.forceActive){
render((this.startTime + 1));
} else {
render(this.startTime);
};
if (((((!((_specialVars.visible == null))) && ((this.vars.runBackwards == true)))) && (_isDisplayObject))){
this.target.visible = _specialVars.visible;
};
};
}
protected function addSubTween(_arg1:String, _arg2:Function, _arg3:Object, _arg4:Object, _arg5:Object=null):void{
var _local6:String;
_subTweens[_subTweens.length] = {name:_arg1, proxy:_arg2, target:_arg3, info:_arg5};
for (_local6 in _arg4) {
if (typeof(_arg4[_local6]) == "number"){
this.tweens[this.tweens.length] = [_arg3, _local6, _arg3[_local6], (_arg4[_local6] - _arg3[_local6]), _arg1];
} else {
this.tweens[this.tweens.length] = [_arg3, _local6, _arg3[_local6], Number(_arg4[_local6]), _arg1];
};
};
_hst = true;
}
public function get active():Boolean{
if (this.forceActive){
return (true);
};
if (this.gc){
return (false);
};
if (currentTime >= this.startTime){
this.started = (this.forceActive = true);
if (!this.initted){
initTweenVals();
};
if (this.vars.onStart != null){
this.vars.onStart.apply(null, this.vars.onStartParams);
};
if (this.duration == 0.001){
this.startTime = (this.startTime - 1);
};
return (true);
//unresolved jump
};
return (false);
}
public function render(_arg1:uint):void{
var _local2:Number;
var _local3:Number;
var _local4:Object;
var _local5:int;
_local2 = ((_arg1 - this.startTime) / 1000);
if (_local2 >= this.duration){
_local2 = this.duration;
_local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0;
} else {
_local3 = this.ease(_local2, 0, 1, this.duration);
};
_local5 = (this.tweens.length - 1);
while (_local5 > -1) {
_local4 = this.tweens[_local5];
_local4[0][_local4[1]] = (_local4[2] + (_local3 * _local4[3]));
_local5--;
};
if (_hst){
_local5 = (_subTweens.length - 1);
while (_local5 > -1) {
_subTweens[_local5].proxy(_subTweens[_local5], _local2);
_local5--;
};
};
if (_hasUpdate){
this.vars.onUpdate.apply(null, this.vars.onUpdateParams);
};
if (_local2 == this.duration){
complete(true);
};
}
protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams)));
}
public function clear():void{
this.tweens = [];
_subTweens = [];
this.vars = {};
_hst = (_hasUpdate = false);
}
public function get enabled():Boolean{
return (!(this.gc));
}
public function initTweenVals(_arg1:Boolean=false, _arg2:String=""):void{
var _local3:String;
var _local4:int;
var _local5:Array;
var _local6:ColorTransform;
var _local7:ColorTransform;
var _local8:Object;
if (((!(_arg1)) && (overwriteManager.enabled))){
overwriteManager.manageOverwrites(this, masterList[this.target]);
};
if ((this.target is Array)){
_local5 = ((this.vars.endArray) || ([]));
_local4 = 0;
while (_local4 < _local5.length) {
if (((!((this.target[_local4] == _local5[_local4]))) && (!((this.target[_local4] == undefined))))){
this.tweens[this.tweens.length] = [this.target, _local4.toString(), this.target[_local4], (_local5[_local4] - this.target[_local4]), _local4.toString()];
};
_local4++;
};
} else {
if (((((!((typeof(_specialVars.tint) == "undefined"))) || ((this.vars.removeTint == true)))) && (_isDisplayObject))){
_local6 = this.target.transform.colorTransform;
_local7 = new ColorTransform();
if (_specialVars.alpha != undefined){
_local7.alphaMultiplier = _specialVars.alpha;
delete _specialVars.alpha;
} else {
_local7.alphaMultiplier = this.target.alpha;
};
if (((!((this.vars.removeTint == true))) && (((((!((_specialVars.tint == null))) && (!((_specialVars.tint == ""))))) || ((_specialVars.tint == 0)))))){
_local7.color = _specialVars.tint;
};
addSubTween("tint", tintProxy, {progress:0}, {progress:1}, {target:this.target, color:_local6, endColor:_local7});
};
if (((!((_specialVars.frame == null))) && (_isDisplayObject))){
addSubTween("frame", frameProxy, {frame:this.target.currentFrame}, {frame:_specialVars.frame}, {target:this.target});
};
if (((!(isNaN(this.vars.volume))) && (this.target.hasOwnProperty("soundTransform")))){
addSubTween("volume", volumeProxy, this.target.soundTransform, {volume:this.vars.volume}, {target:this.target});
};
if (((!((_specialVars.visible == null))) && (_isDisplayObject))){
addSubTween("visible", visibleProxy, {}, {}, {tween:this});
};
for (_local3 in _specialVars) {
if ((((((((((((((((((((((((((((((((((((((_local3 == "ease")) || ((_local3 == "delay")))) || ((_local3 == "overwrite")))) || ((_local3 == "onComplete")))) || ((_local3 == "onCompleteParams")))) || ((_local3 == "runBackwards")))) || ((_local3 == "visible")))) || ((_local3 == "autoOverwrite")))) || ((_local3 == "persist")))) || ((_local3 == "onUpdate")))) || ((_local3 == "onUpdateParams")))) || ((_local3 == "autoAlpha")))) || ((((_local3 == "timeScale")) && (!((this.target is TweenLite))))))) || ((_local3 == "onStart")))) || ((_local3 == "onStartParams")))) || ((_local3 == "renderOnStart")))) || ((_local3 == "proxiedEase")))) || ((_local3 == "easeParams")))) || (((_arg1) && (!((_arg2.indexOf(((" " + _local3) + " ")) == -1))))))){
} else {
if (((!(((_isDisplayObject) && ((((((_local3 == "tint")) || ((_local3 == "removeTint")))) || ((_local3 == "frame"))))))) && (!((((_local3 == "volume")) && (this.target.hasOwnProperty("soundTransform"))))))){
if (typeof(_specialVars[_local3]) == "number"){
this.tweens[this.tweens.length] = [this.target, _local3, this.target[_local3], (_specialVars[_local3] - this.target[_local3]), _local3];
} else {
this.tweens[this.tweens.length] = [this.target, _local3, this.target[_local3], Number(_specialVars[_local3]), _local3];
};
};
};
};
};
if (this.vars.runBackwards == true){
_local4 = (this.tweens.length - 1);
while (_local4 > -1) {
_local8 = this.tweens[_local4];
_local8[2] = (_local8[2] + _local8[3]);
_local8[3] = (_local8[3] * -1);
_local4--;
};
};
if (this.vars.onUpdate != null){
_hasUpdate = true;
};
this.initted = true;
}
public function killVars(_arg1:Object):void{
if (overwriteManager.enabled){
overwriteManager.killVars(_arg1, this.vars, this.tweens, _subTweens, []);
};
}
public function complete(_arg1:Boolean=false):void{
if (!_arg1){
if (!this.initted){
initTweenVals();
};
this.startTime = (currentTime - ((this.duration * 1000) / this.combinedTimeScale));
render(currentTime);
return;
};
if (this.vars.persist != true){
this.enabled = false;
};
if (this.vars.onComplete != null){
this.vars.onComplete.apply(null, this.vars.onCompleteParams);
};
}
public function set enabled(_arg1:Boolean):void{
var _local2:Array;
var _local3:Boolean;
var _local4:int;
if (_arg1){
if (masterList[this.target] == undefined){
masterList[this.target] = [this];
} else {
_local2 = masterList[this.target];
_local4 = (_local2.length - 1);
while (_local4 > -1) {
if (_local2[_local4] == this){
_local3 = true;
break;
};
_local4--;
};
if (!_local3){
masterList[this.target].push(this);
};
};
} else {
if ((this.target is DisplayObject)){
};
};
this.gc = !(_arg1);
if (this.gc){
this.forceActive = false;
} else {
this.forceActive = this.started;
};
}
public static function frameProxy(_arg1:Object, _arg2:Number=0):void{
_arg1.info.target.gotoAndStop(Math.round(_arg1.target.frame));
}
public static function removeTween(_arg1:TweenLite, _arg2:Boolean=true):void{
if (_arg1 != null){
if (_arg2){
_arg1.clear();
};
_arg1.enabled = false;
};
}
public static function visibleProxy(_arg1:Object, _arg2:Number):void{
var _local3:TweenLite;
_local3 = _arg1.info.tween;
if (_local3.duration == _arg2){
if (((!((_local3.vars.runBackwards == true))) && ((_local3.ease == _local3.vars.ease)))){
_local3.target.visible = _local3.vars.visible;
};
} else {
if (_local3.target.visible != true){
_local3.target.visible = true;
};
};
}
public static function killTweensOf(_arg1:Object=null, _arg2:Boolean=false):void{
var _local3:Array;
var _local4:int;
var _local5:TweenLite;
if (((!((_arg1 == null))) && (!((masterList[_arg1] == undefined))))){
_local3 = masterList[_arg1];
_local4 = (_local3.length - 1);
while (_local4 > -1) {
_local5 = _local3[_local4];
if (((_arg2) && (!(_local5.gc)))){
_local5.complete(false);
};
_local5.clear();
_local4--;
};
delete masterList[_arg1];
};
}
public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null):TweenLite{
return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, overwrite:0}));
}
public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
_arg3.runBackwards = true;
return (new TweenLite(_arg1, _arg2, _arg3));
}
public static function executeAll(_arg1:Event=null):void{
var _local2:uint;
var _local3:Dictionary;
var _local4:Array;
var _local5:int;
_local2 = (currentTime = getTimer());
_local3 = masterList;
for each (_local4 in _local3) {
_local5 = (_local4.length - 1);
while (_local5 > -1) {
if (((!((_local4[_local5] == null))) && (_local4[_local5].active))){
_local4[_local5].render(_local2);
};
_local5--;
};
};
}
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function volumeProxy(_arg1:Object, _arg2:Number=0):void{
_arg1.info.target.soundTransform = _arg1.target;
}
public static function killGarbage(_arg1:TimerEvent):void{
var _local2:Dictionary;
var _local3:Object;
var _local4:Array;
var _local5:int;
_local2 = masterList;
for (_local3 in _local2) {
_local4 = _local2[_local3];
_local5 = (_local4.length - 1);
while (_local5 > -1) {
if (_local4[_local5].gc){
_local4.splice(_local5, 1);
};
_local5--;
};
if (_local4.length == 0){
delete _local2[_local3];
};
};
}
public static function tintProxy(_arg1:Object, _arg2:Number=0):void{
var _local3:Number;
var _local4:Number;
var _local5:Object;
var _local6:Object;
_local3 = _arg1.target.progress;
_local4 = (1 - _local3);
_local5 = _arg1.info.color;
_local6 = _arg1.info.endColor;
_arg1.info.target.transform.colorTransform = new ColorTransform(((_local5.redMultiplier * _local4) + (_local6.redMultiplier * _local3)), ((_local5.greenMultiplier * _local4) + (_local6.greenMultiplier * _local3)), ((_local5.blueMultiplier * _local4) + (_local6.blueMultiplier * _local3)), ((_local5.alphaMultiplier * _local4) + (_local6.alphaMultiplier * _local3)), ((_local5.redOffset * _local4) + (_local6.redOffset * _local3)), ((_local5.greenOffset * _local4) + (_local6.greenOffset * _local3)), ((_local5.blueOffset * _local4) + (_local6.blueOffset * _local3)), ((_local5.alphaOffset * _local4) + (_local6.alphaOffset * _local3)));
}
public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
return (new TweenLite(_arg1, _arg2, _arg3));
}
}
}//package gs
Section 15
//Enemies_41 (Orbit_Shooter_fla.Enemies_41)
package Orbit_Shooter_fla {
import flash.display.*;
public dynamic class Enemies_41 extends MovieClip {
public function Enemies_41(){
addFrameScript(9, frame10);
}
function frame10(){
this.stop();
}
}
}//package Orbit_Shooter_fla
Section 16
//Utils (tomalic.Utils)
package tomalic {
import flash.geom.*;
public class Utils {
public static function hex2rgb(_arg1):Object{
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local2 = (_arg1 >> 16);
_local3 = (_arg1 - (_local2 << 16));
_local4 = (_local3 >> 8);
_local5 = (_local3 - (_local4 << 8));
return ({r:_local2, g:_local4, b:_local5});
}
public static function rgb2hex(_arg1, _arg2, _arg3):Number{
return ((((_arg1 << 16) | (_arg2 << 8)) | _arg3));
}
public static function makeColorTransform(_arg1:uint, _arg2=null):ColorTransform{
var _local3:Object;
var _local4:ColorTransform;
_local3 = hex2rgb(_arg1);
_local4 = new ColorTransform(0, 0, 0, 1, _local3.r, _local3.g, _local3.b, _arg2);
return (_local4);
}
public static function randRange(_arg1:Number, _arg2:Number):Number{
var _local3:Number;
_local3 = (Math.floor((Math.random() * ((_arg2 - _arg1) + 1))) + _arg1);
return (_local3);
}
public static function setColorTransform(_arg1, _arg2:uint, _arg3=null){
var _local4:ColorTransform;
_local4 = makeColorTransform(_arg2, _arg3);
return ((_arg1.transform.colorTransform = _local4));
}
public static function getColor(_arg1){
var _local2:ColorTransform;
_local2 = _arg1.transform.colorTransform;
return (rgb2hex(_local2.redOffset, _local2.greenOffset, _local2.blueOffset));
}
}
}//package tomalic
Section 17
//Asteroids (Asteroids)
package {
import flash.events.*;
import flash.display.*;
import tomalic.*;
import flash.text.*;
import flash.utils.*;
public class Asteroids extends GameObject {
var horizontal:Boolean;
var createPowerup:Boolean;// = true
var velocity:uint;
public function Asteroids(_arg1=null){
createPowerup = true;
super();
addFrameScript(0, frame1, 1, frame2, 2, frame3);
if (null == _arg1){
_arg1 = Boolean(Utils.randRange(0, 1));
};
horizontal = _arg1;
this.gotoAndStop(Utils.randRange(1, 3));
velocity = (this.currentFrame * 2);
setupHorizontalPosition(horizontal, this);
thisPoints = 5;
cacheAsBitmap = true;
}
function frame3(){
this.stop();
}
function frame1(){
this.stop();
}
override public function remove():void{
this.removeEventListener(Event.ENTER_FRAME, this.update);
super.remove();
}
function frame2(){
this.stop();
}
override public function update(_arg1:Event):Boolean{
var _local2:Ship;
if (!super.update(_arg1)){
return (false);
};
if (horizontal){
x = (x + velocity);
} else {
y = (y + velocity);
};
if ((((x > (400 + width))) || ((y > (400 + height))))){
this.remove();
};
_local2 = Ship.getInstance();
if (this.hitTestObject(_local2)){
thisPoints = 0;
createPowerup = false;
this.explode();
_local2.hitted(Ship.ASTEROID_HIT_VALUE);
};
return (true);
}
override public function explode(_arg1:Number=0):void{
if (((((createPowerup) && ((_arg1 == Bullet.BULLET_STATE_SHOOTING)))) && (Utils.randRange(0, 2)))){
Powerup.create(this);
};
if (_arg1 == Bullet.BULLET_STATE_SPINNING){
thisPoints = 0;
};
super.explode();
}
public static function setupHorizontalPosition(_arg1:Boolean, _arg2, _arg3:Boolean=true){
if (_arg3){
if (_arg1){
_arg2.x = -((_arg2.width / 2));
_arg2.y = Utils.randRange((_arg2.height / 2), (400 - (_arg2.height / 3)));
} else {
_arg2.x = Utils.randRange((_arg2.width / 2), (400 - (_arg2.width / 3)));
_arg2.y = -((_arg2.height / 2));
};
} else {
if (_arg1){
_arg2.x = (400 + (_arg2.width / 2));
_arg2.y = Utils.randRange((_arg2.height / 2), (400 - (_arg2.height / 3)));
} else {
_arg2.x = Utils.randRange((_arg2.width / 2), (400 - (_arg2.width / 3)));
_arg2.y = -((_arg2.height / 2));
};
};
}
public static function create():Asteroids{
var _local1:Asteroids;
_local1 = new (Asteroids);
_local1.addEventListener(Event.ENTER_FRAME, _local1.update);
Orbit_Shooter.getInstance().sprites.addChild(_local1);
GameObject.addElement(_local1);
return (_local1);
}
}
}//package
Section 18
//Background (Background)
package {
import flash.events.*;
import flash.display.*;
public class Background extends MovieClip {
var velocity:Number;// = 1
public function Background(){
velocity = 1;
super();
addFrameScript(0, frame1);
this.y = -2600;
addEventListener(Event.ENTER_FRAME, moveBackground);
}
function frame1(){
gotoAndPlay(0);
}
public function moveBackground(_arg1:Event){
if (Orbit_Shooter.paused){
return;
};
this.y = (this.y + velocity);
if (this.y >= -600){
this.y = -2600;
};
}
}
}//package
Section 19
//Bullet (Bullet)
package {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
public class Bullet extends MovieClip {
var distance:Number;// = 1
var reverseAngle:Number;
var lastY:Number;
var state:Number;// = 0
var lastX:Number;
var angle:Number;
static const BULLET_STATE_SPINNING = 0;
static const BULLET_STATE_SHOOTING = 1;
static var bullets:Array = [];
static var size:Number;
static var index:Number = 0;
static var ship;
static var velocity:Number = 1;
public function Bullet(){
state = BULLET_STATE_SPINNING;
distance = 1;
super();
cacheAsBitmap = true;
}
public function destroy(){
this.removeEventListener(Event.ENTER_FRAME, this.update);
Orbit_Shooter.getInstance().sprites.removeChild(this);
}
public function shoot(){
state = BULLET_STATE_SHOOTING;
}
public function rotate(){
var _local1:Number;
this.angle = (this.angle + velocity);
this.reverseAngle = (this.angle - 360);
_local1 = (this.angle * (Math.PI / 180));
this.x = Math.round((ship.x + (Bullet.size * Math.cos(_local1))));
this.y = Math.round((ship.y + (Bullet.size * Math.sin(_local1))));
this.lastX = ship.x;
this.lastY = ship.y;
}
public function update(_arg1:Event){
var _local2:Number;
var _local3:Number;
if (Orbit_Shooter.paused){
return;
};
switch (state){
case BULLET_STATE_SPINNING:
rotate();
break;
case BULLET_STATE_SHOOTING:
_local2 = (this.reverseAngle * (Math.PI / 180));
this.x = (lastX + ((distance + Bullet.size) * Math.cos(_local2)));
this.y = (lastY + ((distance + Bullet.size) * Math.sin(_local2)));
distance = (distance + Ship.bulletVelocity);
if ((((((((this.x < 0)) || ((this.y < 0)))) || ((this.x > 400)))) || ((this.y > 400)))){
return (this.destroy());
};
break;
};
_local3 = 0;
while (true) {
if (GameObject.list[_local3] != undefined){
if (this.hitTestObject(GameObject.list[_local3])){
if (state == Bullet.BULLET_STATE_SHOOTING){
this.destroy();
Bullet.ship.addStatistic(GameObject.list[_local3]);
} else {
ship.reload();
ship.hitted();
Bullet.destroyAll();
};
GameObject.list[_local3].explode(state);
};
};
++_local3;
if (_local3 >= GameObject.list.length){
break;
};
};
}
public static function get length():Number{
return (bullets.length);
}
public static function destroyAll(){
var _local1:*;
while ((_local1 = bullets.pop())) {
_local1.destroy();
};
}
public static function addBullet(_arg1=1){
var _local2:*;
var _local3:Bullet;
_local2 = _arg1;
while (_arg1) {
_local3 = Bullet.make(_local2);
bullets.push(_local3);
_arg1--;
};
}
public static function make(_arg1:Number){
var _local2:Bullet;
_local2 = new (Bullet);
Orbit_Shooter.getInstance().sprites.addChild(_local2);
_local2.angle = (((360 / _arg1) * Bullet.index) + 1);
_local2.rotate();
_local2.addEventListener(Event.ENTER_FRAME, _local2.update);
Bullet.index++;
return (_local2);
}
public static function shootAll(){
var _local1:*;
while ((_local1 = bullets.pop())) {
_local1.shoot();
};
}
public static function isCentered():Boolean{
var _local1:Number;
var _local2:Bullet;
_local1 = (Bullet.bullets.length - 1);
if (_local1 < 0){
return (false);
};
while (_local1) {
_local2 = Bullet.bullets[_local1];
if (Math.round((_local2.x - Bullet.ship.x)) == 0){
return (true);
};
_local1--;
};
return (false);
}
}
}//package
Section 20
//BulletsInstructions (BulletsInstructions)
package {
import flash.events.*;
import flash.display.*;
public class BulletsInstructions extends MovieClip {
var nextBullets:Number;// = -1
var numBullets:Number;// = 4
public function BulletsInstructions(){
nextBullets = -1;
numBullets = 4;
super();
if (Orbit_Shooter.getInstance().ship_graphic){
Ship.bulletVelocity = Ship.DEFAULT_BULLET_VELOCITY;
Bullet.ship = Orbit_Shooter.getInstance().ship_graphic;
Bullet.size = 40;
Bullet.addBullet(numBullets);
};
}
public function _keepShutting(_arg1:Event){
if (Bullet.isCentered()){
nextBullets = 20;
Bullet.shootAll();
};
if (nextBullets >= 0){
nextBullets--;
};
if (nextBullets == 0){
Bullet.addBullet(numBullets);
};
}
public function keepShutting(){
addEventListener(Event.ENTER_FRAME, _keepShutting);
}
public function kill(){
removeEventListener(Event.ENTER_FRAME, _keepShutting);
}
}
}//package
Section 21
//Enemy (Enemy)
package {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import tomalic.*;
public class Enemy extends GameObject {
var xAdd:Number;
var destiny:Point;
var horizontal:Boolean;
var nextBullets:Number;// = 1
var index:Number;
var nextBulletsValue:Number;// = 100
var velocity:Number;
static const NEXT_BULLETS_VALUE = 100;
static var positions:Array = [new Point(20, 200), new Point(40, 40), new Point(200, 20), new Point(360, 40), new Point(360, 200), new Point(360, 360), new Point(200, 360), new Point(40, 360)];
static var ship:Ship;
public function Enemy(){
nextBullets = 1;
nextBulletsValue = NEXT_BULLETS_VALUE;
super();
addFrameScript(0, frame1);
thisPoints = 15;
cacheAsBitmap = true;
}
public function setupEnemy(){
var _local1:Number;
var _local2:*;
var _local3:Enemy;
var _local4:EnemyCreateSound;
Orbit_Shooter.getInstance().sprites.addChild(this);
GameObject.addElement(this);
this.gotoAndStop(Utils.randRange(1, Ship.enemiesTypes));
this.velocity = 1;
switch (this.currentFrame){
case 1:
this.index = Utils.randRange(0, (Enemy.positions.length - 1));
this.setupPosition();
_local1 = GameObject.list.length;
_local2 = 0;
while (_local2 < _local1) {
if (((((((GameObject.list[_local2]) && (!((GameObject.list[_local2] == this))))) && ((GameObject.list[_local2] is Enemy)))) && ((GameObject.list[_local2].currentFrame == 1)))){
_local3 = GameObject.list[_local2];
if (_local3.destiny.equals(this.destiny)){
this.remove();
return;
};
};
_local2++;
};
this.updatePosition(-70);
break;
case 2:
this.horizontal = Boolean(Utils.randRange(0, 1));
this.setupPosition();
Asteroids.setupHorizontalPosition(this.horizontal, this, false);
this.velocity = 3;
break;
case 3:
this.setupPosition();
this.x = Utils.randRange((this.width / 2), (400 - (this.width / 3)));
this.y = -(height);
this.velocity = 4;
this.xAdd = ((Utils.randRange(0, 1)) ? 1 : -1 * this.velocity);
break;
case 4:
this.setupPosition();
if (Utils.randRange(0, 1)){
this.x = Utils.randRange(-(width), (width + 400));
this.y = (Utils.randRange(0, 1)) ? -(height) : (height + 400);
} else {
this.x = (Utils.randRange(0, 1)) ? -(width) : (width + 400);
this.y = Utils.randRange(-(height), (height + 400));
};
this.velocity = 2;
break;
};
if (!Orbit_Shooter.mute){
_local4 = new EnemyCreateSound();
_local4.play();
};
this.addEventListener(Event.ENTER_FRAME, this.update);
}
public function shoot():void{
var _local1:EnemyBulletSound;
EnemyBullet.create(this);
if (!Orbit_Shooter.mute){
_local1 = new EnemyBulletSound();
_local1.play();
};
}
public function updatePosition(_arg1:Number=1):void{
var _local2:Number;
_local2 = ((this.rotation - 360) * (Math.PI / 180));
this.x = Math.round((x + (_arg1 * Math.cos(_local2))));
this.y = Math.round((y + (_arg1 * Math.sin(_local2))));
}
function frame1(){
this.stop();
}
override public function remove():void{
this.removeEventListener(Event.ENTER_FRAME, this.update);
super.remove();
}
public function setPositionByIndex(_arg1:Number){
var _local2:Point;
_local2 = Enemy.positions[_arg1];
x = _local2.x;
y = _local2.y;
this.rotation = (_arg1 * 45);
}
override public function update(_arg1:Event):Boolean{
var _local2:Boolean;
var _local3:Number;
var _local4:Number;
if (!super.update(_arg1)){
return (false);
};
_local2 = true;
switch (this.currentFrame){
case 1:
if (x != destiny.x){
this.updatePosition();
break;
};
if (y != destiny.y){
this.updatePosition();
break;
};
break;
case 2:
if (horizontal){
x = (x - velocity);
} else {
y = (y + velocity);
};
break;
case 3:
if (x >= 360){
xAdd = -(velocity);
};
if (x <= 40){
xAdd = velocity;
};
y = (y + (velocity / 4));
x = (x + xAdd);
break;
case 4:
_local2 = false;
_local3 = Ship.getInstance().x;
_local4 = Ship.getInstance().y;
if (_local3 < x){
x = (x - velocity);
};
if (_local3 > x){
x = (x + velocity);
};
if (_local4 < y){
y = (y - velocity);
};
if (_local4 > y){
y = (y + velocity);
};
break;
};
if (_local2){
if (nextBullets == 0){
this.shoot();
nextBullets = nextBulletsValue;
} else {
nextBullets--;
};
};
if ((((((((x > (400 + (width * 2)))) || ((y > (400 + (height * 2)))))) || ((x < -((width * 2)))))) || ((y < -((height * 2)))))){
this.remove();
};
return (true);
}
public function setupPosition(){
nextBulletsValue = NEXT_BULLETS_VALUE;
switch (this.currentFrame){
case 1:
this.setPositionByIndex(this.index);
this.updatePosition();
this.destiny = new Point(this.x, this.y);
break;
case 2:
if (this.horizontal){
this.rotation = 180;
} else {
this.rotation = 90;
};
break;
case 3:
this.rotation = 90;
nextBulletsValue = (NEXT_BULLETS_VALUE / 2);
nextBullets = 10;
break;
case 4:
break;
};
}
public static function create():Enemy{
var _local1:Enemy;
if (!Enemy.ship){
Enemy.ship = Ship.getInstance();
};
_local1 = new (Enemy);
_local1.setupEnemy();
return (_local1);
}
}
}//package
Section 22
//EnemyBullet (EnemyBullet)
package {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import tomalic.*;
public class EnemyBullet extends MovieClip {
static const defaultVelocity:Number = 5;
public function EnemyBullet(){
cacheAsBitmap = true;
}
public function updatePosition(_arg1:Number):void{
var _local2:Number;
_local2 = ((this.rotation - 360) * (Math.PI / 180));
this.x = Math.round((x + (_arg1 * Math.cos(_local2))));
this.y = Math.round((y + (_arg1 * Math.sin(_local2))));
}
public function remove():void{
this.removeEventListener(Event.ENTER_FRAME, this.update);
if (parent){
this.parent.removeChild(this);
};
}
public function update(_arg1:Event):void{
if (Orbit_Shooter.paused){
return;
};
updatePosition(defaultVelocity);
if (Ship.killAllObjects){
return (this.remove());
};
if (this.hitTestObject(Ship.getInstance())){
Ship.getInstance().hitted(Ship.ENEMY_BULLET_VALUE);
return (this.remove());
};
if ((((((((this.x < 0)) || ((this.y < 0)))) || ((this.x > 400)))) || ((this.y > 400)))){
return (this.remove());
};
}
static function create(_arg1:GameObject):EnemyBullet{
var _local2:EnemyBullet;
_local2 = new (EnemyBullet);
Orbit_Shooter.getInstance().sprites.addChild(_local2);
_local2.rotation = _arg1.rotation;
_local2.x = _arg1.x;
_local2.y = _arg1.y;
_local2.updatePosition(((_arg1.width / 2) - 5));
_local2.addEventListener(Event.ENTER_FRAME, _local2.update);
return (_local2);
}
}
}//package
Section 23
//EnemyBulletSound (EnemyBulletSound)
package {
import flash.media.*;
public dynamic class EnemyBulletSound extends Sound {
}
}//package
Section 24
//EnemyCreateSound (EnemyCreateSound)
package {
import flash.media.*;
public dynamic class EnemyCreateSound extends Sound {
}
}//package
Section 25
//EnemyExploding (EnemyExploding)
package {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.utils.*;
import flash.net.*;
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 EnemyExploding extends MovieClip {
public function EnemyExploding(){
addFrameScript(8, frame9);
}
function frame9(){
this.stop();
Orbit_Shooter.getInstance().sprites.removeChild(this);
}
}
}//package
Section 26
//EnemyShot (EnemyShot)
package {
import flash.media.*;
public dynamic class EnemyShot extends Sound {
}
}//package
Section 27
//ExplosionSound (ExplosionSound)
package {
import flash.media.*;
public dynamic class ExplosionSound extends Sound {
}
}//package
Section 28
//FreezeSound (FreezeSound)
package {
import flash.media.*;
public dynamic class FreezeSound extends Sound {
}
}//package
Section 29
//GameObject (GameObject)
package {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import fl.motion.*;
import tomalic.*;
public class GameObject extends MovieClip implements IGameObject {
var freezeTime:Number;// = 0
var thisPoints:uint;// = 0
static var MAX_FREEZE_TIME = 100;
static var list:Array = [];
public function GameObject(){
freezeTime = 0;
thisPoints = 0;
super();
}
public function removeFreeze():void{
var _local1:Color;
_local1 = new Color();
this.transform.colorTransform = _local1;
}
public function remove():void{
GameObject.removeElement(this);
if (parent){
this.parent.removeChild(this);
};
}
public function freeze():void{
var _local1:Color;
this.freezeTime = MAX_FREEZE_TIME;
_local1 = new Color();
_local1.setTint(0xFFFF, 0.5);
this.transform.colorTransform = _local1;
}
public function update(_arg1:Event):Boolean{
if (Orbit_Shooter.paused){
return (false);
};
if (this.freezeTime > 0){
this.freezeTime--;
if (this.freezeTime == 0){
this.removeFreeze();
};
return (false);
};
return (true);
}
public function explode(_arg1:Number=0):void{
var _local2:EnemyExploding;
var _local3:ExplosionSound;
if (!Orbit_Shooter.mute){
_local3 = new ExplosionSound();
_local3.play();
};
Score.getInstance().add(thisPoints);
_local2 = new EnemyExploding();
_local2.x = x;
_local2.y = y;
Orbit_Shooter.getInstance().sprites.addChild(_local2);
this.remove();
}
public static function freezeAll():void{
var _local1:Number;
var _local2:*;
_local1 = GameObject.list.length;
_local2 = 0;
while (_local2 < _local1) {
if (GameObject.list[_local2]){
GameObject.list[_local2].freeze();
};
_local2++;
};
}
public static function removeAllElements(_arg1:Boolean=false){
var _local2:GameObject;
while ((_local2 = GameObject.list.pop())) {
if (_arg1){
_local2.explode(Bullet.BULLET_STATE_SHOOTING);
} else {
_local2.remove();
};
};
}
public static function get length(){
return (GameObject.list.length);
}
public static function removeElement(_arg1:IGameObject){
var _local2:Number;
_local2 = GameObject.getIndex(_arg1);
if (_local2 >= 0){
GameObject.list.splice(_local2, 1);
};
}
public static function getIndex(_arg1:IGameObject):Number{
var _local2:Number;
var _local3:*;
_local2 = GameObject.list.length;
_local3 = 0;
while (_local3 < _local2) {
if (GameObject.list[_local3] == _arg1){
return (_local3);
};
_local3++;
};
return (-1);
}
public static function addElement(_arg1:IGameObject){
return (GameObject.list.push(_arg1));
}
}
}//package
Section 30
//GameOverSound (GameOverSound)
package {
import flash.media.*;
public dynamic class GameOverSound extends Sound {
}
}//package
Section 31
//Healthy (Healthy)
package {
import flash.display.*;
public class Healthy extends MovieClip {
var max:Number;
public var barMC:MovieClip;
public function Healthy():void{
max = this.barMC.scaleX;
}
public function sub(_arg1:Number){
this.value = (this.value - _arg1);
}
public function get value():Number{
return ((this.barMC.scaleX * 100));
}
public function add(_arg1:Number){
this.value = (this.value + _arg1);
}
public function setToMax(){
this.value = ((max * 100) + 1);
}
public function set value(_arg1:Number):void{
_arg1 = (_arg1 / 100);
if (_arg1 >= max){
_arg1 = max;
};
this.barMC.scaleX = ((_arg1)<0.03) ? 0 : _arg1;
}
}
}//package
Section 32
//IGameObject (IGameObject)
package {
import flash.events.*;
interface IGameObject {
function remove():void;
function explode(_arg1:Number=0):void;
function update(_arg1:Event):Boolean;
}
}//package
Section 33
//Level (Level)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
import flash.utils.*;
public class Level extends MovieClip {
var time:Number;// = 150
public var levelText:TextField;
var myTimer:Timer;
static const LEVEL_SPRITE_DESTROYED = "level_sprite_destroyed";
static const MAX_LEVELS = 15;
public function Level(_arg1=null){
time = 150;
super();
if (_arg1 == MAX_LEVELS){
this.levelText.text = "Survival Mode";
} else {
this.levelText.text = ("Level " + _arg1);
};
}
public function handleEvent(_arg1:Event){
if (Orbit_Shooter.paused){
return;
};
time--;
if (time == 0){
remove();
};
}
public function remove(){
this.dispatchEvent(new Event(LEVEL_SPRITE_DESTROYED));
this.removeEventListener(Event.ENTER_FRAME, this.handleEvent);
if (this.parent){
Orbit_Shooter.getInstance().removeChild(this);
};
}
public function show(_arg1=null){
x = 200;
y = 150;
this.addEventListener(Event.ENTER_FRAME, this.handleEvent);
}
}
}//package
Section 34
//LevelChangeSound (LevelChangeSound)
package {
import flash.media.*;
public dynamic class LevelChangeSound extends Sound {
}
}//package
Section 35
//MalfunctionSound (MalfunctionSound)
package {
import flash.media.*;
public dynamic class MalfunctionSound extends Sound {
}
}//package
Section 36
//MochiAd (MochiAd)
package {
import flash.events.*;
import flash.display.*;
import flash.system.*;
import flash.utils.*;
import flash.net.*;
public class MochiAd {
public static function getVersion():String{
return ("2.7");
}
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];
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;
};
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.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
Section 37
//MochiBot (MochiBot)
package {
import flash.display.*;
import flash.system.*;
import flash.net.*;
public dynamic class MochiBot extends Sprite {
public static function track(_arg1:Sprite, _arg2:String):MochiBot{
var _local3:MochiBot;
var _local4:String;
var _local5:URLVariables;
var _local6:String;
var _local7:URLRequest;
var _local8:Loader;
if (Security.sandboxType == "localWithFile"){
return (null);
};
_local3 = new (MochiBot);
_arg1.addChild(_local3);
Security.allowDomain("*");
Security.allowInsecureDomain("*");
_local4 = "http://core.mochibot.com/my/core.swf";
_local5 = new URLVariables();
_local5["sb"] = Security.sandboxType;
_local5["v"] = Capabilities.version;
_local5["swfid"] = _arg2;
_local5["mv"] = "8";
_local5["fv"] = "9";
_local6 = _local3.root.loaderInfo.loaderURL;
if (_local6.indexOf("http") == 0){
_local5["url"] = _local6;
} else {
_local5["url"] = "local";
};
_local7 = new URLRequest(_local4);
_local7.contentType = "application/x-www-form-urlencoded";
_local7.method = URLRequestMethod.POST;
_local7.data = _local5;
_local8 = new Loader();
_local3.addChild(_local8);
_local8.load(_local7);
return (_local3);
}
}
}//package
Section 38
//OpenSound (OpenSound)
package {
import flash.media.*;
public dynamic class OpenSound extends Sound {
}
}//package
Section 39
//Orbit_Shooter (Orbit_Shooter)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
import flash.ui.*;
public dynamic class Orbit_Shooter extends MovieClip {
public var s2:PressKeySound;
public var version_text:TextField;
public var ship:Ship;
public var sprites:MovieClip;
public var preloader_Text:TextField;
public var btnAgain:SimpleButton;
public var _mochiads_game_id:String;
public var s:OpenSound;
public var score:Score;
public var healthy:Healthy;
var firstValue:Number;
var addedMochi:Boolean;// = false
public var bulletIns:BulletsInstructions;
public var pressKeyMC:PressKey;
public var ship_graphic:MovieClip;
static var _root:DisplayObject;
static var paused:Boolean = false;
static var version:String = "V. 1.1";
static var mute:Boolean = false;
static var thisObject:DisplayObject;
public function Orbit_Shooter(){
var defaultCM:ContextMenu;
var _mochiads_game_id:String;
addedMochi = false;
super();
addFrameScript(0, frame1, 1, frame2, 11, frame12, 19, frame20, 43, frame44, 46, frame47, 49, frame50, 56, frame57, 57, frame58, 65, frame66, 77, frame78);
_root = root;
thisObject = this;
defaultCM = new ContextMenu();
defaultCM.hideBuiltInItems();
this.contextMenu = defaultCM;
stage.scaleMode = StageScaleMode.EXACT_FIT;
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener(KeyboardEvent.KEY_DOWN, function (_arg1:KeyboardEvent){
if (((ship) && ((_arg1.charCode == Keyboard.SPACE)))){
ship.shoot();
};
});
stage.addEventListener(KeyboardEvent.KEY_UP, function (_arg1:KeyboardEvent){
var _local2:String;
_local2 = String.fromCharCode(_arg1.charCode).toLowerCase();
switch (_local2){
case "s":
mute = !(mute);
break;
case "q":
switch (String(stage.quality).toLowerCase()){
case StageQuality.HIGH:
case StageQuality.BEST:
stage.quality = StageQuality.LOW;
break;
case StageQuality.MEDIUM:
stage.quality = StageQuality.HIGH;
break;
case StageQuality.LOW:
stage.quality = StageQuality.MEDIUM;
break;
};
break;
case "p":
if (ship){
Orbit_Shooter.paused = !(Orbit_Shooter.paused);
};
break;
};
});
if (this["preloader_Text"]){
this["preloader_Text"].visible = false;
};
_mochiads_game_id = "21a1842145ee9fc8";
MochiAd.showPreGameAd({clip:this, id:_mochiads_game_id, res:"400x400", background:0, color:0xFF0000, outline:0xFF0000, no_bg:true});
}
public function loaded(){
var _local1:Number;
var _local2:Number;
_local1 = stage.loaderInfo.bytesLoaded;
_local2 = stage.loaderInfo.bytesTotal;
return ((_local1 >= _local2));
}
function frame78(){
btnAgain.addEventListener(MouseEvent.MOUSE_DOWN, function (_arg1:Event){
Orbit_Shooter.getRoot().gotoAndPlay("Title");
if (!Orbit_Shooter.mute){
s2 = new PressKeySound();
s2.play();
};
});
this.stop();
}
public function handleLoading(_arg1:Event){
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local2 = stage.loaderInfo.bytesLoaded;
_local3 = stage.loaderInfo.bytesTotal;
if (!firstValue){
firstValue = _local2;
};
_local4 = ((_local2 - firstValue) / (_local3 - firstValue));
if (this["preloader_Text"]){
this["preloader_Text"].text = String(((Math.floor((_local4 * 100)) + 1) + "%"));
};
if (_arg1.target.loaded()){
removeEventListener(Event.ENTER_FRAME, handleLoading);
_arg1.target.onLoaded();
};
}
function frame12(){
if (!Orbit_Shooter.mute){
s = new OpenSound();
s.play();
};
version_text.text = Orbit_Shooter.version;
}
function frame2(){
this.gotoAndPlay("Title");
}
function frame1(){
MochiBot.track(this, "d07d87c0");
_mochiads_game_id = "21a1842145ee9fc8";
}
function frame20(){
pressKeyMC.setupListeners();
this.stop();
}
function frame47(){
this.stop();
}
function frame44(){
this.stop();
}
function frame58(){
ship.setupShip();
}
public function onLoaded(){
Orbit_Shooter.getInstance().root.gotoAndPlay("Title");
}
function frame57(){
bulletIns.kill();
this.stop();
}
function frame50(){
bulletIns.keepShutting();
this.stop();
}
function frame66(){
pressKeyMC.killListeners();
this.stop();
}
public static function getInstance(){
return (thisObject);
}
public static function getRoot(){
return (_root);
}
}
}//package
Section 40
//Powerup (Powerup)
package {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import tomalic.*;
public class Powerup extends MovieClip {
var time:Number;// = 0
static const POWERUP_MOREBALLS = 1;
static const POWERUP_FREEZE = 10;
static const POWERUP_SHRINK = 3;
static const POWERUP_RESTOREHEALTHY = 5;
static const POWERUP_SHIELD = 6;
static const POWERUP_MALFUNCTION = 8;
static const POWERUP_GROW = 2;
static const POWERUP_ADDHEALTHY = 4;
static const POWERUP_EXPLOSION = 9;
static const POWERUP_POISON = 7;
public function Powerup(){
time = 0;
super();
cacheAsBitmap = true;
this.gotoAndStop(Utils.randRange(1, this.totalFrames));
this.width = (this.height = 15);
}
public function update(_arg1:Event){
var _local2:Boolean;
var _local3:Ship;
var _local4:PowerupSound;
if (Orbit_Shooter.paused){
return;
};
_local2 = Ship.killAllObjects;
time++;
if (time > 200){
this.alpha = (this.alpha - 0.01);
};
if (this.alpha <= 0.5){
_local2 = true;
};
_local3 = Orbit_Shooter.getInstance().ship;
if (((!(_local2)) && (this.hitTestObject(_local3)))){
_local3.addStatistic(this);
switch (this.currentFrame){
case POWERUP_MOREBALLS:
_local3.addBalls();
break;
case POWERUP_GROW:
_local3.grow();
break;
case POWERUP_SHRINK:
_local3.shrink();
break;
case POWERUP_ADDHEALTHY:
_local3.addHealthy();
break;
case POWERUP_RESTOREHEALTHY:
_local3.addHealthy(Ship.MAX_HEALTHY_VALUE);
break;
case POWERUP_SHIELD:
_local3.addShield();
break;
case POWERUP_POISON:
_local3.subHealthy(Ship.POISON_HEALTHY_VALUE);
break;
case POWERUP_MALFUNCTION:
_local3.malfunction();
break;
case POWERUP_EXPLOSION:
_local3.explodeAll();
break;
case POWERUP_FREEZE:
_local3.freeze();
break;
};
_local2 = true;
if (!Orbit_Shooter.mute){
_local4 = new PowerupSound();
_local4.play();
};
};
if (_local2){
this.removeEventListener(Event.ENTER_FRAME, this.update);
this.parent.removeChild(this);
};
}
public static function create(_arg1:GameObject){
var _local2:Powerup;
_local2 = new (Powerup);
_local2.addEventListener(Event.ENTER_FRAME, _local2.update);
_local2.x = _arg1.x;
_local2.y = _arg1.y;
if (_local2.x < 20){
_local2.x = 20;
};
if (_local2.x > 380){
_local2.x = 380;
};
if (_local2.y < 20){
_local2.y = 20;
};
if (_local2.y > 380){
_local2.y = 380;
};
Orbit_Shooter.getInstance().sprites.addChild(_local2);
}
}
}//package
Section 41
//PowerupSound (PowerupSound)
package {
import flash.media.*;
public dynamic class PowerupSound extends Sound {
}
}//package
Section 42
//PressKey (PressKey)
package {
import flash.events.*;
import flash.display.*;
public class PressKey extends MovieClip {
public function PressKey(){
addFrameScript(29, frame30);
}
public function handleEvent(_arg1:Event){
var _local2:PressKeySound;
if (_arg1.type == KeyboardEvent.KEY_UP){
_arg1 = KeyboardEvent(_arg1);
if (_arg1["keyCode"] == 0xFF){
return;
};
};
if (!Orbit_Shooter.mute){
_local2 = new PressKeySound();
_local2.play();
};
Orbit_Shooter.getRoot().play();
}
public function setupListeners(){
stage.addEventListener(MouseEvent.MOUSE_UP, handleEvent);
stage.addEventListener(KeyboardEvent.KEY_UP, handleEvent);
}
function frame30(){
gotoAndPlay(0);
}
public function killListeners(){
stage.removeEventListener(MouseEvent.MOUSE_UP, handleEvent);
stage.removeEventListener(KeyboardEvent.KEY_UP, handleEvent);
}
}
}//package
Section 43
//PressKeySound (PressKeySound)
package {
import flash.media.*;
public dynamic class PressKeySound extends Sound {
}
}//package
Section 44
//Score (Score)
package {
import flash.display.*;
import flash.text.*;
public class Score extends MovieClip {
var _score:Number;
var textField:TextField;
public var scoreText:TextField;
var totalChars:uint;// = 6
static var thisObject:Score;
public function Score(){
totalChars = 6;
super();
thisObject = this;
textField = TextField(getChildAt(0));
}
public function get value():Number{
return (Number(this.textField.text));
}
public function add(_arg1:Number){
this.value = (this.value + _arg1);
}
public function pad(_arg1:Number, _arg2=" "):String{
var _local3:String;
_local3 = "";
while (_arg1--) {
_local3 = (_local3 + _arg2);
};
return (_local3);
}
public function set value(_arg1:Number){
var _local2:String;
this._score = _arg1;
_local2 = String(_arg1);
if (_local2.length < totalChars){
_local2 = (this.pad((totalChars - _local2.length), "0") + _local2);
};
this.textField.text = _local2;
}
public static function getInstance(){
return (thisObject);
}
}
}//package
Section 45
//Shield (Shield)
package {
import flash.display.*;
public dynamic class Shield extends MovieClip {
}
}//package
Section 46
//ShieldSound (ShieldSound)
package {
import flash.media.*;
public dynamic class ShieldSound extends Sound {
}
}//package
Section 47
//Ship (Ship)
package {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import gs.*;
import com.kongregate.as3.client.*;
import tomalic.*;
import flash.utils.*;
public class Ship extends MovieClip {
var shipHitted:Number;// = 0
var levelDestroyed;// = false
var shieldLive:Number;// = 400
var asteroidsMaxRandom:Number;// = 80
var nextBullets:Number;// = 1
var enemiesKilled:Number;// = 0
var defaultBulletSize:Number;
var nextWaveValue:Number;// = 90
var nextMalfunction:Number;// = 0
var numBullets:Number;// = 4
var shield:Shield;
var levelSprite:Level;
var powerupsCollected:Number;// = 0
var healthy:Healthy;
var _level:Number;// = 0
var nextWave:Number;// = 1
var hasShield:Boolean;// = false
var nextLevel:Number;// = 1750
var velocity:Number;// = 20
var asteroidsDestroyed:Number;// = 0
static const MAX_GROW_VALUE = 80;
static const ASTEROID_HIT_VALUE = 5;
static const ASTEROIDS_MAX_RANDOM = 80;
static const ADD_BALLS_VALUE = 1;
static const DEFAULT_HEALTHY_VALUE = 20;
static const ENEMY_BULLET_VALUE = 10;
static const LEVEL_TIME = 1750;
static const DEFAULT_HITTED_VALUE = 5;
static const MAX_HEALTHY_VALUE = 100;
static const MAX_MALFUNCTION = 100;
static const POISON_HEALTHY_VALUE = 30;
static const BULLETS_RELOAD_VALUE = 10;
static const DEFAULT_BULLET_VELOCITY = 15;
static const SHIELD_TIME = 400;
static const MAX_NUMBER_BULLETS = 8;
static var killAllObjects:Boolean;
static var enemiesTypes:Number;
static var bulletVelocity:Number;
public function Ship(){
velocity = 20;
numBullets = 4;
hasShield = false;
asteroidsMaxRandom = Ship.ASTEROIDS_MAX_RANDOM;
enemiesKilled = 0;
asteroidsDestroyed = 0;
powerupsCollected = 0;
shipHitted = 0;
_level = 0;
levelDestroyed = false;
nextBullets = 1;
nextWave = 1;
nextWaveValue = 90;
nextLevel = LEVEL_TIME;
shieldLive = SHIELD_TIME;
nextMalfunction = 0;
super();
cacheAsBitmap = true;
}
public function explodeAll(){
GameObject.removeAllElements(true);
}
public function destroy(){
Bullet.destroyAll();
Orbit_Shooter.getInstance().removeChild(this);
}
public function set level(_arg1:Number){
var _local2:LevelChangeSound;
this._level = _arg1;
if (_level >= (Level.MAX_LEVELS + 1)){
return;
};
levelSprite = new Level(_level);
Orbit_Shooter.getInstance().addChild(levelSprite);
levelSprite.show();
levelSprite.addEventListener(Level.LEVEL_SPRITE_DESTROYED, this.onLevelDestroyed);
levelDestroyed = false;
if (!Orbit_Shooter.mute){
_local2 = new LevelChangeSound();
_local2.play();
};
if ((((asteroidsMaxRandom >= 10)) && (((_level % 2) == 0)))){
asteroidsMaxRandom = (asteroidsMaxRandom - 8);
};
if (nextWaveValue > 10){
nextWaveValue = (nextWaveValue - 5);
};
if (((((_level % 2) == 0)) && ((enemiesTypes < 4)))){
enemiesTypes++;
};
}
public function shrink(){
var _local1:Boolean;
_local1 = false;
if (Bullet.size > defaultBulletSize){
Bullet.size = (Bullet.size - 10);
_local1 = true;
};
if (numBullets > 4){
numBullets = (numBullets - Ship.ADD_BALLS_VALUE);
_local1 = true;
};
if (_local1){
this.reset();
};
}
public function grow(){
if (Bullet.size < (defaultBulletSize + Ship.MAX_GROW_VALUE)){
Bullet.size = (Bullet.size + 10);
this.reset();
};
}
public function removeShield(){
hasShield = false;
this.removeChild(shield);
}
public function shoot(){
var _local1:ShipShoot;
if (((((Orbit_Shooter.paused) || (!((Bullet.length == this.numBullets))))) || (!((nextBullets == -1))))){
return;
};
if (!Orbit_Shooter.mute){
_local1 = new ShipShoot();
_local1.play();
};
Bullet.shootAll();
this.reload();
}
public function malfunction(){
var _local1:MalfunctionSound;
if (!Orbit_Shooter.mute){
_local1 = new MalfunctionSound();
_local1.play();
};
this.nextMalfunction = MAX_MALFUNCTION;
}
public function addKongregateStatistic(_arg1:String, _arg2:Number):void{
var _local3:KongregateAPI;
_local3 = KongregateAPI.getInstance();
if (_local3.connected){
_local3.stats.submit(_arg1, _arg2);
};
}
public function handleMouseEvent(_arg1:Event):void{
shoot();
}
public function handleEvent(_arg1:Event){
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
if (Orbit_Shooter.paused){
return;
};
if (nextMalfunction == 0){
_local2 = root.stage.mouseX;
_local3 = root.stage.mouseY;
_local4 = x;
_local5 = y;
if (Math.abs((_local2 - _local4)) < 0){
x = _local2;
y = _local3;
} else {
x = (x - Math.round(((x - _local2) / velocity)));
y = (y - Math.round(((y - _local3) / velocity)));
};
};
if (nextBullets >= 0){
nextBullets--;
};
if (nextBullets == 0){
Bullet.addBullet(numBullets);
};
if (!levelDestroyed){
return;
};
if (nextMalfunction != 0){
nextMalfunction--;
};
if (this.hasShield){
if (this.shieldLive == 0){
this.removeShield();
};
if (this.shieldLive == 50){
shield.alpha = 0.35;
};
this.shieldLive--;
};
nextLevel--;
if (nextLevel == 0){
nextLevel = LEVEL_TIME;
level++;
};
if (nextWave == 0){
_local6 = 0;
for (;_local6 < ((_level / 2) + 1);_local6++) {
if (Utils.randRange(0, 1)){
Enemy.create();
continue;
};
};
nextWave = nextWaveValue;
};
nextWave--;
if (!Utils.randRange(0, asteroidsMaxRandom)){
Asteroids.create();
};
}
public function setupShip(){
healthy = Orbit_Shooter.getRoot().healthy;
Bullet.size = (defaultBulletSize = ((this.width / 2) + 20));
Bullet.ship = this;
Bullet.destroyAll();
Ship.enemiesTypes = 1;
Ship.killAllObjects = false;
Ship.bulletVelocity = Ship.DEFAULT_BULLET_VELOCITY;
level++;
addEventListener(Event.ENTER_FRAME, this.handleEvent);
stage.addEventListener(MouseEvent.MOUSE_DOWN, this.handleMouseEvent);
}
public function subHealthy(_arg1:Number=20){
this.hitted(_arg1);
}
public function increaseLevel(_arg1:TimerEvent):void{
level++;
}
public function addBalls(){
if (numBullets <= Ship.MAX_NUMBER_BULLETS){
numBullets = (numBullets + Ship.ADD_BALLS_VALUE);
this.reset();
};
}
public function reload(){
nextBullets = Ship.BULLETS_RELOAD_VALUE;
}
public function get level():Number{
return (_level);
}
public function hitted(_arg1:Number=5){
var _local2:ShipTouched;
if (hasShield){
return;
};
if (healthy.value <= 0){
return (this.gameOver());
};
if (!Orbit_Shooter.mute){
_local2 = new ShipTouched();
_local2.play();
};
this.transform.colorTransform = new ColorTransform();
TweenLite.from(this, 1, {tint:0xFF0000});
healthy.sub(_arg1);
this.addStatistic(this);
}
public function addShield(){
var _local1:ShieldSound;
if (!this.hasShield){
shield = new Shield();
this.addChild(shield);
};
if (!Orbit_Shooter.mute){
_local1 = new ShieldSound();
_local1.play();
};
shield.alpha = 0.75;
this.hasShield = true;
this.shieldLive = SHIELD_TIME;
}
public function addStatistic(_arg1:Object):void{
if ((_arg1 is Asteroids)){
addKongregateStatistic("asteroidDestroyed", 1);
asteroidsDestroyed++;
};
if ((_arg1 is Enemy)){
addKongregateStatistic("enemyKilled", 1);
enemiesKilled++;
};
if ((_arg1 is Powerup)){
addKongregateStatistic("powerupCollected", 1);
powerupsCollected++;
};
if ((_arg1 is Ship)){
addKongregateStatistic("shipHitted", 1);
shipHitted++;
};
}
public function onLevelDestroyed(_arg1:Event){
levelDestroyed = true;
}
public function freeze(){
var _local1:FreezeSound;
if (!Orbit_Shooter.mute){
_local1 = new FreezeSound();
_local1.play();
};
GameObject.freezeAll();
}
public function reset(){
Bullet.destroyAll();
nextBullets = 1;
}
public function addHealthy(_arg1:Number=20){
if (_arg1 >= Ship.MAX_HEALTHY_VALUE){
this.healthy.setToMax();
} else {
this.healthy.add(_arg1);
};
}
public function gameOver(){
var _local1:KongregateAPI;
var _local2:GameOverSound;
_local1 = KongregateAPI.getInstance();
if (_local1.connected){
addKongregateStatistic("GameCompleteOnLevel", this.level);
_local1.scores.submit(Score.getInstance().value);
};
removeEventListener(Event.ENTER_FRAME, this.handleEvent);
stage.removeEventListener(MouseEvent.MOUSE_DOWN, this.handleMouseEvent);
levelSprite.removeEventListener(Level.LEVEL_SPRITE_DESTROYED, this.onLevelDestroyed);
levelSprite.remove();
GameObject.removeAllElements();
Ship.killAllObjects = true;
this.destroy();
if (!Orbit_Shooter.mute){
_local2 = new GameOverSound();
_local2.play();
};
Orbit_Shooter.getRoot().play();
}
public static function getInstance():Ship{
return (Orbit_Shooter.getInstance().ship);
}
}
}//package
Section 48
//ShipShoot (ShipShoot)
package {
import flash.media.*;
public dynamic class ShipShoot extends Sound {
}
}//package
Section 49
//ShipTouched (ShipTouched)
package {
import flash.media.*;
public dynamic class ShipTouched extends Sound {
}
}//package