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

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

Perpetual Blaze - smash through limitless waves of enemies.swf

This is the info page for
Flash #93236

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


ActionScript [AS3]
Section 1
//AnimatedSprite (mLib.graphics.AnimatedSprite) package mLib.graphics { import flash.display.*; import flash.geom.*; public final class AnimatedSprite extends BasicSprite { private var _currentFrame:Number;// = 0 private var _frames:Array; private var _totalFrames:Number; public var framerate:Number; private var _currentRect:Rectangle; public function AnimatedSprite(_arg1:Bitmap, _arg2:Number, _arg3:Number, _arg4:Number=30):void{ var _local8:int; var _local9:Rectangle; _frames = []; super(_arg1); _hx = (_arg2 / 2); _hy = (_arg3 / 2); framerate = _arg4; var _local5:Number = (_bmp.width / _arg2); var _local6:Number = (_bmp.height / _arg3); _totalFrames = (_local5 * _local6); var _local7:int; while (_local7 < _local6) { _local8 = 0; while (_local8 < _local5) { _local9 = new Rectangle((_local8 * _arg2), (_local7 * _arg3), _arg2, _arg3); _frames.push(_local9); _local8++; }; _local7++; }; _currentRect = _frames[0]; } public function set currentFrame(_arg1:Number):void{ _currentFrame = _arg1; if (_currentFrame > (_totalFrames - 1)){ _currentFrame = 0; }; if (_currentFrame < 0){ _currentFrame = (_totalFrames - 1); }; _currentRect = _frames[int(_currentFrame)]; } public function play(_arg1:Number=0.2):void{ currentFrame = (currentFrame + (framerate * _arg1)); } public function get currentFrame():Number{ return (_currentFrame); } override public function render(_arg1:BitmapData):void{ _pos.x = (_pos.x - _hx); _pos.y = (_pos.y - _hy); _arg1.copyPixels(_bmpd, _currentRect, _pos, null, null, true); _pos.x = (_pos.x + _hx); _pos.y = (_pos.y + _hy); } } }//package mLib.graphics
Section 2
//BasicSprite (mLib.graphics.BasicSprite) package mLib.graphics { import flash.display.*; import flash.geom.*; public class BasicSprite { protected var _bmp:Bitmap; public var width:Number; protected var _pos:Point; protected var _bmpd:BitmapData; public var height:Number; protected var _hx:Number; protected var _hy:Number; public function BasicSprite(_arg1:Bitmap):void{ _bmp = _arg1; _bmpd = new BitmapData(_bmp.width, _bmp.height, true, 0); _bmpd.draw(_bmp); _hx = (_bmp.width / 2); _hy = (_bmp.height / 2); width = _bmp.width; height = _bmp.height; _pos = new Point(0, 0); } public function get ymin():Number{ return ((y - _hy)); } public function get bmp():Bitmap{ return (_bmp); } public function set bmp(_arg1:Bitmap):void{ _bmp = _arg1; } public function get ymax():Number{ return ((y + _hy)); } public function render(_arg1:BitmapData):void{ _pos.x = (_pos.x - _hx); _pos.y = (_pos.y - _hy); _arg1.copyPixels(_bmpd, _bmpd.rect, _pos, null, null, true); _pos.x = (_pos.x + _hx); _pos.y = (_pos.y + _hy); } public function get xmin():Number{ return ((x - _hx)); } public function get xmax():Number{ return ((x + _hx)); } public function set y(_arg1:Number):void{ _pos.y = _arg1; } public function set x(_arg1:Number):void{ _pos.x = _arg1; } public function get x():Number{ return (_pos.x); } public function get y():Number{ return (_pos.y); } public function inBounds(_arg1:Camera):Boolean{ if ((_pos.x + _hx) < _arg1.x){ return (false); }; if ((_pos.y + _hy) < _arg1.y){ return (false); }; if ((_pos.x - _hx) > _arg1.width){ return (false); }; if ((_pos.y - _hy) > _arg1.height){ return (false); }; return (true); } public function set bmpd(_arg1:BitmapData):void{ _bmpd = _arg1; } public function get bmpd():BitmapData{ return (_bmpd); } } }//package mLib.graphics
Section 3
//CacheData (mLib.graphics.CacheData) package mLib.graphics { final class CacheData { public var cacheLength:Number; public var cacheFrames:Array; function CacheData(_arg1:Number, _arg2:Array):void{ cacheLength = _arg1; cacheFrames = _arg2; } } }//package mLib.graphics
Section 4
//Camera (mLib.graphics.Camera) package mLib.graphics { public final class Camera { private var _x:Number; public var width:Number; public var height:Number; private var _y:Number; public function Camera(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{ x = _arg1; y = _arg2; width = _arg3; height = _arg4; } public function set y(_arg1:Number):void{ height = (height + (_arg1 - _y)); _y = _arg1; } public function set x(_arg1:Number):void{ width = (width + (_arg1 - _x)); _x = _arg1; } public function get x():Number{ return (_x); } public function get y():Number{ return (_y); } } }//package mLib.graphics
Section 5
//drawLine (mLib.graphics.drawLine) package mLib.graphics { import flash.display.*; public function drawLine(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Number, _arg6:BitmapData):void{ var _local7:Number; var _local8 = (Math.abs((_arg4 - _arg2)) > Math.abs((_arg3 - _arg1))); if (_local8){ _arg4 = (_arg4 ^ _arg3); _arg3 = (_arg3 ^ _arg4); _arg4 = (_arg4 ^ _arg3); _arg2 = (_arg2 ^ _arg1); _arg1 = (_arg1 ^ _arg2); _arg2 = (_arg2 ^ _arg1); }; if (_arg3 < _arg1){ _arg3 = (_arg3 ^ _arg1); _arg1 = (_arg1 ^ _arg3); _arg3 = (_arg3 ^ _arg1); _arg4 = (_arg4 ^ _arg2); _arg2 = (_arg2 ^ _arg4); _arg4 = (_arg4 ^ _arg2); }; _local7 = ((_arg4 - _arg2) / (_arg3 - _arg1)); var _local9:Number = 0; var _local10:Number = _arg2; var _local11:int = _arg1; _arg6.lock(); while (_local11 <= _arg3) { _local9 = (_local9 + _local7); if (_local8){ _arg6.setPixel32((_local10 + _local9), _local11, _arg5); } else { _arg6.setPixel32(_local11, int((_local10 + _local9)), _arg5); }; _local11++; }; _arg6.unlock(); } }//package mLib.graphics
Section 6
//mCanvas (mLib.graphics.mCanvas) package mLib.graphics { import flash.display.*; import mLib.structures.*; import flash.geom.*; import flash.filters.*; public final class mCanvas { private var flashMagnitude:Number;// = 0 private var layerList:LinkedList; public var backgroundColor:Number;// = 4278190080 private var canvas:Bitmap; private var filterMatrix:Array; private var flashTransform:ColorTransform; private var maxFlashDuration:Number;// = 0 private var canvasData:BitmapData; private var flashDuration:int;// = 0 public var camera:Camera; private var shakeMagnitude:Number;// = 0 private var alphaFilter:ColorMatrixFilter; private var shakeDuration:int;// = 0 public var motionBlur:Boolean;// = false private static const ORIGIN:Point = new Point(0, 0); public function mCanvas(_arg1:int, _arg2:int, _arg3:Sprite):void{ filterMatrix = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0.3, 0]; super(); canvasData = new BitmapData(_arg1, _arg2, true, 4278190080); canvas = new Bitmap(canvasData); _arg3.addChild(canvas); camera = new Camera(0, 0, _arg1, _arg2); alphaFilter = new ColorMatrixFilter(filterMatrix); layerList = new LinkedList(); flashTransform = new ColorTransform(); } public function removeCanvas(_arg1:Sprite):void{ _arg1.removeChild(canvas); } public function shake(_arg1:Number, _arg2:int):void{ shakeMagnitude = _arg1; shakeDuration = _arg2; } public function render(_arg1:Number=0.02):void{ var _local3:Number; var _local4:mLayer; canvasData.lock(); if (!motionBlur){ canvasData.fillRect(canvasData.rect, backgroundColor); }; if (motionBlur){ _local3 = (1 - (35 * _arg1)); if (_local3 < 0){ _local3 = 0; }; filterMatrix[18] = _local3; alphaFilter.matrix = filterMatrix; canvasData.applyFilter(canvasData, canvasData.rect, ORIGIN, alphaFilter); }; var _local2:ListNode = layerList.head; while (_local2 != null) { _local4 = _local2.data; _local4.render(canvasData, camera, _arg1); _local2 = _local2.next; }; if (shakeDuration > 0){ camera.x = (camera.x + (((Math.random() * shakeMagnitude) * 2) - shakeMagnitude)); camera.y = (camera.y + (((Math.random() * shakeMagnitude) * 2) - shakeMagnitude)); shakeDuration = (shakeDuration - (_arg1 * 1000)); }; if (flashDuration > 0){ flashTransform.redOffset = (flashTransform.greenOffset = (flashTransform.blueOffset = (((flashDuration / maxFlashDuration) * flashMagnitude) * 0xFF))); canvasData.colorTransform(canvasData.rect, flashTransform); flashDuration = (flashDuration - (_arg1 * 1000)); }; canvasData.unlock(); } public function flash(_arg1:Number, _arg2:int):void{ flashMagnitude = _arg1; maxFlashDuration = (flashDuration = _arg2); } public function removeLayer(_arg1:mLayer):void{ layerList.removeData(_arg1); } public function addLayer(_arg1:mLayer):void{ layerList.add(_arg1); } } }//package mLib.graphics
Section 7
//mLayer (mLib.graphics.mLayer) package mLib.graphics { import flash.display.*; import mLib.structures.*; import flash.geom.*; public class mLayer { public var data:BitmapData; protected var ObjList:LinkedList; protected var drawRect:Rectangle; protected static const ORIGIN:Point = new Point(0, 0); public function mLayer(_arg1:Number, _arg2:Number):void{ data = new BitmapData(_arg1, _arg2, true, 0); drawRect = data.rect; ObjList = new LinkedList(); } public function render(_arg1:BitmapData, _arg2:Camera, _arg3:Number=1):void{ data.lock(); _arg1.copyPixels(data, data.rect, ORIGIN, null, null, true); data.unlock(); } public function clear():void{ data.fillRect(drawRect, 0); } } }//package mLib.graphics
Section 8
//SpriteLayer (mLib.graphics.SpriteLayer) package mLib.graphics { import flash.display.*; import mLib.structures.*; public final class SpriteLayer extends mLayer { private var CacheDatas:Array; private var BitmapDatas:Array; private var Bitmaps:Array; public var drawOnlyUsed:Boolean;// = false public function SpriteLayer(_arg1:Number, _arg2:Number):void{ Bitmaps = []; BitmapDatas = []; CacheDatas = []; super(_arg1, _arg2); } public function addSprite(_arg1:BasicSprite):void{ ObjList.add(_arg1); var _local2:int = Bitmaps.indexOf(_arg1.bmp); if (_local2 == -1){ _local2 = Bitmaps.length; if ((_arg1 is StaticSprite)){ CacheDatas[_local2] = StaticSprite(_arg1).cacheRotation(32); }; Bitmaps[_local2] = _arg1.bmp; BitmapDatas[_local2] = _arg1.bmpd; } else { _arg1.bmpd = BitmapDatas[_local2]; if ((_arg1 is StaticSprite)){ StaticSprite(_arg1).cacheData = CacheDatas[_local2]; }; }; } override public function render(_arg1:BitmapData, _arg2:Camera, _arg3:Number=1):void{ var _local5:BasicSprite; data.lock(); var _local4:ListNode = ObjList.tail; while (_local4 != null) { _local5 = _local4.data; if (!_local5.inBounds(_arg2)){ _local4 = _local4.prev; } else { _local5.x = (_local5.x - _arg2.x); _local5.y = (_local5.y - _arg2.y); _local5.render(data); _local5.x = (_local5.x + _arg2.x); _local5.y = (_local5.y + _arg2.y); _local4 = _local4.prev; }; }; drawRect = data.getColorBoundsRect(4278190080, 0, false); _arg1.copyPixels(data, drawRect, drawRect.topLeft, null, null, true); data.unlock(); } public function removeSprite(_arg1:BasicSprite):void{ ObjList.removeData(_arg1); } } }//package mLib.graphics
Section 9
//StaticSprite (mLib.graphics.StaticSprite) package mLib.graphics { import flash.display.*; import flash.geom.*; public final class StaticSprite extends BasicSprite { private var cacheFrames:Array; private var cacheLength:Number;// = 0 private var currentRect:Rectangle; private var rot:Number;// = 0 private static const DEGREE_360:Number = 6.28318530717959; private static const SQUAREROOT_2:Number = Math.sqrt(2); public function StaticSprite(_arg1:Bitmap):void{ cacheFrames = []; super(_arg1); currentRect = new Rectangle(0, 0, width, height); } public function cacheRotation(_arg1:Number=8):CacheData{ var _local4:Number; var _local6:Number; var _local7:Number; var _local2:Number = (DEGREE_360 / _arg1); var _local3:Matrix = new Matrix(); _local4 = (width * SQUAREROOT_2); _bmpd = new BitmapData((_local4 * (_arg1 + 1)), height, true, 0); var _local5:int; while (_local5 < _arg1) { _local6 = (_local5 * _local2); _local7 = (_local5 * _local4); _local3.identity(); _local3.translate(-(_hx), -(_hy)); _local3.rotate(_local6); _local3.translate(_hx, _hy); _local3.translate(_local7, 0); _bmpd.draw(_bmp, _local3); cacheFrames[_local5] = new Rectangle(_local7, 0, width, height); _local5++; }; cacheLength = _arg1; return (new CacheData(cacheLength, cacheFrames)); } public function get rotation():Number{ return (rot); } override public function render(_arg1:BitmapData):void{ _pos.x = (_pos.x - _hx); _pos.y = (_pos.y - _hy); _arg1.copyPixels(_bmpd, currentRect, _pos, null, null, true); _pos.x = (_pos.x + _hx); _pos.y = (_pos.y + _hy); } public function set cacheData(_arg1:CacheData):void{ cacheLength = _arg1.cacheLength; cacheFrames = _arg1.cacheFrames; } public function set rotation(_arg1:Number):void{ rot = ((_arg1 < 0)) ? (DEGREE_360 + _arg1) : _arg1; var _local2:Number = (((rot / DEGREE_360) % 1) * (cacheLength - 1)); _local2 = (((_local2 % 1) < 0.5)) ? _local2 : (_local2 + 1); currentRect = cacheFrames[int(_local2)]; } } }//package mLib.graphics
Section 10
//Particle (mLib.particles.Particle) package mLib.particles { public class Particle { public var size:Number;// = 3 public var x:Number; public var y:Number; public var life:Number;// = 0 public var yv:Number;// = 0 public var xv:Number;// = 0 public function Particle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):void{ x = _arg1; y = _arg2; xv = _arg3; yv = _arg4; life = _arg5; size = _arg6; } } }//package mLib.particles
Section 11
//ParticleGroup (mLib.particles.ParticleGroup) package mLib.particles { import flash.display.*; import mLib.graphics.*; import mLib.structures.*; import flash.geom.*; public class ParticleGroup { private var cacheLength:Number;// = 0 private var Particles:LinkedList; public var initDirection:ParticleInit; private var hx:Number; private var hy:Number; public var initSpeed:ParticleInit; private var bitmapdata:BitmapData; public var sizeDecay:Number;// = 1 private var mat:Matrix; private var cacheScale:Number;// = 0 private var cacheFrames:Array; public var initLife:ParticleInit; public var lifeDecay:Number;// = 1000 private var bitmap:Bitmap; public var initSize:ParticleInit; public var highQuality:Boolean;// = false public function ParticleGroup(_arg1:Bitmap):void{ cacheFrames = []; super(); bitmap = _arg1; hx = (_arg1.width / 2); hy = (_arg1.height / 2); mat = new Matrix(); Particles = new LinkedList(); bitmapdata = new BitmapData(_arg1.width, _arg1.height, true, 0); bitmapdata.draw(bitmap); initSpeed = new ParticleInit(); initDirection = new ParticleInit(); initSize = new ParticleInit(); initLife = new ParticleInit(); } private function inBounds(_arg1:Particle, _arg2:Camera):Boolean{ if (_arg1.x < _arg2.x){ return (false); }; if (_arg1.y < _arg2.y){ return (false); }; if (_arg1.x > _arg2.width){ return (false); }; if (_arg1.y > _arg2.height){ return (false); }; return (true); } public function removeParticle(_arg1:Particle):void{ Particles.removeData(_arg1); } public function addParticles(_arg1:Number, _arg2:Number, _arg3:int):void{ var _local4:Number; var _local5:Number; var _local6:Particle; while (_arg3 > 0) { _local4 = initDirection.getValue(); _local5 = initSpeed.getValue(); _local6 = new Particle(_arg1, _arg2, (Math.cos(_local4) * _local5), (Math.sin(_local4) * _local5), initLife.getValue(), initSize.getValue()); Particles.add(_local6); _arg3--; }; } public function render(_arg1:BitmapData, _arg2:Camera):void{ var _local4:Particle; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; var _local9:Rectangle; var _local3:ListNode = Particles.head; while (_local3 != null) { _local4 = _local3.data; if (!inBounds(_local4, _arg2)){ _local3 = _local3.next; } else { _local5 = _local4.size; if (highQuality){ _local6 = ((_local4.x - _arg2.x) - (hx * _local5)); _local7 = ((_local4.y - _arg2.y) - (hy * _local5)); mat.createBox(_local5, _local5, 0, _local6, _local7); _arg1.draw(bitmap, mat, null, BlendMode.ADD); } else { _local8 = ((_local5 / cacheScale) * (cacheLength - 1)); _local9 = cacheFrames[_local8]; _local6 = ((_local4.x - _arg2.x) - (_local9.width / 2)); _local7 = ((_local4.y - _arg2.y) - (_local9.height / 2)); _arg1.copyPixels(bitmapdata, _local9, new Point(_local6, _local7), null, null, true); }; _local3 = _local3.next; }; }; } public function update(_arg1:Number):void{ var _local3:Particle; var _local2:ListNode = Particles.head; while (_local2 != null) { _local3 = _local2.data; _local3.x = (_local3.x + (_local3.xv * _arg1)); _local3.y = (_local3.y + (_local3.yv * _arg1)); _local3.life = (_local3.life - (_arg1 * lifeDecay)); _local3.size = (_local3.size - (_arg1 * sizeDecay)); if ((((_local3.life < 0)) || ((_local3.size < 0)))){ Particles.removeNode(_local2); _local2 = _local2.next; } else { _local2 = _local2.next; }; }; } public function cacheScaling(_arg1:Number=5, _arg2:Number=5):void{ var _local4:Number; bitmapdata = new BitmapData(((bitmap.width * _arg1) * (_arg2 + 1)), ((bitmap.height * _arg1) * (_arg2 + 1)), true, 0); var _local3:int; while (_local3 <= _arg2) { _local4 = (_arg1 * (_local3 / _arg2)); mat.createBox(_local4, _local4, 0, ((_local3 * _arg1) * bitmap.width), 0); bitmapdata.draw(bitmap, mat); cacheFrames.push(new Rectangle(((_local3 * _arg1) * bitmap.width), 0, (_local4 * bitmap.width), (_local4 * bitmap.height))); _local3++; }; cacheScale = _arg1; cacheLength = cacheFrames.length; } public function set image(_arg1:Bitmap):void{ bitmap = _arg1; hx = (bitmap.width / 2); hy = (bitmap.height / 2); } } }//package mLib.particles
Section 12
//ParticleInit (mLib.particles.ParticleInit) package mLib.particles { public class ParticleInit { public var value:Number;// = 0 public var rangeMin:Number;// = 0 public var rangeMax:Number;// = 0 public var isRandom:Boolean;// = false public function ParticleInit():void{ } public function getValue():Number{ if (isRandom){ return (((Math.random() * (rangeMax - rangeMin)) + rangeMin)); }; return (value); } } }//package mLib.particles
Section 13
//ParticleLayer (mLib.particles.ParticleLayer) package mLib.particles { import flash.display.*; import mLib.graphics.*; import mLib.structures.*; public class ParticleLayer extends mLayer { public function ParticleLayer(_arg1:Number, _arg2:Number):void{ super(_arg1, _arg2); } public function update(_arg1:Number=0.02):void{ var _local3:ParticleGroup; var _local2:ListNode = ObjList.head; while (_local2 != null) { _local3 = _local2.data; _local3.update(_arg1); _local2 = _local2.next; }; } public function removeGroup(_arg1:ParticleGroup):void{ ObjList.removeData(_arg1); } public function addGroup(_arg1:ParticleGroup):void{ ObjList.add(_arg1); } override public function render(_arg1:BitmapData, _arg2:Camera, _arg3:Number=0.02):void{ var _local4:ListNode; var _local5:ParticleGroup; data.lock(); if (ObjList.head){ _local4 = ObjList.head; while (_local4 != null) { _local5 = _local4.data; _local5.render(data, _arg2); _local4 = _local4.next; }; drawRect = data.getColorBoundsRect(4278190080, 0, false); data.threshold(data, drawRect, drawRect.topLeft, ">=", 3707764736, 4294967295, 4278190080, true); _arg1.copyPixels(data, drawRect, drawRect.topLeft, null, null, true); }; data.unlock(); } } }//package mLib.particles
Section 14
//LinkedList (mLib.structures.LinkedList) package mLib.structures { public class LinkedList { public var head:ListNode; public var tail:ListNode; public function LinkedList():void{ } public function add(_arg1):void{ var _local2:ListNode = new ListNode(_arg1, head); if (head != null){ head.prev = _local2; } else { tail = _local2; }; head = _local2; } public function removeNode(_arg1:ListNode):void{ if (_arg1.next != null){ _arg1.next.prev = _arg1.prev; }; if (_arg1.prev != null){ _arg1.prev.next = _arg1.next; }; if (head == _arg1){ head = head.next; }; if (tail == _arg1){ tail = tail.prev; }; } public function addToTail(_arg1):void{ var _local2:ListNode = new ListNode(_arg1, null); if (tail != null){ tail.next = _local2; _local2.prev = tail; } else { head = _local2; }; tail = _local2; } public function removeData(_arg1):void{ var _local2:ListNode = head; while (_local2 != null) { if (_local2.data == _arg1){ removeNode(_local2); return; }; _local2 = _local2.next; }; } } }//package mLib.structures
Section 15
//ListNode (mLib.structures.ListNode) package mLib.structures { public class ListNode { public var prev:ListNode; public var next:ListNode; public var data; public function ListNode(_arg1, _arg2:ListNode):void{ data = _arg1; next = _arg2; } } }//package mLib.structures
Section 16
//GameTimer (mLib.utils.GameTimer) package mLib.utils { import flash.utils.*; public class GameTimer { private var _lastTime:Number; private var _thisTime:Number; public var step:Number; public function GameTimer():void{ _lastTime = getTimer(); } public function run():void{ _thisTime = getTimer(); step = ((_thisTime - _lastTime) / 1000); _lastTime = _thisTime; } } }//package mLib.utils
Section 17
//mFramerate (mLib.utils.mFramerate) package mLib.utils { import flash.display.*; import flash.text.*; import flash.utils.*; public class mFramerate { private var _output:TextField; private var _lastTime:Number; private var _elapsedTime:Number; private var _framerate:int; private var _thisTime:Number; public function mFramerate(_arg1:DisplayObject):void{ _output = new TextField(); _output.selectable = false; _output.textColor = 0xFF0000; _arg1.stage.addChild(_output); _lastTime = getTimer(); } public function update():void{ _thisTime = getTimer(); _elapsedTime = ((_thisTime - _lastTime) / 1000); _framerate = int((1 / _elapsedTime)); _output.text = _framerate.toString(); _lastTime = _thisTime; } public function remove(_arg1:DisplayObject):void{ _arg1.stage.removeChild(_output); } public function get framerate():Number{ return (_framerate); } } }//package mLib.utils
Section 18
//SiteLock (mLib.utils.SiteLock) package mLib.utils { public class SiteLock { public function SiteLock():void{ } public static function blackListFromSites(_arg1:String, _arg2:Array):Boolean{ var _local4:String; var _local5:int; var _local6:int; var _local7:String; var _local3:int = _arg2.length; while (_local3 >= 0) { _local4 = _arg2[(_local3 - 1)]; _local5 = (_arg1.indexOf("://") + 3); _local6 = _arg1.indexOf("/", _local5); _local7 = _arg1.substring(_local5, _local6); if ((((((_local7 == _local4)) || ((_local7 == ("www." + _local4))))) && (_local7))){ return (true); }; _local3--; }; return (false); } public static function lockToSites(_arg1:String, _arg2:Array):Boolean{ var _local4:String; var _local5:int; var _local6:int; var _local7:String; var _local3:int = _arg2.length; if (_local3 == 0){ return (false); }; while (_local3 >= 0) { _local4 = _arg2[(_local3 - 1)]; _local5 = (_arg1.indexOf("://") + 3); _local6 = _arg1.indexOf("/", _local5); _local7 = _arg1.substring(_local5, _local6); if ((((((_local7 == _local4)) || ((_local7 == ("www." + _local4))))) || (!(_local7)))){ return (false); }; _local3--; }; return (true); } } }//package mLib.utils
Section 19
//VariableOutput (mLib.utils.VariableOutput) package mLib.utils { import flash.display.*; import flash.text.*; public class VariableOutput { private var output:TextField; public var label:String;// = "" public function VariableOutput(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:String=""):void{ output = new TextField(); output.selectable = false; output.textColor = 0xFFFFFF; output.x = _arg2; output.y = _arg3; label = _arg4; _arg1.stage.addChild(output); } public function update(_arg1):void{ output.text = ((label + ": ") + _arg1.toString()); } public function remove(_arg1:DisplayObject):void{ _arg1.stage.removeChild(output); } public function set textFormat(_arg1:TextFormat):void{ output.defaultTextFormat = _arg1; output.embedFonts = true; } } }//package mLib.utils
Section 20
//MochiAd (mochi.as3.MochiAd) package mochi.as3 { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiAd { public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showClickAwayAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {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; var ad_timeout:Number = 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(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = 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); }; var sendHostProgress:Boolean; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; 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 = _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 clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {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; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = 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(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = 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{ if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Number = (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 = 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 _local4:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; 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 _local4:String; var _local5:Array; var _local6:Number; var _local7:Array; var _local3:Object = {}; 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 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); }; var idx:Number = 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 clip:Object; 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; var DEFAULTS:Object = {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 (!(clip is DisplayObject)){ trace("Warning: Object passed as container clip not a descendant of the DisplayObject type"); return (null); }; if (MovieClip(clip).stage == null){ trace("Warning: Container clip for ad is not attached to the stage"); return (null); }; 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.")); }; var depth:Number = options.depth; delete options.depth; var mc:MovieClip = createEmptyMovieClip(clip, "_mochiad", depth); var wh:Array = 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"); }; var lv:URLVariables = 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"); }); if (!options.skip){ 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 = _arg2.split("."); var _local5:Number = 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 = 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 _local6:Array; var _local3:Object = _arg2.getBounds(_arg2.root); var _local4:Number = 0; var _local5:Number = 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 = _arg2.split("."); var _local4:Number = 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 = _arg2.split("."); var _local5:Number = 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 clip:Object; var mc:MovieClip; var chk:MovieClip; var complete:Boolean; var unloaded:Boolean; var sendHostProgress:Boolean; var fn:Function; var r:MovieClip; var options = _arg1; var DEFAULTS:Object = {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{ }, progress_override:function (_arg1:Object):Number{ return (NaN); }, bar_offset:0}; 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; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; if (options.skip){ ad_timeout = 0; }; delete options.ad_timeout; var fadeout_time:Number = 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); var fn:Function = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = 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); var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4); if (options.no_progress_bar){ bar.visible = false; delete options.no_progress_bar; } else { bar.x = (10 + options.bar_offset); bar.y = (h - 20); }; var bar_w:Number = ((w - bar.x) - 10); var bar_color:Number = options.color; delete options.color; var bar_background:Number = options.background; delete options.background; var bar_outline:Number = options.outline; delete options.outline; var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1); var backing:Object = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo(bar_w, 0); backing.lineTo(bar_w, 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2); var inside:Object = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo(bar_w, 0); inside.lineTo(bar_w, 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3); var outline:Object = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo(bar_w, 0); outline.lineTo(bar_w, 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 = (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; var progress:Number = Math.min(1, options.progress_override(clip)); var f:Function = function (_arg1:Event):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); complete = true; if (unloaded){ MochiAd.unload(clip); }; }; if (!isNaN(progress)){ complete = (progress == 1); } else { if (clip.loaderInfo.bytesLoaded == clip.loaderInfo.bytesTotal){ complete = true; } else { if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; } else { clip.loaderInfo.addEventListener(Event.COMPLETE, f); }; } else { clip.loaderInfo.addEventListener(Event.COMPLETE, f); }; }; }; 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 = 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 _local12:Number; if (((!(this.parent)) || (!(this.parent.parent)))){ delete this["onEnterFrame"]; return; }; var _local1:Object = this.parent.parent.root; var _local2:Object = this.parent._mochiad_ctr; var _local3:Number = (getTimer() - this.started); var _local4:Boolean; var _local5:Number = _local1.loaderInfo.bytesTotal; var _local6:Number = _local1.loaderInfo.bytesLoaded; var _local7:Number = Math.min(1, options.progress_override(_local1)); if (_local7 == 1){ complete = true; }; if (complete){ _local6 = Math.max(1, _local6); _local5 = _local6; }; var _local8:Number = ((100 * _local6) / _local5); if (!isNaN(_local7)){ _local8 = (100 * _local7); }; var _local9:Number = ((100 * _local3) / chk.ad_msec); var _local10:Object = this._mochiad_bar._inside; var _local11:Number = Math.min(100, Math.min(((_local8) || (0)), _local9)); _local11 = Math.max(this.last_pcnt, _local11); this.last_pcnt = _local11; _local10.scaleX = (_local11 * 0.01); options.ad_progress(_local11); if (sendHostProgress){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local8}); if (_local8 >= 100){ sendHostProgress = false; }; }; if (!chk.showing){ _local12 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local12 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if ((((_local3 > chk.ad_timeout)) && ((_local8 == 100)))){ options.ad_failed(); _local4 = true; }; }; }; if (_local3 > chk.ad_msec){ _local4 = true; }; if (((complete) && (_local4))){ if (unloaded){ MochiAd.unload(_local1); } else { 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 mc = _arg1; var f:Function = 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 21
//MochiCoins (mochi.as3.MochiCoins) package mochi.as3 { public class MochiCoins { public static const STORE_HIDE:String = "StoreHide"; public static const NO_USER:String = "NoUser"; public static const IO_ERROR:String = "IOError"; public static const ITEM_NEW:String = "ItemNew"; public static const ITEM_OWNED:String = "ItemOwned"; public static const STORE_ITEMS:String = "StoreItems"; public static const ERROR:String = "Error"; public static const STORE_SHOW:String = "StoreShow"; public static var _inventory:MochiInventory; public static function triggerEvent(_arg1:String, _arg2:Object):void{ MochiSocial.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ MochiSocial.removeEventListener(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ MochiSocial.addEventListener(_arg1, _arg2); } public static function getStoreItems():void{ MochiServices.send("coins_getStoreItems"); } public static function get inventory():MochiInventory{ return (_inventory); } public static function showStore(_arg1:Object=null):void{ MochiServices.bringToTop(); MochiServices.send("coins_showStore", {options:_arg1}, null, null); } public static function showItem(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showItem call must pass an Object with an item key"); return; }; MochiServices.bringToTop(); MochiServices.send("coins_showItem", {options:_arg1}, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showVideo(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showVideo call must pass an Object with an item key"); return; }; MochiServices.bringToTop(); MochiServices.send("coins_showVideo", {options:_arg1}, null, null); } MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{ _inventory = new MochiInventory(); }); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{ _inventory = null; }); } }//package mochi.as3
Section 22
//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 reencode():void{ var _local1:uint = int((2147483647 * Math.random())); Fragment = (Fragment ^ (_local1 ^ Encoder)); Encoder = _local1; } public function set value(_arg1:Number):void{ setValue(_arg1); } public function toString():String{ var _local1:String = String.fromCharCode((Fragment ^ Encoder)); if (Sibling != null){ _local1 = (_local1 + Sibling.toString()); }; return (_local1); } public function setValue(_arg1:Number=0, _arg2:uint=0):void{ var _local3:String = _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 get value():Number{ return (Number(this.toString())); } public function addValue(_arg1:Number):void{ value = (value + _arg1); } } }//package mochi.as3
Section 23
//MochiEventDispatcher (mochi.as3.MochiEventDispatcher) package mochi.as3 { public class MochiEventDispatcher { private var eventTable:Object; public function MochiEventDispatcher():void{ eventTable = {}; } public function triggerEvent(_arg1:String, _arg2:Object):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ return; }; for (_local3 in eventTable[_arg1]) { var _local6 = eventTable[_arg1]; _local6[_local3](_arg2); }; } public function removeEventListener(_arg1:String, _arg2:Function):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ eventTable[_arg1] = []; return; }; for (_local3 in eventTable[_arg1]) { if (eventTable[_arg1][_local3] != _arg2){ } else { eventTable[_arg1].splice(Number(_local3), 1); }; }; } public function addEventListener(_arg1:String, _arg2:Function):void{ removeEventListener(_arg1, _arg2); eventTable[_arg1].push(_arg2); } } }//package mochi.as3
Section 24
//MochiEvents (mochi.as3.MochiEvents) package mochi.as3 { import flash.display.*; public class MochiEvents { public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL"; public static const FORMAT_LONG:String = "LongForm"; public static const ALIGN_BOTTOM:String = "ALIGN_B"; public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived"; public static const FORMAT_SHORT:String = "ShortForm"; public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR"; public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR"; public static const ALIGN_TOP:String = "ALIGN_T"; public static const ALIGN_LEFT:String = "ALIGN_L"; public static const ALIGN_RIGHT:String = "ALIGN_R"; public static const ALIGN_TOP_LEFT:String = "ALIGN_TL"; public static const ALIGN_CENTER:String = "ALIGN_C"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); private static var gameStart:Number; private static var levelStart:Number; public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function startSession(_arg1:String):void{ MochiServices.send("events_beginSession", {achievementID:_arg1}, null, null); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function setNotifications(_arg1:MovieClip, _arg2:Object):void{ var _local4:Object; var _local3:Object = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; _local3.clip = _arg1; MochiServices.send("events_setNotifications", _local3, null, null); } public static function endGame():void{ var _local1:Number = (new Date().time - gameStart); trigger("end_game", {time:_local1}); } public static function startGame():void{ gameStart = new Date().time; trigger("start_game"); } public static function trigger(_arg1:String, _arg2:Object=null):void{ if (_arg2 == null){ _arg2 = {}; } else { if (_arg2["kind"] != undefined){ trace("WARNING: optional arguments package contains key 'id', it will be overwritten"); _arg2["kind"] = _arg1; }; }; MochiServices.send("events_triggerEvent", {eventObject:_arg2}, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function startLevel():void{ levelStart = new Date().time; trigger("start_level"); } public static function endLevel():void{ var _local1:Number = (new Date().time - levelStart); trigger("end_level", {time:_local1}); } } }//package mochi.as3
Section 25
//MochiInventory (mochi.as3.MochiInventory) package mochi.as3 { import flash.events.*; import flash.utils.*; public dynamic class MochiInventory extends Proxy { private var _timer:Timer; private var _names:Array; private var _syncID:Number; private var _consumableProperties:Object; private var _storeSync:Object; private var _outstandingID:Number; private var _syncPending:Boolean; public static const READY:String = "InvReady"; public static const ERROR:String = "Error"; public static const IO_ERROR:String = "IoError"; private static const KEY_SALT:String = " syncMaint"; public static const WRITTEN:String = "InvWritten"; public static const NOT_READY:String = "InvNotReady"; public static const VALUE_ERROR:String = "InvValueError"; private static const CONSUMER_KEY:String = "MochiConsumables"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public function MochiInventory():void{ MochiCoins.addEventListener(MochiCoins.ITEM_OWNED, itemOwned); MochiCoins.addEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.addEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, loggedOut); _storeSync = new Object(); _syncPending = false; _outstandingID = 0; _syncID = 0; _timer = new Timer(1000); _timer.addEventListener(TimerEvent.TIMER, sync); _timer.start(); if (MochiSocial.loggedIn){ loggedIn(); } else { loggedOut(); }; } private function newItems(_arg1:Object):void{ if (!this[(_arg1.id + KEY_SALT)]){ this[(_arg1.id + KEY_SALT)] = 0; }; if (!this[_arg1.id]){ this[_arg1.id] = 0; }; this[(_arg1.id + KEY_SALT)] = (this[(_arg1.id + KEY_SALT)] + _arg1.count); this[_arg1.id] = (this[_arg1.id] + _arg1.count); if (_arg1.privateProperties.consumable){ if (!this[_arg1.privateProperties.tag]){ this[_arg1.privateProperties.tag] = 0; }; this[_arg1.privateProperties.tag] = (this[_arg1.privateProperties.tag] + (_arg1.privateProperties.inc * _arg1.count)); }; } public function release():void{ MochiCoins.removeEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.removeEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.removeEventListener(MochiSocial.LOGGED_OUT, loggedOut); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (-1); }; if (_consumableProperties[_arg1]){ return (MochiDigits(_consumableProperties[_arg1]).value); }; return (undefined); } private function loggedIn(_arg1:Object=null):void{ MochiUserData.get(CONSUMER_KEY, getConsumableBag); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(_arg1):Boolean{ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (false); }; if (_consumableProperties[_arg1] == undefined){ return (false); }; return (true); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(_arg1:int):int{ return (((_arg1)>=_names.length) ? 0 : (_arg1 + 1)); } private function putConsumableBag(_arg1:MochiUserData):void{ _syncPending = false; if (_arg1.error){ triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error}); _outstandingID = -1; }; triggerEvent(WRITTEN, {}); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ var _local3:MochiDigits; if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return; }; if (!(_arg2 is Number)){ triggerEvent(ERROR, {type:VALUE_ERROR, error:"Invalid type", arg:_arg2}); return; }; if (_consumableProperties[_arg1]){ _local3 = MochiDigits(_consumableProperties[_arg1]); if (_local3.value == _arg2){ return; }; _local3.value = _arg2; } else { _names.push(_arg1); _consumableProperties[_arg1] = new MochiDigits(_arg2); }; _syncID++; } private function itemOwned(_arg1:Object):void{ _storeSync[_arg1.id] = {properties:_arg1.properties, count:_arg1.count}; } private function sync(_arg1:Event=null):void{ var _local3:String; if (((_syncPending) || ((_syncID == _outstandingID)))){ return; }; _outstandingID = _syncID; var _local2:Object = {}; for (_local3 in _consumableProperties) { _local2[_local3] = MochiDigits(_consumableProperties[_local3]).value; }; MochiUserData.put(CONSUMER_KEY, _local2, putConsumableBag); _syncPending = true; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(_arg1:int):String{ return (_names[(_arg1 - 1)]); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function deleteProperty(_arg1):Boolean{ if (!_consumableProperties[_arg1]){ return (false); }; _names.splice(_names.indexOf(_arg1), 1); delete _consumableProperties[_arg1]; return (true); } private function getConsumableBag(_arg1:MochiUserData):void{ var _local2:String; var _local3:Number; if (_arg1.error){ triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error}); return; }; _consumableProperties = {}; _names = new Array(); if (_arg1.data){ for (_local2 in _arg1.data) { _names.push(_local2); _consumableProperties[_local2] = new MochiDigits(_arg1.data[_local2]); }; }; for (_local2 in _storeSync) { _local3 = _storeSync[_local2].count; if (_consumableProperties[(_local2 + KEY_SALT)]){ _local3 = (_local3 - _consumableProperties[_local2]); }; if (_local3 == 0){ } else { newItems({id:_local2, count:_local3, properties:_storeSync[_local2].properties}); }; }; triggerEvent(READY, {}); } private function loggedOut(_arg1:Object=null):void{ _consumableProperties = null; } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } } }//package mochi.as3
Section 26
//MochiScores (mochi.as3.MochiScores) package mochi.as3 { import flash.display.*; import flash.text.*; public class MochiScores { private static var boardID:String; public static var onErrorHandler:Object; public static var onCloseHandler:Object; public static function showLeaderboard(_arg1:Object=null):void{ var n:Number; var options = _arg1; if (options != null){ delete options.clip; MochiServices.setContainer(); MochiServices.bringToTop(); if (options.name != null){ if ((options.name is TextField)){ if (options.name.text.length > 0){ options.name = options.name.text; }; }; }; if (options.score != null){ if ((options.score is TextField)){ if (options.score.text.length > 0){ options.score = options.score.text; }; } else { if ((options.score is MochiDigits)){ options.score = options.score.value; }; }; n = Number(options.score); if (isNaN(n)){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'")); } else { if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite")); } else { if (Math.floor(n) != n){ trace((("WARNING: Submitted score '" + options.score) + "' will be truncated")); }; options.score = n; }; }; }; if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.play(); } else { trace("Warning: Container is not a MovieClip, cannot call default onClose."); }; }; }; if (options.onError != null){ onErrorHandler = options.onError; } else { onErrorHandler = null; }; if (options.boardID == null){ if (MochiScores.boardID != null){ options.boardID = MochiScores.boardID; }; }; MochiServices.warnID(options.boardID, true); trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal"); MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose); } public static function closeLeaderboard():void{ MochiServices.send("scores_closeLeaderboard"); } public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2); } public static function requestList(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_requestList", null, _arg1, _arg2); } public static function scoresArrayToObjects(_arg1:Object):Object{ var _local3:Number; var _local4:Number; var _local5:Object; var _local6:Object; var _local7:String; var _local8:String; var _local2:Object = {}; for (_local7 in _arg1) { if (typeof(_arg1[_local7]) == "object"){ if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){ _local2[_local7] = []; _local5 = _arg1[_local7]; _local4 = 0; while (_local4 < _local5.rows.length) { _local6 = {}; _local3 = 0; while (_local3 < _local5.cols.length) { _local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3]; _local3++; }; _local2[_local7].push(_local6); _local4++; }; } else { _local2[_local7] = {}; for (_local8 in _arg1[_local7]) { _local2[_local7][_local8] = _arg1[_local7][_local8]; }; }; } else { _local2[_local7] = _arg1[_local7]; }; }; return (_local2); } public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{ _arg1 = Number(_arg1); if (isNaN(_arg1)){ trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is 'Not a Number'")); } else { if ((((_arg1 == Number.NEGATIVE_INFINITY)) || ((_arg1 == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is an infinite")); } else { if (Math.floor(_arg1) != _arg1){ trace((("WARNING: Submitted score '" + String(_arg1)) + "' will be truncated")); }; _arg1 = Number(_arg1); }; }; MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4); } public static function onClose(_arg1:Object=null):void{ if (((((_arg1) && ((_arg1.error == true)))) && (onErrorHandler))){ if (_arg1.errorCode == null){ _arg1.errorCode = "IOError"; }; onErrorHandler(_arg1.errorCode); MochiServices.doClose(); return; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(_arg1:String):void{ MochiServices.warnID(_arg1, true); MochiScores.boardID = _arg1; MochiServices.send("scores_setBoardID", {boardID:_arg1}); } } }//package mochi.as3
Section 27
//MochiServices (mochi.as3.MochiServices) package mochi.as3 { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiServices { private static var _container:Object; private static var _connected:Boolean = false; private static var _swfVersion:String; private static var _preserved:Object; public static var netupAttempted:Boolean = false; private static var _sendChannel:LocalConnection; public static var servicesSync:MochiSync = new MochiSync(); private static var _clip:MovieClip; private static var _id:String; private static var _services:String = "services.swf"; private static var _servURL:String = "http://www.mochiads.com/static/lib/services/"; public static var widget:Boolean = false; private static var _timer:Timer; private static var _sendChannelName:String; private static var _loader:Loader; private static var _connecting:Boolean = false; private static var _mochiLocalConnection:MovieClip; private static var _listenChannelName:String = "__ms_"; public static var onError:Object; public static var netup:Boolean = true; private static var _mochiLC:String = "MochiLC.swf"; public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function get connected():Boolean{ return (_connected); } private static function onReceive(_arg1:Object):void{ var methodName:String; var pkg = _arg1; var cb:String = pkg.callbackID; var cblst:Object = _clip._callbacks[cb]; if (!cblst){ return; }; var method:* = cblst.callbackMethod; methodName = ""; var obj:Object = 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 _clip._callbacks[cb]; } public static function get childClip():Object{ return (_clip); } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ trace(("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + _arg1)); 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); }; } private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{ var _local4:int; var _local14:Loader; var _local3:Array = [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]; var _local5:Array = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3]; var _local6:Array = [0, 64, 0, 0, 0]; var _local7:MovieClip = new MovieClip(); var _local8:LocalConnection = new LocalConnection(); var _local9:String = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time)); _local8 = new LocalConnection(); _local7.lc = _local8; _local7.click = _arg2; _local8.client = _local7; _local8.connect(_local9); var _local10:ByteArray = new ByteArray(); var _local11:ByteArray = new ByteArray(); _local11.endian = Endian.LITTLE_ENDIAN; _local11.writeShort(1); _local11.writeUTFBytes(((_arg1 + " ") + _local9)); _local11.writeByte(0); var _local12:uint = ((_local3.length + _local11.length) + 4); var _local13:uint = (_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 avm1Click:DisplayObject; 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; var vars:Object = 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); var s = "?"; var i:Number = 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{ if (avm1Click){ btn.removeChild(avm1Click); }; avm1Click = clickMovie(_arg1, onClick); var _local2:Rectangle = 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 warnID(_arg1:String, _arg2:Boolean):void{ _arg1 = _arg1.toLowerCase(); if (_arg1.length != 16){ trace((("WARNING: " + (_arg2) ? "board" : "game") + " ID is not the appropriate length")); return; } else { if (_arg1 == "1e113c7239048b3f"){ if (_arg2){ trace("WARNING: Using testing board ID"); } else { trace("WARNING: Using testing board ID as game ID"); }; return; } else { if (_arg1 == "84993a1de4031cd8"){ if (_arg2){ trace("WARNING: Using testing game ID as board ID"); } else { trace("WARNING: Using testing game ID"); }; return; }; }; }; var _local3:Number = 0; while (_local3 < _arg1.length) { switch (_arg1.charAt(_local3)){ case "0": case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": case "a": case "b": case "c": case "d": case "e": case "f": break; default: trace(("WARNING: Board ID contains illegal characters: " + _arg1)); return; }; _local3++; }; } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); try { _mochiLocalConnection.close(); } catch(error:Error) { }; }; if (_timer != null){ try { _timer.stop(); } catch(error:Error) { }; }; } public static function allowDomains(_arg1:String):String{ var _local2:String; if (Security.sandboxType != "application"){ Security.allowDomain("*"); Security.allowInsecureDomain("*"); }; if (_arg1.indexOf("http://") != -1){ _local2 = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType != "application"){ Security.allowDomain(_local2); Security.allowInsecureDomain(_local2); }; }; return (_local2); } public static function getVersion():String{ return ("3.7 as3"); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (((_clip) && (_clip._queue))){ 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 get id():String{ return (_id); } private static function onEvent(_arg1:Object):void{ var _local2:String = _arg1.target; var _local3:String = _arg1.event; switch (_local2){ case "events": MochiEvents.triggerEvent(_arg1.event, _arg1.args); break; case "coins": MochiCoins.triggerEvent(_arg1.event, _arg1.args); break; case "sync": servicesSync.triggerEvent(_arg1.event, _arg1.args); break; }; } private static function urlOptions(_arg1:Object):Object{ var _local3:String; var _local4:Array; var _local5:Number; var _local6:Array; var _local2:Object = {}; if (_arg1.stage){ _local3 = _arg1.stage.loaderInfo.parameters.mochiad_options; } else { _local3 = _arg1.loaderInfo.parameters.mochiad_options; }; if (_local3){ _local4 = _local3.split("&"); _local5 = 0; while (_local5 < _local4.length) { _local6 = _local4[_local5].split("="); _local2[unescape(_local6[0])] = unescape(_local6[1]); _local5++; }; }; return (_local2); } public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{ if (_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 loadError(_arg1:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); } private static function initComChannels():void{ if (!_connected){ trace("[SERVICES_API] connected!"); _connecting = false; _connected = true; _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _clip.onReceive = onReceive; _clip.onEvent = onEvent; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; while (_clip._queue.length > 0) { _mochiLocalConnection.send(_sendChannelName, "onReceive", _clip._queue.shift()); }; }; } private static function loadLCBridge(_arg1:Object):void{ var loader:Loader; var clip = _arg1; loader = new Loader(); var mochiLCURL:String = (_servURL + _mochiLC); var req:URLRequest = new URLRequest(mochiLCURL); var complete:Function = function (_arg1:Object):void{ _mochiLocalConnection = MovieClip(loader.content); listen(); }; loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); loader.load(req); clip.addChild(loader); } private static function listen():void{ _mochiLocalConnection.connect(_listenChannelName); _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; trace("Waiting for MochiAds services to connect..."); } public static function get clip():Object{ return (_container); } public static function set comChannelName(_arg1:String):void{ if (_arg1 != null){ if (_arg1.length > 3){ _sendChannelName = (_arg1 + "_fromgame"); initComChannels(); }; }; } private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{ var _local3:String = ("_mochiservices_com_" + _arg1); if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (urlOptions(_arg2).servURL){ _servURL = urlOptions(_arg2).servURL; }; var _local4:String = (_servURL + _services); if (urlOptions(_arg2).servicesURL){ _local4 = urlOptions(_arg2).servicesURL; }; _listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999)))); MochiServices.allowDomains(_local4); _clip = createEmptyMovieClip(_arg2, _local3, 10336, false); loadLCBridge(_clip); _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); var _local5:URLRequest = new URLRequest(_local4); var _local6:URLVariables = new URLVariables(); _local6.listenLC = _listenChannelName; _local6.mochiad_options = _arg2.loaderInfo.parameters.mochiad_options; _local6.api_version = getVersion(); if (widget){ _local6.widget = true; }; _local5.data = _local6; _loader.load(_local5); _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 connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{ var id = _arg1; var clip = _arg2; var onError = _arg3; warnID(id, false); if ((clip is DisplayObject)){ if (clip.stage == null){ trace("MochiServices connect requires the containing clip be attached to the stage"); }; if (((!(_connected)) && ((_clip == null)))){ trace("MochiServices Connecting..."); _connecting = true; init(id, clip); }; } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (_arg1:String):void{ trace(_arg1); }; }; }; } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Boolean=true):MovieClip{ var parent = _arg1; var name = _arg2; var depth = _arg3; var doAdd = _arg4; var mc:MovieClip = 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 bringToTop(_arg1:Event=null):void{ var e = _arg1; if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){ try { if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; } catch(errorObject:Error) { trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; } public static function connectWait(_arg1:TimerEvent):void{ if (!_connected){ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load. (timeout)"); MochiServices.disconnect(); MochiServices.onError("IOError"); }; } } }//package mochi.as3
Section 28
//MochiSocial (mochi.as3.MochiSocial) package mochi.as3 { public class MochiSocial { public static const LOGGED_IN:String = "LoggedIn"; public static const PROFILE_HIDE:String = "ProfileHide"; public static const NO_USER:String = "NoUser"; public static const PROPERTIES_SIZE:String = "PropertiesSize"; public static const IO_ERROR:String = "IOError"; public static const PROPERTIES_SAVED:String = "PropertySaved"; public static const WIDGET_LOADED:String = "WidgetLoaded"; public static const USER_INFO:String = "UserInfo"; public static const ERROR:String = "Error"; public static const LOGIN_SHOW:String = "LoginShow"; public static const LOGGED_OUT:String = "LoggedOut"; public static const PROFILE_SHOW:String = "ProfileShow"; public static const LOGIN_SHOWN:String = "LoginShown"; public static const LOGIN_HIDE:String = "LoginHide"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static var _user_info:Object = null; public static function getVersion():String{ return (MochiServices.getVersion()); } public static function saveUserProperties(_arg1:Object):void{ MochiServices.send("coins_saveUserProperties", _arg1); } public static function get loggedIn():Boolean{ return (!((_user_info == null))); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function getUserInfo():void{ MochiServices.send("coins_getUserInfo"); } public static function showLoginWidget(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showLoginWidget", {options:_arg1}); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function requestLogin():void{ MochiServices.send("coins_requestLogin"); } public static function getAPIURL():String{ if (!_user_info){ return (null); }; return (_user_info.api_url); } public static function hideLoginWidget():void{ MochiServices.send("coins_hideLoginWidget"); } public static function getAPIToken():String{ if (!_user_info){ return (null); }; return (_user_info.api_token); } MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{ _user_info = _arg1; }); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{ _user_info = null; }); } }//package mochi.as3
Section 29
//MochiSync (mochi.as3.MochiSync) package mochi.as3 { import flash.utils.*; public dynamic class MochiSync extends Proxy { private var _syncContainer:Object; public static var SYNC_PROPERTY:String = "UpdateProperty"; public static var SYNC_REQUEST:String = "SyncRequest"; public function MochiSync():void{ _syncContainer = {}; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ if (_syncContainer[_arg1] == _arg2){ return; }; var _local3:String = _arg1.toString(); _syncContainer[_local3] = _arg2; MochiServices.send("sync_propUpdate", {name:_local3, value:_arg2}); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ return (_syncContainer[_arg1]); } public function triggerEvent(_arg1:String, _arg2:Object):void{ switch (_arg1){ case SYNC_REQUEST: MochiServices.send("sync_syncronize", _syncContainer); break; case SYNC_PROPERTY: _syncContainer[_arg2.name] = _arg2.value; break; }; } } }//package mochi.as3
Section 30
//MochiUserData (mochi.as3.MochiUserData) package mochi.as3 { import flash.events.*; import flash.utils.*; import flash.net.*; public class MochiUserData extends EventDispatcher { public var callback:Function;// = null public var operation:String;// = null public var error:Event;// = null public var data;// = null public var _loader:URLLoader; public var key:String;// = null public function MochiUserData(_arg1:String="", _arg2:Function=null){ this.key = _arg1; this.callback = _arg2; } public function serialize(_arg1):ByteArray{ var _local2:ByteArray = new ByteArray(); _local2.objectEncoding = ObjectEncoding.AMF3; _local2.writeObject(_arg1); _local2.compress(); return (_local2); } public function errorHandler(_arg1:IOErrorEvent):void{ data = null; error = _arg1; if (callback != null){ performCallback(); } else { dispatchEvent(_arg1); }; close(); } public function putEvent(_arg1):void{ request("put", serialize(_arg1)); } public function deserialize(_arg1:ByteArray){ _arg1.objectEncoding = ObjectEncoding.AMF3; _arg1.uncompress(); return (_arg1.readObject()); } public function securityErrorHandler(_arg1:SecurityErrorEvent):void{ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + _arg1.toString()))); } public function getEvent():void{ request("get", serialize(null)); } override public function toString():String{ return ((((((((("[MochiUserData operation=" + operation) + " key=\"") + key) + "\" data=") + data) + " error=\"") + error) + "\"]")); } public function performCallback():void{ try { callback(this); } catch(e:Error) { trace(("[MochiUserData] exception during callback: " + e)); }; } public function request(_arg1:String, _arg2:ByteArray):void{ var _operation = _arg1; var _data = _arg2; operation = _operation; var api_url:String = MochiSocial.getAPIURL(); var api_token:String = MochiSocial.getAPIToken(); if ((((api_url == null)) || ((api_token == null)))){ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, "not logged in")); return; }; _loader = new URLLoader(); var args:URLVariables = new URLVariables(); args.op = _operation; args.key = key; var req:URLRequest = new URLRequest((((MochiSocial.getAPIURL() + "/") + "MochiUserData?") + args.toString())); req.method = URLRequestMethod.POST; req.contentType = "application/x-mochi-userdata"; req.requestHeaders = [new URLRequestHeader("x-mochi-services-version", MochiServices.getVersion()), new URLRequestHeader("x-mochi-api-token", api_token)]; req.data = _data; _loader.dataFormat = URLLoaderDataFormat.BINARY; _loader.addEventListener(Event.COMPLETE, completeHandler); _loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); try { _loader.load(req); } catch(e:SecurityError) { errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + e.toString()))); }; } public function completeHandler(_arg1:Event):void{ var event = _arg1; try { if (_loader.data.length){ data = deserialize(_loader.data); } else { data = null; }; } catch(e:Error) { errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("deserialize error: " + e.toString()))); return; }; if (callback != null){ performCallback(); } else { dispatchEvent(event); }; close(); } public function close():void{ if (_loader){ _loader.removeEventListener(Event.COMPLETE, completeHandler); _loader.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); _loader.close(); _loader = null; }; error = null; callback = null; } public static function get(_arg1:String, _arg2:Function):void{ var _local3:MochiUserData = new MochiUserData(_arg1, _arg2); _local3.getEvent(); } public static function put(_arg1:String, _arg2, _arg3:Function):void{ var _local4:MochiUserData = new MochiUserData(_arg1, _arg3); _local4.putEvent(_arg2); } } }//package mochi.as3
Section 31
//BitmapAsset (mx.core.BitmapAsset) package mx.core { import flash.display.*; public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject { mx_internal static const VERSION:String = "3.2.0.3958"; public function BitmapAsset(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } public function get measuredWidth():Number{ if (bitmapData){ return (bitmapData.width); }; return (0); } public function get measuredHeight():Number{ if (bitmapData){ return (bitmapData.height); }; return (0); } public function setActualSize(_arg1:Number, _arg2:Number):void{ width = _arg1; height = _arg2; } public function move(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } } }//package mx.core
Section 32
//FlexBitmap (mx.core.FlexBitmap) package mx.core { import flash.display.*; import mx.utils.*; public class FlexBitmap extends Bitmap { mx_internal static const VERSION:String = "3.2.0.3958"; public function FlexBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ var bitmapData = _arg1; var pixelSnapping = _arg2; var smoothing = _arg3; super(bitmapData, pixelSnapping, smoothing); try { name = NameUtil.createUniqueName(this); } catch(e:Error) { }; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 33
//FontAsset (mx.core.FontAsset) package mx.core { import flash.text.*; public class FontAsset extends Font implements IFlexAsset { mx_internal static const VERSION:String = "3.2.0.3958"; } }//package mx.core
Section 34
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 35
//IFlexDisplayObject (mx.core.IFlexDisplayObject) package mx.core { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.accessibility.*; public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher { function get visible():Boolean; function get rotation():Number; function localToGlobal(_arg1:Point):Point; function get name():String; function set width(_arg1:Number):void; function get measuredHeight():Number; function get blendMode():String; function get scale9Grid():Rectangle; function set name(_arg1:String):void; function set scaleX(_arg1:Number):void; function set scaleY(_arg1:Number):void; function get measuredWidth():Number; function get accessibilityProperties():AccessibilityProperties; function set scrollRect(_arg1:Rectangle):void; function get cacheAsBitmap():Boolean; function globalToLocal(_arg1:Point):Point; function get height():Number; function set blendMode(_arg1:String):void; function get parent():DisplayObjectContainer; function getBounds(_arg1:DisplayObject):Rectangle; function get opaqueBackground():Object; function set scale9Grid(_arg1:Rectangle):void; function setActualSize(_arg1:Number, _arg2:Number):void; function set alpha(_arg1:Number):void; function set accessibilityProperties(_arg1:AccessibilityProperties):void; function get width():Number; function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean; function set cacheAsBitmap(_arg1:Boolean):void; function get scaleX():Number; function get scaleY():Number; function get scrollRect():Rectangle; function get mouseX():Number; function get mouseY():Number; function set height(_arg1:Number):void; function set mask(_arg1:DisplayObject):void; function getRect(_arg1:DisplayObject):Rectangle; function get alpha():Number; function set transform(_arg1:Transform):void; function move(_arg1:Number, _arg2:Number):void; function get loaderInfo():LoaderInfo; function get root():DisplayObject; function hitTestObject(_arg1:DisplayObject):Boolean; function set opaqueBackground(_arg1:Object):void; function set visible(_arg1:Boolean):void; function get mask():DisplayObject; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function get transform():Transform; function set filters(_arg1:Array):void; function get x():Number; function get y():Number; function get filters():Array; function set rotation(_arg1:Number):void; function get stage():Stage; } }//package mx.core
Section 36
//IRepeaterClient (mx.core.IRepeaterClient) package mx.core { public interface IRepeaterClient { function get instanceIndices():Array; function set instanceIndices(_arg1:Array):void; function get isDocument():Boolean; function set repeaters(_arg1:Array):void; function initializeRepeaterArrays(_arg1:IRepeaterClient):void; function get repeaters():Array; function set repeaterIndices(_arg1:Array):void; function get repeaterIndices():Array; } }//package mx.core
Section 37
//mx_internal (mx.core.mx_internal) package mx.core { public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal"; }//package mx.core
Section 38
//SoundAsset (mx.core.SoundAsset) package mx.core { import flash.media.*; public class SoundAsset extends Sound implements IFlexAsset { mx_internal static const VERSION:String = "3.2.0.3958"; } }//package mx.core
Section 39
//NameUtil (mx.utils.NameUtil) package mx.utils { import flash.display.*; import flash.utils.*; import mx.core.*; public class NameUtil { mx_internal static const VERSION:String = "3.2.0.3958"; private static var counter:int = 0; public static function displayObjectToString(_arg1:DisplayObject):String{ var result:String; var o:DisplayObject; var s:String; var indices:Array; var displayObject = _arg1; try { o = displayObject; while (o != null) { if (((((o.parent) && (o.stage))) && ((o.parent == o.stage)))){ break; }; s = o.name; if ((o is IRepeaterClient)){ indices = IRepeaterClient(o).instanceIndices; if (indices){ s = (s + (("[" + indices.join("][")) + "]")); }; }; result = ((result == null)) ? s : ((s + ".") + result); o = o.parent; }; } catch(e:SecurityError) { }; return (result); } public static function createUniqueName(_arg1:Object):String{ if (!_arg1){ return (null); }; var _local2:String = getQualifiedClassName(_arg1); var _local3:int = _local2.indexOf("::"); if (_local3 != -1){ _local2 = _local2.substr((_local3 + 2)); }; var _local4:int = _local2.charCodeAt((_local2.length - 1)); if ((((_local4 >= 48)) && ((_local4 <= 57)))){ _local2 = (_local2 + "_"); }; return ((_local2 + counter++)); } } }//package mx.utils
Section 40
//CollisionManager (NYOS.CollisionManager) package NYOS { public class CollisionManager { public static var deflect:Number = 40; public function CollisionManager():void{ } public static function boundingCheck(_arg1:Entity, _arg2:Entity):Boolean{ if (_arg1.xmax < _arg2.xmin){ return (false); }; if (_arg1.xmin > _arg2.xmax){ return (false); }; if (_arg1.ymax < _arg2.ymin){ return (false); }; if (_arg1.ymin > _arg2.ymax){ return (false); }; return (true); } public static function checkAndResolveCollision(_arg1:Entity, _arg2:Entity, _arg3:Number):Boolean{ var _local8:Number; var _local9:Number; var _local10:Number; if ((((_arg1.collisionRadius <= 0)) || ((_arg2.collisionRadius <= 0)))){ return (false); }; var _local4:Number = (_arg1.x - _arg2.x); var _local5:Number = (_arg1.y - _arg2.y); var _local6:Number = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); var _local7:Number = (_arg1.collisionRadius + _arg2.collisionRadius); if (_local6 < _local7){ _local8 = (_local7 - _local6); _local9 = ((_local4 / _local6) * _local8); _local10 = ((_local5 / _local6) * _local8); _arg1.x = (_arg1.x + (_local9 / 2)); _arg1.y = (_arg1.y + (_local10 / 2)); _arg2.x = (_arg2.x - (_local9 / 2)); _arg2.y = (_arg2.y - (_local10 / 2)); _arg1.xv = (_arg1.xv + (_local9 * deflect)); _arg1.yv = (_arg1.yv + (_local10 * deflect)); _arg2.xv = (_arg2.xv - (_local9 * deflect)); _arg2.yv = (_arg2.yv - (_local10 * deflect)); if (_arg1.onHit != null){ _arg1.onHit(_arg1); }; if (_arg2.onHit != null){ _arg2.onHit(_arg2); }; return (true); //unresolved jump }; return (false); } public static function pointCheck(_arg1:Entity, _arg2:Number, _arg3:Number):Boolean{ if (_arg2 > _arg1.xmax){ return (false); }; if (_arg2 < _arg1.xmin){ return (false); }; if (_arg3 > _arg1.ymax){ return (false); }; if (_arg3 < _arg1.ymin){ return (false); }; return (true); } public static function getDistance(_arg1:Entity, _arg2:Entity):Number{ var _local3:Number = (_arg2.x - _arg1.x); var _local4:Number = (_arg2.y - _arg1.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function applyDamage(_arg1:Entity, _arg2:Entity):void{ var _local3:Number = (_arg1.damage - (_arg1.damage * (_arg2.armor - _arg1.pierce))); var _local4:Number = (_arg2.damage - (_arg2.damage * (_arg1.armor - _arg2.pierce))); if (!_arg2.invincible){ if (_local3 >= 0){ _arg2.health = (_arg2.health - _local3); } else { _arg2.health--; }; }; if (!_arg1.invincible){ if (_local4 >= 0){ _arg1.health = (_arg1.health - _local4); } else { _arg1.health--; }; }; } } }//package NYOS
Section 41
//Entity (NYOS.Entity) package NYOS { import mLib.graphics.*; public class Entity { protected var _x:Number; protected var hx:Number; protected var hy:Number; public var yv:Number;// = 0 public var invincible:Boolean;// = false public var onHit:Function; public var isDead:Boolean;// = false public var decay:Number;// = 0 public var armor:Number;// = 0 public var sprite:StaticSprite; public var speed:Number;// = 0 public var pierce:Number;// = 0 public var type:int; public var onDeath:Function; protected var rot:Number;// = 0 public var health:Number;// = 1 public var collisionRadius:Number;// = 0 public var splash:Number;// = 0 public var damage:Number;// = 0 protected var _y:Number; public var xv:Number;// = 0 protected static const DEGREE_360:Number = 6.28318530717959; protected static const DEGREE_180:Number = 3.14159265358979; protected static const DEGREE_90:Number = 1.5707963267949; public function Entity(_arg1:Number, _arg2:Number, _arg3:StaticSprite, _arg4:SpriteLayer):void{ _x = _arg1; _y = _arg2; sprite = _arg3; sprite.x = _arg1; sprite.y = _arg2; _arg4.addSprite(sprite); hx = (sprite.width / 2); hy = (sprite.height / 2); } public function set y(_arg1:Number):void{ _y = _arg1; sprite.y = _arg1; } public function get rotation():Number{ return (rot); } public function set rotation(_arg1:Number):void{ rot = _arg1; sprite.rotation = (rot + DEGREE_90); } public function updateSpecific(_arg1:Number=1):void{ } public function updatePositionAndStatus(_arg1:Number):void{ x = (x + (xv * _arg1)); y = (y + (yv * _arg1)); xv = (xv - ((decay * xv) * _arg1)); yv = (yv - ((decay * yv) * _arg1)); rotation = Math.atan2(yv, xv); if (health <= 0){ isDead = true; if (onDeath != null){ onDeath(this); }; }; } public function get ymin():Number{ return ((y - hy)); } public function get ymax():Number{ return ((y + hy)); } public function get xmin():Number{ return ((x - hx)); } public function get xmax():Number{ return ((x + hx)); } public function set x(_arg1:Number):void{ _x = _arg1; sprite.x = _arg1; } public function get x():Number{ return (_x); } public function get y():Number{ return (_y); } } }//package NYOS
Section 42
//BasicBar (PERPETUALBLAZE.BasicBar) package PERPETUALBLAZE { import flash.display.*; public class BasicBar extends Sprite { public var color:Number; public var w:Number;// = 200 public var currentValue:Number;// = 30 public var maxValue:Number; public var h:Number;// = 20 public function BasicBar(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0xFFFFFF):void{ maxValue = _arg1; w = _arg2; h = _arg3; color = _arg4; } public function drawBar():void{ graphics.clear(); graphics.lineStyle(0, color); graphics.drawRect(0, 0, w, h); graphics.beginFill(color); var _local1:Number = ((currentValue / maxValue) * w); if (_local1 > 0){ graphics.drawRect(0, 0, _local1, h); }; graphics.endFill(); } } }//package PERPETUALBLAZE
Section 43
//BeamEnemy (PERPETUALBLAZE.BeamEnemy) package PERPETUALBLAZE { import mLib.graphics.*; import NYOS.*; public class BeamEnemy extends Enemy { private var firing:Boolean;// = false public var wasFiring:Boolean;// = false private var beamDamage:Number;// = 30 public function BeamEnemy(_arg1:Number, _arg2:Number, _arg3:StaticSprite, _arg4:SpriteLayer, _arg5:Entity):void{ super(_arg1, _arg2, _arg3, _arg4, _arg5); type = 1; health = 10; speed = 200; decay = 2; damage = 0; pierce = 0; armor = 0; collisionRadius = 14; fireRange = 200; cooldown = 1000; score = 300; } override public function updateSpecific(_arg1:Number=1):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; wasFiring = firing; if ((((cooldownTimer < cooldown)) && (!(firing)))){ cooldownTimer = (cooldownTimer + (1000 * _arg1)); }; if (cooldownTimer <= 0){ firing = false; }; var _local2:Number = (target.x - _x); _local3 = (target.y - _y); _local4 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); if (_local4 > (fireRange - 50)){ xv = (xv + (((_local2 / _local4) * speed) * _arg1)); yv = (yv + (((_local3 / _local4) * speed) * _arg1)); }; if (_local4 <= fireRange){ _local5 = -(_local3); _local6 = _local2; xv = (xv + (((_local5 / _local4) * speed) * _arg1)); yv = (yv + (((_local6 / _local4) * speed) * _arg1)); if ((((cooldownTimer >= cooldown)) || (firing))){ if (onFire != null){ onFire(this, target); }; if (!target.invincible){ target.health = (target.health - (beamDamage * _arg1)); }; cooldownTimer = (cooldownTimer - (1000 * _arg1)); firing = true; }; }; } } }//package PERPETUALBLAZE
Section 44
//Blaze (PERPETUALBLAZE.Blaze) package PERPETUALBLAZE { import mLib.graphics.*; import NYOS.*; public class Blaze extends Entity { public var percentHealth:Number;// = 1 public var healthDecay:Number;// = 20 private var direction:Number;// = -1 public function Blaze(_arg1:Number, _arg2:Number, _arg3:StaticSprite, _arg4:SpriteLayer):void{ super(_arg1, _arg2, _arg3, _arg4); type = 0; health = 2000; speed = 1400; decay = 3; damage = 5; pierce = 0; armor = 0; collisionRadius = 20; hx = 8; hy = 8; } override public function updateSpecific(_arg1:Number=1):void{ if (direction != -1){ xv = (xv + ((Math.cos(direction) * speed) * _arg1)); yv = (yv + ((Math.sin(direction) * speed) * _arg1)); direction = -1; }; if (healthDecay > 50){ healthDecay = 50; }; if (health > 5000){ health = 5000; }; percentHealth = (health / 5000); } public function accelerate(_arg1:Number):void{ direction = _arg1; } } }//package PERPETUALBLAZE
Section 45
//BrainlessEnemy (PERPETUALBLAZE.BrainlessEnemy) package PERPETUALBLAZE { import mLib.graphics.*; import NYOS.*; public class BrainlessEnemy extends Enemy { public var movingIn:Boolean;// = false public function BrainlessEnemy(_arg1:Number, _arg2:Number, _arg3:StaticSprite, _arg4:SpriteLayer, _arg5:Entity):void{ super(_arg1, _arg2, _arg3, _arg4, _arg5); type = 1; health = 5; speed = 400; decay = 2; damage = 0; pierce = 0; armor = 0; collisionRadius = 12; cooldown = 2000; score = 500; } override public function updateSpecific(_arg1:Number=1):void{ var _local2:Number; var _local3:Number; var _local4:Number; cooldownTimer = (cooldownTimer + (1000 * _arg1)); if (movingIn){ _local2 = (target.x - _x); _local3 = (target.y - _y); _local4 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); xv = (xv + (((_local2 / _local4) * speed) * _arg1)); yv = (yv + (((_local3 / _local4) * speed) * _arg1)); if (cooldownTimer > cooldown){ movingIn = false; damage = 0; invincible = false; cooldownTimer = 0; }; } else { if (cooldownTimer > cooldown){ movingIn = true; invincible = true; damage = 40; if (onFire != null){ onFire(this); }; cooldownTimer = 0; }; }; } } }//package PERPETUALBLAZE
Section 46
//Canister (PERPETUALBLAZE.Canister) package PERPETUALBLAZE { import mLib.graphics.*; import NYOS.*; public class Canister extends Entity { private var target:Blaze; public var onCollect:Function; public var healthDecay:Number;// = 1 private static const ATTRACT:Number = 0.002; public function Canister(_arg1:Number, _arg2:Number, _arg3:StaticSprite, _arg4:SpriteLayer, _arg5:Blaze):void{ super(_arg1, _arg2, _arg3, _arg4); target = _arg5; type = 2; health = 8; speed = 100; decay = 1.5; damage = 0; pierce = 0; armor = 0; collisionRadius = 0; var _local6:Number = ((Math.random() * Math.PI) * 2); xv = (((Math.cos(_local6) * Math.random()) * 300) - 150); yv = (((Math.sin(_local6) * Math.random()) * 300) - 150); } override public function updatePositionAndStatus(_arg1:Number):void{ x = (x + (xv * _arg1)); y = (y + (yv * _arg1)); xv = (xv - ((decay * xv) * _arg1)); yv = (yv - ((decay * yv) * _arg1)); if (health <= 0){ isDead = true; }; } override public function updateSpecific(_arg1:Number=1):void{ health = (health - (_arg1 * healthDecay)); xv = (xv + (((speed * ATTRACT) * (target.x - _x)) * _arg1)); yv = (yv + (((speed * ATTRACT) * (target.y - _y)) * _arg1)); if (((CollisionManager.boundingCheck(this, target)) && ((health < 7.5)))){ onCollect(this); isDead = true; }; } } }//package PERPETUALBLAZE
Section 47
//Embeds (PERPETUALBLAZE.Embeds) package PERPETUALBLAZE { import flash.display.*; import flash.media.*; public class Embeds { public var shotgunShipIMG:Bitmap; public var rapidPewSND:Sound; public var spawningSND:Sound; public var beginButtonDownIMG:Bitmap; public var orangeBoldParticleIMG:Bitmap; public var perpetualBlazeTitleIMG:Bitmap; public var menuButtonDownIMG:Bitmap; public var spawnPointSheet:Bitmap; public var scoresButtonDownIMG:Bitmap; public var shieldIMG:Bitmap; public var scoresButtonOverIMG:Bitmap; public var blazeIMG:Bitmap; public var sizeCanisterIMG:Bitmap; public var beginButtonOverIMG:Bitmap; public var beginButtonUpIMG:Bitmap; public var gravityCanisterIMG:Bitmap; public var esplodySND:Sound; public var enemyShotOrangeIMG:Bitmap; public var rapidFireShipIMG:Bitmap; public var menuButtonUpIMG:Bitmap; public var beamShipIMG:Bitmap; public var cyanParticleIMG:Bitmap; public var pwnedIMG:Bitmap; public var scoresButtonUpIMG:Bitmap; public var redBoldParticleIMG:Bitmap; public var yellowParticleIMG:Bitmap; public var beginButtonHitIMG:Bitmap; public var pBlazeThemeIntroSND:Sound; public var timeCanisterIMG:Bitmap; public var powerUpSND:Sound; public var enemyBoomSND:Sound; public var menuButtonOverIMG:Bitmap; public var brainlessShipIMG:Bitmap; public var suicideShipIMG:Bitmap; public var hitSND:Sound; public var marmphcoLOGO:Bitmap; public var goodieCollectSND:Sound; public var healthCanisterIMG:Bitmap; public var bombCanisterIMG:Bitmap; public var volcasionSND:Sound; public var musicChannel:SoundChannel; public var collectEsplodeIMG:Bitmap; public var alternateIMG:Bitmap; public var ifoIMG:Bitmap; public var pBlazeThemeLoopSND:Sound; public var pewSND:Sound; public var gameOverIMG:Bitmap; public var soundSettings:SoundTransform; private static const HIT_SND:Class = Embeds_HIT_SND; private static const CYAN_PARTICLE_IMG:Class = Embeds_CYAN_PARTICLE_IMG; private static const SCORES_BUTTON_OVER_IMG:Class = Embeds_SCORES_BUTTON_OVER_IMG; private static const THEME_LOOP_SND:Class = Embeds_THEME_LOOP_SND; private static const BLAZE_IMG:Class = Embeds_BLAZE_IMG; private static const SCORES_BUTTON_UP_IMG:Class = Embeds_SCORES_BUTTON_UP_IMG; private static const SPAWNING_SND:Class = Embeds_SPAWNING_SND; private static const ORANGE_BOLD_PARTICLE_IMG:Class = Embeds_ORANGE_BOLD_PARTICLE_IMG; private static const RED_BOLD_PARTICLE_IMG:Class = Embeds_RED_BOLD_PARTICLE_IMG; private static const VOLCASION_SND:Class = Embeds_VOLCASION_SND; private static const PERPETUAL_BLAZE_TITLE_IMG:Class = Embeds_PERPETUAL_BLAZE_TITLE_IMG; private static const ENEMY_SHOT_ORANGE_IMG:Class = Embeds_ENEMY_SHOT_ORANGE_IMG; private static const PEW_SND:Class = Embeds_PEW_SND; private static const RAPID_PEW_SND:Class = Embeds_RAPID_PEW_SND; private static const MENU_BUTTON_DOWN_IMG:Class = Embeds_MENU_BUTTON_DOWN_IMG; private static const BEAM_SHIP_IMG:Class = Embeds_BEAM_SHIP_IMG; private static const IFO_IMG:Class = Embeds_IFO_IMG; private static const MARMPHCO_LOGO:Class = Embeds_MARMPHCO_LOGO; private static const SUICIDE_SHIP_IMG:Class = Embeds_SUICIDE_SHIP_IMG; private static const GRAVITY_CANISTER_IMG:Class = Embeds_GRAVITY_CANISTER_IMG; private static const BEGIN_BUTTON_DOWN_IMG:Class = Embeds_BEGIN_BUTTON_DOWN_IMG; private static const ALTERNATE_IMG:Class = Embeds_ALTERNATE_IMG; private static const POWER_UP_SND:Class = Embeds_POWER_UP_SND; private static const ESPLODY_SND:Class = Embeds_ESPLODY_SND; private static const MENU_BUTTON_OVER_IMG:Class = Embeds_MENU_BUTTON_OVER_IMG; private static const BEGIN_BUTTON_HIT_IMG:Class = Embeds_BEGIN_BUTTON_HIT_IMG; private static const BOMB_CANISTER_IMG:Class = Embeds_BOMB_CANISTER_IMG; private static const SIZE_CANISTER_IMG:Class = Embeds_SIZE_CANISTER_IMG; private static const SHIELD_IMG:Class = Embeds_SHIELD_IMG; private static const HEALTH_CANISTER_IMG:Class = Embeds_HEALTH_CANISTER_IMG; private static const THEME_INTRO_SND:Class = Embeds_THEME_INTRO_SND; private static const SPAWN_POINT_SHEET:Class = Embeds_SPAWN_POINT_SHEET; private static const YELLOW_PARTICLE_IMG:Class = Embeds_YELLOW_PARTICLE_IMG; private static const SHOTGUN_SHIP_IMG:Class = Embeds_SHOTGUN_SHIP_IMG; private static const MENU_BUTTON_UP_IMG:Class = Embeds_MENU_BUTTON_UP_IMG; private static const COLLECT_ESPLODE_IMG:Class = Embeds_COLLECT_ESPLODE_IMG; private static const SCORES_BUTTON_DOWN_IMG:Class = Embeds_SCORES_BUTTON_DOWN_IMG; private static const GAME_OVER_IMG:Class = Embeds_GAME_OVER_IMG; private static const RAPID_FIRE_SHIP_IMG:Class = Embeds_RAPID_FIRE_SHIP_IMG; private static const PWNED_IMG:Class = Embeds_PWNED_IMG; private static const BEGIN_BUTTON_OVER_IMG:Class = Embeds_BEGIN_BUTTON_OVER_IMG; private static const BRAINLESS_SHIP_IMG:Class = Embeds_BRAINLESS_SHIP_IMG; private static const GOODIE_COLLECT_SND:Class = Embeds_GOODIE_COLLECT_SND; private static const BEGIN_BUTTON_UP_IMG:Class = Embeds_BEGIN_BUTTON_UP_IMG; private static const ENEMY_BOOM_SND:Class = Embeds_ENEMY_BOOM_SND; private static const TIME_CANISTER_IMG:Class = Embeds_TIME_CANISTER_IMG; public function Embeds():void{ marmphcoLOGO = new MARMPHCO_LOGO(); yellowParticleIMG = new YELLOW_PARTICLE_IMG(); cyanParticleIMG = new CYAN_PARTICLE_IMG(); redBoldParticleIMG = new RED_BOLD_PARTICLE_IMG(); orangeBoldParticleIMG = new ORANGE_BOLD_PARTICLE_IMG(); enemyShotOrangeIMG = new ENEMY_SHOT_ORANGE_IMG(); collectEsplodeIMG = new COLLECT_ESPLODE_IMG(); ifoIMG = new IFO_IMG(); rapidFireShipIMG = new RAPID_FIRE_SHIP_IMG(); beamShipIMG = new BEAM_SHIP_IMG(); shotgunShipIMG = new SHOTGUN_SHIP_IMG(); suicideShipIMG = new SUICIDE_SHIP_IMG(); brainlessShipIMG = new BRAINLESS_SHIP_IMG(); shieldIMG = new SHIELD_IMG(); blazeIMG = new BLAZE_IMG(); alternateIMG = new ALTERNATE_IMG(); spawnPointSheet = new SPAWN_POINT_SHEET(); healthCanisterIMG = new HEALTH_CANISTER_IMG(); timeCanisterIMG = new TIME_CANISTER_IMG(); sizeCanisterIMG = new SIZE_CANISTER_IMG(); bombCanisterIMG = new BOMB_CANISTER_IMG(); gravityCanisterIMG = new GRAVITY_CANISTER_IMG(); perpetualBlazeTitleIMG = new PERPETUAL_BLAZE_TITLE_IMG(); beginButtonUpIMG = new BEGIN_BUTTON_UP_IMG(); beginButtonOverIMG = new BEGIN_BUTTON_OVER_IMG(); beginButtonDownIMG = new BEGIN_BUTTON_DOWN_IMG(); beginButtonHitIMG = new BEGIN_BUTTON_HIT_IMG(); menuButtonUpIMG = new MENU_BUTTON_UP_IMG(); menuButtonOverIMG = new MENU_BUTTON_OVER_IMG(); menuButtonDownIMG = new MENU_BUTTON_DOWN_IMG(); scoresButtonUpIMG = new SCORES_BUTTON_UP_IMG(); scoresButtonOverIMG = new SCORES_BUTTON_OVER_IMG(); scoresButtonDownIMG = new SCORES_BUTTON_DOWN_IMG(); gameOverIMG = new GAME_OVER_IMG(); pwnedIMG = new PWNED_IMG(); soundSettings = new SoundTransform(0.5); pewSND = new PEW_SND(); rapidPewSND = new RAPID_PEW_SND(); esplodySND = new ESPLODY_SND(); enemyBoomSND = new ENEMY_BOOM_SND(); hitSND = new HIT_SND(); volcasionSND = new VOLCASION_SND(); goodieCollectSND = new GOODIE_COLLECT_SND(); powerUpSND = new POWER_UP_SND(); spawningSND = new SPAWNING_SND(); pBlazeThemeIntroSND = new THEME_INTRO_SND(); pBlazeThemeLoopSND = new THEME_LOOP_SND(); } } }//package PERPETUALBLAZE
Section 48
//Embeds_ALTERNATE_IMG (PERPETUALBLAZE.Embeds_ALTERNATE_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_ALTERNATE_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 49
//Embeds_BEAM_SHIP_IMG (PERPETUALBLAZE.Embeds_BEAM_SHIP_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_BEAM_SHIP_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 50
//Embeds_BEGIN_BUTTON_DOWN_IMG (PERPETUALBLAZE.Embeds_BEGIN_BUTTON_DOWN_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_BEGIN_BUTTON_DOWN_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 51
//Embeds_BEGIN_BUTTON_HIT_IMG (PERPETUALBLAZE.Embeds_BEGIN_BUTTON_HIT_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_BEGIN_BUTTON_HIT_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 52
//Embeds_BEGIN_BUTTON_OVER_IMG (PERPETUALBLAZE.Embeds_BEGIN_BUTTON_OVER_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_BEGIN_BUTTON_OVER_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 53
//Embeds_BEGIN_BUTTON_UP_IMG (PERPETUALBLAZE.Embeds_BEGIN_BUTTON_UP_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_BEGIN_BUTTON_UP_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 54
//Embeds_BLAZE_IMG (PERPETUALBLAZE.Embeds_BLAZE_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_BLAZE_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 55
//Embeds_BOMB_CANISTER_IMG (PERPETUALBLAZE.Embeds_BOMB_CANISTER_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_BOMB_CANISTER_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 56
//Embeds_BRAINLESS_SHIP_IMG (PERPETUALBLAZE.Embeds_BRAINLESS_SHIP_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_BRAINLESS_SHIP_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 57
//Embeds_COLLECT_ESPLODE_IMG (PERPETUALBLAZE.Embeds_COLLECT_ESPLODE_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_COLLECT_ESPLODE_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 58
//Embeds_CYAN_PARTICLE_IMG (PERPETUALBLAZE.Embeds_CYAN_PARTICLE_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_CYAN_PARTICLE_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 59
//Embeds_ENEMY_BOOM_SND (PERPETUALBLAZE.Embeds_ENEMY_BOOM_SND) package PERPETUALBLAZE { import mx.core.*; public class Embeds_ENEMY_BOOM_SND extends SoundAsset { } }//package PERPETUALBLAZE
Section 60
//Embeds_ENEMY_SHOT_ORANGE_IMG (PERPETUALBLAZE.Embeds_ENEMY_SHOT_ORANGE_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_ENEMY_SHOT_ORANGE_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 61
//Embeds_ESPLODY_SND (PERPETUALBLAZE.Embeds_ESPLODY_SND) package PERPETUALBLAZE { import mx.core.*; public class Embeds_ESPLODY_SND extends SoundAsset { } }//package PERPETUALBLAZE
Section 62
//Embeds_GAME_OVER_IMG (PERPETUALBLAZE.Embeds_GAME_OVER_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_GAME_OVER_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 63
//Embeds_GOODIE_COLLECT_SND (PERPETUALBLAZE.Embeds_GOODIE_COLLECT_SND) package PERPETUALBLAZE { import mx.core.*; public class Embeds_GOODIE_COLLECT_SND extends SoundAsset { } }//package PERPETUALBLAZE
Section 64
//Embeds_GRAVITY_CANISTER_IMG (PERPETUALBLAZE.Embeds_GRAVITY_CANISTER_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_GRAVITY_CANISTER_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 65
//Embeds_HEALTH_CANISTER_IMG (PERPETUALBLAZE.Embeds_HEALTH_CANISTER_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_HEALTH_CANISTER_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 66
//Embeds_HIT_SND (PERPETUALBLAZE.Embeds_HIT_SND) package PERPETUALBLAZE { import mx.core.*; public class Embeds_HIT_SND extends SoundAsset { } }//package PERPETUALBLAZE
Section 67
//Embeds_IFO_IMG (PERPETUALBLAZE.Embeds_IFO_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_IFO_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 68
//Embeds_MARMPHCO_LOGO (PERPETUALBLAZE.Embeds_MARMPHCO_LOGO) package PERPETUALBLAZE { import mx.core.*; public class Embeds_MARMPHCO_LOGO extends BitmapAsset { } }//package PERPETUALBLAZE
Section 69
//Embeds_MENU_BUTTON_DOWN_IMG (PERPETUALBLAZE.Embeds_MENU_BUTTON_DOWN_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_MENU_BUTTON_DOWN_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 70
//Embeds_MENU_BUTTON_OVER_IMG (PERPETUALBLAZE.Embeds_MENU_BUTTON_OVER_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_MENU_BUTTON_OVER_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 71
//Embeds_MENU_BUTTON_UP_IMG (PERPETUALBLAZE.Embeds_MENU_BUTTON_UP_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_MENU_BUTTON_UP_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 72
//Embeds_ORANGE_BOLD_PARTICLE_IMG (PERPETUALBLAZE.Embeds_ORANGE_BOLD_PARTICLE_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_ORANGE_BOLD_PARTICLE_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 73
//Embeds_PERPETUAL_BLAZE_TITLE_IMG (PERPETUALBLAZE.Embeds_PERPETUAL_BLAZE_TITLE_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_PERPETUAL_BLAZE_TITLE_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 74
//Embeds_PEW_SND (PERPETUALBLAZE.Embeds_PEW_SND) package PERPETUALBLAZE { import mx.core.*; public class Embeds_PEW_SND extends SoundAsset { } }//package PERPETUALBLAZE
Section 75
//Embeds_POWER_UP_SND (PERPETUALBLAZE.Embeds_POWER_UP_SND) package PERPETUALBLAZE { import mx.core.*; public class Embeds_POWER_UP_SND extends SoundAsset { } }//package PERPETUALBLAZE
Section 76
//Embeds_PWNED_IMG (PERPETUALBLAZE.Embeds_PWNED_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_PWNED_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 77
//Embeds_RAPID_FIRE_SHIP_IMG (PERPETUALBLAZE.Embeds_RAPID_FIRE_SHIP_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_RAPID_FIRE_SHIP_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 78
//Embeds_RAPID_PEW_SND (PERPETUALBLAZE.Embeds_RAPID_PEW_SND) package PERPETUALBLAZE { import mx.core.*; public class Embeds_RAPID_PEW_SND extends SoundAsset { } }//package PERPETUALBLAZE
Section 79
//Embeds_RED_BOLD_PARTICLE_IMG (PERPETUALBLAZE.Embeds_RED_BOLD_PARTICLE_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_RED_BOLD_PARTICLE_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 80
//Embeds_SCORES_BUTTON_DOWN_IMG (PERPETUALBLAZE.Embeds_SCORES_BUTTON_DOWN_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_SCORES_BUTTON_DOWN_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 81
//Embeds_SCORES_BUTTON_OVER_IMG (PERPETUALBLAZE.Embeds_SCORES_BUTTON_OVER_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_SCORES_BUTTON_OVER_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 82
//Embeds_SCORES_BUTTON_UP_IMG (PERPETUALBLAZE.Embeds_SCORES_BUTTON_UP_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_SCORES_BUTTON_UP_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 83
//Embeds_SHIELD_IMG (PERPETUALBLAZE.Embeds_SHIELD_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_SHIELD_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 84
//Embeds_SHOTGUN_SHIP_IMG (PERPETUALBLAZE.Embeds_SHOTGUN_SHIP_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_SHOTGUN_SHIP_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 85
//Embeds_SIZE_CANISTER_IMG (PERPETUALBLAZE.Embeds_SIZE_CANISTER_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_SIZE_CANISTER_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 86
//Embeds_SPAWN_POINT_SHEET (PERPETUALBLAZE.Embeds_SPAWN_POINT_SHEET) package PERPETUALBLAZE { import mx.core.*; public class Embeds_SPAWN_POINT_SHEET extends BitmapAsset { } }//package PERPETUALBLAZE
Section 87
//Embeds_SPAWNING_SND (PERPETUALBLAZE.Embeds_SPAWNING_SND) package PERPETUALBLAZE { import mx.core.*; public class Embeds_SPAWNING_SND extends SoundAsset { } }//package PERPETUALBLAZE
Section 88
//Embeds_SUICIDE_SHIP_IMG (PERPETUALBLAZE.Embeds_SUICIDE_SHIP_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_SUICIDE_SHIP_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 89
//Embeds_THEME_INTRO_SND (PERPETUALBLAZE.Embeds_THEME_INTRO_SND) package PERPETUALBLAZE { import mx.core.*; public class Embeds_THEME_INTRO_SND extends SoundAsset { } }//package PERPETUALBLAZE
Section 90
//Embeds_THEME_LOOP_SND (PERPETUALBLAZE.Embeds_THEME_LOOP_SND) package PERPETUALBLAZE { import mx.core.*; public class Embeds_THEME_LOOP_SND extends SoundAsset { } }//package PERPETUALBLAZE
Section 91
//Embeds_TIME_CANISTER_IMG (PERPETUALBLAZE.Embeds_TIME_CANISTER_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_TIME_CANISTER_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 92
//Embeds_VOLCASION_SND (PERPETUALBLAZE.Embeds_VOLCASION_SND) package PERPETUALBLAZE { import mx.core.*; public class Embeds_VOLCASION_SND extends SoundAsset { } }//package PERPETUALBLAZE
Section 93
//Embeds_YELLOW_PARTICLE_IMG (PERPETUALBLAZE.Embeds_YELLOW_PARTICLE_IMG) package PERPETUALBLAZE { import mx.core.*; public class Embeds_YELLOW_PARTICLE_IMG extends BitmapAsset { } }//package PERPETUALBLAZE
Section 94
//Enemy (PERPETUALBLAZE.Enemy) package PERPETUALBLAZE { import mLib.graphics.*; import NYOS.*; public class Enemy extends Entity { protected var fireRange:Number; protected var cooldown:Number; protected var target:Entity; public var score:Number; public var onFire:Function; protected var cooldownTimer:Number;// = 0 public function Enemy(_arg1:Number, _arg2:Number, _arg3:StaticSprite, _arg4:SpriteLayer, _arg5:Entity):void{ super(_arg1, _arg2, _arg3, _arg4); target = _arg5; type = 1; health = 5; speed = 350; decay = 2; damage = 0; pierce = 0; armor = 0; collisionRadius = 10; fireRange = 250; cooldown = 3000; score = 100; } override public function updateSpecific(_arg1:Number=1):void{ var _local3:Number; var _local4:Number; cooldownTimer = (cooldownTimer + (1000 * _arg1)); var _local2:Number = (target.x - _x); _local3 = (target.y - _y); _local4 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); if (_local4 > fireRange){ xv = (xv + (((_local2 / _local4) * speed) * _arg1)); yv = (yv + (((_local3 / _local4) * speed) * _arg1)); } else { xv = (xv - (((_local2 / _local4) * speed) * _arg1)); yv = (yv - (((_local3 / _local4) * speed) * _arg1)); if (cooldownTimer > cooldown){ if (onFire != null){ onFire(this, target); }; cooldownTimer = 0; }; }; } } }//package PERPETUALBLAZE
Section 95
//EnemyShot (PERPETUALBLAZE.EnemyShot) package PERPETUALBLAZE { import mLib.graphics.*; import NYOS.*; public class EnemyShot extends Entity { private var target:Entity; private var oyv:Number; private var oxv:Number; public function EnemyShot(_arg1:Number, _arg2:Number, _arg3:StaticSprite, _arg4:SpriteLayer, _arg5:Entity, _arg6:Number=-1, _arg7:Number=-1):void{ var _local8:Number; var _local9:Number; var _local10:Number; super(_arg1, _arg2, _arg3, _arg4); target = _arg5; type = 1; health = 5; speed = 700; decay = 0; damage = 50; pierce = 0; armor = 0; collisionRadius = 0; if (_arg6 == -1){ _local8 = (target.x - _x); _local9 = (target.y - _y); } else { _local8 = (_arg6 - _x); _local9 = (_arg7 - _y); }; _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); oxv = (xv = ((_local8 / _local10) * speed)); oyv = (yv = ((_local9 / _local10) * speed)); } override public function updateSpecific(_arg1:Number=1):void{ var _local2:Number; var _local3:Number; var _local4:Number; if (((!((xv == oxv))) || (!((yv == oyv))))){ health = 0; }; if (CollisionManager.boundingCheck(this, target)){ _local2 = (target.x - _x); _local3 = (target.y - _y); _local4 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); if (_local4 < target.collisionRadius){ health = 0; if (!target.invincible){ target.health = (target.health - damage); }; }; }; } } }//package PERPETUALBLAZE
Section 96
//Game (PERPETUALBLAZE.Game) package PERPETUALBLAZE { import flash.events.*; import flash.display.*; import mLib.graphics.*; import mLib.particles.*; import NYOS.*; import mochi.as3.*; import mLib.structures.*; import flash.text.*; import mLib.utils.*; public class Game { private var node:ListNode; private var multiplierTimer:Number;// = 1 private var left:Boolean;// = false private var comboField:TextField; private var knowsAboutEnergy:Boolean;// = false private var rapidFireEnemiesKilled:int;// = 0 private var timeStopTimer:Number;// = 0 private var healthBar:BasicBar; private var right:Boolean;// = false private var spawnNode:ListNode; private var timeEnergyBar:BasicBar; private var timeEnergyThreshold:Number;// = 2500 private var knowsAboutPowerUps:Boolean;// = false private var gravityWell:Boolean;// = false private var enemiesKilled:int;// = 0 private var collectEsplodePGroup:ParticleGroup; private var powerUpsUsed:int;// = 0 private var explosionGroup:ParticleGroup; private var slowTime:Boolean;// = false private var timeStop:Boolean;// = false private var node2:ListNode; private var gameTimer:GameTimer; private var healthOutput:VariableOutput; private var container:PerpetualBlaze; private var sized:Boolean;// = false private var knowsHowToKill:Boolean;// = false private var score:MochiDigits; private var up:Boolean;// = false private var enemyTimer:SpawnTimer; private var down:Boolean;// = false private var collectEsplodeGroup:ParticleGroup; private var endedTimer:Number;// = 0 private var suicideEnemiesKilled:int;// = 0 private var goodiesGone:Number;// = 0 private var embeds:Embeds; private var fireLayer:ParticleLayer; private var knowsAllTehShits:Boolean;// = false private var multiplierTimerMax:Number;// = 1 private var ended:Boolean;// = false private var tabsPressed:int;// = 0 private var spawnChanger:SpawnChanger; private var step:Number; private var beamTimer:SpawnTimer; private var beamEnemiesKilled:int;// = 0 private var showMochi:Boolean;// = false private var shotgunTimer:SpawnTimer; private var notification:TextField; private var suicideGroup:ParticleGroup; private var brainlessEnemiesKilled:int;// = 0 private var brainlessTimer:SpawnTimer; private var mouseControl:Boolean;// = false private var knowsHowToMove:Boolean;// = false private var stage:Stage; private var rapidFireTimer:SpawnTimer; private var timeEnergyOutput:VariableOutput; private var nuked:Boolean;// = false private var frameMonitor:mFramerate; private var paused:Boolean;// = false private var SpawnPointList:LinkedList; private var tips:Array; private var objectLayer:SpriteLayer; private var canvas:mCanvas; private var totalEnemiesKilled:int;// = 0 private var timeEnergyMax:Number;// = 5000 private var multiplierTimerBar:BasicBar; private var scoreField:TextField; private var gravityTimer:Number;// = 0 private var energyCollected:int;// = 0 private var bob:Blaze; private var suicideTimer:SpawnTimer; private var timeEnergy:Number;// = 5000 private var multiplier:int;// = 1 private var timeEndured:MochiDigits; private var sizeTimer:Number;// = 0 private var UberList:LinkedList; private var kongregate; private var shotgunEnemiesKilled:int;// = 0 private var alternateSprite:StaticSprite; private var tutText:TextField; private var nukedTimer:Number;// = 0 private var fireGroup:ParticleGroup; private var knowsAboutBulletTime:Boolean;// = false private static const DEGREE_135:Number = 2.35619449019234; private static const DEGREE_90:Number = 1.5707963267949; private static const DEGREE_180:Number = 3.14159265358979; private static const BOUND_X:Number = 640; private static const BOUND_Y:Number = 480; private static const DEGREE_45:Number = 0.785398163397448; public function Game(_arg1:PerpetualBlaze):void{ tips = ["Use your time slowing ability to dodge enemy fire.", "Try pressing the TAB key next time.", "The color of the background changes according to your energy.", "Try not to stay still."]; super(); container = _arg1; stage = container.stage; embeds = container.embeds; kongregate = container.kongregate; } public function onIntroComplete(_arg1:Event):void{ embeds.musicChannel = embeds.pBlazeThemeLoopSND.play(0, 9999, embeds.soundSettings); embeds.musicChannel.removeEventListener(Event.SOUND_COMPLETE, onIntroComplete); } public function spawnShotgunEnemy(_arg1:Number, _arg2:Number):void{ var _local3:StaticSprite = new StaticSprite(embeds.shotgunShipIMG); var _local4:ShotgunEnemy = new ShotgunEnemy(_arg1, _arg2, _local3, objectLayer, bob); _local4.onFire = onShotgunEnemyFire; _local4.onDeath = onEnemyDeath; UberList.add(_local4); explosionGroup.addParticles(_arg1, _arg2, 10); } public function onMenuClick(_arg1:MouseEvent):void{ endGame(); container.gameState = PerpetualBlaze.MENU; } public function spawnBeamEnemyPoint(_arg1:int):void{ var _local2:AnimatedSprite; var _local3:SpawnPoint; while (_arg1 > 0) { _local2 = new AnimatedSprite(embeds.spawnPointSheet, 48, 48, 24); _local3 = new SpawnPoint(spawnBeamEnemy, _local2, objectLayer); SpawnPointList.add(_local3); _arg1--; }; embeds.spawningSND.play(0, 0, embeds.soundSettings); } public function onBobHit(_arg1:Entity):void{ suicideGroup.addParticles(_arg1.x, _arg1.y, 10); embeds.hitSND.play(0, 0, embeds.soundSettings); } public function spawnRapidFireEnemyPoint(_arg1:int):void{ var _local2:AnimatedSprite; var _local3:SpawnPoint; while (_arg1 > 0) { _local2 = new AnimatedSprite(embeds.spawnPointSheet, 48, 48, 24); _local3 = new SpawnPoint(spawnRapidFireEnemy, _local2, objectLayer); SpawnPointList.add(_local3); _arg1--; }; embeds.spawningSND.play(0, 0, embeds.soundSettings); } public function spawnBrainlessEnemyPoint(_arg1:int):void{ var _local2:AnimatedSprite; var _local3:SpawnPoint; while (_arg1 > 0) { _local2 = new AnimatedSprite(embeds.spawnPointSheet, 48, 48, 24); _local3 = new SpawnPoint(spawnBrainlessEnemy, _local2, objectLayer); SpawnPointList.add(_local3); _arg1--; }; embeds.spawningSND.play(0, 0, embeds.soundSettings); } public function onSuicideEnemyDeath(_arg1:Entity):void{ if (!nuked){ suicideGroup.addParticles(_arg1.x, _arg1.y, 10); canvas.shake(8, 150); embeds.esplodySND.play(0, 0, embeds.soundSettings); }; suicideEnemiesKilled++; totalEnemiesKilled++; } public function onShotgunEnemyFire(_arg1:Entity, _arg2:Entity):void{ var _local3:StaticSprite; var _local4:EnemyShot; if (!timeStop){ _local3 = new StaticSprite(embeds.enemyShotOrangeIMG); _local4 = new EnemyShot(_arg1.x, _arg1.y, _local3, objectLayer, bob, ((bob.x - 30) + (Math.random() * 60)), ((bob.y - 30) + (Math.random() * 60))); _local4.onDeath = onShotHit; UberList.add(_local4); _local3 = new StaticSprite(embeds.enemyShotOrangeIMG); _local4 = new EnemyShot(_arg1.x, _arg1.y, _local3, objectLayer, bob, ((bob.x - 30) + (Math.random() * 60)), ((bob.y - 30) + (Math.random() * 60))); _local4.onDeath = onShotHit; UberList.add(_local4); _local3 = new StaticSprite(embeds.enemyShotOrangeIMG); _local4 = new EnemyShot(_arg1.x, _arg1.y, _local3, objectLayer, bob, ((bob.x - 30) + (Math.random() * 60)), ((bob.y - 30) + (Math.random() * 60))); _local4.onDeath = onShotHit; UberList.add(_local4); _local3 = new StaticSprite(embeds.enemyShotOrangeIMG); _local4 = new EnemyShot(_arg1.x, _arg1.y, _local3, objectLayer, bob, ((bob.x - 30) + (Math.random() * 60)), ((bob.y - 30) + (Math.random() * 60))); _local4.onDeath = onShotHit; UberList.add(_local4); embeds.pewSND.play(0, 0, embeds.soundSettings); }; } public function gameLogic(_arg1:Number):void{ if (timeStop){ canvas.flash(0.25, 1000); bob.updatePositionAndStatus(_arg1); bob.updateSpecific(_arg1); timeStopTimer = (timeStopTimer + _arg1); if (timeStopTimer > 5){ timeStop = false; timeStopTimer = 0; }; _arg1 = 0; } else { if (slowTime){ canvas.flash(0.25, 1000); bob.updatePositionAndStatus(_arg1); bob.updateSpecific(_arg1); timeEnergy = (timeEnergy - (_arg1 * 1000)); if (timeEnergy <= 0){ slowTime = false; }; _arg1 = (_arg1 * 0.2); } else { if (timeEnergy <= timeEnergyMax){ timeEnergy = (timeEnergy + (_arg1 * 500)); } else { timeEnergy = timeEnergyMax; }; }; }; if (multiplier > multiplierTimerMax){ multiplierTimer = (multiplierTimer - _arg1); if (multiplierTimer <= 0){ multiplierTimer = multiplierTimerMax; multiplier--; }; }; if (nuked){ nukedTimer = (nukedTimer + _arg1); if (nukedTimer > 3){ nuked = false; nukedTimer = 0; }; }; if (sized){ sizeTimer = (sizeTimer + _arg1); bob.collisionRadius = 30; fireGroup.initSize.rangeMax = 4.4; CollisionManager.deflect = 1; bob.damage = 50; bob.invincible = true; if (sizeTimer > 10){ sized = false; sizeTimer = 0; }; } else { bob.collisionRadius = 14; fireGroup.initSize.rangeMax = 2.2; CollisionManager.deflect = 40; bob.damage = 5; bob.invincible = false; }; if (gravityWell){ gravityTimer = (gravityTimer + _arg1); if (gravityTimer > 3){ gravityWell = false; gravityTimer = 0; }; }; updateAllGameObjects(_arg1); updateBlaze(); bob.health = (bob.health - (_arg1 * bob.healthDecay)); if (ended){ return; }; if (!knowsAllTehShits){ if (!knowsHowToMove){ tutText.text = "USE WASD, THE ARROW KEYS, OR THE MOUSE TO MOVE. CLICK THE MOUSE TO SWITCH TO MOUSE CONTROL, OR PRESS ANY KEY ON THE KEYBOARD TO SWITCH TO KEYBOARD CONTROL."; return; }; if (!knowsHowToKill){ tutText.text = "RAM INTO THAT ENEMY. I DON'T THINK HE LIKES YOU."; return; }; if (!knowsAboutEnergy){ tutText.text = "IF YOU DON'T REPLENISH YOUR ENERGY, YOUR BLAZE WILL SOON DIE OUT. SMASH THAT CANISTER AND RESTORE YOUR ENERGY BY COLLECTING THE GOLDEN ENERGY ORBS IT DROPS."; return; }; if (!knowsAboutBulletTime){ tutText.text = "PRESS THE SPACEBAR OR CLICK THE MOUSE BUTTON TO USE YOUR TIME SLOWING ABILITY. USING THIS ABILITY CONSUMES YOUR POWER.\nGOOD LUCK!"; } else { knowsAllTehShits = true; container.removeChild(tutText); }; }; var _local2:Number = (_arg1 * 1000); enemyTimer.update(_local2); shotgunTimer.update(_local2); beamTimer.update(_local2); brainlessTimer.update(_local2); rapidFireTimer.update(_local2); suicideTimer.update(_local2); timeEndured.addValue((_arg1 * 1000)); score.addValue(int((_arg1 * 100))); spawnChanger.checkFunction(totalEnemiesKilled); } public function killEverything():void{ var _local2:Entity; var _local1:ListNode = UberList.head; while (_local1 != null) { _local2 = _local1.data; if (_local2 != bob){ _local2.health = 0; }; _local1 = _local1.next; }; } public function onGoodieCollect(_arg1:Goodie):void{ collectEsplodeGroup.addParticles(_arg1.x, _arg1.y, 1); collectEsplodePGroup.addParticles(_arg1.x, _arg1.y, 5); canvas.shake(5, 100); if (_arg1.collected){ embeds.goodieCollectSND.play(0, 0, embeds.soundSettings); score.addValue((10 * multiplier)); energyCollected++; notification.text = "ENERGY UP"; notification.textColor = 0xFFFFFF; }; if (((knowsHowToKill) && (!(knowsAboutEnergy)))){ goodiesGone++; if (goodiesGone > 10){ knowsAboutEnergy = true; }; }; } public function onEnterFrame(_arg1:Event):void{ var decrement:int; var temp:Number; var o:Object; var boardID:String; var e = _arg1; gameTimer.run(); step = gameTimer.step; frameMonitor.update(); if (paused){ return; }; healthOutput.update(int(bob.health)); scoreField.text = score.toString(); comboField.text = (("X" + multiplier.toString()) + " COMBO"); timeEnergyOutput.update(int(timeEnergy)); healthBar.currentValue = bob.health; healthBar.drawBar(); multiplierTimerBar.currentValue = multiplierTimer; multiplierTimerBar.drawBar(); timeEnergyBar.currentValue = timeEnergy; if (slowTime){ timeEnergyBar.color = 0xFFFF00; } else { if (timeEnergy > 2500){ timeEnergyBar.color = 0xFF00; } else { timeEnergyBar.color = 0xFF0000; }; }; timeEnergyBar.drawBar(); var stepc:Number = (step * 0.75); if (((!((notification.text == null))) && (!((notification.textColor == 0))))){ decrement = ((int((stepc * 0xFF)) + int(((stepc * 0xFF) << 8))) + int(((stepc * 0xFF) << 16))); temp = notification.textColor; notification.textColor = (notification.textColor - decrement); if ((((notification.textColor > temp)) || ((notification.textColor == 0)))){ notification.textColor = 0; notification.text = ""; }; notification.text = notification.text; }; objectLayer.clear(); fireLayer.clear(); fireLayer.update(step); if (!ended){ gameLogic(step); } else { if (endedTimer > 6){ if (!showMochi){ o = {n:[2, 15, 11, 14, 12, 1, 2, 15, 4, 3, 11, 2, 8, 9, 6, 5], 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:score.value}); showMochi = true; }; } else { endedTimer = (endedTimer + step); killEverything(); gameLogic(step); }; }; if (bob.health > 2000){ canvas.backgroundColor = ((4278190080 + ((((bob.health - 2000) / 5000) * 0xFF) << 16)) + ((((bob.health - 2000) / 5000) * 136) << 8)); } else { if (bob.health > 0){ canvas.backgroundColor = ((4278190080 + ((((2000 - bob.health) / 5000) * 102) << 8)) + (((2000 - bob.health) / 5000) * 0xFF)); } else { canvas.backgroundColor = 4278190080; }; }; canvas.render(); } public function onEnemyFire(_arg1:Entity, _arg2:Entity):void{ var _local3:StaticSprite; var _local4:EnemyShot; if (!timeStop){ _local3 = new StaticSprite(embeds.enemyShotOrangeIMG); _local4 = new EnemyShot(_arg1.x, _arg1.y, _local3, objectLayer, bob); _local4.onDeath = onShotHit; UberList.add(_local4); embeds.rapidPewSND.play(0, 0, embeds.soundSettings); }; } public function onKeyUp(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case 87: up = false; break; case 65: left = false; break; case 83: down = false; break; case 68: right = false; break; case 38: up = false; break; case 37: left = false; break; case 40: down = false; break; case 39: right = false; break; case 32: slowTime = false; break; }; } public function spawnEnemyPoint(_arg1:int):void{ var _local2:AnimatedSprite; var _local3:SpawnPoint; while (_arg1 > 0) { _local2 = new AnimatedSprite(embeds.spawnPointSheet, 48, 48, 24); _local3 = new SpawnPoint(spawnEnemy, _local2, objectLayer); SpawnPointList.add(_local3); _arg1--; }; embeds.spawningSND.play(0, 0, embeds.soundSettings); } public function onBobDeath(_arg1:Entity):void{ if (!ended){ fireGroup.addParticles(_arg1.x, _arg1.y, 20); killEverything(); canvas.flash(1, 4000); canvas.shake(10, 4000); embeds.volcasionSND.play(0, 0, embeds.soundSettings); nuked = true; ended = true; drawStatsAndScores(); }; } public function onBrainlessFire(_arg1:BrainlessEnemy):void{ var _local2:StaticSprite = new StaticSprite(embeds.shieldIMG); var _local3:Shield = new Shield(_arg1.x, _arg1.y, _local2, objectLayer, _arg1); UberList.add(_local3); embeds.pewSND.play(0, 0, embeds.soundSettings); } public function onKeyDown(_arg1:KeyboardEvent):void{ if (mouseControl){ mouseControl = false; notification.text = "SWITCHING TO KEYBOARD CONTROL"; notification.textColor = 0xFFFFFF; }; switch (_arg1.keyCode){ case 87: up = true; break; case 65: left = true; break; case 83: down = true; break; case 68: right = true; break; case 38: up = true; break; case 37: left = true; break; case 40: down = true; break; case 39: right = true; break; case 32: if (timeEnergy >= timeEnergyThreshold){ slowTime = true; }; if (!knowsAboutBulletTime){ knowsAboutBulletTime = true; }; break; case 80: if (!paused){ notification.text = "GAME PAUSED"; notification.textColor = 0xFFFFFF; }; paused = !(paused); break; case 27: if (!paused){ notification.text = "GAME PAUSED"; notification.textColor = 0xFFFFFF; }; paused = !(paused); break; case 9: tabsPressed++; if (tabsPressed == 1){ notification.text = "TAB WON'T HELP YOU ENDURE!"; } else { if (tabsPressed == 2){ notification.text = "THIS ISN'T A POINT AND CLICK ADVENTURE!"; } else { if (tabsPressed == 3){ notification.text = "DO A BARREL ROLL!"; } else { if (tabsPressed == 4){ notification.text = "PRESS TAB AGAIN FOR 9,999,999 POINTS!"; } else { if (tabsPressed == 5){ notification.text = "ALL YOUR TAB ARE BELONG TO US."; } else { if (tabsPressed == 6){ notification.text = "ARE YOU EVEN PLAYING THE GAME?"; } else { if (tabsPressed == 7){ notification.text = ":)"; if (bob.sprite != alternateSprite){ objectLayer.removeSprite(bob.sprite); bob.sprite = alternateSprite; objectLayer.addSprite(alternateSprite); }; kongregate.stats.submit("Got Alternate Graphics", 1); tabsPressed = 0; }; }; }; }; }; }; }; notification.textColor = 0xFFFFFF; break; }; } public function spawnEnemy(_arg1:Number, _arg2:Number):void{ var _local3:StaticSprite = new StaticSprite(embeds.ifoIMG); var _local4:Enemy = new Enemy(_arg1, _arg2, _local3, objectLayer, bob); _local4.onFire = onEnemyFire; _local4.onDeath = onEnemyDeath; UberList.add(_local4); explosionGroup.addParticles(_arg1, _arg2, 10); } public function onBombCanisterCollect(_arg1:Canister):void{ nuked = true; killEverything(); canvas.shake(10, 3000); canvas.flash(1, 3000); embeds.volcasionSND.play(0, 0, embeds.soundSettings); powerUpsUsed++; notification.text = "NUCLEAR VOLCASION"; notification.textColor = 0xFFFFFF; } public function onGravityCanisterCollect(_arg1:Canister):void{ gravityWell = true; canvas.flash(0.75, 500); embeds.powerUpSND.play(0, 0, embeds.soundSettings); powerUpsUsed++; notification.text = "GRAVITY SINGULARITY"; notification.textColor = 0xFFFFFF; } public function spawnGoodies(_arg1:Number, _arg2:Number, _arg3:int):void{ var _local4:StaticSprite; var _local5:Goodie; while (_arg3 > 0) { _local4 = new StaticSprite(embeds.yellowParticleIMG); _local5 = new Goodie(_arg1, _arg2, _local4, objectLayer, bob); _local5.onDeath = onGoodieCollect; UberList.add(_local5); _arg3--; }; } public function onEnemyDeath(_arg1:Enemy):void{ if (!nuked){ spawnGoodies(_arg1.x, _arg1.y, 3); canvas.shake(5, 100); canvas.flash(0.5, 500); embeds.enemyBoomSND.play(0, 0, embeds.soundSettings); if ((((Math.random() < 0.2)) && (knowsAboutEnergy))){ spawnCanister(_arg1.x, _arg1.y); }; }; explosionGroup.addParticles(_arg1.x, _arg1.y, 10); if (!ended){ score.addValue((_arg1.score * multiplier)); }; multiplier++; if (multiplier > 20){ multiplier = 20; }; multiplierTimer = multiplierTimerMax; if ((_arg1 is BeamEnemy)){ beamEnemiesKilled++; } else { if ((_arg1 is RapidFireEnemy)){ rapidFireEnemiesKilled++; } else { if ((_arg1 is ShotgunEnemy)){ shotgunEnemiesKilled++; } else { if ((_arg1 is BrainlessEnemy)){ brainlessEnemiesKilled++; } else { enemiesKilled++; if (!knowsHowToKill){ knowsHowToKill = true; spawnCanister(400, 400, 0.2); canvas.flash(0.1, 0.5); }; }; }; }; }; totalEnemiesKilled++; } public function spawnSuicideEnemy(_arg1:Number, _arg2:Number):void{ var _local3:StaticSprite = new StaticSprite(embeds.suicideShipIMG); var _local4:SuicideEnemy = new SuicideEnemy(_arg1, _arg2, _local3, objectLayer, bob); _local4.onDeath = onSuicideEnemyDeath; UberList.add(_local4); explosionGroup.addParticles(_arg1, _arg2, 10); } public function onMouseUp(_arg1:MouseEvent):void{ slowTime = false; } public function onBeamEnemyFire(_arg1:BeamEnemy, _arg2:Entity):void{ if (!timeStop){ if ((((((_arg1.x > _arg2.x)) && ((_arg1.y > _arg2.y)))) || ((((_arg1.x < _arg2.x)) && ((_arg1.y < _arg2.y)))))){ drawLine(_arg1.x, _arg1.y, _arg2.x, _arg2.y, 4294967295, objectLayer.data); drawLine((_arg1.x + 1), (_arg1.y + 1), (_arg2.x + 1), (_arg2.y + 1), 4294967295, objectLayer.data); drawLine((_arg1.x - 1), (_arg1.y - 1), (_arg2.x - 1), (_arg2.y - 1), 4294967295, objectLayer.data); drawLine((_arg1.x - 1), (_arg1.y + 1), (_arg2.x - 1), (_arg2.y + 1), 4278255360, objectLayer.data); drawLine((_arg1.x + 1), (_arg1.y - 1), (_arg2.x + 1), (_arg2.y - 1), 4278255360, objectLayer.data); } else { drawLine(_arg1.x, _arg1.y, _arg2.x, _arg2.y, 4294967295, objectLayer.data); drawLine((_arg1.x + 1), (_arg1.y + 1), (_arg2.x + 1), (_arg2.y + 1), 4278255360, objectLayer.data); drawLine((_arg1.x - 1), (_arg1.y - 1), (_arg2.x - 1), (_arg2.y - 1), 4278255360, objectLayer.data); drawLine((_arg1.x - 1), (_arg1.y + 1), (_arg2.x - 1), (_arg2.y + 1), 4294967295, objectLayer.data); drawLine((_arg1.x + 1), (_arg1.y - 1), (_arg2.x + 1), (_arg2.y - 1), 4294967295, objectLayer.data); }; if (!_arg1.wasFiring){ embeds.esplodySND.play(0, 0, embeds.soundSettings); }; }; } public function spawnShotgunEnemyPoint(_arg1:int):void{ var _local2:AnimatedSprite; var _local3:SpawnPoint; while (_arg1 > 0) { _local2 = new AnimatedSprite(embeds.spawnPointSheet, 48, 48, 24); _local3 = new SpawnPoint(spawnShotgunEnemy, _local2, objectLayer); SpawnPointList.add(_local3); _arg1--; }; embeds.spawningSND.play(0, 0, embeds.soundSettings); } public function onTimeCanisterCollect(_arg1:Canister):void{ timeStop = true; canvas.flash(0.75, 500); embeds.powerUpSND.play(0, 0, embeds.soundSettings); powerUpsUsed++; notification.text = "TIME FREEZE"; notification.textColor = 0xFFFFFF; } public function onShotHit(_arg1:Entity):void{ explosionGroup.addParticles(_arg1.x, _arg1.y, 3); canvas.shake(5, 100); } public function drawStatsAndScores():void{ var _local1:Bitmap = embeds.gameOverIMG; _local1.x = 160; _local1.y = 80; container.addChild(_local1); var _local2:TextFormat = new TextFormat(); _local2.color = 0xFFFFFF; _local2.size = 8; _local2.font = "VT100"; var _local3:TextField = new TextField(); _local3.width = 150; _local3.x = 170; _local3.y = 150; _local3.defaultTextFormat = _local2; _local3.embedFonts = true; _local3.antiAliasType = AntiAliasType.ADVANCED; _local3.sharpness = 400; _local3.text = "TOTAL SCORE:"; container.addChild(_local3); var _local4:TextField = new TextField(); _local4.width = 150; _local4.x = 170; _local4.y = 165; _local4.defaultTextFormat = _local2; _local4.embedFonts = true; _local4.antiAliasType = AntiAliasType.ADVANCED; _local4.sharpness = 400; _local4.text = "TIME ENDURED:"; container.addChild(_local4); var _local5:TextField = new TextField(); _local5.width = 150; _local5.x = 170; _local5.y = 180; _local5.defaultTextFormat = _local2; _local5.embedFonts = true; _local5.antiAliasType = AntiAliasType.ADVANCED; _local5.sharpness = 400; _local5.text = "ENERGY COLLECTED:"; container.addChild(_local5); var _local6:TextField = new TextField(); _local6.width = 150; _local6.x = 170; _local6.y = 195; _local6.defaultTextFormat = _local2; _local6.embedFonts = true; _local6.antiAliasType = AntiAliasType.ADVANCED; _local6.sharpness = 400; _local6.text = "POWERUPS USED:"; container.addChild(_local6); var _local7:TextField = new TextField(); _local7.width = 150; _local7.x = 170; _local7.y = 210; _local7.defaultTextFormat = _local2; _local7.embedFonts = true; _local7.antiAliasType = AntiAliasType.ADVANCED; _local7.sharpness = 400; _local7.text = "MINES SMASHED:"; container.addChild(_local7); var _local8:TextField = new TextField(); _local8.width = 150; _local8.x = 170; _local8.y = 225; _local8.defaultTextFormat = _local2; _local8.embedFonts = true; _local8.antiAliasType = AntiAliasType.ADVANCED; _local8.sharpness = 400; _local8.text = "SPRAYERS SMASHED:"; container.addChild(_local8); var _local9:TextField = new TextField(); _local9.width = 150; _local9.x = 170; _local9.y = 240; _local9.defaultTextFormat = _local2; _local9.embedFonts = true; _local9.antiAliasType = AntiAliasType.ADVANCED; _local9.sharpness = 400; _local9.text = "LASER CRAFT SMASHED:"; container.addChild(_local9); var _local10:TextField = new TextField(); _local10.width = 150; _local10.x = 170; _local10.y = 0xFF; _local10.defaultTextFormat = _local2; _local10.embedFonts = true; _local10.antiAliasType = AntiAliasType.ADVANCED; _local10.sharpness = 400; _local10.text = "BUMPERS SMASHED:"; container.addChild(_local10); var _local11:TextField = new TextField(); _local11.width = 150; _local11.x = 170; _local11.y = 270; _local11.defaultTextFormat = _local2; _local11.embedFonts = true; _local11.antiAliasType = AntiAliasType.ADVANCED; _local11.sharpness = 400; _local11.text = "REPEATERS SMASHED:"; container.addChild(_local11); var _local12:TextField = new TextField(); _local12.width = 200; _local12.x = 330; _local12.y = 150; _local12.defaultTextFormat = _local2; _local12.embedFonts = true; _local12.antiAliasType = AntiAliasType.ADVANCED; _local12.sharpness = 400; _local12.text = score.toString(); container.addChild(_local12); var _local13:TextField = new TextField(); _local13.width = 150; _local13.x = 330; _local13.y = 165; _local13.defaultTextFormat = _local2; _local13.embedFonts = true; _local13.antiAliasType = AntiAliasType.ADVANCED; _local13.sharpness = 400; _local13.text = (int((timeEndured.value / 1000)).toString() + " seconds"); container.addChild(_local13); var _local14:TextField = new TextField(); _local14.width = 150; _local14.x = 330; _local14.y = 180; _local14.defaultTextFormat = _local2; _local14.embedFonts = true; _local14.antiAliasType = AntiAliasType.ADVANCED; _local14.sharpness = 400; _local14.text = (energyCollected * 20).toString(); container.addChild(_local14); var _local15:TextField = new TextField(); _local15.width = 150; _local15.x = 330; _local15.y = 195; _local15.defaultTextFormat = _local2; _local15.embedFonts = true; _local15.antiAliasType = AntiAliasType.ADVANCED; _local15.sharpness = 400; _local15.text = powerUpsUsed.toString(); container.addChild(_local15); var _local16:TextField = new TextField(); _local16.width = 150; _local16.x = 330; _local16.y = 210; _local16.defaultTextFormat = _local2; _local16.embedFonts = true; _local16.antiAliasType = AntiAliasType.ADVANCED; _local16.sharpness = 400; _local16.text = enemiesKilled.toString(); container.addChild(_local16); var _local17:TextField = new TextField(); _local17.width = 150; _local17.x = 330; _local17.y = 225; _local17.defaultTextFormat = _local2; _local17.embedFonts = true; _local17.antiAliasType = AntiAliasType.ADVANCED; _local17.sharpness = 400; _local17.text = shotgunEnemiesKilled.toString(); container.addChild(_local17); var _local18:TextField = new TextField(); _local18.width = 150; _local18.x = 330; _local18.y = 240; _local18.defaultTextFormat = _local2; _local18.embedFonts = true; _local18.antiAliasType = AntiAliasType.ADVANCED; _local18.sharpness = 400; _local18.text = beamEnemiesKilled.toString(); container.addChild(_local18); var _local19:TextField = new TextField(); _local19.width = 150; _local19.x = 330; _local19.y = 0xFF; _local19.defaultTextFormat = _local2; _local19.embedFonts = true; _local19.antiAliasType = AntiAliasType.ADVANCED; _local19.sharpness = 400; _local19.text = brainlessEnemiesKilled.toString(); container.addChild(_local19); var _local20:TextField = new TextField(); _local20.width = 150; _local20.x = 330; _local20.y = 270; _local20.defaultTextFormat = _local2; _local20.embedFonts = true; _local20.antiAliasType = AntiAliasType.ADVANCED; _local20.sharpness = 400; _local20.text = rapidFireEnemiesKilled.toString(); container.addChild(_local20); var _local21:SimpleButton = new SimpleButton(embeds.menuButtonUpIMG, embeds.menuButtonOverIMG, embeds.menuButtonDownIMG, embeds.beginButtonHitIMG); _local21.x = 190; _local21.y = 310; _local21.addEventListener(MouseEvent.CLICK, onMenuClick, false, 0, true); container.addChild(_local21); var _local22:TextField = new TextField(); _local22.width = 150; _local22.height = 80; _local22.x = 330; _local22.y = 310; _local22.multiline = true; _local22.wordWrap = true; _local22.defaultTextFormat = _local2; _local22.embedFonts = true; _local22.antiAliasType = AntiAliasType.ADVANCED; _local22.sharpness = 400; _local22.text = ("TIP: " + tips[int((Math.random() * tips.length))]); container.addChild(_local22); var _local23:TextFormat = new TextFormat(); _local23.color = 0xFFFFFF; _local23.size = 16; _local23.font = "VT100"; _local23.align = TextFormatAlign.CENTER; var _local24:TextField = new TextField(); _local24.width = 300; _local24.height = 50; _local24.x = 170; _local24.y = 420; _local24.embedFonts = true; _local24.antiAliasType = AntiAliasType.ADVANCED; _local24.sharpness = 400; _local24.defaultTextFormat = _local23; _local24.text = "SUBMITTING SCORE..."; _local24.selectable = false; container.addChild(_local24); kongregate = container.kongregate; kongregate.stats.submit("Highscore", int(score.value)); kongregate.stats.submit("Time Endured", int((timeEndured.value / 1000))); kongregate.stats.submit("Energy Collected", (energyCollected * 20)); kongregate.stats.submit("PowerUps Used", powerUpsUsed); kongregate.stats.submit("Mines Smashed", enemiesKilled); kongregate.stats.submit("Sprayers Smashed", shotgunEnemiesKilled); kongregate.stats.submit("Laser Craft Smashed", beamEnemiesKilled); kongregate.stats.submit("Bumpers Smashed", brainlessEnemiesKilled); kongregate.stats.submit("Repeaters Smashed", rapidFireEnemiesKilled); } public function endGame():void{ stage.removeEventListener(Event.ENTER_FRAME, onEnterFrame); stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); stage.removeEventListener(KeyboardEvent.KEY_UP, onKeyUp); stage.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp); frameMonitor.remove(container); canvas.removeCanvas(container); removeHUD(); } public function startGame():void{ stage.addEventListener(Event.ENTER_FRAME, onEnterFrame, false, 0, true); stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown, false, 0, true); stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp, false, 0, true); gameTimer = new GameTimer(); frameMonitor = new mFramerate(container); canvas = new mCanvas(640, 480, container); objectLayer = new SpriteLayer(640, 480); canvas.addLayer(objectLayer); fireLayer = new ParticleLayer(640, 480); canvas.addLayer(fireLayer); fireGroup = new ParticleGroup(embeds.orangeBoldParticleIMG); fireGroup.initSpeed.isRandom = true; fireGroup.initSpeed.rangeMin = 20; fireGroup.initSpeed.rangeMax = 40; fireGroup.initDirection.isRandom = true; fireGroup.initDirection.rangeMin = 0; fireGroup.initDirection.rangeMax = (Math.PI * 2); fireGroup.initLife.value = 1000; fireGroup.initSize.isRandom = true; fireGroup.initSize.rangeMin = 1; fireGroup.initSize.rangeMax = 2.2; fireGroup.sizeDecay = 2.2; fireGroup.cacheScaling(5, 15); fireLayer.addGroup(fireGroup); explosionGroup = new ParticleGroup(embeds.cyanParticleIMG); explosionGroup.initSpeed.isRandom = true; explosionGroup.initSpeed.rangeMin = 20; explosionGroup.initSpeed.rangeMax = 40; explosionGroup.initDirection.isRandom = true; explosionGroup.initDirection.rangeMin = 0; explosionGroup.initDirection.rangeMax = (Math.PI * 2); explosionGroup.initLife.value = 1000; explosionGroup.initSize.isRandom = true; explosionGroup.initSize.rangeMin = 1; explosionGroup.initSize.rangeMax = 4; explosionGroup.sizeDecay = 4; explosionGroup.cacheScaling(4, 16); fireLayer.addGroup(explosionGroup); collectEsplodeGroup = new ParticleGroup(embeds.collectEsplodeIMG); collectEsplodeGroup.initSpeed.value = 0; collectEsplodeGroup.initDirection.value = 0; collectEsplodeGroup.initLife.value = 1000; collectEsplodeGroup.initSize.value = 0.25; collectEsplodeGroup.sizeDecay = -0.5; collectEsplodeGroup.cacheScaling(1, 32); fireLayer.addGroup(collectEsplodeGroup); collectEsplodePGroup = new ParticleGroup(embeds.yellowParticleIMG); collectEsplodePGroup.initSpeed.isRandom = true; collectEsplodePGroup.initSpeed.rangeMin = 20; collectEsplodePGroup.initSpeed.rangeMax = 40; collectEsplodePGroup.initDirection.isRandom = true; collectEsplodePGroup.initDirection.rangeMin = 0; collectEsplodePGroup.initDirection.rangeMax = (Math.PI * 2); collectEsplodePGroup.initLife.value = 1000; collectEsplodePGroup.initSize.isRandom = true; collectEsplodePGroup.initSize.rangeMin = 1; collectEsplodePGroup.initSize.rangeMax = 4; collectEsplodePGroup.sizeDecay = 4; collectEsplodePGroup.cacheScaling(4, 16); fireLayer.addGroup(collectEsplodePGroup); suicideGroup = new ParticleGroup(embeds.redBoldParticleIMG); suicideGroup.initSpeed.isRandom = true; suicideGroup.initSpeed.rangeMin = 20; suicideGroup.initSpeed.rangeMax = 40; suicideGroup.initDirection.isRandom = true; suicideGroup.initDirection.rangeMin = 0; suicideGroup.initDirection.rangeMax = (Math.PI * 2); suicideGroup.initLife.value = 1000; suicideGroup.initSize.isRandom = true; suicideGroup.initSize.rangeMin = 1; suicideGroup.initSize.rangeMax = 6; suicideGroup.sizeDecay = 6; suicideGroup.cacheScaling(6, 16); fireLayer.addGroup(suicideGroup); UberList = new LinkedList(); SpawnPointList = new LinkedList(); var _local1:StaticSprite = new StaticSprite(embeds.blazeIMG); bob = new Blaze(320, 240, _local1, objectLayer); bob.onDeath = onBobDeath; bob.onHit = onBobHit; UberList.add(bob); alternateSprite = new StaticSprite(embeds.alternateIMG); initHUD(); spawnChanger = new SpawnChanger(); spawnChanger.enemyTimer = (enemyTimer = new SpawnTimer(spawnEnemyPoint, 6000)); spawnChanger.rapidFireTimer = (rapidFireTimer = new SpawnTimer(spawnRapidFireEnemyPoint, 0)); spawnChanger.shotgunTimer = (shotgunTimer = new SpawnTimer(spawnShotgunEnemyPoint, 0)); spawnChanger.beamTimer = (beamTimer = new SpawnTimer(spawnBeamEnemyPoint, 0)); spawnChanger.suicideTimer = (suicideTimer = new SpawnTimer(spawnSuicideEnemyPoint, 0)); spawnChanger.brainlessTimer = (brainlessTimer = new SpawnTimer(spawnBrainlessEnemyPoint, 0)); spawnChanger.blaze = bob; spawnChanger.notification = notification; enemiesKilled = 0; rapidFireEnemiesKilled = 0; shotgunEnemiesKilled = 0; beamEnemiesKilled = 0; suicideEnemiesKilled = 0; brainlessEnemiesKilled = 0; totalEnemiesKilled = 0; energyCollected = 0; powerUpsUsed = 0; score = new MochiDigits(); timeEndured = new MochiDigits(); embeds.musicChannel = embeds.pBlazeThemeIntroSND.play(0, 0, embeds.soundSettings); embeds.musicChannel.addEventListener(Event.SOUND_COMPLETE, onIntroComplete, false, 0, true); slowTime = false; timeEnergy = 5000; timeEnergyThreshold = 2500; timeEnergyMax = 5000; nuked = false; nukedTimer = 0; timeStop = false; timeStopTimer = 0; sized = false; sizeTimer = 0; gravityWell = false; gravityTimer = 0; up = false; down = false; left = false; right = false; multiplier = 1; showMochi = false; ended = false; endedTimer = 0; } public function spawnCanister(_arg1:Number, _arg2:Number, _arg3:Number=0):void{ var _local4:StaticSprite; var _local5:Canister; if (_arg3 == 0){ _arg3 = Math.random(); }; if (_arg3 < 0.4){ _local4 = new StaticSprite(embeds.healthCanisterIMG); _local5 = new Canister(_arg1, _arg2, _local4, objectLayer, bob); if (!knowsAboutEnergy){ _local5.healthDecay = 0; _local5.health = 6; }; _local5.onCollect = onHealthCanisterCollect; } else { if (_arg3 < 0.6){ _local4 = new StaticSprite(embeds.sizeCanisterIMG); _local5 = new Canister(_arg1, _arg2, _local4, objectLayer, bob); _local5.onCollect = onSizeCanisterCollect; } else { if (_arg3 < 0.75){ _local4 = new StaticSprite(embeds.timeCanisterIMG); _local5 = new Canister(_arg1, _arg2, _local4, objectLayer, bob); _local5.onCollect = onTimeCanisterCollect; } else { if (_arg3 < 0.9){ _local4 = new StaticSprite(embeds.bombCanisterIMG); _local5 = new Canister(_arg1, _arg2, _local4, objectLayer, bob); _local5.onCollect = onBombCanisterCollect; } else { if (_arg3 < 1.1){ _local4 = new StaticSprite(embeds.gravityCanisterIMG); _local5 = new Canister(_arg1, _arg2, _local4, objectLayer, bob); _local5.onCollect = onGravityCanisterCollect; }; }; }; }; }; UberList.add(_local5); } public function updateAllGameObjects(_arg1:Number):void{ var _local2:Entity; var _local3:Number; var _local4:Entity; var _local5:SpawnPoint; node = UberList.head; while (node != null) { _local2 = node.data; _local2.updatePositionAndStatus(_arg1); _local2.updateSpecific(_arg1); _local3 = _local2.collisionRadius; if ((_local2.x - _local3) < 0){ _local2.x = _local3; _local2.xv = (_local2.xv * -1); } else { if ((_local2.x + _local3) > BOUND_X){ _local2.x = (BOUND_X - _local3); _local2.xv = (_local2.xv * -1); }; }; if ((_local2.y - _local3) < 0){ _local2.y = _local3; _local2.yv = (_local2.yv * -1); } else { if ((_local2.y + _local3) > BOUND_Y){ _local2.y = (BOUND_Y - _local3); _local2.yv = (_local2.yv * -1); }; }; if (((((gravityWell) && (!((_local2 == bob))))) && (!(timeStop)))){ _local2.xv = (_local2.xv + (((bob.x - _local2.x) * 10) * step)); _local2.yv = (_local2.yv + (((bob.y - _local2.y) * 10) * step)); drawLine(_local2.x, _local2.y, bob.x, bob.y, 4294967295, objectLayer.data); }; if (_local2.isDead){ UberList.removeNode(node); objectLayer.removeSprite(_local2.sprite); }; node2 = node.next; while (node2 != null) { _local4 = node2.data; if (CollisionManager.boundingCheck(_local2, _local4)){ if (CollisionManager.checkAndResolveCollision(_local2, _local4, _arg1)){ if (((!((_local2 is Enemy))) || (!((_local4 is Enemy))))){ CollisionManager.applyDamage(_local2, _local4); }; }; }; node2 = node2.next; }; node = node.next; }; spawnNode = SpawnPointList.head; while (spawnNode != null) { _local5 = spawnNode.data; _local5.update(_arg1); if (_local5.activated){ SpawnPointList.removeNode(spawnNode); objectLayer.removeSprite(_local5.sprite); }; spawnNode = spawnNode.next; }; } public function spawnSuicideEnemyPoint(_arg1:int):void{ var _local2:AnimatedSprite; var _local3:SpawnPoint; while (_arg1 > 0) { _local2 = new AnimatedSprite(embeds.spawnPointSheet, 48, 48, 24); _local3 = new SpawnPoint(spawnSuicideEnemy, _local2, objectLayer); SpawnPointList.add(_local3); _arg1--; }; embeds.spawningSND.play(0, 0, embeds.soundSettings); } public function spawnBrainlessEnemy(_arg1:Number, _arg2:Number):void{ var _local3:StaticSprite = new StaticSprite(embeds.brainlessShipIMG); var _local4:BrainlessEnemy = new BrainlessEnemy(_arg1, _arg2, _local3, objectLayer, bob); _local4.onDeath = onEnemyDeath; _local4.onFire = onBrainlessFire; UberList.add(_local4); explosionGroup.addParticles(_arg1, _arg2, 10); } public function onSizeCanisterCollect(_arg1:Canister):void{ sized = true; canvas.flash(0.75, 500); embeds.powerUpSND.play(0, 0, embeds.soundSettings); powerUpsUsed++; notification.text = "TEMPORARY INVULNERABIITY"; notification.textColor = 0xFFFFFF; } public function updateBlaze():void{ var _local1:Number; canvas.camera.x = (canvas.camera.x - (canvas.camera.x / 2)); canvas.camera.y = (canvas.camera.y - (canvas.camera.y / 2)); if (!mouseControl){ if (((up) && (right))){ bob.accelerate(-(DEGREE_45)); } else { if (((up) && (left))){ bob.accelerate(-(DEGREE_135)); } else { if (((down) && (right))){ bob.accelerate(DEGREE_45); } else { if (((down) && (left))){ bob.accelerate(DEGREE_135); } else { if (up){ bob.accelerate(-(DEGREE_90)); } else { if (down){ bob.accelerate(DEGREE_90); } else { if (left){ bob.accelerate(DEGREE_180); } else { if (right){ bob.accelerate(0); }; }; }; }; }; }; }; }; if (((((((((up) || (right))) || (left))) || (down))) && (!(knowsHowToMove)))){ knowsHowToMove = true; canvas.flash(0.1, 0.5); spawnEnemyPoint(1); }; } else { _local1 = Math.atan2((stage.mouseY - bob.y), (stage.mouseX - bob.x)); bob.accelerate(_local1); drawLine(stage.mouseX, stage.mouseY, bob.x, bob.y, 4294967295, objectLayer.data); }; fireGroup.addParticles(bob.x, bob.y, (10 * bob.percentHealth)); } public function onHealthCanisterCollect(_arg1:Canister):void{ spawnGoodies(_arg1.x, _arg1.y, 10); canvas.flash(0.75, 500); embeds.powerUpSND.play(0, 0, embeds.soundSettings); powerUpsUsed++; notification.text = "ENERGY BOOSTER"; notification.textColor = 0xFFFFFF; } public function spawnRapidFireEnemy(_arg1:Number, _arg2:Number):void{ var _local3:StaticSprite = new StaticSprite(embeds.rapidFireShipIMG); var _local4:RapidFireEnemy = new RapidFireEnemy(_arg1, _arg2, _local3, objectLayer, bob); _local4.onFire = onEnemyFire; _local4.onDeath = onEnemyDeath; UberList.add(_local4); explosionGroup.addParticles(_arg1, _arg2, 10); } public function initHUD():void{ multiplierTimerBar = new BasicBar(multiplierTimerMax, 100, 10, 0xFF8800); multiplierTimerBar.x = 270; multiplierTimerBar.y = 5; container.addChild(multiplierTimerBar); var _local1:TextFormat = new TextFormat(); _local1.font = "VT100"; _local1.size = 8; _local1.color = 0xFFFFFF; _local1.align = TextFormatAlign.CENTER; scoreField = new TextField(); scoreField.selectable = false; scoreField.defaultTextFormat = _local1; scoreField.embedFonts = true; scoreField.antiAliasType = AntiAliasType.ADVANCED; scoreField.gridFitType = GridFitType.PIXEL; scoreField.sharpness = 400; scoreField.x = 270; scoreField.y = 17; comboField = new TextField(); comboField.selectable = false; comboField.defaultTextFormat = _local1; comboField.embedFonts = true; comboField.antiAliasType = AntiAliasType.ADVANCED; comboField.sharpness = 400; comboField.x = 270; comboField.y = 29; container.addChild(scoreField); container.addChild(comboField); var _local2:TextFormat = new TextFormat(); _local2.font = "VT100"; _local2.size = 8; healthOutput = new VariableOutput(container, 440, 446, "ENERGY"); healthOutput.textFormat = _local2; healthBar = new BasicBar(5000, 100, 10, 0xFFFFFF); healthBar.x = 535; healthBar.y = 451; container.addChild(healthBar); timeEnergyOutput = new VariableOutput(container, 447, 458, "POWER"); timeEnergyOutput.textFormat = _local2; timeEnergyBar = new BasicBar(timeEnergyMax, 100, 10, 0xFFFF); timeEnergyBar.x = 535; timeEnergyBar.y = 463; container.addChild(timeEnergyBar); var _local3:TextFormat = new TextFormat(); _local3.size = 16; _local3.align = TextFormatAlign.CENTER; _local3.font = "VT100"; notification = new TextField(); notification.selectable = false; notification.textColor = 0xFFFFFF; notification.defaultTextFormat = _local3; notification.embedFonts = true; notification.antiAliasType = AntiAliasType.ADVANCED; notification.sharpness = 400; notification.x = 0; notification.y = 222; notification.width = 640; container.addChild(notification); tutText = new TextField(); tutText.selectable = false; tutText.defaultTextFormat = _local1; tutText.antiAliasType = AntiAliasType.ADVANCED; tutText.sharpness = 400; tutText.embedFonts = true; tutText.width = 200; tutText.height = 80; tutText.multiline = true; tutText.wordWrap = true; tutText.x = 220; tutText.y = 300; container.addChild(tutText); } public function onMouseDown(_arg1:MouseEvent):void{ if (!mouseControl){ mouseControl = true; notification.text = "SWITCHING TO MOUSE CONTROL"; notification.textColor = 0xFFFFFF; }; if (timeEnergy >= timeEnergyThreshold){ slowTime = true; }; if (((!(knowsAboutBulletTime)) && (knowsHowToMove))){ knowsAboutBulletTime = true; }; if (!knowsHowToMove){ knowsHowToMove = true; canvas.flash(0.1, 0.5); spawnEnemyPoint(1); }; } public function removeHUD():void{ container.removeChild(healthBar); container.removeChild(timeEnergyBar); container.removeChild(multiplierTimerBar); healthOutput.remove(container); timeEnergyOutput.remove(container); container.removeChild(scoreField); container.removeChild(comboField); container.removeChild(notification); } public function spawnBeamEnemy(_arg1:Number, _arg2:Number):void{ var _local3:StaticSprite = new StaticSprite(embeds.beamShipIMG); var _local4:BeamEnemy = new BeamEnemy(_arg1, _arg2, _local3, objectLayer, bob); _local4.onFire = onBeamEnemyFire; _local4.onDeath = onEnemyDeath; UberList.add(_local4); explosionGroup.addParticles(_arg1, _arg2, 10); } } }//package PERPETUALBLAZE
Section 97
//Goodie (PERPETUALBLAZE.Goodie) package PERPETUALBLAZE { import mLib.graphics.*; import NYOS.*; public class Goodie extends Entity { private var target:Blaze; public var collected:Boolean;// = false private static const ATTRACT:Number = 0.01; public function Goodie(_arg1:Number, _arg2:Number, _arg3:StaticSprite, _arg4:SpriteLayer, _arg5:Blaze):void{ super(_arg1, _arg2, _arg3, _arg4); target = _arg5; type = 2; health = 5; speed = 500; decay = 1.5; damage = 0; pierce = 0; armor = 0; collisionRadius = 0; var _local6:Number = ((Math.random() * Math.PI) * 2); xv = (((Math.cos(_local6) * Math.random()) * 300) - 150); yv = (((Math.sin(_local6) * Math.random()) * 300) - 150); } override public function updatePositionAndStatus(_arg1:Number):void{ x = (x + (xv * _arg1)); y = (y + (yv * _arg1)); xv = (xv - ((decay * xv) * _arg1)); yv = (yv - ((decay * yv) * _arg1)); if (health <= 0){ isDead = true; onDeath(this); }; } override public function updateSpecific(_arg1:Number=1):void{ health = (health - _arg1); xv = (xv + (((speed * ATTRACT) * (target.x - _x)) * _arg1)); yv = (yv + (((speed * ATTRACT) * (target.y - _y)) * _arg1)); if (((CollisionManager.boundingCheck(this, target)) && ((health < 4.5)))){ health = 0; target.health = (target.health + 20); collected = true; }; } } }//package PERPETUALBLAZE
Section 98
//MochiBot (PERPETUALBLAZE.MochiBot) package PERPETUALBLAZE { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ if (Security.sandboxType == "localWithFile"){ return (null); }; var _local3:MochiBot = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); var _local4 = "http://core.mochibot.com/my/core.swf"; var _local5:URLVariables = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; var _local6:String = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; var _local7:URLRequest = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; var _local8:Loader = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package PERPETUALBLAZE
Section 99
//PerpetualBlaze (PERPETUALBLAZE.PerpetualBlaze) package PERPETUALBLAZE { import flash.events.*; import flash.display.*; import mLib.graphics.*; import mLib.particles.*; import mochi.as3.*; import flash.text.*; import mLib.utils.*; import flash.net.*; import flash.ui.*; import flash.system.*; public dynamic class PerpetualBlaze extends MovieClip { private var versionField:TextField; private var versionString:String; private var menuCanvas:mCanvas; private var percentage:Number;// = 0 private var pulseIn:Boolean;// = true private var sitesToBlock:Array; private var logo:SimpleButton; private var theta:Number;// = 0 public var embeds:Embeds; private var _gameState:int;// = 0 private var versionNumber:String;// = "1.03" private var scoresButton:SimpleButton; private var beginButton:SimpleButton; private var URL:String; public var version:int;// = 2 public var kongregate; private var titleImage:Bitmap; private var fireGroup:ParticleGroup; private var tehloader:Loader; public var game:Game; private var sitesToLock:Array; private var particleLayer:ParticleLayer; public static const AD:int = 2; public static const FLASH_GAME_LICENSE:int = 0; public static const VIRAL:int = 2; public static const GAME:int = 1; public static const PWNED:int = 3; public static const KONGREGATE:int = 1; private static const MAIN_FONT:Class = PerpetualBlaze_MAIN_FONT; public static const MENU:int = 0; public function PerpetualBlaze():void{ versionString = ("Version " + versionNumber); sitesToLock = []; sitesToBlock = ["mofunzone.com"]; super(); URL = this.root.loaderInfo.url; var _local1:ContextMenu = new ContextMenu(); _local1.hideBuiltInItems(); switch (version){ case 0: versionString = (versionString + "fgl"); break; case 1: versionString = (versionString + "kong"); loadKongregate(); break; case 2: break; }; MochiBot.track(this, "a2047a5e"); MochiServices.connect("ae8a30ac01897b9a", root); embeds = new Embeds(); game = new Game(this); gameState = AD; } public function removeMenu():void{ removeEventListener(Event.ENTER_FRAME, onEnterFrame); beginButton.removeEventListener(MouseEvent.CLICK, onBeginClick); scoresButton.removeEventListener(MouseEvent.CLICK, onScoresClick); logo.removeEventListener(MouseEvent.CLICK, onLogoClick); } public function onLogoClick(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://marmphco.com/"), "_blank"); } public function showAd():void{ var _local1:TextFormat = new TextFormat(); _local1.font = "VT100"; _local1.color = 0xFFFFFF; _local1.size = 16; _local1.align = TextFormatAlign.CENTER; var _local2:TextField = new TextField(); _local2.embedFonts = true; _local2.antiAliasType = AntiAliasType.ADVANCED; _local2.sharpness = 400; _local2.defaultTextFormat = _local1; _local2.cacheAsBitmap = true; _local2.text = "LOADING..."; _local2.width = 640; _local2.y = 180; addChild(_local2); if ((((URL == "flashgamelicense.com")) || ((URL == "www.flashgamelicense.com")))){ gameState = MENU; }; MochiAd.showPreGameAd({clip:root, id:"ae8a30ac01897b9a", res:"640x480", background:0, color:0xDDDDDD, outline:0xFFFFFF, no_bg:true, ad_failed:adFinished, ad_finished:adFinished, ad_skipped:adFinished}); } public function onScoresClick(_arg1:MouseEvent):void{ var e = _arg1; var o:Object = {n:[2, 15, 11, 14, 12, 1, 2, 15, 4, 3, 11, 2, 8, 9, 6, 5], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; var boardID:String = o.f(0, ""); MochiScores.showLeaderboard({boardID:boardID}); } public function showPwned():void{ embeds.pwnedIMG.y = 140; addChild(embeds.pwnedIMG); } public function adFinished():void{ if (((SiteLock.lockToSites(URL, sitesToLock)) || (SiteLock.blackListFromSites(URL, sitesToBlock)))){ gameState = PWNED; } else { gameState = MENU; }; } public function onEnterFrame(_arg1:Event):void{ if (titleImage.alpha == 1){ titleImage.alpha = ((Math.random() * 0.5) + 0.5); } else { titleImage.alpha = 1; }; fireGroup.addParticles(110, 70, 5); fireGroup.addParticles(530, 70, 5); particleLayer.clear(); particleLayer.update(0.02); if (pulseIn){ if (theta >= ((Math.PI / 2) - 0.04)){ pulseIn = false; }; theta = (theta + 0.02); } else { if (theta <= 0.04){ pulseIn = true; }; theta = (theta - 0.02); }; percentage = Math.sin(theta); menuCanvas.backgroundColor = ((4278190080 + (int(((percentage * 0.2) * 0xFF)) << 16)) + (int(((percentage * 0.2) * 136)) << 8)); menuCanvas.render(0.02); } public function get gameState():int{ return (_gameState); } public function drawMenu():void{ menuCanvas = new mCanvas(640, 480, this); particleLayer = new ParticleLayer(640, 480); fireGroup = new ParticleGroup(embeds.orangeBoldParticleIMG); fireGroup.initSpeed.isRandom = true; fireGroup.initSpeed.rangeMin = 20; fireGroup.initSpeed.rangeMax = 40; fireGroup.initDirection.isRandom = true; fireGroup.initDirection.rangeMin = 0; fireGroup.initDirection.rangeMax = (Math.PI * 2); fireGroup.initLife.value = 1000; fireGroup.initSize.isRandom = true; fireGroup.initSize.rangeMin = 1; fireGroup.initSize.rangeMax = 2.2; fireGroup.sizeDecay = 2.2; fireGroup.cacheScaling(5, 15); particleLayer.addGroup(fireGroup); menuCanvas.addLayer(particleLayer); var _local1:TextFormat = new TextFormat(); _local1.color = 0xFFFFFF; _local1.size = 8; _local1.font = "VT100"; versionField = new TextField(); versionField.embedFonts = true; versionField.antiAliasType = AntiAliasType.ADVANCED; versionField.sharpness = 400; versionField.selectable = false; versionField.defaultTextFormat = _local1; versionField.text = (versionString + "\nDeveloped By:"); versionField.width = 100; versionField.x = 5; versionField.y = 410; addChild(versionField); titleImage = embeds.perpetualBlazeTitleIMG; titleImage.x = 120; titleImage.y = 10; addChild(titleImage); logo = new SimpleButton(embeds.marmphcoLOGO, embeds.marmphcoLOGO, embeds.marmphcoLOGO, embeds.marmphcoLOGO); logo.x = 5; logo.y = 440; addChild(logo); beginButton = new SimpleButton(embeds.beginButtonUpIMG, embeds.beginButtonOverIMG, embeds.beginButtonDownIMG, embeds.beginButtonHitIMG); beginButton.x = 270; beginButton.y = 200; addChild(beginButton); scoresButton = new SimpleButton(embeds.scoresButtonUpIMG, embeds.scoresButtonOverIMG, embeds.scoresButtonDownIMG, embeds.beginButtonHitIMG); scoresButton.x = 270; scoresButton.y = 275; addChild(scoresButton); beginButton.addEventListener(MouseEvent.CLICK, onBeginClick, false, 0, true); scoresButton.addEventListener(MouseEvent.CLICK, onScoresClick, false, 0, true); logo.addEventListener(MouseEvent.CLICK, onLogoClick, false, 0, true); addEventListener(Event.ENTER_FRAME, onEnterFrame, false, 0, true); } public function loadComplete(_arg1:Event):void{ kongregate = _arg1.target.content; Security.allowDomain(kongregate.loaderInfo.url); kongregate.services.connect(); } public function onBeginClick(_arg1:MouseEvent):void{ this.focusRect = false; stage.focus = stage; gameState = GAME; } public function removeAllDisplayObjects():void{ while (this.numChildren > 1) { if (this.getChildAt((this.numChildren - 1)) != tehloader){ this.removeChildAt((this.numChildren - 1)); } else { setChildIndex(tehloader, 0); }; }; } public function loadKongregate():void{ var _local1:Object = LoaderInfo(this.root.loaderInfo).parameters; var _local2:String = ((_local1.kongregate_api_path) || ("http://www.kongregate.com/flash/API_AS3_Local.swf")); Security.allowDomain(_local2); var _local3:URLRequest = new URLRequest(_local2); tehloader = new Loader(); tehloader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); tehloader.load(_local3); this.addChild(tehloader); } public function set gameState(_arg1:int):void{ switch (_arg1){ case 0: removeAllDisplayObjects(); drawMenu(); if (embeds.musicChannel){ embeds.musicChannel.stop(); }; break; case 1: removeAllDisplayObjects(); removeMenu(); game.startGame(); break; case 2: showAd(); break; case 3: showPwned(); break; }; _gameState = _arg1; } } }//package PERPETUALBLAZE
Section 100
//PerpetualBlaze_MAIN_FONT (PERPETUALBLAZE.PerpetualBlaze_MAIN_FONT) package PERPETUALBLAZE { import mx.core.*; public class PerpetualBlaze_MAIN_FONT extends FontAsset { } }//package PERPETUALBLAZE
Section 101
//RapidFireEnemy (PERPETUALBLAZE.RapidFireEnemy) package PERPETUALBLAZE { import mLib.graphics.*; import NYOS.*; public class RapidFireEnemy extends Enemy { private var outerLimit:Number;// = 300 private var movingIn:Boolean;// = false private var shotsFired:int;// = 0 public function RapidFireEnemy(_arg1:Number, _arg2:Number, _arg3:StaticSprite, _arg4:SpriteLayer, _arg5:Entity):void{ super(_arg1, _arg2, _arg3, _arg4, _arg5); type = 1; health = 10; speed = 350; decay = 2; damage = 0; pierce = 0; armor = 0; collisionRadius = 12; fireRange = 150; cooldown = 400; score = 500; } override public function updateSpecific(_arg1:Number=1):void{ var _local3:Number; var _local4:Number; cooldownTimer = (cooldownTimer + (1000 * _arg1)); var _local2:Number = (target.x - _x); _local3 = (target.y - _y); _local4 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); if (_local4 > fireRange){ if (movingIn){ xv = (xv + (((_local2 / _local4) * speed) * _arg1)); yv = (yv + (((_local3 / _local4) * speed) * _arg1)); } else { xv = (xv - (((_local2 / _local4) * speed) * _arg1)); yv = (yv - (((_local3 / _local4) * speed) * _arg1)); if (_local4 > outerLimit){ movingIn = true; }; }; } else { if (movingIn){ if (cooldownTimer > cooldown){ if (onFire != null){ onFire(this, target); }; shotsFired++; cooldownTimer = 0; }; if (shotsFired == 5){ movingIn = false; shotsFired = 0; }; } else { xv = (xv - (((_local2 / _local4) * speed) * _arg1)); yv = (yv - (((_local3 / _local4) * speed) * _arg1)); }; }; } } }//package PERPETUALBLAZE
Section 102
//Shield (PERPETUALBLAZE.Shield) package PERPETUALBLAZE { import mLib.graphics.*; import NYOS.*; public class Shield extends Entity { private var target:BrainlessEnemy; public function Shield(_arg1:Number, _arg2:Number, _arg3:StaticSprite, _arg4:SpriteLayer, _arg5:BrainlessEnemy):void{ super(_arg1, _arg2, _arg3, _arg4); target = _arg5; type = 2; health = 5; speed = 300; decay = 1.5; damage = 0; pierce = 0; armor = 0; collisionRadius = 0; } override public function updatePositionAndStatus(_arg1:Number):void{ x = target.x; y = target.y; if (((target.isDead) || (!(target.movingIn)))){ isDead = true; }; } } }//package PERPETUALBLAZE
Section 103
//ShotgunEnemy (PERPETUALBLAZE.ShotgunEnemy) package PERPETUALBLAZE { import mLib.graphics.*; import NYOS.*; public class ShotgunEnemy extends Enemy { private var outerLimit:Number;// = 225 private var movingIn:Boolean;// = false private var shotsFired:int;// = 0 public function ShotgunEnemy(_arg1:Number, _arg2:Number, _arg3:StaticSprite, _arg4:SpriteLayer, _arg5:Entity):void{ super(_arg1, _arg2, _arg3, _arg4, _arg5); type = 1; health = 10; speed = 100; decay = 2; damage = 0; pierce = 0; armor = 0; collisionRadius = 13; fireRange = 175; cooldown = 1000; score = 400; } override public function updateSpecific(_arg1:Number=1):void{ var _local3:Number; var _local4:Number; cooldownTimer = (cooldownTimer + (1000 * _arg1)); var _local2:Number = (target.x - _x); _local3 = (target.y - _y); _local4 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); if (_local4 > fireRange){ if (movingIn){ xv = (xv + (((_local2 / _local4) * speed) * _arg1)); yv = (yv + (((_local3 / _local4) * speed) * _arg1)); } else { xv = (xv - (((_local2 / _local4) * speed) * _arg1)); yv = (yv - (((_local3 / _local4) * speed) * _arg1)); if (_local4 > outerLimit){ movingIn = true; }; }; } else { if (movingIn){ if (cooldownTimer > cooldown){ if (onFire != null){ onFire(this, target); }; shotsFired++; cooldownTimer = 0; }; if (shotsFired == 1){ movingIn = false; shotsFired = 0; }; } else { xv = (xv - (((_local2 / _local4) * speed) * _arg1)); yv = (yv - (((_local3 / _local4) * speed) * _arg1)); }; }; } } }//package PERPETUALBLAZE
Section 104
//SpawnChanger (PERPETUALBLAZE.SpawnChanger) package PERPETUALBLAZE { import flash.text.*; public class SpawnChanger { public var checkFunction:Function; public var blaze:Blaze; public var rapidFireTimer:SpawnTimer; public var beamTimer:SpawnTimer; public var shotgunTimer:SpawnTimer; public var enemyTimer:SpawnTimer; public var notification:TextField; public var brainlessTimer:SpawnTimer; public var suicideTimer:SpawnTimer; public function SpawnChanger():void{ checkFunction = check1; } public function check14(_arg1:Number):void{ } public function check10(_arg1:Number):void{ if (_arg1 > 200){ beamTimer.amount = 2; beamTimer.duration = 8000; notification.text = "WARNING: DIFFICULTY LEVEL UP"; notification.textColor = 0xFFFFFF; checkFunction = check11; }; } public function check11(_arg1:Number):void{ if (_arg1 > 220){ beamTimer.duration = 6000; blaze.healthDecay = 60; notification.text = "WARNING: DIFFICULTY LEVEL UP"; notification.textColor = 0xFFFFFF; checkFunction = check12; }; } public function check1(_arg1:Number):void{ if (_arg1 > 2){ shotgunTimer.duration = 8000; enemyTimer.duration = 5500; enemyTimer.amount = 2; blaze.healthDecay = 25; notification.text = "WARNING: NEW ENEMY APPROACHING"; notification.textColor = 0xFFFFFF; checkFunction = check2; }; } public function check2(_arg1:Number):void{ if (_arg1 > 15){ shotgunTimer.duration = 7500; enemyTimer.duration = 5000; beamTimer.duration = 11000; blaze.healthDecay = 27; notification.text = "WARNING: NEW ENEMY APPROACHING"; notification.textColor = 0xFFFFFF; checkFunction = check3; }; } public function check5(_arg1:Number):void{ if (_arg1 > 60){ enemyTimer.duration = 3500; shotgunTimer.duration = 6500; beamTimer.duration = 9500; suicideTimer.duration = 5000; rapidFireTimer.duration = 7500; blaze.healthDecay = 37; notification.text = "WARNING: NEW ENEMY APPROACHING"; notification.textColor = 0xFFFFFF; checkFunction = check6; }; } public function check7(_arg1:Number):void{ if (_arg1 > 100){ enemyTimer.amount = 3; shotgunTimer.amount = 2; suicideTimer.amount = 2; rapidFireTimer.duration = 6000; blaze.healthDecay = 45; notification.text = "WARNING: DIFFICULTY LEVEL UP"; notification.textColor = 0xFFFFFF; checkFunction = check8; }; } public function check8(_arg1:Number):void{ if (_arg1 > 125){ shotgunTimer.duration = 5000; suicideTimer.duration = 4500; rapidFireTimer.amount = 2; blaze.healthDecay = 50; notification.text = "WARNING: DIFFICULTY LEVEL UP"; notification.textColor = 0xFFFFFF; checkFunction = check9; }; } public function check9(_arg1:Number):void{ if (_arg1 > 150){ enemyTimer.duration = 2500; suicideTimer.duration = 4000; rapidFireTimer.duration = 7000; beamTimer.duration = 6000; notification.text = "WARNING: DIFFICULTY LEVEL UP"; notification.textColor = 0xFFFFFF; checkFunction = check10; }; } public function check3(_arg1:Number):void{ if (_arg1 > 30){ enemyTimer.duration = 4500; rapidFireTimer.duration = 8000; blaze.healthDecay = 30; notification.text = "WARNING: NEW ENEMY APPROACHING"; notification.textColor = 0xFFFFFF; checkFunction = check4; }; } public function check6(_arg1:Number):void{ if (_arg1 > 80){ enemyTimer.duration = 3000; shotgunTimer.duration = 6000; suicideTimer.duration = 5000; rapidFireTimer.duration = 7000; beamTimer.duration = 8000; blaze.healthDecay = 40; notification.text = "WARNING: NEW ENEMY APPROACHING"; notification.textColor = 0xFFFFFF; checkFunction = check7; }; } public function check12(_arg1:Number):void{ if (_arg1 > 250){ beamTimer.duration = 5000; rapidFireTimer.duration = 5000; notification.text = "WARNING: DIFFICULTY LEVEL UP"; notification.textColor = 0xFFFFFF; checkFunction = check13; }; } public function check13(_arg1:Number):void{ if (_arg1 > 280){ shotgunTimer.amount = 2; enemyTimer.amount = 3; notification.text = "WARNING: DIFFICULTY LEVEL UP"; notification.textColor = 0xFFFFFF; checkFunction = check14; }; } public function check4(_arg1:Number):void{ if (_arg1 > 40){ enemyTimer.duration = 4000; shotgunTimer.duration = 7000; beamTimer.duration = 10000; brainlessTimer.duration = 8000; blaze.healthDecay = 35; notification.text = "WARNING: NEW ENEMY APPROACHING"; notification.textColor = 0xFFFFFF; checkFunction = check5; }; } } }//package PERPETUALBLAZE
Section 105
//SpawnPoint (PERPETUALBLAZE.SpawnPoint) package PERPETUALBLAZE { import mLib.graphics.*; public class SpawnPoint { private var y:Number; private var activateTimer:Number;// = 0 public var sprite:AnimatedSprite; public var activated:Boolean;// = false private var x:Number; private var onActivate:Function; public function SpawnPoint(_arg1:Function, _arg2:AnimatedSprite, _arg3:SpriteLayer){ onActivate = _arg1; sprite = _arg2; _arg3.addSprite(_arg2); x = (sprite.x = (Math.random() * 640)); y = (sprite.y = (Math.random() * 480)); } public function update(_arg1:Number):void{ if (activateTimer > 3){ onActivate(x, y); activated = true; } else { activateTimer = (activateTimer + _arg1); sprite.play(_arg1); }; } } }//package PERPETUALBLAZE
Section 106
//SpawnTimer (PERPETUALBLAZE.SpawnTimer) package PERPETUALBLAZE { public class SpawnTimer { public var duration:Number; private var onFire:Function; private var elapsedTime:Number;// = 0 public var amount:int;// = 1 public function SpawnTimer(_arg1:Function, _arg2:Number):void{ onFire = _arg1; duration = _arg2; elapsedTime = duration; } public function update(_arg1:Number=1):void{ if (duration == 0){ return; }; elapsedTime = (elapsedTime + _arg1); if (elapsedTime > duration){ onFire(1); elapsedTime = 0; }; } public function reset():void{ elapsedTime = 0; } } }//package PERPETUALBLAZE
Section 107
//SuicideEnemy (PERPETUALBLAZE.SuicideEnemy) package PERPETUALBLAZE { import mLib.graphics.*; import NYOS.*; public class SuicideEnemy extends Enemy { private var detonating:Boolean;// = false public function SuicideEnemy(_arg1:Number, _arg2:Number, _arg3:StaticSprite, _arg4:SpriteLayer, _arg5:Entity):void{ super(_arg1, _arg2, _arg3, _arg4, _arg5); type = 1; health = 50; speed = 250; decay = 2; damage = 0; pierce = 0; armor = 10; collisionRadius = 10; fireRange = 100; cooldown = 2000; } override public function updateSpecific(_arg1:Number=1):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; if (detonating){ cooldownTimer = (cooldownTimer + (1000 * _arg1)); if (cooldownTimer > cooldown){ if (onFire != null){ onFire(this, target); }; cooldownTimer = 0; health = 0; _local2 = (target.x - _x); _local3 = (target.y - _y); _local4 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); if ((((_local4 < fireRange)) && (!(target.invincible)))){ target.health = (target.health - 300); }; }; } else { _local5 = (target.x - _x); _local6 = (target.y - _y); _local7 = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); if (_local7 > fireRange){ xv = (xv + (((_local5 / _local7) * speed) * _arg1)); yv = (yv + (((_local6 / _local7) * speed) * _arg1)); } else { detonating = true; }; }; } } }//package PERPETUALBLAZE

