Section 1
//BListBase (alkemiTools.blitting.BListBase)
package alkemiTools.blitting {
import alkemiTools.cachedGFX.*;
public class BListBase {
public var head:CachedClip;
protected var _count:int;
public var tail:CachedClip;
public function BListBase(){
head = (tail = null);
_count = 0;
}
public function remove(_arg1:CachedClip):CachedClip{
if (_arg1.parentList != this){
throw (new Error("Trying to remove a CachedClip from a list it's not a part of"));
};
if (_arg1 == head){
head = _arg1.next;
if (head){
head.prev = null;
};
} else {
_arg1.prev.next = _arg1.next;
};
if (_arg1 == tail){
tail = _arg1.prev;
if (tail){
tail.next = null;
};
} else {
_arg1.next.prev = _arg1.prev;
};
_arg1.prev = null;
_arg1.next = null;
_arg1.parentList = null;
_count--;
return (_arg1);
}
public function get length():int{
return (_count);
}
public function removeHead():CachedClip{
var _local1:CachedClip = head;
if (head){
_local1 = head;
head = _local1.next;
if (head){
head.prev = null;
};
_count--;
_local1.next = null;
_local1.parentList = null;
return (_local1);
};
return (null);
}
public function clear():void{
var _local1:CachedClip;
while (head) {
_local1 = head;
head = head.next;
if (head){
head.prev = null;
};
_local1.next = null;
_local1.parentList = null;
_count--;
};
head = null;
tail = null;
}
public function prepend(_arg1:CachedClip):void{
if (_arg1.parentList){
throw (new Error("Trying to add a CachedClip to a list when it's already in one"));
};
if (head){
head.prev = _arg1;
_arg1.next = head;
head = _arg1;
} else {
head = (tail = _arg1);
};
_arg1.parentList = this;
_count++;
}
public function removeTail():CachedClip{
var _local1:CachedClip = tail;
if (tail){
tail = tail.prev;
if (tail){
tail.next = null;
};
_count--;
_local1.prev = null;
_local1.parentList = null;
return (_local1);
};
return (null);
}
public function append(_arg1:CachedClip):void{
if (_arg1.parentList){
throw (new Error("Trying to add a CachedClip to a list when it's already in one"));
};
if (head){
tail.next = _arg1;
_arg1.prev = tail;
tail = _arg1;
} else {
head = (tail = _arg1);
};
_arg1.parentList = this;
_count++;
}
public function dump():String{
var _local1:String;
var _local2:CachedClip;
var _local3:int;
_local1 = ((" List Content ( " + _count) + " elems ) : \n");
if (!head){
_local1 = (_local1 + "\t vide");
return (_local1);
};
_local2 = head.next;
_local1 = (_local1 + (((("\t head = " + (head) ? ("ID:" + head.id) : head) + ((head == tail)) ? " = tail " : "") + (head.y) ? (("(y=" + head.y) + ")") : "") + "\n"));
_local1 = (_local1 + (("\t\t\t prev = " + (head.prev) ? ("ID:" + head.prev.id) : head.prev) + "\n"));
_local1 = (_local1 + (("\t\t\t next = " + (head.next) ? ("ID:" + head.next.id) : head.next) + "\n"));
_local3++;
while (((_local2) && (!((_local2 == tail))))) {
++_local3;
_local1 = (_local1 + ((((("\t clip " + _local3) + " = ") + (_local2) ? ("ID:" + _local2.id) : _local2) + (_local2.y) ? (("(y=" + _local2.y) + ")") : "") + "\n"));
_local1 = (_local1 + (("\t\t\t prev = " + (_local2.prev) ? ("ID:" + _local2.prev.id) : _local2.prev) + "\n"));
_local1 = (_local1 + (("\t\t\t next = " + (_local2.next) ? ("ID:" + _local2.next.id) : _local2.next) + "\n"));
_local2 = _local2.next;
};
if (head != tail){
_local1 = (_local1 + ((("\t tail = " + (tail) ? ("ID:" + tail.id) : tail) + (tail.y) ? (("(y=" + tail.y) + ")") : "") + "\n"));
_local1 = (_local1 + (("\t\t\t prev = " + (tail.prev) ? ("ID:" + tail.prev.id) : tail.prev) + "\n"));
_local1 = (_local1 + (("\t\t\t next = " + (tail.next) ? ("ID:" + tail.next.id) : tail.next) + "\n"));
};
return (_local1);
}
}
}//package alkemiTools.blitting
Section 2
//BlittingLayer (alkemiTools.blitting.BlittingLayer)
package alkemiTools.blitting {
import flash.display.*;
import alkemiTools.cachedGFX.*;
import alkemiTools.*;
import flash.geom.*;
public class BlittingLayer extends Bitmap {
protected var _renderLists:Array;
protected var _renderPoint:Point;
protected var _renderColTrans:ColorTransform;// = null
protected var _layerRec:Rectangle;
protected var _renderCopy:Boolean;
protected var hasContentToErase:Boolean;
protected var _renderRec:Rectangle;
protected var _renderMatrix:Matrix;
protected var _renderSmoothing:Boolean;
public function BlittingLayer(_arg1:int, _arg2:int, _arg3:Boolean=true, _arg4:Boolean=false):void{
_renderRec = new Rectangle();
_renderMatrix = new Matrix();
_renderPoint = new Point();
_arg1 = (_arg1 * Display_Scaling.SCALE);
_arg2 = (_arg2 * Display_Scaling.SCALE);
super(new BitmapData(_arg1, _arg2, true, 0), "auto", false);
_layerRec = new Rectangle(0, 0, _arg1, _arg2);
_renderLists = [];
_renderCopy = _arg3;
_renderSmoothing = _arg4;
hasContentToErase = false;
}
public function destroy():void{
this.bitmapData.dispose();
removeAllLists();
if (parent){
parent.removeChild(this);
};
}
public function render():void{
var _local3:BListBase;
var _local4:CachedClip;
var _local5:CachedFrame;
if (!this.root){
return;
};
if (hasContentToErase){
bitmapData.fillRect(_layerRec, 0);
hasContentToErase = false;
};
var _local1:int = _renderLists.length;
var _local2:int;
for (;_local2 < _local1;_local2++) {
_local3 = _renderLists[_local2];
if (_local3.head){
_local4 = _local3.head;
} else {
continue;
};
while (_local4) {
if (_local4.visible){
_local5 = _local4.frame;
_renderColTrans = _local4.colorTransform;
if (((((_renderCopy) && (!(_renderColTrans)))) && ((_local4.rotation == 0)))){
_renderRec.width = _local5.width;
_renderRec.height = _local5.height;
_renderPoint.x = ((_local4.x * Display_Scaling.SCALE) - _local5.pivotX);
_renderPoint.y = (((_local4.y * Display_Scaling.SCALE) - ((_local4.z) ? _local4.z : 0 * Display_Scaling.SCALE)) - _local5.pivotY);
bitmapData.copyPixels(_local5.bitmapData, _renderRec, _renderPoint, null, null, true);
} else {
_renderMatrix.identity();
_renderMatrix.translate(-(_local5.pivotX), -(_local5.pivotY));
_renderMatrix.scale(_local4.scaleX, _local4.scaleY);
if (_local4.rotation != 0){
_renderMatrix.rotate(((_local4.rotation / 180) * 3.14159));
};
_renderMatrix.translate((_local4.x * Display_Scaling.SCALE), ((_local4.y * Display_Scaling.SCALE) - ((_local4.z) ? _local4.z : 0 * Display_Scaling.SCALE)));
bitmapData.draw(_local5.bitmapData, _renderMatrix, _renderColTrans, _local4.blendMode, null, _renderSmoothing);
};
hasContentToErase = true;
};
if (_local4.isPlaying){
_local4.update();
};
_local4 = _local4.next;
};
};
}
public function removeRenderList(_arg1:BListBase):void{
var _local2:int;
var _local3:int = (_renderLists.length - 1);
_local2 = _local3;
while (_local2 > -1) {
if (_renderLists[_local2] == _arg1){
_renderLists.splice(_local2, 1);
};
_local2--;
};
}
public function removeAllLists():void{
_renderLists = [];
}
public function addRenderList(_arg1:BListBase):void{
_renderLists.push(_arg1);
}
}
}//package alkemiTools.blitting
Section 3
//BlittingRenderer (alkemiTools.blitting.BlittingRenderer)
package alkemiTools.blitting {
import flash.utils.*;
public class BlittingRenderer {
public var layers:Dictionary;
private var _layersNum:int;// = 0
public function BlittingRenderer():void{
layers = new Dictionary();
}
public function addLayer(_arg1:String, _arg2:int, _arg3:int, _arg4:Boolean=true, _arg5:Boolean=false):BlittingLayer{
_layersNum++;
var _local6:BlittingLayer = new BlittingLayer(_arg2, _arg3, _arg4, _arg5);
layers[_arg1] = _local6;
return (_local6);
}
public function render():void{
var _local1:*;
var _local2:BlittingLayer;
for each (_local1 in layers) {
_local2 = _local1;
_local2.render();
};
}
public function addListToLayer(_arg1:String, _arg2:BListBase){
if (!layers[_arg1]){
throw (new Error(("This layer id does not exist : " + _arg1)));
};
var _local3:BlittingLayer = layers[_arg1];
_local3.addRenderList(_arg2);
}
public function getLayer(_arg1:String):BlittingLayer{
if (!layers[_arg1]){
throw (new Error(("This layer id does not exist : " + _arg1)));
};
return (layers[_arg1]);
}
public function removeListFromLayer(_arg1:String, _arg2:BListBase){
if (!layers[_arg1]){
throw (new Error(("This layer id does not exist : " + _arg1)));
};
var _local3:BlittingLayer = layers[_arg1];
_local3.removeRenderList(_arg2);
}
public function removeLayer(_arg1:String):void{
if (!layers[_arg1]){
throw (new Error(("This layer id does not exist : " + _arg1)));
};
var _local2:BlittingLayer = layers[_arg1];
delete layers[_arg1];
_local2.destroy();
}
}
}//package alkemiTools.blitting
Section 4
//CachedAnimation (alkemiTools.cachedGFX.CachedAnimation)
package alkemiTools.cachedGFX {
import flash.display.*;
import alkemiTools.*;
import flash.geom.*;
public class CachedAnimation {
public var framesArray:Array;
public var length:int;
public var id:String;
public function CachedAnimation(_arg1:MovieClip, _arg2, _arg3:Boolean=true):void{
var _local6:Rectangle;
var _local8:int;
var _local9:int;
var _local12:BitmapData;
var _local13:int;
var _local14:int;
var _local15:MovieClip;
framesArray = [];
super();
id = String(_arg2);
var _local4:MovieClip = _arg1;
var _local5:int = _local4.totalFrames;
var _local7:Matrix = new Matrix();
var _local10:* = _local4.transform.colorTransform;
_local4.scaleX = (_local4.scaleX * Display_Scaling.SCALE);
_local4.scaleY = (_local4.scaleY * Display_Scaling.SCALE);
var _local11 = 1;
while (_local11 <= _local5) {
_local4.gotoAndStop(_local11);
_local6 = _local4.getBounds(_local4);
_local7.identity();
_local7.scale(_local4.scaleX, _local4.scaleY);
_local7.rotate(_local4.rotation);
if (_local4.scaleX > 0){
_local8 = int((-(_local6.x) * _local4.scaleX));
} else {
_local8 = int((-((_local6.width + _local6.x)) * _local4.scaleX));
};
if (_local4.scaleY > 0){
_local9 = int((-(_local6.y) * _local4.scaleY));
} else {
_local9 = int((-((_local6.height + _local6.y)) * _local4.scaleY));
};
_local7.translate(_local8, _local9);
_local12 = new BitmapData(_local4.width, _local4.height, true, 0);
_local12.draw(_local4, _local7, _local10);
framesArray.push(new CachedFrame(_local12, _local8, _local9));
_local13 = _local4.numChildren;
_local14 = 0;
while (_local14 < _local13) {
_local15 = (_local4.getChildAt(_local14) as MovieClip);
if (_local15){
if (_local15.currentFrame == _local15.totalFrames){
if (_arg3){
_local15.gotoAndStop(1);
};
} else {
_local15.gotoAndStop((_local15.currentFrame + 1));
};
};
_local14++;
};
_local11++;
};
_local4 = null;
}
public function clear():void{
var _local1:CachedFrame;
length = 0;
while (framesArray.length > 0) {
_local1 = framesArray.pop();
_local1.clear();
};
framesArray = null;
}
}
}//package alkemiTools.cachedGFX
Section 5
//CachedClip (alkemiTools.cachedGFX.CachedClip)
package alkemiTools.cachedGFX {
import alkemiTools.blitting.*;
import flash.geom.*;
public class CachedClip {
public var y:Number;// = 0
public var isPlayingForward:Boolean;// = true
public var life:int;
private var _animation:CachedAnimation;
public var totalFrames:int;
public var blendMode:String;// = null
public var fAlpha:Number;
public var id:int;
public var vX:Number;
public var isPlaying:Boolean;// = true
public var isOver:Boolean;
public var duration:int;
public var vY:Number;
public var prev:CachedClip;
public var alphaGrowth:Number;
public var scaleGrowthX:Number;
public var colorTransform:ColorTransform;// = null
public var pingPongMode:Boolean;// = false
public var scaleX:Number;// = 1
public var scaleY:Number;// = 1
public var fScaleX:Number;
public var fScaleY:Number;
public var scaleGrowthY:Number;
public var parentList:BListBase;
public var frame:CachedFrame;
public var visible:Boolean;// = true
public var next:CachedClip;
public var currentFrame:int;
public var z:Number;// = NAN
public var isFX:Boolean;
public var rotation:Number;// = 0
public var x:Number;// = 0
private static var _COUNTER = 0;
public function CachedClip(_arg1:CachedAnimation):void{
id = ++_COUNTER;
parentList = null;
animation = _arg1;
}
public function get animation():CachedAnimation{
return (_animation);
}
public function set animation(_arg1:CachedAnimation):void{
if (_arg1){
_animation = _arg1;
currentFrame = 1;
totalFrames = _animation.framesArray.length;
frame = _animation.framesArray[(currentFrame - 1)];
};
}
public function stop():void{
isPlaying = false;
}
public function gotoAndStop(_arg1:int):void{
if (_arg1 <= totalFrames){
isPlaying = false;
currentFrame = _arg1;
frame = _animation.framesArray[(currentFrame - 1)];
};
}
public function play():void{
isPlaying = true;
}
public function reset(_arg1:CachedAnimation=null):void{
x = 0;
y = 0;
z = 0;
rotation = 0;
scaleX = 1;
scaleY = 1;
colorTransform = null;
blendMode = null;
if (_arg1){
_animation = _arg1;
currentFrame = 1;
totalFrames = _animation.framesArray.length;
frame = _animation.framesArray[(currentFrame - 1)];
};
}
public function update():void{
if (isPlaying){
if (isPlayingForward){
currentFrame++;
if (currentFrame > totalFrames){
if (!pingPongMode){
currentFrame = 1;
} else {
currentFrame = (totalFrames - 1);
isPlayingForward = false;
};
};
} else {
currentFrame--;
if (currentFrame < 1){
if (!pingPongMode){
currentFrame = totalFrames;
} else {
currentFrame = 2;
isPlayingForward = true;
};
};
};
frame = _animation.framesArray[(currentFrame - 1)];
};
}
public function clear():void{
next = null;
prev = null;
parentList = null;
colorTransform = null;
_animation = null;
frame = null;
}
public function gotoAndPlay(_arg1:int):void{
if (_arg1 <= totalFrames){
isPlaying = true;
currentFrame = _arg1;
frame = _animation.framesArray[(currentFrame - 1)];
};
}
}
}//package alkemiTools.cachedGFX
Section 6
//CachedDecal (alkemiTools.cachedGFX.CachedDecal)
package alkemiTools.cachedGFX {
import flash.display.*;
import alkemiTools.*;
import flash.geom.*;
public class CachedDecal {
public var width:int;
public var height:int;
public var pivotX:int;
public var pivotY:int;
public var bitmapData:BitmapData;
public var id:String;
public function CachedDecal(_arg1:MovieClip, _arg2):void{
var _local4:Rectangle;
super();
id = String(_arg2);
var _local3:MovieClip = _arg1;
_local3.scaleX = (_local3.scaleX * Display_Scaling.SCALE);
_local3.scaleY = (_local3.scaleY * Display_Scaling.SCALE);
var _local5:Matrix = new Matrix();
var _local6:ColorTransform = _local3.transform.colorTransform;
_local3.gotoAndStop(1);
_local4 = _local3.getBounds(_local3);
_local5.identity();
_local5.scale(_local3.scaleX, _local3.scaleY);
_local5.rotate(_local3.rotation);
if (_local3.scaleX > 0){
pivotX = int((-(_local4.x) * _local3.scaleX));
} else {
pivotX = int((-((_local4.width + _local4.x)) * _local3.scaleX));
};
if (_local3.scaleY > 0){
pivotY = int((-(_local4.y) * _local3.scaleY));
} else {
pivotY = int((-((_local4.height + _local4.y)) * _local3.scaleY));
};
_local5.translate(pivotX, pivotY);
bitmapData = new BitmapData(_local3.width, _local3.height, true, 0);
bitmapData.draw(_local3, _local5, _local6);
width = bitmapData.width;
height = bitmapData.height;
_local3 = null;
}
public function clear():void{
bitmapData.dispose();
bitmapData = null;
}
}
}//package alkemiTools.cachedGFX
Section 7
//CachedFrame (alkemiTools.cachedGFX.CachedFrame)
package alkemiTools.cachedGFX {
import flash.display.*;
public class CachedFrame {
public var pivotX:int;
public var pivotY:int;
public var bitmapData:BitmapData;
public var width:int;
public var height:int;
public function CachedFrame(_arg1:BitmapData, _arg2:int, _arg3:int):void{
bitmapData = _arg1;
pivotX = _arg2;
pivotY = _arg3;
width = bitmapData.width;
height = bitmapData.height;
}
public function clear():void{
bitmapData.dispose();
bitmapData = null;
}
}
}//package alkemiTools.cachedGFX
Section 8
//CachedLibrary (alkemiTools.cachedGFX.CachedLibrary)
package alkemiTools.cachedGFX {
import flash.display.*;
import alkemiTools.*;
import flash.utils.*;
import flash.geom.*;
public class CachedLibrary {
public static var tiles:Dictionary = new Dictionary();
public static var decals:Dictionary = new Dictionary();
public static var animations:Dictionary = new Dictionary();
public static function deleteTile(_arg1):void{
if (tiles[_arg1]){
delete tiles[_arg1];
} else {
throw (new Error("Your trying to delete a tile which is not currently in the Library"));
};
}
public static function deleteDecal(_arg1):void{
if (decals[_arg1]){
delete decals[_arg1];
} else {
throw (new Error("Your trying to delete a decal which is not currently in the Library"));
};
}
public static function addAnimation(_arg1:MovieClip, _arg2, _arg3:Boolean=true):void{
animations[_arg2] = new CachedAnimation(_arg1, _arg2, _arg3);
}
public static function addDecal(_arg1:MovieClip, _arg2):void{
decals[_arg2] = new CachedDecal(_arg1, _arg2);
}
public static function clear():void{
var _local1:*;
for each (_local1 in animations) {
trace(_local1.id);
delete animations[_local1.id];
};
}
public static function addTile(_arg1:MovieClip, _arg2:int, _arg3:int, _arg4):void{
_arg3 = (_arg3 * Display_Scaling.SCALE);
_arg2 = (_arg2 * Display_Scaling.SCALE);
var _local5:BitmapData = new BitmapData(_arg2, _arg3, true, 0);
var _local6:Matrix = new Matrix();
_local6.identity();
_local6.scale(Display_Scaling.SCALE, Display_Scaling.SCALE);
_local5.draw(_arg1, _local6);
tiles[_arg4] = _local5;
}
public static function deleteAnimation(_arg1):void{
if (animations[_arg1]){
delete animations[_arg1];
} else {
throw (new Error("Your trying to delete an animation which is not currently in the Library"));
};
}
}
}//package alkemiTools.cachedGFX
Section 9
//Display_Scaling (alkemiTools.Display_Scaling)
package alkemiTools {
public class Display_Scaling {
public static var SCALE:Number = 1;
}
}//package alkemiTools
Section 10
//KeyboardVirtualStick (alkemiTools.KeyboardVirtualStick)
package alkemiTools {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class KeyboardVirtualStick {
private var _altRightKeyCode:int;
private var _Yaxis:Number;// = 0
private var _timer:Timer;
private var _altUpKeyCode:int;
private var _speed:Number;
private var _rightKeyCode:int;
protected var _keyStates:Object;
private var _upKeyCode:int;
protected var _enabled:Boolean;// = true
private var _altLeftKeyCode:int;
private var _altDownKeyCode:int;
private var _leftKeyCode:int;
private var _downKeyCode:int;
private var _Xaxis:Number;// = 0
protected var _stage:Sprite;
public function KeyboardVirtualStick(_arg1:Sprite, _arg2:Number=0.25, _arg3:int=38, _arg4:int=40, _arg5:int=37, _arg6:int=39, _arg7:int=90, _arg8:int=83, _arg9:int=81, _arg10:int=68):void{
_keyStates = new Object();
super();
defineKeys(_arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10);
_speed = _arg2;
_stage = _arg1;
_stage.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressedHandler);
_stage.stage.addEventListener(KeyboardEvent.KEY_UP, onKeyReleasedHandler);
_stage.stage.addEventListener(Event.DEACTIVATE, onLoseFocus);
_timer = new Timer(50, 0);
_timer.addEventListener(TimerEvent.TIMER, onTimerTick);
_timer.start();
}
public function get Yaxis():Number{
return (_Yaxis);
}
public function defineKeys(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):void{
_upKeyCode = _arg1;
_downKeyCode = _arg2;
_leftKeyCode = _arg3;
_rightKeyCode = _arg4;
_altUpKeyCode = _arg5;
_altDownKeyCode = _arg6;
_altLeftKeyCode = _arg7;
_altRightKeyCode = _arg8;
}
private function eval_Yaxis(){
if (((_keyStates[_upKeyCode]) || (_keyStates[_altUpKeyCode]))){
if (_Yaxis > 0){
_Yaxis = (_Yaxis - (_speed * 2));
} else {
_Yaxis = (_Yaxis - _speed);
};
_Yaxis = ((_Yaxis < -1)) ? -1 : _Yaxis;
return;
};
if (((_keyStates[_downKeyCode]) || (_keyStates[_altDownKeyCode]))){
if (_Yaxis >= 0){
_Yaxis = (_Yaxis + _speed);
} else {
_Yaxis = (_Yaxis + (_speed * 2));
};
_Yaxis = ((_Yaxis > 1)) ? 1 : _Yaxis;
return;
};
_Yaxis = (_Yaxis * 0.5);
if (_Yaxis > 0){
if (_Yaxis < _speed){
_Yaxis = 0;
};
};
if (_Yaxis < 0){
if (_Yaxis > -(_speed)){
_Yaxis = 0;
};
};
}
protected function onGainFocus(_arg1:MouseEvent):void{
_enabled = true;
_stage.stage.removeEventListener(MouseEvent.MOUSE_MOVE, onGainFocus);
}
private function onTimerTick(_arg1:TimerEvent){
eval_Xaxis();
eval_Yaxis();
}
private function eval_Xaxis(){
if (((_keyStates[_leftKeyCode]) || (_keyStates[_altLeftKeyCode]))){
if (_Xaxis > 0){
_Xaxis = (_Xaxis - (_speed * 2));
} else {
_Xaxis = (_Xaxis - _speed);
};
_Xaxis = ((_Xaxis < -1)) ? -1 : _Xaxis;
return;
};
if (((_keyStates[_rightKeyCode]) || (_keyStates[_altRightKeyCode]))){
if (_Xaxis >= 0){
_Xaxis = (_Xaxis + _speed);
} else {
_Xaxis = (_Xaxis + (_speed * 2));
};
_Xaxis = ((_Xaxis > 1)) ? 1 : _Xaxis;
return;
};
_Xaxis = (_Xaxis * 0.5);
if (_Xaxis > 0){
if (_Xaxis < _speed){
_Xaxis = 0;
};
};
if (_Xaxis < 0){
if (_Xaxis > -(_speed)){
_Xaxis = 0;
};
};
}
protected function onKeyPressedHandler(_arg1:KeyboardEvent):void{
var _local2:int = _arg1.keyCode;
if (!_enabled){
return;
};
_keyStates[_local2] = true;
if ((((_local2 == _leftKeyCode)) || ((_local2 == _altLeftKeyCode)))){
_keyStates[_altRightKeyCode] = false;
_keyStates[_rightKeyCode] = false;
} else {
if ((((_local2 == _rightKeyCode)) || ((_local2 == _altRightKeyCode)))){
_keyStates[_leftKeyCode] = false;
_keyStates[_altLeftKeyCode] = false;
} else {
if ((((_local2 == _upKeyCode)) || ((_local2 == _altUpKeyCode)))){
_keyStates[_downKeyCode] = false;
_keyStates[_altDownKeyCode] = false;
} else {
if ((((_local2 == _downKeyCode)) || ((_local2 == _altDownKeyCode)))){
_keyStates[_upKeyCode] = false;
_keyStates[_altUpKeyCode] = false;
};
};
};
};
}
protected function onKeyReleasedHandler(_arg1:KeyboardEvent):void{
if (!_enabled){
return;
};
_keyStates[_arg1.keyCode] = false;
}
public function set enabled(_arg1:Boolean){
_enabled = _arg1;
_Xaxis = 0;
_Yaxis = 0;
if (_arg1){
_timer.start();
} else {
_timer.stop();
};
}
public function get Xaxis():Number{
return (_Xaxis);
}
protected function onLoseFocus(_arg1:Event):void{
var _local2:*;
for (_local2 in _keyStates) {
_keyStates[_local2] = false;
};
}
}
}//package alkemiTools
Section 11
//Achievement (src.Achievement)
package src {
public class Achievement {
public var posY:Number;
public var popX:Number;
public var posX:Number;
public var isTriggered:Boolean;
public var popY:Number;
public var radius:Number;
public var id:String;
public var description:String;
public function Achievement(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0){
isTriggered = false;
id = _arg1;
description = _arg2;
posX = _arg3;
posY = _arg4;
popX = _arg6;
popY = _arg7;
radius = _arg5;
}
}
}//package src
Section 12
//Block (src.Block)
package src {
import flash.display.*;
public class Block extends MovieClip {
public var blockType:int;
public static const NONE:int = 0;
public static const STANDARD:int = 1;
public static const DESTRUCTIBLE:int = 2;
public function Block(){
blockType = Block.STANDARD;
}
}
}//package src
Section 13
//BlockBreakable (src.BlockBreakable)
package src {
public class BlockBreakable extends Block {
public var isBroken;
public function BlockBreakable(){
blockType = Block.DESTRUCTIBLE;
stop();
this["dust_mc"].stop();
isBroken = true;
}
public function pop(){
play();
this["dust_mc"].play();
isBroken = false;
Main.ROOT.soundManager.playCrumbleSnd();
}
public function reset(){
gotoAndStop(1);
this["dust_mc"].gotoAndStop(1);
isBroken = true;
}
}
}//package src
Section 14
//Coin (src.Coin)
package src {
import flash.display.*;
public class Coin extends MovieClip {
public var isAvatarOver:Boolean;
public var isTaken;
public function Coin(){
gotoAndStop(2);
isTaken = true;
isAvatarOver = false;
}
public function pop(){
Main.ROOT.score = (Main.ROOT.score - 10);
isTaken = false;
play();
Main.ROOT.soundManager.playCoinSnd();
}
public function reset(){
gotoAndStop(2);
isTaken = true;
isAvatarOver = false;
}
}
}//package src
Section 15
//Controller (src.Controller)
package src {
import flash.events.*;
import flash.display.*;
import alkemiTools.*;
public class Controller extends KeyboardVirtualStick {
public function Controller(_arg1:Sprite){
super(_arg1, 0.25, 38, 40, 37, 39, 90, 83, 81, 68);
}
override protected function onKeyPressedHandler(_arg1:KeyboardEvent):void{
super.onKeyPressedHandler(_arg1);
if (((((Main.ROOT.currentLevel) && (Main.ROOT.currentLevel.isDying))) && ((Main.ROOT.currentLevel.dieCounter <= 0)))){
Main.ROOT.currentLevel.reset();
};
if (Main.ROOT.mainState == MainState.INTRO){
if (Main.ROOT.introClip.currentFrame < 800){
Main.ROOT.introClip.gotoAndPlay(800);
} else {
Main.ROOT.startFirstLevel();
};
};
if ((((Main.ROOT.mainState == MainState.OUTRO)) && ((Main.ROOT.outroClip.currentFrame == Main.ROOT.outroClip.totalFrames)))){
Main.ROOT.restartGame();
};
}
}
}//package src
Section 16
//Dialogue (src.Dialogue)
package src {
public class Dialogue {
public var posY:Number;
public var posX:Number;
public var isTriggered:Boolean;
public var radius:Number;
public var id:String;
public var description:String;
public function Dialogue(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number=500, _arg5:Number=100){
isTriggered = false;
id = _arg1;
description = _arg2;
posX = _arg3;
posY = _arg4;
radius = _arg5;
}
}
}//package src
Section 17
//FX (src.FX)
package src {
import flash.display.*;
public class FX extends MovieClip {
var vx:Number;// = 0
var vy:Number;// = 0
var f:Number;// = 1
public function init(_arg1:Number, _arg2:Number, _arg3:Number){
vx = _arg1;
vy = _arg2;
f = _arg3;
}
public function update(){
if (vx != 0){
this.x = (this.x + vx);
};
if (vy != 0){
this.y = (this.y + vy);
};
if (this.currentFrame == this.totalFrames){
if (this.parent){
this.parent.removeChild(this);
};
};
}
}
}//package src
Section 18
//Level1 (src.Level1)
package src {
public class Level1 extends LevelBase {
public function Level1(){
super(new Level1_MC(), 800, 390);
achievements.push(new Achievement("1", String("LAST LEVEL COMPLETED").toUpperCase(), 800, 0, 0, 270, 100));
}
}
}//package src
Section 19
//Level10 (src.Level10)
package src {
public class Level10 extends LevelBase {
public function Level10(){
super(new Level10_MC(), 800, 390);
achievements.push(new Achievement("1", String("IMPOSSIBLE SEQUENCE COMPLETE.").toUpperCase(), 700, 0, 0, 270, 200));
}
}
}//package src
Section 20
//Level11 (src.Level11)
package src {
public class Level11 extends LevelBase {
public function Level11(){
super(new Level11_MC(), 800, 90);
}
}
}//package src
Section 21
//Level2 (src.Level2)
package src {
public class Level2 extends LevelBase {
public function Level2(){
super(new Level2_MC(), 800, 390);
}
}
}//package src
Section 22
//Level3 (src.Level3)
package src {
public class Level3 extends LevelBase {
public function Level3(){
super(new Level3_MC(), 800, 300);
achievements.push(new Achievement("1", String("HIGH FALL").toUpperCase(), 300, 0, 0, 270, 100));
}
}
}//package src
Section 23
//Level4 (src.Level4)
package src {
public class Level4 extends LevelBase {
public function Level4(){
super(new Level4_MC(), 800, 90);
achievements.push(new Achievement("1", String("4 HITS COMBO").toUpperCase(), 800, 0, 0, 270, 280));
}
}
}//package src
Section 24
//Level5 (src.Level5)
package src {
public class Level5 extends LevelBase {
public function Level5(){
super(new Level5_MC(), 800, 390);
}
}
}//package src
Section 25
//Level6 (src.Level6)
package src {
public class Level6 extends LevelBase {
public function Level6(){
super(new Level6_MC(), 800, 330);
}
}
}//package src
Section 26
//Level7 (src.Level7)
package src {
public class Level7 extends LevelBase {
public function Level7(){
super(new Level7_MC(), 800, 120);
}
}
}//package src
Section 27
//Level8 (src.Level8)
package src {
public class Level8 extends LevelBase {
public function Level8(){
super(new Level8_MC(), 800, 120);
}
}
}//package src
Section 28
//Level9 (src.Level9)
package src {
public class Level9 extends LevelBase {
public function Level9(){
super(new Level9_MC(), 800, 90);
}
}
}//package src
Section 29
//LevelBase (src.LevelBase)
package src {
import flash.display.*;
import alkemiTools.cachedGFX.*;
import alkemiTools.blitting.*;
public class LevelBase extends Sprite {
private var layer1:BlittingLayer;
public var scoreClip:MovieClip;
protected var cellSize:Number;// = 30
private var posX:Number;
private var posY:Number;
private var coins_holder:Sprite;
protected var cellWidth:int;
protected var startPosX:int;
private var blocs_holder:Sprite;
protected var dialogues:Array;
protected var startPosY:int;
private var bList:BListBase;
public var isDying:Boolean;
private var jumpHeightEnd:Number;
protected var cellHeight:int;
protected var achievements:Array;
protected var achievementClip:MovieClip;
private var isJumpingDown:Boolean;
private var jumpDownSpeed:Number;
private var fx_holder:Sprite;
protected var subClip:MovieClip;
private var renderer:BlittingRenderer;
private var level_holder:MovieClip;
private var avatarClip:CachedClip;
private var vy:Number;
private var avatar_holder:Sprite;
protected var gameOverClip:MovieClip;
private var isFacingRight:Boolean;
public var dieCounter:int;
private var spiders_holder:Sprite;
protected var blockClipsArray:Array;
private var g:Number;
private var avatarWidth:Number;
private var fallUpSpeed:Number;
private var jumpHeightStart:Number;
public var scoreStart:int;
protected var jumpLock:Boolean;
protected var levelClip:MovieClip;
private var runSpeed:Number;
private var isFallingUp:Boolean;
public function LevelBase(_arg1:MovieClip, _arg2:int, _arg3:int){
levelClip = _arg1;
startPosX = _arg2;
startPosY = _arg3;
achievements = new Array();
dialogues = new Array();
}
public function init(){
var _local2:*;
var _local3:Block;
this.addChild(levelClip);
level_holder = levelClip.game_holder;
blocs_holder = new Sprite();
coins_holder = new Sprite();
avatar_holder = new Sprite();
spiders_holder = new Sprite();
fx_holder = new Sprite();
level_holder.addChild(blocs_holder);
level_holder.addChild(coins_holder);
level_holder.addChild(avatar_holder);
level_holder.addChild(spiders_holder);
level_holder.addChild(fx_holder);
renderer = new BlittingRenderer();
layer1 = renderer.addLayer("layer1", Main.WIDTH, Main.HEIGHT, true, false);
bList = new BListBase();
layer1.addRenderList(bList);
avatar_holder.addChild(layer1);
avatarClip = new CachedClip(CachedLibrary.animations["avatar_stand_right"]);
avatarClip.isPlayingForward = false;
bList.append(avatarClip);
scoreStart = Main.ROOT.score;
scoreClip = new Score_MC();
this.addChild(scoreClip);
subClip = new SubTitles_MC();
this.addChild(subClip);
achievementClip = new Achievement_MC();
this.addChild(achievementClip);
gameOverClip = new GameOver_MC();
this.addChild(gameOverClip);
var _local1:int = (levelClip.numChildren - 1);
while (_local1 >= 0) {
_local2 = levelClip.getChildAt(_local1);
if ((_local2 as Block) != null){
blocs_holder.addChild(_local2);
};
if ((_local2 as Spider) != null){
spiders_holder.addChild(_local2);
};
if ((_local2 as Coin) != null){
coins_holder.addChild(_local2);
};
_local1--;
};
cellWidth = (Main.WIDTH / cellSize);
cellHeight = (Main.HEIGHT / cellSize);
blockClipsArray = new Array();
_local1 = 0;
while (_local1 < cellWidth) {
blockClipsArray[_local1] = new Array();
_local1++;
};
_local1 = 0;
while (_local1 < blocs_holder.numChildren) {
_local3 = Block(blocs_holder.getChildAt(_local1));
blockClipsArray[int((_local3.x / cellSize))][int((_local3.y / cellSize))] = _local3;
_local1++;
};
vy = 0;
g = 1;
runSpeed = 5;
fallUpSpeed = 4;
jumpDownSpeed = 4;
avatarWidth = 20;
reset();
}
private function updateAvatarPos(){
var _local1:Number;
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:Spider;
var _local7:int;
var _local8:FX;
if (isFallingUp){
_local1 = (Main.STICK.Xaxis * fallUpSpeed);
} else {
if (isJumpingDown){
_local1 = (Main.STICK.Xaxis * jumpDownSpeed);
} else {
_local1 = (Main.STICK.Xaxis * runSpeed);
};
};
if (_local1 < 0){
isFacingRight = true;
} else {
if (_local1 > 0){
isFacingRight = false;
};
};
if (_local1 > 0){
if (((posX + _local1) + (avatarWidth / 2)) > (Main.WIDTH - 5)){
_local1 = 0;
} else {
if (getBlockTypeAt(((posX + _local1) + (avatarWidth / 2)), (posY - 1)) != 0){
_local1 = 0;
if (getBlockTypeAt(((posX + _local1) + (avatarWidth / 2)), (posY - 1)) == 0){
posX = ((((int((posX / cellSize)) + 1) * cellSize) - (avatarWidth / 2)) - 1);
};
};
};
} else {
if (int((((posX + _local1) - (avatarWidth / 2)) / cellSize)) >= 0){
if (getBlockTypeAt(((posX + _local1) - (avatarWidth / 2)), (posY - 1)) != 0){
_local1 = 0;
if (getBlockTypeAt(((posX + _local1) + (avatarWidth / 2)), (posY - 1)) == 0){
posX = (((int((posX / cellSize)) * cellSize) + (avatarWidth / 2)) + 1);
};
};
};
};
posX = (posX + _local1);
if (isFallingUp){
vy = (vy + g);
if (vy >= 0){
isJumpingDown = true;
isFallingUp = false;
jumpHeightEnd = posY;
};
if (((!((getBlockTypeAt((posX + (avatarWidth / 2)), (posY - 80)) == 0))) && (!((getBlockTypeAt((posX + (avatarWidth / 2)), ((posY - 80) - cellSize)) == 0))))){
isJumpingDown = true;
isFallingUp = false;
jumpHeightEnd = posY;
vy = 0;
};
if (((!((getBlockTypeAt((posX - (avatarWidth / 2)), (posY - 80)) == 0))) && (!((getBlockTypeAt((posX - (avatarWidth / 2)), ((posY - 80) - cellSize)) == 0))))){
isJumpingDown = true;
isFallingUp = false;
jumpHeightEnd = posY;
vy = 0;
};
if (((!((getBlockTypeAt(posX, (posY - 80)) == 0))) && (!((getBlockTypeAt(posX, ((posY - 80) - cellSize)) == 0))))){
isJumpingDown = true;
isFallingUp = false;
jumpHeightEnd = posY;
vy = 0;
};
};
if (Main.STICK.Yaxis == 0){
jumpLock = false;
};
if (((!(isFallingUp)) && (!(isJumpingDown)))){
if (((!(jumpLock)) && ((Main.STICK.Yaxis < 0)))){
isFallingUp = true;
isJumpingDown = false;
jumpLock = true;
_local2 = searchValidLanding();
if (_local2 != -1){
_local4 = int((posY / cellSize));
_local5 = (_local4 - _local2);
switch (_local5){
case 4:
vy = -15;
break;
case 5:
vy = -17;
break;
case 6:
vy = -19;
break;
case 7:
vy = -20.5;
break;
case 8:
vy = -21.6;
break;
case 9:
vy = -22.8;
break;
case 10:
vy = -24;
break;
case 11:
vy = -25.2;
break;
case 12:
vy = -26.4;
break;
case 13:
vy = -27.6;
break;
default:
vy = -13;
break;
};
} else {
vy = -13;
};
_local3 = 0;
while (_local3 < spiders_holder.numChildren) {
_local6 = Spider(spiders_holder.getChildAt(_local3));
if (_local6.currentState == "timer"){
if ((((Math.abs((_local6.x - posX)) < (cellWidth * 1.5))) && ((Math.abs((_local6.y - posY)) < 10)))){
_local6.pop(posX);
_local7 = 0;
while (_local7 < 10) {
_local8 = new Explo_FX();
fx_holder.addChild(_local8);
_local8.rotation = (360 * Math.random());
_local8.x = (_local6.x + _local6.clipBirth.x);
_local8.y = (_local6.y - 20);
_local8.scaleX = ((Math.random() * 0.5) + 0.5);
_local7++;
};
_local8 = new Smoke_Splash();
fx_holder.addChild(_local8);
_local8.x = (_local6.x + _local6.clipBirth.x);
_local8.y = _local6.y;
};
};
_local3++;
};
};
if ((((((getBlockTypeAt((posX + (avatarWidth / 2)), (posY + 5)) == 0)) && ((getBlockTypeAt((posX - (avatarWidth / 2)), (posY + 5)) == 0)))) && ((getBlockTypeAt(posX, (posY + 5)) == 0)))){
isFallingUp = true;
isJumpingDown = false;
vy = -5;
};
};
posY = (posY + vy);
if (isJumpingDown){
vy = (vy + g);
if (((((!((getBlockTypeAt((posX + (avatarWidth / 2)), posY) == 0))) || (!((getBlockTypeAt((posX - (avatarWidth / 2)), posY) == 0))))) || (!((getBlockTypeAt(posX, posY) == 0))))){
posY = (int((posY / cellSize)) * cellSize);
isJumpingDown = false;
vy = 0;
jumpHeightStart = posY;
if ((jumpHeightStart - jumpHeightEnd) > 130){
die("height");
};
};
};
avatarClip.x = posX;
avatarClip.y = posY;
}
private function die(_arg1:String){
isDying = true;
dieCounter = 30;
Main.ROOT.soundManager.playParadoxSnd();
if (isFacingRight){
avatarClip.animation = CachedLibrary.animations["avatar_pain_right"];
} else {
avatarClip.animation = CachedLibrary.animations["avatar_pain_left"];
};
gameOverClip.gotoAndPlay(2);
switch (_arg1){
case "spider_kill_twice":
gameOverClip.cause.tf.text = "This robot exploded later…".toUpperCase();
gameOverClip.explanation.tf.text = "…it could not explode before!".toUpperCase();
gameOverClip.hint.tf.text = "DON'T FALL ON ROBOTS".toUpperCase();
break;
case "spider_touch":
gameOverClip.cause.tf.text = "You reached the end of the level alive…".toUpperCase();
gameOverClip.explanation.tf.text = "…you did not die on the way!".toUpperCase();
gameOverClip.hint.tf.text = "AVOID ROBOTS".toUpperCase();
break;
case "spider_too_late":
gameOverClip.cause.tf.text = "Some points has been obtained…".toUpperCase();
gameOverClip.explanation.tf.text = "…an enemy should have died!".toUpperCase();
gameOverClip.hint.tf.text = "QUICKLY (UN)JUMP FROM FLOATING POINTS".toUpperCase();
break;
case "coin":
gameOverClip.cause.tf.text = "This bonus has been taken later…".toUpperCase();
gameOverClip.explanation.tf.text = "…it can't be collected twice!".toUpperCase();
gameOverClip.hint.tf.text = "AVOID (UN)COLLECTED COINS".toUpperCase();
break;
case "height":
gameOverClip.cause.tf.text = "This was not a fall but a jump...".toUpperCase();
gameOverClip.explanation.tf.text = "…there's no way you could have jump this high!".toUpperCase();
gameOverClip.hint.tf.text = "DON'T (UN)JUMP FROM HIGHER THAN YOU COULD JUMP".toUpperCase();
break;
};
}
private function updateFXs(){
var _local2:FX;
var _local1:int = (fx_holder.numChildren - 1);
while (_local1 >= 0) {
_local2 = FX(fx_holder.getChildAt(_local1));
_local2.update();
_local1--;
};
}
private function updateSpiders(){
var _local2:Spider;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local1:int;
while (_local1 < spiders_holder.numChildren) {
_local2 = Spider(spiders_holder.getChildAt(_local1));
_local2.update();
_local3 = ((((_local2.x + _local2.clipWalk.x) - posX) * ((_local2.x + _local2.clipWalk.x) - posX)) + (((_local2.y - 20) - posY) * ((_local2.y - 20) - posY)));
_local4 = ((((_local2.x + _local2.clipWalk.x) - posX) * ((_local2.x + _local2.clipWalk.x) - posX)) + (((_local2.y - 20) - (posY - 20)) * ((_local2.y - 20) - (posY - 20))));
_local5 = ((((_local2.x + _local2.clipWalk.x) - posX) * ((_local2.x + _local2.clipWalk.x) - posX)) + (((_local2.y - 20) - (posY - 40)) * ((_local2.y - 20) - (posY - 40))));
_local6 = ((((_local2.x + _local2.clipWalk.x) - posX) * ((_local2.x + _local2.clipWalk.x) - posX)) + (((_local2.y - 20) - (posY - 60)) * ((_local2.y - 20) - (posY - 60))));
if (_local2.currentState == "dead"){
if (_local3 < (135 * 135)){
_local2.startTimer();
};
};
if (_local2.currentState == "birth"){
};
if (_local2.currentState == "walk"){
if ((((((((_local3 < (20 * 20))) || ((_local4 < (20 * 20))))) || ((_local5 < (20 * 20))))) || ((_local6 < (20 * 20))))){
if (isJumpingDown){
die("spider_kill_twice");
} else {
die("spider_touch");
};
};
};
if (_local2.currentState == "timer"){
if (_local2.isTimerOver){
die("spider_too_late");
};
};
_local1++;
};
}
private function getBlockTypeAt(_arg1:Number, _arg2:Number, _arg3:Boolean=false):int{
var _local4:int;
var _local5:int;
if (_arg3){
_local4 = int(_arg1);
_local5 = int(_arg2);
} else {
_local4 = int((_arg1 / cellSize));
_local5 = int((_arg2 / cellSize));
};
var _local6:Block = blockClipsArray[_local4][_local5];
if (_local6 == null){
return (0);
};
return (_local6.blockType);
}
private function updateAvatarAnim(){
var _local1:CachedAnimation;
if (((!(isFallingUp)) && (!(isJumpingDown)))){
if (Main.STICK.Xaxis != 0){
if (isFacingRight){
_local1 = CachedLibrary.animations["avatar_run_right"];
} else {
_local1 = CachedLibrary.animations["avatar_run_left"];
};
} else {
if (isFacingRight){
_local1 = CachedLibrary.animations["avatar_stand_right"];
} else {
_local1 = CachedLibrary.animations["avatar_stand_left"];
};
};
};
if (isFallingUp){
if (isFacingRight){
_local1 = CachedLibrary.animations["avatar_fall_right"];
} else {
_local1 = CachedLibrary.animations["avatar_fall_left"];
};
};
if (isJumpingDown){
if (isFacingRight){
_local1 = CachedLibrary.animations["avatar_jump_right"];
} else {
_local1 = CachedLibrary.animations["avatar_jump_left"];
};
};
if (_local1 != avatarClip.animation){
avatarClip.animation = _local1;
avatarClip.gotoAndPlay(avatarClip.totalFrames);
};
if ((((((((avatarClip.animation == CachedLibrary.animations["avatar_jump_right"])) || ((avatarClip.animation == CachedLibrary.animations["avatar_jump_left"])))) || ((avatarClip.animation == CachedLibrary.animations["avatar_fall_right"])))) || ((avatarClip.animation == CachedLibrary.animations["avatar_fall_left"])))){
if (avatarClip.currentFrame == 1){
avatarClip.stop();
};
};
}
public function reset(){
var _local2:*;
var _local3:int;
var _local4:Coin;
var _local5:Spider;
isDying = false;
avatarClip.animation = CachedLibrary.animations["avatar_stand_right"];
posX = startPosX;
posY = startPosY;
jumpHeightEnd = startPosY;
jumpHeightStart = startPosY;
isFacingRight = true;
Main.ROOT.score = scoreStart;
jumpLock = false;
var _local1:int;
while (_local1 < blocs_holder.numChildren) {
_local2 = blocs_holder.getChildAt(_local1);
if ((_local2 as BlockBreakable) != null){
BlockBreakable(_local2).reset();
_local3 = (int((_local2.y / cellSize)) + 1);
while (_local3 < 16) {
if (getBlockTypeAt(_local2.x, (_local3 * cellSize)) == Block.STANDARD){
_local2.dust_mc.y = ((_local3 - int((_local2.y / cellSize))) * cellSize);
break;
};
_local3++;
};
};
_local1++;
};
_local1 = 0;
while (_local1 < coins_holder.numChildren) {
_local4 = Coin(coins_holder.getChildAt(_local1));
_local4.reset();
_local1++;
};
_local1 = 0;
while (_local1 < spiders_holder.numChildren) {
_local5 = Spider(spiders_holder.getChildAt(_local1));
_local5.reset();
_local1++;
};
_local1 = 0;
while (_local1 < achievements.length) {
achievements[_local1].isTriggered = false;
_local1++;
};
_local1 = 0;
while (_local1 < dialogues.length) {
dialogues[_local1].isTriggered = false;
_local1++;
};
subClip.gotoAndStop(1);
achievementClip.gotoAndStop(1);
gameOverClip.gotoAndStop(1);
}
public function update(){
var _local2:Block;
var _local3:Block;
var _local4:FX;
var _local5:Number;
updatePopUps();
if (!isDying){
updateAvatarPos();
};
var _local1:Block = blockClipsArray[int((posX / cellSize))][int((((posY + cellSize) - 5) / cellSize))];
if ((int((posX / cellSize)) + 1) <= (cellWidth - 1)){
_local2 = blockClipsArray[(int((posX / cellSize)) + 1)][int((((posY + cellSize) - 5) / cellSize))];
};
if ((int((posX / cellSize)) - 1) >= 0){
_local3 = blockClipsArray[(int((posX / cellSize)) - 1)][int((((posY + cellSize) - 5) / cellSize))];
};
if ((_local1 as BlockBreakable) != null){
if (BlockBreakable(_local1).isBroken){
BlockBreakable(_local1).pop();
};
};
if ((_local2 as BlockBreakable) != null){
if (BlockBreakable(_local2).isBroken){
BlockBreakable(_local2).pop();
};
};
if ((_local3 as BlockBreakable) != null){
if (BlockBreakable(_local3).isBroken){
BlockBreakable(_local3).pop();
};
};
if (!isDying){
updateCoins();
};
updateFXs();
if (posX < 0){
Main.ROOT.nextLevel();
};
if (isDying){
dieCounter--;
avatarClip.x = ((posX + (Math.random() * 8)) - 4);
avatarClip.y = ((posY + (Math.random() * 8)) - 4);
if (Math.random() > 0.8){
_local4 = new Nova_MC();
fx_holder.addChild(_local4);
_local5 = Math.random();
_local4.x = avatarClip.x;
_local4.y = (avatarClip.y - (Math.random() * 100));
_local4.scaleX = ((Math.random() * 0.8) + 0.6);
_local4.init(0, 0.6, 1);
};
};
if (!isDying){
updateAvatarAnim();
};
if (!isDying){
updateSpiders();
};
renderer.render();
}
private function updateCoins(){
var _local2:Coin;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:FX;
var _local8:Number;
var _local1:int;
while (_local1 < coins_holder.numChildren) {
_local2 = Coin(coins_holder.getChildAt(_local1));
_local3 = (((_local2.x - posX) * (_local2.x - posX)) + ((_local2.y - posY) * (_local2.y - posY)));
_local4 = (((_local2.x - posX) * (_local2.x - posX)) + ((_local2.y - (posY - 20)) * (_local2.y - (posY - 20))));
_local5 = (((_local2.x - posX) * (_local2.x - posX)) + ((_local2.y - (posY - 40)) * (_local2.y - (posY - 40))));
_local6 = (((_local2.x - posX) * (_local2.x - posX)) + ((_local2.y - (posY - 60)) * (_local2.y - (posY - 60))));
if (((_local2.isTaken) || ((_local2.isAvatarOver == true)))){
if (!_local2.isAvatarOver){
if ((((((((_local3 < (20 * 20))) || ((_local4 < (20 * 20))))) || ((_local5 < (20 * 20))))) || ((_local6 < (20 * 20))))){
_local2.isAvatarOver = true;
_local2.pop();
};
if (_local4 < (100 * 100)){
if (Math.random() > 0.5){
_local7 = new Spark_FX();
fx_holder.addChild(_local7);
_local8 = Math.random();
_local7.x = (_local2.x + ((posX - _local2.x) * _local8));
_local7.y = ((((_local2.y - 20) + (((posY - 40) - _local2.y) * _local8)) + (Math.random() * 10)) - 5);
_local7.init(0, 0.6, 1);
};
};
} else {
if ((((((((_local3 > (50 * 50))) && ((_local4 > (50 * 50))))) && ((_local5 > (50 * 50))))) && ((_local6 > (50 * 50))))){
_local2.isAvatarOver = false;
};
};
} else {
if (_local2.isAvatarOver == false){
if ((((((((_local3 < (25 * 25))) || ((_local4 < (25 * 25))))) || ((_local5 < (25 * 25))))) || ((_local6 < (25 * 25))))){
die("coin");
};
};
};
_local1++;
};
}
public function clear(){
var _local2:int;
var _local1:int;
while (_local1 < cellWidth) {
_local2 = 0;
while (_local2 < cellHeight) {
blockClipsArray[_local1][_local2] = null;
_local2++;
};
_local1++;
};
avatarClip.clear();
bList.clear();
}
private function updatePopUps(){
var _local2:Achievement;
var _local3:Dialogue;
var _local1:int;
while (_local1 < achievements.length) {
if (!achievements[_local1].isTriggered){
_local2 = Achievement(achievements[_local1]);
if (posX < _local2.posX){
_local2.isTriggered = true;
achievementClip.gotoAndPlay(2);
achievementClip.x = _local2.popX;
achievementClip.y = _local2.popY;
achievementClip.popup.tf.text = _local2.description;
achievementClip.popup.tf2.text = _local2.description;
};
};
_local1++;
};
_local1 = 0;
while (_local1 < dialogues.length) {
if (!dialogues[_local1].isTriggered){
_local3 = Dialogue(dialogues[_local1]);
if (posX < _local3.posX){
_local3.isTriggered = true;
subClip.gotoAndPlay(2);
subClip.subTitles.sub1_tf.text = _local3.description;
subClip.subTitles.sub2_tf.text = _local3.description;
};
};
_local1++;
};
}
private function searchValidLanding():int{
var _local4:int;
var _local1 = -1;
var _local2:int = int((posX / cellSize));
var _local3:int = int((posY / cellSize));
if (Main.STICK.Xaxis == 0){
if (_local2 > 1){
_local1 = checkColumnLanding((_local2 - 1));
};
if (_local2 < (cellWidth - 1)){
if (_local1 != -1){
if (((!((checkColumnLanding((_local2 + 1)) == -1))) && ((checkColumnLanding((_local2 + 1)) < _local1)))){
_local1 = checkColumnLanding((_local2 + 1));
};
} else {
_local1 = checkColumnLanding((_local2 + 1));
};
};
if (_local1 != -1){
_local4 = (_local3 - 1);
while (_local4 > (_local1 - 2)) {
if (getBlockTypeAt(_local2, _local4, true) != Block.NONE){
_local1 = -1;
};
_local4--;
};
};
};
if (Main.STICK.Xaxis < 0){
if (_local2 > 1){
_local1 = checkColumnLanding((_local2 - 1));
};
if ((((_local1 == -1)) && ((_local2 >= 2)))){
_local1 = checkColumnLanding((_local2 - 2));
};
if ((((_local1 == -1)) && ((_local2 >= 3)))){
_local1 = checkColumnLanding((_local2 - 3));
};
if (_local1 != -1){
_local4 = (_local3 - 1);
while (_local4 > (_local1 - 1)) {
if (getBlockTypeAt(_local2, _local4, true) != Block.NONE){
_local1 = -1;
};
_local4--;
};
};
};
if (Main.STICK.Xaxis > 0){
if (_local2 < (cellWidth - 1)){
_local1 = checkColumnLanding((_local2 + 1));
};
if ((((_local1 == -1)) && ((_local2 < (cellWidth - 2))))){
_local1 = checkColumnLanding((_local2 + 2));
};
if ((((_local1 == -1)) && ((_local2 < (cellWidth - 3))))){
_local1 = checkColumnLanding((_local2 + 3));
};
if (_local1 != -1){
_local4 = (_local3 - 1);
while (_local4 > (_local1 - 1)) {
if (getBlockTypeAt(_local2, _local4, true) != Block.NONE){
_local1 = -1;
};
_local4--;
};
};
};
return (_local1);
}
private function checkColumnLanding(_arg1:Number):int{
var _local2:int = int((posY / cellSize));
var _local3 = 2;
while (_local3 < (_local2 - 3)) {
if (((((!((getBlockTypeAt(_arg1, _local3, true) == Block.NONE))) && ((getBlockTypeAt(_arg1, (_local3 - 1), true) == Block.NONE)))) && ((getBlockTypeAt(_arg1, (_local3 - 2), true) == Block.NONE)))){
return (_local3);
};
_local3++;
};
return (-1);
}
}
}//package src
Section 30
//Main (src.Main)
package src {
import flash.events.*;
import flash.display.*;
import alkemiTools.cachedGFX.*;
public class Main extends MovieClip {
public var outroClip:MovieClip;
public var currentLevel:LevelBase;
private var _score:int;
private var levelHolder:Sprite;
public var mainState:int;
public var introClip:MovieClip;
public var soundManager:SoundManager;
private var currentLevelNum:int;
public static const WIDTH:int = 840;
public static const HEIGHT:int = 480;
public static var STICK:Controller;
public static var ROOT:Main;
public function Main(){
addFrameScript(1, frame2);
ROOT = this;
}
private function startOutro(){
mainState = MainState.OUTRO;
outroClip = new OUTRO_MC();
levelHolder.addChild(outroClip);
outroClip.endScore_mc.score_tf.text = score;
if (score != 0){
outroClip.endScore_mc.comment_tf.text = "How is that even possible ? Maybe you should start over to solve this ultimate paradoxe !";
} else {
outroClip.endScore_mc.comment_tf.text = "You have accomplished the perfect retro-run but is it really the beginning...";
};
}
public function init(){
var _local1:MovieClip;
STICK = new Controller(this);
levelHolder = new Sprite();
addChild(levelHolder);
_local1 = new mc_character_running();
_local1.scaleX = (_local1.scaleY = 0.65);
CachedLibrary.addAnimation(_local1, "avatar_run_right");
_local1 = new mc_character_falling();
_local1.scaleX = (_local1.scaleY = 0.65);
CachedLibrary.addAnimation(_local1, "avatar_fall_right");
_local1 = new mc_character_jumping();
_local1.scaleX = (_local1.scaleY = 0.65);
CachedLibrary.addAnimation(_local1, "avatar_jump_right");
_local1 = new mc_character_pain();
_local1.scaleX = (_local1.scaleY = 0.65);
CachedLibrary.addAnimation(_local1, "avatar_pain_right");
_local1 = new mc_character_standing();
_local1.scaleX = (_local1.scaleY = 0.65);
CachedLibrary.addAnimation(_local1, "avatar_stand_right");
_local1 = new mc_character_running();
_local1.scaleX = -0.65;
_local1.scaleY = 0.65;
CachedLibrary.addAnimation(_local1, "avatar_run_left");
_local1 = new mc_character_falling();
_local1.scaleX = -0.65;
_local1.scaleY = 0.65;
CachedLibrary.addAnimation(_local1, "avatar_fall_left");
_local1 = new mc_character_jumping();
_local1.scaleX = -0.65;
_local1.scaleY = 0.65;
CachedLibrary.addAnimation(_local1, "avatar_jump_left");
_local1 = new mc_character_pain();
_local1.scaleX = -0.65;
_local1.scaleY = 0.65;
CachedLibrary.addAnimation(_local1, "avatar_pain_left");
_local1 = new mc_character_standing();
_local1.scaleX = -0.65;
_local1.scaleY = 0.65;
CachedLibrary.addAnimation(_local1, "avatar_stand_left");
addEventListener(Event.ENTER_FRAME, update);
soundManager = new SoundManager();
soundManager.playMusic();
startGame();
}
public function nextLevel(){
currentLevel.clear();
levelHolder.removeChild(currentLevel);
currentLevelNum++;
currentLevel = null;
switch (currentLevelNum){
case 2:
currentLevel = new Level2();
break;
case 3:
currentLevel = new Tunnel1();
break;
case 4:
currentLevel = new Level3();
break;
case 5:
currentLevel = new Level4();
break;
case 6:
currentLevel = new Tunnel2();
break;
case 7:
currentLevel = new Level5();
break;
case 8:
currentLevel = new Level6();
break;
case 9:
currentLevel = new Tunnel3();
break;
case 10:
currentLevel = new Level7();
break;
case 11:
currentLevel = new Tunnel4();
break;
case 12:
currentLevel = new Level8();
break;
case 13:
currentLevel = new Tunnel5();
break;
case 14:
currentLevel = new Level9();
break;
case 15:
currentLevel = new Tunnel6();
break;
case 16:
currentLevel = new Level10();
break;
case 17:
currentLevel = new Tunnel7();
break;
case 18:
currentLevel = new Level11();
break;
case 19:
currentLevel = new Tunnel8();
break;
case 20:
currentLevel = null;
startOutro();
break;
};
if (currentLevel != null){
currentLevel.init();
levelHolder.addChild(currentLevel);
};
}
public function get score():int{
return (_score);
}
public function restartGame(){
levelHolder.removeChild(outroClip);
startGame();
}
public function set score(_arg1){
_score = _arg1;
if (currentLevel){
currentLevel.scoreClip.score1_tf.text = _score;
currentLevel.scoreClip.score2_tf.text = _score;
};
}
function frame2(){
init();
stop();
}
private function update(_arg1:Event){
soundManager.update();
switch (mainState){
case MainState.OUTRO:
break;
case MainState.GAME:
currentLevel.update();
break;
case MainState.INTRO:
break;
default:
break;
};
}
private function startGame(){
mainState = MainState.INTRO;
introClip = new INTRO_MC();
levelHolder.addChild(introClip);
}
public function startFirstLevel(){
mainState = MainState.GAME;
levelHolder.removeChild(introClip);
currentLevel = new Level1();
currentLevelNum = 1;
levelHolder.addChild(currentLevel);
currentLevel.init();
score = 2030;
currentLevel.scoreStart = score;
}
}
}//package src
Section 31
//MainState (src.MainState)
package src {
public class MainState {
public static const GAME:int = 1;
public static const INTRO:int = 3;
public static const PAUSE:int = 2;
public static const OUTRO:int = 4;
}
}//package src
Section 32
//SoundManager (src.SoundManager)
package src {
import flash.events.*;
import flash.media.*;
public class SoundManager {
private var music_channel:SoundChannel;
private var explo_snd:Sound;
private var music_snd:Sound;
private var inhibCrumbleCnt;
private var paradox_snd:Sound;
private var coin_snd:Sound;
private var fx_channel:SoundChannel;
private var crumble_snd:Sound;
public function SoundManager(){
music_snd = new Music_Snd();
explo_snd = new Explo_Snd();
coin_snd = new Coin_Snd();
crumble_snd = new Crumble_Snd();
paradox_snd = new Paradox_Snd();
}
public function playCrumbleSnd(){
if (inhibCrumbleCnt > 0){
return;
};
fx_channel = crumble_snd.play();
inhibCrumbleCnt = 20;
}
public function playCoinSnd(){
fx_channel = coin_snd.play();
}
public function playParadoxSnd(){
fx_channel = paradox_snd.play();
}
public function update(){
inhibCrumbleCnt--;
}
public function playExploSnd(){
fx_channel = explo_snd.play();
}
public function playMusic(){
music_channel = music_snd.play();
music_channel.addEventListener(Event.SOUND_COMPLETE, onMusicComplete);
}
private function onMusicComplete(_arg1:Event){
playMusic();
}
}
}//package src
Section 33
//Spider (src.Spider)
package src {
import flash.display.*;
public class Spider extends MovieClip {
private var isGoingRight:Boolean;
public var isTimerOver:Boolean;
public var clipBirth:MovieClip;
public var clipWalk:MovieClip;
public var clipTime:MovieClip;
public var currentState:String;
public function Spider(){
clipWalk = this["walk_mc"];
clipBirth = this["rebirth_mc"];
clipTime = this["time_mc"];
}
public function startTimer(){
currentState = "timer";
clipTime.visible = true;
clipTime.play();
}
public function reset(){
currentState = "dead";
isTimerOver = false;
clipWalk.visible = false;
clipWalk.stop();
clipTime.visible = false;
clipTime.gotoAndStop(1);
clipBirth.visible = true;
clipBirth.gotoAndStop(1);
if (Math.random() > 0.5){
isGoingRight = true;
} else {
isGoingRight = false;
};
}
public function update(){
if (currentState == "timer"){
if (clipTime.currentFrame == clipTime.totalFrames){
isTimerOver = true;
clipTime.stop();
};
};
if (currentState == "birth"){
if (clipBirth.currentFrame == clipBirth.totalFrames){
clipBirth.stop();
clipBirth.visible = false;
clipWalk.visible = true;
clipWalk.play();
currentState = "walk";
};
};
if (currentState == "walk"){
if (isGoingRight){
clipWalk.x = (clipWalk.x + 1);
if (clipWalk.x > 40){
clipWalk.x = 40;
isGoingRight = false;
};
} else {
clipWalk.x = (clipWalk.x - 1);
if (clipWalk.x < -40){
clipWalk.x = -40;
isGoingRight = true;
};
};
};
}
public function pop(_arg1:Number){
currentState = "birth";
clipTime.visible = false;
clipTime.stop();
clipBirth.play();
clipBirth.x = (_arg1 - this.x);
clipWalk.x = (_arg1 - this.x);
Main.ROOT.score = (Main.ROOT.score - 100);
Main.ROOT.soundManager.playExploSnd();
}
}
}//package src
Section 34
//Tunnel1 (src.Tunnel1)
package src {
public class Tunnel1 extends LevelBase {
public function Tunnel1(){
super(new Level0_MC(), 820, 300);
dialogues.push(new Dialogue("1", String("Zeit: ...DER ANSWER IST: YOU!").toUpperCase(), 800));
dialogues.push(new Dialogue("2", String("Zeit: GUESS VOO IST TOO LATE TO STOP ME NOW?...").toUpperCase(), 300));
}
}
}//package src
Section 35
//Tunnel2 (src.Tunnel2)
package src {
public class Tunnel2 extends LevelBase {
public function Tunnel2(){
super(new Level0_MC(), 820, 300);
dialogues.push(new Dialogue("1", String("Zeit: ...Und it vas hell!").toUpperCase(), 800));
dialogues.push(new Dialogue("2", String("Zeit: I'm free now, but I remember die jail...").toUpperCase(), 300));
}
}
}//package src
Section 36
//Tunnel3 (src.Tunnel3)
package src {
public class Tunnel3 extends LevelBase {
public function Tunnel3(){
super(new Level0_MC(), 820, 300);
dialogues.push(new Dialogue("1", String("Zeit: Even if I must die bevore. Even if everyone must die!").toUpperCase(), 800));
dialogues.push(new Dialogue("2", String("Zeit: You vaste your time. I'll never vork for you again.").toUpperCase(), 300));
}
}
}//package src
Section 37
//Tunnel4 (src.Tunnel4)
package src {
public class Tunnel4 extends LevelBase {
public function Tunnel4(){
super(new Level0_MC(), 820, 300);
dialogues.push(new Dialogue("1", String("Zeit: Mein gott, I'm laughing und crying all ze time zince then!").toUpperCase(), 800));
dialogues.push(new Dialogue("2", String("Zeit: Ja, ja… I'll alvays remember I had to vatch her die.").toUpperCase(), 300));
}
}
}//package src
Section 38
//Tunnel5 (src.Tunnel5)
package src {
public class Tunnel5 extends LevelBase {
public function Tunnel5(){
super(new Level0_MC(), 820, 300);
dialogues.push(new Dialogue("1", String("Zeit: Und zen, ze electrezity started...").toUpperCase(), 800));
dialogues.push(new Dialogue("2", String("Zeit: Helena… Der look in her eyes ven you brought her in front of me...").toUpperCase(), 300));
}
}
}//package src
Section 39
//Tunnel6 (src.Tunnel6)
package src {
public class Tunnel6 extends LevelBase {
public function Tunnel6(){
super(new Level0_MC(), 820, 300);
dialogues.push(new Dialogue("1", String("Diz is ze true purpose of ze Retroactivator.").toUpperCase(), 800));
dialogues.push(new Dialogue("2", String("Eraze this time, eraze diz reality...").toUpperCase(), 300));
}
}
}//package src
Section 40
//Tunnel7 (src.Tunnel7)
package src {
public class Tunnel7 extends LevelBase {
public function Tunnel7(){
super(new Level0_MC(), 820, 300);
dialogues.push(new Dialogue("1", String("Zeit: Das ist mein last hope to see her. In ein hour.").toUpperCase(), 800));
dialogues.push(new Dialogue("2", String("Zeit: You took mein Helena, but maybe… I vill see her again…").toUpperCase(), 300));
}
}
}//package src
Section 41
//Tunnel8 (src.Tunnel8)
package src {
public class Tunnel8 extends LevelBase {
public function Tunnel8(){
super(new Level0_MC(), 820, 300);
achievements.push(new Achievement("1", String("THANKS FOR PLAYING 'THE LAST HOPE OF DOCTOR ZEIT'").toUpperCase(), 500, 0, 0, 270, 50));
dialogues.push(new Dialogue("1", String("Zeit: But I’m afraid you're too late to stop my plans.").toUpperCase(), 800));
dialogues.push(new Dialogue("2", String("Zeit: Ach! Bienvenue mein lieber Agent! Make yourzelf at home...").toUpperCase(), 300));
}
}
}//package src
Section 42
//dust_block1_129 (TFP_fla.dust_block1_129)
package TFP_fla {
import flash.display.*;
public dynamic class dust_block1_129 extends MovieClip {
public function dust_block1_129(){
addFrameScript(24, frame25);
}
function frame25(){
stop();
}
}
}//package TFP_fla
Section 43
//Achievement_MC (Achievement_MC)
package {
import flash.display.*;
public dynamic class Achievement_MC extends MovieClip {
public var popup:MovieClip;
public function Achievement_MC(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 44
//BlockBreak1 (BlockBreak1)
package {
import src.*;
public dynamic class BlockBreak1 extends BlockBreakable {
public function BlockBreak1(){
addFrameScript(24, frame25);
}
function frame25(){
stop();
}
}
}//package
Section 45
//Coin_MC (Coin_MC)
package {
import src.*;
public dynamic class Coin_MC extends Coin {
public function Coin_MC(){
addFrameScript(26, frame27);
}
function frame27(){
stop();
}
}
}//package
Section 46
//Coin_Snd (Coin_Snd)
package {
import flash.media.*;
public dynamic class Coin_Snd extends Sound {
}
}//package
Section 47
//Crumble_Snd (Crumble_Snd)
package {
import flash.media.*;
public dynamic class Crumble_Snd extends Sound {
}
}//package
Section 48
//Explo_FX (Explo_FX)
package {
import src.*;
public dynamic class Explo_FX extends FX {
}
}//package
Section 49
//Explo_Snd (Explo_Snd)
package {
import flash.media.*;
public dynamic class Explo_Snd extends Sound {
}
}//package
Section 50
//GameOver_MC (GameOver_MC)
package {
import flash.display.*;
public dynamic class GameOver_MC extends MovieClip {
public var explanation:MovieClip;
public var hint:MovieClip;
public var cause:MovieClip;
public function GameOver_MC(){
addFrameScript(0, frame1, 72, frame73);
}
function frame1(){
stop();
}
function frame73(){
stop();
}
}
}//package
Section 51
//INTRO_MC (INTRO_MC)
package {
import flash.display.*;
public dynamic class INTRO_MC extends MovieClip {
public function INTRO_MC(){
addFrameScript(901, frame902);
}
function frame902(){
stop();
}
}
}//package
Section 52
//Level0_MC (Level0_MC)
package {
import flash.display.*;
public dynamic class Level0_MC extends MovieClip {
public var game_holder:MovieClip;
}
}//package
Section 53
//Level1_MC (Level1_MC)
package {
import flash.display.*;
public dynamic class Level1_MC extends MovieClip {
public var game_holder:MovieClip;
}
}//package
Section 54
//Level10_MC (Level10_MC)
package {
import flash.display.*;
public dynamic class Level10_MC extends MovieClip {
public var game_holder:MovieClip;
}
}//package
Section 55
//Level11_MC (Level11_MC)
package {
import flash.display.*;
public dynamic class Level11_MC extends MovieClip {
public var game_holder:MovieClip;
}
}//package
Section 56
//Level2_MC (Level2_MC)
package {
import flash.display.*;
public dynamic class Level2_MC extends MovieClip {
public var game_holder:MovieClip;
}
}//package
Section 57
//Level3_MC (Level3_MC)
package {
import flash.display.*;
public dynamic class Level3_MC extends MovieClip {
public var game_holder:MovieClip;
}
}//package
Section 58
//Level4_MC (Level4_MC)
package {
import flash.display.*;
public dynamic class Level4_MC extends MovieClip {
public var game_holder:MovieClip;
}
}//package
Section 59
//Level5_MC (Level5_MC)
package {
import flash.display.*;
public dynamic class Level5_MC extends MovieClip {
public var game_holder:MovieClip;
}
}//package
Section 60
//Level6_MC (Level6_MC)
package {
import flash.display.*;
public dynamic class Level6_MC extends MovieClip {
public var game_holder:MovieClip;
}
}//package
Section 61
//Level7_MC (Level7_MC)
package {
import flash.display.*;
public dynamic class Level7_MC extends MovieClip {
public var game_holder:MovieClip;
}
}//package
Section 62
//Level8_MC (Level8_MC)
package {
import flash.display.*;
public dynamic class Level8_MC extends MovieClip {
public var game_holder:MovieClip;
}
}//package
Section 63
//Level9_MC (Level9_MC)
package {
import flash.display.*;
public dynamic class Level9_MC extends MovieClip {
public var game_holder:MovieClip;
}
}//package
Section 64
//mc_character_falling (mc_character_falling)
package {
import flash.display.*;
public dynamic class mc_character_falling extends MovieClip {
}
}//package
Section 65
//mc_character_jumping (mc_character_jumping)
package {
import flash.display.*;
public dynamic class mc_character_jumping extends MovieClip {
}
}//package
Section 66
//mc_character_pain (mc_character_pain)
package {
import flash.display.*;
public dynamic class mc_character_pain extends MovieClip {
}
}//package
Section 67
//mc_character_running (mc_character_running)
package {
import flash.display.*;
public dynamic class mc_character_running extends MovieClip {
}
}//package
Section 68
//mc_character_standing (mc_character_standing)
package {
import flash.display.*;
public dynamic class mc_character_standing extends MovieClip {
}
}//package
Section 69
//Music_Snd (Music_Snd)
package {
import flash.media.*;
public dynamic class Music_Snd extends Sound {
}
}//package
Section 70
//Nova_MC (Nova_MC)
package {
import src.*;
public dynamic class Nova_MC extends FX {
}
}//package
Section 71
//OUTRO_MC (OUTRO_MC)
package {
import flash.display.*;
public dynamic class OUTRO_MC extends MovieClip {
public var endScore_mc:MovieClip;
public function OUTRO_MC(){
addFrameScript(336, frame337);
}
function frame337(){
stop();
}
}
}//package
Section 72
//Paradox_Snd (Paradox_Snd)
package {
import flash.media.*;
public dynamic class Paradox_Snd extends Sound {
}
}//package
Section 73
//Score_MC (Score_MC)
package {
import flash.display.*;
import flash.text.*;
public dynamic class Score_MC extends MovieClip {
public var score2_tf:TextField;
public var score1_tf:TextField;
}
}//package
Section 74
//Smoke_Splash (Smoke_Splash)
package {
import src.*;
public dynamic class Smoke_Splash extends FX {
}
}//package
Section 75
//SmokeToLeft_MC (SmokeToLeft_MC)
package {
import flash.display.*;
public dynamic class SmokeToLeft_MC extends MovieClip {
}
}//package
Section 76
//SmokeToRight_MC (SmokeToRight_MC)
package {
import flash.display.*;
public dynamic class SmokeToRight_MC extends MovieClip {
}
}//package
Section 77
//Spark_FX (Spark_FX)
package {
import src.*;
public dynamic class Spark_FX extends FX {
}
}//package
Section 78
//Spider_MC_3sec (Spider_MC_3sec)
package {
import src.*;
public dynamic class Spider_MC_3sec extends Spider {
}
}//package
Section 79
//SubTitles_MC (SubTitles_MC)
package {
import flash.display.*;
public dynamic class SubTitles_MC extends MovieClip {
public var subTitles:MovieClip;
public function SubTitles_MC(){
addFrameScript(146, frame147);
}
function frame147(){
stop();
}
}
}//package
Section 80
//tile_black (tile_black)
package {
import src.*;
public dynamic class tile_black extends Block {
}
}//package
Section 81
//tile_deco1 (tile_deco1)
package {
import src.*;
public dynamic class tile_deco1 extends Block {
}
}//package
Section 82
//tile_deco2 (tile_deco2)
package {
import src.*;
public dynamic class tile_deco2 extends Block {
}
}//package
Section 83
//tile_deco3 (tile_deco3)
package {
import src.*;
public dynamic class tile_deco3 extends Block {
}
}//package
Section 84
//tile_deco4 (tile_deco4)
package {
import src.*;
public dynamic class tile_deco4 extends Block {
}
}//package
Section 85
//tile_decoBlack1_1 (tile_decoBlack1_1)
package {
import src.*;
public dynamic class tile_decoBlack1_1 extends Block {
}
}//package
Section 86
//tile_decoBlack1_2 (tile_decoBlack1_2)
package {
import src.*;
public dynamic class tile_decoBlack1_2 extends Block {
}
}//package
Section 87
//tile_decoBlack1_3 (tile_decoBlack1_3)
package {
import src.*;
public dynamic class tile_decoBlack1_3 extends Block {
}
}//package
Section 88
//tile_decoBlack1_4 (tile_decoBlack1_4)
package {
import src.*;
public dynamic class tile_decoBlack1_4 extends Block {
}
}//package
Section 89
//tile_decoBlack2_3 (tile_decoBlack2_3)
package {
import src.*;
public dynamic class tile_decoBlack2_3 extends Block {
}
}//package
Section 90
//tile_decoBlack2_4 (tile_decoBlack2_4)
package {
import src.*;
public dynamic class tile_decoBlack2_4 extends Block {
}
}//package
Section 91
//tile_decoBlack3_1 (tile_decoBlack3_1)
package {
import src.*;
public dynamic class tile_decoBlack3_1 extends Block {
}
}//package
Section 92
//tile_decoBlack3_2 (tile_decoBlack3_2)
package {
import src.*;
public dynamic class tile_decoBlack3_2 extends Block {
}
}//package
Section 93
//tile_decoBlack3_3 (tile_decoBlack3_3)
package {
import src.*;
public dynamic class tile_decoBlack3_3 extends Block {
}
}//package
Section 94
//tile_decoBlack3_4 (tile_decoBlack3_4)
package {
import src.*;
public dynamic class tile_decoBlack3_4 extends Block {
}
}//package
Section 95
//tile_decoBlack4_1 (tile_decoBlack4_1)
package {
import src.*;
public dynamic class tile_decoBlack4_1 extends Block {
}
}//package
Section 96
//tile_decoBlack4_2 (tile_decoBlack4_2)
package {
import src.*;
public dynamic class tile_decoBlack4_2 extends Block {
}
}//package
Section 97
//tile_decoBlack4_3 (tile_decoBlack4_3)
package {
import src.*;
public dynamic class tile_decoBlack4_3 extends Block {
}
}//package
Section 98
//tile_decoBlack4_4 (tile_decoBlack4_4)
package {
import src.*;
public dynamic class tile_decoBlack4_4 extends Block {
}
}//package
Section 99
//tile_ground_light (tile_ground_light)
package {
import src.*;
public dynamic class tile_ground_light extends Block {
}
}//package
Section 100
//tile_ground_standard (tile_ground_standard)
package {
import src.*;
public dynamic class tile_ground_standard extends Block {
}
}//package
Section 101
//tile_light (tile_light)
package {
import src.*;
public dynamic class tile_light extends Block {
}
}//package
Section 102
//tile_pipe_corner1 (tile_pipe_corner1)
package {
import src.*;
public dynamic class tile_pipe_corner1 extends Block {
}
}//package
Section 103
//tile_pipe_corner2 (tile_pipe_corner2)
package {
import src.*;
public dynamic class tile_pipe_corner2 extends Block {
}
}//package
Section 104
//tile_pipe_end (tile_pipe_end)
package {
import src.*;
public dynamic class tile_pipe_end extends Block {
}
}//package
Section 105
//tile_pipe_vert (tile_pipe_vert)
package {
import src.*;
public dynamic class tile_pipe_vert extends Block {
}
}//package
Section 106
//tile_pipe_vert_light (tile_pipe_vert_light)
package {
import src.*;
public dynamic class tile_pipe_vert_light extends Block {
}
}//package
Section 107
//tile_quart1 (tile_quart1)
package {
import src.*;
public dynamic class tile_quart1 extends Block {
}
}//package
Section 108
//tile_quart2 (tile_quart2)
package {
import src.*;
public dynamic class tile_quart2 extends Block {
}
}//package
Section 109
//tile_quart3 (tile_quart3)
package {
import src.*;
public dynamic class tile_quart3 extends Block {
}
}//package
Section 110
//tile_standard (tile_standard)
package {
import src.*;
public dynamic class tile_standard extends Block {
}
}//package
Section 111
//tile_wall_endLeft (tile_wall_endLeft)
package {
import src.*;
public dynamic class tile_wall_endLeft extends Block {
}
}//package
Section 112
//tile_wall_endRight (tile_wall_endRight)
package {
import src.*;
public dynamic class tile_wall_endRight extends Block {
}
}//package