Library Items

Symbol 1 Sound {PERPETUALBLAZE.Embeds_ESPLODY_SND} [PERPETUALBLAZE.Embeds_ESPLODY_SND]
Symbol 2 Sound {PERPETUALBLAZE.Embeds_PEW_SND} [PERPETUALBLAZE.Embeds_PEW_SND]
Symbol 3 Sound {PERPETUALBLAZE.Embeds_HIT_SND} [PERPETUALBLAZE.Embeds_HIT_SND]
Symbol 4 Sound {PERPETUALBLAZE.Embeds_SPAWNING_SND} [PERPETUALBLAZE.Embeds_SPAWNING_SND]
Symbol 5 Sound {PERPETUALBLAZE.Embeds_RAPID_PEW_SND} [PERPETUALBLAZE.Embeds_RAPID_PEW_SND]
Symbol 6 Sound {PERPETUALBLAZE.Embeds_THEME_INTRO_SND} [PERPETUALBLAZE.Embeds_THEME_INTRO_SND]
Symbol 7 Sound {PERPETUALBLAZE.Embeds_POWER_UP_SND} [PERPETUALBLAZE.Embeds_POWER_UP_SND]
Symbol 8 Sound {PERPETUALBLAZE.Embeds_GOODIE_COLLECT_SND} [PERPETUALBLAZE.Embeds_GOODIE_COLLECT_SND]
Symbol 9 Sound {PERPETUALBLAZE.Embeds_ENEMY_BOOM_SND} [PERPETUALBLAZE.Embeds_ENEMY_BOOM_SND]
Symbol 10 Sound {PERPETUALBLAZE.Embeds_THEME_LOOP_SND} [PERPETUALBLAZE.Embeds_THEME_LOOP_SND]
Symbol 11 Sound {PERPETUALBLAZE.Embeds_VOLCASION_SND} [PERPETUALBLAZE.Embeds_VOLCASION_SND]
Symbol 12 Bitmap {PERPETUALBLAZE.Embeds_RED_BOLD_PARTICLE_IMG}
Symbol 13 Bitmap {PERPETUALBLAZE.Embeds_RAPID_FIRE_SHIP_IMG}
Symbol 14 Bitmap {PERPETUALBLAZE.Embeds_BEGIN_BUTTON_OVER_IMG}
Symbol 15 Font {PERPETUALBLAZE.PerpetualBlaze_MAIN_FONT}
Symbol 16 Bitmap {PERPETUALBLAZE.Embeds_CYAN_PARTICLE_IMG}
Symbol 17 Bitmap {PERPETUALBLAZE.Embeds_COLLECT_ESPLODE_IMG}
Symbol 18 Bitmap {PERPETUALBLAZE.Embeds_BEAM_SHIP_IMG}
Symbol 19 Bitmap {PERPETUALBLAZE.Embeds_SHIELD_IMG}
Symbol 20 Bitmap {PERPETUALBLAZE.Embeds_BRAINLESS_SHIP_IMG}
Symbol 21 Bitmap {PERPETUALBLAZE.Embeds_BEGIN_BUTTON_UP_IMG}
Symbol 22 Bitmap {PERPETUALBLAZE.Embeds_BEGIN_BUTTON_HIT_IMG}
Symbol 23 Bitmap {PERPETUALBLAZE.Embeds_SCORES_BUTTON_DOWN_IMG}
Symbol 24 Bitmap {PERPETUALBLAZE.Embeds_PWNED_IMG}
Symbol 25 Bitmap {PERPETUALBLAZE.Embeds_SHOTGUN_SHIP_IMG}
Symbol 26 Bitmap {PERPETUALBLAZE.Embeds_SUICIDE_SHIP_IMG}
Symbol 27 Bitmap {PERPETUALBLAZE.Embeds_ENEMY_SHOT_ORANGE_IMG}
Symbol 28 Bitmap {PERPETUALBLAZE.Embeds_ALTERNATE_IMG}
Symbol 29 Bitmap {PERPETUALBLAZE.Embeds_SCORES_BUTTON_UP_IMG}
Symbol 30 Bitmap {PERPETUALBLAZE.Embeds_MARMPHCO_LOGO}
Symbol 31 Bitmap {PERPETUALBLAZE.Embeds_IFO_IMG}
Symbol 32 Bitmap {PERPETUALBLAZE.Embeds_MENU_BUTTON_DOWN_IMG}
Symbol 33 Bitmap {PERPETUALBLAZE.Embeds_BLAZE_IMG}
Symbol 34 Bitmap {PERPETUALBLAZE.Embeds_GAME_OVER_IMG}
Symbol 35 Bitmap {PERPETUALBLAZE.Embeds_HEALTH_CANISTER_IMG}
Symbol 36 Bitmap {PERPETUALBLAZE.Embeds_BEGIN_BUTTON_DOWN_IMG}
Symbol 37 Bitmap {PERPETUALBLAZE.Embeds_GRAVITY_CANISTER_IMG}
Symbol 38 Bitmap {PERPETUALBLAZE.Embeds_TIME_CANISTER_IMG}
Symbol 39 Bitmap {PERPETUALBLAZE.Embeds_SIZE_CANISTER_IMG}
Symbol 40 Bitmap {PERPETUALBLAZE.Embeds_SPAWN_POINT_SHEET}
Symbol 41 Bitmap {PERPETUALBLAZE.Embeds_PERPETUAL_BLAZE_TITLE_IMG}
Symbol 42 Bitmap {PERPETUALBLAZE.Embeds_SCORES_BUTTON_OVER_IMG}
Symbol 43 Bitmap {PERPETUALBLAZE.Embeds_BOMB_CANISTER_IMG}
Symbol 44 Bitmap {PERPETUALBLAZE.Embeds_YELLOW_PARTICLE_IMG}
Symbol 45 Bitmap {PERPETUALBLAZE.Embeds_MENU_BUTTON_UP_IMG}
Symbol 46 Bitmap {PERPETUALBLAZE.Embeds_ORANGE_BOLD_PARTICLE_IMG}
Symbol 47 Bitmap {PERPETUALBLAZE.Embeds_MENU_BUTTON_OVER_IMG}

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1459 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 1Symbol 1 as "PERPETUALBLAZE.Embeds_ESPLODY_SND"
ExportAssets (56)Timeline Frame 1Symbol 2 as "PERPETUALBLAZE.Embeds_PEW_SND"
ExportAssets (56)Timeline Frame 1Symbol 3 as "PERPETUALBLAZE.Embeds_HIT_SND"
ExportAssets (56)Timeline Frame 1Symbol 4 as "PERPETUALBLAZE.Embeds_SPAWNING_SND"
ExportAssets (56)Timeline Frame 1Symbol 5 as "PERPETUALBLAZE.Embeds_RAPID_PEW_SND"
ExportAssets (56)Timeline Frame 1Symbol 6 as "PERPETUALBLAZE.Embeds_THEME_INTRO_SND"
ExportAssets (56)Timeline Frame 1Symbol 7 as "PERPETUALBLAZE.Embeds_POWER_UP_SND"
ExportAssets (56)Timeline Frame 1Symbol 8 as "PERPETUALBLAZE.Embeds_GOODIE_COLLECT_SND"
ExportAssets (56)Timeline Frame 1Symbol 9 as "PERPETUALBLAZE.Embeds_ENEMY_BOOM_SND"
ExportAssets (56)Timeline Frame 1Symbol 10 as "PERPETUALBLAZE.Embeds_THEME_LOOP_SND"
ExportAssets (56)Timeline Frame 1Symbol 11 as "PERPETUALBLAZE.Embeds_VOLCASION_SND"
SerialNumber (41)Timeline Frame 1

Labels

"PERPETUALBLAZE_PerpetualBlaze"Frame 1




http://swfchan.com/19/93236/info.shtml
Created: 27/3 -2019 01:07:36 Last modified: 27/3 -2019 01:07:36 Server time: 10/05 -2024 01:02:11