Section 1
//AABB2D (main.engine.AABB2D)
package main.engine {
import flash.display.*;
import flash.geom.*;
public class AABB2D {
var p1:Point;
var hl:Number;// = 0
var mid:Point;
public var extents:Point;
var x3;
var T:Point;
var y2;
var y3:Number;// = 0
public var pos:Point;
var x2;
var y1;
var l:Point;
var r:Number;// = 0
var x1;
public var type:String;
public function AABB2D(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{
p1 = new Point();
l = new Point();
hl = 0;
mid = new Point();
T = new Point();
r = 0;
y3 = 0;
super();
type = "AABB2D";
extents = new Point(_arg3, _arg4);
pos = new Point(_arg1, _arg2);
}
public function CrossAABB(_arg1:AABB2D):Boolean{
p1.x = (_arg1.pos.x - pos.x);
p1.y = (_arg1.pos.y - pos.y);
return ((((Math.abs(p1.x) <= (extents.x + _arg1.extents.x))) && ((Math.abs(p1.y) <= (extents.y + _arg1.extents.y)))));
}
public function SetSize(_arg1:Number, _arg2:Number):void{
extents.x = (_arg1 / 2);
extents.y = (_arg2 / 2);
}
public function GetOverlapVector(_arg1:AABB2D):Point{
x1 = (_arg1.extents.x + extents.x);
y1 = (_arg1.extents.y + extents.y);
x2 = (_arg1.pos.x - pos.x);
y2 = (_arg1.pos.y - pos.y);
x3 = (x1 - Math.abs(x2));
y3 = (y1 - Math.abs(y2));
return (new Point(((-1 * x3) * (x2 / Math.abs(x2))), ((-1 * y3) * (y2 / Math.abs(y2)))));
}
public function CrossVector2D(_arg1:Vector2D):Boolean{
l.x = _arg1.n.x;
l.y = _arg1.n.y;
hl = (_arg1.dir.length / 2);
mid.x = (_arg1.pos.x + (_arg1.n.x * hl));
mid.y = (_arg1.pos.y + (_arg1.n.y * hl));
T.x = (pos.x - mid.x);
T.y = (pos.y - mid.y);
if (Math.abs(T.x) > (extents.x + (hl * Math.abs(l.x)))){
return (false);
};
if (Math.abs(T.y) > (extents.y + (hl * Math.abs(l.y)))){
return (false);
};
r = ((extents.x * Math.abs(l.y)) + (extents.y * Math.abs(l.x)));
if (Math.abs(((T.x * l.y) - (T.y * l.x))) > r){
return (false);
};
return (true);
}
public function GetFromMC(_arg1:MovieClip, _arg2:Number, _arg3:Number):void{
extents.x = (_arg1.width / 2);
extents.y = (_arg1.height / 2);
pos.x = ((_arg1.x + extents.x) + _arg2);
pos.y = ((_arg1.y + extents.y) + _arg3);
}
public function y_distanceTo(_arg1:AABB2D):Number{
return ((_arg1.pos.y - pos.y));
}
public function distanceBetween(_arg1:AABB2D):Number{
return ((((_arg1.pos.x - pos.x) * (_arg1.pos.x - pos.x)) + ((_arg1.pos.y - pos.y) * (_arg1.pos.y - pos.y))));
}
public function SetPosition(_arg1:Number, _arg2:Number):void{
pos.x = _arg1;
pos.y = _arg2;
}
public function SetExtents(_arg1:Number, _arg2:Number):void{
extents.x = _arg1;
extents.y = _arg2;
}
public function FromCoords(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{
extents.x = _arg1;
extents.y = _arg2;
pos.x = _arg3;
pos.y = _arg4;
}
public function SetPoint(_arg1:Point):void{
pos.x = _arg1.x;
pos.y = _arg1.y;
}
public function Move(_arg1:Number, _arg2:Number):void{
pos.x = (pos.x + _arg1);
pos.y = (pos.y + _arg2);
}
public function GetProjectionVector(_arg1:AABB2D):Point{
x1 = (_arg1.extents.x + extents.x);
y1 = (_arg1.extents.y + extents.y);
x2 = (_arg1.pos.x - pos.x);
y2 = (_arg1.pos.y - pos.y);
x3 = (x1 - Math.abs(x2));
y3 = (y1 - Math.abs(y2));
if (x3 < y3){
return (new Point(((-1 * x3) * (x2 / Math.abs(x2))), 0));
};
return (new Point(0, ((-1 * y3) * (y2 / Math.abs(y2)))));
}
public function x_distanceTo(_arg1:AABB2D):Number{
return ((_arg1.pos.x - pos.x));
}
public function CrossAABB2(_arg1:Point, _arg2:Point):Boolean{
p1.x = (_arg1.x - pos.x);
p1.y = (_arg1.y - pos.y);
return ((((Math.abs(p1.x) <= (extents.x + _arg2.x))) && ((Math.abs(p1.y) <= (extents.y + _arg2.y)))));
}
}
}//package main.engine
Section 2
//AClip (main.engine.AClip)
package main.engine {
import flash.display.*;
import flash.geom.*;
public class AClip extends base_grid_object implements IGridObject, IRenderable {
public var $draw_point:Point;
public var $renderable:Boolean;
public var $cur_animation:uint;
public var $graphics_offset;
public var $stop:Boolean;
public var $draw_layer:uint;
public var $callback;
public var $graphics;
public var $repeat:Boolean;
public var $framerate:uint;
public var $bbox_offset;
public var $hidden:Boolean;
public var $curframe:uint;
public var $graphics_vars;
public var $mirror:uint;
public var $matrix:Matrix;
public var $time:uint;
public function AClip(_arg1, _arg2:Boolean, _arg3:Boolean, _arg4:MovieClip, _arg5:Number, _arg6:Number, _arg7:uint, _arg8:Boolean=false){
super(_arg1.$engine.$renderer, EngineConstants.GRAFTYPE_MCLIP, _arg2, _arg3, _arg4.draw_frame, _arg5, _arg6);
$graphics = $manager.$resources.CreateAClip(_arg4, _arg8);
$graphics_offset = new Point(0, 0);
$bbox_offset = new Point(0, 0);
$graphics_offset.x = (-1 * (_arg4.draw_frame.x + (_arg4.draw_frame.width / 2)));
$graphics_offset.y = (-1 * (_arg4.draw_frame.y + (_arg4.draw_frame.height / 2)));
$bbox_offset.x = ((_arg4.draw_frame.x + (_arg4.draw_frame.width / 2)) - (_arg4.bbox.x + (_arg4.bbox.width / 2)));
$bbox_offset.y = (((_arg4.draw_frame.y + (_arg4.draw_frame.height / 2)) - (_arg4.bbox.y + (_arg4.bbox.height / 2))) - ((_arg4.draw_frame.height - _arg4.bbox.height) / 2));
$draw_point = new Point(0, 0);
$draw_layer = _arg7;
$hidden = false;
$renderable = false;
$cur_animation = 0;
$curframe = 0;
$matrix = new Matrix();
$framerate = 0;
$time = 0;
$repeat = false;
$stop = false;
$owner = null;
$callback = null;
$manager.Add(this);
}
public function SetFrame(_arg1:uint):void{
$curframe = _arg1;
}
public function SetDrawLayer(_arg1:uint):void{
$draw_layer = _arg1;
}
public function SetPosition(_arg1:Number, _arg2:Number):void{
$manager.Pop(this);
$bbox.SetPosition(_arg1, _arg2);
$manager.Push(this);
}
public function SetCallback(_arg1):void{
$callback = _arg1;
}
public function Stop():void{
$stop = true;
}
public function Draw(_arg1:BitmapData, _arg2:Point):void{
if ($graphics == null){
return;
};
$graphics.$frame.x = $graphics.$frames_coords[(($curframe - 1) + ($graphics.$numFrames * $mirror))].x;
$graphics.$frame.y = $graphics.$frames_coords[(($curframe - 1) + ($graphics.$numFrames * $mirror))].y;
$draw_point.x = (($bbox.pos.x - $bbox.extents.x) - _arg2.x);
$draw_point.y = (($bbox.pos.y - $bbox.extents.y) - _arg2.y);
_arg1.copyPixels($graphics.$bitmaps[$graphics.$frames_bitmaps[(($curframe - 1) + ($graphics.$numFrames * $mirror))]].$data, $graphics.$frame, $draw_point, null, null, true);
}
override public function Destroy():void{
$manager.Pop(this);
$bbox = null;
$vel = null;
$cells = null;
$graphics = null;
}
public function GetDrawLayer():uint{
return ($draw_layer);
}
public function Move(_arg1:Number, _arg2:Number):void{
$manager.Pop(this);
$bbox.Move(_arg1, _arg2);
$manager.Push(this);
}
public function Play(_arg1:uint, _arg2:uint, _arg3:Boolean, _arg4:uint=0):void{
$stop = false;
$cur_animation = _arg1;
$repeat = _arg3;
$framerate = _arg2;
$mirror = _arg4;
$curframe = $graphics.$data.currentLabels[$cur_animation].frame;
}
public function ShowObjectCells():void{
$manager.ShowObjectCells(this);
}
public function Update():void{
if ($graphics == null){
Destroy();
return;
};
$time++;
if ($time > $framerate){
$time = 0;
if (!$stop){
$curframe++;
if ($curframe >= $graphics.$data.currentLabels[($cur_animation + 1)].frame){
if ($repeat){
$curframe = $graphics.$data.currentLabels[$cur_animation].frame;
} else {
$stop = true;
$curframe--;
if ($callback != null){
$callback($name, $cur_animation);
};
};
};
};
};
}
}
}//package main.engine
Section 3
//ArcadeEngine (main.engine.ArcadeEngine)
package main.engine {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.text.*;
import flash.filters.*;
public class ArcadeEngine {
public var $resources:ResourceManager;
private var c_i:uint;// = 0
public var $collider:Collider;
public var $input:Input;
var $dTime:Number;
private var fps_counter_text;
private var _delta:uint;// = 0
public var $render_mc:MovieClip;
private var fps_counter:uint;// = 0
public var $debugger:GraphicsDebug;
public var $camera;// = null
var $frames:uint;
private var timer:Timer;
public var $frustum:AABB2D;
private var $shut:Boolean;
public var $pause:Boolean;// = false
private var now:uint;// = 0
public var $scripts:ScriptManager;
public var $renderer:Renderer;
private var fps:Number;// = 0
public var $sound:SoundSystem;
public var $objects:ObjectManager;
private var _last:uint;
private var i:uint;// = 0
private var colliders;
public function ArcadeEngine(_arg1:MovieClip, _arg2:Graphics):void{
var _local3:*;
var _local4:TextFormat;
$camera = null;
now = 0;
_delta = 0;
fps = 0;
$pause = false;
c_i = 0;
i = 0;
fps_counter = 0;
timer = new Timer(100);
_last = getTimer();
super();
timer.start();
$shut = false;
$dTime = 1;
$frustum = new AABB2D((_arg1.width / 2), (_arg1.height / 2), (_arg1.width / 2), (_arg1.height / 2));
$resources = new ResourceManager(_arg1.stage);
$objects = new ObjectManager();
_local3 = 1;
$debugger = new GraphicsDebug(_arg1, _local3);
$renderer = new Renderer(_arg1.stage, _arg1.width, _arg1.height, 10, 50, $resources, $debugger, _local3);
$collider = new Collider($debugger, _local3);
$input = new Input(_arg1.stage);
$sound = new SoundSystem($frustum);
$scripts = new ScriptManager();
fps_counter_text = new TextField();
fps_counter_text.background = true;
fps_counter_text.backgroundColor = 0;
fps_counter_text.selectable = false;
fps_counter_text.y = 35;
fps_counter_text.width = 60;
fps_counter_text.height = 20;
_local4 = new TextFormat();
_local4.font = "Verdana";
_local4.color = 0xFFFFFF;
_local4.size = 12;
_local4.bold = true;
_local4.align = TextFormatAlign.CENTER;
fps_counter_text.defaultTextFormat = _local4;
_arg1.stage.addChild(fps_counter_text);
}
public function SoundOff():void{
$sound.Shut();
}
public function TraceShit():void{
}
public function Update():void{
fps_counter++;
now = getTimer();
_delta = (now - _last);
if (_delta >= 1000){
fps = ((fps_counter / _delta) * 1000);
fps_counter_text.text = (fps.toFixed(1) + " fps");
fps_counter = 0;
_last = now;
};
$debugger.Update();
if ($shut){
return;
};
if (!$pause){
$scripts.RunScripts();
$objects.RemoveObjects();
$objects.UpdateObjects();
$renderer.Render();
};
$sound.Update();
}
public function ShowFPS():void{
fps_counter_text.visible = true;
}
public function ClearResources():void{
$resources.Clear();
}
public function Scream():void{
$shut = false;
}
public function AddObject(_arg1:IObject):IObject{
$objects.AddObject(_arg1);
return (_arg1);
}
public function setCamera(_arg1:IObject):void{
$camera = _arg1;
$frustum = $camera.GetBBOX();
$sound.$ear = $frustum;
}
public function SoundOn():void{
$sound.Scream();
}
public function Reset():void{
$renderer.Clear();
$collider.Clear();
$objects.DeleteObjects();
}
public function HideFPS():void{
fps_counter_text.visible = false;
}
public function AddScript(_arg1):void{
$scripts.AddScript(_arg1);
}
public function InitObjects():void{
$objects.InitObjects();
}
public function DeleteObjects():void{
$objects.DeleteObjects();
}
public function Play():void{
$pause = false;
}
public function Shut():void{
$shut = true;
}
public function Pause():void{
$pause = true;
}
public function ReplaceObjects(_arg1):void{
$objects.ReplaceObjects(_arg1);
}
public function DeleteObject(_arg1:uint):void{
$objects.DeleteObject(_arg1);
}
public function DeleteScript(_arg1:uint):void{
$scripts.DeleteScript(_arg1);
}
}
}//package main.engine
Section 4
//base_grid_object (main.engine.base_grid_object)
package main.engine {
import flash.display.*;
public class base_grid_object implements IGridObject {
public var $manager;// = null
public var $bbox:AABB2D;
public var $owner;// = null
public var $cash:Boolean;
public var $cells:Array;
public var $index:uint;
public var $name:String;
public var $type:uint;
public var $cells_length:uint;// = 0
public var $vel:Vector2D;
public var $grid_support:Boolean;
public function base_grid_object(_arg1, _arg2:uint, _arg3:Boolean, _arg4:Boolean, _arg5:MovieClip, _arg6:Number, _arg7:Number){
$manager = null;
$cells = new Array(9);
$cells_length = 0;
$owner = null;
super();
$manager = _arg1;
$name = "noname";
$type = _arg2;
$grid_support = _arg3;
$cash = _arg4;
$bbox = new AABB2D(0, 0, 1, 1);
$bbox.GetFromMC(_arg5, _arg6, _arg7);
$vel = new Vector2D(0, 0, 0, 0, 0);
$vel.pos.x = _arg6;
$vel.pos.y = _arg7;
$cells = new Array(9);
$cells_length = 0;
}
public function GetGridCell(_arg1:uint):Cell{
return ($cells[_arg1]);
}
public function GetIndex():uint{
return ($index);
}
public function SetManager(_arg1):void{
$manager = _arg1;
}
public function GetType():uint{
return ($type);
}
public function GetGridSupport():Boolean{
return ($grid_support);
}
public function ClearCash():void{
$cells_length = 0;
}
public function GetGridCellsLength():uint{
return ($cells_length);
}
public function GetBBOX():AABB2D{
return ($bbox);
}
public function bCashable():Boolean{
return ($cash);
}
public function Destroy():void{
$manager.Pop(this);
$bbox = null;
$vel = null;
$cells = null;
}
public function SetGridCell(_arg1:Cell):void{
$cells[$cells_length] = _arg1;
$cells_length++;
}
public function SetIndex(_arg1:uint):void{
$index = _arg1;
}
}
}//package main.engine
Section 5
//BigBitmap (main.engine.BigBitmap)
package main.engine {
import flash.display.*;
import flash.geom.*;
public class BigBitmap extends base_grid_object implements IGridObject, IRenderable {
public var $draw_point:Point;
public var $renderable:Boolean;
public var $graphics_offset;
public var $draw_layer:uint;
public var $graphics;
public var $bbox_offset;
public var $frame:Rectangle;
public var $inertion:Number;
public var callback;
public var $hidden:Boolean;
public var $frame_size:Point;
public var $graphics_vars;
public function BigBitmap(_arg1, _arg2:Boolean, _arg3:Boolean, _arg4:MovieClip, _arg5:Number, _arg6:Number, _arg7:uint=1, _arg8:Boolean=false, _arg9:Number=1){
super(_arg1.$engine.$renderer, EngineConstants.GRAFTYPE_BIGBITMAP, _arg2, _arg3, _arg4.draw_frame, _arg5, _arg6);
$graphics = $manager.$resources.CreateBitmap(_arg4, _arg8);
$graphics_offset = new Point(0, 0);
$graphics_offset.x = (-1 * (_arg4.draw_frame.x + (_arg4.draw_frame.width / 2)));
$graphics_offset.y = (-1 * (_arg4.draw_frame.y + (_arg4.draw_frame.height / 2)));
$bbox_offset = new Point(0, 0);
$bbox_offset.x = ((_arg4.draw_frame.x + (_arg4.draw_frame.width / 2)) - (_arg4.bbox.x + (_arg4.bbox.width / 2)));
$bbox_offset.y = ((_arg4.draw_frame.y + (_arg4.draw_frame.height / 2)) - (_arg4.bbox.y + (_arg4.bbox.height / 2)));
$draw_point = new Point(0, 0);
$frame_size = new Point($manager.$render_width, $manager.$render_height);
$frame = new Rectangle(0, 0, $graphics.$data.width, $graphics.$data.height);
$draw_layer = _arg7;
$hidden = false;
$renderable = false;
$inertion = _arg9;
$owner = null;
callback = null;
$manager.Add(this);
}
public function Update():void{
}
public function SetPosition(_arg1:Number, _arg2:Number):void{
$manager.Pop(this);
$bbox.SetPosition(_arg1, _arg2);
$manager.Push(this);
}
public function SetDrawLayer(_arg1:uint):void{
$draw_layer = _arg1;
}
public function Draw(_arg1:BitmapData, _arg2:Point):void{
$draw_point.x = (($bbox.pos.x - $bbox.extents.x) - _arg2.x);
$draw_point.y = (($bbox.pos.y - $bbox.extents.y) - _arg2.y);
if ($inertion != 1){
$draw_point.x = ($draw_point.x * $inertion);
$draw_point.y = ($draw_point.y * $inertion);
};
_arg1.copyPixels($graphics.$data, $frame, $draw_point, null, null, true);
}
override public function Destroy():void{
$manager.Pop(this);
$bbox = null;
$vel = null;
$cells = null;
$graphics = null;
}
public function GetDrawLayer():uint{
return ($draw_layer);
}
public function Move(_arg1:Number, _arg2:Number):void{
$manager.Pop(this);
$bbox.Move(_arg1, _arg2);
$manager.Push(this);
}
}
}//package main.engine
Section 6
//Cell (main.engine.Cell)
package main.engine {
public class Cell {
public var dynamic_length:uint;
public var dynamic_indeces:Array;
public var value_:uint;
public var static_indeces:Array;
public function Cell(_arg1:uint){
value_ = _arg1;
static_indeces = new Array();
dynamic_indeces = new Array(100);
dynamic_length = 0;
}
public function Delete():void{
static_indeces = null;
dynamic_indeces = null;
}
public function SetDynamicIndex(_arg1:uint):void{
dynamic_indeces[dynamic_length] = _arg1;
dynamic_length++;
}
}
}//package main.engine
Section 7
//ColAABB (main.engine.ColAABB)
package main.engine {
import flash.display.*;
import flash.geom.*;
public class ColAABB extends base_grid_object implements IGridObject, ICollidable {
public var $distance:Number;// = 0
var j;
var k;// = 0
var i;
public function ColAABB(_arg1, _arg2, _arg3:Boolean, _arg4:Boolean, _arg5:MovieClip, _arg6:Number, _arg7:Number){
$distance = 0;
k = 0;
super(_arg1.$engine.$collider, EngineConstants.COLTYPE_AABB2D, _arg3, _arg4, _arg5.bbox, _arg6, _arg7);
$owner = _arg2;
$manager.Add(this);
}
public function GetColliders(_arg1:CollisionProxy):void{
var _local2:*;
_local2 = $manager.Get(this);
i = 0;
while (i < _local2.length) {
if ((($bbox.CrossAABB($manager.$objects[_local2[i]].$bbox)) && (!((this.$index == $manager.$objects[_local2[i]].$index))))){
_arg1.Add($manager.$objects[_local2[i]]);
};
i++;
};
}
public function SetPosition(_arg1:Number, _arg2:Number):void{
$manager.Pop(this);
$bbox.SetPosition(_arg1, _arg2);
$manager.Push(this);
}
public function GetPotentialColliders():Array{
var _local1:*;
var _local2:*;
_local1 = $manager.Get(this);
_local2 = new Array();
i = 0;
while (i < _local1.length) {
_local2.push($manager.$objects[_local1[i]]);
i++;
};
return (_local2);
}
public function Move(_arg1:Number, _arg2:Number):void{
$manager.Pop(this);
$bbox.Move(_arg1, _arg2);
$manager.Push(this);
}
public function ShowObjectCells():void{
$manager.ShowObjectCells(this);
}
}
}//package main.engine
Section 8
//Collider (main.engine.Collider)
package main.engine {
public class Collider extends GridManager {
public function Collider(_arg1:GraphicsDebug, _arg2:Number):void{
super(_arg1, _arg2);
}
}
}//package main.engine
Section 9
//CollisionProxy (main.engine.CollisionProxy)
package main.engine {
public class CollisionProxy {
public var $COLTYPE_MESHSIMPLE:Array;
public var $COLTYPE_AABB:Array;
public var $COLTYPE_VECTOR2D_LENGTH:Number;
public var $COLTYPE_MESH:Array;
public var $COLTYPE_AABB_LENGTH:Number;
var i;
var j;
var k;// = 0
public var $COLTYPE_MESH_LENGTH:Number;
public var $COLTYPE_MESHSIMPLE_LENGTH:Number;
public var $COLTYPE_VECTOR2D:Array;
public function CollisionProxy(){
k = 0;
super();
$COLTYPE_MESH = new Array(10);
$COLTYPE_MESH_LENGTH = 0;
$COLTYPE_MESHSIMPLE = new Array(10);
$COLTYPE_MESHSIMPLE_LENGTH = 0;
$COLTYPE_AABB = new Array(10);
$COLTYPE_AABB_LENGTH = 0;
$COLTYPE_VECTOR2D = new Array(10);
$COLTYPE_VECTOR2D_LENGTH = 0;
}
public function Delete():void{
i = 0;
while (i < 10) {
$COLTYPE_MESH[i] = null;
$COLTYPE_MESHSIMPLE[i] = null;
$COLTYPE_AABB[i] = null;
$COLTYPE_VECTOR2D[i] = null;
i++;
};
}
public function Add(_arg1:IGridObject):void{
switch (_arg1.GetType()){
case EngineConstants.COLTYPE_MESH:
$COLTYPE_MESH[$COLTYPE_MESH_LENGTH] = _arg1;
$COLTYPE_MESH_LENGTH++;
break;
case EngineConstants.COLTYPE_MESHSIMPLE:
$COLTYPE_MESHSIMPLE[$COLTYPE_MESHSIMPLE_LENGTH] = _arg1;
$COLTYPE_MESHSIMPLE_LENGTH++;
break;
case EngineConstants.COLTYPE_AABB2D:
$COLTYPE_AABB[$COLTYPE_AABB_LENGTH] = _arg1;
$COLTYPE_AABB_LENGTH++;
break;
case EngineConstants.COLTYPE_VECTOR2D:
$COLTYPE_VECTOR2D[$COLTYPE_VECTOR2D_LENGTH] = _arg1;
$COLTYPE_VECTOR2D_LENGTH++;
break;
};
}
public function Clear():void{
$COLTYPE_MESH_LENGTH = 0;
$COLTYPE_MESHSIMPLE_LENGTH = 0;
$COLTYPE_AABB_LENGTH = 0;
$COLTYPE_VECTOR2D_LENGTH = 0;
}
}
}//package main.engine
Section 10
//ColMesh (main.engine.ColMesh)
package main.engine {
import flash.display.*;
import flash.geom.*;
public class ColMesh extends base_grid_object implements IGridObject, ICollidable {
public var $GRID:Grid;
var k;// = 0
public var $vectors:Array;
var j;
var i;
public function ColMesh(_arg1, _arg2, _arg3:Boolean, _arg4:Boolean, _arg5:MovieClip, _arg6:Number, _arg7:Number){
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
k = 0;
super(_arg1.$engine.$collider, EngineConstants.COLTYPE_MESH, _arg3, _arg4, _arg5.bbox, _arg6, _arg7);
$owner = _arg2;
$GRID = new Grid();
_local8 = MovieClip(_arg5.getChildByName("grid_bounds"));
_local9 = MovieClip(_arg5.getChildByName("grid_cell"));
_local10 = Math.ceil(Math.max(_local8.width, _local8.height));
_local11 = Math.ceil((_local10 / Math.ceil(_local9.width)));
$GRID.SetSize(_local10, _local11);
$vectors = new Array();
i = 0;
while (i < _arg5.numChildren) {
if ((((((((((((((_arg5.getChildAt(i).name == "jumpable")) || ((_arg5.getChildAt(i).name == "solid")))) || ((_arg5.getChildAt(i).name == "rope")))) || ((_arg5.getChildAt(i).name == "h_rope")))) || ((_arg5.getChildAt(i).name == "getup")))) || ((_arg5.getChildAt(i).name == "camera_rails")))) || ((_arg5.getChildAt(i).name == "levelbottom")))){
_local12 = new ColVector(_arg1, true, _arg5.getChildAt(i), _arg6, _arg7);
_local12.SetIndex($vectors.length);
$vectors.push(_local12);
$GRID.Push(_local12);
_arg5.getChildAt(i).visible = false;
};
i++;
};
$manager.Add(this);
}
public function GetVectors(_arg1:AABB2D):Array{
var _local2:*;
var _local3:*;
_local2 = $GRID.GetByBBOX(_arg1);
_local3 = new Array();
i = 0;
while (i < _local2.length) {
if ($vectors[_local2[i]].$bbox.CrossAABB(_arg1)){
_local3.push($vectors[_local2[i]]);
};
i++;
};
return (_local3);
}
public function GetColliders(_arg1:CollisionProxy):void{
var _local2:*;
_local2 = $manager.Get(this);
i = 0;
while (i < _local2.length) {
if ((($bbox.CrossAABB($manager.$objects[_local2[i]].$bbox)) && (!((this.$index == $manager.$objects[_local2[i]].$index))))){
_arg1.Add($manager.$objects[_local2[i]]);
};
i++;
};
}
public function SetPosition(_arg1:Number, _arg2:Number):void{
$manager.Pop(this);
$bbox.SetPosition(_arg1, _arg2);
$manager.Push(this);
}
public function Move(_arg1:Number, _arg2:Number):void{
$manager.Pop(this);
$bbox.Move(_arg1, _arg2);
$manager.Push(this);
}
public function Draw():void{
i = 0;
while (i < $vectors.length) {
$vectors[i].Draw();
i++;
};
}
public function GetPotentialVectors(_arg1:AABB2D):Array{
var _local2:*;
var _local3:*;
_local2 = $GRID.GetByBBOX(_arg1);
_local3 = new Array();
i = 0;
while (i < _local2.length) {
_local3.push($vectors[_local2[i]]);
i++;
};
return (_local3);
}
public function GetPotentialColliders():Array{
var _local1:*;
var _local2:*;
_local1 = $manager.Get(this);
_local2 = new Array();
i = 0;
while (i < _local1.length) {
_local2.push($manager.$objects[_local1[i]]);
i++;
};
return (_local2);
}
public function ShowObjectCells():void{
$manager.ShowObjectCells(this);
}
}
}//package main.engine
Section 11
//ColVector (main.engine.ColVector)
package main.engine {
import flash.display.*;
import flash.geom.*;
public class ColVector extends base_grid_object implements IGridObject, ICollidable {
public var $subtype:uint;
public var $vector:Vector2D;
var j;
var k;// = 0
var i;
public function ColVector(_arg1, _arg2:Boolean, _arg3, _arg4, _arg5){
k = 0;
super(_arg1.$engine.$collider, EngineConstants.COLTYPE_MESH, true, _arg2, _arg3, _arg4, _arg5);
$vector = new Vector2D(_arg3.width, _arg3.height, (_arg3.x + _arg4), (_arg3.y + _arg5), _arg3.rotation);
$bbox.pos.x = ($vector.pos.x + ($vector.dir.x * 0.5));
$bbox.pos.y = ($vector.pos.y + ($vector.dir.y * 0.5));
$bbox.extents.x = (Math.abs($vector.dir.x) * 0.5);
$bbox.extents.y = (Math.abs($vector.dir.y) * 0.5);
switch (_arg3.name){
case "solid":
$subtype = EngineConstants.VECTYPE_SOLID;
break;
case "jumpable":
$subtype = EngineConstants.VECTYPE_JUMPABLE;
break;
case "camera_rails":
$subtype = EngineConstants.VECTYPE_CAMERARAILS;
break;
case "levelbottom":
$subtype = EngineConstants.VECTYPE_LEVELBOTTOM;
break;
default:
break;
};
}
public function GetColliders(_arg1:CollisionProxy):void{
var _local2:*;
_local2 = $manager.Get(this);
i = 0;
while (i < _local2.length) {
if ((($bbox.CrossAABB($manager.$objects[_local2[i]].$bbox)) && (!((this.$index == $manager.$objects[_local2[i]].$index))))){
_arg1.Add($manager.$objects[_local2[i]]);
};
i++;
};
}
public function Draw():void{
$manager.$debugger.DrawBox(($bbox.pos.x - $bbox.extents.x), ($bbox.pos.y - $bbox.extents.y), ($bbox.extents.x * 2), ($bbox.extents.y * 2), 0xFF0000, 0.3);
}
public function GetPotentialColliders():Array{
var _local1:*;
var _local2:*;
_local1 = $manager.Get(this);
_local2 = new Array();
i = 0;
while (i < _local1.length) {
_local2.push($manager.$objects[_local1[i]]);
i++;
};
return (_local2);
}
}
}//package main.engine
Section 12
//EngineConstants (main.engine.EngineConstants)
package main.engine {
public final class EngineConstants {
public static const VECTYPE_GETUP:uint = 3;
public static const GRAFTYPE_BITMAP:uint = 1;
public static const RESTYPE_ACLIP:uint = 4;
public static const VECTYPE_JUMPABLE:uint = 1;
public static const RESTYPE_BITMAP:uint = 1;
public static const GRAFTYPE_ANIMBITMAP:uint = 2;
public static const RESTYPE_MCLIP:uint = 0;
public static const EPSILON:Number = 0.0003;
public static const COLTYPE_VECTOR2D:uint = 3;
public static const GRAFTYPE_ACLIP:uint = 4;
public static const GRAFTYPE_BIGBITMAP:uint = 3;
public static const COLTYPE_MESHSIMPLE:uint = 1;
public static const RESTYPE_ANIMBITMAP:uint = 2;
public static const GRAFTYPE_MCLIP:uint = 0;
public static const VECTYPE_CAMERARAILS:uint = 2;
public static const RESTYPE_SOUND:uint = 3;
public static const COLTYPE_AABB2D:uint = 2;
public static const COLTYPE_MESH:uint = 0;
public static const VECTYPE_SOLID:uint = 0;
public static const VECTYPE_LEVELBOTTOM:uint = 4;
}
}//package main.engine
Section 13
//GameObject (main.engine.GameObject)
package main.engine {
import flash.display.*;
import flash.geom.*;
public dynamic class GameObject implements IObject {
public var $game;// = null
public var $disabled:Boolean;// = false
public var $index:uint;
public var $name:String;
public var $init_script;
public var $off:Boolean;// = false
public var $colliders:Array;
public var $update_script;
public var $renderables:Array;
public var $group:uint;
public var $type:uint;
public function GameObject(_arg1){
$game = null;
$off = false;
$disabled = false;
$init_script = function (_arg1){
};
$update_script = function (_arg1){
};
super();
$game = _arg1;
$renderables = new Array();
$colliders = new Array();
$group = 0;
$index = 0;
$name = "void";
$type = 0;
}
public function GetPosition():Point{
return (null);
}
public function GetType():uint{
return ($type);
}
public function Collide(_arg1:IObject):void{
}
public function Init():void{
$init_script(this);
}
public function HitTest(_arg1:IObject):Boolean{
return (false);
}
public function Coldet():void{
}
public function SetIndex(_arg1:uint):void{
$index = _arg1;
}
public function GetIndex():uint{
return ($index);
}
public function GetDamage(_arg1:String, _arg2:Number, _arg3:Point, _arg4:Point):void{
}
public function Delete():void{
}
public function GetName():String{
return ($name);
}
public function Draw(_arg1:BitmapData):void{
}
public function Update():void{
}
public function Script():void{
}
public function GetDistance(_arg1:Vector2D):Number{
return (0xFFFF);
}
public function isOff():Boolean{
return ($off);
}
public function Subscript():void{
}
}
}//package main.engine
Section 14
//GraphicsDebug (main.engine.GraphicsDebug)
package main.engine {
import flash.display.*;
import flash.geom.*;
public class GraphicsDebug {
public var $scale_factor:Number;
private var borderSize:uint;// = 2
private var size:uint;// = 80
private var cornerRadius:uint;// = 9
private var borderColor:uint;// = 0xFF0000
private var gutter:uint;// = 5
private var bgColor:uint;// = 0xFFCC00
private var $bDisabled:Boolean;// = false
private var $graphics:Graphics;
public var $render_offset:Point;
public function GraphicsDebug(_arg1, _arg2:Number){
var _local3:Shape;
$bDisabled = false;
size = 80;
bgColor = 0xFFCC00;
borderColor = 0xFF0000;
borderSize = 2;
cornerRadius = 9;
gutter = 5;
super();
_local3 = new Shape();
$graphics = _local3.graphics;
_arg1.stage.addChild(_local3);
$render_offset = new Point(0, 0);
$scale_factor = _arg2;
}
public function DrawBox(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:uint=0xFF0000, _arg6:Number=1):void{
if ($bDisabled){
return;
};
_arg1 = (_arg1 - $render_offset.x);
_arg2 = (_arg2 - $render_offset.y);
$graphics.beginFill(_arg5, _arg6);
$graphics.lineStyle(borderSize, borderColor);
$graphics.drawRect((_arg1 * $scale_factor), (_arg2 * $scale_factor), (_arg3 * $scale_factor), (_arg4 * $scale_factor));
$graphics.endFill();
$graphics.moveTo(0, 0);
}
public function DrawCircle(_arg1, _arg2, _arg3:uint=0xFF0000, _arg4:uint=5):void{
if ($bDisabled){
return;
};
_arg1 = (_arg1 - $render_offset.x);
_arg2 = (_arg2 - $render_offset.y);
$graphics.beginFill(_arg3);
$graphics.lineStyle(0, borderColor);
$graphics.drawCircle(_arg1, _arg2, _arg4);
$graphics.endFill();
}
public function DrawCircleOutline(_arg1, _arg2, _arg3:uint=0xFF0000, _arg4:uint=5):void{
if ($bDisabled){
return;
};
_arg1 = (_arg1 - $render_offset.x);
_arg2 = (_arg2 - $render_offset.y);
$graphics.lineStyle(0, _arg3);
$graphics.drawCircle(_arg1, _arg2, _arg4);
}
public function Disable():void{
$bDisabled = true;
}
public function Enable():void{
$bDisabled = false;
}
public function Update():void{
if ($bDisabled){
return;
};
$graphics.clear();
}
private function doDrawRect():void{
if ($bDisabled){
return;
};
$graphics.beginFill(bgColor);
$graphics.lineStyle(borderSize, borderColor);
$graphics.drawRect(0, 0, size, size);
$graphics.endFill();
}
public function DrawBoxOutline(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:uint=0xFF0000, _arg6:Number=1):void{
if ($bDisabled){
return;
};
_arg1 = (_arg1 - $render_offset.x);
_arg2 = (_arg2 - $render_offset.y);
$graphics.lineStyle(borderSize, _arg5);
$graphics.drawRect((_arg1 * $scale_factor), (_arg2 * $scale_factor), (_arg3 * $scale_factor), (_arg4 * $scale_factor));
$graphics.moveTo(0, 0);
}
public function DrawLine(_arg1, _arg2, _arg3, _arg4, _arg5:uint=0xFF0000):void{
if ($bDisabled){
return;
};
_arg1 = (_arg1 - $render_offset.x);
_arg2 = (_arg2 - $render_offset.y);
_arg3 = (_arg3 - $render_offset.x);
_arg4 = (_arg4 - $render_offset.y);
$graphics.moveTo((_arg1 * $scale_factor), (_arg2 * $scale_factor));
$graphics.lineStyle(borderSize, _arg5);
$graphics.lineTo((_arg3 * $scale_factor), (_arg4 * $scale_factor));
$graphics.moveTo(0, 0);
}
}
}//package main.engine
Section 15
//Grid (main.engine.Grid)
package main.engine {
import flash.display.*;
import flash.geom.*;
public class Grid {
public var $cell_size:uint;
public var $cell_number:uint;
public var $y_to:int;// = 0
public var $box:AABB2D;
public var $cells:Array;
public var $x_from:int;// = 0
private var $offset:Point;
public var $debug_box:AABB2D;
public var $x_to:int;// = 0
public var $y_from:int;// = 0
public var $bActive:Boolean;
private var i:uint;// = 0
private var j:uint;// = 0
private var k:uint;// = 0
private var l:uint;// = 0
private var z:uint;// = 0
public function Grid():void{
i = 0;
j = 0;
k = 0;
z = 0;
l = 0;
$x_from = 0;
$x_to = 0;
$y_from = 0;
$y_to = 0;
super();
$cells = null;
$cell_number = 0;
$cell_size = 0;
$box = null;
$debug_box = null;
$offset = new Point(0, 0);
$bActive = false;
}
public function UpdateIndeces(_arg1:uint):void{
i = 0;
while (i < $cells.length) {
j = 0;
while (j < $cells[i].length) {
k = 0;
while (k < $cells[i][j].dynamic_length) {
if ($cells[i][j].dynamic_indeces[k] >= _arg1){
$cells[i][j].dynamic_indeces[k] = ($cells[i][j].dynamic_indeces[k] - 1);
};
k++;
};
j++;
};
i++;
};
}
public function Add(_arg1):void{
$x_from = Math.floor((((_arg1.$bbox.pos.x - $offset.x) - _arg1.$bbox.extents.x) / $cell_size));
$x_to = (Math.floor((((_arg1.$bbox.pos.x - $offset.x) + _arg1.$bbox.extents.x) / $cell_size)) + 1);
$y_from = Math.floor((((_arg1.$bbox.pos.y - $offset.y) - _arg1.$bbox.extents.y) / $cell_size));
$y_to = (Math.floor((((_arg1.$bbox.pos.y - $offset.y) + _arg1.$bbox.extents.y) / $cell_size)) + 1);
if ($x_from < 0){
$x_from = 0;
};
if ($y_from < 0){
$y_from = 0;
};
if ($x_to > $cell_number){
$x_to = $cell_number;
};
if ($y_to > $cell_number){
$y_to = $cell_number;
};
_arg1.$last_cell_length = 0;
i = $x_from;
while (i < $x_to) {
j = $y_from;
while (j < $y_to) {
if (_arg1.$cash){
$cells[i][j].static_indeces.push(_arg1.$index);
} else {
$cells[i][j].dynamic_indeces[$cells[i][j].dynamic_length] = _arg1.$index;
$cells[i][j].dynamic_length = ($cells[i][j].dynamic_length + 1);
_arg1.$last_row[_arg1.$last_cell_length] = i;
_arg1.$last_col[_arg1.$last_cell_length] = j;
_arg1.$last_cell_length = (_arg1.$last_cell_length + 1);
};
j++;
};
i++;
};
}
public function UpdateAllIndeces(_arg1:uint):void{
i = 0;
while (i < $cells.length) {
j = 0;
while (j < $cells[i].length) {
if ($cells[i][j].static_indeces){
k = 0;
while (k < $cells[i][j].static_indeces.length) {
if ($cells[i][j].static_indeces[k] > _arg1){
var _local2 = $cells[i][j].static_indeces;
var _local3 = k;
var _local4 = (_local2[_local3] - 1);
_local2[_local3] = _local4;
};
k++;
};
};
k = 0;
while (k < $cells[i][j].dynamic_length) {
if ($cells[i][j].dynamic_indeces[k] >= _arg1){
$cells[i][j].dynamic_indeces[k] = ($cells[i][j].dynamic_indeces[k] - 1);
};
k++;
};
j++;
};
i++;
};
}
public function Cover(_arg1:Array):void{
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:uint;
var _local11:Boolean;
var _local12:Array;
var _local13:*;
this.Delete();
$cells = new Array();
_local2 = 0;
_local3 = 0;
_local4 = 0;
_local5 = 0;
_local6 = 0;
_local7 = 0;
_local8 = 0;
_local9 = 0;
_local10 = 0;
_local11 = true;
i = 0;
while (i < _arg1.length) {
if (!_arg1[i].$grid_support){
} else {
_local6 = (_arg1[i].$bbox.pos.x - _arg1[i].$bbox.extents.x);
_local7 = (_arg1[i].$bbox.pos.x + _arg1[i].$bbox.extents.x);
_local8 = (_arg1[i].$bbox.pos.y - _arg1[i].$bbox.extents.y);
_local9 = (_arg1[i].$bbox.pos.y + _arg1[i].$bbox.extents.y);
if (_local11){
_local2 = _local6;
_local3 = _local7;
_local4 = _local8;
_local5 = _local9;
_local11 = false;
} else {
if (_local6 < _local2){
_local2 = _local6;
};
if (_local7 > _local3){
_local3 = _local7;
};
if (_local8 < _local4){
_local4 = _local8;
};
if (_local9 > _local5){
_local5 = _local9;
};
};
};
i++;
};
if ((_local3 - _local2) > (_local5 - _local4)){
_local10 = (_local3 - _local2);
} else {
_local10 = (_local5 - _local4);
};
$offset.x = _local2;
$offset.y = _local4;
$cell_number = (int((_local10 / $cell_size)) + 1);
i = 0;
while (i < $cell_number) {
_local12 = new Array();
j = 0;
while (j < $cell_number) {
_local13 = new Object();
_local13.value_ = uint(0);
_local13.static_indeces = new Array();
_local13.dynamic_indeces = new Array(100);
_local13.dynamic_length = 0;
_local12.push(_local13);
_local12[j].value_ = ((i * 10) + j);
$box.pos.x = (($offset.x + (i * $cell_size)) + ($cell_size / 2));
$box.pos.y = (($offset.y + (j * $cell_size)) + ($cell_size / 2));
k = 0;
while (k < _arg1.length) {
if (!_arg1[k].$grid_support){
} else {
if (_arg1[k].$HitTest(_arg1[k], $box)){
if (_arg1[k].$cash){
if (_local12[j].static_indeces == undefined){
_local12[j].static_indeces = new Array();
};
_local12[j].static_indeces.push(_arg1[k].$index);
} else {
_local12[j].dynamic_indeces[_local12[j].dynamic_length] = _arg1[k].$index;
_local12[j].dynamic_length++;
_arg1[k].$last_row[_arg1[k].$last_cell_length] = i;
_arg1[k].$last_col[_arg1[k].$last_cell_length] = j;
_arg1[k].$last_cell_length++;
};
};
};
k++;
};
j++;
};
$cells.push(_local12);
i++;
};
$bActive = true;
}
public function Splice(_arg1):void{
i = 0;
while (i < _arg1.$last_cell_length) {
j = 0;
while (j < $cells[_arg1.$last_row[i]][_arg1.$last_col[i]].dynamic_length) {
if ($cells[_arg1.$last_row[i]][_arg1.$last_col[i]].dynamic_indeces[j] == _arg1.$index){
k = j;
while (k < ($cells[_arg1.$last_row[i]][_arg1.$last_col[i]].dynamic_length - 1)) {
$cells[_arg1.$last_row[i]][_arg1.$last_col[i]].dynamic_indeces[k] = $cells[_arg1.$last_row[i]][_arg1.$last_col[i]].dynamic_indeces[(k + 1)];
k++;
};
$cells[_arg1.$last_row[i]][_arg1.$last_col[i]].dynamic_length = ($cells[_arg1.$last_row[i]][_arg1.$last_col[i]].dynamic_length - 1);
break;
};
j++;
};
i++;
};
_arg1.$last_cell_length = 0;
}
public function Clear():void{
$cells = null;
$cells = new Array();
}
public function Reset():void{
var _local1:Array;
var _local2:*;
this.Delete();
$cells = new Array();
_local1 = new Array();
_local2 = new Object();
_local2.value_ = uint(0);
_local2.static_indeces = new Array();
_local2.dynamic_indeces = new Array(100);
_local2.dynamic_length = 0;
_local1.push(_local2);
_local1[j].value_ = 0;
$cells.push(_local1);
$bActive = false;
}
public function Pop(_arg1:IGridObject):void{
var _local2:Boolean;
if (!_arg1.GetGridSupport()){
return;
};
_local2 = false;
i = 0;
while (i < _arg1.GetGridCellsLength()) {
_local2 = false;
j = 0;
while (j < _arg1.GetGridCell(i).dynamic_length) {
if (_arg1.GetGridCell(i).dynamic_indeces[j] == _arg1.GetIndex()){
_local2 = true;
};
if (_local2){
if ((j + 1) < _arg1.GetGridCell(i).dynamic_length){
_arg1.GetGridCell(i).dynamic_indeces[j] = _arg1.GetGridCell(i).dynamic_indeces[(j + 1)];
} else {
_arg1.GetGridCell(i).dynamic_indeces[j] = 0;
};
};
j++;
};
_arg1.GetGridCell(i).dynamic_length--;
i++;
};
_arg1.ClearCash();
}
public function Debug(_arg1):void{
i = 0;
while (i < $cell_number) {
_arg1.DrawLine($offset.x, ($offset.y + (i * $cell_size)), ($offset.x + ($cell_number * $cell_size)), ($offset.y + (i * $cell_size)));
_arg1.DrawLine(($offset.x + (i * $cell_size)), $offset.y, ($offset.x + (i * $cell_size)), ($offset.y + ($cell_number * $cell_size)));
i++;
};
}
public function Get(_arg1:AABB2D):Array{
var _local2:Array;
var _local3:Boolean;
_local2 = new Array();
$x_from = Math.floor((((_arg1.pos.x - $offset.x) - _arg1.extents.x) / $cell_size));
$x_to = (Math.floor((((_arg1.pos.x - $offset.x) + _arg1.extents.x) / $cell_size)) + 1);
$y_from = Math.floor((((_arg1.pos.y - $offset.y) - _arg1.extents.y) / $cell_size));
$y_to = (Math.floor((((_arg1.pos.y - $offset.y) + _arg1.extents.y) / $cell_size)) + 1);
if ($x_from < 0){
$x_from = 0;
};
if ($y_from < 0){
$y_from = 0;
};
if ($x_to > $cell_number){
$x_to = $cell_number;
};
if ($y_to > $cell_number){
$y_to = $cell_number;
};
_local3 = true;
i = $x_from;
while (i < $x_to) {
j = $y_from;
while (j < $y_to) {
if ($cells[i][j].static_indeces){
k = 0;
while (k < $cells[i][j].static_indeces.length) {
z = 0;
while (z < _local2.length) {
if (_local2[z] == $cells[i][j].static_indeces[k]){
_local3 = false;
};
z++;
};
if (_local3){
_local2.push($cells[i][j].static_indeces[k]);
};
_local3 = true;
k++;
};
};
k = 0;
while (k < $cells[i][j].dynamic_length) {
z = 0;
while (z < _local2.length) {
if (_local2[z] == $cells[i][j].dynamic_indeces[k]){
_local3 = false;
};
z++;
};
if (_local3){
_local2.push($cells[i][j].dynamic_indeces[k]);
};
_local3 = true;
k++;
};
j++;
};
i++;
};
return (_local2);
}
public function Push(_arg1:IGridObject):void{
var _local2:*;
if (!_arg1.GetGridSupport()){
return;
};
_local2 = _arg1.GetBBOX();
$x_from = Math.floor((((_local2.pos.x - $offset.x) - _local2.extents.x) / $cell_size));
$x_to = (Math.floor((((_local2.pos.x - $offset.x) + _local2.extents.x) / $cell_size)) + 1);
$y_from = Math.floor((((_local2.pos.y - $offset.y) - _local2.extents.y) / $cell_size));
$y_to = (Math.floor((((_local2.pos.y - $offset.y) + _local2.extents.y) / $cell_size)) + 1);
if ($x_from < 0){
$x_from = 0;
};
if ($y_from < 0){
$y_from = 0;
};
if ($x_to > $cell_number){
$x_to = $cell_number;
};
if ($y_to > $cell_number){
$y_to = $cell_number;
};
i = $x_from;
while (i < $x_to) {
j = $y_from;
while (j < $y_to) {
if (_arg1.bCashable()){
$cells[i][j].static_indeces.push(_arg1.GetIndex());
} else {
$cells[i][j].SetDynamicIndex(_arg1.GetIndex());
_arg1.SetGridCell($cells[i][j]);
};
j++;
};
i++;
};
}
public function GetDebug(_arg1:AABB2D, _arg2):Array{
var _local3:Array;
var _local4:Boolean;
_local3 = new Array();
$x_from = Math.floor((((_arg1.pos.x - $offset.x) - _arg1.extents.x) / $cell_size));
$x_to = (Math.floor((((_arg1.pos.x - $offset.x) + _arg1.extents.x) / $cell_size)) + 1);
$y_from = Math.floor((((_arg1.pos.y - $offset.y) - _arg1.extents.y) / $cell_size));
$y_to = (Math.floor((((_arg1.pos.y - $offset.y) + _arg1.extents.y) / $cell_size)) + 1);
if ($x_from < 0){
$x_from = 0;
};
if ($y_from < 0){
$y_from = 0;
};
if ($x_to > $cell_number){
$x_to = $cell_number;
};
if ($y_to > $cell_number){
$y_to = $cell_number;
};
_arg2.DrawLine((($x_from * $cell_size) + $offset.x), (($y_from * $cell_size) + $offset.y), (($x_to * $cell_size) + $offset.x), (($y_from * $cell_size) + $offset.y), 0xFF00);
_arg2.DrawLine((($x_from * $cell_size) + $offset.x), (($y_from * $cell_size) + $offset.y), (($x_from * $cell_size) + $offset.x), (($y_to * $cell_size) + $offset.y), 0xFF00);
_arg2.DrawLine((($x_to * $cell_size) + $offset.x), (($y_from * $cell_size) + $offset.y), (($x_to * $cell_size) + $offset.x), (($y_to * $cell_size) + $offset.y), 0xFF00);
_arg2.DrawLine((($x_from * $cell_size) + $offset.x), (($y_to * $cell_size) + $offset.y), (($x_to * $cell_size) + $offset.x), (($y_to * $cell_size) + $offset.y), 0xFF00);
_local4 = true;
i = $x_from;
while (i < $x_to) {
j = $y_from;
while (j < $y_to) {
if ($cells[i][j].static_indeces){
k = 0;
while (k < $cells[i][j].static_indeces.length) {
z = 0;
while (z < _local3.length) {
if (_local3[z] == $cells[i][j].static_indeces[k]){
_local4 = false;
};
z++;
};
if (_local4){
_local3.push($cells[i][j].static_indeces[k]);
};
_local4 = true;
k++;
};
};
k = 0;
while (k < $cells[i][j].dynamic_length) {
z = 0;
while (z < _local3.length) {
if (_local3[z] == $cells[i][j].dynamic_indeces[k]){
_local4 = false;
};
z++;
};
if (_local4){
_local3.push($cells[i][j].dynamic_indeces[k]);
};
_local4 = true;
k++;
};
j++;
};
i++;
};
return (_local3);
}
public function Delete():void{
i = 0;
while (i < $cells.length) {
j = 0;
while (j < $cells[i].length) {
if ($cells[i][j].static_indeces){
k = 0;
while (k < $cells[i][j].static_indeces.length) {
k++;
};
};
k = 0;
while (k < $cells[i][j].dynamic_length) {
k++;
};
j++;
};
i++;
};
$cell_number = 1;
$cells = null;
}
public function GetByObject(_arg1:IGridObject):Array{
var _local2:Array;
var _local3:Boolean;
_local2 = new Array();
_local3 = true;
i = 0;
while (i < _arg1.GetGridCellsLength()) {
k = 0;
while (k < _arg1.GetGridCell(i).static_indeces.length) {
z = 0;
while (z < _local2.length) {
if (_local2[z] == _arg1.GetGridCell(i).static_indeces[k]){
_local3 = false;
};
z++;
};
if (_local3){
_local2.push(_arg1.GetGridCell(i).static_indeces[k]);
};
_local3 = true;
k++;
};
k = 0;
while (k < _arg1.GetGridCell(i).dynamic_length) {
z = 0;
while (z < _local2.length) {
if (_local2[z] == _arg1.GetGridCell(i).dynamic_indeces[k]){
_local3 = false;
};
z++;
};
if (_local3){
_local2.push(_arg1.GetGridCell(i).dynamic_indeces[k]);
};
_local3 = true;
k++;
};
i++;
};
return (_local2);
}
public function GetByBBOX(_arg1:AABB2D):Array{
var _local2:Array;
var _local3:Boolean;
_local2 = new Array();
$x_from = Math.floor((((_arg1.pos.x - $offset.x) - _arg1.extents.x) / $cell_size));
$x_to = (Math.floor((((_arg1.pos.x - $offset.x) + _arg1.extents.x) / $cell_size)) + 1);
$y_from = Math.floor((((_arg1.pos.y - $offset.y) - _arg1.extents.y) / $cell_size));
$y_to = (Math.floor((((_arg1.pos.y - $offset.y) + _arg1.extents.y) / $cell_size)) + 1);
if ($x_from < 0){
$x_from = 0;
};
if ($y_from < 0){
$y_from = 0;
};
if ($x_to > $cell_number){
$x_to = $cell_number;
};
if ($y_to > $cell_number){
$y_to = $cell_number;
};
_local3 = true;
i = $x_from;
while (i < $x_to) {
j = $y_from;
while (j < $y_to) {
k = 0;
while (k < $cells[i][j].static_indeces.length) {
z = 0;
while (z < _local2.length) {
if (_local2[z] == $cells[i][j].static_indeces[k]){
_local3 = false;
};
z++;
};
if (_local3){
_local2.push($cells[i][j].static_indeces[k]);
};
_local3 = true;
k++;
};
k = 0;
while (k < $cells[i][j].dynamic_length) {
z = 0;
while (z < _local2.length) {
if (_local2[z] == $cells[i][j].dynamic_indeces[k]){
_local3 = false;
};
z++;
};
if (_local3){
_local2.push($cells[i][j].dynamic_indeces[k]);
};
_local3 = true;
k++;
};
j++;
};
i++;
};
return (_local2);
}
public function SetSize(_arg1:Number, _arg2:uint):void{
var _local3:Array;
$cells = null;
$cells = new Array();
$cell_number = _arg2;
$cell_size = Math.floor((_arg1 / _arg2));
i = 0;
while (i < $cell_number) {
_local3 = new Array();
j = 0;
while (j < $cell_number) {
_local3.push(new Cell(((i * $cell_number) + j)));
j++;
};
$cells.push(_local3);
i++;
};
$box = new AABB2D(0, 0, ($cell_size / 2), ($cell_size / 2));
$debug_box = new AABB2D(0, 0, ($cell_size / 2), ($cell_size / 2));
}
public function GetLast(_arg1):Array{
var _local2:Array;
var _local3:Boolean;
_local2 = new Array();
_local3 = true;
i = 0;
while (i < _arg1.$last_cell_length) {
if ($cells[_arg1.$last_row[i]][_arg1.$last_col[i]].static_indeces){
k = 0;
while (k < $cells[_arg1.$last_row[i]][_arg1.$last_col[i]].static_indeces.length) {
z = 0;
while (z < _local2.length) {
if (_local2[z] == $cells[i][j].static_indeces[k]){
_local3 = false;
};
z++;
};
if (_local3){
_local2.push($cells[_arg1.$last_row[i]][_arg1.$last_col[i]].static_indeces[k]);
};
_local3 = true;
k++;
};
};
k = 0;
while (k < $cells[_arg1.$last_row[i]][_arg1.$last_col[i]].dynamic_length) {
z = 0;
while (z < _local2.length) {
if (_local2[z] == $cells[_arg1.$last_row[i]][_arg1.$last_col[i]].dynamic_indeces[k]){
_local3 = false;
};
z++;
};
if (_local3){
_local2.push($cells[_arg1.$last_row[i]][_arg1.$last_col[i]].dynamic_indeces[k]);
};
_local3 = true;
k++;
};
i++;
};
return (_local2);
}
public function SetOffset(_arg1:Number, _arg2:Number):void{
$offset.x = _arg1;
$offset.y = _arg2;
}
public function Get4Render(_arg1:AABB2D):Array{
var _local2:Array;
var _local3:Boolean;
_local2 = new Array();
$x_from = Math.floor((((_arg1.pos.x - $offset.x) - _arg1.extents.x) / $cell_size));
$x_to = (Math.floor((((_arg1.pos.x - $offset.x) + _arg1.extents.x) / $cell_size)) + 1);
$y_from = Math.floor((((_arg1.pos.y - $offset.y) - _arg1.extents.y) / $cell_size));
$y_to = (Math.floor((((_arg1.pos.y - $offset.y) + _arg1.extents.y) / $cell_size)) + 1);
if ($x_from < 0){
$x_from = 0;
};
if ($y_from < 0){
$y_from = 0;
};
if ($x_to > $cell_number){
$x_to = $cell_number;
};
if ($y_to > $cell_number){
$y_to = $cell_number;
};
_local3 = true;
i = $x_from;
while (i < $x_to) {
j = $y_from;
while (j < $y_to) {
if ($cells[i][j].static_indeces){
k = 0;
while (k < $cells[i][j].static_indeces.length) {
z = 0;
while (z < _local2.length) {
if (_local2[z] == $cells[i][j].static_indeces[k]){
_local3 = false;
};
z++;
};
if (_local3){
_local2.push($cells[i][j].static_indeces[k]);
};
_local3 = true;
k++;
};
};
k = 0;
while (k < $cells[i][j].dynamic_length) {
z = 0;
while (z < _local2.length) {
if (_local2[z] == $cells[i][j].dynamic_indeces[k]){
_local3 = false;
};
z++;
};
if (_local3){
_local2.push($cells[i][j].dynamic_indeces[k]);
};
_local3 = true;
k++;
};
j++;
};
i++;
};
return (_local2);
}
}
}//package main.engine
Section 16
//GridManager (main.engine.GridManager)
package main.engine {
import flash.display.*;
public class GridManager {
public var $debugger:GraphicsDebug;
public var $scale_factor:Number;
public var $objects:Array;
public var $GRID:Grid;
public function GridManager(_arg1:GraphicsDebug, _arg2:Number):void{
$objects = new Array();
$GRID = new Grid();
$debugger = _arg1;
$scale_factor = _arg2;
}
public function DrawGRID():void{
var _local1:*;
var _local2:*;
_local1 = 0;
while (_local1 < $GRID.$cell_number) {
_local2 = 0;
while (_local2 < $GRID.$cell_number) {
$debugger.DrawBoxOutline((_local2 * $GRID.$cell_size), (_local1 * $GRID.$cell_size), $GRID.$cell_size, $GRID.$cell_size, 0x888888, 0.4);
_local2++;
};
_local1++;
};
}
public function ShowBoxCells(_arg1:AABB2D):void{
}
public function Remove(_arg1:IGridObject):void{
$objects[_arg1.GetIndex()] = null;
}
public function Clear():void{
$objects.length = 0;
$GRID.Clear();
}
public function ShowObjectCells(_arg1:IGridObject):void{
var _local2:*;
var _local3:*;
var _local4:*;
_local2 = _arg1.GetBBOX();
$debugger.DrawBox((_local2.pos.x - _local2.extents.x), (_local2.pos.y - _local2.extents.y), (_local2.extents.x * 2), (_local2.extents.y * 2), 0xFF0000, 0.2);
_local3 = 0;
while (_local3 < _arg1.GetGridCellsLength()) {
_local4 = _arg1.GetGridCell(_local3);
$debugger.DrawBox((Math.floor((_local4.value_ / $GRID.$cell_number)) * $GRID.$cell_size), ((((_local4.value_ / $GRID.$cell_number) - Math.floor((_local4.value_ / $GRID.$cell_number))) * $GRID.$cell_number) * $GRID.$cell_size), $GRID.$cell_size, $GRID.$cell_size, 0xFFFF00, 0.2);
_local3++;
};
}
public function SetGRID(_arg1:Number, _arg2:uint):void{
$GRID.SetSize(_arg1, _arg2);
}
public function Get(_arg1:IGridObject):Array{
return ($GRID.GetByObject(_arg1));
}
public function Pop(_arg1:IGridObject):void{
$GRID.Pop(_arg1);
}
public function Add(_arg1:IGridObject):void{
_arg1.SetIndex($objects.length);
$objects.push(_arg1);
}
public function Push(_arg1:IGridObject):void{
$GRID.Push(_arg1);
}
public function ObjectsToGrid():void{
var _local1:*;
_local1 = 0;
while (_local1 < $objects.length) {
$GRID.Push($objects[_local1]);
_local1++;
};
}
public function SortObjects():void{
var _local1:*;
var _local2:*;
var _local3:*;
_local1 = new Array();
_local2 = 0;
while (_local2 < $objects.length) {
if ($objects[_local2].bCashable()){
_local1.push($objects[_local2]);
_local1[(_local1.length - 1)].SetIndex((_local1.length - 1));
};
_local2++;
};
_local2 = 0;
while (_local2 < $objects.length) {
if (!$objects[_local2].bCashable()){
_local1.push($objects[_local2]);
_local1[(_local1.length - 1)].SetIndex((_local1.length - 1));
};
_local2++;
};
_local3 = $objects.length;
_local2 = 0;
while (_local2 < _local3) {
$objects.pop();
_local2++;
};
_local2 = 0;
while (_local2 < _local1.length) {
$objects.push(_local1[_local2]);
_local2++;
};
_local3 = _local1.length;
_local2 = 0;
while (_local2 < _local3) {
_local1.pop();
_local2++;
};
_local1 = null;
}
public function GetByBox(_arg1:AABB2D):Array{
return ($GRID.GetByBBOX(_arg1));
}
}
}//package main.engine
Section 17
//IBaseObject (main.engine.IBaseObject)
package main.engine {
public interface IBaseObject {
function GetType():uint;
function SetIndex(_arg1:uint):void;
function SetManager(_arg1):void;
function GetIndex():uint;
}
}//package main.engine
Section 18
//ICollidable (main.engine.ICollidable)
package main.engine {
public interface ICollidable {
function GetPotentialColliders():Array;
function GetColliders(_arg1:CollisionProxy):void;
}
}//package main.engine
Section 19
//IFactory (main.engine.IFactory)
package main.engine {
import flash.display.*;
public interface IFactory {
function CreateObject(_arg1:uint, _arg2:Boolean, _arg3:MovieClip, _arg4:Number, _arg5:Number):IObject;
}
}//package main.engine
Section 20
//IGridObject (main.engine.IGridObject)
package main.engine {
public interface IGridObject extends IBaseObject {
function ClearCash():void;
function SetGridCell(_arg1:Cell):void;
function bCashable():Boolean;
function GetGridSupport():Boolean;
function Destroy():void;
function GetGridCellsLength():uint;
function GetGridCell(_arg1:uint):Cell;
function GetBBOX():AABB2D;
}
}//package main.engine
Section 21
//Input (main.engine.Input)
package main.engine {
import flash.display.*;
import flash.events.*;
public class Input {
public var keys:Array;
public function Input(_arg1:Stage):void{
var _local2:*;
super();
keys = new Array(104);
_local2 = 0;
while (_local2 < 104) {
keys[_local2] = false;
_local2++;
};
_arg1.addEventListener(KeyboardEvent.KEY_DOWN, KeyDown);
_arg1.addEventListener(KeyboardEvent.KEY_UP, KeyUP);
}
public function KeyDown(_arg1:KeyboardEvent):void{
keys[_arg1.keyCode] = true;
}
public function KeyUP(_arg1:KeyboardEvent):void{
keys[_arg1.keyCode] = false;
}
public function getInput():Array{
return (keys);
}
}
}//package main.engine
Section 22
//IObject (main.engine.IObject)
package main.engine {
import flash.display.*;
import flash.geom.*;
public interface IObject {
function GetDistance(_arg1:Vector2D):Number;
function Draw(_arg1:BitmapData):void;
function GetDamage(_arg1:String, _arg2:Number, _arg3:Point, _arg4:Point):void;
function GetName():String;
function Update():void;
function Subscript():void;
function HitTest(_arg1:IObject):Boolean;
function Init():void;
function Delete():void;
function Coldet():void;
function isOff():Boolean;
function GetType():uint;
function Script():void;
function GetIndex():uint;
function SetIndex(_arg1:uint):void;
function Collide(_arg1:IObject):void;
function GetPosition():Point;
}
}//package main.engine
Section 23
//IRenderable (main.engine.IRenderable)
package main.engine {
import flash.display.*;
import flash.geom.*;
public interface IRenderable {
function Draw(_arg1:BitmapData, _arg2:Point):void;
function GetDrawLayer():uint;
function Update():void;
function SetDrawLayer(_arg1:uint):void;
}
}//package main.engine
Section 24
//IResource (main.engine.IResource)
package main.engine {
public interface IResource {
function GetType():uint;
function SetIndex(_arg1:uint):void;
function GetName():String;
function Delete():void;
function GetIndex():uint;
}
}//package main.engine
Section 25
//MClip (main.engine.MClip)
package main.engine {
import flash.display.*;
import flash.geom.*;
public class MClip extends base_grid_object implements IGridObject, IRenderable {
public var $renderable:Boolean;
public var $cur_animation:uint;
public var $graphics_offset;
public var $stop:Boolean;
public var $draw_layer:uint;
public var $callback;
public var $graphics;
public var $repeat:Boolean;
public var $framerate:uint;
public var $bbox_offset;
public var $hidden:Boolean;
public var $curframe:uint;
public var $graphics_vars;
public var $mirror:uint;
public var $matrix:Matrix;
public var $time:uint;
public function MClip(_arg1, _arg2:Boolean, _arg3:Boolean, _arg4:MovieClip, _arg5:Number, _arg6:Number, _arg7:uint){
super(_arg1.$engine.$renderer, EngineConstants.GRAFTYPE_MCLIP, _arg2, _arg3, _arg4.draw_frame, _arg5, _arg6);
$graphics = $manager.$resources.CreateMClip(_arg4);
$graphics_offset = new Point(0, 0);
$bbox_offset = new Point(0, 0);
$graphics_offset.x = (-1 * (_arg4.draw_frame.x + (_arg4.draw_frame.width / 2)));
$graphics_offset.y = (-1 * (_arg4.draw_frame.y + (_arg4.draw_frame.height / 2)));
$bbox_offset.x = ((_arg4.draw_frame.x + (_arg4.draw_frame.width / 2)) - (_arg4.bbox.x + (_arg4.bbox.width / 2)));
$bbox_offset.y = (((_arg4.draw_frame.y + (_arg4.draw_frame.height / 2)) - (_arg4.bbox.y + (_arg4.bbox.height / 2))) - ((_arg4.draw_frame.height - _arg4.bbox.height) / 2));
$draw_layer = _arg7;
$hidden = false;
$renderable = false;
$cur_animation = 0;
$curframe = 0;
$matrix = new Matrix();
$framerate = 0;
$time = 0;
$repeat = false;
$stop = false;
$owner = null;
$callback = null;
$manager.Add(this);
}
public function SetFrame(_arg1:uint):void{
$curframe = _arg1;
}
public function SetDrawLayer(_arg1:uint):void{
$draw_layer = _arg1;
}
public function SetPosition(_arg1:Number, _arg2:Number):void{
$manager.Pop(this);
$bbox.SetPosition(_arg1, _arg2);
$manager.Push(this);
}
public function SetCallback(_arg1):void{
$callback = _arg1;
}
public function Stop():void{
$stop = true;
}
public function Draw(_arg1:BitmapData, _arg2:Point):void{
if ($hidden){
return;
};
$graphics.$data.gotoAndStop($curframe);
$matrix.tx = (($bbox.pos.x - $bbox.extents.x) - _arg2.x);
$matrix.ty = (($bbox.pos.y - $bbox.extents.y) - _arg2.y);
$matrix.a = (1 - (2 * $mirror));
$matrix.tx = ($matrix.tx + Number(($graphics.$frame_width * $mirror)));
_arg1.draw($graphics.$data, $matrix);
}
override public function Destroy():void{
$manager.Pop(this);
$bbox = null;
$vel = null;
$cells = null;
$graphics = null;
}
public function GetDrawLayer():uint{
return ($draw_layer);
}
public function Move(_arg1:Number, _arg2:Number):void{
$manager.Pop(this);
$bbox.Move(_arg1, _arg2);
$manager.Push(this);
}
public function Play(_arg1:uint, _arg2:uint, _arg3:Boolean, _arg4:uint=0):void{
$stop = false;
$cur_animation = _arg1;
$repeat = _arg3;
$framerate = _arg2;
$mirror = _arg4;
$curframe = $graphics.$data.currentLabels[$cur_animation].frame;
}
public function ShowObjectCells():void{
$manager.ShowObjectCells(this);
}
public function Update():void{
$time++;
if ($time > $framerate){
$time = 0;
if (!$stop){
$curframe++;
if ($curframe >= $graphics.$data.currentLabels[($cur_animation + 1)].frame){
if ($repeat){
$curframe = $graphics.$data.currentLabels[$cur_animation].frame;
} else {
$stop = true;
$curframe--;
if ($callback != null){
$callback($name, $cur_animation);
};
};
};
};
};
}
}
}//package main.engine
Section 26
//MochiWrapper (main.engine.MochiWrapper)
package main.engine {
import flash.display.*;
import flash.events.*;
import mochi.as3.*;
public dynamic class MochiWrapper extends MovieClip {
private var boardID:String;// = "c80658dd90051124"
private var gameID:String;// = "6e64b141bb9d1e79"
public function MochiWrapper():void{
gameID = "6e64b141bb9d1e79";
boardID = "c80658dd90051124";
super();
addFrameScript(0, frame1);
stop();
}
public function _onClose():void{
}
public function checkLoaded(_arg1:ProgressEvent):void{
var _local2:Number;
_local2 = Math.ceil(((_arg1.bytesLoaded / _arg1.bytesTotal) * 100));
if (_local2 == 100){
MochiServices.connect(gameID, this);
};
this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, checkLoaded);
}
public function TrackEvent(_arg1:String, _arg2:int):void{
MochiEvents.trackEvent(_arg1, _arg2);
}
public function Submit(_arg1:int, _arg2:String):void{
MochiScores.submit(_arg1, _arg2);
}
public function ShowLeaderboard(_arg1:int=-1, _arg2:String=""):void{
if ((((_arg1 == -1)) && ((_arg2 == "")))){
MochiScores.showLeaderboard({boardID:boardID, onDisplay:this._onDisplay, onClose:this._onClose, res:"600x480", width:500, height:400, showTableRank:true});
} else {
MochiScores.showLeaderboard({boardID:boardID, score:_arg1, name:_arg2, onDisplay:this._onDisplay, onClose:this._onClose, res:"600x480", width:500, height:400, showTableRank:true});
};
}
public function _onDisplay():void{
}
function frame1(){
stop();
}
public function StartPlay(_arg1:String):void{
MochiEvents.startPlay(_arg1);
}
public function EndPlay():void{
MochiEvents.endPlay();
}
public function Connect():void{
MochiServices.connect(gameID, this);
}
}
}//package main.engine
Section 27
//ObjectManager (main.engine.ObjectManager)
package main.engine {
public class ObjectManager {
public var $objects2:Array;
public var $deleteIndeces;
public var $deleteIndecesLength;// = 0
private var i:uint;// = 0
private var j:uint;// = 0
private var k:uint;// = 0
public var $objects:Array;
public function ObjectManager():void{
$deleteIndeces = new Array(50);
$deleteIndecesLength = 0;
i = 0;
j = 0;
k = 0;
super();
$objects = new Array();
}
public function DeleteObjects():void{
i = 0;
while (i < $objects.length) {
$objects[i].Delete();
i++;
};
this.Clear();
}
public function InitObjects():void{
i = 0;
while (i < $objects.length) {
$objects[i].Init();
i++;
};
}
public function RemoveObjects():void{
i = 0;
while (i < $deleteIndecesLength) {
$objects[$deleteIndeces[i]].Delete();
$objects.splice($deleteIndeces[i], 1);
j = $deleteIndeces[i];
while (j < $objects.length) {
$objects[j].SetIndex(j);
j++;
};
k = i;
while (k < $deleteIndecesLength) {
if ($deleteIndeces[k] > $deleteIndeces[i]){
var _local1 = $deleteIndeces;
var _local2 = k;
var _local3 = (_local1[_local2] - 1);
_local1[_local2] = _local3;
};
k++;
};
i++;
};
$deleteIndecesLength = 0;
}
public function DrawObjects():void{
i = 0;
while (i < $objects.length) {
$objects[i].Draw();
i++;
};
}
public function GetByName(_arg1:String):IObject{
j = 0;
while (j < $objects.length) {
if ($objects[j].GetName() == _arg1){
return ($objects[j]);
};
j++;
};
return (null);
}
public function GetByGroup(_arg1:uint):Array{
var _local2:*;
_local2 = new Array();
j = 0;
while (j < $objects.length) {
if ($objects[j].GetGroup == _arg1){
_local2.push($objects[j]);
};
j++;
};
return (_local2);
}
public function CollideObjects():void{
i = 0;
while (i < $objects.length) {
$objects[i].Coldet();
i++;
};
}
public function ReplaceObjects(_arg1):void{
$objects = null;
$objects = _arg1;
}
public function Clear():void{
$objects.length = 0;
}
public function AddObject(_arg1):void{
_arg1.$index = $objects.length;
$objects.push(_arg1);
}
public function DeleteObject(_arg1:uint):void{
$deleteIndeces[$deleteIndecesLength] = _arg1;
$deleteIndecesLength++;
}
public function UpdateObjects():void{
i = 0;
while (i < $objects.length) {
$objects[i].Update();
i++;
};
}
}
}//package main.engine
Section 28
//Renderer (main.engine.Renderer)
package main.engine {
import flash.display.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import flash.filters.*;
public class Renderer extends GridManager {
public var $surface:BitmapData;
public var $bitmap_mc:MovieClip;
public var $resources:ResourceManager;
private var $img:Bitmap;
private var colorZero:ColorTransform;
public var $render_width:Number;
public var $render_offset:Point;
private var $bQuake;// = false
public var $render_height:Number;
private var $listLength:Array;
private var $$scale_factor;
private var i:uint;
private var j:uint;
private var $renderList:Array;
private var sfx_shaking_diff;
public function Renderer(_arg1, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:ResourceManager, _arg7:GraphicsDebug, _arg8:Number):void{
sfx_shaking_diff = new Point(0, 0);
$bQuake = false;
super(_arg7, _arg8);
$surface = new BitmapData(_arg2, _arg3, true, 0);
$img = new Bitmap($surface);
$img.smoothing = false;
$img.width = (_arg2 * _arg8);
$img.height = (_arg3 * _arg8);
$$scale_factor = _arg8;
$render_width = _arg2;
$render_height = _arg3;
$bitmap_mc = new MovieClip();
_arg1.addChildAt($bitmap_mc, 0);
$bitmap_mc.addChild($img);
$render_offset = new Point(0, 0);
$renderList = new Array(_arg4);
$listLength = new Array(_arg4);
i = 0;
while (i < _arg4) {
$renderList[i] = new Array(_arg5);
$listLength[i] = 0;
j = 0;
while (j < _arg5) {
$renderList[i][j] = null;
j++;
};
i++;
};
$resources = _arg6;
}
public function GetRenderablesByBox(_arg1:AABB2D):void{
var _local2:*;
_local2 = $GRID.GetByBBOX(_arg1);
i = 0;
while (i < _local2.length) {
$renderList[$objects[_local2[i]].GetDrawLayer()][$listLength[$objects[_local2[i]].GetDrawLayer()]] = _local2[i];
var _local3 = $listLength;
var _local4 = $objects[_local2[i]].GetDrawLayer();
var _local5 = (_local3[_local4] + 1);
_local3[_local4] = _local5;
i++;
};
}
public function ZoomIn():void{
$img.width = ($render_width * $$scale_factor);
$img.height = ($render_height * $$scale_factor);
$img.x = 0;
$img.y = 0;
}
override public function Clear():void{
i = 0;
while (i < $renderList.length) {
$listLength[i] = 0;
i++;
};
$objects.length = 0;
$GRID.Clear();
}
public function Quake():void{
$bQuake = true;
}
public function Render():void{
if ($bQuake){
sfx_shaking_diff.x = ((Math.random() * 30) - 15);
sfx_shaking_diff.y = ((Math.random() * 30) - 15);
} else {
sfx_shaking_diff.x = 0;
sfx_shaking_diff.y = 0;
};
$surface.lock();
$surface.fillRect($surface.rect, 4292532954);
$render_offset.x = (Math.floor($render_offset.x) + sfx_shaking_diff.x);
$render_offset.y = (Math.floor($render_offset.y) + sfx_shaking_diff.y);
i = 0;
while (i < $renderList.length) {
j = 0;
while (j < $listLength[i]) {
$objects[$renderList[i][j]].Draw($surface, $render_offset);
j++;
};
$listLength[i] = 0;
i++;
};
$surface.unlock();
}
public function GetRenderable(_arg1):void{
$renderList[_arg1.GetDrawLayer()][$listLength[_arg1.GetDrawLayer()]] = _arg1.GetIndex();
var _local2 = $listLength;
var _local3 = _arg1.GetDrawLayer();
var _local4 = (_local2[_local3] + 1);
_local2[_local3] = _local4;
}
public function StopQuake():void{
$bQuake = false;
}
public function ZoomOut():void{
$img.width = $render_width;
$img.height = $render_height;
$img.x = ((($render_width * $$scale_factor) / 2) - ($render_width / 2));
$img.y = ((($render_height * $$scale_factor) / 2) - ($render_height / 2));
}
public function GetDrawable(_arg1):void{
}
public function RenderObjects(_arg1:Array):void{
}
}
}//package main.engine
Section 29
//ResAClip (main.engine.ResAClip)
package main.engine {
import flash.display.*;
import flash.geom.*;
import main.*;
public class ResAClip extends Resource implements IResource {
public var $numAnims:uint;
public var $frame;
public var $bitmaps:Array;
public var $numFrames:uint;
private var $res_manager;// = null
public var $anim_frames:Array;
public var $frame_width:Number;
public var $frames_coords;
public var $frames_bitmaps;
public function ResAClip(_arg1, _arg2:String, _arg3:uint, _arg4, _arg5:Boolean=false){
$res_manager = null;
super(_arg2, EngineConstants.RESTYPE_ACLIP, _arg3);
$res_manager = _arg1;
$data = new (_arg4);
$frame_width = ($data.bbox.x + $data.bbox.width);
$bitmaps = new Array();
$res_manager.CompileBitmaps(this, $data, _arg5);
$res_manager.CompileFrameCoords(this, $data, _arg5);
}
override public function Delete():void{
$data = null;
$anim_frames.length = 0;
$anim_frames = null;
$frames_coords.length = 0;
$frames_coords = null;
$frames_bitmaps.length = 0;
$frames_bitmaps = null;
}
}
}//package main.engine
Section 30
//ResBitmap (main.engine.ResBitmap)
package main.engine {
import flash.display.*;
import flash.geom.*;
import main.*;
public class ResBitmap extends Resource implements IResource {
public function ResBitmap(_arg1:String, _arg2:uint){
super(_arg1, EngineConstants.RESTYPE_BITMAP, _arg2);
}
public function SingleFrame(_arg1:MovieClip, _arg2, _arg3:Boolean, _arg4:Number=1, _arg5:Number=1, _arg6:Number=1, _arg7:Number=1):void{
var _local8:Matrix;
$data = new BitmapData(Math.floor((_arg1.draw_frame.width * _arg2)), Math.floor((_arg1.draw_frame.height * _arg2)), true, 0xFF0000);
_local8 = new Matrix();
_local8.tx = (-1 * _arg1.draw_frame.x);
_local8.ty = (-1 * _arg1.draw_frame.y);
if (_arg3){
_local8.tx = (_local8.tx + ((_arg1.width * _arg2) + (_arg1.draw_frame.x * 2)));
_local8.a = -1;
_arg1.width = (_arg1.width * _arg2);
_arg1.height = (_arg1.height * _arg2);
$data.draw(_arg1, _local8, new ColorTransform(_arg4, _arg5, _arg6, _arg7));
_arg1.width = (_arg1.width / _arg2);
_arg1.height = (_arg1.height / _arg2);
} else {
_arg1.width = (_arg1.width * _arg2);
_arg1.height = (_arg1.height * _arg2);
$data.draw(_arg1, _local8, new ColorTransform(_arg4, _arg5, _arg6, _arg7));
_arg1.width = (_arg1.width / _arg2);
_arg1.height = (_arg1.height / _arg2);
};
}
public function CompileBitmaps():void{
}
override public function Delete():void{
$data.dispose();
$data = null;
}
}
}//package main.engine
Section 31
//ResMClip (main.engine.ResMClip)
package main.engine {
import flash.display.*;
import flash.geom.*;
import main.*;
public class ResMClip extends Resource implements IResource {
public var $frame_width:Number;
public function ResMClip(_arg1:String, _arg2:uint, _arg3, _arg4){
super(_arg1, EngineConstants.RESTYPE_MCLIP, _arg2);
$data = new (_arg3);
$data.width = ($data.width * _arg4);
$data.height = ($data.height * _arg4);
$frame_width = ($data.bbox.x + ($data.bbox.width * _arg4));
}
override public function Delete():void{
$data = null;
}
}
}//package main.engine
Section 32
//Resource (main.engine.Resource)
package main.engine {
public class Resource implements IResource {
public var $type:uint;
public var $data;
public var $index:uint;
public var $name:String;
public function Resource(_arg1:String, _arg2:uint, _arg3:uint){
$name = _arg1;
$type = _arg2;
$index = _arg3;
$data = null;
}
public function GetName():String{
return ($name);
}
public function GetType():uint{
return ($type);
}
public function GetIndex():uint{
return ($index);
}
public function Delete():void{
}
public function SetIndex(_arg1:uint):void{
$index = _arg1;
}
}
}//package main.engine
Section 33
//ResourceManager (main.engine.ResourceManager)
package main.engine {
import flash.display.*;
import flash.geom.*;
import flash.utils.*;
import flash.system.*;
public class ResourceManager {
public var $res_scaling:Number;// = 1
public var $objects:Array;
private var $stage:Stage;
public function ResourceManager(_arg1:Stage):void{
$res_scaling = 1;
super();
$objects = new Array();
$stage = _arg1;
}
public function getResourceByName(_arg1:String):IResource{
var _local2:*;
_local2 = 0;
while (_local2 < $objects.length) {
if ($objects[_local2].GetName() == _arg1){
return ($objects[_local2]);
};
_local2++;
};
return (null);
}
public function CreateBitmap(_arg1:MovieClip, _arg2:Boolean=false, _arg3:Number=1, _arg4:Number=1, _arg5:Number=1, _arg6:Number=1):ResBitmap{
var _local7:*;
var _local8:*;
var _local9:*;
_local7 = String(getQualifiedClassName(_arg1));
_local8 = getResourceByName(_local7);
if (_local8 != null){
return (_local8);
};
_local9 = new ResBitmap(_local7, $objects.length);
_local9.SingleFrame(_arg1, $res_scaling, _arg2, _arg3, _arg4, _arg5, _arg6);
$objects.push(_local9);
return (_local9);
}
public function deleteByName(_arg1:String):void{
var _local2:*;
_local2 = 0;
while (_local2 < $objects.length) {
if ($objects[_local2].GetName() == _arg1){
$objects[_local2].Delete();
$objects.splice(_local2, 1);
return;
};
_local2++;
};
}
public function CompileBitmaps(_arg1:ResAClip, _arg2:MovieClip, _arg3:Boolean=false, _arg4:Number=1, _arg5:Number=1, _arg6:Number=1, _arg7:Number=1):void{
var _local8:Matrix;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
var _local16:*;
var _local17:*;
var _local18:*;
var _local19:*;
var _local20:Matrix;
var _local21:*;
_arg2.width = (_arg2.width * $res_scaling);
_arg2.height = (_arg2.height * $res_scaling);
_local8 = new Matrix();
_local8.tx = _arg2.draw_frame.width;
_local8.a = -1;
if (_arg2.totalFrames > 1){
_local9 = new Rectangle(0, 0, Math.floor(_arg2.draw_frame.width), Math.floor(_arg2.draw_frame.height));
_local10 = Math.floor((2880 / _local9.width));
_local11 = Math.floor((2880 / _local9.height));
_local12 = Math.ceil((_arg2.totalFrames / (_local10 * _local11)));
_local13 = (Math.ceil((_arg2.totalFrames / _local10)) * _local9.height);
if (((_local11 * _local10) / _arg2.totalFrames) < 1){
_local13 = (_local11 * _local9.height);
};
_local14 = (_arg2.totalFrames * _local9.width);
if ((_local10 / _arg2.totalFrames) < 1){
_local14 = (_local10 * _local9.width);
};
_local15 = 0;
_local16 = 0;
_local8.tx = _local14;
_local17 = $objects.length;
_local18 = true;
if (getResourceByName((_arg2.BITMAP_MIDNAME + "_bmp_0")) != null){
_local18 = false;
};
if (_local18){
_local19 = 0;
while (_local19 < _local12) {
_arg1.$bitmaps.push(null);
_local21 = new ResBitmap(((_arg2.BITMAP_MIDNAME + "_bmp_") + _local19), $objects.length);
$objects.push(_local21);
$objects[($objects.length - 1)].$data = new BitmapData(_local14, _local13, true, 0xFF0000);
_arg1.$bitmaps[(_arg1.$bitmaps.length - 1)] = $objects[($objects.length - 1)];
_local19++;
};
_local20 = new Matrix();
_local19 = 1;
while (_local19 <= _arg2.totalFrames) {
_local20.tx = (((_local19 - 1) - (Math.floor(((_local19 - 1) / _local10)) * _local10)) * _local9.width);
_local15 = (Math.floor(((_local19 - 1) / _local10)) + 1);
_local20.ty = (((_local15 - 1) - (Math.floor(((_local15 - 1) / _local11)) * _local11)) * _local9.height);
_local16 = Math.floor(((_local15 - 1) / _local11));
_arg2.gotoAndStop(_local19);
$objects[(_local17 + _local16)].$data.draw(_arg2, _local20, new ColorTransform(_arg4, _arg5, _arg6, _arg7));
_local19++;
};
} else {
_local19 = 0;
while (_local19 < _local12) {
_arg1.$bitmaps.push(null);
_arg1.$bitmaps[(_arg1.$bitmaps.length - 1)] = getResourceByName(((_arg2.BITMAP_MIDNAME + "_bmp_") + _local19));
_local19++;
};
};
if (_arg3){
_local18 = true;
if (getResourceByName((_arg2.BITMAP_MIDNAME + "_bmp_r0")) != null){
_local18 = false;
};
if (_local18){
_local19 = 0;
while (_local19 < _local12) {
_arg1.$bitmaps.push(null);
_local21 = new ResBitmap(((_arg2.BITMAP_MIDNAME + "_bmp_r") + _local19), $objects.length);
$objects.push(_local21);
_arg1.$bitmaps[(_arg1.$bitmaps.length - 1)] = $objects[($objects.length - 1)];
$objects[($objects.length - 1)].$data = new BitmapData(_local14, _local13, true, 0xFF0000);
$objects[($objects.length - 1)].$data.draw($objects[(_local17 + _local19)].$data, _local8, new ColorTransform(_arg4, _arg5, _arg6, _arg7));
_local19++;
};
} else {
_local19 = 0;
while (_local19 < _local12) {
_arg1.$bitmaps.push(null);
_arg1.$bitmaps[(_arg1.$bitmaps.length - 1)] = getResourceByName(((_arg2.BITMAP_MIDNAME + "_bmp_r") + _local19));
_local19++;
};
};
};
};
_arg2.width = (_arg2.width / $res_scaling);
_arg2.height = (_arg2.height / $res_scaling);
}
public function CreateAClip(_arg1:MovieClip, _arg2:Boolean=false){
var _local3:*;
var _local4:*;
var _local5:*;
_local3 = String(getQualifiedClassName(_arg1));
_local4 = getResourceByName(_local3);
if (_local4 != null){
return (_local4);
};
_local5 = new ResAClip(this, _local3, $objects.length, $stage.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(_arg1)), _arg2);
$objects.push(_local5);
return (_local5);
}
public function CompileFrameCoords(_arg1:ResAClip, _arg2:MovieClip, _arg3=false):void{
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:uint;
var _local13:uint;
var _local14:Array;
var _local15:Matrix;
var _local16:uint;
var _local17:uint;
_arg2.width = (_arg2.width * $res_scaling);
_arg2.height = (_arg2.height * $res_scaling);
_local4 = $objects.length;
_arg1.$frame = new Rectangle(0, 0, Math.floor(_arg2.draw_frame.width), Math.floor(_arg2.draw_frame.height));
_arg1.$anim_frames = new Array();
_arg1.$frames_coords = new Array();
_arg1.$frames_bitmaps = new Array();
_arg1.$numFrames = _arg2.totalFrames;
_arg1.$numAnims = _arg2.currentLabels.length;
_local5 = new Rectangle(0, 0, Math.floor(_arg2.draw_frame.width), Math.floor(_arg2.draw_frame.height));
_local6 = Math.floor(_arg1.$bitmaps[0].$data.width);
_local7 = Math.floor(_arg1.$bitmaps[0].$data.height);
_local8 = Math.floor((_local6 / _local5.width));
_local9 = Math.floor((_local7 / _local5.height));
_local10 = 0;
_local11 = 0;
_local14 = _arg2.currentLabels;
_local15 = new Matrix();
_local16 = 0;
while (_local16 < _local14.length) {
_local12 = _local14[_local16].frame;
if (_local16 != (_local14.length - 1)){
_local13 = _local14[(_local16 + 1)].frame;
} else {
_local13 = (_arg2.totalFrames + 1);
};
_arg1.$anim_frames.push((_local12 - 1));
_arg1.$anim_frames.push((_local13 - 2));
_local17 = _local12;
while (_local17 < _local13) {
_local15.tx = (((_local17 - 1) - (Math.floor(((_local17 - 1) / _local8)) * _local8)) * _local5.width);
_local10 = (Math.floor(((_local17 - 1) / _local8)) + 1);
_local15.ty = (((_local10 - 1) - (Math.floor(((_local10 - 1) / _local9)) * _local9)) * _local5.height);
_local11 = Math.floor(((_local10 - 1) / _local9));
_arg1.$frames_coords.push(new Point(_local15.tx, _local15.ty));
_arg1.$frames_bitmaps.push(_local11);
_local17++;
};
_local16++;
};
if (_arg3){
_local16 = 0;
while (_local16 < _local14.length) {
_local12 = _local14[_local16].frame;
if (_local16 != (_local14.length - 1)){
_local13 = _local14[(_local16 + 1)].frame;
} else {
_local13 = (_arg2.totalFrames + 1);
};
_arg1.$anim_frames.push(((_local12 - 1) + _arg2.totalFrames));
_arg1.$anim_frames.push(((_local13 - 2) + _arg2.totalFrames));
_local17 = _local12;
while (_local17 < _local13) {
_local15.tx = (((_local8 - 1) - ((_local17 - 1) - (Math.floor(((_local17 - 1) / _local8)) * _local8))) * _local5.width);
_local10 = (Math.floor(((_local17 - 1) / _local8)) + 1);
_local15.ty = (((_local10 - 1) - (Math.floor(((_local10 - 1) / _local9)) * _local9)) * _local5.height);
_local11 = Math.floor(((_local10 - 1) / _local9));
_arg1.$frames_coords.push(new Point(_local15.tx, _local15.ty));
_arg1.$frames_bitmaps.push((_local11 + (_arg1.$bitmaps.length / 2)));
_local17++;
};
_local16++;
};
};
_arg2.width = (_arg2.width / $res_scaling);
_arg2.height = (_arg2.height / $res_scaling);
}
public function CreateMClip(_arg1:MovieClip):ResMClip{
var _local2:*;
var _local3:*;
var _local4:*;
_local2 = String(getQualifiedClassName(_arg1));
_local3 = getResourceByName(_local2);
if (_local3 != null){
return (_local3);
};
_local4 = new ResMClip(_local2, $objects.length, $stage.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(_arg1)), $res_scaling);
$objects.push(_local4);
return (_local4);
}
public function Clear():void{
var _local1:*;
_local1 = 0;
while (_local1 < $objects.length) {
$objects[_local1].Delete();
_local1++;
};
$objects.length = 0;
}
}
}//package main.engine
Section 34
//ScriptManager (main.engine.ScriptManager)
package main.engine {
public class ScriptManager {
public var $scripts:Array;
private var i:uint;// = 0
public function ScriptManager():void{
i = 0;
super();
$scripts = new Array();
}
public function RunScripts():void{
i = 0;
while (i < $scripts.length) {
var _local1 = $scripts;
_local1[i](i);
i++;
};
}
public function DeleteScript(_arg1:uint):void{
$scripts.splice(_arg1, 1);
}
public function AddScript(_arg1):void{
$scripts.push(_arg1);
}
public function Clear():void{
$scripts.length = 0;
}
}
}//package main.engine
Section 35
//SoundSystem (main.engine.SoundSystem)
package main.engine {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.system.*;
public class SoundSystem {
public var $active_channels:Array;
public var $sounds:Array;
public var $off;
public var $type:String;
public var $ear;
public var $channels:Array;
public var $free_channels:Array;
public function SoundSystem(_arg1):void{
var _local2:*;
super();
$type = "SoundSystem";
$sounds = new Array();
$channels = new Array();
$free_channels = new Array();
$active_channels = new Array();
_local2 = 0;
while (_local2 < 32) {
$channels.push(new Wave(null, this, _local2));
$free_channels.push(_local2);
_local2++;
};
$ear = _arg1;
$off = false;
}
public function PopSound(_arg1, _arg2):void{
$free_channels.push(_arg1);
$active_channels.splice(_arg2, 1);
}
public function Shut():void{
var _local1:*;
$off = true;
_local1 = 0;
while (_local1 < $active_channels.length) {
$channels[$active_channels[_local1]].SetVolume(0);
_local1++;
};
}
public function StopSounds():void{
var _local1:*;
_local1 = 0;
while (_local1 < $active_channels.length) {
$channels[$active_channels[_local1]].Stop2();
_local1++;
};
$active_channels.length = 0;
$free_channels.length = 0;
_local1 = 0;
while (_local1 < 32) {
$free_channels.push(_local1);
_local1++;
};
}
public function Update():void{
var _local1:*;
return;
}
public function AddSound(_arg1):uint{
$sounds.push(_arg1);
return (($sounds.length - 1));
}
public function Scream():void{
var _local1:*;
$off = false;
_local1 = 0;
while (_local1 < $active_channels.length) {
$channels[$active_channels[_local1]].SetVolume(1);
_local1++;
};
}
public function Play(_arg1:uint, _arg2:Boolean=false, _arg3=null, _arg4:Number=0, _arg5:Number=1, _arg6:Number=0){
if ($off){
_arg5 = 0;
};
if ($free_channels.length == 0){
return;
};
$channels[$free_channels[0]].Play2($sounds[_arg1], $active_channels.length, $ear, _arg2, _arg3, _arg4, _arg5, _arg6);
$active_channels.push($free_channels[0]);
$free_channels.splice(0, 1);
return ($channels[$active_channels[($active_channels.length - 1)]]);
}
}
}//package main.engine
Section 36
//StatBitmap (main.engine.StatBitmap)
package main.engine {
import flash.display.*;
import flash.geom.*;
public class StatBitmap extends base_grid_object implements IGridObject, IRenderable {
public var $draw_point:Point;
public var $renderable:Boolean;
public var $graphics_offset;
public var $draw_layer:uint;
public var $graphics;
public var $bbox_offset;
public var $frame:Rectangle;
public var callback;
public var $hidden:Boolean;
public var $graphics_vars;
public var $deleted:Boolean;// = false
public function StatBitmap(_arg1, _arg2:Boolean, _arg3:Boolean, _arg4:MovieClip, _arg5:Number, _arg6:Number, _arg7:uint=1, _arg8:Boolean=false){
$deleted = false;
super(_arg1.$engine.$renderer, EngineConstants.GRAFTYPE_BITMAP, _arg2, _arg3, _arg4.draw_frame, _arg5, _arg6);
$graphics = $manager.$resources.CreateBitmap(_arg4, _arg8);
$graphics_offset = new Point(0, 0);
$bbox_offset = new Point(0, 0);
$graphics_offset.x = (-1 * (_arg4.draw_frame.x + (_arg4.draw_frame.width / 2)));
$graphics_offset.y = (-1 * (_arg4.draw_frame.y + (_arg4.draw_frame.height / 2)));
$bbox_offset.x = ((_arg4.draw_frame.x + (_arg4.draw_frame.width / 2)) - (_arg4.bbox.x + (_arg4.bbox.width / 2)));
$bbox_offset.y = ((_arg4.draw_frame.y + (_arg4.draw_frame.height / 2)) - (_arg4.bbox.y + (_arg4.bbox.height / 2)));
$draw_point = new Point(0, 0);
$frame = new Rectangle(0, 0, $graphics.$data.width, $graphics.$data.height);
$draw_layer = _arg7;
$hidden = false;
$renderable = false;
$owner = null;
callback = null;
$manager.Add(this);
}
public function Update():void{
}
public function SetPosition(_arg1:Number, _arg2:Number):void{
$manager.Pop(this);
$bbox.SetPosition(_arg1, _arg2);
$manager.Push(this);
}
public function SetDrawLayer(_arg1:uint):void{
$draw_layer = _arg1;
}
public function Draw(_arg1:BitmapData, _arg2:Point):void{
if ($deleted){
};
if ($deleted){
return;
};
$draw_point.x = (($bbox.pos.x - $bbox.extents.x) - _arg2.x);
$draw_point.y = (($bbox.pos.y - $bbox.extents.y) - _arg2.y);
_arg1.copyPixels($graphics.$data, $frame, $draw_point, null, null, true);
}
override public function Destroy():void{
$deleted = true;
$manager.Pop(this);
$bbox = null;
$vel = null;
$cells = null;
$graphics = null;
}
public function GetDrawLayer():uint{
return ($draw_layer);
}
public function Move(_arg1:Number, _arg2:Number):void{
$manager.Pop(this);
$bbox.Move(_arg1, _arg2);
$manager.Push(this);
}
}
}//package main.engine
Section 37
//Wave (main.engine.Wave)
package main.engine {
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.system.*;
public class Wave {
public var $sound_sys;
public var $snd;
public var $loop;
public var $wave_position;
public var $volume;
public var $type:String;
public var $sound_transform:SoundTransform;
public var $channel:SoundChannel;
public var $cur_position;
public var $stop:Boolean;// = true
public var $index;// = 0
public var $pan;
public var $active_index;// = 0
public function Wave(_arg1, _arg2, _arg3):void{
$index = 0;
$active_index = 0;
$stop = true;
super();
$type = "sound";
$snd = _arg1;
$sound_sys = _arg2;
$index = _arg3;
$sound_transform = new SoundTransform(1, 0);
$loop = 0;
$cur_position = 0;
$volume = 128;
$pan = 0;
$wave_position = null;
}
private function soundCompleteHandler(_arg1:Event):void{
$stop = true;
}
public function Stop2():void{
$channel.stop();
$stop = true;
}
public function Play(_arg1=0, _arg2=0, _arg3=1, _arg4=0):void{
$sound_transform.pan = _arg4;
$sound_transform.volume = _arg3;
$channel = $snd.$sound.play(_arg1, _arg2, $sound_transform);
$channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
$stop = false;
}
public function Stop():void{
$channel.stop();
$sound_sys.PopSound($index, $active_index);
$stop = true;
}
public function Play2(_arg1, _arg2, _arg3, _arg4=false, _arg5=null, _arg6=0, _arg7=1, _arg8=0):void{
$active_index = _arg2;
$wave_position = _arg5;
if (_arg4){
$loop = 99999999;
} else {
$loop = 0;
};
$volume = _arg7;
$pan = _arg8;
if (((($pan == 0)) && (!((_arg5 == null))))){
$pan = (($wave_position.x - _arg3.pos.x) / (_arg3.extents.x * 2));
};
$sound_transform.pan = $pan;
$sound_transform.volume = $volume;
$channel = _arg1.play(_arg6, $loop, $sound_transform);
$channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler2);
$stop = false;
}
public function SetVolume(_arg1):void{
$volume = _arg1;
$sound_transform.pan = $pan;
$sound_transform.volume = $volume;
$channel.soundTransform = $sound_transform;
}
private function soundCompleteHandler2(_arg1:Event):void{
$sound_sys.PopSound($index, $active_index);
$stop = true;
}
public function Update(_arg1, _arg2):void{
if ($wave_position != null){
$pan = (($wave_position.x - _arg1.pos.x) / (_arg1.extents.x * 2));
};
$sound_transform.pan = $pan;
$sound_transform.volume = $volume;
if (_arg2){
$sound_transform.volume = 0;
};
$channel.soundTransform = $sound_transform;
}
public function SetPan(_arg1):void{
$pan = _arg1;
$sound_transform.pan = $pan;
$sound_transform.volume = $volume;
$channel.soundTransform = $sound_transform;
}
}
}//package main.engine
Section 38
//Vector2D (main.engine.Vector2D)
package main.engine {
import flash.display.*;
import flash.geom.*;
public class Vector2D {
private var v1:Point;
private var M2:Point;
public var dir:Point;
private var v1_x1minusx2:Number;// = 0
private var v2_v2:Number;// = 0
private var x1:Point;
private var x2:Point;
private var good:Boolean;// = false
private var v1_v1:Number;// = 0
private var v1_v2:Number;// = 0
public var type:String;
private var K1:Point;
private var v2_x1minusx2:Number;// = 0
private var O:Point;
public var pos:Point;
private var a:Number;// = 0
private var b:Number;// = 0
public var n:Point;
public var subtype:uint;
private var v2:Point;
public function Vector2D(_arg1:Number=1, _arg2:Number=1, _arg3:Number=0.0001, _arg4:Number=0.0001, _arg5:Number=0.0001):void{
x1 = new Point();
v1 = new Point();
x2 = new Point();
v2 = new Point();
v2_v2 = 0;
v1_v1 = 0;
v1_v2 = 0;
v1_x1minusx2 = 0;
v2_x1minusx2 = 0;
a = 0;
b = 0;
O = new Point();
K1 = new Point();
M2 = new Point();
good = false;
super();
type = "Vector2D";
if (_arg1 == 0){
_arg1 = 0.0001;
};
if (_arg2 == 0){
_arg2 = 0.0001;
};
if (_arg3 == 0){
_arg3 = 0.0001;
};
if (_arg4 == 0){
_arg4 = 0.0001;
};
dir = new Point(_arg1, _arg2);
pos = new Point(_arg3, _arg4);
if ((((_arg5 < 0)) && ((_arg5 > -90)))){
dir.y = (dir.y * -1);
};
if ((((_arg5 < -90)) && ((_arg5 >= -180)))){
dir.x = (dir.x * -1);
dir.y = (dir.y * -1);
};
if ((((_arg5 < 180)) && ((_arg5 >= 90)))){
dir.x = (dir.x * -1);
};
if ((((_arg5 < 90)) && ((_arg5 > 0)))){
};
n = new Point((dir.x / dir.length), (dir.y / dir.length));
}
public function FromCoords(_arg1:Number=1, _arg2:Number=1, _arg3:Number=0.0001, _arg4:Number=0.0001):void{
if (_arg1 == 0){
_arg1 = 0.0001;
};
if (_arg2 == 0){
_arg2 = 0.0001;
};
if (_arg3 == 0){
_arg3 = 0.0001;
};
if (_arg4 == 0){
_arg4 = 0.0001;
};
dir.x = _arg1;
dir.y = _arg2;
pos.x = _arg3;
pos.y = _arg4;
n.x = (dir.x / dir.length);
n.y = (dir.y / dir.length);
}
public function Add(_arg1:Vector2D):Vector2D{
return (new Vector2D((_arg1.dir.x + dir.x), (_arg1.dir.y + dir.y), dir.x, dir.y));
}
public function Sub(_arg1:Vector2D):Vector2D{
return (new Vector2D((_arg1.dir.x - dir.x), (_arg1.dir.y - dir.y), (pos.x + _arg1.dir.x), (pos.y + _arg1.dir.y)));
}
public function CrossByItsNormalFrom(_arg1:Point){
x1.x = pos.x;
x1.y = pos.y;
v1.x = n.x;
v1.y = n.y;
x2.x = _arg1.x;
x2.y = _arg1.y;
v2.x = -(n.y);
v2.y = n.x;
v2_v2 = ((v2.x * v2.x) + (v2.y * v2.y));
v1_v1 = ((v1.x * v1.x) + (v1.y * v1.y));
v1_v2 = ((v1.x * v2.x) + (v1.y * v2.y));
v1_x1minusx2 = ((v1.x * (x1.x - x2.x)) + (v1.y * (x1.y - x2.y)));
v2_x1minusx2 = ((v2.x * (x1.x - x2.x)) + (v2.y * (x1.y - x2.y)));
a = (((v2_v2 * v1_x1minusx2) - (v1_v2 * v2_x1minusx2)) / ((v1_v1 * v2_v2) - (v1_v2 * v1_v2)));
b = (((v1_v2 * v1_x1minusx2) - (v1_v1 * v2_x1minusx2)) / ((v1_v1 * v2_v2) - (v1_v2 * v1_v2)));
O.x = (x1.x - (a * v1.x));
O.y = (x1.y - (a * v1.y));
return (O);
}
public function Trace():void{
}
public function Cross(_arg1:Vector2D):Point{
x1.x = pos.x;
x1.y = pos.y;
v1.x = n.x;
v1.y = n.y;
x2.x = _arg1.pos.x;
x2.y = _arg1.pos.y;
v2.x = _arg1.n.x;
v2.y = _arg1.n.y;
v2_v2 = ((v2.x * v2.x) + (v2.y * v2.y));
v1_v1 = ((v1.x * v1.x) + (v1.y * v1.y));
v1_v2 = ((v1.x * v2.x) + (v1.y * v2.y));
v1_x1minusx2 = ((v1.x * (x1.x - x2.x)) + (v1.y * (x1.y - x2.y)));
v2_x1minusx2 = ((v2.x * (x1.x - x2.x)) + (v2.y * (x1.y - x2.y)));
a = (((v2_v2 * v1_x1minusx2) - (v1_v2 * v2_x1minusx2)) / ((v1_v1 * v2_v2) - (v1_v2 * v1_v2)));
b = (((v1_v2 * v1_x1minusx2) - (v1_v1 * v2_x1minusx2)) / ((v1_v1 * v2_v2) - (v1_v2 * v1_v2)));
if ((v1_v1 * v2_v2) == (v1_v2 * v1_v2)){
return (null);
};
O.x = (x1.x - (a * v1.x));
O.y = (x1.y - (a * v1.y));
K1.x = _arg1.pos.x;
K1.y = _arg1.pos.y;
M2.x = (_arg1.pos.x + _arg1.dir.x);
M2.y = (_arg1.pos.y + _arg1.dir.y);
good = false;
if ((((K1.x >= O.x)) && ((O.x >= M2.x)))){
if ((((K1.y >= O.y)) && ((O.y >= M2.y)))){
good = true;
};
if ((((M2.y >= O.y)) && ((O.y >= K1.y)))){
good = true;
};
};
if ((((M2.x >= O.x)) && ((O.x >= K1.x)))){
if ((((K1.y >= O.y)) && ((O.y >= M2.y)))){
good = true;
};
if ((((M2.y >= O.y)) && ((O.y >= K1.y)))){
good = true;
};
};
if (good == true){
K1.x = pos.x;
K1.y = pos.y;
M2.x = (pos.x + dir.x);
M2.y = (pos.y + dir.y);
if ((((K1.x >= O.x)) && ((O.x >= M2.x)))){
if ((((K1.y >= O.y)) && ((O.y >= M2.y)))){
return (O);
};
if ((((M2.y >= O.y)) && ((O.y >= K1.y)))){
return (O);
};
};
if ((((M2.x >= O.x)) && ((O.x >= K1.x)))){
if ((((K1.y >= O.y)) && ((O.y >= M2.y)))){
return (O);
};
if ((((M2.y >= O.y)) && ((O.y >= K1.y)))){
return (O);
};
};
};
return (null);
}
public function Dot(_arg1:Vector2D):Number{
return (((dir.x * _arg1.dir.x) + (dir.y * _arg1.dir.y)));
}
public function RecalcNormal():void{
n.x = (dir.x / dir.length);
n.y = (dir.y / dir.length);
}
public function IntersectCircle(_arg1, _arg2):Number{
var _local3:Number;
var _local4:Number;
var _local5:Number;
K1.x = (_arg1.x - pos.x);
K1.y = (_arg1.y - pos.y);
_local3 = K1.length;
_local4 = ((K1.x * dir.x) + (K1.y * dir.y));
_local5 = ((_arg2 * _arg2) - ((_local3 * _local3) - (_local4 * _local4)));
if (_local5 < 0){
return (-666666);
};
return ((_local4 - Math.sqrt(_local5)));
}
public function SetLength(_arg1):void{
dir.x = (n.x * _arg1);
dir.y = (n.y * _arg1);
}
public function _Add(_arg1):void{
pos.x = (pos.x + _arg1.dir.x);
pos.y = (pos.y + _arg1.dir.y);
}
public function PointIsOn(_arg1):Boolean{
K1.x = pos.x;
K1.y = pos.y;
M2.x = (pos.x + dir.x);
M2.y = (pos.y + dir.y);
good = false;
if ((((K1.x >= _arg1.x)) && ((_arg1.x >= M2.x)))){
if ((((K1.y >= _arg1.y)) && ((_arg1.y >= M2.y)))){
good = true;
};
if ((((M2.y >= _arg1.y)) && ((_arg1.y >= K1.y)))){
good = true;
};
};
if ((((M2.x >= _arg1.x)) && ((_arg1.x >= K1.x)))){
if ((((K1.y >= _arg1.y)) && ((_arg1.y >= M2.y)))){
good = true;
};
if ((((M2.y >= _arg1.y)) && ((_arg1.y >= K1.y)))){
good = true;
};
};
return (good);
}
public function NearestPointTo(_arg1):Point{
K1.x = (_arg1.x - pos.x);
K1.y = (_arg1.y - pos.y);
M2.x = ((_arg1.x - pos.x) + dir.x);
M2.y = ((_arg1.y - pos.y) + dir.y);
if (K1.length < M2.length){
return (new Point(pos.x, pos.y));
};
return (new Point((pos.x + dir.x), (pos.y + dir.y)));
}
public function Angle(_arg1):Number{
return ((((dir.x * _arg1.dir.x) + (dir.y * _arg1.dir.y)) / (dir.length * _arg1.dir.length)));
}
public function CrossLines(_arg1){
x1.x = pos.x;
x1.y = pos.y;
v1.x = n.x;
v1.y = n.y;
x2.x = _arg1.pos.x;
x2.y = _arg1.pos.y;
v2.x = _arg1.n.x;
v2.y = _arg1.n.y;
v2_v2 = ((v2.x * v2.x) + (v2.y * v2.y));
v1_v1 = ((v1.x * v1.x) + (v1.y * v1.y));
v1_v2 = ((v1.x * v2.x) + (v1.y * v2.y));
v1_x1minusx2 = ((v1.x * (x1.x - x2.x)) + (v1.y * (x1.y - x2.y)));
v2_x1minusx2 = ((v2.x * (x1.x - x2.x)) + (v2.y * (x1.y - x2.y)));
a = (((v2_v2 * v1_x1minusx2) - (v1_v2 * v2_x1minusx2)) / ((v1_v1 * v2_v2) - (v1_v2 * v1_v2)));
b = (((v1_v2 * v1_x1minusx2) - (v1_v1 * v2_x1minusx2)) / ((v1_v1 * v2_v2) - (v1_v2 * v1_v2)));
O.x = (x1.x - (a * v1.x));
O.y = (x1.y - (a * v1.y));
return (O);
}
public function DotNormal(_arg1:Vector2D):Number{
return (((n.x * _arg1.n.x) + (n.y * _arg1.n.y)));
}
public function Intersect(_arg1):Point{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
_local2 = ((((_arg1.pos.y + _arg1.dir.y) - _arg1.pos.y) * ((pos.x + dir.x) - pos.x)) - (((_arg1.pos.x + _arg1.dir.x) - _arg1.pos.x) * ((pos.y + dir.y) - pos.y)));
_local3 = ((((_arg1.pos.x + _arg1.dir.x) - _arg1.pos.x) * (pos.y - _arg1.pos.y)) - (((_arg1.pos.y + _arg1.dir.y) - _arg1.pos.y) * (pos.x - _arg1.pos.x)));
_local4 = ((((pos.x + dir.x) - pos.x) * (pos.y - _arg1.pos.y)) - (((pos.y + dir.y) - pos.y) * (pos.x - _arg1.pos.x)));
if (_local2 == 0){
if ((((_local3 == 0)) && ((_local4 == 0)))){
return (null);
};
return (null);
};
_local5 = (_local3 / _local2);
_local6 = (_local4 / _local2);
if ((((((((_local5 >= 0)) && ((_local5 <= 1)))) && ((_local6 >= 0)))) && ((_local6 <= 1)))){
return (new Point((pos.x + (_local5 * ((pos.x + dir.x) - pos.x))), (pos.y + (_local5 * ((pos.y + dir.y) - pos.y)))));
};
return (null);
}
}
}//package main.engine
Section 39
//AnimSprite (main.objects.AnimSprite)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class AnimSprite extends GameObject implements IObject {
public var $mySprite:AClip;
public function AnimSprite(_arg1, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:uint=1, _arg6:Boolean=false){
super(_arg1);
$type = GameConstants.OBJTYPE_ANIMSPRITE;
$mySprite = new AClip($game, true, false, _arg2, _arg3, _arg4, _arg5, _arg6);
$mySprite.$name = "default_anim_sprite";
$mySprite.Play(0, 1, true);
}
override public function Delete():void{
this.$mySprite.Destroy();
}
override public function Update():void{
$mySprite.Update();
}
override public function GetPosition():Point{
return (this.$mySprite.GetBBOX().pos);
}
}
}//package main.objects
Section 40
//Background (main.objects.Background)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class Background extends GameObject implements IObject {
public var $mySprite:BigBitmap;
public function Background(_arg1, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:uint=1, _arg6:Boolean=false, _arg7:Number=1){
super(_arg1);
$type = GameConstants.OBJTYPE_BACKGROUND;
$mySprite = new BigBitmap($game, false, false, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7);
$renderables.push(this.$mySprite);
}
override public function Delete():void{
$mySprite.Destroy();
}
override public function Update():void{
$game.$engine.$renderer.GetRenderable($mySprite);
}
override public function GetPosition():Point{
return ($mySprite.GetBBOX().pos);
}
}
}//package main.objects
Section 41
//Boss (main.objects.Boss)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class Boss extends GameObject implements IObject {
public const ATTACK = 2;
public const INTRO = 6;
public const SPAWN = 5;
public const DEAD = 4;
public const WAIT = 7;
public const WALK = 1;
public const IDLE = 0;
public var $bFalling:Boolean;// = false
public var $player;// = null
public var $stone_point1;// = null
public var $waypoint_left;
public var $stone_point3;// = null
public var $WaitTime:Number;// = 0
var bbox;
public var $exit_point0;// = null
public var $WaitTimeout:Number;// = 10
var i;
public var $jump_dig_pause:Number;// = 6
var j;
var k;// = 0
public var $jump_timeout:Number;// = 6
public var $collisionProxy;
public var $waypoint_right;
public var $jump_pause_time:Number;// = 0
public var $health:Number;// = 5
var $UPtest2;
var dy;// = 0
var dx;
public var $jump_time:Number;// = 0
public var $speed:Number;
public var $G:Number;
public var $chosen_point;// = 3
public var $mySprite:MClip;
public var $WaitTimeout2:Number;// = 20
public var $State:uint;
var $attack_time;// = 0
public var $jump_pause:Number;// = 4
public var $inCamera:Boolean;// = false
public var $temp_vel:Number;
var $UPtest;
public var $myBox:ColAABB;
public var $stone_point0;// = null
public var $jump_dig_pause_time:Number;// = 0
public var $last_waypoint;
public var $stone_point2;// = null
public var $spawn_free;
public var $ChosenDir:Number;
public var $dir:Point;
public var $vel:Point;
public var $mirror:uint;
public function Boss(_arg1, _arg2, _arg3, _arg4){
$collisionProxy = new CollisionProxy();
$health = 5;
$jump_time = 0;
$jump_timeout = 6;
$jump_pause = 4;
$jump_pause_time = 0;
$jump_dig_pause = 6;
$jump_dig_pause_time = 0;
$bFalling = false;
$inCamera = false;
$player = null;
$WaitTimeout = 10;
$WaitTimeout2 = 20;
$WaitTime = 0;
$last_waypoint = this;
$waypoint_left = this;
$waypoint_right = this;
$stone_point0 = null;
$stone_point1 = null;
$stone_point2 = null;
$stone_point3 = null;
$chosen_point = 3;
$spawn_free = new Array(4);
$exit_point0 = null;
k = 0;
dy = 0;
bbox = new AABB2D(1, 1, 1, 1);
$UPtest = new Vector2D(0.0001, -1);
$UPtest2 = new Vector2D(0.0001, 1);
$attack_time = 0;
super(_arg1);
$type = GameConstants.OBJTYPE_BOSS;
$name = "Boss";
$mySprite = new MClip($game, true, false, _arg2, _arg3, _arg4, 4);
$mySprite.$name = "mySprite";
$mySprite.SetCallback(HandleAnimEnds);
$renderables.push($mySprite);
$mySprite.Play($mySprite.$graphics.$data.LABEL_INTRO, 3, false);
$myBox = new ColAABB($game, this, true, false, _arg2, _arg3, _arg4);
$State = INTRO;
$dir = new Point(0, 0);
$vel = new Point(0, 0);
$speed = 4;
$G = 18;
$mirror = 0;
if ($game.$bEasyMode){
$health = 3;
};
$ChosenDir = 1;
$spawn_free[0] = true;
$spawn_free[1] = true;
$spawn_free[2] = true;
$spawn_free[3] = true;
}
public function SpawnStone():void{
var _local1:*;
var _local2:*;
var _local3:*;
_local1 = new Array();
if ($spawn_free[0] == true){
_local1.push(0);
};
if ($spawn_free[1] == true){
_local1.push(1);
};
if ($spawn_free[2] == true){
_local1.push(2);
};
if ($spawn_free[3] == true){
_local1.push(3);
};
_local2 = Math.floor((Math.random() * _local1.length));
$spawn_free[_local1[_local2]] = false;
switch (_local1[_local2]){
case 0:
_local3 = $game.$factory.CreateStone($game.$resources.Stone001, $stone_point0.$myBox.$bbox.pos.x, $stone_point0.$myBox.$bbox.pos.y, 3, false);
$game.$engine.AddObject(_local3);
_local3.$init_index = _local3.$index;
break;
case 1:
_local3 = $game.$factory.CreateStone($game.$resources.Stone001, $stone_point1.$myBox.$bbox.pos.x, $stone_point1.$myBox.$bbox.pos.y, 3, false);
$game.$engine.AddObject(_local3);
_local3.$init_index = _local3.$index;
break;
case 2:
_local3 = $game.$factory.CreateStone($game.$resources.Stone001, $stone_point2.$myBox.$bbox.pos.x, $stone_point2.$myBox.$bbox.pos.y, 3, false);
$game.$engine.AddObject(_local3);
_local3.$init_index = _local3.$index;
break;
case 3:
_local3 = $game.$factory.CreateStone($game.$resources.Stone001, $stone_point3.$myBox.$bbox.pos.x, $stone_point3.$myBox.$bbox.pos.y, 3, false);
$game.$engine.AddObject(_local3);
_local3.$init_index = _local3.$index;
break;
};
}
public function HandleAnimEnds(_arg1:String, _arg2:uint):void{
if (_arg2 == $mySprite.$graphics.$data.LABEL_INTRO){
$State = WALK;
$mySprite.Play($mySprite.$graphics.$data.LABEL_WALK, 3, true, $mirror);
if (((!($game.$bTrainingMode)) && ($game.$bBossTalk))){
$game.$bBossTalk = false;
$game.$MENU.gotoAndPlay("BossTalk");
};
};
if (_arg2 == $mySprite.$graphics.$data.LABEL_PAIN){
$State = WALK;
$mySprite.Play($mySprite.$graphics.$data.LABEL_WALK, 3, true, $mirror);
};
if (_arg2 == $mySprite.$graphics.$data.LABEL_ATTACK){
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_SPIDER_JUMP]);
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_QUAKE]);
$game.$engine.$renderer.Quake();
$player.$myBox.$bbox.pos.y = ($player.$myBox.$bbox.pos.y + 20);
$State = WAIT;
$WaitTime = $WaitTimeout2;
$mySprite.Play($mySprite.$graphics.$data.LABEL_IDLE, 3, true, $mirror);
SpawnStone();
};
if (_arg2 == $mySprite.$graphics.$data.LABEL_DEATH){
$game.$engine.$sound.StopSounds();
$game.$bGame = false;
$game.DestroyLevel();
$game.NextLevel();
$game.$engine.HideFPS();
$game.$engine.$renderer.StopQuake();
$game.$MENU.gotoAndPlay("boss_defeated");
};
}
public function SpawnExit():void{
var _local1:*;
$game.$SFX.AddSprite(GameConstants.SFX_DEFAULT, GameConstants.SFX_DEFAULT_DIGPLATEBLOW1, $exit_point0.$myBox.$bbox.pos.x, $exit_point0.$myBox.$bbox.pos.y);
_local1 = $game.$factory.CreateLevelExit($game.$resources.Exit001, $exit_point0.$myBox.$bbox.pos.x, $exit_point0.$myBox.$bbox.pos.y, 3, false);
$game.$engine.AddObject(_local1);
}
override public function Collide(_arg1:IObject):void{
}
override public function GetDamage(_arg1:String, _arg2:Number, _arg3:Point, _arg4:Point):void{
}
override public function GetDistance(_arg1:Vector2D):Number{
return (0xFFFF);
}
public function Die():void{
$mySprite.Play($mySprite.$graphics.$data.LABEL_DEATH, 5, false, $mirror);
$jump_time = $jump_timeout;
$State = DEAD;
}
override public function GetPosition():Point{
if ($State != DEAD){
return ($mySprite.GetBBOX().pos);
};
return (null);
}
override public function HitTest(_arg1:IObject):Boolean{
return (false);
}
override public function Coldet():void{
}
override public function Delete():void{
$myBox.Destroy();
$mySprite.Destroy();
}
override public function Update():void{
var _local1:Number;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
if ($jump_dig_pause_time > 0){
$jump_dig_pause_time--;
};
switch ($State){
case INTRO:
break;
case IDLE:
if ($WaitTime > 0){
$WaitTime--;
} else {
if (((((((($spawn_free[0] == true)) || (($spawn_free[1] == true)))) || (($spawn_free[2] == true)))) || (($spawn_free[3] == true)))){
$attack_time = 0;
$State = ATTACK;
$mySprite.Play($mySprite.$graphics.$data.LABEL_ATTACK, 3, false, $mirror);
} else {
$mySprite.Play($mySprite.$graphics.$data.LABEL_WALK, 3, true, $mirror);
$State = WALK;
};
};
$dir.x = 0;
$dir.y = 1;
$vel.x = 0;
$vel.y = (($G * $dir.y) * 0.4);
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
case WALK:
if ($jump_pause_time > 0){
$jump_pause_time--;
};
$dir.x = $ChosenDir;
$dir.y = 1;
if ($dir.x > 0){
$mirror = 0;
} else {
$mirror = 1;
};
$vel.x = ($speed * $dir.x);
$vel.y = (($G * $dir.y) * 0.4);
$mySprite.$mirror = $mirror;
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
case DEAD:
$mySprite.Update();
return;
case ATTACK:
$attack_time++;
$vel.x = 0;
if ($attack_time < 4){
$vel.y = (-4 * 4);
} else {
$vel.y = (4 * 4);
};
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
case SPAWN:
break;
case WAIT:
if ($WaitTime > 0){
$WaitTime--;
} else {
$game.$engine.$renderer.StopQuake();
$State = WALK;
$mySprite.Play($mySprite.$graphics.$data.LABEL_WALK, 3, true, $mirror);
};
$dir.x = 0;
$dir.y = 1;
$vel.x = 0;
$vel.y = (($G * $dir.y) * 0.4);
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
default:
break;
};
$vel.x = 0;
$vel.y = 0;
$inCamera = false;
$collisionProxy.Clear();
$myBox.GetColliders($collisionProxy);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x - $vel.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y - $vel.y);
_local1 = 0xFFFF;
_local2 = 0xFFFF;
i = 0;
while (i < $collisionProxy.$COLTYPE_AABB_LENGTH) {
switch ($collisionProxy.$COLTYPE_AABB[i].$owner.GetType()){
case GameConstants.OBJTYPE_DIGPLATE:
$collisionProxy.$COLTYPE_AABB[i].$distance = $collisionProxy.$COLTYPE_AABB[i].$bbox.distanceBetween($myBox.$bbox);
if ($collisionProxy.$COLTYPE_AABB[i].$distance < _local1){
_local1 = $collisionProxy.$COLTYPE_AABB[i].$distance;
_local2 = i;
};
break;
default:
break;
};
i++;
};
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + $vel.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + $vel.y);
i = 0;
while (i < $collisionProxy.$COLTYPE_MESH_LENGTH) {
_local3 = $collisionProxy.$COLTYPE_MESH[i].GetVectors($myBox.$bbox);
j = 0;
while (j < _local3.length) {
switch (_local3[j].$subtype){
case EngineConstants.VECTYPE_SOLID:
_local4 = new Point(_local3[j].$vector.n.y, (-1 * _local3[j].$vector.n.x));
_local5 = new Vector2D((-(_local4.x) * $myBox.$bbox.extents.x), (-(_local4.y) * $myBox.$bbox.extents.y), $myBox.$bbox.pos.x, $myBox.$bbox.pos.y, 0);
_local6 = _local5.Cross(_local3[j].$vector);
if (_local6 != null){
_local7 = $UPtest.Angle(_local3[j].$vector);
_local8 = $UPtest.Angle(_local3[j].$vector);
if (_local3[j].$vector.n.x < -0.6){
$jump_time = -1;
};
if (((((_local7 * _local7) < 0.4)) || (((_local8 * _local8) < 0.4)))){
if ($dir.y > 0){
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
};
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + ((_local6.y + (_local4.y * $myBox.$bbox.extents.y)) - $myBox.$bbox.pos.y));
} else {
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + (((_local6.x + (_local4.x * $myBox.$bbox.extents.x)) + 0.0002) - $myBox.$bbox.pos.x));
};
};
break;
case EngineConstants.VECTYPE_LEVELBOTTOM:
$State = DEAD;
break;
};
j++;
};
i++;
};
i = 0;
while (i < $collisionProxy.$COLTYPE_MESHSIMPLE_LENGTH) {
switch ($collisionProxy.$COLTYPE_MESHSIMPLE[i].$owner.GetType()){
default:
break;
};
i++;
};
i = 0;
while (i < $collisionProxy.$COLTYPE_VECTOR2D_LENGTH) {
switch ($collisionProxy.$COLTYPE_VECTOR2D[i].$owner.GetType()){
default:
break;
};
i++;
};
if (_local2 != 0xFFFF){
switch ($collisionProxy.$COLTYPE_AABB[_local2].$owner.GetType()){
case GameConstants.OBJTYPE_DIGPLATE:
_local9 = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[_local2].$bbox);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + _local9.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + _local9.y);
if (_local9.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
};
if (_local9.y > 0){
$jump_time = -1;
};
break;
default:
break;
};
};
i = 0;
while (i < $collisionProxy.$COLTYPE_AABB_LENGTH) {
switch ($collisionProxy.$COLTYPE_AABB[i].$owner.GetType()){
case GameConstants.OBJTYPE_CAMERA:
$inCamera = true;
break;
case GameConstants.OBJTYPE_KILLER:
$jump_time = $jump_timeout;
$State = DEAD;
$mySprite.Play($mySprite.$graphics.$data.LABEL_DEATH, 3, true, $mirror);
return;
case GameConstants.OBJTYPE_PLATFORM:
_local9 = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[i].$bbox);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + _local9.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + _local9.y);
if (_local9.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
};
if (_local9.y > 0){
$jump_time = -1;
};
break;
case GameConstants.OBJTYPE_STONE:
if ($State == SPAWN){
break;
};
if ($State == DEAD){
break;
};
if ($collisionProxy.$COLTYPE_AABB[i].$owner.$State != $collisionProxy.$COLTYPE_AABB[i].$owner.STONE_FALL){
break;
};
$health--;
if ($health <= 0){
$game.AddLevelStat(GameConstants.LSTAT_BOSS);
$jump_time = $jump_timeout;
$State = DEAD;
$mySprite.Play($mySprite.$graphics.$data.LABEL_DEATH, 3, false, $mirror);
} else {
$game.$engine.$renderer.StopQuake();
$State = SPAWN;
$mySprite.Play($mySprite.$graphics.$data.LABEL_PAIN, 3, false, $mirror);
};
break;
case GameConstants.OBJTYPE_DIGPLATE:
_local9 = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[i].$bbox);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + _local9.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + _local9.y);
if (_local9.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
};
if (_local9.y > 0){
$jump_time = -1;
};
break;
case GameConstants.OBJTYPE_WAYPOINT:
if ($last_waypoint.GetName() != $collisionProxy.$COLTYPE_AABB[i].$owner.GetName()){
if ($collisionProxy.$COLTYPE_AABB[i].$owner.GetName() == "StartPoint"){
break;
};
$last_waypoint = $collisionProxy.$COLTYPE_AABB[i].$owner;
$State = IDLE;
$mySprite.Play($mySprite.$graphics.$data.LABEL_IDLE, 8, true, $mirror);
$WaitTime = ((Math.random() * 20) + 10);
if (((($collisionProxy.$COLTYPE_AABB[i].$owner.$waypoint_left == null)) || (($collisionProxy.$COLTYPE_AABB[i].$owner.GetName() == this.$waypoint_left.GetName())))){
$ChosenDir = 1;
};
if (((($collisionProxy.$COLTYPE_AABB[i].$owner.$waypoint_right == null)) || (($collisionProxy.$COLTYPE_AABB[i].$owner.GetName() == this.$waypoint_right.GetName())))){
$ChosenDir = -1;
};
};
break;
default:
break;
};
i++;
};
$mySprite.SetPosition(($myBox.$bbox.pos.x + $mySprite.$bbox_offset.x), ($myBox.$bbox.pos.y - $mySprite.$bbox_offset.y));
$mySprite.Update();
}
override public function Subscript():void{
}
override public function Script():void{
}
public function FreeSpawnPlace(_arg1):void{
$spawn_free[Number(_arg1.substring((_arg1.indexOf("_") + 1)))] = true;
}
}
}//package main.objects
Section 42
//Checkpoint (main.objects.Checkpoint)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class Checkpoint extends GameObject implements IObject {
public const CHECKPOINT_IDLE = 0;
public const CHECKPOINT_INACTIVE = 2;
public const CHECKPOINT_ENABLED = 1;
public var $myBox:ColAABB;
public var $mySprite:MClip;
public var $State:uint;
public function Checkpoint(_arg1, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:uint=1, _arg6:Boolean=false){
super(_arg1);
$type = GameConstants.OBJTYPE_CHECKPOINT;
$mySprite = new MClip($game, true, false, _arg2, _arg3, _arg4, _arg5);
$mySprite.$name = "default_anim_sprite";
$mySprite.SetCallback(HandleAnimEnds);
$mySprite.Play(0, 1, false);
$myBox = new ColAABB($game, this, true, false, _arg2, _arg3, _arg4);
$State = CHECKPOINT_IDLE;
}
public function HandleAnimEnds(_arg1:String, _arg2:uint):void{
if (_arg2 == 1){
$State = CHECKPOINT_INACTIVE;
$mySprite.Play(2, 2, true);
};
}
public function Activate():Boolean{
if ($State == CHECKPOINT_IDLE){
$State = CHECKPOINT_ENABLED;
$mySprite.Play(1, 3, false);
$game.Checkpoint($name.substr(($name.indexOf("_") + 1)));
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_ACHIEVEMENT]);
return (true);
};
return (false);
}
public function Deactivate():void{
$State = CHECKPOINT_INACTIVE;
$mySprite.Play(2, 2, true);
}
override public function Delete():void{
this.$mySprite.Destroy();
}
override public function Update():void{
switch ($State){
case CHECKPOINT_IDLE:
break;
case CHECKPOINT_ENABLED:
$mySprite.Update();
break;
case CHECKPOINT_INACTIVE:
$mySprite.Update();
break;
};
}
override public function GetPosition():Point{
return (this.$mySprite.GetBBOX().pos);
}
}
}//package main.objects
Section 43
//Collectable (main.objects.Collectable)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class Collectable extends GameObject implements IObject {
public var $myBox:ColAABB;
public var $LSTAT_TYPE:uint;
public var $mySprite:AClip;
public var $bDeleted:Boolean;// = false
public function Collectable(_arg1, _arg2:uint, _arg3:MovieClip, _arg4:Number, _arg5:Number, _arg6:uint, _arg7:Boolean){
$bDeleted = false;
super(_arg1);
$LSTAT_TYPE = _arg2;
$type = GameConstants.OBJTYPE_COLLECTABLE;
$mySprite = new AClip($game, true, false, _arg3, _arg4, _arg5, 3);
$renderables.push($mySprite);
$mySprite.Play(0, 3, true);
$mySprite.$curframe = (1 + uint(Math.floor((Math.random() * 8))));
$myBox = new ColAABB($game, this, true, false, _arg3, _arg4, _arg5);
}
override public function Subscript():void{
}
public function HandleAnimEnds(_arg1:String, _arg2:uint):void{
}
override public function Collide(_arg1:IObject):void{
}
override public function HitTest(_arg1:IObject):Boolean{
return (false);
}
override public function Coldet():void{
}
override public function GetDamage(_arg1:String, _arg2:Number, _arg3:Point, _arg4:Point):void{
}
override public function Delete():void{
$myBox.Destroy();
$mySprite.Destroy();
}
override public function Update():void{
$mySprite.Update();
}
override public function Script():void{
}
override public function GetDistance(_arg1:Vector2D):Number{
return (0xFFFF);
}
public function Destruct():void{
if ($bDeleted){
return;
};
$bDeleted = true;
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_GEM]);
$game.$engine.DeleteObject($index);
$game.$SFX.AddSprite(GameConstants.SFX_DEFAULT, GameConstants.SFX_DEFAULT_SHINE, $myBox.$bbox.pos.x, $myBox.$bbox.pos.y);
switch ($LSTAT_TYPE){
case GameConstants.LSTAT_GREENGEM:
$game.$SFX.AddSprite(GameConstants.SFX_DEFAULT, GameConstants.SFX_DEFAULT_GREENGEM, $myBox.$bbox.pos.x, $myBox.$bbox.pos.y);
break;
case GameConstants.LSTAT_BLUEGEM:
$game.$SFX.AddSprite(GameConstants.SFX_DEFAULT, GameConstants.SFX_DEFAULT_BLUEGEM, $myBox.$bbox.pos.x, $myBox.$bbox.pos.y);
break;
case GameConstants.LSTAT_REDGEM:
$game.$SFX.AddSprite(GameConstants.SFX_DEFAULT, GameConstants.SFX_DEFAULT_REDGEM, $myBox.$bbox.pos.x, $myBox.$bbox.pos.y);
break;
case GameConstants.LSTAT_DIAGEM:
$game.$SFX.AddSprite(GameConstants.SFX_DEFAULT, GameConstants.SFX_DEFAULT_DIAGEM, $myBox.$bbox.pos.x, $myBox.$bbox.pos.y);
break;
case GameConstants.LSTAT_BIGGEM:
$game.$SFX.AddSprite(GameConstants.SFX_DEFAULT, GameConstants.SFX_DEFAULT_BIGGEM, $myBox.$bbox.pos.x, $myBox.$bbox.pos.y);
break;
default:
break;
};
$game.AddLevelStat($LSTAT_TYPE);
$game.LevelObjectRemoved(this.$init_index);
}
override public function GetPosition():Point{
return ($mySprite.GetBBOX().pos);
}
}
}//package main.objects
Section 44
//DigPlate (main.objects.DigPlate)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class DigPlate extends GameObject implements IObject {
public var $myBox:ColAABB;
public var $speed:Number;
public var $G:Number;
public var $mySprite:StatBitmap;
public var $State:uint;
public var $dir:Point;
public var $vel:Point;
public var $mirror:uint;
public function DigPlate(_arg1, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:uint, _arg6:Boolean){
super(_arg1);
$type = GameConstants.OBJTYPE_DIGPLATE;
$name = "digplate";
$myBox = new ColAABB($game, this, true, false, _arg2, _arg3, _arg4);
$mySprite = new StatBitmap($game, true, false, _arg2, _arg3, _arg4, _arg5, _arg6);
$mySprite.$name = "DigPlateSprite";
$renderables.push($mySprite);
$dir = new Point(0, 0);
$vel = new Point(0, 0);
$speed = 5;
$G = 9;
$mirror = 0;
}
override public function Subscript():void{
}
public function HandleAnimEnds(_arg1:String, _arg2:uint):void{
}
override public function Collide(_arg1:IObject):void{
}
override public function HitTest(_arg1:IObject):Boolean{
return (false);
}
override public function Coldet():void{
}
override public function GetDamage(_arg1:String, _arg2:Number, _arg3:Point, _arg4:Point):void{
}
override public function Delete():void{
$myBox.Destroy();
$mySprite.Destroy();
}
override public function Update():void{
}
override public function Script():void{
}
override public function GetDistance(_arg1:Vector2D):Number{
return (0xFFFF);
}
public function Destruct():void{
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_GROUND]);
$game.$engine.DeleteObject($index);
$game.LevelObjectRemoved(this.$init_index);
$game.$SFX.AddSprite(GameConstants.SFX_DEFAULT, GameConstants.SFX_DEFAULT_DIGPLATEBLOW1, $myBox.$bbox.pos.x, $myBox.$bbox.pos.y);
}
override public function GetPosition():Point{
return ($mySprite.GetBBOX().pos);
}
}
}//package main.objects
Section 45
//FallingRock (main.objects.FallingRock)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class FallingRock extends GameObject implements IObject {
public const ROCK_FALL = 2;
public const ROCK_IDLE = 0;
public const ROCK_SHAKE = 1;
public const ROCK_DEAD = 3;
public var i;
public var k;// = 0
public var j;
public var $bDeleted:Boolean;// = false
public var $collisionProxy;
public var $shake_timeout;// = 30
public var $shake_time;// = 0
public var $bPushed:Boolean;// = false
public var $speed:Number;
public var $G:Number;
public var $mySprite:AClip;
public var $State:uint;
public var $inCamera:Boolean;// = false
public var $myBox:ColAABB;
public var $mirror:uint;
public var $dir:Point;
public var $vel:Point;
public function FallingRock(_arg1, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:uint, _arg6:Boolean){
$collisionProxy = new CollisionProxy();
$bDeleted = false;
$bPushed = false;
$shake_time = 0;
$shake_timeout = 30;
$inCamera = false;
k = 0;
super(_arg1);
$type = GameConstants.OBJTYPE_FALLINGROCK;
$name = "falling rock";
$State = ROCK_IDLE;
$mySprite = new AClip($game, true, false, _arg2, _arg3, _arg4, _arg5);
$mySprite.$name = "mySprite";
$mySprite.SetCallback(HandleAnimEnds);
$mySprite.Play($mySprite.$graphics.$data.LABEL_IDLE, 0, false);
$myBox = new ColAABB($game, this, true, false, _arg2, _arg3, _arg4);
$myBox.$owner = this;
$dir = new Point(0, 0);
$vel = new Point(0, 0);
$speed = 5;
$G = 9;
$mirror = 0;
}
public function HandleAnimEnds(_arg1:String, _arg2:uint):void{
}
override public function Collide(_arg1:IObject):void{
}
override public function GetDamage(_arg1:String, _arg2:Number, _arg3:Point, _arg4:Point):void{
}
override public function GetDistance(_arg1:Vector2D):Number{
return (0xFFFF);
}
override public function GetPosition():Point{
return ($mySprite.GetBBOX().pos);
}
public function CheckCollisions():void{
var _local1:*;
$inCamera = false;
$collisionProxy.Clear();
$myBox.GetColliders($collisionProxy);
i = 0;
while (i < $collisionProxy.$COLTYPE_AABB_LENGTH) {
switch ($collisionProxy.$COLTYPE_AABB[i].$owner.GetType()){
case GameConstants.OBJTYPE_CAMERA:
$inCamera = true;
break;
case GameConstants.OBJTYPE_GOBLIN:
$collisionProxy.$COLTYPE_AABB[i].$owner.Die();
break;
case GameConstants.OBJTYPE_PLATFORM:
if (!$bDeleted){
$bDeleted = true;
Destruct();
};
break;
case GameConstants.OBJTYPE_DIGPLATE:
if (!$bDeleted){
$bDeleted = true;
Destruct();
};
break;
case GameConstants.OBJTYPE_KILLER:
if (!$bDeleted){
$bDeleted = true;
Destruct();
};
break;
};
i++;
};
i = 0;
while (i < $collisionProxy.$COLTYPE_MESH_LENGTH) {
_local1 = $collisionProxy.$COLTYPE_MESH[i].GetVectors($myBox.$bbox);
j = 0;
while (j < _local1.length) {
switch (_local1[j].$subtype){
case EngineConstants.VECTYPE_SOLID:
if (!$bDeleted){
$bDeleted = true;
Destruct();
};
break;
case EngineConstants.VECTYPE_LEVELBOTTOM:
if (!$bDeleted){
$bDeleted = true;
Destruct();
};
break;
};
j++;
};
i++;
};
}
override public function HitTest(_arg1:IObject):Boolean{
return (false);
}
override public function Coldet():void{
}
public function Destruct():void{
if (!$bDeleted){
return;
};
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_GROUND]);
$game.$engine.DeleteObject($index);
$game.LevelObjectRemoved(this.$init_index);
$game.$SFX.AddSprite(GameConstants.SFX_DEFAULT, GameConstants.SFX_DEFAULT_DIGPLATEBLOW1, $myBox.$bbox.pos.x, $myBox.$bbox.pos.y);
}
override public function Update():void{
switch ($State){
case ROCK_IDLE:
if ($bPushed){
$State = ROCK_SHAKE;
$mySprite.Play($mySprite.$graphics.$data.LABEL_SHAKE, 2, true, $mirror);
$shake_time = $shake_timeout;
};
break;
case ROCK_SHAKE:
$mySprite.Update();
$shake_time--;
if ($shake_time < 0){
$State = ROCK_FALL;
$mySprite.Play($mySprite.$graphics.$data.LABEL_FALL, 2, false, $mirror);
};
break;
case ROCK_FALL:
$myBox.Move(0, 12);
$mySprite.SetPosition(($myBox.$bbox.pos.x + $mySprite.$bbox_offset.x), ($myBox.$bbox.pos.y + $mySprite.$bbox_offset.y));
$mySprite.Update();
CheckCollisions();
break;
};
}
override public function Subscript():void{
}
override public function Delete():void{
$myBox.Destroy();
$mySprite.Destroy();
}
override public function Script():void{
this.$script(this);
}
}
}//package main.objects
Section 46
//Frustum (main.objects.Frustum)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class Frustum extends GameObject implements IObject {
public var $collisionProxy;
public var $bCurrent:Boolean;
public var k;// = 0
public var $myBox:ColAABB;
public var $target:IObject;
public var $bFoundCollision:Boolean;// = false
public var $frustum:AABB2D;
public var j;
public var i;
public function Frustum(_arg1, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:Boolean=false){
$collisionProxy = new CollisionProxy();
k = 0;
$bFoundCollision = false;
super(_arg1);
$type = GameConstants.OBJTYPE_CAMERA;
$name = "camera1";
this.$bCurrent = _arg5;
this.$frustum = new AABB2D(0, 0, 1, 1);
if (this.$bCurrent){
this.$frustum.FromCoords(($game.$engine.$renderer.$render_width / 2), ($game.$engine.$renderer.$render_height / 2), _arg3, _arg4);
} else {
this.$frustum.GetFromMC(_arg2, _arg3, _arg4);
};
this.$target = null;
$myBox = new ColAABB($game, this, true, false, _arg2, _arg3, _arg4);
$myBox.$bbox.FromCoords(($game.$engine.$renderer.$render_width / 2), ($game.$engine.$renderer.$render_height / 2), _arg3, _arg4);
}
public function SetTarget(_arg1:IObject):void{
$target = _arg1;
}
override public function Subscript():void{
}
override public function Collide(_arg1:IObject):void{
}
override public function HitTest(_arg1:IObject):Boolean{
return (false);
}
override public function Coldet():void{
}
override public function Init():void{
$init_script(this);
}
override public function GetDamage(_arg1:String, _arg2:Number, _arg3:Point, _arg4:Point):void{
}
override public function Delete():void{
}
override public function Draw(_arg1:BitmapData):void{
}
override public function Update():void{
if (((!((this.$target == null))) && (!((this.$target.GetPosition() == null))))){
this.$frustum.SetPoint(this.$target.GetPosition());
$game.$engine.$renderer.$render_offset.x = (this.$frustum.pos.x - this.$frustum.extents.x);
$game.$engine.$renderer.$render_offset.y = (this.$frustum.pos.y - this.$frustum.extents.y);
$game.$engine.$debugger.$render_offset.x = (this.$frustum.pos.x - this.$frustum.extents.x);
$game.$engine.$debugger.$render_offset.y = (this.$frustum.pos.y - this.$frustum.extents.y);
$myBox.SetPosition(this.$frustum.pos.x, this.$frustum.pos.y);
};
$collisionProxy.Clear();
$myBox.GetColliders($collisionProxy);
$bFoundCollision = false;
i = 0;
while (i < $collisionProxy.$COLTYPE_AABB_LENGTH) {
switch ($collisionProxy.$COLTYPE_AABB[i].$owner.GetType()){
case GameConstants.OBJTYPE_LEVELBOUNDARY:
switch ($collisionProxy.$COLTYPE_AABB[i].$owner.$subtype){
case $collisionProxy.$COLTYPE_AABB[i].$owner.BOUNDARY_BOTTOM:
$myBox.$bbox.pos.y = ($collisionProxy.$COLTYPE_AABB[i].$bbox.pos.y - $myBox.$bbox.extents.y);
$bFoundCollision = true;
break;
case $collisionProxy.$COLTYPE_AABB[i].$owner.BOUNDARY_TOP:
$myBox.$bbox.pos.y = ($collisionProxy.$COLTYPE_AABB[i].$bbox.pos.y + $myBox.$bbox.extents.y);
$bFoundCollision = true;
break;
case $collisionProxy.$COLTYPE_AABB[i].$owner.BOUNDARY_LEFT:
$myBox.$bbox.pos.x = ($collisionProxy.$COLTYPE_AABB[i].$bbox.pos.x + $myBox.$bbox.extents.x);
$bFoundCollision = true;
break;
case $collisionProxy.$COLTYPE_AABB[i].$owner.BOUNDARY_RIGHT:
$myBox.$bbox.pos.x = ($collisionProxy.$COLTYPE_AABB[i].$bbox.pos.x - $myBox.$bbox.extents.x);
$bFoundCollision = true;
break;
default:
break;
};
break;
default:
break;
};
i++;
};
if ($bFoundCollision){
this.$frustum.SetPoint($myBox.$bbox.pos);
$game.$engine.$renderer.$render_offset.x = (this.$frustum.pos.x - this.$frustum.extents.x);
$game.$engine.$renderer.$render_offset.y = (this.$frustum.pos.y - this.$frustum.extents.y);
$game.$engine.$debugger.$render_offset.x = (this.$frustum.pos.x - this.$frustum.extents.x);
$game.$engine.$debugger.$render_offset.y = (this.$frustum.pos.y - this.$frustum.extents.y);
};
if (this.$bCurrent){
$game.$engine.$renderer.GetRenderablesByBox(this.$frustum);
};
}
override public function Script():void{
}
override public function GetDistance(_arg1:Vector2D):Number{
return (0xFFFF);
}
override public function GetPosition():Point{
return (this.$frustum.pos);
}
}
}//package main.objects
Section 47
//Goblin (main.objects.Goblin)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class Goblin extends GameObject implements IObject {
public const GOBLIN_FALL_DIG = 6;
public const GOBLIN_WALK = 1;
public const GOBLIN_IDLE = 0;
public const GOBLIN_EXIT = 7;
public const GOBLIN_JUMP = 2;
public const GOBLIN_DEAD = 4;
public const GOBLIN_STAND_DIG = 5;
public const GOBLIN_FALL = 3;
public var $bFalling:Boolean;// = false
public var $waypoint_left;
public var $WaitTime:Number;// = 0
var bbox;
public var $jump_dig_pause:Number;// = 6
public var $WaitTimeout:Number;// = 10
var i;
var j;
var k;// = 0
public var $jump_timeout:Number;// = 6
public var $collisionProxy;
public var $waypoint_right;
public var $jump_pause_time:Number;// = 0
public var $health:Number;// = 100
var $UPtest2;
var dx;
var dy;// = 0
public var $jump_time:Number;// = 0
public var $speed:Number;
public var $G:Number;
public var $mySprite:MClip;
public var $jump_pause:Number;// = 4
public var $inCamera:Boolean;// = false
var $UPtest;
public var $State:uint;
public var $temp_vel:Number;
public var $myBox:ColAABB;
public var $jump_dig_pause_time:Number;// = 0
public var $mirror:uint;
public var $last_waypoint;
public var $dir:Point;
public var $ChosenDir:Number;
public var $vel:Point;
public function Goblin(_arg1, _arg2, _arg3, _arg4){
$collisionProxy = new CollisionProxy();
$health = 100;
$jump_time = 0;
$jump_timeout = 6;
$jump_pause = 4;
$jump_pause_time = 0;
$jump_dig_pause = 6;
$jump_dig_pause_time = 0;
$bFalling = false;
$inCamera = false;
$WaitTimeout = 10;
$WaitTime = 0;
$last_waypoint = this;
$waypoint_left = this;
$waypoint_right = this;
k = 0;
dy = 0;
bbox = new AABB2D(1, 1, 1, 1);
$UPtest = new Vector2D(0.0001, -1);
$UPtest2 = new Vector2D(0.0001, 1);
super(_arg1);
$type = GameConstants.OBJTYPE_GOBLIN;
$name = "goblin";
$mySprite = new MClip($game, true, false, _arg2, _arg3, _arg4, 4);
$mySprite.$name = "mySprite";
$mySprite.SetCallback(HandleAnimEnds);
$renderables.push($mySprite);
$mySprite.Play($mySprite.$graphics.$data.LABEL_WALK, 4, true, $mirror);
$myBox = new ColAABB($game, this, true, false, _arg2, _arg3, _arg4);
$State = GOBLIN_WALK;
$dir = new Point(0, 0);
$vel = new Point(0, 0);
$speed = 2;
$G = 18;
$mirror = 0;
$ChosenDir = 1;
}
public function HandleAnimEnds(_arg1:String, _arg2:uint):void{
if (_arg2 == $mySprite.$graphics.$data.LABEL_INTRO){
$State = GOBLIN_IDLE;
$mySprite.Play($mySprite.$graphics.$data.LABEL_IDLE, 5, true, $mirror);
};
}
override public function Collide(_arg1:IObject):void{
}
override public function GetDamage(_arg1:String, _arg2:Number, _arg3:Point, _arg4:Point):void{
}
override public function GetDistance(_arg1:Vector2D):Number{
return (0xFFFF);
}
public function Die():void{
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_DIE]);
$mySprite.Play($mySprite.$graphics.$data.LABEL_DEATH, 5, false, $mirror);
$jump_time = $jump_timeout;
$State = GOBLIN_DEAD;
}
override public function GetPosition():Point{
if ($State != GOBLIN_DEAD){
return ($mySprite.GetBBOX().pos);
};
return (null);
}
override public function HitTest(_arg1:IObject):Boolean{
return (false);
}
override public function Coldet():void{
}
override public function Subscript():void{
}
override public function Delete():void{
$myBox.Destroy();
$mySprite.Destroy();
}
override public function Update():void{
var smallest_dist:Number;
var nearest_collider_id:*;
var delete_:*;
var vectors:*;
var PlaneNormal:*;
var a1:*;
var newPoint:*;
var angle1:*;
var angle2:*;
var projvec:*;
if ($jump_dig_pause_time > 0){
$jump_dig_pause_time--;
};
switch ($State){
case GOBLIN_IDLE:
if ($jump_pause_time > 0){
$jump_pause_time--;
};
if ($WaitTime > 0){
$WaitTime--;
} else {
$mySprite.Play($mySprite.$graphics.$data.LABEL_WALK, 4, true, $mirror);
$State = GOBLIN_WALK;
};
$dir.x = 0;
$dir.y = 1;
$vel.x = 0;
$vel.y = (($G * $dir.y) * 0.4);
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
case GOBLIN_WALK:
if ($jump_pause_time > 0){
$jump_pause_time--;
};
$dir.x = $ChosenDir;
$dir.y = 1;
if ($dir.x > 0){
$mirror = 0;
} else {
$mirror = 1;
};
$vel.x = ($speed * $dir.x);
$vel.y = (($G * $dir.y) * 0.4);
$mySprite.$mirror = $mirror;
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
case GOBLIN_JUMP:
$dir.x = 0;
$jump_time--;
if ($jump_time < 0){
$State = GOBLIN_FALL;
$mySprite.Play($mySprite.$graphics.$data.LABEL_FALLING, 3, true, $mirror);
$bFalling = true;
} else {
$vel.y = ((-1 * $G) - ($jump_time / $jump_timeout));
};
$vel.x = ($dir.x * $speed);
$mySprite.$mirror = $mirror;
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
case GOBLIN_FALL:
if (!$bFalling){
$State = GOBLIN_IDLE;
$mySprite.Play($mySprite.$graphics.$data.LABEL_IDLE, 5, true, $mirror);
break;
};
$dir.x = 0;
$dir.y = 1;
$vel.x = ($speed * $dir.x);
$vel.y = ($G * $dir.y);
$mySprite.$mirror = $mirror;
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
case GOBLIN_DEAD:
$inCamera = false;
$collisionProxy.Clear();
$myBox.GetColliders($collisionProxy);
i = 0;
while (i < $collisionProxy.$COLTYPE_AABB_LENGTH) {
if ($collisionProxy.$COLTYPE_AABB[i].$owner != null){
if ($collisionProxy.$COLTYPE_AABB[i].$owner.GetType() == GameConstants.OBJTYPE_CAMERA){
$inCamera = true;
};
};
i++;
};
if (!$inCamera){
delete_ = function (_arg1){
$game.$engine.DeleteObject($index);
$game.$engine.DeleteScript(_arg1);
};
$game.$engine.AddScript(delete_);
$game.$SFX.AddSprite(GameConstants.SFX_DEFAULT, GameConstants.SFX_DEFAULT_DIGPLATEBLOW1, $myBox.$bbox.pos.x, $myBox.$bbox.pos.y);
$game.AddLevelStat(GameConstants.LSTAT_GOBLIN);
return;
};
$jump_time--;
if ($jump_time < 0){
$vel.y = $G;
} else {
$vel.y = ((-1 * $G) - ($jump_time / $jump_timeout));
};
$vel.x = 0;
$mySprite.$mirror = $mirror;
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
$mySprite.Update();
return;
case GOBLIN_EXIT:
$mySprite.Update();
return;
case GOBLIN_STAND_DIG:
$vel.x = 0;
$vel.y = ($G * $dir.y);
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
case GOBLIN_FALL_DIG:
if (!$bFalling){
$State = GOBLIN_IDLE;
$mySprite.Play($mySprite.$graphics.$data.LABEL_IDLE, 5, true, $mirror);
break;
};
$dir.x = 0;
$dir.y = 1;
$vel.x = ($speed * $dir.x);
$vel.y = (($G * 0.8) * $dir.y);
$mySprite.$mirror = $mirror;
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
default:
break;
};
$vel.x = 0;
$vel.y = 0;
$inCamera = false;
$collisionProxy.Clear();
$myBox.GetColliders($collisionProxy);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x - $vel.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y - $vel.y);
smallest_dist = 0xFFFF;
nearest_collider_id = 0xFFFF;
i = 0;
while (i < $collisionProxy.$COLTYPE_AABB_LENGTH) {
switch ($collisionProxy.$COLTYPE_AABB[i].$owner.GetType()){
case GameConstants.OBJTYPE_DIGPLATE:
$collisionProxy.$COLTYPE_AABB[i].$distance = $collisionProxy.$COLTYPE_AABB[i].$bbox.distanceBetween($myBox.$bbox);
if ($collisionProxy.$COLTYPE_AABB[i].$distance < smallest_dist){
smallest_dist = $collisionProxy.$COLTYPE_AABB[i].$distance;
nearest_collider_id = i;
};
break;
default:
break;
};
i++;
};
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + $vel.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + $vel.y);
i = 0;
while (i < $collisionProxy.$COLTYPE_MESH_LENGTH) {
vectors = $collisionProxy.$COLTYPE_MESH[i].GetVectors($myBox.$bbox);
j = 0;
while (j < vectors.length) {
switch (vectors[j].$subtype){
case EngineConstants.VECTYPE_SOLID:
PlaneNormal = new Point(vectors[j].$vector.n.y, (-1 * vectors[j].$vector.n.x));
a1 = new Vector2D((-(PlaneNormal.x) * $myBox.$bbox.extents.x), (-(PlaneNormal.y) * $myBox.$bbox.extents.y), $myBox.$bbox.pos.x, $myBox.$bbox.pos.y, 0);
newPoint = a1.Cross(vectors[j].$vector);
if (newPoint != null){
angle1 = $UPtest.Angle(vectors[j].$vector);
angle2 = $UPtest.Angle(vectors[j].$vector);
if (vectors[j].$vector.n.x < -0.6){
$jump_time = -1;
};
if (((((angle1 * angle1) < 0.4)) || (((angle2 * angle2) < 0.4)))){
if ($dir.y > 0){
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
if (((($State == GOBLIN_JUMP)) || (($State == GOBLIN_FALL)))){
$jump_pause_time = $jump_pause;
};
};
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + ((newPoint.y + (PlaneNormal.y * $myBox.$bbox.extents.y)) - $myBox.$bbox.pos.y));
} else {
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + (((newPoint.x + (PlaneNormal.x * $myBox.$bbox.extents.x)) + 0.0002) - $myBox.$bbox.pos.x));
};
};
break;
case EngineConstants.VECTYPE_LEVELBOTTOM:
$State = GOBLIN_DEAD;
break;
};
j++;
};
i++;
};
i = 0;
while (i < $collisionProxy.$COLTYPE_MESHSIMPLE_LENGTH) {
switch ($collisionProxy.$COLTYPE_MESHSIMPLE[i].$owner.GetType()){
default:
break;
};
i++;
};
i = 0;
while (i < $collisionProxy.$COLTYPE_VECTOR2D_LENGTH) {
switch ($collisionProxy.$COLTYPE_VECTOR2D[i].$owner.GetType()){
default:
break;
};
i++;
};
if (nearest_collider_id != 0xFFFF){
switch ($collisionProxy.$COLTYPE_AABB[nearest_collider_id].$owner.GetType()){
case GameConstants.OBJTYPE_DIGPLATE:
projvec = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[nearest_collider_id].$bbox);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + projvec.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + projvec.y);
if (projvec.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
if (((($State == GOBLIN_JUMP)) || (($State == GOBLIN_FALL)))){
$jump_pause_time = $jump_pause;
};
};
if (projvec.y > 0){
$jump_time = -1;
};
break;
default:
break;
};
};
i = 0;
while (i < $collisionProxy.$COLTYPE_AABB_LENGTH) {
switch ($collisionProxy.$COLTYPE_AABB[i].$owner.GetType()){
case GameConstants.OBJTYPE_CAMERA:
$inCamera = true;
break;
case GameConstants.OBJTYPE_KILLER:
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_DIE]);
$jump_time = $jump_timeout;
$State = GOBLIN_DEAD;
$mySprite.Play($mySprite.$graphics.$data.LABEL_DEATH, 3, true, $mirror);
return;
case GameConstants.OBJTYPE_PLATFORM:
projvec = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[i].$bbox);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + projvec.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + projvec.y);
if (projvec.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
if (((($State == GOBLIN_JUMP)) || (($State == GOBLIN_FALL)))){
$jump_pause_time = $jump_pause;
};
};
if (projvec.y > 0){
$jump_time = -1;
};
break;
case GameConstants.OBJTYPE_STONE:
if ($collisionProxy.$COLTYPE_AABB[i].$owner.$State != $collisionProxy.$COLTYPE_AABB[i].$owner.STONE_FALL){
break;
};
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_DIE]);
$jump_time = $jump_timeout;
$State = GOBLIN_DEAD;
$mySprite.Play($mySprite.$graphics.$data.LABEL_DEATH, 3, true, $mirror);
break;
case GameConstants.OBJTYPE_DIGPLATE:
projvec = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[i].$bbox);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + projvec.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + projvec.y);
if (projvec.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
if (((($State == GOBLIN_JUMP)) || (($State == GOBLIN_FALL)))){
$jump_pause_time = $jump_pause;
};
};
if (projvec.y > 0){
$jump_time = -1;
};
break;
case GameConstants.OBJTYPE_WAYPOINT:
if ($last_waypoint.GetName() != $collisionProxy.$COLTYPE_AABB[i].$owner.GetName()){
$last_waypoint = $collisionProxy.$COLTYPE_AABB[i].$owner;
$State = GOBLIN_IDLE;
$mySprite.Play($mySprite.$graphics.$data.LABEL_IDLE, 8, true, $mirror);
$WaitTime = ((Math.random() * 30) + 30);
if (((($collisionProxy.$COLTYPE_AABB[i].$owner.$waypoint_left == null)) || (($collisionProxy.$COLTYPE_AABB[i].$owner.GetName() == this.$waypoint_left.GetName())))){
$ChosenDir = 1;
};
if (((($collisionProxy.$COLTYPE_AABB[i].$owner.$waypoint_right == null)) || (($collisionProxy.$COLTYPE_AABB[i].$owner.GetName() == this.$waypoint_right.GetName())))){
$ChosenDir = -1;
};
};
break;
default:
break;
};
i++;
};
if (((((((((($vel.y == 0)) && (!(($State == GOBLIN_JUMP))))) && (!(($State == GOBLIN_FALL))))) && (!(($State == GOBLIN_FALL_DIG))))) && (!(($State == GOBLIN_DEAD))))){
$State = GOBLIN_FALL;
$mySprite.Play($mySprite.$graphics.$data.LABEL_FALLING, 3, true, $mirror);
$bFalling = true;
};
$mySprite.SetPosition(($myBox.$bbox.pos.x + $mySprite.$bbox_offset.x), ($myBox.$bbox.pos.y + $mySprite.$bbox_offset.y));
$mySprite.Update();
}
override public function Script():void{
}
}
}//package main.objects
Section 48
//Ground (main.objects.Ground)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class Ground extends GameObject implements IObject {
public var $mySprite:BigBitmap;
public var $myMesh:ColMesh;
public function Ground(_arg1, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:uint=1, _arg6:Boolean=false, _arg7:Number=1){
super(_arg1);
$type = GameConstants.OBJTYPE_GROUND;
$myMesh = new ColMesh($game, this, true, true, _arg2, _arg3, _arg4);
$mySprite = new BigBitmap($game, true, true, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7);
$renderables.push($mySprite);
}
override public function Delete():void{
$mySprite.Destroy();
}
override public function GetPosition():Point{
return ($mySprite.GetBBOX().pos);
}
}
}//package main.objects
Section 49
//HiddenPlate (main.objects.HiddenPlate)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class HiddenPlate extends GameObject implements IObject {
public const UNHIDDEN = 1;
public const UNHIDE = 3;
public const HIDDEN = 0;
public const HIDE = 2;
public var $collisionProxy;
public var $myBox:ColAABB;
public var i;
public var $UnhiddenTimeout:Number;// = 60
public var $speed:Number;
public var k;// = 0
public var $G:Number;
public var $mySprite:AClip;
public var $UnhiddenTime:Number;// = 0
public var $State:uint;
public var $inCamera:Boolean;// = false
public var j;
public var $dir:Point;
public var $vel:Point;
public var $mirror:uint;
public function HiddenPlate(_arg1, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:uint, _arg6:Boolean){
$collisionProxy = new CollisionProxy();
$inCamera = false;
k = 0;
$UnhiddenTime = 0;
$UnhiddenTimeout = 60;
super(_arg1);
$type = GameConstants.OBJTYPE_HIDDENPLATE;
$name = "hidden_plate";
$mySprite = new AClip($game, true, false, _arg2, _arg3, _arg4, 2);
$mySprite.$name = "mySprite";
$mySprite.SetCallback(HandleAnimEnds);
$renderables.push($mySprite);
$mySprite.Play($mySprite.$graphics.$data.LABEL_HIDDEN, 7, false);
$myBox = new ColAABB($game, this, true, false, _arg2, _arg3, _arg4);
$myBox.$owner = this;
$mySprite.SetPosition(($myBox.$bbox.pos.x + $mySprite.$bbox_offset.x), ($myBox.$bbox.pos.y + $mySprite.$bbox_offset.y));
$dir = new Point(0, 0);
$vel = new Point(0, 0);
$speed = 5;
$G = 9;
$mirror = 0;
}
public function Unhide():void{
$State = UNHIDE;
$mySprite.Play($mySprite.$graphics.$data.LABEL_UNHIDE, 3, false);
}
override public function Subscript():void{
}
public function HandleAnimEnds(_arg1:String, _arg2:uint):void{
if (_arg2 == $mySprite.$graphics.$data.LABEL_HIDE){
$State = HIDDEN;
$mySprite.Play($mySprite.$graphics.$data.LABEL_HIDDEN, 3, false);
};
if (_arg2 == $mySprite.$graphics.$data.LABEL_UNHIDE){
$State = UNHIDDEN;
$mySprite.Play($mySprite.$graphics.$data.LABEL_UNHIDDEN, 3, false);
$UnhiddenTime = $UnhiddenTimeout;
if (this.$next_plate != null){
this.$next_plate.Unhide();
};
};
}
override public function Collide(_arg1:IObject):void{
}
override public function HitTest(_arg1:IObject):Boolean{
return (false);
}
override public function Coldet():void{
}
override public function GetDamage(_arg1:String, _arg2:Number, _arg3:Point, _arg4:Point):void{
}
override public function Delete():void{
$myBox.Destroy();
$mySprite.Destroy();
}
override public function Update():void{
switch ($State){
case HIDDEN:
break;
case HIDE:
$mySprite.Update();
break;
case UNHIDDEN:
$UnhiddenTime--;
if ($UnhiddenTime < 0){
$State = HIDE;
$mySprite.Play($mySprite.$graphics.$data.LABEL_HIDE, 3, false);
};
break;
case UNHIDE:
$mySprite.Update();
break;
};
}
override public function Script():void{
this.$script(this);
}
override public function GetDistance(_arg1:Vector2D):Number{
return (0xFFFF);
}
override public function GetPosition():Point{
return ($mySprite.GetBBOX().pos);
}
}
}//package main.objects
Section 50
//HidingCave (main.objects.HidingCave)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class HidingCave extends GameObject implements IObject {
public const CAVE_IDLE = 0;
public const CAVE_HIDING = 1;
public var $myBox:ColAABB;
public var $mySprite:AClip;
public var $State:uint;
public var $hiddenKirka:Boolean;// = false
public function HidingCave(_arg1, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:uint=1, _arg6:Boolean=false){
$hiddenKirka = false;
super(_arg1);
$type = GameConstants.OBJTYPE_HIDINGCAVE;
$mySprite = new AClip($game, true, false, _arg2, _arg3, _arg4, _arg5);
$mySprite.$name = "default_anim_sprite";
$mySprite.Play(0, 1, true);
$myBox = new ColAABB($game, this, true, false, _arg2, _arg3, _arg4);
$State = CAVE_IDLE;
}
public function UnhideMe():void{
$mySprite.Play(0, 1, true);
}
public function HideMe():void{
$State = CAVE_HIDING;
$mySprite.Play(1, 4, true);
if ($hiddenKirka){
$game.AddLevelStat(GameConstants.LSTAT_GOLDKIRKA);
};
}
override public function Delete():void{
this.$mySprite.Destroy();
}
override public function Update():void{
switch ($State){
case CAVE_IDLE:
break;
case CAVE_HIDING:
$mySprite.Update();
break;
};
}
override public function GetPosition():Point{
return (this.$mySprite.GetBBOX().pos);
}
}
}//package main.objects
Section 51
//Hook (main.objects.Hook)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class Hook extends GameObject implements IObject {
public const ROCK_FALL = 2;
public const ROCK_IDLE = 0;
public const ROCK_SHAKE = 1;
public const ROCK_DEAD = 3;
public var i;
public var k;// = 0
public var j;
public var $bDeleted:Boolean;// = false
public var $collisionProxy;
public var $shake_timeout;// = 30
public var $shake_time;// = 0
public var $bPushed:Boolean;// = false
public var $speed:Number;
public var $G:Number;
public var $mySprite:MClip;
public var $State:uint;
public var $inCamera:Boolean;// = false
public var $myBox:ColAABB;
public var $mirror:uint;
public var $dir:Point;
public var $vel:Point;
public function Hook(_arg1, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:uint, _arg6:Boolean){
$collisionProxy = new CollisionProxy();
$bDeleted = false;
$bPushed = false;
$shake_time = 0;
$shake_timeout = 30;
$inCamera = false;
k = 0;
super(_arg1);
$type = GameConstants.OBJTYPE_HOOK;
$name = "hook";
$State = ROCK_IDLE;
$mySprite = new MClip($game, true, false, _arg2, _arg3, _arg4, _arg5);
$mySprite.$name = "mySprite";
$mySprite.SetCallback(HandleAnimEnds);
$mySprite.Play($mySprite.$graphics.$data.LABEL_IDLE, 0, false);
$myBox = new ColAABB($game, this, true, false, _arg2, _arg3, _arg4);
$myBox.$owner = this;
$dir = new Point(0, 0);
$vel = new Point(0, 0);
$speed = 5;
$G = 9;
$mirror = 0;
}
public function HandleAnimEnds(_arg1:String, _arg2:uint):void{
}
override public function Collide(_arg1:IObject):void{
}
override public function GetDamage(_arg1:String, _arg2:Number, _arg3:Point, _arg4:Point):void{
}
override public function GetDistance(_arg1:Vector2D):Number{
return (0xFFFF);
}
override public function GetPosition():Point{
return ($mySprite.GetBBOX().pos);
}
public function CheckCollisions():void{
var _local1:*;
$inCamera = false;
$collisionProxy.Clear();
$myBox.GetColliders($collisionProxy);
i = 0;
while (i < $collisionProxy.$COLTYPE_AABB_LENGTH) {
switch ($collisionProxy.$COLTYPE_AABB[i].$owner.GetType()){
case GameConstants.OBJTYPE_CAMERA:
$inCamera = true;
break;
case GameConstants.OBJTYPE_GOBLIN:
$collisionProxy.$COLTYPE_AABB[i].$owner.Die();
break;
case GameConstants.OBJTYPE_PLATFORM:
if (!$bDeleted){
$bDeleted = true;
Destruct();
};
break;
case GameConstants.OBJTYPE_DIGPLATE:
if (!$bDeleted){
$bDeleted = true;
Destruct();
};
break;
case GameConstants.OBJTYPE_KILLER:
if (!$bDeleted){
$bDeleted = true;
Destruct();
};
break;
};
i++;
};
i = 0;
while (i < $collisionProxy.$COLTYPE_MESH_LENGTH) {
_local1 = $collisionProxy.$COLTYPE_MESH[i].GetVectors($myBox.$bbox);
j = 0;
while (j < _local1.length) {
switch (_local1[j].$subtype){
case EngineConstants.VECTYPE_SOLID:
if (!$bDeleted){
$bDeleted = true;
Destruct();
};
break;
case EngineConstants.VECTYPE_LEVELBOTTOM:
if (!$bDeleted){
$bDeleted = true;
Destruct();
};
break;
};
j++;
};
i++;
};
}
override public function HitTest(_arg1:IObject):Boolean{
return (false);
}
override public function Coldet():void{
}
public function Destruct():void{
if (!$bDeleted){
return;
};
$game.$engine.DeleteObject($index);
$game.LevelObjectRemoved(this.$init_index);
$game.$SFX.AddSprite(GameConstants.SFX_DEFAULT, GameConstants.SFX_DEFAULT_DIGPLATEBLOW1, $myBox.$bbox.pos.x, $myBox.$bbox.pos.y);
}
override public function Update():void{
switch ($State){
case ROCK_IDLE:
break;
case ROCK_SHAKE:
$mySprite.Update();
$shake_time--;
if ($shake_time < 0){
$State = ROCK_FALL;
$mySprite.Play($mySprite.$graphics.$data.LABEL_FALL, 2, false, $mirror);
};
break;
case ROCK_FALL:
$myBox.Move(0, 6);
$mySprite.SetPosition(($myBox.$bbox.pos.x + $mySprite.$bbox_offset.x), ($myBox.$bbox.pos.y + $mySprite.$bbox_offset.y));
$mySprite.Update();
CheckCollisions();
break;
};
}
override public function Subscript():void{
}
override public function Delete():void{
$myBox.Destroy();
$mySprite.Destroy();
}
override public function Script():void{
this.$script(this);
}
}
}//package main.objects
Section 52
//Killer (main.objects.Killer)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class Killer extends GameObject implements IObject {
public var $myBox:ColAABB;
public var $mySprite:AClip;
public var $subtype:uint;
public function Killer(_arg1, _arg2:uint, _arg3:MovieClip, _arg4:Number, _arg5:Number, _arg6:uint, _arg7:Boolean){
super(_arg1);
$type = GameConstants.OBJTYPE_KILLER;
$subtype = _arg2;
$mySprite = new AClip($game, true, false, _arg3, _arg4, _arg5, 3);
$renderables.push($mySprite);
$mySprite.Play(0, 3, true);
$myBox = new ColAABB($game, this, true, false, _arg3, _arg4, _arg5);
}
override public function Subscript():void{
}
public function HandleAnimEnds(_arg1:String, _arg2:uint):void{
}
override public function Collide(_arg1:IObject):void{
}
override public function HitTest(_arg1:IObject):Boolean{
return (false);
}
override public function Coldet():void{
}
override public function GetDamage(_arg1:String, _arg2:Number, _arg3:Point, _arg4:Point):void{
}
override public function Delete():void{
$myBox.Destroy();
$mySprite.Destroy();
}
override public function Update():void{
$mySprite.Update();
}
override public function Script():void{
}
override public function GetDistance(_arg1:Vector2D):Number{
return (0xFFFF);
}
public function Destruct():void{
}
override public function GetPosition():Point{
return ($mySprite.GetBBOX().pos);
}
}
}//package main.objects
Section 53
//LevelBoundary (main.objects.LevelBoundary)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class LevelBoundary extends GameObject implements IObject {
public const BOUNDARY_RIGHT = 2;
public const BOUNDARY_TOP = 3;
public const BOUNDARY_BOTTOM = 0;
public const BOUNDARY_LEFT = 1;
public var $subtype:uint;
public var $myBox:ColAABB;
public function LevelBoundary(_arg1, _arg2:MovieClip, _arg3:Number, _arg4:Number){
super(_arg1);
$type = GameConstants.OBJTYPE_LEVELBOUNDARY;
$myBox = new ColAABB($game, this, true, true, MovieClip(_arg2.parent), _arg3, _arg4);
}
public function set2right():void{
$subtype = BOUNDARY_RIGHT;
}
public function set2left():void{
$subtype = BOUNDARY_LEFT;
}
public function set2bottom():void{
$subtype = BOUNDARY_BOTTOM;
}
override public function Delete():void{
$myBox.Destroy();
}
public function set2top():void{
$subtype = BOUNDARY_TOP;
}
override public function Update():void{
}
override public function GetPosition():Point{
return (null);
}
}
}//package main.objects
Section 54
//LevelExit (main.objects.LevelExit)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class LevelExit extends GameObject implements IObject {
public var $myBox:ColAABB;
public var $mySprite:StatBitmap;
public function LevelExit(_arg1, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:uint=1, _arg6:Boolean=false){
super(_arg1);
$type = GameConstants.OBJTYPE_LEVELEXIT;
$mySprite = new StatBitmap($game, true, true, _arg2, _arg3, _arg4, _arg5, _arg6);
$renderables.push(this.$mySprite);
$myBox = new ColAABB($game, this, true, false, _arg2, _arg3, _arg4);
}
override public function Delete():void{
$mySprite.Destroy();
}
override public function GetPosition():Point{
return ($mySprite.GetBBOX().pos);
}
}
}//package main.objects
Section 55
//Platform (main.objects.Platform)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class Platform extends GameObject implements IObject {
public var $collisionProxy;
public var $myBox:ColAABB;
public var i;
public var k;// = 0
public var $speed:Number;
public var $G:Number;
public var $mySprite:StatBitmap;
public var $State:uint;
public var $inCamera:Boolean;// = false
public var j;
public var $dir:Point;
public var $vel:Point;
public var $mirror:uint;
public function Platform(_arg1, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:uint, _arg6:Boolean){
$collisionProxy = new CollisionProxy();
$inCamera = false;
k = 0;
super(_arg1);
$type = GameConstants.OBJTYPE_PLATFORM;
$name = "platform";
$mySprite = new StatBitmap($game, true, false, _arg2, _arg3, _arg4, _arg5, _arg6);
$mySprite.$name = "mySprite";
$renderables.push($mySprite);
$myBox = new ColAABB($game, this, true, false, _arg2, _arg3, _arg4);
$myBox.$owner = this;
$dir = new Point(0, 0);
$vel = new Point(0, 0);
$speed = 5;
$G = 9;
$mirror = 0;
}
override public function Subscript():void{
}
public function HandleAnimEnds(_arg1:String, _arg2:uint):void{
}
override public function Collide(_arg1:IObject):void{
}
override public function HitTest(_arg1:IObject):Boolean{
return (false);
}
override public function Coldet():void{
}
override public function GetDamage(_arg1:String, _arg2:Number, _arg3:Point, _arg4:Point):void{
}
override public function Delete():void{
}
override public function Update():void{
$inCamera = false;
$collisionProxy.Clear();
$myBox.GetColliders($collisionProxy);
i = 0;
while (i < $collisionProxy.$COLTYPE_AABB_LENGTH) {
switch ($collisionProxy.$COLTYPE_AABB[i].$owner.GetType()){
case GameConstants.OBJTYPE_CAMERA:
$inCamera = true;
break;
case GameConstants.OBJTYPE_TRIGGER:
$collisionProxy.$COLTYPE_AABB[i].$owner.$collide(this);
break;
};
i++;
};
$mySprite.Move(($vel.x * 2), ($vel.y * 2));
$myBox.Move(($vel.x * 2), ($vel.y * 2));
}
override public function Script():void{
this.$script(this);
}
override public function GetDistance(_arg1:Vector2D):Number{
return (0xFFFF);
}
override public function GetPosition():Point{
return ($mySprite.GetBBOX().pos);
}
}
}//package main.objects
Section 56
//Player (main.objects.Player)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.utils.*;
import main.*;
public dynamic class Player extends GameObject implements IObject {
public const PLAYER_DEAD = 4;
public const PLAYER_FALL = 3;
public const PLAYER_SWITCH = 9;
public const PLAYER_FALL_DIG = 6;
public const PLAYER_WALK = 1;
public const PLAYER_IDLE = 0;
public const PLAYER_STAND_DIG = 5;
public const PLAYER_HIDING = 8;
public const PLAYER_EXIT = 7;
public const PLAYER_HOOK = 10;
public const PLAYER_JUMP = 2;
public var $bFalling:Boolean;// = false
var bbox;
public var $timer_now;// = 0
public var $jump_dig_pause:Number;// = 20
var i;
public var $fall_time:Number;// = 0
var j;
public var $jump_timeout:Number;// = 12
var k;// = 0
public var $collisionProxy;
public var $jump_pause_time:Number;// = 0
public var $health:Number;// = 100
var $UPtest2;
public var $timer_last;// = 0
var dx;
var dy;// = 0
public var $jump_time:Number;// = 0
public var $speed:Number;
public var $timer_delta;// = 0
public var $G:Number;
public var $fall_timer:Number;// = 0
public var $mySprite:MClip;
public var $jump_pause:Number;// = 4
public var $State:uint;
public var $fall_timeout:Number;// = 12
var $UPtest;
public var $temp_vel:Number;
public var $myBox:ColAABB;
public var $inCamera:Boolean;// = false
public var $jump_dig_pause_time:Number;// = 0
public var $mirror:uint;
public var $dir:Point;
public var $Gone;// = false
public var $bCanJumpDig:Boolean;// = true
public var $vel:Point;
public function Player(_arg1, _arg2, _arg3, _arg4){
$collisionProxy = new CollisionProxy();
$health = 100;
$Gone = false;
$fall_timer = 0;
$jump_time = 0;
$jump_timeout = 12;
$fall_time = 0;
$fall_timeout = 12;
$jump_pause = 4;
$jump_pause_time = 0;
$bCanJumpDig = true;
$jump_dig_pause = 20;
$jump_dig_pause_time = 0;
$bFalling = false;
$inCamera = false;
$timer_now = 0;
$timer_delta = 0;
$timer_last = 0;
k = 0;
dy = 0;
bbox = new AABB2D(1, 1, 1, 1);
$UPtest = new Vector2D(0.0001, -1);
$UPtest2 = new Vector2D(0.0001, 1);
super(_arg1);
$type = GameConstants.OBJTYPE_PLAYER;
$name = "player";
$mySprite = new MClip($game, true, false, _arg2, _arg3, _arg4, 4);
$mySprite.$name = "mySprite";
$mySprite.SetCallback(HandleAnimEnds);
$renderables.push($mySprite);
$mySprite.Play($mySprite.$graphics.$data.LABEL_INTRO, 7, false);
$myBox = new ColAABB($game, this, true, false, _arg2, _arg3, _arg4);
$State = PLAYER_IDLE;
$dir = new Point(0, 0);
$vel = new Point(0, 0);
$speed = 6;
$G = 12;
$mirror = 0;
$Gone = false;
}
public function HandleAnimEnds(_arg1:String, _arg2:uint):void{
var _local3:*;
var _local4:*;
if (_arg2 == $mySprite.$graphics.$data.LABEL_INTRO){
if ($State == PLAYER_EXIT){
if (!$game.$level_help_completed){
$game.$bGame = false;
$game.$level_help_completed = true;
$game.$MENU.gotoAndPlay("level_intro");
$game.$engine.HideFPS();
return;
};
$game.$bGame = false;
$game.$MENU.gotoAndPlay("NextLevel");
$game.$engine.HideFPS();
return;
};
$State = PLAYER_IDLE;
$mySprite.Play($mySprite.$graphics.$data.LABEL_IDLE, 5, true, $mirror);
};
if (_arg2 == $mySprite.$graphics.$data.LABEL_COVER){
$mySprite.Play($mySprite.$graphics.$data.LABEL_IDLE, 5, true, $mirror);
$State = PLAYER_IDLE;
_local3 = ($myBox.$bbox.extents.x * 2);
if ($mirror == 1){
_local3 = (_local3 * -1);
};
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + _local3);
$myBox.$bbox.extents.y = ($myBox.$bbox.extents.y * 0.5);
$collisionProxy.Clear();
$myBox.GetColliders($collisionProxy);
i = 0;
while (i < $collisionProxy.$COLTYPE_AABB_LENGTH) {
switch ($collisionProxy.$COLTYPE_AABB[i].$owner.GetType()){
case GameConstants.OBJTYPE_DIGPLATE:
$collisionProxy.$COLTYPE_AABB[i].$owner.Destruct();
break;
case GameConstants.OBJTYPE_STONE:
if ($collisionProxy.$COLTYPE_AABB[i].$owner.$myBox.$bbox.pos.x > $myBox.$bbox.pos.x){
$collisionProxy.$COLTYPE_AABB[i].$owner.Hit(1);
} else {
$collisionProxy.$COLTYPE_AABB[i].$owner.Hit(-1);
};
break;
default:
break;
};
i++;
};
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x - _local3);
$myBox.$bbox.extents.y = ($myBox.$bbox.extents.y * 2);
};
if (_arg2 == $mySprite.$graphics.$data.LABEL_CROUCH){
$mySprite.Play($mySprite.$graphics.$data.LABEL_IDLE, 5, true, $mirror);
$State = PLAYER_IDLE;
_local4 = ($myBox.$bbox.extents.y * 2);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + _local4);
$myBox.$bbox.extents.y = ($myBox.$bbox.extents.y * 0.5);
$collisionProxy.Clear();
$myBox.GetColliders($collisionProxy);
i = 0;
while (i < $collisionProxy.$COLTYPE_AABB_LENGTH) {
switch ($collisionProxy.$COLTYPE_AABB[i].$owner.GetType()){
case GameConstants.OBJTYPE_DIGPLATE:
$collisionProxy.$COLTYPE_AABB[i].$owner.Destruct();
break;
default:
break;
};
i++;
};
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y - _local4);
$myBox.$bbox.extents.y = ($myBox.$bbox.extents.y * 2);
};
if (_arg2 == $mySprite.$graphics.$data.LABEL_HANG){
$jump_dig_pause_time = $jump_dig_pause;
$bFalling = true;
$State = PLAYER_FALL;
$fall_time = $fall_timeout;
$mySprite.Play($mySprite.$graphics.$data.LABEL_FALLING, 5, true, $mirror);
_local3 = ($myBox.$bbox.extents.x * 2);
if ($mirror == 1){
_local3 = (_local3 * -1);
};
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + _local3);
$myBox.$bbox.extents.y = ($myBox.$bbox.extents.y * 0.2);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y - $myBox.$bbox.extents.y);
$collisionProxy.Clear();
$myBox.GetColliders($collisionProxy);
i = 0;
while (i < $collisionProxy.$COLTYPE_AABB_LENGTH) {
switch ($collisionProxy.$COLTYPE_AABB[i].$owner.GetType()){
case GameConstants.OBJTYPE_DIGPLATE:
$collisionProxy.$COLTYPE_AABB[i].$owner.Destruct();
break;
case GameConstants.OBJTYPE_STONE:
if ($collisionProxy.$COLTYPE_AABB[i].$owner.$myBox.$bbox.pos.x > $myBox.$bbox.pos.x){
$collisionProxy.$COLTYPE_AABB[i].$owner.Hit(1);
} else {
$collisionProxy.$COLTYPE_AABB[i].$owner.Hit(-1);
};
break;
default:
break;
};
i++;
};
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + $myBox.$bbox.extents.y);
$myBox.$bbox.extents.y = ($myBox.$bbox.extents.y * 5);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x - _local3);
};
if (_arg2 == $mySprite.$graphics.$data.LABEL_UNHIDE){
$State = PLAYER_IDLE;
$mySprite.Play($mySprite.$graphics.$data.LABEL_IDLE, 8, true, $mirror);
};
if (_arg2 == $mySprite.$graphics.$data.LABEL_SWITCH){
$State = PLAYER_IDLE;
$mySprite.Play($mySprite.$graphics.$data.LABEL_IDLE, 8, true, $mirror);
};
}
override public function Collide(_arg1:IObject):void{
}
override public function GetDamage(_arg1:String, _arg2:Number, _arg3:Point, _arg4:Point):void{
}
override public function GetDistance(_arg1:Vector2D):Number{
return (0xFFFF);
}
override public function GetPosition():Point{
if (((!(($State == PLAYER_DEAD))) && (!($Gone)))){
return ($mySprite.GetBBOX().pos);
};
return (null);
}
public function SetPosition(_arg1:Point):void{
$myBox.SetPosition(_arg1.x, _arg1.y);
$mySprite.SetPosition(_arg1.x, _arg1.y);
}
override public function HitTest(_arg1:IObject):Boolean{
return (false);
}
override public function Coldet():void{
}
override public function Subscript():void{
}
override public function Delete():void{
}
override public function Update():void{
var _local1:Number;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
$timer_now = getTimer();
$timer_delta = ($timer_now - $timer_last);
if ($timer_delta >= 1000){
$game.AddLevelStat(GameConstants.LSTAT_TIME);
$timer_last = $timer_now;
};
if ($jump_dig_pause_time > 0){
$jump_dig_pause_time--;
};
switch ($State){
case PLAYER_IDLE:
if ($jump_pause_time > 0){
$jump_pause_time--;
};
$dir.x = 0;
$dir.y = 1;
if ((($game.$engine.$input.keys[GameConstants.KEYS.$jump]) && (($jump_pause_time == 0)))){
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_JUMP]);
$State = PLAYER_JUMP;
$mySprite.Play($mySprite.$graphics.$data.LABEL_JUMP, 5, false, $mirror);
$jump_time = $jump_timeout;
$vel.x = 0;
$vel.y = (-1 * $G);
$mySprite.$mirror = $mirror;
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
};
$dir.x = (Number($game.$engine.$input.keys[GameConstants.KEYS.$right]) - (1 * Number($game.$engine.$input.keys[GameConstants.KEYS.$left])));
if ($dir.x != 0){
$State = PLAYER_WALK;
$mySprite.Play($mySprite.$graphics.$data.LABEL_WALK, 5, true, $mirror);
$vel.x = 0;
$vel.y = ($G * $dir.y);
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
};
if ($game.$engine.$input.keys[GameConstants.KEYS.$shoot]){
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_HIT]);
if ($game.$engine.$input.keys[GameConstants.KEYS.$down]){
$mySprite.Play($mySprite.$graphics.$data.LABEL_CROUCH, 2, false, $mirror);
$State = PLAYER_STAND_DIG;
} else {
$mySprite.Play($mySprite.$graphics.$data.LABEL_COVER, 1, false, $mirror);
$State = PLAYER_STAND_DIG;
};
};
$vel.x = 0;
$vel.y = (($G * $dir.y) * 0.4);
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
case PLAYER_WALK:
if ($jump_pause_time > 0){
$jump_pause_time--;
};
$dir.x = 0;
$dir.y = 1;
$dir.x = (Number($game.$engine.$input.keys[GameConstants.KEYS.$right]) - (1 * Number($game.$engine.$input.keys[GameConstants.KEYS.$left])));
if ((($game.$engine.$input.keys[GameConstants.KEYS.$jump]) && (($jump_pause_time == 0)))){
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_JUMP]);
$State = PLAYER_JUMP;
$mySprite.Play($mySprite.$graphics.$data.LABEL_JUMP, 5, false, $mirror);
$jump_time = $jump_timeout;
$vel.x = ($dir.x * $speed);
$vel.y = (-1 * $G);
$mySprite.$mirror = $mirror;
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
};
if ($dir.x == 0){
$State = PLAYER_IDLE;
$mySprite.Play($mySprite.$graphics.$data.LABEL_IDLE, 5, true, $mirror);
break;
};
if ($game.$engine.$input.keys[GameConstants.KEYS.$shoot]){
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_HIT]);
if ($game.$engine.$input.keys[GameConstants.KEYS.$down]){
$mySprite.Play($mySprite.$graphics.$data.LABEL_CROUCH, 2, false, $mirror);
$State = PLAYER_STAND_DIG;
} else {
$mySprite.Play($mySprite.$graphics.$data.LABEL_COVER, 1, false, $mirror);
$State = PLAYER_STAND_DIG;
};
};
if ($dir.x > 0){
$mirror = 0;
} else {
$mirror = 1;
};
$vel.x = ($speed * $dir.x);
$vel.y = (($G * $dir.y) * 0.4);
$mySprite.$mirror = $mirror;
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
case PLAYER_JUMP:
$dir.x = 0;
if ($game.$engine.$input.keys[GameConstants.KEYS.$left]){
$dir.x = -1;
$mirror = 1;
};
if ($game.$engine.$input.keys[GameConstants.KEYS.$right]){
$dir.x = 1;
$mirror = 0;
};
$jump_time--;
if ($jump_time < 0){
$State = PLAYER_FALL;
$fall_time = $fall_timeout;
$mySprite.Play($mySprite.$graphics.$data.LABEL_FALLING, 3, true, $mirror);
$bFalling = true;
} else {
$vel.y = ((-1 * $G) - ($jump_time / $jump_timeout));
};
if ((($game.$engine.$input.keys[GameConstants.KEYS.$shoot]) && ($bCanJumpDig))){
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_HIT]);
$bCanJumpDig = false;
$jump_dig_pause_time = $jump_dig_pause;
$mySprite.Play($mySprite.$graphics.$data.LABEL_HANG, 0, false, $mirror);
$State = PLAYER_FALL_DIG;
$vel.x = ($speed * $dir.x);
$vel.y = (($G * 0.2) * $dir.y);
$mySprite.$mirror = $mirror;
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
};
$vel.x = ($dir.x * $speed);
$mySprite.$mirror = $mirror;
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
case PLAYER_FALL:
if (!$bFalling){
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_FALL]);
$State = PLAYER_IDLE;
$mySprite.Play($mySprite.$graphics.$data.LABEL_IDLE, 5, true, $mirror);
$bCanJumpDig = true;
break;
};
$dir.x = 0;
$dir.y = 1;
$dir.x = (Number($game.$engine.$input.keys[GameConstants.KEYS.$right]) - (1 * Number($game.$engine.$input.keys[GameConstants.KEYS.$left])));
if ($game.$engine.$input.keys[GameConstants.KEYS.$left]){
$mirror = 1;
};
if ($game.$engine.$input.keys[GameConstants.KEYS.$right]){
$mirror = 0;
};
if ((($game.$engine.$input.keys[GameConstants.KEYS.$shoot]) && ($bCanJumpDig))){
$bCanJumpDig = false;
$jump_dig_pause_time = $jump_dig_pause;
$mySprite.Play($mySprite.$graphics.$data.LABEL_HANG, 0, false, $mirror);
$State = PLAYER_FALL_DIG;
$vel.x = ($speed * $dir.x);
$vel.y = (($G * 0.2) * $dir.y);
$mySprite.$mirror = $mirror;
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
$bFalling = true;
break;
};
$vel.x = ($speed * $dir.x);
$fall_time--;
if ($fall_time > 5){
$vel.y = ($G * (1 - (($fall_time - 5) / $fall_timeout)));
} else {
$vel.y = ($G * $dir.y);
};
$mySprite.$mirror = $mirror;
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
case PLAYER_DEAD:
$inCamera = false;
$collisionProxy.Clear();
$myBox.GetColliders($collisionProxy);
i = 0;
while (i < $collisionProxy.$COLTYPE_AABB_LENGTH) {
if ($collisionProxy.$COLTYPE_AABB[i].$owner != null){
if ($collisionProxy.$COLTYPE_AABB[i].$owner.GetType() == GameConstants.OBJTYPE_CAMERA){
$inCamera = true;
};
};
i++;
};
if (!$inCamera){
$game.$engine.$renderer.StopQuake();
$game.GameOver();
return;
};
$jump_time--;
if ($jump_time < 0){
$vel.y = $G;
} else {
if ($jump_time > 5){
$vel.y = 0;
} else {
$vel.y = (-1 * $G);
};
};
$vel.x = 0;
$mySprite.$mirror = $mirror;
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
$mySprite.Update();
return;
case PLAYER_EXIT:
$mySprite.Update();
return;
case PLAYER_STAND_DIG:
$vel.x = 0;
$vel.y = (($G * $dir.y) * 0.1);
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
case PLAYER_FALL_DIG:
$dir.x = 0;
$dir.y = 0;
$dir.x = (Number($game.$engine.$input.keys[GameConstants.KEYS.$right]) - (1 * Number($game.$engine.$input.keys[GameConstants.KEYS.$left])));
$vel.x = 0;
$vel.y = 0;
$mySprite.$mirror = $mirror;
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
case PLAYER_HIDING:
$vel.x = 0;
$vel.y = 0;
$mySprite.Update();
break;
case PLAYER_SWITCH:
$vel.x = 0;
$vel.y = 0;
$mySprite.Update();
break;
case PLAYER_HOOK:
if ($jump_pause_time > 0){
$jump_pause_time--;
};
$dir.x = 0;
$dir.y = 1;
if ($game.$engine.$input.keys[GameConstants.KEYS.$left]){
$mirror = 1;
};
if ($game.$engine.$input.keys[GameConstants.KEYS.$right]){
$mirror = 0;
};
if ((($game.$engine.$input.keys[GameConstants.KEYS.$jump]) && (($jump_pause_time == 0)))){
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_JUMP]);
$bCanJumpDig = true;
$State = PLAYER_JUMP;
$mySprite.Play($mySprite.$graphics.$data.LABEL_JUMP, 5, false, $mirror);
$jump_time = $jump_timeout;
$vel.x = 0;
$vel.y = (-1 * $G);
if ($game.$engine.$input.keys[GameConstants.KEYS.$down]){
$vel.y = (2 * $G);
$jump_time = 0;
};
$mySprite.$mirror = $mirror;
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
};
$vel.x = 0;
$vel.y = (($G * $dir.y) * 0.4);
$mySprite.$mirror = $mirror;
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
break;
default:
break;
};
$inCamera = false;
$collisionProxy.Clear();
$myBox.GetColliders($collisionProxy);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x - $vel.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y - $vel.y);
_local1 = 0xFFFF;
_local2 = 0xFFFF;
i = 0;
while (i < $collisionProxy.$COLTYPE_AABB_LENGTH) {
switch ($collisionProxy.$COLTYPE_AABB[i].$owner.GetType()){
case GameConstants.OBJTYPE_DIGPLATE:
$collisionProxy.$COLTYPE_AABB[i].$distance = $collisionProxy.$COLTYPE_AABB[i].$bbox.distanceBetween($myBox.$bbox);
if ($collisionProxy.$COLTYPE_AABB[i].$distance < _local1){
_local1 = $collisionProxy.$COLTYPE_AABB[i].$distance;
_local2 = i;
};
break;
case GameConstants.OBJTYPE_PLATFORM:
$collisionProxy.$COLTYPE_AABB[i].$distance = $collisionProxy.$COLTYPE_AABB[i].$bbox.distanceBetween($myBox.$bbox);
if ($collisionProxy.$COLTYPE_AABB[i].$distance < _local1){
_local1 = $collisionProxy.$COLTYPE_AABB[i].$distance;
_local2 = i;
};
break;
case GameConstants.OBJTYPE_FALLINGROCK:
$collisionProxy.$COLTYPE_AABB[i].$distance = $collisionProxy.$COLTYPE_AABB[i].$bbox.distanceBetween($myBox.$bbox);
if ($collisionProxy.$COLTYPE_AABB[i].$distance < _local1){
_local1 = $collisionProxy.$COLTYPE_AABB[i].$distance;
_local2 = i;
};
break;
case GameConstants.OBJTYPE_HOOK:
$collisionProxy.$COLTYPE_AABB[i].$distance = $collisionProxy.$COLTYPE_AABB[i].$bbox.distanceBetween($myBox.$bbox);
if ($collisionProxy.$COLTYPE_AABB[i].$distance < _local1){
_local1 = $collisionProxy.$COLTYPE_AABB[i].$distance;
_local2 = i;
};
break;
default:
break;
};
i++;
};
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + $vel.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + $vel.y);
$vel.x = 0;
$vel.y = 0;
_local3 = 0;
i = 0;
while (i < $collisionProxy.$COLTYPE_MESH_LENGTH) {
_local4 = $collisionProxy.$COLTYPE_MESH[i].GetVectors($myBox.$bbox);
j = 0;
while (j < _local4.length) {
switch (_local4[j].$subtype){
case EngineConstants.VECTYPE_SOLID:
_local5 = new Point(_local4[j].$vector.n.y, (-1 * _local4[j].$vector.n.x));
_local6 = new Vector2D((-(_local5.x) * $myBox.$bbox.extents.x), (-(_local5.y) * $myBox.$bbox.extents.y), $myBox.$bbox.pos.x, $myBox.$bbox.pos.y, 0);
_local7 = _local6.Cross(_local4[j].$vector);
if (_local7 != null){
_local8 = $UPtest.Angle(_local4[j].$vector);
_local9 = $UPtest.Angle(_local4[j].$vector);
if (_local4[j].$vector.n.x < -0.6){
$jump_time = -1;
};
if (((((_local8 * _local8) < 0.4)) || (((_local9 * _local9) < 0.4)))){
if ($dir.y > 0){
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
if (((($State == PLAYER_JUMP)) || (($State == PLAYER_FALL)))){
$jump_pause_time = $jump_pause;
};
};
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + ((_local7.y + (_local5.y * $myBox.$bbox.extents.y)) - $myBox.$bbox.pos.y));
} else {
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + (((_local7.x + (_local5.x * $myBox.$bbox.extents.x)) + 0.0002) - $myBox.$bbox.pos.x));
};
};
break;
case EngineConstants.VECTYPE_LEVELBOTTOM:
$Gone = true;
$State = PLAYER_DEAD;
break;
};
j++;
};
i++;
};
i = 0;
while (i < $collisionProxy.$COLTYPE_MESHSIMPLE_LENGTH) {
switch ($collisionProxy.$COLTYPE_MESHSIMPLE[i].$owner.GetType()){
default:
break;
};
i++;
};
i = 0;
while (i < $collisionProxy.$COLTYPE_VECTOR2D_LENGTH) {
switch ($collisionProxy.$COLTYPE_VECTOR2D[i].$owner.GetType()){
default:
break;
};
i++;
};
if (_local2 != 0xFFFF){
switch ($collisionProxy.$COLTYPE_AABB[_local2].$owner.GetType()){
case GameConstants.OBJTYPE_DIGPLATE:
_local10 = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[_local2].$bbox);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + _local10.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + _local10.y);
if (_local10.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
if (((($State == PLAYER_JUMP)) || (($State == PLAYER_FALL)))){
$jump_pause_time = $jump_pause;
};
};
if (_local10.y > 0){
if ($State == PLAYER_JUMP){
$collisionProxy.$COLTYPE_AABB[_local2].$owner.Destruct();
};
$jump_time = -1;
};
break;
case GameConstants.OBJTYPE_PLATFORM:
_local10 = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[_local2].$bbox);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + (_local10.x + ($collisionProxy.$COLTYPE_AABB[_local2].$owner.$vel.x * 2)));
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + (_local10.y + ($collisionProxy.$COLTYPE_AABB[_local2].$owner.$vel.y * 2)));
if (_local10.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
if (((($State == PLAYER_JUMP)) || (($State == PLAYER_FALL)))){
$jump_pause_time = $jump_pause;
};
};
if (_local10.y > 0){
$jump_time = -1;
};
break;
case GameConstants.OBJTYPE_FALLINGROCK:
_local10 = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[_local2].$bbox);
if (_local10.y >= 0){
break;
};
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + _local10.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + _local10.y);
if (_local10.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
$collisionProxy.$COLTYPE_AABB[_local2].$owner.$bPushed = true;
if (((($State == PLAYER_JUMP)) || (($State == PLAYER_FALL)))){
$jump_pause_time = $jump_pause;
};
};
if (_local10.y > 0){
$jump_time = -1;
};
break;
case GameConstants.OBJTYPE_HOOK:
if (((!(($State == PLAYER_FALL))) && (!(($State == PLAYER_HOOK))))){
break;
};
_local10 = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[_local2].$bbox);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + _local10.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + _local10.y);
if (_local10.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
$collisionProxy.$COLTYPE_AABB[_local2].$owner.$bPushed = true;
if (((($State == PLAYER_JUMP)) || (($State == PLAYER_FALL)))){
$jump_pause_time = $jump_pause;
};
if ($State != PLAYER_HOOK){
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_HOOK]);
};
$State = PLAYER_HOOK;
$mySprite.Play($mySprite.$graphics.$data.LABEL_HOOK, 4, false, $mirror);
};
break;
default:
break;
};
};
i = 0;
while (i < $collisionProxy.$COLTYPE_AABB_LENGTH) {
if (i == _local2){
} else {
switch ($collisionProxy.$COLTYPE_AABB[i].$owner.GetType()){
case GameConstants.OBJTYPE_CAMERA:
$inCamera = true;
break;
case GameConstants.OBJTYPE_TRIGGER:
$collisionProxy.$COLTYPE_AABB[i].$owner.$collide(this);
break;
case GameConstants.OBJTYPE_HIDINGCAVE:
switch ($State){
case PLAYER_HIDING:
if ($game.$engine.$input.keys[GameConstants.KEYS.$down]){
$collisionProxy.$COLTYPE_AABB[i].$owner.UnhideMe();
$State = PLAYER_IDLE;
$mySprite.Play($mySprite.$graphics.$data.LABEL_UNHIDE, 3, false, $mirror);
};
break;
default:
if ($game.$engine.$input.keys[GameConstants.KEYS.$up]){
$collisionProxy.$COLTYPE_AABB[i].$owner.HideMe();
$State = PLAYER_HIDING;
$mySprite.Play($mySprite.$graphics.$data.LABEL_HIDE, 3, false, $mirror);
};
break;
};
break;
case GameConstants.OBJTYPE_COLLECTABLE:
$collisionProxy.$COLTYPE_AABB[i].$owner.Destruct();
break;
case GameConstants.OBJTYPE_KILLER:
switch ($collisionProxy.$COLTYPE_AABB[i].$owner.$subtype){
case GameConstants.KILLERTYPE_CEILSPIKES:
if (((($State == PLAYER_JUMP)) || (($vel.y == EngineConstants.EPSILON)))){
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_DIE]);
$jump_time = $jump_timeout;
$State = PLAYER_DEAD;
$mySprite.Play($mySprite.$graphics.$data.LABEL_DEATH, 3, true, $mirror);
};
return;
case GameConstants.KILLERTYPE_FLOORSPIKES:
if ($State == PLAYER_FALL){
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_DIE]);
$jump_time = $jump_timeout;
$State = PLAYER_DEAD;
$mySprite.Play($mySprite.$graphics.$data.LABEL_DEATH, 3, true, $mirror);
};
return;
case GameConstants.KILLERTYPE_ABBYS:
$Gone = true;
$State = PLAYER_DEAD;
$mySprite.Play($mySprite.$graphics.$data.LABEL_DEATH, 3, true, $mirror);
return;
};
break;
case GameConstants.OBJTYPE_GOBLIN:
if (((!(($collisionProxy.$COLTYPE_AABB[i].$owner.$State == $collisionProxy.$COLTYPE_AABB[i].$owner.GOBLIN_DEAD))) && (!(($State == PLAYER_HIDING))))){
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_DIE]);
$jump_time = $jump_timeout;
$State = PLAYER_DEAD;
$mySprite.Play($mySprite.$graphics.$data.LABEL_DEATH, 3, true, $mirror);
return;
};
break;
case GameConstants.OBJTYPE_BOSS:
if (((!(($collisionProxy.$COLTYPE_AABB[i].$owner.$State == $collisionProxy.$COLTYPE_AABB[i].$owner.DEAD))) && (!(($State == PLAYER_HIDING))))){
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_DIE]);
$jump_time = $jump_timeout;
$State = PLAYER_DEAD;
$mySprite.Play($mySprite.$graphics.$data.LABEL_DEATH, 3, true, $mirror);
return;
};
break;
case GameConstants.OBJTYPE_LEVELEXIT:
if ($game.$engine.$input.keys[GameConstants.KEYS.$up]){
$game.$current_music.Stop();
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.M_WIN_TRACK]);
$State = PLAYER_EXIT;
$mySprite.Play($mySprite.$graphics.$data.LABEL_INTRO, 4, false, $mirror);
};
break;
case GameConstants.OBJTYPE_SWITCH:
if ((($game.$engine.$input.keys[GameConstants.KEYS.$up]) && (($State == PLAYER_IDLE)))){
if ($collisionProxy.$COLTYPE_AABB[i].$owner.Activate()){
$State = PLAYER_SWITCH;
$mySprite.Play($mySprite.$graphics.$data.LABEL_SWITCH, 4, false, $mirror);
};
};
break;
case GameConstants.OBJTYPE_CHECKPOINT:
$collisionProxy.$COLTYPE_AABB[i].$owner.Activate();
break;
case GameConstants.OBJTYPE_PLATFORM:
_local10 = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[i].$bbox);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + (_local10.x + $collisionProxy.$COLTYPE_AABB[_local2].$owner.$vel.x));
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + (_local10.y + $collisionProxy.$COLTYPE_AABB[_local2].$owner.$vel.y));
if (_local10.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
if (((($State == PLAYER_JUMP)) || (($State == PLAYER_FALL)))){
$jump_pause_time = $jump_pause;
};
};
if (_local10.y > 0){
$jump_time = -1;
};
break;
case GameConstants.OBJTYPE_WATERFLOW:
_local3 = ($collisionProxy.$COLTYPE_AABB[i].$owner.$FlowSpeed * $collisionProxy.$COLTYPE_AABB[i].$owner.$FlowDirection);
break;
case GameConstants.OBJTYPE_DIGPLATE:
_local10 = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[i].$bbox);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + _local10.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + _local10.y);
if (_local10.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
if (((($State == PLAYER_JUMP)) || (($State == PLAYER_FALL)))){
$jump_pause_time = $jump_pause;
};
};
if (_local10.y > 0){
if ($State == PLAYER_JUMP){
$collisionProxy.$COLTYPE_AABB[i].$owner.Destruct();
};
$jump_time = -1;
};
break;
case GameConstants.OBJTYPE_STONE:
_local10 = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[i].$bbox);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + _local10.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + _local10.y);
if (_local10.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
if (((($State == PLAYER_JUMP)) || (($State == PLAYER_FALL)))){
$jump_pause_time = $jump_pause;
};
};
if ($collisionProxy.$COLTYPE_AABB[i].$owner.$State == $collisionProxy.$COLTYPE_AABB[i].$owner.STONE_FALL){
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_DIE]);
$jump_time = $jump_timeout;
$State = PLAYER_DEAD;
$mySprite.Play($mySprite.$graphics.$data.LABEL_DEATH, 3, true, $mirror);
};
break;
case GameConstants.OBJTYPE_HIDDENPLATE:
if ($collisionProxy.$COLTYPE_AABB[i].$owner.$State == $collisionProxy.$COLTYPE_AABB[i].$owner.HIDDEN){
break;
};
_local10 = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[i].$bbox);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + _local10.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + _local10.y);
if (_local10.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
if (((($State == PLAYER_JUMP)) || (($State == PLAYER_FALL)))){
$jump_pause_time = $jump_pause;
};
};
break;
default:
break;
};
};
i++;
};
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + _local3);
if (((((((((((($vel.y == 0)) && (!(($State == PLAYER_JUMP))))) && (!(($State == PLAYER_FALL))))) && (!(($State == PLAYER_FALL_DIG))))) && (!(($State == PLAYER_DEAD))))) && (!(($State == PLAYER_HIDING))))){
$fall_timer++;
if ($fall_timer > 1){
$State = PLAYER_FALL;
$fall_time = $fall_timeout;
$mySprite.Play($mySprite.$graphics.$data.LABEL_FALLING, 3, true, $mirror);
$bFalling = true;
$fall_timer = 0;
};
};
$mySprite.SetPosition(($myBox.$bbox.pos.x + $mySprite.$bbox_offset.x), ($myBox.$bbox.pos.y + $mySprite.$bbox_offset.y));
$mySprite.Update();
}
override public function Script():void{
}
}
}//package main.objects
Section 57
//SFX (main.objects.SFX)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class SFX extends GameObject implements IObject {
public var z;// = 0
public var $Sprites;
public var k;
public var $activeSprites;
public var $freeSprites;
public var j;
public var i;
public function SFX(_arg1){
var _local2:*;
$Sprites = new Array();
$activeSprites = new Array();
$freeSprites = new Array();
z = 0;
super(_arg1);
$game.$SFX = this;
$type = GameConstants.OBJTYPE_SFX;
$Sprites.push(new Array());
$activeSprites.push(new Array());
$freeSprites.push(new Array());
i = 0;
while (i < 50) {
_local2 = new SpriteSFX($game, $game.$resources.RESsfx01_src, 9, i, GameConstants.SFX_DEFAULT);
_local2.$callback = this.RetrieveSprite;
$Sprites[0].push(_local2);
$freeSprites[0].push(i);
i++;
};
}
override public function Subscript():void{
}
public function HandleAnimEnds(_arg1:String, _arg2:uint):void{
}
override public function Collide(_arg1:IObject):void{
}
public function AddSprite(_arg1:uint, _arg2:uint, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):void{
switch (_arg1){
case GameConstants.SFX_DEFAULT:
$Sprites[_arg1][$freeSprites[_arg1][0]].$mySprite.$bbox.pos.x = (_arg3 + $Sprites[_arg1][$freeSprites[_arg1][0]].$mySprite.$bbox_offset.x);
$Sprites[_arg1][$freeSprites[_arg1][0]].$mySprite.$bbox.pos.y = (_arg4 - $Sprites[_arg1][$freeSprites[_arg1][0]].$mySprite.$bbox_offset.y);
$Sprites[_arg1][$freeSprites[_arg1][0]].$mySprite.Play(_arg2, 1, false);
break;
default:
break;
};
$activeSprites[_arg1].push($freeSprites[_arg1][0]);
$freeSprites[_arg1].splice(0, 1);
}
override public function HitTest(_arg1:IObject):Boolean{
return (false);
}
override public function Coldet():void{
}
override public function GetDamage(_arg1:String, _arg2:Number, _arg3:Point, _arg4:Point):void{
}
public function RetrieveSprite(_arg1:uint, _arg2:uint, _arg3:uint):void{
$freeSprites[_arg1].push(_arg2);
$activeSprites[_arg1].splice(_arg3, 1);
}
override public function Delete():void{
i = 0;
while (i < $Sprites.length) {
j = 0;
while (j < $Sprites[i].length) {
$Sprites[i][j].Delete();
j++;
};
i++;
};
$Sprites.length = 0;
$activeSprites.length = 0;
$freeSprites.length = 0;
$Sprites = null;
$activeSprites = null;
$freeSprites = null;
}
override public function Update():void{
z = 0;
while (z < $Sprites.length) {
i = 0;
while (i < $activeSprites[z].length) {
$game.$engine.$renderer.GetRenderable($Sprites[z][$activeSprites[z][i]].$mySprite);
$Sprites[z][$activeSprites[z][i]].$active_index = i;
$Sprites[z][$activeSprites[z][i]].Update();
i++;
};
z++;
};
}
override public function Script():void{
}
override public function GetDistance(_arg1:Vector2D):Number{
return (0xFFFF);
}
override public function GetPosition():Point{
return (null);
}
}
}//package main.objects
Section 58
//SpriteSFX (main.objects.SpriteSFX)
package main.objects {
import main.engine.*;
public class SpriteSFX extends GameObject implements IObject {
public var $active_index:uint;
public var $mySprite:AClip;
public var $callback;
public function SpriteSFX(_arg1, _arg2, _arg3:uint, _arg4:uint, _arg5:uint){
super(_arg1);
$type = _arg5;
$index = _arg4;
$active_index = 0;
$callback = null;
$mySprite = new AClip($game, false, false, _arg2, 0, 0, _arg3);
$mySprite.SetCallback(this.HandleAnimEnds);
$renderables.push($mySprite);
}
public function HandleAnimEnds(_arg1:String, _arg2:uint):void{
$callback($type, $index, $active_index);
}
override public function Delete():void{
$mySprite.Destroy();
}
override public function Update():void{
$mySprite.Update();
}
}
}//package main.objects
Section 59
//StatSprite (main.objects.StatSprite)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class StatSprite extends GameObject implements IObject {
public function StatSprite(_arg1, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:uint=1, _arg6:Boolean=false){
super(_arg1);
$type = GameConstants.OBJTYPE_STATSPRITE;
this.$mySprite = new StatBitmap($game, true, true, _arg2, _arg3, _arg4, _arg5, _arg6);
$renderables.push(this.$mySprite);
}
override public function Delete():void{
this.$mySprite.Destroy();
}
override public function GetPosition():Point{
return (this.$mySprite.GetBBOX().pos);
}
}
}//package main.objects
Section 60
//Stone (main.objects.Stone)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class Stone extends GameObject implements IObject {
public const STONE_FALL = 1;
public const EVENT_HITKILLER = 0;
public const EVENT_GONE = 0;
public const EVENT_HITGOBLIN = 0;
public const STONE_MOVE = 2;
public const STONE_IDLE = 0;
public const EVENT_HITPLAYER = 0;
public const EVENT_FALLING = 0;
public const EVENT_HITCEILING = 0;
public const EVENT_INCAMERA = 0;
public var $bFalling:Boolean;// = false
private var $WaitTime:Number;// = 0
var bbox;
private var $HitTime:Number;// = 0
private var $WaitTimeout:Number;// = 10
var i;
public var $Events;
var j;
var k;// = 0
public var $collisionProxy;
private var $HitTimeout:Number;// = 17
var dx;
var dy;// = 0
var $UPtest2;
public var $speed:Number;
public var $G:Number;
public var $mySprite:AClip;
public var $State:uint;
public var $inCamera:Boolean;// = false
public var $temp_vel:Number;
var $UPtest;
public var $myBox:ColAABB;
public var $mirror:uint;
public var $bHit:Boolean;// = false
public var $ChosenDir:Number;
public var $dir:Point;
public var $vel:Point;
public var $bDestroyed:Boolean;// = false
public function Stone(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6){
$collisionProxy = new CollisionProxy();
$Events = new Array();
$bFalling = false;
$bDestroyed = false;
$bHit = false;
$inCamera = false;
$WaitTime = 0;
$WaitTimeout = 10;
$HitTime = 0;
$HitTimeout = 17;
k = 0;
dy = 0;
bbox = new AABB2D(1, 1, 1, 1);
$UPtest = new Vector2D(0.0001, -1);
$UPtest2 = new Vector2D(0.0001, 1);
super(_arg1);
$type = GameConstants.OBJTYPE_STONE;
$name = "stone";
$mySprite = new AClip($game, true, false, _arg2, _arg3, _arg4, _arg5, true);
$mySprite.$name = "mySprite";
$renderables.push($mySprite);
$myBox = new ColAABB($game, this, true, false, _arg2, _arg3, _arg4);
$State = STONE_IDLE;
$dir = new Point(0, 0);
$vel = new Point(0, 0);
$speed = 3.2;
$G = 18;
$mirror = 0;
$ChosenDir = 1;
}
public function HandleAnimEnds(_arg1:String, _arg2:uint):void{
}
override public function Collide(_arg1:IObject):void{
}
override public function GetDamage(_arg1:String, _arg2:Number, _arg3:Point, _arg4:Point):void{
}
override public function GetDistance(_arg1:Vector2D):Number{
return (0xFFFF);
}
public function Die():void{
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_GROUND]);
$game.$engine.DeleteObject($index);
$game.$SFX.AddSprite(GameConstants.SFX_DEFAULT, GameConstants.SFX_DEFAULT_DIGPLATEBLOW1, $myBox.$bbox.pos.x, $myBox.$bbox.pos.y);
}
public function Hit(_arg1:Number):void{
if (!$bHit){
$HitTime = $HitTimeout;
$State = STONE_MOVE;
if (_arg1 > 0){
$mySprite.Play(1, 1, true);
} else {
$mySprite.Play(2, 1, true);
};
$ChosenDir = _arg1;
};
}
override public function GetPosition():Point{
return ($mySprite.GetBBOX().pos);
}
private function CollisionDetection():void{
var _local1:Number;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
$vel.x = 0;
$vel.y = 0;
$inCamera = false;
$collisionProxy.Clear();
$myBox.GetColliders($collisionProxy);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x - $vel.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y - $vel.y);
_local1 = 0xFFFF;
_local2 = 0xFFFF;
i = 0;
while (i < $collisionProxy.$COLTYPE_AABB_LENGTH) {
switch ($collisionProxy.$COLTYPE_AABB[i].$owner.GetType()){
case GameConstants.OBJTYPE_DIGPLATE:
$collisionProxy.$COLTYPE_AABB[i].$distance = $collisionProxy.$COLTYPE_AABB[i].$bbox.distanceBetween($myBox.$bbox);
if ($collisionProxy.$COLTYPE_AABB[i].$distance < _local1){
_local1 = $collisionProxy.$COLTYPE_AABB[i].$distance;
_local2 = i;
};
break;
default:
break;
};
i++;
};
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + $vel.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + $vel.y);
i = 0;
while (i < $collisionProxy.$COLTYPE_MESH_LENGTH) {
_local3 = $collisionProxy.$COLTYPE_MESH[i].GetVectors($myBox.$bbox);
j = 0;
while (j < _local3.length) {
switch (_local3[j].$subtype){
case EngineConstants.VECTYPE_SOLID:
_local4 = new Point(_local3[j].$vector.n.y, (-1 * _local3[j].$vector.n.x));
_local5 = new Vector2D((-(_local4.x) * $myBox.$bbox.extents.x), (-(_local4.y) * $myBox.$bbox.extents.y), $myBox.$bbox.pos.x, $myBox.$bbox.pos.y, 0);
_local6 = _local5.Cross(_local3[j].$vector);
if (_local6 != null){
_local7 = $UPtest.Angle(_local3[j].$vector);
_local8 = $UPtest.Angle(_local3[j].$vector);
if (_local3[j].$vector.n.x < -0.6){
};
if (((((_local7 * _local7) < 0.4)) || (((_local8 * _local8) < 0.4)))){
if ($dir.y > 0){
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
};
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + ((_local6.y + (_local4.y * $myBox.$bbox.extents.y)) - $myBox.$bbox.pos.y));
} else {
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + (((_local6.x + (_local4.x * $myBox.$bbox.extents.x)) + 0.0002) - $myBox.$bbox.pos.x));
};
};
break;
case EngineConstants.VECTYPE_LEVELBOTTOM:
$bDestroyed = true;
break;
};
j++;
};
i++;
};
i = 0;
while (i < $collisionProxy.$COLTYPE_MESHSIMPLE_LENGTH) {
switch ($collisionProxy.$COLTYPE_MESHSIMPLE[i].$owner.GetType()){
default:
break;
};
i++;
};
i = 0;
while (i < $collisionProxy.$COLTYPE_VECTOR2D_LENGTH) {
switch ($collisionProxy.$COLTYPE_VECTOR2D[i].$owner.GetType()){
default:
break;
};
i++;
};
if (_local2 != 0xFFFF){
switch ($collisionProxy.$COLTYPE_AABB[_local2].$owner.GetType()){
case GameConstants.OBJTYPE_DIGPLATE:
_local9 = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[_local2].$bbox);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + _local9.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + _local9.y);
if (_local9.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
};
if (_local9.y > 0){
};
break;
default:
break;
};
};
i = 0;
while (i < $collisionProxy.$COLTYPE_AABB_LENGTH) {
switch ($collisionProxy.$COLTYPE_AABB[i].$owner.GetType()){
case GameConstants.OBJTYPE_CAMERA:
$inCamera = true;
break;
case GameConstants.OBJTYPE_KILLER:
break;
case GameConstants.OBJTYPE_PLATFORM:
_local9 = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[i].$bbox);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + _local9.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + _local9.y);
if (_local9.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
};
if (_local9.y > 0){
};
break;
case GameConstants.OBJTYPE_DIGPLATE:
_local9 = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[i].$bbox);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + _local9.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + _local9.y);
if (_local9.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
};
if (_local9.y > 0){
};
break;
case GameConstants.OBJTYPE_STONE:
_local9 = $myBox.$bbox.GetProjectionVector($collisionProxy.$COLTYPE_AABB[i].$bbox);
$myBox.$bbox.pos.x = ($myBox.$bbox.pos.x + _local9.x);
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + _local9.y);
if (_local9.y < 0){
$myBox.$bbox.pos.y = ($myBox.$bbox.pos.y + EngineConstants.EPSILON);
$vel.y = EngineConstants.EPSILON;
$bFalling = false;
};
if (_local9.y > 0){
};
break;
case GameConstants.OBJTYPE_TRIGGER:
$collisionProxy.$COLTYPE_AABB[i].$owner.$collide(this);
break;
default:
break;
};
i++;
};
}
override public function HitTest(_arg1:IObject):Boolean{
return (false);
}
override public function Coldet():void{
}
override public function Delete():void{
$myBox.Destroy();
$mySprite.Destroy();
}
override public function Update():void{
switch ($State){
case STONE_IDLE:
if ($WaitTime > 0){
$WaitTime--;
} else {
$WaitTime = $WaitTimeout;
$dir.x = 0;
$dir.y = 1;
$vel.x = 0;
$vel.y = (($G * $dir.y) * 0.4);
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
CollisionDetection();
if ($vel.y == 0){
$bFalling = true;
$State = STONE_FALL;
$mySprite.Play(1, 3, true);
};
$mySprite.SetPosition(($myBox.$bbox.pos.x + $mySprite.$bbox_offset.x), ($myBox.$bbox.pos.y + $mySprite.$bbox_offset.y));
$mySprite.Update();
};
break;
case STONE_FALL:
$dir.x = 0;
$dir.y = 1;
$vel.x = ($speed * $dir.x);
$vel.y = ($G * $dir.y);
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
CollisionDetection();
if (!$bFalling){
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_ROCK_FALL]);
$State = STONE_IDLE;
$mySprite.Play(0, 5, false);
};
if ($bDestroyed){
$game.$engine.DeleteObject($index);
$game.LevelObjectRemoved(this.$init_index);
};
$mySprite.SetPosition(($myBox.$bbox.pos.x + $mySprite.$bbox_offset.x), ($myBox.$bbox.pos.y + $mySprite.$bbox_offset.y));
$mySprite.Update();
break;
case STONE_MOVE:
$HitTime--;
if ($HitTime < 0){
$bHit = false;
$State = STONE_IDLE;
$mySprite.Play(0, 5, false);
break;
};
$dir.x = $ChosenDir;
$dir.y = 1;
$vel.x = ($speed * $dir.x);
$vel.y = ($G * $dir.y);
$mySprite.Move($vel.x, $vel.y);
$myBox.Move($vel.x, $vel.y);
CollisionDetection();
if ($bDestroyed){
$game.$engine.DeleteObject($index);
$game.LevelObjectRemoved(this.$init_index);
};
$mySprite.SetPosition(($myBox.$bbox.pos.x + $mySprite.$bbox_offset.x), ($myBox.$bbox.pos.y + $mySprite.$bbox_offset.y));
$mySprite.Update();
break;
};
}
override public function Subscript():void{
}
override public function Script():void{
}
}
}//package main.objects
Section 61
//Switch (main.objects.Switch)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class Switch extends GameObject implements IObject {
public const SWITCH_IDLE = 0;
public const SWITCH_REACTIVATE = 3;
public const SWITCH_ENABLED = 1;
public const SWITCH_INACTIVE = 2;
public var $bReactivate:Boolean;// = false
public var $myBox:ColAABB;
public var $ReactivateTimeout:Number;// = 60
public var $mySprite:AClip;
public var $State:uint;
private var $ReactivateTime:Number;// = 0
public function Switch(_arg1, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:uint=1, _arg6:Boolean=false){
$ReactivateTime = 0;
$ReactivateTimeout = 60;
$bReactivate = false;
super(_arg1);
$type = GameConstants.OBJTYPE_SWITCH;
$mySprite = new AClip($game, true, false, _arg2, _arg3, _arg4, _arg5);
$mySprite.$name = "default_anim_sprite";
$mySprite.SetCallback(HandleAnimEnds);
$mySprite.Play(0, 1, false);
$myBox = new ColAABB($game, this, true, false, _arg2, _arg3, _arg4);
$State = SWITCH_IDLE;
}
public function Activate():Boolean{
if ($State == SWITCH_IDLE){
$game.$engine.$sound.Play($game.$SOUNDS[GameConstants.S_SWITCH]);
$State = SWITCH_ENABLED;
$mySprite.Play(1, 2, false);
return (true);
};
return (false);
}
public function HandleAnimEnds(_arg1:String, _arg2:uint):void{
if (_arg2 == 1){
$State = SWITCH_INACTIVE;
this.$script(this);
$ReactivateTime = $ReactivateTimeout;
};
if (_arg2 == 2){
$State = SWITCH_IDLE;
$mySprite.Play(0, 5, false);
};
}
override public function Delete():void{
this.$mySprite.Destroy();
}
override public function Update():void{
switch ($State){
case SWITCH_IDLE:
break;
case SWITCH_ENABLED:
$mySprite.Update();
break;
case SWITCH_INACTIVE:
if ($bReactivate){
$ReactivateTime--;
if ($ReactivateTime < 0){
$State = SWITCH_REACTIVATE;
$mySprite.Play(2, 2, false);
};
};
break;
case SWITCH_REACTIVATE:
$mySprite.Update();
break;
};
}
override public function GetPosition():Point{
return (this.$mySprite.GetBBOX().pos);
}
}
}//package main.objects
Section 62
//Trigger (main.objects.Trigger)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class Trigger extends GameObject implements IObject {
public var $myBox:ColAABB;
public function Trigger(_arg1, _arg2:String, _arg3:MovieClip, _arg4:Number, _arg5:Number){
super(_arg1);
$name = _arg2;
$type = GameConstants.OBJTYPE_TRIGGER;
$myBox = new ColAABB($game, this, true, false, MovieClip(_arg3.parent), _arg4, _arg5);
}
override public function Subscript():void{
}
override public function Collide(_arg1:IObject):void{
}
override public function HitTest(_arg1:IObject):Boolean{
return (false);
}
override public function Coldet():void{
}
override public function GetDamage(_arg1:String, _arg2:Number, _arg3:Point, _arg4:Point):void{
}
override public function Delete():void{
$myBox.Destroy();
}
override public function Update():void{
}
override public function Script():void{
}
override public function GetDistance(_arg1:Vector2D):Number{
return (0xFFFF);
}
public function Destruct():void{
}
override public function GetPosition():Point{
return ($myBox.GetBBOX().pos);
}
}
}//package main.objects
Section 63
//Waterflow (main.objects.Waterflow)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class Waterflow extends GameObject implements IObject {
public var $myBox:ColAABB;
public var $mySprite:AClip;
public var $State:uint;
public var $FlowDirection:Number;// = 1
public var $FlowSpeed:Number;// = 4
public var $mirror:uint;// = 0
public function Waterflow(_arg1, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:uint=1, _arg6:Boolean=false){
$FlowDirection = 1;
$FlowSpeed = 4;
$mirror = 0;
super(_arg1);
$type = GameConstants.OBJTYPE_WATERFLOW;
$mySprite = new AClip($game, true, false, _arg2, _arg3, _arg4, 8, true);
$mySprite.$name = "default_anim_sprite";
$myBox = new ColAABB($game, this, true, false, _arg2, _arg3, _arg4);
SetFlowSpeed($FlowSpeed);
}
public function SetFlowDir(_arg1:Number):void{
if (_arg1 > 0){
$FlowDirection = 1;
$mirror = 0;
} else {
$FlowDirection = -1;
$mirror = 1;
};
$mySprite.Play(0, (6 - Math.floor(($FlowSpeed / 2))), true, $mirror);
}
public function HandleAnimEnds(_arg1:String, _arg2:uint):void{
}
public function SetFlowSpeed(_arg1:Number):void{
if (_arg1 > 4){
_arg1 = 4;
};
$mySprite.Play(0, (4 - Math.floor(_arg1)), true, $mirror);
$FlowSpeed = (_arg1 * 2);
}
override public function Delete():void{
$myBox.Destroy();
$mySprite.Destroy();
}
override public function Update():void{
$mySprite.Update();
}
override public function GetPosition():Point{
return ($mySprite.GetBBOX().pos);
}
}
}//package main.objects
Section 64
//Waypoint (main.objects.Waypoint)
package main.objects {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.*;
public dynamic class Waypoint extends GameObject implements IObject {
public var $myBox:ColAABB;
public function Waypoint(_arg1, _arg2:String, _arg3:MovieClip, _arg4:Number, _arg5:Number){
super(_arg1);
$name = _arg2;
$type = GameConstants.OBJTYPE_WAYPOINT;
$myBox = new ColAABB($game, this, true, false, MovieClip(_arg3.parent), _arg4, _arg5);
}
override public function Subscript():void{
}
override public function Collide(_arg1:IObject):void{
}
override public function HitTest(_arg1:IObject):Boolean{
return (false);
}
override public function Coldet():void{
}
override public function GetDamage(_arg1:String, _arg2:Number, _arg3:Point, _arg4:Point):void{
}
override public function Delete():void{
$myBox.Destroy();
}
override public function Update():void{
}
override public function Script():void{
}
override public function GetDistance(_arg1:Vector2D):Number{
return (0xFFFF);
}
public function Destruct():void{
}
override public function GetPosition():Point{
return ($myBox.GetBBOX().pos);
}
}
}//package main.objects
Section 65
//achievement_wav (main.achievement_wav)
package main {
import flash.media.*;
public dynamic class achievement_wav extends Sound {
}
}//package main
Section 66
//App (main.App)
package main {
import flash.display.*;
import flash.events.*;
import mochi.as3.*;
import main.engine.*;
import flash.text.*;
public class App extends MovieClip {
public var bar:MovieClip;
public var mochi_mc:MochiWrapper;
private var progressBar:MovieClip;
public static const ENTRY_FRAME:Number = 4;
public static const DOCUMENT_CLASS:String = "game";
public function App(){
var myOptions:Object;
super();
stop();
progressBar = (getChildByName("bar") as MovieClip);
progressBar.scaleX = 0;
myOptions = {id:"6e64b141bb9d1e79", res:"600x480", clip:mochi_mc, background:0x333333, outline:0xFFFFFF, ad_finished:function ():void{
play();
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}};
MochiAd.showPreGameAd(myOptions);
}
private function enterFrameHandler(_arg1:Event):void{
if (currentFrame >= ENTRY_FRAME){
removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
stop();
main();
};
}
private function progressHandler(_arg1:ProgressEvent):void{
var _local2:uint;
var _local3:uint;
_local2 = _arg1.bytesLoaded;
_local3 = _arg1.bytesTotal;
progressBar.scaleX = (_local2 / _local3);
}
private function main():void{
var _local1:Class;
var _local2:*;
_local1 = (loaderInfo.applicationDomain.getDefinition(DOCUMENT_CLASS) as Class);
_local2 = new (_local1);
addChild(_local2);
_local2.Init();
}
private function completeHandler(_arg1:Event):void{
loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressHandler);
loaderInfo.removeEventListener(Event.COMPLETE, completeHandler);
}
}
}//package main
Section 67
//GameConstants (main.GameConstants)
package main {
public final class GameConstants {
public static const A_GET_A_NECKLE = 12;
public static const S_GROUND = 4;
public static const LSTAT_TIME:uint = 8;
public static const A_GAME_COMPLETE_HARDCORE = 1;
public static const OBJTYPE_HOOK:uint = 22;
public static const SFX_DEFAULT_REDGEM:uint = 4;
public static const OBJTYPE_STONE:uint = 20;
public static const A_GAME_COMPLETE_EASY_IN_4MINS = 8;
public static const M_BOSS_TRACK = 14;
public static const KILLERTYPE_FLOORSPIKES:uint = 0;
public static const A_GET_A_CROWN = 14;
public static const COIN_VALUE:Number = 1;
public static const BLUEGEM_VALUE:Number = 30;
public static const S_ACHIEVEMENT = 0;
public static const LSTAT_GREENGEM:uint = 0;
public static const A_BOSS_DEFEATED = 2;
public static const A_COLLECTED_GEMS_50 = 3;
public static const M_LOOSE_TRACK = 16;
public static const S_GEM = 3;
public static const OBJTYPE_GOBLIN:uint = 12;
public static const SFX_DEFAULT:uint = 0;
public static const A_COLLECTED_GEMS_100 = 4;
public static const SFX_DEFAULT_DIAGEM:uint = 5;
public static const SFX_DEFAULT_BIGGEM:uint = 6;
public static const OBJTYPE_PLAYER:uint = 1;
public static const SFX_DEFAULT_SHINE:uint = 0;
public static const OBJTYPE_LEVELEXIT:uint = 11;
public static const OBJTYPE_BOSS:uint = 24;
public static const LSTAT_GOBLIN:uint = 9;
public static const OBJTYPE_LEVELBOUNDARY:uint = 17;
public static const OBJTYPE_PLATFORM:uint = 5;
public static const S_ROCK_FALL = 9;
public static const S_SPIDER_JUMP = 10;
public static const SFX_DEFAULT_GREENGEM:uint = 2;
public static const DIAGEM_VALUE:Number = 100;
public static const BIGGEM_VALUE:Number = 500;
public static const LSTAT_TREASURE:uint = 7;
public static const A_VISIT_SPONSOR = 7;
public static const ACHIEVEMENTS_LENGTH = 15;
public static const SFX_DEFAULT_DIGPLATEBLOW1:uint = 1;
public static const S_DIE = 1;
public static const M_WIN_TRACK = 15;
public static const OBJTYPE_WATERFLOW:uint = 23;
public static const A_GAME_COMPLETE_EASY = 0;
public static const A_GAME_COMPLETE_HARDCORE_IN_8MINS = 9;
public static const A_DESTROY_10_GOBLINS = 10;
public static const M_TITLE_TRACK = 12;
public static const OBJTYPE_ANIMSPRITE:uint = 4;
public static const OBJTYPE_STATSPRITE:uint = 3;
public static const S_HOOK = 6;
public static const OBJTYPE_CAMERA:uint = 0;
public static const S_JUMP = 7;
public static const OBJTYPE_BACKGROUND:uint = 2;
public static const SFX_DEFAULT_BLUEGEM:uint = 3;
public static const LSTAT_GOLD:uint = 6;
public static const KILLERTYPE_ABBYS:uint = 2;
public static const OBJTYPE_SWITCH:uint = 18;
public static const LSTAT_REDGEM:uint = 2;
public static const OBJTYPE_FALLINGROCK:uint = 15;
public static const S_HIT = 5;
public static const KILLERTYPE_CEILSPIKES:uint = 1;
public static const M_LEVEL_TRACK = 13;
public static const S_SWITCH = 11;
public static const GOLD_VALUE:Number = 100;
public static const OBJTYPE_COLLECTABLE:uint = 9;
public static const OBJTYPE_SFX:uint = 8;
public static const KILLERTYPE_LAWA:uint = 3;
public static const LSTAT_BOSS:uint = 10;
public static const GREENGEM_VALUE:Number = 10;
public static const TREASURE_VALUE:Number = 1000;
public static const A_DESTROY_30_GOBLINS = 11;
public static const OBJTYPE_DIGPLATE:uint = 7;
public static const LSTAT_GOLDKIRKA:uint = 11;
public static const A_COLLECTED_GEMS_300 = 5;
public static const LSTAT_BIGGEM:uint = 4;
public static const LSTAT_COIN:uint = 5;
public static const LSTAT_DIAGEM:uint = 3;
public static const A_GOLD_KIRKA_FOUND = 6;
public static const S_QUAKE = 8;
public static const OBJTYPE_HIDDENPLATE:uint = 21;
public static const S_FALL = 2;
public static const OBJTYPE_WAYPOINT:uint = 13;
public static const REDGEM_VALUE:Number = 50;
public static const OBJTYPE_TRIGGER:uint = 14;
public static const OBJTYPE_GROUND:uint = 6;
public static const LSTAT_BLUEGEM:uint = 1;
public static const OBJTYPE_KILLER:uint = 10;
public static const OBJTYPE_HIDINGCAVE:uint = 16;
public static const KEYS = new Object();
public static const A_GET_A_DIADEM = 13;
public static const OBJTYPE_CHECKPOINT:uint = 19;
KEYS.$up = 38;
KEYS.$down = 40;
KEYS.$left = 37;
KEYS.$right = 39;
KEYS.$shoot = 83;
KEYS.$jump = 65;
KEYS.$run = 51;
KEYS.$use = 52;
KEYS.$weapon1 = 53;
KEYS.$weapon2 = 54;
KEYS.$weapon3 = 55;
KEYS.$weapon4 = 56;
KEYS.$show_menu = 192;
KEYS.$pause = 80;
}
}//package main
Section 68
//MyFactory (main.MyFactory)
package main {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import main.objects.*;
public dynamic class MyFactory implements IFactory {
public var $game;
public function MyFactory(_arg1){
$game = _arg1;
}
public function CreateGround(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:uint, _arg5:Boolean=false, _arg6:Number=1):IObject{
var _local7:*;
_local7 = new Ground($game, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6);
return (_local7);
}
public function CreateCheckpoint(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:uint, _arg5:Boolean=false):IObject{
var _local6:*;
_local6 = new Checkpoint($game, _arg1, _arg2, _arg3, _arg4, _arg5);
return (_local6);
}
public function CreateLevelExit(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:uint, _arg5:Boolean=false):IObject{
var _local6:*;
_local6 = new LevelExit($game, _arg1, _arg2, _arg3, _arg4, _arg5);
return (_local6);
}
public function CreateCollectable(_arg1:uint, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:uint, _arg6:Boolean=false):IObject{
var _local7:*;
_local7 = new Collectable($game, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6);
switch (_arg1){
case GameConstants.LSTAT_GREENGEM:
$game.$level_greengems++;
break;
case GameConstants.LSTAT_BLUEGEM:
$game.$level_bluegems++;
break;
case GameConstants.LSTAT_REDGEM:
$game.$level_redgems++;
break;
case GameConstants.LSTAT_DIAGEM:
$game.$level_diagems++;
break;
case GameConstants.LSTAT_BIGGEM:
$game.$level_biggems++;
break;
};
return (_local7);
}
public function CreateWaterflow(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:uint, _arg5:Boolean=false):IObject{
var _local6:*;
_local6 = new Waterflow($game, _arg1, _arg2, _arg3, _arg4, _arg5);
return (_local6);
}
public function CreateKiller(_arg1:uint, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:uint, _arg6:Boolean=false):IObject{
var _local7:*;
_local7 = new Killer($game, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6);
return (_local7);
}
public function CreateFallingRock(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:uint, _arg5:Boolean=false):IObject{
var _local6:*;
_local6 = new FallingRock($game, _arg1, _arg2, _arg3, _arg4, _arg5);
return (_local6);
}
public function CreateLevelBoundary(_arg1:MovieClip, _arg2:Number, _arg3:Number):IObject{
var _local4:*;
_local4 = new LevelBoundary($game, _arg1, _arg2, _arg3);
return (_local4);
}
public function CreateGoblin(_arg1:MovieClip, _arg2:Number, _arg3:Number):IObject{
var _local4:*;
_local4 = new Goblin($game, _arg1, _arg2, _arg3);
return (_local4);
}
public function CreateHiddenPlate(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:uint, _arg5:Boolean=false):IObject{
var _local6:*;
_local6 = new HiddenPlate($game, _arg1, _arg2, _arg3, _arg4, _arg5);
return (_local6);
}
public function CreateSFX():IObject{
var _local1:*;
_local1 = new SFX($game);
return (_local1);
}
public function CreatePlayer(_arg1:MovieClip, _arg2:Number, _arg3:Number):IObject{
var _local4:*;
_local4 = new Player($game, _arg1, _arg2, _arg3);
return (_local4);
}
public function CreateHook(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:uint, _arg5:Boolean=false):IObject{
var _local6:*;
_local6 = new Hook($game, _arg1, _arg2, _arg3, _arg4, _arg5);
return (_local6);
}
public function CreateCamera(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Boolean):IObject{
var _local5:*;
_local5 = new Frustum($game, _arg1, _arg2, _arg3, _arg4);
return (_local5);
}
public function CreateHidingCave(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:uint, _arg5:Boolean=false):IObject{
var _local6:*;
_local6 = new HidingCave($game, _arg1, _arg2, _arg3, _arg4, _arg5);
return (_local6);
}
public function CreateBoss(_arg1:MovieClip, _arg2:Number, _arg3:Number):IObject{
var _local4:*;
_local4 = new Boss($game, _arg1, _arg2, _arg3);
return (_local4);
}
public function CreateBackground(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:uint, _arg5:Boolean=false, _arg6:Number=1):IObject{
var _local7:*;
_local7 = new Background($game, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6);
return (_local7);
}
public function CreatePlatform(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:uint, _arg5:Boolean=false):IObject{
var _local6:*;
_local6 = new Platform($game, _arg1, _arg2, _arg3, _arg4, _arg5);
return (_local6);
}
public function CreateDigPlate(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:uint, _arg5:Boolean=false):IObject{
var _local6:*;
_local6 = new DigPlate($game, _arg1, _arg2, _arg3, _arg4, _arg5);
return (_local6);
}
public function CreateAnimSprite(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:uint, _arg5:Boolean=false):IObject{
var _local6:*;
_local6 = new AnimSprite($game, _arg1, _arg2, _arg3, _arg4, _arg5);
return (_local6);
}
public function CreateStatSprite(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:uint, _arg5:Boolean=false):IObject{
var _local6:*;
_local6 = new StatSprite($game, _arg1, _arg2, _arg3, _arg4, _arg5);
return (_local6);
}
public function CreateSwitch(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:uint, _arg5:Boolean=false):IObject{
var _local6:*;
_local6 = new Switch($game, _arg1, _arg2, _arg3, _arg4, _arg5);
return (_local6);
}
public function CreateStone(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:uint, _arg5:Boolean=false):IObject{
var _local6:*;
_local6 = new Stone($game, _arg1, _arg2, _arg3, _arg4, _arg5);
return (_local6);
}
public function CreateObject(_arg1:uint, _arg2:Boolean, _arg3:MovieClip, _arg4:Number, _arg5:Number):IObject{
var _local6:IObject;
_local6 = null;
switch (_arg1){
case GameConstants.OBJTYPE_PLAYER:
_local6 = new Player($game, _arg3, _arg4, _arg5);
break;
case GameConstants.OBJTYPE_CAMERA:
_local6 = new Frustum($game, _arg3, _arg4, _arg5);
break;
case GameConstants.OBJTYPE_STATSPRITE:
_local6 = new StatSprite($game, _arg3, _arg4, _arg5);
break;
default:
break;
};
return (_local6);
}
public function CreateTrigger(_arg1:String, _arg2:MovieClip, _arg3:Number, _arg4:Number):IObject{
var _local5:*;
_local5 = new Trigger($game, _arg1, _arg2, _arg3, _arg4);
return (_local5);
}
public function CreateWaypoint(_arg1:String, _arg2:MovieClip, _arg3:Number, _arg4:Number):IObject{
var _local5:*;
_local5 = new Waypoint($game, _arg1, _arg2, _arg3, _arg4);
return (_local5);
}
}
}//package main
Section 69
//MochiAd (mochi.as3.MochiAd)
package mochi.as3 {
import flash.display.*;
import flash.events.*;
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 DEFAULTS:Object;
var clip:Object;
var ad_timeout:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{
}, ad_finished:function ():void{
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
return;
};
_local1 = this.parent._mochiad_ctr;
_local2 = (getTimer() - this.started);
_local3 = false;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
_local3 = true;
chk.started = getTimer();
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (this.root == null){
_local3 = true;
};
if (_local3){
delete this.onEnterFrame;
};
};
doOnEnterFrame(chk);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function _allowDomains(_arg1:String):String{
var _local2:String;
_local2 = _arg1.split("/")[2].split(":")[0];
if (Security.sandboxType == "application"){
return (_local2);
};
Security.allowDomain("*");
Security.allowDomain(_local2);
Security.allowInsecureDomain("*");
Security.allowInsecureDomain(_local2);
return (_local2);
}
public static function unload(_arg1:Object):Boolean{
if (((_arg1.clip) && (_arg1.clip._mochiad))){
_arg1 = _arg1.clip;
};
if (_arg1.origFrameRate != undefined){
_arg1.stage.frameRate = _arg1.origFrameRate;
};
if (!_arg1._mochiad){
return (false);
};
if (_arg1._mochiad._containerLCName != undefined){
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"});
};
if (_arg1._mochiad.onUnload){
_arg1._mochiad.onUnload();
};
delete _arg1._mochiad_loaded;
delete _arg1._mochiad;
return (true);
}
public static function showInterLevelAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_msec:Number;
var ad_timeout:Number;
var fadeout_time:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
ad_msec = 11000;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
_local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = (_arg1 - 250);
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
_local1 = this.parent._mochiad_ctr;
_local2 = (getTimer() - this.started);
_local3 = false;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (_local2 > chk.ad_msec){
_local3 = true;
};
if (_local3){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function _parseOptions(_arg1:Object, _arg2:Object):Object{
var _local3:Object;
var _local4:String;
var _local5:Array;
var _local6:Number;
var _local7:Array;
_local3 = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
if (_arg1){
for (_local4 in _arg1) {
_local3[_local4] = _arg1[_local4];
};
};
if (_local3.clip == undefined){
throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite."));
};
_arg1 = _local3.clip.loaderInfo.parameters.mochiad_options;
if (_arg1){
_local5 = _arg1.split("&");
_local6 = 0;
while (_local6 < _local5.length) {
_local7 = _local5[_local6].split("=");
_local3[unescape(_local7[0])] = unescape(_local7[1]);
_local6++;
};
};
if (_local3.id == "test"){
};
return (_local3);
}
public static function _cleanup(_arg1:Object):void{
var idx:Number;
var k:String;
var lc:LocalConnection;
var f:Function;
var mc = _arg1;
if (("lc" in mc)){
lc = mc.lc;
f = function ():void{
try {
lc.client = null;
lc.close();
} catch(e:Error) {
};
};
setTimeout(f, 0);
};
idx = DisplayObjectContainer(mc).numChildren;
while (idx > 0) {
idx = (idx - 1);
DisplayObjectContainer(mc).removeChildAt(idx);
};
for (k in mc) {
delete mc[k];
};
}
public static function load(_arg1:Object):MovieClip{
var DEFAULTS:Object;
var clip:Object;
var depth:Number;
var mc:MovieClip;
var wh:Array;
var lv:URLVariables;
var k:String;
var server:String;
var hostname:String;
var lc:LocalConnection;
var name:String;
var loader:Loader;
var g:Function;
var req:URLRequest;
var v:Object;
var options = _arg1;
DEFAULTS = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
if (!(clip is DisplayObject)){
return (null);
};
if (MovieClip(clip).stage == null){
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."));
};
depth = options.depth;
delete options.depth;
mc = createEmptyMovieClip(clip, "_mochiad", depth);
wh = MochiAd._getRes(options, clip);
options.res = ((wh[0] + "x") + wh[1]);
options.server = (options.server + options.id);
delete options.id;
clip._mochiad_loaded = true;
if (clip.loaderInfo.loaderURL.indexOf("http") == 0){
options.as3_swf = clip.loaderInfo.loaderURL;
//unresolved jump
};
lv = new URLVariables();
for (k in options) {
v = options[k];
if (!(v is Function)){
lv[k] = v;
};
};
server = lv.server;
delete lv.server;
hostname = _allowDomains(server);
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.lc = lc;
mc.lcName = name;
lv.lc = name;
lv.st = getTimer();
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
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{
});
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;
var _local5:Number;
_local4 = _arg2.split(".");
_local5 = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
if (typeof(_arg1[_local4[_local5]]) == "function"){
return (_arg1[_local4[_local5]].apply(_arg1, _arg3));
};
return (undefined);
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{
var _local4:MovieClip;
_local4 = new MovieClip();
if (((false) && (_arg3))){
_arg1.addChildAt(_local4, _arg3);
} else {
_arg1.addChild(_local4);
};
_arg1[_arg2] = _local4;
_local4["_name"] = _arg2;
return (_local4);
}
public static function _getRes(_arg1:Object, _arg2:Object):Array{
var _local3:Object;
var _local4:Number;
var _local5:Number;
var _local6:Array;
_local3 = _arg2.getBounds(_arg2.root);
_local4 = 0;
_local5 = 0;
if (typeof(_arg1.res) != "undefined"){
_local6 = _arg1.res.split("x");
_local4 = parseFloat(_local6[0]);
_local5 = parseFloat(_local6[1]);
} else {
_local4 = (_local3.xMax - _local3.xMin);
_local5 = (_local3.yMax - _local3.yMin);
};
if ((((_local4 == 0)) || ((_local5 == 0)))){
_local4 = _arg2.stage.stageWidth;
_local5 = _arg2.stage.stageHeight;
};
return ([_local4, _local5]);
}
public static function adShowing(_arg1:Object):void{
_arg1.origFrameRate = _arg1.stage.frameRate;
_arg1.stage.frameRate = 30;
}
public static function getValue(_arg1:Object, _arg2:String):Object{
var _local3:Array;
var _local4:Number;
_local3 = _arg2.split(".");
_local4 = 0;
while (_local4 < (_local3.length - 1)) {
if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local3[_local4]];
_local4++;
};
return (_arg1[_local3[_local4]]);
}
public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{
var _local4:Object;
var _local5:Object;
switch (_arg3.id){
case "setValue":
MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value);
break;
case "getValue":
_local4 = MochiAd.getValue(_arg1, _arg3.objectName);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4);
break;
case "runMethod":
_local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5);
break;
};
}
public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{
var _local4:Array;
var _local5:Number;
_local4 = _arg2.split(".");
_local5 = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return;
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
_arg1[_local4[_local5]] = _arg3;
}
public static function showPreGameAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_msec:Number;
var ad_timeout:Number;
var fadeout_time:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var bar:MovieClip;
var bar_w:Number;
var bar_color:Number;
var bar_background:Number;
var bar_outline:Number;
var backing_mc:MovieClip;
var backing:Object;
var inside_mc:MovieClip;
var inside:Object;
var outline_mc:MovieClip;
var outline:Object;
var complete:Boolean;
var unloaded:Boolean;
var progress:Number;
var f:Function;
var sendHostProgress:Boolean;
var fn:Function;
var r:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
}, 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;
ad_msec = 11000;
ad_timeout = options.ad_timeout;
if (options.skip){
ad_timeout = 0;
};
delete options.ad_timeout;
fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
var fn:Function;
MochiAd._cleanup(mc);
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.x = (w * -0.5);
chk.y = (h * -0.5);
bar = createEmptyMovieClip(chk, "_mochiad_bar", 4);
if (options.no_progress_bar){
bar.visible = false;
delete options.no_progress_bar;
} else {
bar.x = (10 + options.bar_offset);
bar.y = (h - 20);
};
bar_w = ((w - bar.x) - 10);
bar_color = options.color;
delete options.color;
bar_background = options.background;
delete options.background;
bar_outline = options.outline;
delete options.outline;
backing_mc = createEmptyMovieClip(bar, "_outline", 1);
backing = backing_mc.graphics;
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo(bar_w, 0);
backing.lineTo(bar_w, 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
inside_mc = createEmptyMovieClip(bar, "_inside", 2);
inside = inside_mc.graphics;
inside.beginFill(bar_color);
inside.moveTo(0, 0);
inside.lineTo(bar_w, 0);
inside.lineTo(bar_w, 10);
inside.lineTo(0, 10);
inside.lineTo(0, 0);
inside.endFill();
inside_mc.scaleX = 0;
outline_mc = createEmptyMovieClip(bar, "_outline", 3);
outline = outline_mc.graphics;
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo(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;
_local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
complete = false;
unloaded = false;
progress = Math.min(1, options.progress_override(clip));
f = 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;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = _arg1;
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
mc.rpcTestFn = function (_arg1:String):Object{
return (_arg1);
};
sendHostProgress = false;
mc.sendHostLoadProgress = function (_arg1:String):void{
sendHostProgress = true;
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Object;
var _local3:Number;
var _local4:Boolean;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Object;
var _local11:Number;
var _local12:Number;
if (((!(this.parent)) || (!(this.parent.parent)))){
delete this["onEnterFrame"];
return;
};
_local1 = this.parent.parent.root;
_local2 = this.parent._mochiad_ctr;
_local3 = (getTimer() - this.started);
_local4 = false;
_local5 = _local1.loaderInfo.bytesTotal;
_local6 = _local1.loaderInfo.bytesLoaded;
_local7 = Math.min(1, options.progress_override(_local1));
if (_local7 == 1){
complete = true;
};
if (complete){
_local6 = Math.max(1, _local6);
_local5 = _local6;
};
_local8 = ((100 * _local6) / _local5);
if (!isNaN(_local7)){
_local8 = (100 * _local7);
};
_local9 = ((100 * _local3) / chk.ad_msec);
_local10 = this._mochiad_bar._inside;
_local11 = 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{
MochiAd.showPreGameAd(_arg1);
}
public static function showTimedAd(_arg1:Object):void{
MochiAd.showInterLevelAd(_arg1);
}
public static function doOnEnterFrame(_arg1:MovieClip):void{
var f:Function;
var mc = _arg1;
f = function (_arg1:Object):void{
if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){
mc.onEnterFrame();
} else {
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package mochi.as3
Section 70
//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"))))){
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"))))){
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 71
//MochiDigits (mochi.as3.MochiDigits)
package mochi.as3 {
public final class MochiDigits {
private var Sibling:MochiDigits;
private var Fragment:Number;
private var Encoder:Number;
public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{
Encoder = 0;
setValue(_arg1, _arg2);
}
public function set value(_arg1:Number):void{
setValue(_arg1);
}
public function reencode():void{
var _local1:uint;
_local1 = int((2147483647 * Math.random()));
Fragment = (Fragment ^ (_local1 ^ Encoder));
Encoder = _local1;
}
public function toString():String{
var _local1:String;
_local1 = String.fromCharCode((Fragment ^ Encoder));
if (Sibling != null){
_local1 = (_local1 + Sibling.toString());
};
return (_local1);
}
public function get value():Number{
return (Number(this.toString()));
}
public function setValue(_arg1:Number=0, _arg2:uint=0):void{
var _local3:String;
_local3 = _arg1.toString();
var _temp1 = _arg2;
_arg2 = (_arg2 + 1);
Fragment = (_local3.charCodeAt(_temp1) ^ Encoder);
if (_arg2 < _local3.length){
Sibling = new MochiDigits(_arg1, _arg2);
} else {
Sibling = null;
};
reencode();
}
public function addValue(_arg1:Number):void{
value = (value + _arg1);
}
}
}//package mochi.as3
Section 72
//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 73
//MochiEvents (mochi.as3.MochiEvents)
package mochi.as3 {
import flash.display.*;
public class MochiEvents {
public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL";
public static const FORMAT_LONG:String = "LongForm";
public static const ALIGN_BOTTOM:String = "ALIGN_B";
public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived";
public static const FORMAT_SHORT:String = "ShortForm";
public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR";
public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR";
public static const ALIGN_TOP:String = "ALIGN_T";
public static const ALIGN_LEFT:String = "ALIGN_L";
public static const ALIGN_RIGHT:String = "ALIGN_R";
public static const ALIGN_TOP_LEFT:String = "ALIGN_TL";
public static const ALIGN_CENTER:String = "ALIGN_C";
private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher();
private static var gameStart:Number;
private static var levelStart:Number;
public static function endPlay():void{
MochiServices.send("events_clearRoundID", null, null, null);
}
public static function addEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.addEventListener(_arg1, _arg2);
}
public static function trackEvent(_arg1:String, _arg2=null):void{
MochiServices.send("events_trackEvent", {tag:_arg1, value:_arg2}, null, null);
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.removeEventListener(_arg1, _arg2);
}
public static function startSession(_arg1:String):void{
MochiServices.send("events_beginSession", {achievementID:_arg1}, null, null);
}
public static function triggerEvent(_arg1:String, _arg2:Object):void{
_dispatcher.triggerEvent(_arg1, _arg2);
}
public static function setNotifications(_arg1:MovieClip, _arg2:Object):void{
var _local3:Object;
var _local4:Object;
_local3 = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
_local3.clip = _arg1;
MochiServices.send("events_setNotifications", _local3, null, null);
}
public static function getVersion():String{
return (MochiServices.getVersion());
}
public static function startPlay(_arg1:String="gameplay"):void{
MochiServices.send("events_setRoundID", {tag:String(_arg1)}, null, null);
}
}
}//package mochi.as3
Section 74
//MochiInventory (mochi.as3.MochiInventory)
package mochi.as3 {
import flash.events.*;
import flash.utils.*;
public dynamic class MochiInventory extends Proxy {
private var _timer:Timer;
private var _names:Array;
private var _consumableProperties:Object;
private var _syncID:Number;
private var _storeSync:Object;
private var _outstandingID:Number;
private var _syncPending:Boolean;
public static const READY:String = "InvReady";
public static const ERROR:String = "Error";
public static const IO_ERROR:String = "IoError";
private static const KEY_SALT:String = " syncMaint";
public static const WRITTEN:String = "InvWritten";
public static const NOT_READY:String = "InvNotReady";
public static const VALUE_ERROR:String = "InvValueError";
private static const CONSUMER_KEY:String = "MochiConsumables";
private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher();
public function MochiInventory():void{
MochiCoins.addEventListener(MochiCoins.ITEM_OWNED, itemOwned);
MochiCoins.addEventListener(MochiCoins.ITEM_NEW, newItems);
MochiSocial.addEventListener(MochiSocial.LOGGED_IN, loggedIn);
MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, loggedOut);
_storeSync = new Object();
_syncPending = false;
_outstandingID = 0;
_syncID = 0;
_timer = new Timer(1000);
_timer.addEventListener(TimerEvent.TIMER, sync);
_timer.start();
if (MochiSocial.loggedIn){
loggedIn();
} else {
loggedOut();
};
}
private function newItems(_arg1:Object):void{
if (!this[(_arg1.id + KEY_SALT)]){
this[(_arg1.id + KEY_SALT)] = 0;
};
if (!this[_arg1.id]){
this[_arg1.id] = 0;
};
this[(_arg1.id + KEY_SALT)] = (this[(_arg1.id + KEY_SALT)] + _arg1.count);
this[_arg1.id] = (this[_arg1.id] + _arg1.count);
if (_arg1.privateProperties.consumable){
if (!this[_arg1.privateProperties.tag]){
this[_arg1.privateProperties.tag] = 0;
};
this[_arg1.privateProperties.tag] = (this[_arg1.privateProperties.tag] + (_arg1.privateProperties.inc * _arg1.count));
};
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){
if (_consumableProperties == null){
triggerEvent(ERROR, {type:NOT_READY});
return (-1);
};
if (_consumableProperties[_arg1]){
return (MochiDigits(_consumableProperties[_arg1]).value);
};
return (undefined);
}
public function release():void{
MochiCoins.removeEventListener(MochiCoins.ITEM_NEW, newItems);
MochiSocial.removeEventListener(MochiSocial.LOGGED_IN, loggedIn);
MochiSocial.removeEventListener(MochiSocial.LOGGED_OUT, loggedOut);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(_arg1):Boolean{
if (_consumableProperties == null){
triggerEvent(ERROR, {type:NOT_READY});
return (false);
};
if (_consumableProperties[_arg1] == undefined){
return (false);
};
return (true);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(_arg1:int):int{
return (((_arg1)>=_names.length) ? 0 : (_arg1 + 1));
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{
var _local3:MochiDigits;
if (_consumableProperties == null){
triggerEvent(ERROR, {type:NOT_READY});
return;
};
if (!(_arg2 is Number)){
triggerEvent(ERROR, {type:VALUE_ERROR, error:"Invalid type", arg:_arg2});
return;
};
if (_consumableProperties[_arg1]){
_local3 = MochiDigits(_consumableProperties[_arg1]);
if (_local3.value == _arg2){
return;
};
_local3.value = _arg2;
} else {
_names.push(_arg1);
_consumableProperties[_arg1] = new MochiDigits(_arg2);
};
_syncID++;
}
private function sync(_arg1:Event=null):void{
var _local2:Object;
var _local3:String;
if (((_syncPending) || ((_syncID == _outstandingID)))){
return;
};
_outstandingID = _syncID;
_local2 = {};
for (_local3 in _consumableProperties) {
_local2[_local3] = MochiDigits(_consumableProperties[_local3]).value;
};
MochiUserData.put(CONSUMER_KEY, _local2, putConsumableBag);
_syncPending = true;
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(_arg1:int):String{
return (_names[(_arg1 - 1)]);
}
private function loggedIn(_arg1:Object=null):void{
MochiUserData.get(CONSUMER_KEY, getConsumableBag);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function deleteProperty(_arg1):Boolean{
if (!_consumableProperties[_arg1]){
return (false);
};
_names.splice(_names.indexOf(_arg1), 1);
delete _consumableProperties[_arg1];
return (true);
}
private function itemOwned(_arg1:Object):void{
_storeSync[_arg1.id] = {properties:_arg1.properties, count:_arg1.count};
}
private function putConsumableBag(_arg1:MochiUserData):void{
_syncPending = false;
if (_arg1.error){
triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error});
_outstandingID = -1;
};
triggerEvent(WRITTEN, {});
}
private function getConsumableBag(_arg1:MochiUserData):void{
var _local2:String;
var _local3:Number;
if (_arg1.error){
triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error});
return;
};
_consumableProperties = {};
_names = new Array();
if (_arg1.data){
for (_local2 in _arg1.data) {
_names.push(_local2);
_consumableProperties[_local2] = new MochiDigits(_arg1.data[_local2]);
};
};
for (_local2 in _storeSync) {
_local3 = _storeSync[_local2].count;
if (_consumableProperties[(_local2 + KEY_SALT)]){
_local3 = (_local3 - _consumableProperties[_local2]);
};
if (_local3 == 0){
} else {
newItems({id:_local2, count:_local3, properties:_storeSync[_local2].properties});
};
};
triggerEvent(READY, {});
}
private function loggedOut(_arg1:Object=null):void{
_consumableProperties = null;
}
public static function triggerEvent(_arg1:String, _arg2:Object):void{
_dispatcher.triggerEvent(_arg1, _arg2);
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.removeEventListener(_arg1, _arg2);
}
public static function addEventListener(_arg1:String, _arg2:Function):void{
_dispatcher.addEventListener(_arg1, _arg2);
}
}
}//package mochi.as3
Section 75
//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)){
} else {
if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){
} else {
if (Math.floor(n) != n){
};
options.score = n;
};
};
};
if (options.onDisplay != null){
options.onDisplay();
} else {
if (MochiServices.clip != null){
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
//unresolved jump
};
};
};
} else {
options = {};
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.stop();
//unresolved jump
};
};
if (options.onClose != null){
onCloseHandler = options.onClose;
} else {
onCloseHandler = function ():void{
if ((MochiServices.clip is MovieClip)){
MochiServices.clip.play();
//unresolved jump
};
};
};
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);
MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose);
}
public static function closeLeaderboard():void{
MochiServices.send("scores_closeLeaderboard");
}
public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{
MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2);
}
public static function requestList(_arg1:Object, _arg2:Object=null):void{
MochiServices.send("scores_requestList", null, _arg1, _arg2);
}
public static function scoresArrayToObjects(_arg1:Object):Object{
var _local2:Object;
var _local3:Number;
var _local4:Number;
var _local5:Object;
var _local6:Object;
var _local7:String;
var _local8:String;
_local2 = {};
for (_local7 in _arg1) {
if (typeof(_arg1[_local7]) == "object"){
if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){
_local2[_local7] = [];
_local5 = _arg1[_local7];
_local4 = 0;
while (_local4 < _local5.rows.length) {
_local6 = {};
_local3 = 0;
while (_local3 < _local5.cols.length) {
_local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3];
_local3++;
};
_local2[_local7].push(_local6);
_local4++;
};
} else {
_local2[_local7] = {};
for (_local8 in _arg1[_local7]) {
_local2[_local7][_local8] = _arg1[_local7][_local8];
};
};
} else {
_local2[_local7] = _arg1[_local7];
};
};
return (_local2);
}
public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{
_arg1 = Number(_arg1);
if (isNaN(_arg1)){
} else {
if ((((_arg1 == Number.NEGATIVE_INFINITY)) || ((_arg1 == Number.POSITIVE_INFINITY)))){
} else {
if (Math.floor(_arg1) != _arg1){
};
_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 76
//MochiServices (mochi.as3.MochiServices)
package mochi.as3 {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
import flash.geom.*;
public class MochiServices {
private static var _container:Object;
private static var _connected:Boolean = false;
private static var _queue:Array;
private static var _swfVersion:String;
private static var _preserved:Object;
public static var netupAttempted:Boolean = false;
private static var _sendChannel:LocalConnection;
public static var servicesSync:MochiSync = new MochiSync();
private static var _nextCallbackID:Number;
private static var _clip:MovieClip;
private static var _id:String;
private static var _services:String = "services.swf";
private static var _servURL:String = "http://www.mochiads.com/static/lib/services/";
public static var widget:Boolean = false;
private static var _timer:Timer;
private static var _sendChannelName:String;
private static var _loader:Loader;
private static var _callbacks:Object;
private static var _connecting:Boolean = false;
private static var _mochiLocalConnection:MovieClip;
private static var _listenChannelName:String = "__ms_";
public static var onError:Object;
public static var netup:Boolean = true;
private static var _mochiLC:String = "MochiLC.swf";
public static function isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function get connected():Boolean{
return (_connected);
}
private static function onReceive(_arg1:Object):void{
var cb:String;
var cblst:Object;
var method:*;
var methodName:String;
var obj:Object;
var pkg = _arg1;
cb = pkg.callbackID;
cblst = _callbacks[cb];
if (!cblst){
return;
};
method = cblst.callbackMethod;
methodName = "";
obj = cblst.callbackObject;
if (((obj) && ((typeof(method) == "string")))){
methodName = method;
if (obj[method] != null){
method = obj[method];
//unresolved jump
};
};
if (method != undefined){
try {
method.apply(obj, pkg.args);
} catch(error:Error) {
};
} else {
if (obj != null){
try {
obj(pkg.args);
} catch(error:Error) {
};
};
};
delete _callbacks[cb];
}
public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{
if (_connected){
_mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_nextCallbackID});
} else {
if ((((_clip == null)) || (!(_connecting)))){
handleError(_arg2, _arg3, _arg4);
flush(true);
return;
};
_queue.push({methodName:_arg1, args:_arg2, callbackID:_nextCallbackID});
};
if (_clip != null){
if (_callbacks != null){
_callbacks[_nextCallbackID] = {callbackObject:_arg3, callbackMethod:_arg4};
_nextCallbackID++;
};
};
}
private static function init(_arg1:String, _arg2:Object):void{
_id = _arg1;
if (_arg2 != null){
_container = _arg2;
loadCommunicator(_arg1, _container);
};
}
public static function get childClip():Object{
return (_clip);
}
private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{
var _local3:Array;
var _local4:int;
var _local5:Array;
var _local6:Array;
var _local7:MovieClip;
var _local8:LocalConnection;
var _local9:String;
var _local10:ByteArray;
var _local11:ByteArray;
var _local12:uint;
var _local13:uint;
var _local14:Loader;
_local3 = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23];
_local5 = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3];
_local6 = [0, 64, 0, 0, 0];
_local7 = new MovieClip();
_local8 = new LocalConnection();
_local9 = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time));
_local8 = new LocalConnection();
_local7.lc = _local8;
_local7.click = _arg2;
_local8.client = _local7;
_local8.connect(_local9);
_local10 = new ByteArray();
_local11 = new ByteArray();
_local11.endian = Endian.LITTLE_ENDIAN;
_local11.writeShort(1);
_local11.writeUTFBytes(((_arg1 + " ") + _local9));
_local11.writeByte(0);
_local12 = ((_local3.length + _local11.length) + 4);
_local13 = (_local12 + 35);
_local10.endian = Endian.LITTLE_ENDIAN;
_local10.writeUTFBytes("FWS");
_local10.writeByte(8);
_local10.writeUnsignedInt(_local13);
for each (_local4 in _local5) {
_local10.writeByte(_local4);
};
_local10.writeUnsignedInt(_local12);
_local10.writeByte(136);
_local10.writeShort(_local11.length);
_local10.writeBytes(_local11);
for each (_local4 in _local3) {
_local10.writeByte(_local4);
};
for each (_local4 in _local6) {
_local10.writeByte(_local4);
};
_local14 = new Loader();
_local14.loadBytes(_local10);
_local7.addChild(_local14);
return (_local7);
}
public static function stayOnTop():void{
_container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true);
if (_clip != null){
_clip.visible = true;
};
}
public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{
var vars:Object;
var avm1Click:DisplayObject;
var s:String;
var i:Number;
var x:String;
var req:URLRequest;
var loader:Loader;
var setURL:Function;
var err:Function;
var complete:Function;
var url = _arg1;
var burl = _arg2;
var btn = _arg3;
var onClick = _arg4;
vars = new Object();
vars["mav"] = getVersion();
vars["swfv"] = "9";
vars["swfurl"] = btn.loaderInfo.loaderURL;
vars["fv"] = Capabilities.version;
vars["os"] = Capabilities.os;
vars["lang"] = Capabilities.language;
vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY);
s = "?";
i = 0;
for (x in vars) {
if (i != 0){
s = (s + "&");
};
i = (i + 1);
s = (((s + x) + "=") + escape(vars[x]));
};
req = new URLRequest("http://x.mochiads.com/linkping.swf");
loader = new Loader();
setURL = function (_arg1:String):void{
var _local2:Rectangle;
if (avm1Click){
btn.removeChild(avm1Click);
};
avm1Click = clickMovie(_arg1, onClick);
_local2 = btn.getBounds(btn);
btn.addChild(avm1Click);
avm1Click.x = _local2.x;
avm1Click.y = _local2.y;
avm1Click.scaleX = (0.01 * _local2.width);
avm1Click.scaleY = (0.01 * _local2.height);
};
err = function (_arg1:Object):void{
netup = false;
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
setURL(burl);
};
complete = function (_arg1:Object):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
};
if (netup){
setURL((url + s));
} else {
setURL(burl);
};
if (!((netupAttempted) || (_connected))){
netupAttempted = true;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);
loader.load(req);
};
}
public static function disconnect():void{
if (((_connected) || (_connecting))){
if (_clip != null){
if (_clip.parent != null){
if ((_clip.parent is Sprite)){
Sprite(_clip.parent).removeChild(_clip);
_clip = null;
};
};
};
_connecting = (_connected = false);
flush(true);
try {
_mochiLocalConnection.close();
} catch(error:Error) {
};
};
if (_timer != null){
try {
_timer.stop();
} catch(error:Error) {
};
};
}
public static function allowDomains(_arg1:String):String{
var _local2:String;
if (Security.sandboxType != "application"){
Security.allowDomain("*");
Security.allowInsecureDomain("*");
};
if (_arg1.indexOf("http://") != -1){
_local2 = _arg1.split("/")[2].split(":")[0];
if (Security.sandboxType != "application"){
Security.allowDomain(_local2);
Security.allowInsecureDomain(_local2);
};
};
return (_local2);
}
public static function getVersion():String{
return ("3.8 as3");
}
public static function doClose():void{
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
}
public static function warnID(_arg1:String, _arg2:Boolean):void{
var _local3:Number;
_arg1 = _arg1.toLowerCase();
if (_arg1.length != 16){
return;
};
if (_arg1 == "1e113c7239048b3f"){
if (_arg2){
//unresolved jump
};
return;
} else {
if (_arg1 == "84993a1de4031cd8"){
if (_arg2){
//unresolved jump
};
return;
};
};
_local3 = 0;
while (_local3 < _arg1.length) {
switch (_arg1.charAt(_local3)){
case "0":
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
case "a":
case "b":
case "c":
case "d":
case "e":
case "f":
break;
default:
return;
};
_local3++;
};
}
private static function flush(_arg1:Boolean):void{
var _local2:Object;
var _local3:Object;
if (((_clip) && (_queue))){
while (_queue.length > 0) {
_local2 = _queue.shift();
_local3 = null;
if (_local2 != null){
if (_local2.callbackID != null){
_local3 = _callbacks[_local2.callbackID];
};
delete _callbacks[_local2.callbackID];
if (((_arg1) && (!((_local3 == null))))){
handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod);
};
};
};
};
}
public static function get id():String{
return (_id);
}
private static function onEvent(_arg1:Object):void{
var _local2:String;
var _local3:String;
_local2 = _arg1.target;
_local3 = _arg1.event;
switch (_local2){
case "events":
MochiEvents.triggerEvent(_arg1.event, _arg1.args);
break;
case "coins":
MochiCoins.triggerEvent(_arg1.event, _arg1.args);
break;
case "sync":
servicesSync.triggerEvent(_arg1.event, _arg1.args);
break;
};
}
private static function urlOptions(_arg1:Object):Object{
var _local2:Object;
var _local3:String;
var _local4:Array;
var _local5:Number;
var _local6:Array;
_local2 = {};
if (_arg1.stage){
_local3 = _arg1.stage.loaderInfo.parameters.mochiad_options;
} else {
_local3 = _arg1.loaderInfo.parameters.mochiad_options;
};
if (_local3){
_local4 = _local3.split("&");
_local5 = 0;
while (_local5 < _local4.length) {
_local6 = _local4[_local5].split("=");
_local2[unescape(_local6[0])] = unescape(_local6[1]);
_local5++;
};
};
return (_local2);
}
public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{
if (_clip.parent){
_clip.parent.removeChild(_clip);
};
if (_arg1 != null){
if ((_arg1 is DisplayObjectContainer)){
_container = _arg1;
};
};
if (_arg2){
if ((_container is DisplayObjectContainer)){
DisplayObjectContainer(_container).addChild(_clip);
};
};
}
private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{
var args = _arg1;
var callbackObject = _arg2;
var callbackMethod = _arg3;
if (args != null){
if (args.onError != null){
args.onError.apply(null, ["NotConnected"]);
};
if (((!((args.options == null))) && (!((args.options.onError == null))))){
args.options.onError.apply(null, ["NotConnected"]);
};
};
if (callbackMethod != null){
args = {};
args.error = true;
args.errorCode = "NotConnected";
if (((!((callbackObject == null))) && ((callbackMethod is String)))){
try {
var _local5 = callbackObject;
_local5[callbackMethod](args);
} catch(error:Error) {
};
} else {
if (callbackMethod != null){
try {
callbackMethod.apply(args);
} catch(error:Error) {
};
};
};
};
}
private static function loadError(_arg1:Object):void{
_clip._mochiad_ctr_failed = true;
MochiServices.disconnect();
MochiServices.onError("IOError");
}
private static function initComChannels():void{
if (!_connected){
_connecting = false;
_connected = true;
_mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, version:getVersion(), parentURL:_container.loaderInfo.loaderURL});
_clip.onReceive = onReceive;
_clip.onEvent = onEvent;
_clip.onError = function ():void{
MochiServices.onError("IOError");
};
while (_queue.length > 0) {
_mochiLocalConnection.send(_sendChannelName, "onReceive", _queue.shift());
};
};
}
private static function loadLCBridge(_arg1:Object):void{
var loader:Loader;
var mochiLCURL:String;
var req:URLRequest;
var complete:Function;
var clip = _arg1;
loader = new Loader();
mochiLCURL = (_servURL + _mochiLC);
req = new URLRequest(mochiLCURL);
complete = function (_arg1:Object):void{
_mochiLocalConnection = MovieClip(loader.content);
listen();
};
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError);
loader.load(req);
clip.addChild(loader);
}
private static function listen():void{
_mochiLocalConnection.connect(_listenChannelName);
_clip.handshake = function (_arg1:Object):void{
MochiServices.comChannelName = _arg1.newChannel;
};
}
public static function get clip():Object{
return (_container);
}
public static function set comChannelName(_arg1:String):void{
if (_arg1 != null){
if (_arg1.length > 3){
_sendChannelName = (_arg1 + "_fromgame");
initComChannels();
};
};
}
private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{
var _local3:String;
var _local4:URLRequest;
var _local5:URLVariables;
if (_clip != null){
return (_clip);
};
if (!MochiServices.isNetworkAvailable()){
return (null);
};
if (urlOptions(_arg2).servURL){
_servURL = urlOptions(_arg2).servURL;
};
_local3 = (_servURL + _services);
if (urlOptions(_arg2).servicesURL){
_local3 = urlOptions(_arg2).servicesURL;
};
_listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999))));
MochiServices.allowDomains(_local3);
_clip = new MovieClip();
loadLCBridge(_clip);
_loader = new Loader();
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError);
_local4 = new URLRequest(_local3);
_local5 = new URLVariables();
_local5.listenLC = _listenChannelName;
_local5.mochiad_options = _arg2.loaderInfo.parameters.mochiad_options;
_local5.api_version = getVersion();
if (widget){
_local5.widget = true;
};
_local4.data = _local5;
_loader.load(_local4);
_clip.addChild(_loader);
_sendChannel = new LocalConnection();
_queue = [];
_nextCallbackID = 0;
_callbacks = {};
_timer = new Timer(10000, 1);
_timer.addEventListener(TimerEvent.TIMER, connectWait);
_timer.start();
return (_clip);
}
public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{
var id = _arg1;
var clip = _arg2;
var onError = _arg3;
warnID(id, false);
if ((clip is DisplayObject)){
if (clip.stage == null){
};
if (((!(_connected)) && ((_clip == null)))){
_connecting = true;
init(id, clip);
};
//unresolved jump
};
if (onError != null){
MochiServices.onError = onError;
} else {
if (MochiServices.onError == null){
MochiServices.onError = function (_arg1:String):void{
};
};
};
}
public static function updateCopy(_arg1:Object):void{
MochiServices.send("coins_updateCopy", _arg1, null, null);
}
public static function bringToTop(_arg1:Event=null):void{
var e = _arg1;
if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){
try {
if (MochiServices.clip.numChildren > 1){
MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1));
};
} catch(errorObject:Error) {
_container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop);
};
};
}
public static function connectWait(_arg1:TimerEvent):void{
if (!_connected){
_clip._mochiad_ctr_failed = true;
MochiServices.disconnect();
MochiServices.onError("IOError");
};
}
}
}//package mochi.as3
Section 77
//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 78
//MochiSync (mochi.as3.MochiSync)
package mochi.as3 {
import flash.utils.*;
public dynamic class MochiSync extends Proxy {
private var _syncContainer:Object;
public static var SYNC_PROPERTY:String = "UpdateProperty";
public static var SYNC_REQUEST:String = "SyncRequest";
public function MochiSync():void{
_syncContainer = {};
}
public function triggerEvent(_arg1:String, _arg2:Object):void{
switch (_arg1){
case SYNC_REQUEST:
MochiServices.send("sync_syncronize", _syncContainer);
break;
case SYNC_PROPERTY:
_syncContainer[_arg2.name] = _arg2.value;
break;
};
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){
return (_syncContainer[_arg1]);
}
override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{
var _local3:String;
if (_syncContainer[_arg1] == _arg2){
return;
};
_local3 = _arg1.toString();
_syncContainer[_local3] = _arg2;
MochiServices.send("sync_propUpdate", {name:_local3, value:_arg2});
}
}
}//package mochi.as3
Section 79
//MochiUserData (mochi.as3.MochiUserData)
package mochi.as3 {
import flash.events.*;
import flash.utils.*;
import flash.net.*;
public class MochiUserData extends EventDispatcher {
public var callback:Function;// = null
public var error:Event;// = null
public var key:String;// = null
public var operation:String;// = null
public var data;// = null
public var _loader:URLLoader;
public function MochiUserData(_arg1:String="", _arg2:Function=null){
key = null;
data = null;
error = null;
operation = null;
callback = null;
super();
this.key = _arg1;
this.callback = _arg2;
}
public function securityErrorHandler(_arg1:SecurityErrorEvent):void{
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + _arg1.toString())));
}
public function putEvent(_arg1):void{
request("put", serialize(_arg1));
}
public function request(_arg1:String, _arg2:ByteArray):void{
var api_url:String;
var api_token:String;
var args:URLVariables;
var req:URLRequest;
var _operation = _arg1;
var _data = _arg2;
operation = _operation;
api_url = MochiSocial.getAPIURL();
api_token = MochiSocial.getAPIToken();
if ((((api_url == null)) || ((api_token == null)))){
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, "not logged in"));
return;
};
_loader = new URLLoader();
args = new URLVariables();
args.op = _operation;
args.key = key;
req = new URLRequest((((MochiSocial.getAPIURL() + "/") + "MochiUserData?") + args.toString()));
req.method = URLRequestMethod.POST;
req.contentType = "application/x-mochi-userdata";
req.requestHeaders = [new URLRequestHeader("x-mochi-services-version", MochiServices.getVersion()), new URLRequestHeader("x-mochi-api-token", api_token)];
req.data = _data;
_loader.dataFormat = URLLoaderDataFormat.BINARY;
_loader.addEventListener(Event.COMPLETE, completeHandler);
_loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
_loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
try {
_loader.load(req);
} catch(e:SecurityError) {
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + e.toString())));
};
}
public function completeHandler(_arg1:Event):void{
var event = _arg1;
try {
if (_loader.data.length){
data = deserialize(_loader.data);
} else {
data = null;
};
} catch(e:Error) {
errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("deserialize error: " + e.toString())));
return;
};
if (callback != null){
performCallback();
} else {
dispatchEvent(event);
};
close();
}
public function performCallback():void{
try {
callback(this);
} catch(e:Error) {
};
}
public function serialize(_arg1):ByteArray{
var _local2:ByteArray;
_local2 = new ByteArray();
_local2.objectEncoding = ObjectEncoding.AMF3;
_local2.writeObject(_arg1);
_local2.compress();
return (_local2);
}
public function errorHandler(_arg1:IOErrorEvent):void{
data = null;
error = _arg1;
if (callback != null){
performCallback();
} else {
dispatchEvent(_arg1);
};
close();
}
public function getEvent():void{
request("get", serialize(null));
}
override public function toString():String{
return ((((((((("[MochiUserData operation=" + operation) + " key=\"") + key) + "\" data=") + data) + " error=\"") + error) + "\"]"));
}
public function close():void{
if (_loader){
_loader.removeEventListener(Event.COMPLETE, completeHandler);
_loader.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler);
_loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
_loader.close();
_loader = null;
};
error = null;
callback = null;
}
public function deserialize(_arg1:ByteArray){
_arg1.objectEncoding = ObjectEncoding.AMF3;
_arg1.uncompress();
return (_arg1.readObject());
}
public static function get(_arg1:String, _arg2:Function):void{
var _local3:MochiUserData;
_local3 = new MochiUserData(_arg1, _arg2);
_local3.getEvent();
}
public static function put(_arg1:String, _arg2, _arg3:Function):void{
var _local4:MochiUserData;
_local4 = new MochiUserData(_arg1, _arg3);
_local4.putEvent(_arg2);
}
}
}//package mochi.as3
Section 80
//biggem_src_22 (treasure_hunt_fla.biggem_src_22)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class biggem_src_22 extends MovieClip {
public var bbox:MovieClip;
public function biggem_src_22(){
addFrameScript(0, frame1, 11, frame12);
}
function frame12(){
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 81
//box_7 (treasure_hunt_fla.box_7)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class box_7 extends MovieClip {
public function box_7(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
delete this.onEnterFrame;
}
}
}//package treasure_hunt_fla
Section 82
//box4triggers_197 (treasure_hunt_fla.box4triggers_197)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class box4triggers_197 extends MovieClip {
public function box4triggers_197(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
delete this.onEnterFrame;
}
}
}//package treasure_hunt_fla
Section 83
//cavebg003_src_324 (treasure_hunt_fla.cavebg003_src_324)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class cavebg003_src_324 extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function cavebg003_src_324(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 84
//darkwing_sourcecopy_42 (treasure_hunt_fla.darkwing_sourcecopy_42)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class darkwing_sourcecopy_42 extends MovieClip {
public var bbox:MovieClip;
public var hook_box:MovieClip;
public var draw_frame:MovieClip;
}
}//package treasure_hunt_fla
Section 85
//diagem_src_19 (treasure_hunt_fla.diagem_src_19)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class diagem_src_19 extends MovieClip {
public var bbox:MovieClip;
public function diagem_src_19(){
addFrameScript(0, frame1, 11, frame12);
}
function frame12(){
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 86
//earth004_src_177 (treasure_hunt_fla.earth004_src_177)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class earth004_src_177 extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function earth004_src_177(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 87
//engine_window_9 (treasure_hunt_fla.engine_window_9)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class engine_window_9 extends MovieClip {
public function engine_window_9(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 88
//goblin_sourcecopy_40 (treasure_hunt_fla.goblin_sourcecopy_40)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class goblin_sourcecopy_40 extends MovieClip {
public var bbox:MovieClip;
public var hook_box:MovieClip;
public var draw_frame:MovieClip;
}
}//package treasure_hunt_fla
Section 89
//groundBoss_src_307 (treasure_hunt_fla.groundBoss_src_307)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class groundBoss_src_307 extends MovieClip {
public var bbox:MovieClip;
public var levelbottom:MovieClip;
public var draw_frame:MovieClip;
public var solid:MovieClip;
public var grid_cell:MovieClip;
public var grid_bounds:MovieClip;
public function groundBoss_src_307(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 90
//groundUP2_src_326 (treasure_hunt_fla.groundUP2_src_326)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class groundUP2_src_326 extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public var solid:MovieClip;
public var grid_cell:MovieClip;
public var grid_bounds:MovieClip;
public function groundUP2_src_326(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 91
//groundWaterfalls_src_293 (treasure_hunt_fla.groundWaterfalls_src_293)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class groundWaterfalls_src_293 extends MovieClip {
public var bbox:MovieClip;
public var levelbottom:MovieClip;
public var draw_frame:MovieClip;
public var solid:MovieClip;
public var grid_cell:MovieClip;
public var grid_bounds:MovieClip;
public function groundWaterfalls_src_293(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 92
//hero_onlevelchange_139 (treasure_hunt_fla.hero_onlevelchange_139)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class hero_onlevelchange_139 extends MovieClip {
public function hero_onlevelchange_139(){
addFrameScript(4, frame5, 14, frame15);
}
function frame15(){
MovieClip(parent.parent).$engine.$sound.Play(2);
}
function frame5(){
MovieClip(parent.parent).$engine.$sound.Play(2);
}
}
}//package treasure_hunt_fla
Section 93
//Kongintro30fps_345 (treasure_hunt_fla.Kongintro30fps_345)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Kongintro30fps_345 extends MovieClip {
public var _button:SimpleButton;
public var request2:URLRequest;
public function Kongintro30fps_345(){
addFrameScript(0, frame1, 1, frame2, 179, frame180);
}
public function gotoKong(_arg1:MouseEvent):void{
navigateToURL(request2, "_blank");
}
function frame180(){
MovieClip(parent).kong_done();
}
function frame1(){
stop();
}
function frame2(){
this._button.useHandCursor = true;
this._button.addEventListener(MouseEvent.MOUSE_DOWN, gotoKong);
request2 = new URLRequest("http://www.kongregate.com/?gamereferral=treasurehunt");
}
}
}//package treasure_hunt_fla
Section 94
//LEVEL_EXIT_287 (treasure_hunt_fla.LEVEL_EXIT_287)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class LEVEL_EXIT_287 extends MovieClip {
public var bbox:MovieClip;
public function LEVEL_EXIT_287(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateTrigger(name, this.getChildAt(0), this.x, this.y);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
};
obj.$collide = function (_arg1):void{
switch (_arg1.GetType()){
case GameConstants.OBJTYPE_PLAYER:
_arg1.$game.$MENU.gotoAndPlay("NextLevel");
_arg1.$game.$engine.HideFPS();
break;
};
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 95
//level_help_342 (treasure_hunt_fla.level_help_342)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class level_help_342 extends MovieClip {
public var wr_left:MovieClip;
public var wr_bottom:MovieClip;
public var lift_trig1:MovieClip;
public var StartPoint_0_0:MovieClip;
public var lift_trig0:MovieClip;
public var wr_bounds:MovieClip;
public var wr_right:MovieClip;
public var platform002:MovieClip;
public var wr_top:MovieClip;
public function level_help_342(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function GetLevelTime():Number{
return (30);
}
}
}//package treasure_hunt_fla
Section 96
//level_level1_167 (treasure_hunt_fla.level_level1_167)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class level_level1_167 extends MovieClip {
public var wr_left:MovieClip;
public var w0_0_w1:MovieClip;
public var wr_bottom:MovieClip;
public var StartPoint_0_0:MovieClip;
public var wr_bounds:MovieClip;
public var w1_0_w2:MovieClip;
public var w4_w3_0:MovieClip;
public var w3_0_w4:MovieClip;
public var wr_right:MovieClip;
public var w2_w1_0:MovieClip;
public var wr_top:MovieClip;
public function level_level1_167(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function GetLevelTime():Number{
return (30);
}
}
}//package treasure_hunt_fla
Section 97
//level_level1_easy_334 (treasure_hunt_fla.level_level1_easy_334)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class level_level1_easy_334 extends MovieClip {
public var wr_left:MovieClip;
public var w0_0_w1:MovieClip;
public var wr_bottom:MovieClip;
public var StartPoint_0_0:MovieClip;
public var wr_bounds:MovieClip;
public var w1_0_w2:MovieClip;
public var wr_right:MovieClip;
public var w2_w1_0:MovieClip;
public var wr_top:MovieClip;
public function level_level1_easy_334(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function GetLevelTime():Number{
return (30);
}
}
}//package treasure_hunt_fla
Section 98
//level_level2_easy_335 (treasure_hunt_fla.level_level2_easy_335)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class level_level2_easy_335 extends MovieClip {
public var wr_left:MovieClip;
public var wr_bottom:MovieClip;
public var lift_trig1:MovieClip;
public var StartPoint_0_0:MovieClip;
public var lift_trig0:MovieClip;
public var w1_w0_0:MovieClip;
public var wr_bounds:MovieClip;
public var wr_right:MovieClip;
public var w0_0_w1:MovieClip;
public var wr_top:MovieClip;
public function level_level2_easy_335(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function GetLevelTime():Number{
return (90);
}
}
}//package treasure_hunt_fla
Section 99
//level_level2copy_207 (treasure_hunt_fla.level_level2copy_207)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class level_level2copy_207 extends MovieClip {
public var wr_left:MovieClip;
public var wr_bottom:MovieClip;
public var lift_trig1:MovieClip;
public var StartPoint_0_0:MovieClip;
public var lift_trig0:MovieClip;
public var w1_w0_0:MovieClip;
public var wr_bounds:MovieClip;
public var wr_right:MovieClip;
public var w0_0_w1:MovieClip;
public var wr_top:MovieClip;
public function level_level2copy_207(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function GetLevelTime():Number{
return (90);
}
}
}//package treasure_hunt_fla
Section 100
//level_level3_230 (treasure_hunt_fla.level_level3_230)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class level_level3_230 extends MovieClip {
public var wr_left:MovieClip;
public var wr_bottom:MovieClip;
public var lift_trig1:MovieClip;
public var StartPoint_0_0:MovieClip;
public var lift_trig0:MovieClip;
public var w1_w0_0:MovieClip;
public var wr_bounds:MovieClip;
public var wr_right:MovieClip;
public var w0_0_w1:MovieClip;
public var wr_top:MovieClip;
public function level_level3_230(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function GetLevelTime():Number{
return (90);
}
}
}//package treasure_hunt_fla
Section 101
//level_level3_easy_336 (treasure_hunt_fla.level_level3_easy_336)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class level_level3_easy_336 extends MovieClip {
public var wr_left:MovieClip;
public var wr_bottom:MovieClip;
public var lift_trig1:MovieClip;
public var StartPoint_0_0:MovieClip;
public var lift_trig0:MovieClip;
public var w1_w0_0:MovieClip;
public var wr_bounds:MovieClip;
public var wr_right:MovieClip;
public var w0_0_w1:MovieClip;
public var wr_top:MovieClip;
public function level_level3_easy_336(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function GetLevelTime():Number{
return (90);
}
}
}//package treasure_hunt_fla
Section 102
//level_level4_282 (treasure_hunt_fla.level_level4_282)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class level_level4_282 extends MovieClip {
public var w15_0_w16:MovieClip;
public var w20_w19_0:MovieClip;
public var wr_left:MovieClip;
public var wr_bottom:MovieClip;
public var w1_w2_0:MovieClip;
public var Checkpoint1_0_0:MovieClip;
public var wr_Checkpoint1:MovieClip;
public var w2_w0_0:MovieClip;
public var w5_0_w6:MovieClip;
public var w19_0_w20:MovieClip;
public var w8_w7_0:MovieClip;
public var w9_0_w10:MovieClip;
public var lift_trig1:MovieClip;
public var w7_0_w8:MovieClip;
public var w6_w5_0:MovieClip;
public var w17_0_w18:MovieClip;
public var w13_0_w14:MovieClip;
public var StartPoint_0_0:MovieClip;
public var lift_trig0:MovieClip;
public var w12_w11_0:MovieClip;
public var wr_bounds:MovieClip;
public var w16_w15_0:MovieClip;
public var w14_w13_0:MovieClip;
public var w18_w17_0:MovieClip;
public var w4_w3_0:MovieClip;
public var w10_w9_0:MovieClip;
public var wr_right:MovieClip;
public var w3_0_w4:MovieClip;
public var w11_0_w12:MovieClip;
public var platform001:MovieClip;
public var wr_top:MovieClip;
public var w0_0_w2:MovieClip;
public function level_level4_282(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function GetLevelTime():Number{
return ((60 * 4));
}
}
}//package treasure_hunt_fla
Section 103
//level_level4_easy_338 (treasure_hunt_fla.level_level4_easy_338)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class level_level4_easy_338 extends MovieClip {
public var w15_0_w16:MovieClip;
public var w20_w19_0:MovieClip;
public var wr_left:MovieClip;
public var wr_bottom:MovieClip;
public var w1_w2_0:MovieClip;
public var Checkpoint1_0_0:MovieClip;
public var wr_Checkpoint1:MovieClip;
public var w2_w0_0:MovieClip;
public var w5_0_w6:MovieClip;
public var w19_0_w20:MovieClip;
public var w8_w7_0:MovieClip;
public var w9_0_w10:MovieClip;
public var lift_trig1:MovieClip;
public var w7_0_w8:MovieClip;
public var w6_w5_0:MovieClip;
public var w17_0_w18:MovieClip;
public var w13_0_w14:MovieClip;
public var StartPoint_0_0:MovieClip;
public var lift_trig0:MovieClip;
public var w12_w11_0:MovieClip;
public var wr_bounds:MovieClip;
public var w16_w15_0:MovieClip;
public var w14_w13_0:MovieClip;
public var w18_w17_0:MovieClip;
public var w4_w3_0:MovieClip;
public var w10_w9_0:MovieClip;
public var wr_right:MovieClip;
public var w3_0_w4:MovieClip;
public var w11_0_w12:MovieClip;
public var platform001:MovieClip;
public var wr_top:MovieClip;
public var w0_0_w2:MovieClip;
public function level_level4_easy_338(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function GetLevelTime():Number{
return ((60 * 4));
}
}
}//package treasure_hunt_fla
Section 104
//level_levelBoss_305 (treasure_hunt_fla.level_levelBoss_305)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class level_levelBoss_305 extends MovieClip {
public var wr_left:MovieClip;
public var stone2_0_0:MovieClip;
public var wr_bottom:MovieClip;
public var stonegone_0:MovieClip;
public var stonegone_2:MovieClip;
public var stonegone_3:MovieClip;
public var stonegone_1:MovieClip;
public var exitpoint_0_0:MovieClip;
public var stone3_0_0:MovieClip;
public var stone0_0_0:MovieClip;
public var stone1_0_0:MovieClip;
public var StartPoint_0_0:MovieClip;
public var wr_bounds:MovieClip;
public var w1_0_w2:MovieClip;
public var stone_trig:MovieClip;
public var wr_right:MovieClip;
public var w2_w1_0:MovieClip;
public var wr_top:MovieClip;
public function level_levelBoss_305(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function GetLevelTime():Number{
return (60);
}
}
}//package treasure_hunt_fla
Section 105
//level_levelBoss_easy_340 (treasure_hunt_fla.level_levelBoss_easy_340)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class level_levelBoss_easy_340 extends MovieClip {
public var wr_left:MovieClip;
public var stone2_0_0:MovieClip;
public var wr_bottom:MovieClip;
public var stonegone_0:MovieClip;
public var stonegone_2:MovieClip;
public var stonegone_3:MovieClip;
public var stonegone_1:MovieClip;
public var exitpoint_0_0:MovieClip;
public var stone3_0_0:MovieClip;
public var stone0_0_0:MovieClip;
public var stone1_0_0:MovieClip;
public var StartPoint_0_0:MovieClip;
public var wr_bounds:MovieClip;
public var w1_0_w2:MovieClip;
public var stone_trig:MovieClip;
public var wr_right:MovieClip;
public var w2_w1_0:MovieClip;
public var wr_top:MovieClip;
public function level_levelBoss_easy_340(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function GetLevelTime():Number{
return (60);
}
}
}//package treasure_hunt_fla
Section 106
//level_levelUP_322 (treasure_hunt_fla.level_levelUP_322)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class level_levelUP_322 extends MovieClip {
public var wr_left:MovieClip;
public var wr_bottom:MovieClip;
public var plate003_plate004:MovieClip;
public var Checkpoint1_0_0:MovieClip;
public var wr_Checkpoint1:MovieClip;
public var plate004_plate005:MovieClip;
public var plate005_plate006:MovieClip;
public var plate007_plate008:MovieClip;
public var StartPoint_0_0:MovieClip;
public var plate006_plate007:MovieClip;
public var plate008_plate009:MovieClip;
public var wr_bounds:MovieClip;
public var plate001_plate002:MovieClip;
public var wr_right:MovieClip;
public var platform001:MovieClip;
public var plate002_plate003:MovieClip;
public var wr_top:MovieClip;
public function level_levelUP_322(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function GetLevelTime():Number{
return ((60 * 4));
}
}
}//package treasure_hunt_fla
Section 107
//level_levelUP_easy_341 (treasure_hunt_fla.level_levelUP_easy_341)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class level_levelUP_easy_341 extends MovieClip {
public var wr_left:MovieClip;
public var wr_bottom:MovieClip;
public var plate003_plate004:MovieClip;
public var Checkpoint1_0_0:MovieClip;
public var wr_Checkpoint1:MovieClip;
public var plate004_plate005:MovieClip;
public var plate005_plate006:MovieClip;
public var plate007_plate008:MovieClip;
public var StartPoint_0_0:MovieClip;
public var plate006_plate007:MovieClip;
public var plate008_plate009:MovieClip;
public var wr_bounds:MovieClip;
public var plate001_plate002:MovieClip;
public var wr_right:MovieClip;
public var platform001:MovieClip;
public var plate002_plate003:MovieClip;
public var wr_top:MovieClip;
public function level_levelUP_easy_341(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function GetLevelTime():Number{
return ((60 * 4));
}
}
}//package treasure_hunt_fla
Section 108
//level_mines_247 (treasure_hunt_fla.level_mines_247)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class level_mines_247 extends MovieClip {
public var plate003_plate004:MovieClip;
public var wr_left:MovieClip;
public var wr_bottom:MovieClip;
public var plate006_0:MovieClip;
public var Checkpoint1_0_0:MovieClip;
public var wr_Checkpoint1:MovieClip;
public var wr_Checkpoint2:MovieClip;
public var plate004_plate005:MovieClip;
public var plate005_plate006:MovieClip;
public var StartPoint_0_0:MovieClip;
public var wr_bounds:MovieClip;
public var w14_w13_0:MovieClip;
public var w13_0_w14:MovieClip;
public var Checkpoint2_0_0:MovieClip;
public var plate001_plate002:MovieClip;
public var wr_right:MovieClip;
public var platform001:MovieClip;
public var plate002_plate003:MovieClip;
public var platform002:MovieClip;
public var platform003:MovieClip;
public var wr_top:MovieClip;
public function level_mines_247(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function GetLevelTime():Number{
return (300);
}
}
}//package treasure_hunt_fla
Section 109
//level_mines_easy_337 (treasure_hunt_fla.level_mines_easy_337)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class level_mines_easy_337 extends MovieClip {
public var plate003_plate004:MovieClip;
public var wr_left:MovieClip;
public var wr_bottom:MovieClip;
public var plate006_0:MovieClip;
public var Checkpoint1_0_0:MovieClip;
public var wr_Checkpoint1:MovieClip;
public var wr_Checkpoint2:MovieClip;
public var plate004_plate005:MovieClip;
public var plate005_plate006:MovieClip;
public var StartPoint_0_0:MovieClip;
public var wr_bounds:MovieClip;
public var Checkpoint2_0_0:MovieClip;
public var plate001_plate002:MovieClip;
public var wr_right:MovieClip;
public var platform001:MovieClip;
public var plate002_plate003:MovieClip;
public var platform002:MovieClip;
public var platform003:MovieClip;
public var wr_top:MovieClip;
public function level_mines_easy_337(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function GetLevelTime():Number{
return (300);
}
}
}//package treasure_hunt_fla
Section 110
//level_Waterfalls_291 (treasure_hunt_fla.level_Waterfalls_291)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class level_Waterfalls_291 extends MovieClip {
public var wr_left:MovieClip;
public var wr_bottom:MovieClip;
public var Checkpoint1_0_0:MovieClip;
public var wr_Checkpoint1:MovieClip;
public var StartPoint_0_0:MovieClip;
public var wr_bounds:MovieClip;
public var wr_right:MovieClip;
public var wr_top:MovieClip;
public function level_Waterfalls_291(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function GetLevelTime():Number{
return ((60 * 5));
}
}
}//package treasure_hunt_fla
Section 111
//level_Waterfalls_easy_339 (treasure_hunt_fla.level_Waterfalls_easy_339)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class level_Waterfalls_easy_339 extends MovieClip {
public var wr_left:MovieClip;
public var wr_bottom:MovieClip;
public var Checkpoint1_0_0:MovieClip;
public var wr_Checkpoint1:MovieClip;
public var StartPoint_0_0:MovieClip;
public var wr_bounds:MovieClip;
public var wr_right:MovieClip;
public var wr_top:MovieClip;
public function level_Waterfalls_easy_339(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
public function GetLevelTime():Number{
return ((60 * 5));
}
}
}//package treasure_hunt_fla
Section 112
//levels_166 (treasure_hunt_fla.levels_166)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class levels_166 extends MovieClip {
public var level1:MovieClip;
public var level2:MovieClip;
public var level4:MovieClip;
public var level5:MovieClip;
public var level6:MovieClip;
public var level7:MovieClip;
public var level3:MovieClip;
public var level8:MovieClip;
public function levels_166(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 113
//levels_easy_333 (treasure_hunt_fla.levels_easy_333)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class levels_easy_333 extends MovieClip {
public var level1:MovieClip;
public var level2:MovieClip;
public var level4:MovieClip;
public var level5:MovieClip;
public var level6:MovieClip;
public var level7:MovieClip;
public var level3:MovieClip;
public var level8:MovieClip;
public function levels_easy_333(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 114
//LIFT_DOWN_219 (treasure_hunt_fla.LIFT_DOWN_219)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class LIFT_DOWN_219 extends MovieClip {
public var bbox:MovieClip;
public function LIFT_DOWN_219(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateTrigger(name, this.getChildAt(0), this.x, this.y);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
};
obj.$collide = function (_arg1):void{
switch (_arg1.GetType()){
case GameConstants.OBJTYPE_PLATFORM:
_arg1.$vel.y = 1;
break;
};
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 115
//LIFT_FALL_265 (treasure_hunt_fla.LIFT_FALL_265)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class LIFT_FALL_265 extends MovieClip {
public var bbox:MovieClip;
public function LIFT_FALL_265(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateTrigger(name, this.getChildAt(0), this.x, this.y);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
};
obj.$collide = function (_arg1):void{
switch (_arg1.GetType()){
case GameConstants.OBJTYPE_PLATFORM:
_arg1.$vel.x = 0;
_arg1.$vel.y = 9;
break;
};
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 116
//LIFT_LEFT_241 (treasure_hunt_fla.LIFT_LEFT_241)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class LIFT_LEFT_241 extends MovieClip {
public var bbox:MovieClip;
public function LIFT_LEFT_241(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateTrigger(name, this.getChildAt(0), this.x, this.y);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
};
obj.$collide = function (_arg1):void{
switch (_arg1.GetType()){
case GameConstants.OBJTYPE_PLATFORM:
_arg1.$vel.x = -1;
break;
};
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 117
//LIFT_RIGHT_242 (treasure_hunt_fla.LIFT_RIGHT_242)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class LIFT_RIGHT_242 extends MovieClip {
public var bbox:MovieClip;
public function LIFT_RIGHT_242(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateTrigger(name, this.getChildAt(0), this.x, this.y);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
};
obj.$collide = function (_arg1):void{
switch (_arg1.GetType()){
case GameConstants.OBJTYPE_PLATFORM:
_arg1.$vel.x = 1;
break;
};
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 118
//LIFT_RIGHTDOWN_267 (treasure_hunt_fla.LIFT_RIGHTDOWN_267)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class LIFT_RIGHTDOWN_267 extends MovieClip {
public var bbox:MovieClip;
public function LIFT_RIGHTDOWN_267(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateTrigger(name, this.getChildAt(0), this.x, this.y);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
};
obj.$collide = function (_arg1):void{
switch (_arg1.GetType()){
case GameConstants.OBJTYPE_PLATFORM:
_arg1.$vel.x = 1;
_arg1.$vel.y = 1;
break;
};
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 119
//LIFT_STOP_266 (treasure_hunt_fla.LIFT_STOP_266)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class LIFT_STOP_266 extends MovieClip {
public var bbox:MovieClip;
public function LIFT_STOP_266(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateTrigger(name, this.getChildAt(0), this.x, this.y);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
};
obj.$collide = function (_arg1):void{
switch (_arg1.GetType()){
case GameConstants.OBJTYPE_PLATFORM:
_arg1.$vel.y = 0;
break;
};
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 120
//LIFT_UP_220 (treasure_hunt_fla.LIFT_UP_220)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class LIFT_UP_220 extends MovieClip {
public var bbox:MovieClip;
public function LIFT_UP_220(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateTrigger(name, this.getChildAt(0), this.x, this.y);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
};
obj.$collide = function (_arg1):void{
switch (_arg1.GetType()){
case GameConstants.OBJTYPE_PLATFORM:
_arg1.$vel.y = -1;
break;
};
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 121
//menu_31 (treasure_hunt_fla.menu_31)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class menu_31 extends MovieClip {
public var level_score:TextField;
public var _menu_frame:MovieClip;
public var diagem_val:TextField;
public var cave_number:TextField;
public var best_time:MovieClip;
public var biggem:MovieClip;
public var pic_mc:MovieClip;
public var request2_1:URLRequest;
public var request2_3:URLRequest;
public var redgem_val:TextField;
public var darkwing:MovieClip;
public var __continue:SimpleButton;
public var bluegem_val:TextField;
public var request2_2:URLRequest;
public var hidden_text:TextField;
public var popup:MovieClip;
public var bluegem:bluegem_src;
public var total_score_val:TextField;
public var __over:SimpleButton;
public var levels_window:MovieClip;
public var __nextcave:SimpleButton;
public var level_descript:TextField;
public var level_score_val:TextField;
public var __skip_scores:MovieClip;
public var gameover_screen:MovieClip;
public var _replay:TextField;
public var redgem:MovieClip;
public var timer_val:TextField;
public var biggem_val:TextField;
public var _submit_text:TextField;
public var _submit:SimpleButton;
public var timer:MovieClip;
public var _scores:MovieClip;
public var diagem:MovieClip;
public var __skip:SimpleButton;
public var level_grade:MovieClip;
public var login:MovieClip;
public var next_cave:TextField;
public var greengem:greengem_src;
public var request2:URLRequest;
public var cave_num:TextField;
public var greengem_val:TextField;
public var __replay:SimpleButton;
public var total_score:TextField;
public var _sponsor:SimpleButton;
public var extra_points:MovieClip;
public function menu_31(){
addFrameScript(0, frame1, 12, frame13, 13, frame14, 33, frame34, 34, frame35, 52, frame53, 71, frame72, 72, frame73, 90, frame91, 142, frame143, 154, frame155, 155, frame156, 222, frame223, 239, frame240, 285, frame286, 287, frame288, 408, frame409, 410, frame411, 493, frame494, 495, frame496, 579, frame580, 581, frame582, 758, frame759, 759, frame760, 827, frame828, 942, frame943, 943, frame944, 944, frame945, 945, frame946, 955, frame956, 965, frame966, 975, frame976, 976, frame977, 995, frame996, 1023, frame1024, 1034, frame1035, 1035, frame1036);
}
function frame155(){
gotoAndPlay("level_intro");
}
function frame156(){
MovieClip(parent).ShowLevelDescript();
}
function frame956(){
stop();
__over.addEventListener(MouseEvent.MOUSE_DOWN, __overD1);
_sponsor.addEventListener(MouseEvent.MOUSE_DOWN, gotoSponsor_1);
request2_1 = new URLRequest("http://www.kongregate.com/?gamereferral=treasurehunt");
MovieClip(parent).ShowEndGameStats(_scores, 1);
}
public function __overD1(_arg1:MouseEvent):void{
MovieClip(parent).ResetGlobalStats();
gotoAndStop("menu");
}
public function __overD2(_arg1:MouseEvent):void{
MovieClip(parent).ResetGlobalStats();
gotoAndStop("menu");
}
public function __overD3(_arg1:MouseEvent):void{
MovieClip(parent).ResetGlobalStats();
gotoAndStop("menu");
}
function frame288(){
MovieClip(parent).Pause();
MovieClip(parent).$contextPause = true;
}
public function gotoSponsor_1(_arg1:MouseEvent){
navigateToURL(request2_1, "_blank");
MovieClip(parent).$Achievements[7] = true;
}
public function gotoSponsor_3(_arg1:MouseEvent){
navigateToURL(request2_3, "_blank");
MovieClip(parent).$Achievements[7] = true;
}
public function gotoSponsor_2(_arg1:MouseEvent){
navigateToURL(request2_2, "_blank");
MovieClip(parent).$Achievements[7] = true;
}
function frame286(){
gotoAndStop("empty_frame");
}
function frame966(){
stop();
__over.addEventListener(MouseEvent.MOUSE_DOWN, __overD2);
_sponsor.addEventListener(MouseEvent.MOUSE_DOWN, gotoSponsor_2);
request2_2 = new URLRequest("http://www.kongregate.com/?gamereferral=treasurehunt");
MovieClip(parent).ShowEndGameStats(_scores, 2);
}
public function gotoSponsor(_arg1:MouseEvent){
navigateToURL(request2, "_blank");
MovieClip(parent).$Achievements[7] = true;
}
function frame977(){
__skip.addEventListener(MouseEvent.MOUSE_DOWN, __skipFunc);
stage.focus = this.hidden_text;
}
function frame14(){
stop();
stage.focus = this.hidden_text;
}
function frame976(){
stop();
__over.addEventListener(MouseEvent.MOUSE_DOWN, __overD3);
_sponsor.addEventListener(MouseEvent.MOUSE_DOWN, gotoSponsor_3);
request2_3 = new URLRequest("http://www.kongregate.com/?gamereferral=treasurehunt");
MovieClip(parent).ShowEndGameStats(_scores, 3);
}
public function Skip2(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == 32){
this.removeEventListener(KeyboardEvent.KEY_DOWN, Skip2);
this.play();
};
}
function frame1(){
if (MovieClip(parent).$bFirstRun){
MovieClip(parent).$bFirstRun = false;
login.gotoAndPlay(2);
};
if (MovieClip(parent).$engine != null){
if (MovieClip(parent).$engine.$sound.$off){
MovieClip(_menu_frame._sound.mic).gotoAndStop(2);
};
};
if (MovieClip(parent).$Cookie != undefined){
if (((!((MovieClip(parent).$Cookie.data.current_game_level == 0))) && (!((MovieClip(parent).$Cookie.data.current_game_level == 8))))){
_menu_frame.__continue.gotoAndStop(2);
} else {
_menu_frame.__continue.gotoAndStop(1);
};
};
stop();
}
function frame35(){
gameover_screen.player_lives.text = ("CONTINUE (SPACE) x " + MovieClip(parent).$player_lives);
if (MovieClip(parent).$player_lives <= 0){
gameover_screen.player_lives.text = "QUIT TO MENU (SPACE)";
};
}
public function Skip1(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == 32){
this.removeEventListener(KeyboardEvent.KEY_DOWN, Skip1);
this.play();
};
}
function frame13(){
gotoAndPlay("intro");
}
function frame34(){
gotoAndStop("menu");
}
function frame996(){
stop();
stage.focus = this.hidden_text;
this.addEventListener(KeyboardEvent.KEY_DOWN, Skip1);
}
function frame760(){
if (MovieClip(parent).$bTrainingMode){
MovieClip(parent).$current_music = MovieClip(parent).$engine.$sound.Play(MovieClip(parent).$SOUNDS[12], true);
gotoAndStop("menu");
} else {
gotoAndPlay("level_intro");
};
}
function frame409(){
MovieClip(parent).Play();
MovieClip(parent).$contextPause = false;
gotoAndStop("empty_frame");
}
public function __skipFunc(_arg1:MouseEvent):void{
this.removeEventListener(KeyboardEvent.KEY_DOWN, Skip1);
this.removeEventListener(KeyboardEvent.KEY_DOWN, Skip2);
gotoAndPlay("level_intro");
}
function frame53(){
stop();
stage.focus = this.hidden_text;
MovieClip(parent).GameoverScreenInit();
}
function frame411(){
MovieClip(parent).Pause();
MovieClip(parent).$contextPause = true;
}
function frame759(){
MovieClip(parent).Play();
MovieClip(parent).$contextPause = false;
gotoAndStop("empty_frame");
}
function frame72(){
gotoAndStop("empty_frame");
}
function frame73(){
cave_num.visible = false;
level_score.visible = false;
level_score_val.visible = false;
total_score.visible = false;
total_score_val.visible = false;
_replay.visible = false;
next_cave.visible = false;
greengem.visible = false;
greengem_val.visible = false;
bluegem.visible = false;
bluegem_val.visible = false;
redgem.visible = false;
redgem_val.visible = false;
diagem.visible = false;
diagem_val.visible = false;
biggem.visible = false;
biggem_val.visible = false;
timer.visible = false;
timer_val.visible = false;
level_grade.visible = false;
__skip_scores.gotoAndStop("hidden");
stage.focus = total_score;
}
function frame91(){
MovieClip(parent).DestroyLevel();
}
function frame582(){
MovieClip(parent).Pause();
MovieClip(parent).$contextPause = true;
}
function frame223(){
MovieClip(parent).InitLevel();
}
function frame580(){
MovieClip(parent).Play();
MovieClip(parent).$contextPause = false;
gotoAndStop("empty_frame");
}
function frame1024(){
stop();
stage.focus = this.hidden_text;
this.addEventListener(KeyboardEvent.KEY_DOWN, Skip2);
}
function frame240(){
gotoAndStop("empty_frame");
}
function frame1036(){
stop();
}
function frame1035(){
gotoAndPlay("level_intro");
}
function frame494(){
MovieClip(parent).Play();
MovieClip(parent).$contextPause = false;
gotoAndStop("empty_frame");
}
function frame496(){
MovieClip(parent).Pause();
MovieClip(parent).$contextPause = true;
}
function frame143(){
stop();
stage.focus = this.hidden_text;
MovieClip(parent).ScoreScreenInit();
_sponsor.addEventListener(MouseEvent.MOUSE_DOWN, gotoSponsor);
request2 = new URLRequest("http://www.kongregate.com/?gamereferral=treasurehunt");
}
function frame943(){
stop();
pic_mc.gotoAndPlay("await");
}
function frame945(){
stop();
}
function frame946(){
stop();
}
function frame828(){
if (MovieClip(parent).$bTrainingMode){
gotoAndStop("menu");
} else {
gotoAndPlay("level_intro");
};
}
function frame944(){
stop();
}
}
}//package treasure_hunt_fla
Section 122
//picture_021_151 (treasure_hunt_fla.picture_021_151)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class picture_021_151 extends MovieClip {
public function picture_021_151(){
addFrameScript(56, frame57, 99, frame100, 157, frame158, 214, frame215, 266, frame267);
}
function frame158(){
stop();
MovieClip(parent).gotoAndPlay("ending1");
}
function frame215(){
stop();
MovieClip(parent).gotoAndPlay("ending2");
}
function frame100(){
MovieClip(parent.parent).ChooseGift();
stop();
}
function frame57(){
gotoAndPlay(1);
}
function frame267(){
stop();
MovieClip(parent).gotoAndPlay("ending3");
}
}
}//package treasure_hunt_fla
Section 123
//redgem_src_16 (treasure_hunt_fla.redgem_src_16)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class redgem_src_16 extends MovieClip {
public var bbox:MovieClip;
public function redgem_src_16(){
addFrameScript(0, frame1, 11, frame12);
}
function frame12(){
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 124
//resources_160 (treasure_hunt_fla.resources_160)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class resources_160 extends MovieClip {
public var RESsfx01_src:sfx01_src;
public var Exit001:holes001_src;
public var darkwing:darkwing_source;
public var Stone001:Stone001_src;
public function resources_160(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 125
//STONE_GONE_321 (treasure_hunt_fla.STONE_GONE_321)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class STONE_GONE_321 extends MovieClip {
public var bbox:MovieClip;
public function STONE_GONE_321(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateTrigger(name, this.getChildAt(0), this.x, this.y);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
obj.$boss = game.$engine.$objects.GetByName("Boss");
};
obj.$collide = function (_arg1):void{
switch (_arg1.GetType()){
case GameConstants.OBJTYPE_STONE:
obj.$boss.FreeSpawnPlace(obj.$name);
break;
};
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 126
//STONES_DIE_320 (treasure_hunt_fla.STONES_DIE_320)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class STONES_DIE_320 extends MovieClip {
public var bbox:MovieClip;
public function STONES_DIE_320(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateTrigger(name, this.getChildAt(0), this.x, this.y);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
};
obj.$collide = function (_arg1):void{
switch (_arg1.GetType()){
case GameConstants.OBJTYPE_STONE:
_arg1.Die();
break;
};
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 127
//Symbol10_127 (treasure_hunt_fla.Symbol10_127)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Symbol10_127 extends MovieClip {
public var extra_wrapper:MovieClip;
public function Symbol10_127(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 128
//Symbol11_128 (treasure_hunt_fla.Symbol11_128)
package treasure_hunt_fla {
import flash.display.*;
import flash.text.*;
public dynamic class Symbol11_128 extends MovieClip {
public var extra_text:TextField;
}
}//package treasure_hunt_fla
Section 129
//Symbol14_53 (treasure_hunt_fla.Symbol14_53)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Symbol14_53 extends MovieClip {
public var level_score:TextField;
public var diagem_val:TextField;
public var __prev_level:MovieClip;
public var __best_levels:MovieClip;
public var biggem:MovieClip;
public var i;
public var redgem_val:TextField;
public var bluegem_val:TextField;
public var bluegem:bluegem_src;
public var total_score_val:TextField;
public var level_score_val:TextField;
public var redgem:MovieClip;
public var achievement_0:MovieClip;
public var achievement_2:MovieClip;
public var achievement_3:MovieClip;
public var achievement_5:MovieClip;
public var achievement_6:MovieClip;
public var achievement_9:MovieClip;
public var achievement_4:MovieClip;
public var achievement_7:MovieClip;
public var achievement_10:MovieClip;
public var __next_level:MovieClip;
public var biggem_val:TextField;
public var achievement_13:MovieClip;
public var achievement_14:MovieClip;
public var timer_val:TextField;
public var achievement_12:MovieClip;
public var achievement_1:MovieClip;
public var gift:MovieClip;
public var timer:MovieClip;
public var l3:MovieClip;
public var achievement_11:MovieClip;
public var l5:MovieClip;
public var l1:MovieClip;
public var l2:MovieClip;
public var l4:MovieClip;
public var l7:MovieClip;
public var diagem:MovieClip;
public var achievement_8:MovieClip;
public var l8:MovieClip;
public var l6:MovieClip;
public var level_grade:TextField;
public var __closeach:SimpleButton;
public var greengem:greengem_src;
public var __closelevels:SimpleButton;
public var _onkong:MovieClip;
public var __best_game:MovieClip;
public var easy_mode:TextField;
public var total_game_time:TextField;
public var cave_num:TextField;
public var greengem_val:TextField;
public var total_score:TextField;
public function Symbol14_53(){
addFrameScript(0, frame1, 9, frame10, 19, frame20, 52, frame53, 68, frame69, 77, frame78);
}
function frame10(){
stop();
i = 0;
while (i < 8) {
if (MovieClip(parent.parent).$bEasyMode){
if (MovieClip(parent.parent).$easy_levels_discovered > i){
switch (i){
case 0:
l1.__button.addEventListener(MouseEvent.MOUSE_DOWN, l1.levelFunc);
l1.level_num.text = "1";
break;
case 1:
l2.__button.addEventListener(MouseEvent.MOUSE_DOWN, l2.levelFunc);
l2.level_num.text = "2";
break;
case 2:
l3.__button.addEventListener(MouseEvent.MOUSE_DOWN, l3.levelFunc);
l3.level_num.text = "3";
break;
case 3:
l4.__button.addEventListener(MouseEvent.MOUSE_DOWN, l4.levelFunc);
l4.level_num.text = "4";
break;
case 4:
l5.__button.addEventListener(MouseEvent.MOUSE_DOWN, l5.levelFunc);
l5.level_num.text = "5";
break;
case 5:
l6.__button.addEventListener(MouseEvent.MOUSE_DOWN, l6.levelFunc);
l6.level_num.text = "6";
break;
case 6:
l7.__button.addEventListener(MouseEvent.MOUSE_DOWN, l7.levelFunc);
l7.level_num.text = "7";
break;
case 7:
l8.__button.addEventListener(MouseEvent.MOUSE_DOWN, l8.levelFunc);
l8.level_num.text = "8";
break;
};
} else {
switch (i){
case 0:
l1.level_num.text = "closed";
break;
case 1:
l2.level_num.text = "closed";
break;
case 2:
l3.level_num.text = "closed";
break;
case 3:
l4.level_num.text = "closed";
break;
case 4:
l5.level_num.text = "closed";
break;
case 5:
l6.level_num.text = "closed";
break;
case 6:
l7.level_num.text = "closed";
break;
case 7:
l8.level_num.text = "closed";
break;
};
};
} else {
if (MovieClip(parent.parent).$levels_discovered > i){
switch (i){
case 0:
l1.__button.addEventListener(MouseEvent.MOUSE_DOWN, l1.levelFunc);
l1.level_num.text = "1";
break;
case 1:
l2.__button.addEventListener(MouseEvent.MOUSE_DOWN, l2.levelFunc);
l2.level_num.text = "2";
break;
case 2:
l3.__button.addEventListener(MouseEvent.MOUSE_DOWN, l3.levelFunc);
l3.level_num.text = "3";
break;
case 3:
l4.__button.addEventListener(MouseEvent.MOUSE_DOWN, l4.levelFunc);
l4.level_num.text = "4";
break;
case 4:
l5.__button.addEventListener(MouseEvent.MOUSE_DOWN, l5.levelFunc);
l5.level_num.text = "5";
break;
case 5:
l6.__button.addEventListener(MouseEvent.MOUSE_DOWN, l6.levelFunc);
l6.level_num.text = "6";
break;
case 6:
l7.__button.addEventListener(MouseEvent.MOUSE_DOWN, l7.levelFunc);
l7.level_num.text = "7";
break;
case 7:
l8.__button.addEventListener(MouseEvent.MOUSE_DOWN, l8.levelFunc);
l8.level_num.text = "8";
break;
};
} else {
switch (i){
case 0:
l1.level_num.text = "closed";
break;
case 1:
l2.level_num.text = "closed";
break;
case 2:
l3.level_num.text = "closed";
break;
case 3:
l4.level_num.text = "closed";
break;
case 4:
l5.level_num.text = "closed";
break;
case 5:
l6.level_num.text = "closed";
break;
case 6:
l7.level_num.text = "closed";
break;
case 7:
l8.level_num.text = "closed";
break;
};
};
};
i++;
};
__closelevels.addEventListener(MouseEvent.MOUSE_DOWN, closelevelFunc);
}
function frame1(){
stop();
}
function frame20(){
gotoAndStop(1);
}
public function closelevelFunc2(_arg1:MouseEvent):void{
play();
}
function frame53(){
stop();
gift.visible = false;
MovieClip(parent.parent).PreviewAchievements();
__best_levels.addEventListener(MouseEvent.MOUSE_DOWN, bestlevelsFunc);
__best_game.addEventListener(MouseEvent.MOUSE_DOWN, bestgameFunc);
__prev_level.addEventListener(MouseEvent.MOUSE_DOWN, prevlevelFunc);
__next_level.addEventListener(MouseEvent.MOUSE_DOWN, nextlevelFunc);
__closelevels.addEventListener(MouseEvent.MOUSE_DOWN, closelevelFunc2);
}
public function nextlevelFunc(_arg1:MouseEvent):void{
MovieClip(parent.parent).AchievementsShowNext();
}
function frame69(){
gotoAndStop(1);
}
function frame78(){
__closeach.addEventListener(MouseEvent.MOUSE_DOWN, closeachFunc2);
stop();
MovieClip(parent.parent).PreviewAchievements2();
}
public function closeachFunc2(_arg1:MouseEvent):void{
gotoAndStop(1);
}
public function closelevelFunc(_arg1:MouseEvent):void{
play();
}
public function prevlevelFunc(_arg1:MouseEvent):void{
MovieClip(parent.parent).AchievementsShowPrev();
}
public function bestlevelsFunc(_arg1:MouseEvent):void{
MovieClip(parent.parent).AchievementsShowBestLevels();
}
public function bestgameFunc(_arg1:MouseEvent):void{
MovieClip(parent.parent).AchievementsShowBestGame();
}
}
}//package treasure_hunt_fla
Section 130
//Symbol20_122 (treasure_hunt_fla.Symbol20_122)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Symbol20_122 extends MovieClip {
public function Symbol20_122(){
addFrameScript(0, frame1, 73, frame74);
}
function frame74(){
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 131
//Symbol46_46 (treasure_hunt_fla.Symbol46_46)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Symbol46_46 extends MovieClip {
public function Symbol46_46(){
addFrameScript(0, frame1);
}
public function mouseOverFunc333(_arg1:MouseEvent):void{
this.gotoAndStop(2);
}
function frame1(){
stop();
this.addEventListener(MouseEvent.MOUSE_DOWN, newgameFunc);
this.addEventListener(MouseEvent.MOUSE_OVER, mouseOverFunc333);
this.addEventListener(MouseEvent.MOUSE_OUT, mouseOutFunc);
}
public function newgameFunc(_arg1:MouseEvent):void{
MovieClip(parent.parent).login.gotoAndPlay("difficulty");
}
public function mouseOutFunc(_arg1:MouseEvent):void{
this.gotoAndStop(1);
}
}
}//package treasure_hunt_fla
Section 132
//Symbol46copy_47 (treasure_hunt_fla.Symbol46copy_47)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Symbol46copy_47 extends MovieClip {
public function Symbol46copy_47(){
addFrameScript(0, frame1, 1, frame2);
}
public function mouseOutFunc2(_arg1:MouseEvent):void{
if ((((MovieClip(parent.parent.parent).$Cookie.data.current_game_level == 0)) || ((MovieClip(parent.parent.parent).$Cookie.data.current_game_level == 8)))){
this.gotoAndStop(1);
} else {
this.gotoAndStop(2);
};
}
public function mouseOverFunc455(_arg1:MouseEvent):void{
if (MovieClip(parent.parent.parent).isLoaded){
if ((((MovieClip(parent.parent.parent).$Cookie.data.current_game_level == 0)) || ((MovieClip(parent.parent.parent).$Cookie.data.current_game_level == 8)))){
this.gotoAndStop(1);
} else {
this.gotoAndStop(3);
};
};
}
public function mouseDownFunc2(_arg1:MouseEvent):void{
MovieClip(parent.parent.parent).playSavedGame();
}
public function mouseDownFunc(_arg1:MouseEvent):void{
MovieClip(parent.parent.parent).playSavedGame();
}
function frame1(){
stop();
this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownFunc);
this.addEventListener(MouseEvent.MOUSE_OVER, mouseOverFunc455);
this.addEventListener(MouseEvent.MOUSE_OUT, mouseOutFunc);
}
public function mouseOverFunc2(_arg1:MouseEvent):void{
if ((((MovieClip(parent.parent.parent).$Cookie.data.current_game_level == 0)) || ((MovieClip(parent.parent.parent).$Cookie.data.current_game_level == 8)))){
this.gotoAndStop(1);
} else {
this.gotoAndStop(3);
};
}
function frame2(){
stop();
this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownFunc2);
this.addEventListener(MouseEvent.MOUSE_OVER, mouseOverFunc2);
this.addEventListener(MouseEvent.MOUSE_OUT, mouseOutFunc2);
}
public function mouseOutFunc(_arg1:MouseEvent):void{
if (MovieClip(parent.parent.parent).isLoaded){
if ((((MovieClip(parent.parent.parent).$Cookie.data.current_game_level == 0)) || ((MovieClip(parent.parent.parent).$Cookie.data.current_game_level == 8)))){
this.gotoAndStop(1);
} else {
this.gotoAndStop(2);
};
};
}
}
}//package treasure_hunt_fla
Section 133
//Symbol46copy2_48 (treasure_hunt_fla.Symbol46copy2_48)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Symbol46copy2_48 extends MovieClip {
public function Symbol46copy2_48(){
addFrameScript(0, frame1);
}
public function mouseDownFunc(_arg1:MouseEvent):void{
MovieClip(parent.parent).login.gotoAndPlay("difficulty_levels");
}
function frame1(){
stop();
this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownFunc);
this.addEventListener(MouseEvent.MOUSE_OVER, mouseOverFunc33);
this.addEventListener(MouseEvent.MOUSE_OUT, mouseOutFunc);
}
public function mouseOverFunc33(_arg1:MouseEvent):void{
this.gotoAndStop(2);
}
public function mouseOutFunc(_arg1:MouseEvent):void{
this.gotoAndStop(1);
}
}
}//package treasure_hunt_fla
Section 134
//Symbol46copy3_49 (treasure_hunt_fla.Symbol46copy3_49)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Symbol46copy3_49 extends MovieClip {
public function Symbol46copy3_49(){
addFrameScript(0, frame1);
}
public function mouseDownFunc(_arg1:MouseEvent):void{
MovieClip(parent.parent).levels_window.gotoAndPlay("achievements");
}
function frame1(){
stop();
this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownFunc);
this.addEventListener(MouseEvent.MOUSE_OVER, mouseOverFunc22);
this.addEventListener(MouseEvent.MOUSE_OUT, mouseOutFunc);
}
public function mouseOverFunc22(_arg1:MouseEvent):void{
this.gotoAndStop(2);
}
public function mouseOutFunc(_arg1:MouseEvent):void{
this.gotoAndStop(1);
}
}
}//package treasure_hunt_fla
Section 135
//Symbol46copy4_50 (treasure_hunt_fla.Symbol46copy4_50)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Symbol46copy4_50 extends MovieClip {
public function Symbol46copy4_50(){
addFrameScript(0, frame1);
}
public function mouseDownFunc(_arg1:MouseEvent):void{
MovieClip(parent.parent.parent).ShowHighscores();
}
function frame1(){
stop();
this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownFunc);
this.addEventListener(MouseEvent.MOUSE_OVER, mouseOverFunc133);
this.addEventListener(MouseEvent.MOUSE_OUT, mouseOutFunc);
}
public function mouseOverFunc133(_arg1:MouseEvent):void{
this.gotoAndStop(2);
}
public function mouseOutFunc(_arg1:MouseEvent):void{
this.gotoAndStop(1);
}
}
}//package treasure_hunt_fla
Section 136
//Symbol54_45 (treasure_hunt_fla.Symbol54_45)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Symbol54_45 extends MovieClip {
public var mic:MovieClip;
public var but:SimpleButton;
public function Symbol54_45(){
addFrameScript(0, frame1);
}
public function mouseDownFunc(_arg1:MouseEvent):void{
if (mic.currentFrame == 1){
MovieClip(parent.parent.parent).SoundOff(true);
mic.gotoAndStop(2);
} else {
MovieClip(parent.parent.parent).SoundOff(false);
mic.gotoAndStop(1);
};
}
function frame1(){
stop();
but.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownFunc);
}
}
}//package treasure_hunt_fla
Section 137
//Symbol54copy_28 (treasure_hunt_fla.Symbol54copy_28)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Symbol54copy_28 extends MovieClip {
public var mic:MovieClip;
public var but:SimpleButton;
public function Symbol54copy_28(){
addFrameScript(0, frame1);
}
public function mouseDownFunc(_arg1:MouseEvent):void{
if (mic.currentFrame == 1){
MovieClip(parent.parent).SoundOff(true);
mic.gotoAndStop(2);
} else {
MovieClip(parent.parent).SoundOff(false);
mic.gotoAndStop(1);
};
}
function frame1(){
stop();
but.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownFunc);
}
}
}//package treasure_hunt_fla
Section 138
//Symbol55_29 (treasure_hunt_fla.Symbol55_29)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Symbol55_29 extends MovieClip {
public function Symbol55_29(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 139
//Symbol60_125 (treasure_hunt_fla.Symbol60_125)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Symbol60_125 extends MovieClip {
public function Symbol60_125(){
addFrameScript(0, frame1, 19, frame20, 48, frame49, 84, frame85);
}
function frame85(){
stop();
}
function frame1(){
stop();
}
function frame20(){
stop();
}
function frame49(){
stop();
}
}
}//package treasure_hunt_fla
Section 140
//Symbol8_112 (treasure_hunt_fla.Symbol8_112)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Symbol8_112 extends MovieClip {
public function Symbol8_112(){
addFrameScript(0, frame1, 30, frame31, 83, frame84, 116, frame117, 160, frame161, 211, frame212, 262, frame263);
}
function frame84(){
gotoAndStop(1);
}
function frame161(){
gotoAndStop(1);
}
function frame1(){
stop();
}
function frame212(){
gotoAndStop(1);
}
function frame117(){
gotoAndStop(1);
}
function frame31(){
gotoAndStop(1);
}
function frame263(){
gotoAndStop(1);
}
}
}//package treasure_hunt_fla
Section 141
//Timeline_10 (treasure_hunt_fla.Timeline_10)
package treasure_hunt_fla {
import flash.display.*;
import flash.text.*;
public dynamic class Timeline_10 extends MovieClip {
public var biggems:TextField;
public var _sound:MovieClip;
public var redgems:TextField;
public var redgem:MovieClip;
public var diagem:MovieClip;
public var bluegems:TextField;
public var biggem:MovieClip;
public var greengem:greengem_src;
public var diagems:TextField;
public var greengems:TextField;
public var level_time:TextField;
public var bluegem:bluegem_src;
public function Timeline_10(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 142
//Timeline_101 (treasure_hunt_fla.Timeline_101)
package treasure_hunt_fla {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public dynamic class Timeline_101 extends MovieClip {
public var request2:URLRequest;
public var _sponsor:SimpleButton;
public function Timeline_101(){
addFrameScript(0, frame1);
}
public function gotoSponsor(_arg1:MouseEvent){
navigateToURL(request2, "_self");
}
function frame1(){
_sponsor.addEventListener(MouseEvent.MOUSE_DOWN, gotoSponsor);
request2 = new URLRequest("http://www.kongregate.com/?gamereferral=treasurehunt");
}
}
}//package treasure_hunt_fla
Section 143
//Timeline_102 (treasure_hunt_fla.Timeline_102)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_102 extends MovieClip {
public var _hardcore:TextField;
public var _onkong:MovieClip;
public var __normal:SimpleButton;
public var __hardcore:SimpleButton;
public function Timeline_102(){
addFrameScript(0, frame1);
}
public function normalFunc(_arg1:MouseEvent):void{
_hardcore.visible = false;
MovieClip(parent.parent.parent).$bEasyMode = true;
MovieClip(parent.parent.parent).NewGame();
MovieClip(parent.parent).play();
MovieClip(parent).play();
}
function frame1(){
stop();
_hardcore.visible = true;
__normal.addEventListener(MouseEvent.MOUSE_DOWN, normalFunc);
if (((MovieClip(parent.parent.parent).$bHardcoreEnabled) && (MovieClip(parent.parent.parent).$onkong))){
this._onkong.visible = false;
_hardcore.textColor = 0x990000;
__hardcore.visible = true;
__hardcore.addEventListener(MouseEvent.MOUSE_DOWN, hardcoreFunc);
} else {
__hardcore.visible = false;
if (!MovieClip(parent.parent.parent).$onkong){
this._onkong.visible = true;
_hardcore.textColor = 0;
} else {
this._onkong.visible = false;
_hardcore.textColor = 0xCCCCCC;
};
};
}
public function hardcoreFunc(_arg1:MouseEvent):void{
_hardcore.visible = false;
MovieClip(parent.parent.parent).$bEasyMode = false;
MovieClip(parent.parent.parent).NewGame();
MovieClip(parent.parent).play();
MovieClip(parent).play();
}
}
}//package treasure_hunt_fla
Section 144
//Timeline_103 (treasure_hunt_fla.Timeline_103)
package treasure_hunt_fla {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public dynamic class Timeline_103 extends MovieClip {
public var request_kong:URLRequest;
public var __gokong:SimpleButton;
public function Timeline_103(){
addFrameScript(0, frame1);
}
public function gotoKong(_arg1:MouseEvent){
navigateToURL(request_kong, "_blank");
}
function frame1(){
stop();
__gokong.addEventListener(MouseEvent.MOUSE_DOWN, gotoKong);
request_kong = new URLRequest("http://www.kongregate.com/games/flazm/treasure-hunt?gamereferral=treasurehunt");
}
}
}//package treasure_hunt_fla
Section 145
//Timeline_104 (treasure_hunt_fla.Timeline_104)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_104 extends MovieClip {
public var _hardcore:TextField;
public var _onkong:MovieClip;
public var __normal:SimpleButton;
public var __hardcore:SimpleButton;
public function Timeline_104(){
addFrameScript(0, frame1);
}
public function normalFunc(_arg1:MouseEvent):void{
_hardcore.visible = false;
MovieClip(parent.parent.parent).$bEasyMode = true;
MovieClip(parent.parent).levels_window.gotoAndPlay(2);
MovieClip(parent).play();
}
function frame1(){
stop();
_hardcore.visible = true;
__normal.addEventListener(MouseEvent.MOUSE_DOWN, normalFunc);
if (((MovieClip(parent.parent.parent).$bHardcoreEnabled) && (MovieClip(parent.parent.parent).$onkong))){
this._onkong.visible = false;
_hardcore.textColor = 0x990000;
__hardcore.visible = true;
__hardcore.addEventListener(MouseEvent.MOUSE_DOWN, hardcoreFunc);
} else {
__hardcore.visible = false;
if (!MovieClip(parent.parent.parent).$onkong){
this._onkong.visible = true;
_hardcore.textColor = 0;
} else {
this._onkong.visible = false;
_hardcore.textColor = 0xCCCCCC;
};
};
}
public function hardcoreFunc(_arg1:MouseEvent):void{
_hardcore.visible = false;
MovieClip(parent.parent.parent).$bEasyMode = false;
MovieClip(parent.parent).levels_window.gotoAndPlay(2);
MovieClip(parent).play();
}
}
}//package treasure_hunt_fla
Section 146
//Timeline_107 (treasure_hunt_fla.Timeline_107)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_107 extends MovieClip {
public var player_lives:TextField;
public var request2:URLRequest;
public var _sponsor:SimpleButton;
public function Timeline_107(){
addFrameScript(0, frame1);
}
public function gotoSponsor(_arg1:MouseEvent){
navigateToURL(request2, "_blank");
MovieClip(parent.parent).$Achievements[7] = true;
}
function frame1(){
_sponsor.addEventListener(MouseEvent.MOUSE_DOWN, gotoSponsor);
request2 = new URLRequest("http://www.kongregate.com/?gamereferral=treasurehunt");
}
}
}//package treasure_hunt_fla
Section 147
//Timeline_124 (treasure_hunt_fla.Timeline_124)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_124 extends MovieClip {
public var __button:SimpleButton;
public function Timeline_124(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
__button.addEventListener(MouseEvent.MOUSE_DOWN, __buttonFunc);
}
function frame2(){
stop();
}
public function __buttonFunc(_arg1:MouseEvent):void{
MovieClip(parent.parent).SkipScores();
}
}
}//package treasure_hunt_fla
Section 148
//Timeline_155 (treasure_hunt_fla.Timeline_155)
package treasure_hunt_fla {
import flash.display.*;
import flash.text.*;
public dynamic class Timeline_155 extends MovieClip {
public var redgem:MovieClip;
public var timer_val:TextField;
public var biggem_val:TextField;
public var diagem_val:TextField;
public var _score_submit:MovieClip;
public var timer:MovieClip;
public var diagem:MovieClip;
public var biggem:MovieClip;
public var greengem:greengem_src;
public var redgem_val:TextField;
public var bluegem_val:TextField;
public var total_score_val:TextField;
public var bluegem:bluegem_src;
public var greengem_val:TextField;
public var total_score:TextField;
public var _item:MovieClip;
}
}//package treasure_hunt_fla
Section 149
//Timeline_156 (treasure_hunt_fla.Timeline_156)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_156 extends MovieClip {
public function Timeline_156(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 150
//Timeline_171 (treasure_hunt_fla.Timeline_171)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_171 extends MovieClip {
public function Timeline_171(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateGround(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 151
//Timeline_180 (treasure_hunt_fla.Timeline_180)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_180 extends MovieClip {
public function Timeline_180(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateStatSprite(this.getChildAt(0), this.x, this.y, 1);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 152
//Timeline_188 (treasure_hunt_fla.Timeline_188)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_188 extends MovieClip {
public function Timeline_188(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateSFX();
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 153
//Timeline_194 (treasure_hunt_fla.Timeline_194)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_194 extends MovieClip {
public function Timeline_194(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateGoblin(this.getChildAt(0), this.x, this.y);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 154
//Timeline_196 (treasure_hunt_fla.Timeline_196)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_196 extends MovieClip {
public var bbox:MovieClip;
public function Timeline_196(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateWaypoint(name.substring(0, name.indexOf("_")), this.getChildAt(0), this.x, this.y);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
var _local2:String;
var _local3:String;
var _local4:String;
var _local5:String;
_local2 = name;
_local3 = _local2.substring(0, _local2.indexOf("_"));
_local2 = _local2.substr((_local2.indexOf("_") + 1));
_local4 = _local2.substring(0, _local2.indexOf("_"));
_local2 = _local2.substr((_local2.indexOf("_") + 1));
_local5 = _local2;
_arg1.$name = _local3;
_arg1.$waypoint_left = null;
_arg1.$waypoint_right = null;
if (_local4 != "0"){
_arg1.$waypoint_left = _arg1.$game.$engine.$objects.GetByName(_local4);
};
if (_local5 != "0"){
_arg1.$waypoint_right = _arg1.$game.$engine.$objects.GetByName(_local5);
};
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 155
//Timeline_206 (treasure_hunt_fla.Timeline_206)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_206 extends MovieClip {
public var level_cell:MovieClip;
public var level_bounds:MovieClip;
public function Timeline_206(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 156
//Timeline_216 (treasure_hunt_fla.Timeline_216)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_216 extends MovieClip {
public function Timeline_216(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreatePlatform(this.getChildAt(0), this.x, this.y, 3, false);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
_arg1.$vel.y = -1;
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 157
//Timeline_227 (treasure_hunt_fla.Timeline_227)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_227 extends MovieClip {
public var bbox:MovieClip;
public function Timeline_227(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateLevelBoundary(this.getChildAt(0), this.x, this.y);
_arg1.$engine.AddObject(_local2);
switch (name){
case "wr_bottom":
_local2.set2bottom();
break;
case "wr_left":
_local2.set2left();
break;
case "wr_right":
_local2.set2right();
break;
case "wr_top":
_local2.set2top();
break;
default:
break;
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 158
//Timeline_228 (treasure_hunt_fla.Timeline_228)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_228 extends MovieClip {
public var bbox:MovieClip;
public function Timeline_228(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateLevelBoundary(this.getChildAt(0), this.x, this.y);
_arg1.$engine.AddObject(_local2);
switch (name){
case "wr_bottom":
_local2.set2bottom();
break;
case "wr_left":
_local2.set2left();
break;
case "wr_right":
_local2.set2right();
break;
case "wr_top":
_local2.set2top();
break;
default:
break;
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 159
//Timeline_229 (treasure_hunt_fla.Timeline_229)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_229 extends MovieClip {
public var level_cell:MovieClip;
public var level_bounds:MovieClip;
public function Timeline_229(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 160
//Timeline_278 (treasure_hunt_fla.Timeline_278)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_278 extends MovieClip {
public var bbox:MovieClip;
public function Timeline_278(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateLevelBoundary(this.getChildAt(0), this.x, this.y);
_arg1.$engine.AddObject(_local2);
switch (name){
case "wr_bottom":
_local2.set2bottom();
break;
case "wr_left":
_local2.set2left();
break;
case "wr_right":
_local2.set2right();
break;
case "wr_top":
_local2.set2top();
break;
default:
break;
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 161
//Timeline_279 (treasure_hunt_fla.Timeline_279)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_279 extends MovieClip {
public var bbox:MovieClip;
public function Timeline_279(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateLevelBoundary(this.getChildAt(0), this.x, this.y);
_arg1.$engine.AddObject(_local2);
switch (name){
case "wr_bottom":
_local2.set2bottom();
break;
case "wr_left":
_local2.set2left();
break;
case "wr_right":
_local2.set2right();
break;
case "wr_top":
_local2.set2top();
break;
default:
break;
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 162
//Timeline_280 (treasure_hunt_fla.Timeline_280)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_280 extends MovieClip {
public var bbox:MovieClip;
public function Timeline_280(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateLevelBoundary(this.getChildAt(0), this.x, this.y);
_arg1.$engine.AddObject(_local2);
switch (name){
case "wr_bottom":
_local2.set2bottom();
break;
case "wr_left":
_local2.set2left();
break;
case "wr_right":
_local2.set2right();
break;
case "wr_top":
_local2.set2top();
break;
default:
break;
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 163
//Timeline_281 (treasure_hunt_fla.Timeline_281)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_281 extends MovieClip {
public var level_cell:MovieClip;
public var level_bounds:MovieClip;
public function Timeline_281(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 164
//Timeline_306 (treasure_hunt_fla.Timeline_306)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_306 extends MovieClip {
public function Timeline_306(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateGround(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 165
//Timeline_32 (treasure_hunt_fla.Timeline_32)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_32 extends MovieClip {
public var _sound:MovieClip;
public var request2:URLRequest;
public var __continue:MovieClip;
public var request:URLRequest;
public var _flazm:SimpleButton;
public var _sponsor:SimpleButton;
public function Timeline_32(){
addFrameScript(0, frame1);
}
public function gotoFlazm(_arg1:MouseEvent){
navigateToURL(request, "_blank");
}
public function gotoSponsor(_arg1:MouseEvent){
navigateToURL(request2, "_blank");
MovieClip(parent.parent).$Achievements[7] = true;
}
function frame1(){
_flazm.addEventListener(MouseEvent.MOUSE_DOWN, gotoFlazm);
_sponsor.addEventListener(MouseEvent.MOUSE_DOWN, gotoSponsor);
request = new URLRequest("http://www.flazm.com");
request2 = new URLRequest("http://www.kongregate.com/?gamereferral=treasurehunt");
}
}
}//package treasure_hunt_fla
Section 166
//Timeline_325 (treasure_hunt_fla.Timeline_325)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_325 extends MovieClip {
public function Timeline_325(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateGround(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 167
//Timeline_327 (treasure_hunt_fla.Timeline_327)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_327 extends MovieClip {
public function Timeline_327(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateGround(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 168
//Timeline_332 (treasure_hunt_fla.Timeline_332)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_332 extends MovieClip {
public var level_cell:MovieClip;
public var level_bounds:MovieClip;
public function Timeline_332(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 169
//Timeline_343 (treasure_hunt_fla.Timeline_343)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_343 extends MovieClip {
public function Timeline_343(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateGround(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 170
//Timeline_55 (treasure_hunt_fla.Timeline_55)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_55 extends MovieClip {
public var __button:SimpleButton;
public var level_num:TextField;
public function Timeline_55(){
addFrameScript(0, frame1);
}
function frame1(){
}
public function levelFunc(_arg1:MouseEvent):void{
MovieClip(parent.parent.parent).ResetGlobalStats();
MovieClip(parent.parent.parent).$current_level = (Number(name.substring(1)) - 1);
MovieClip(parent.parent.parent).$bTrainingMode = true;
MovieClip(parent.parent).gotoAndPlay("level_intro");
}
}
}//package treasure_hunt_fla
Section 171
//Timeline_60 (treasure_hunt_fla.Timeline_60)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_60 extends MovieClip {
public function Timeline_60(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4);
}
function frame3(){
stop();
}
function frame1(){
stop();
}
function frame4(){
stop();
}
function frame2(){
stop();
}
}
}//package treasure_hunt_fla
Section 172
//Timeline_62 (treasure_hunt_fla.Timeline_62)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_62 extends MovieClip {
public function Timeline_62(){
addFrameScript(0, frame1, 1, frame2, 2, frame3);
}
function frame3(){
stop();
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package treasure_hunt_fla
Section 173
//Timeline_63 (treasure_hunt_fla.Timeline_63)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_63 extends MovieClip {
public function Timeline_63(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 174
//Timeline_72 (treasure_hunt_fla.Timeline_72)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_72 extends MovieClip {
public function Timeline_72(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package treasure_hunt_fla
Section 175
//Timeline_73 (treasure_hunt_fla.Timeline_73)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_73 extends MovieClip {
public function Timeline_73(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package treasure_hunt_fla
Section 176
//Timeline_74 (treasure_hunt_fla.Timeline_74)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_74 extends MovieClip {
public function Timeline_74(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package treasure_hunt_fla
Section 177
//Timeline_75 (treasure_hunt_fla.Timeline_75)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_75 extends MovieClip {
public function Timeline_75(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package treasure_hunt_fla
Section 178
//Timeline_76 (treasure_hunt_fla.Timeline_76)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_76 extends MovieClip {
public function Timeline_76(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package treasure_hunt_fla
Section 179
//Timeline_77 (treasure_hunt_fla.Timeline_77)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_77 extends MovieClip {
public function Timeline_77(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package treasure_hunt_fla
Section 180
//Timeline_81 (treasure_hunt_fla.Timeline_81)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_81 extends MovieClip {
public function Timeline_81(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package treasure_hunt_fla
Section 181
//Timeline_82 (treasure_hunt_fla.Timeline_82)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_82 extends MovieClip {
public function Timeline_82(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package treasure_hunt_fla
Section 182
//Timeline_83 (treasure_hunt_fla.Timeline_83)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_83 extends MovieClip {
public function Timeline_83(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package treasure_hunt_fla
Section 183
//Timeline_84 (treasure_hunt_fla.Timeline_84)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_84 extends MovieClip {
public var request_kong:URLRequest;
public var __gokong:SimpleButton;
public function Timeline_84(){
addFrameScript(0, frame1, 1, frame2);
}
public function gotoKong(_arg1:MouseEvent){
MovieClip(parent.parent.parent).$Achievements[7] = true;
this.gotoAndStop(2);
navigateToURL(request_kong, "_blank");
}
function frame1(){
stop();
__gokong.addEventListener(MouseEvent.MOUSE_DOWN, gotoKong);
request_kong = new URLRequest("http://www.kongregate.com/?gamereferral=treasurehunt");
}
function frame2(){
stop();
}
}
}//package treasure_hunt_fla
Section 184
//Timeline_85 (treasure_hunt_fla.Timeline_85)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_85 extends MovieClip {
public function Timeline_85(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package treasure_hunt_fla
Section 185
//Timeline_86 (treasure_hunt_fla.Timeline_86)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_86 extends MovieClip {
public function Timeline_86(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package treasure_hunt_fla
Section 186
//Timeline_87 (treasure_hunt_fla.Timeline_87)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_87 extends MovieClip {
public function Timeline_87(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package treasure_hunt_fla
Section 187
//Timeline_88 (treasure_hunt_fla.Timeline_88)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_88 extends MovieClip {
public function Timeline_88(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package treasure_hunt_fla
Section 188
//Timeline_89 (treasure_hunt_fla.Timeline_89)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_89 extends MovieClip {
public function Timeline_89(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package treasure_hunt_fla
Section 189
//Timeline_91 (treasure_hunt_fla.Timeline_91)
package treasure_hunt_fla {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public dynamic class Timeline_91 extends MovieClip {
public var request_kong:URLRequest;
public var __gokong:SimpleButton;
public function Timeline_91(){
addFrameScript(0, frame1);
}
public function gotoKong(_arg1:MouseEvent){
navigateToURL(request_kong, "_blank");
}
function frame1(){
stop();
__gokong.addEventListener(MouseEvent.MOUSE_DOWN, gotoKong);
request_kong = new URLRequest("http://www.kongregate.com/?gamereferral=treasurehunt");
}
}
}//package treasure_hunt_fla
Section 190
//Timeline_92 (treasure_hunt_fla.Timeline_92)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class Timeline_92 extends MovieClip {
public var _mustbe:MovieClip;
public var ach:MovieClip;
public function Timeline_92(){
addFrameScript(0, frame1, 1, frame2, 9, frame10, 19, frame20, 28, frame29, 38, frame39, 47, frame48, 57, frame58, 121, frame122, 185, frame186, 249, frame250, 313, frame314, 377, frame378, 441, frame442, 499, frame500);
}
function frame314(){
gotoAndStop(1);
}
function frame442(){
gotoAndStop(1);
}
function frame10(){
stop();
_mustbe.visible = false;
}
function frame186(){
gotoAndStop(1);
}
function frame1(){
stop();
}
function frame500(){
gotoAndStop(1);
}
function frame29(){
stop();
}
function frame20(){
gotoAndStop(1);
}
function frame2(){
stop();
}
function frame39(){
gotoAndStop(1);
}
function frame48(){
stop();
}
function frame122(){
gotoAndStop(1);
}
function frame378(){
gotoAndStop(1);
}
function frame250(){
gotoAndStop(1);
}
function frame58(){
gotoAndStop(1);
}
}
}//package treasure_hunt_fla
Section 191
//Timeline_94 (treasure_hunt_fla.Timeline_94)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Timeline_94 extends MovieClip {
public var __logok:SimpleButton;
public var user_name:TextField;
public function Timeline_94(){
addFrameScript(0, frame1);
}
public function logokFunc(_arg1:MouseEvent):void{
user_name.visible = false;
MovieClip(parent.parent.parent).__submitFromLogin(user_name.text);
MovieClip(parent).play();
}
function frame1(){
stop();
stage.focus = this.user_name;
__logok.addEventListener(MouseEvent.MOUSE_DOWN, logokFunc);
}
public function logokFunc2(_arg1:KeyboardEvent):void{
user_name.visible = false;
if (_arg1.keyCode == 13){
MovieClip(parent.parent.parent).Login(user_name.text);
user_name.removeEventListener(KeyboardEvent.KEY_DOWN, logokFunc2);
MovieClip(parent).play();
};
}
}
}//package treasure_hunt_fla
Section 192
//timer_25 (treasure_hunt_fla.timer_25)
package treasure_hunt_fla {
import flash.display.*;
public dynamic class timer_25 extends MovieClip {
public function timer_25(){
addFrameScript(0, frame1, 9, frame10);
}
function frame10(){
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 193
//TRIGGER_001_289 (treasure_hunt_fla.TRIGGER_001_289)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class TRIGGER_001_289 extends MovieClip {
public var bbox:MovieClip;
public function TRIGGER_001_289(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateTrigger(name, this.getChildAt(0), this.x, this.y);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
};
obj.$collide = function (_arg1):void{
var collider = _arg1;
switch (collider.GetType()){
case GameConstants.OBJTYPE_PLAYER:
collider.$game.$MENU.gotoAndPlay("CantEscape");
obj.$collide = function (_arg1):void{
};
break;
};
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 194
//TRIGGER_002_285 (treasure_hunt_fla.TRIGGER_002_285)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class TRIGGER_002_285 extends MovieClip {
public var bbox:MovieClip;
public function TRIGGER_002_285(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateTrigger(name, this.getChildAt(0), this.x, this.y);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
};
obj.$collide = function (_arg1):void{
var collider = _arg1;
switch (collider.GetType()){
case GameConstants.OBJTYPE_PLAYER:
collider.$game.$MENU.gotoAndPlay("ToWaterfalls");
obj.$collide = function (_arg1):void{
};
break;
};
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 195
//TRIGGER_003_205 (treasure_hunt_fla.TRIGGER_003_205)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class TRIGGER_003_205 extends MovieClip {
public var bbox:MovieClip;
public function TRIGGER_003_205(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateTrigger(name, this.getChildAt(0), this.x, this.y);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
};
obj.$collide = function (_arg1):void{
var collider = _arg1;
switch (collider.GetType()){
case GameConstants.OBJTYPE_PLAYER:
collider.$game.$MENU.gotoAndPlay("CantFight");
obj.$collide = function (_arg1):void{
};
break;
};
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 196
//vector_178 (treasure_hunt_fla.vector_178)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class vector_178 extends MovieClip {
public var vector:MovieClip;
public function vector_178(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
delete this.onEnterFrame;
}
}
}//package treasure_hunt_fla
Section 197
//vector_src_179 (treasure_hunt_fla.vector_src_179)
package treasure_hunt_fla {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import flash.media.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class vector_src_179 extends MovieClip {
public function vector_src_179(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
delete this.onEnterFrame;
}
}
}//package treasure_hunt_fla
Section 198
//wr_bg1_183 (treasure_hunt_fla.wr_bg1_183)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_bg1_183 extends MovieClip {
public function wr_bg1_183(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateCamera(this.getChildAt(0), this.x, this.y, true);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
_arg1.SetTarget(_arg1.$game.$engine.$objects.GetByName("player"));
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 199
//wr_BigGem_192 (treasure_hunt_fla.wr_BigGem_192)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_BigGem_192 extends MovieClip {
public function wr_BigGem_192(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateCollectable(GameConstants.LSTAT_BIGGEM, this.getChildAt(0), this.x, this.y, 3, false);
_arg1.$engine.AddObject(_local2);
_local2.$init_index = _local2.$index;
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 200
//wr_BlueGem_190 (treasure_hunt_fla.wr_BlueGem_190)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_BlueGem_190 extends MovieClip {
public function wr_BlueGem_190(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateCollectable(GameConstants.LSTAT_BLUEGEM, this.getChildAt(0), this.x, this.y, 3, false);
_arg1.$engine.AddObject(_local2);
_local2.$init_index = _local2.$index;
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 201
//wr_Boss_309 (treasure_hunt_fla.wr_Boss_309)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Boss_309 extends MovieClip {
public function wr_Boss_309(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateBoss(this.getChildAt(0), this.x, this.y);
game.$engine.AddObject(obj);
obj.$init_index = obj.$index;
obj.$init_script = function (_arg1):void{
obj.$stone_point0 = game.$engine.$objects.GetByName("stone0");
obj.$stone_point1 = game.$engine.$objects.GetByName("stone1");
obj.$stone_point2 = game.$engine.$objects.GetByName("stone2");
obj.$stone_point3 = game.$engine.$objects.GetByName("stone3");
obj.$exit_point0 = game.$engine.$objects.GetByName("exitpoint");
obj.$player = game.$engine.$objects.GetByName("player");
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 202
//wr_bottomBoundary001_200 (treasure_hunt_fla.wr_bottomBoundary001_200)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_bottomBoundary001_200 extends MovieClip {
public var bbox:MovieClip;
public function wr_bottomBoundary001_200(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateLevelBoundary(this.getChildAt(0), this.x, this.y);
_arg1.$engine.AddObject(_local2);
switch (name){
case "wr_bottom":
_local2.set2bottom();
break;
case "wr_left":
_local2.set2left();
break;
case "wr_right":
_local2.set2right();
break;
case "wr_top":
_local2.set2top();
break;
default:
break;
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 203
//wr_cavebg001_168 (treasure_hunt_fla.wr_cavebg001_168)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_cavebg001_168 extends MovieClip {
public function wr_cavebg001_168(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateBackground(this.getChildAt(0), this.x, this.y, 0, false, 0.1);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 204
//wr_cavebg003_323 (treasure_hunt_fla.wr_cavebg003_323)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_cavebg003_323 extends MovieClip {
public function wr_cavebg003_323(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateBackground(this.getChildAt(0), this.x, this.y, 0, false, 0.02);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 205
//wr_cavebgEasy_231 (treasure_hunt_fla.wr_cavebgEasy_231)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_cavebgEasy_231 extends MovieClip {
public function wr_cavebgEasy_231(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateBackground(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 206
//wr_cavebgMine_248 (treasure_hunt_fla.wr_cavebgMine_248)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_cavebgMine_248 extends MovieClip {
public function wr_cavebgMine_248(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateBackground(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 207
//wr_CEILSPIKES_212 (treasure_hunt_fla.wr_CEILSPIKES_212)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_CEILSPIKES_212 extends MovieClip {
public function wr_CEILSPIKES_212(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateKiller(GameConstants.KILLERTYPE_CEILSPIKES, this.getChildAt(0), this.x, this.y, 3);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 208
//wr_Checkpoint_255 (treasure_hunt_fla.wr_Checkpoint_255)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Checkpoint_255 extends MovieClip {
public function wr_Checkpoint_255(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateCheckpoint(this.getChildAt(0), this.x, this.y, 3, false);
_arg1.$engine.AddObject(_local2);
_local2.$name = name;
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 209
//wr_DiaGem_191 (treasure_hunt_fla.wr_DiaGem_191)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_DiaGem_191 extends MovieClip {
public function wr_DiaGem_191(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateCollectable(GameConstants.LSTAT_DIAGEM, this.getChildAt(0), this.x, this.y, 3, false);
_arg1.$engine.AddObject(_local2);
_local2.$init_index = _local2.$index;
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 210
//wr_DigPlate001_186 (treasure_hunt_fla.wr_DigPlate001_186)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_DigPlate001_186 extends MovieClip {
public function wr_DigPlate001_186(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateDigPlate(this.getChildAt(0), this.x, this.y, 3, false);
_arg1.$engine.AddObject(_local2);
_local2.$init_index = _local2.$index;
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 211
//wr_DigPlate002_198 (treasure_hunt_fla.wr_DigPlate002_198)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_DigPlate002_198 extends MovieClip {
public function wr_DigPlate002_198(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateDigPlate(this.getChildAt(0), this.x, this.y, 3, false);
_arg1.$engine.AddObject(_local2);
_local2.$init_index = _local2.$index;
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 212
//wr_FallingRock001_235 (treasure_hunt_fla.wr_FallingRock001_235)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_FallingRock001_235 extends MovieClip {
public function wr_FallingRock001_235(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateFallingRock(this.getChildAt(0), this.x, this.y, 3, false);
_arg1.$engine.AddObject(_local2);
_local2.$init_index = _local2.$index;
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 213
//wr_Fireup_202 (treasure_hunt_fla.wr_Fireup_202)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Fireup_202 extends MovieClip {
public function wr_Fireup_202(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateAnimSprite(this.getChildAt(0), this.x, this.y, 3, false);
_local2.$mySprite.Play(0, 1, true);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 214
//wr_FLOORSPIKES_238 (treasure_hunt_fla.wr_FLOORSPIKES_238)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_FLOORSPIKES_238 extends MovieClip {
public function wr_FLOORSPIKES_238(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateKiller(GameConstants.KILLERTYPE_FLOORSPIKES, this.getChildAt(0), this.x, this.y, 3);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 215
//wr_Grass001_185 (treasure_hunt_fla.wr_Grass001_185)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Grass001_185 extends MovieClip {
public function wr_Grass001_185(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateStatSprite(this.getChildAt(0), this.x, this.y, 5, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 216
//wr_GreenGem_193 (treasure_hunt_fla.wr_GreenGem_193)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_GreenGem_193 extends MovieClip {
public function wr_GreenGem_193(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateCollectable(GameConstants.LSTAT_GREENGEM, this.getChildAt(0), this.x, this.y, 3, false);
_arg1.$engine.AddObject(_local2);
_local2.$init_index = _local2.$index;
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 217
//wr_HiddenGround1_215 (treasure_hunt_fla.wr_HiddenGround1_215)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_HiddenGround1_215 extends MovieClip {
public function wr_HiddenGround1_215(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateStatSprite(this.getChildAt(0), this.x, this.y, 5, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 218
//wr_HiddenPlate001_269 (treasure_hunt_fla.wr_HiddenPlate001_269)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_HiddenPlate001_269 extends MovieClip {
public function wr_HiddenPlate001_269(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateHiddenPlate(this.getChildAt(0), this.x, this.y, 2, false);
game.$engine.AddObject(obj);
obj.$init_index = obj.$index;
if (name != ""){
obj.$name = name.substring(0, name.indexOf("_"));
};
obj.$init_script = function (_arg1):void{
var _local2:String;
_local2 = name.substr((name.indexOf("_") + 1));
_arg1.$next_plate = null;
if (_local2 != "0"){
_arg1.$next_plate = _arg1.$game.$engine.$objects.GetByName(_local2);
};
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 219
//wr_HidingCave_243 (treasure_hunt_fla.wr_HidingCave_243)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_HidingCave_243 extends MovieClip {
public function wr_HidingCave_243(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateHidingCave(this.getChildAt(0), this.x, this.y, 3, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 220
//wr_HidingCaveE_286 (treasure_hunt_fla.wr_HidingCaveE_286)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_HidingCaveE_286 extends MovieClip {
public function wr_HidingCaveE_286(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateHidingCave(this.getChildAt(0), this.x, this.y, 3, false);
_arg1.$engine.AddObject(_local2);
_local2.$hiddenKirka = true;
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 221
//wr_Hook001_274 (treasure_hunt_fla.wr_Hook001_274)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Hook001_274 extends MovieClip {
public function wr_Hook001_274(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateHook(this.getChildAt(0), this.x, this.y, 3, false);
_arg1.$engine.AddObject(_local2);
_local2.$init_index = _local2.$index;
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 222
//wr_leftBoundary001_201 (treasure_hunt_fla.wr_leftBoundary001_201)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_leftBoundary001_201 extends MovieClip {
public var bbox:MovieClip;
public function wr_leftBoundary001_201(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateLevelBoundary(this.getChildAt(0), this.x, this.y);
_arg1.$engine.AddObject(_local2);
switch (name){
case "wr_bottom":
_local2.set2bottom();
break;
case "wr_left":
_local2.set2left();
break;
case "wr_right":
_local2.set2right();
break;
case "wr_top":
_local2.set2top();
break;
default:
break;
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 223
//wr_leftBoundary001copy_329 (treasure_hunt_fla.wr_leftBoundary001copy_329)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_leftBoundary001copy_329 extends MovieClip {
public var bbox:MovieClip;
public function wr_leftBoundary001copy_329(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateLevelBoundary(this.getChildAt(0), this.x, this.y);
_arg1.$engine.AddObject(_local2);
switch (name){
case "wr_bottom":
_local2.set2bottom();
break;
case "wr_left":
_local2.set2left();
break;
case "wr_right":
_local2.set2right();
break;
case "wr_top":
_local2.set2top();
break;
default:
break;
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 224
//wr_leftBoundary001copy2_330 (treasure_hunt_fla.wr_leftBoundary001copy2_330)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_leftBoundary001copy2_330 extends MovieClip {
public var bbox:MovieClip;
public function wr_leftBoundary001copy2_330(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateLevelBoundary(this.getChildAt(0), this.x, this.y);
_arg1.$engine.AddObject(_local2);
switch (name){
case "wr_bottom":
_local2.set2bottom();
break;
case "wr_left":
_local2.set2left();
break;
case "wr_right":
_local2.set2right();
break;
case "wr_top":
_local2.set2top();
break;
default:
break;
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 225
//wr_level_mines_252 (treasure_hunt_fla.wr_level_mines_252)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_level_mines_252 extends MovieClip {
public function wr_level_mines_252(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateGround(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 226
//wr_level2_208 (treasure_hunt_fla.wr_level2_208)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_level2_208 extends MovieClip {
public function wr_level2_208(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateGround(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 227
//wr_level3_233 (treasure_hunt_fla.wr_level3_233)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_level3_233 extends MovieClip {
public function wr_level3_233(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateGround(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 228
//wr_level4_283 (treasure_hunt_fla.wr_level4_283)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_level4_283 extends MovieClip {
public function wr_level4_283(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateGround(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 229
//wr_LevelExit_181 (treasure_hunt_fla.wr_LevelExit_181)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_LevelExit_181 extends MovieClip {
public function wr_LevelExit_181(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateLevelExit(this.getChildAt(0), this.x, this.y, 1);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 230
//wr_Lighters_244 (treasure_hunt_fla.wr_Lighters_244)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Lighters_244 extends MovieClip {
public function wr_Lighters_244(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateAnimSprite(this.getChildAt(0), this.x, this.y, 5, false);
_local2.$mySprite.Play(0, 2, true);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 231
//wr_Platform001_240 (treasure_hunt_fla.wr_Platform001_240)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Platform001_240 extends MovieClip {
public function wr_Platform001_240(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreatePlatform(this.getChildAt(0), this.x, this.y, 3, false);
game.$engine.AddObject(obj);
if (name != ""){
obj.$name = name;
};
obj.$init_script = function (_arg1):void{
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 232
//wr_Player_182 (treasure_hunt_fla.wr_Player_182)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Player_182 extends MovieClip {
public function wr_Player_182(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateObject(GameConstants.OBJTYPE_PLAYER, false, this.getChildAt(0), this.x, this.y);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
var script:*;
var checkpoint_object:*;
var object = _arg1;
script = function (_arg1){
object.SetPosition(game.$engine.$objects.GetByName(game.$last_checkpoint_name).GetPosition());
game.$engine.DeleteScript(_arg1);
};
game.$engine.AddScript(script);
checkpoint_object = game.$engine.$objects.GetByName(("wr_" + game.$last_checkpoint_name));
if (checkpoint_object != null){
checkpoint_object.Deactivate();
};
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 233
//wr_Pointer1_204 (treasure_hunt_fla.wr_Pointer1_204)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Pointer1_204 extends MovieClip {
public function wr_Pointer1_204(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateStatSprite(this.getChildAt(0), this.x, this.y, 5, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 234
//wr_Pointer1copy_277 (treasure_hunt_fla.wr_Pointer1copy_277)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Pointer1copy_277 extends MovieClip {
public function wr_Pointer1copy_277(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateStatSprite(this.getChildAt(0), this.x, this.y, 5, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 235
//wr_Pointer2_290 (treasure_hunt_fla.wr_Pointer2_290)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Pointer2_290 extends MovieClip {
public function wr_Pointer2_290(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateStatSprite(this.getChildAt(0), this.x, this.y, 5, true);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 236
//wr_RedGem_189 (treasure_hunt_fla.wr_RedGem_189)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_RedGem_189 extends MovieClip {
public function wr_RedGem_189(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateCollectable(GameConstants.LSTAT_REDGEM, this.getChildAt(0), this.x, this.y, 3, false);
_arg1.$engine.AddObject(_local2);
_local2.$init_index = _local2.$index;
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 237
//wr_Stone001_268 (treasure_hunt_fla.wr_Stone001_268)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Stone001_268 extends MovieClip {
public function wr_Stone001_268(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateStone(this.getChildAt(0), this.x, this.y, 3, false);
_arg1.$engine.AddObject(_local2);
_local2.$init_index = _local2.$index;
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 238
//wr_Trigger__288 (treasure_hunt_fla.wr_Trigger__288)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Trigger__288 extends MovieClip {
public function wr_Trigger__288(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateSwitch(this.getChildAt(0), this.x, this.y, 5, false);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
obj.__platform = game.$engine.$objects.GetByName("platform001");
};
obj.$script = function (_arg1):void{
_arg1.__platform.$vel.y = 1;
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 239
//wr_Trigger_001_258 (treasure_hunt_fla.wr_Trigger_001_258)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Trigger_001_258 extends MovieClip {
public function wr_Trigger_001_258(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateSwitch(this.getChildAt(0), this.x, this.y, 5, false);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
obj.__platform = game.$engine.$objects.GetByName("platform001");
};
obj.$script = function (_arg1):void{
_arg1.__platform.$vel.y = 1;
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 240
//wr_Trigger_002_263 (treasure_hunt_fla.wr_Trigger_002_263)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Trigger_002_263 extends MovieClip {
public function wr_Trigger_002_263(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateSwitch(this.getChildAt(0), this.x, this.y, 5, false);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
obj.__platform = game.$engine.$objects.GetByName("platform002");
};
obj.$script = function (_arg1):void{
_arg1.__platform.$vel.x = 1;
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 241
//wr_Trigger_002copy_273 (treasure_hunt_fla.wr_Trigger_002copy_273)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Trigger_002copy_273 extends MovieClip {
public function wr_Trigger_002copy_273(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateSwitch(this.getChildAt(0), this.x, this.y, 5, false);
game.$engine.AddObject(obj);
obj.$bReactivate = true;
obj.$ReactivateTimeout = 120;
obj.$init_script = function (_arg1):void{
obj.__plate = game.$engine.$objects.GetByName("plate001");
};
obj.$script = function (_arg1):void{
_arg1.__plate.Unhide();
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 242
//wr_Trigger_003_264 (treasure_hunt_fla.wr_Trigger_003_264)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Trigger_003_264 extends MovieClip {
public function wr_Trigger_003_264(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateSwitch(this.getChildAt(0), this.x, this.y, 5, false);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
obj.__platform = game.$engine.$objects.GetByName("platform003");
};
obj.$script = function (_arg1):void{
_arg1.__platform.$vel.y = 1;
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 243
//wr_Trigger_004_331 (treasure_hunt_fla.wr_Trigger_004_331)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Trigger_004_331 extends MovieClip {
public function wr_Trigger_004_331(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var obj:*;
var game = _arg1;
obj = game.$factory.CreateSwitch(this.getChildAt(0), this.x, this.y, 5, false);
game.$engine.AddObject(obj);
obj.$init_script = function (_arg1):void{
obj.__platform = game.$engine.$objects.GetByName("platform001");
};
obj.$script = function (_arg1):void{
_arg1.__platform.$vel.y = -1;
};
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 244
//wr_Waterfall001_221 (treasure_hunt_fla.wr_Waterfall001_221)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Waterfall001_221 extends MovieClip {
public function wr_Waterfall001_221(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateAnimSprite(this.getChildAt(0), this.x, this.y, 5, false);
_local2.$mySprite.Play(0, 0, true);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 245
//wr_Waterfall002_225 (treasure_hunt_fla.wr_Waterfall002_225)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Waterfall002_225 extends MovieClip {
public function wr_Waterfall002_225(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateAnimSprite(this.getChildAt(0), this.x, this.y, 3, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 246
//wr_Waterfall003_294 (treasure_hunt_fla.wr_Waterfall003_294)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Waterfall003_294 extends MovieClip {
public function wr_Waterfall003_294(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateAnimSprite(this.getChildAt(0), this.x, this.y, 1, false);
_local2.$mySprite.Play(0, 0, true);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 247
//wr_Waterfalls_292 (treasure_hunt_fla.wr_Waterfalls_292)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Waterfalls_292 extends MovieClip {
public function wr_Waterfalls_292(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateGround(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 248
//wr_Waterflow001_302 (treasure_hunt_fla.wr_Waterflow001_302)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Waterflow001_302 extends MovieClip {
public function wr_Waterflow001_302(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateWaterflow(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
_local2.SetFlowSpeed(4);
_local2.SetFlowDir(1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 249
//wr_Waterflow002_301 (treasure_hunt_fla.wr_Waterflow002_301)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Waterflow002_301 extends MovieClip {
public function wr_Waterflow002_301(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateWaterflow(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
_local2.SetFlowSpeed(4);
_local2.SetFlowDir(-1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 250
//wr_Waterflow003_303 (treasure_hunt_fla.wr_Waterflow003_303)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Waterflow003_303 extends MovieClip {
public function wr_Waterflow003_303(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateWaterflow(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
_local2.SetFlowSpeed(3);
_local2.SetFlowDir(1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 251
//wr_Waterflow004_295 (treasure_hunt_fla.wr_Waterflow004_295)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Waterflow004_295 extends MovieClip {
public function wr_Waterflow004_295(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateWaterflow(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
_local2.SetFlowSpeed(2);
_local2.SetFlowDir(1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 252
//wr_Waterflow006_300 (treasure_hunt_fla.wr_Waterflow006_300)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Waterflow006_300 extends MovieClip {
public function wr_Waterflow006_300(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateWaterflow(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
_local2.SetFlowSpeed(3);
_local2.SetFlowDir(-1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 253
//wr_Waterflow007_299 (treasure_hunt_fla.wr_Waterflow007_299)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Waterflow007_299 extends MovieClip {
public function wr_Waterflow007_299(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateWaterflow(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
_local2.SetFlowSpeed(2);
_local2.SetFlowDir(-1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 254
//wr_Waterflow008_304 (treasure_hunt_fla.wr_Waterflow008_304)
package treasure_hunt_fla {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.media.*;
import main.objects.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class wr_Waterflow008_304 extends MovieClip {
public function wr_Waterflow008_304(){
addFrameScript(0, frame1);
}
public function Init(_arg1){
var _local2:*;
_local2 = _arg1.$factory.CreateWaterflow(this.getChildAt(0), this.x, this.y, 1, false);
_arg1.$engine.AddObject(_local2);
_local2.SetFlowSpeed(1);
_local2.SetFlowDir(-1);
}
function frame1(){
stop();
}
}
}//package treasure_hunt_fla
Section 255
//_camera (_camera)
package {
import flash.display.*;
public dynamic class _camera extends MovieClip {
public var bbox:MovieClip;
public function _camera(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 256
//bluegem_src (bluegem_src)
package {
import flash.display.*;
public dynamic class bluegem_src extends MovieClip {
public var bbox:MovieClip;
public function bluegem_src(){
addFrameScript(0, frame1, 11, frame12);
}
function frame12(){
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package
Section 257
//Boss_src (Boss_src)
package {
import flash.display.*;
public dynamic class Boss_src extends MovieClip {
public const LABEL_WAIT = 0;
public const LABEL_ATTACK = 3;
public const LABEL_INTRO = 1;
public const LABEL_DEATH = 5;
public const LABEL_WALK = 2;
public const LABEL_IDLE = 4;
public const LABEL_PAIN = 6;
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function Boss_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 258
//BOSS_TRACK_wav (BOSS_TRACK_wav)
package {
import flash.media.*;
public dynamic class BOSS_TRACK_wav extends Sound {
}
}//package
Section 259
//c_biggem_src (c_biggem_src)
package {
import flash.display.*;
public dynamic class c_biggem_src extends MovieClip {
public const BITMAP_MIDNAME = "Biggem";
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function c_biggem_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 260
//c_bluegem_src (c_bluegem_src)
package {
import flash.display.*;
public dynamic class c_bluegem_src extends MovieClip {
public const BITMAP_MIDNAME = "Bluegem";
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function c_bluegem_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 261
//c_diagem_src (c_diagem_src)
package {
import flash.display.*;
public dynamic class c_diagem_src extends MovieClip {
public const BITMAP_MIDNAME = "Diagem";
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function c_diagem_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 262
//c_greengem_src (c_greengem_src)
package {
import flash.display.*;
public dynamic class c_greengem_src extends MovieClip {
public const BITMAP_MIDNAME = "Greengem";
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function c_greengem_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 263
//c_redgem_src (c_redgem_src)
package {
import flash.display.*;
public dynamic class c_redgem_src extends MovieClip {
public const BITMAP_MIDNAME = "Redgem";
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function c_redgem_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 264
//cave001_src (cave001_src)
package {
import flash.display.*;
public dynamic class cave001_src extends MovieClip {
public const BITMAP_MIDNAME = "HidingCave";
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function cave001_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 265
//cavebg001_src (cavebg001_src)
package {
import flash.display.*;
public dynamic class cavebg001_src extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function cavebg001_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 266
//cavebgEasy_src (cavebgEasy_src)
package {
import flash.display.*;
public dynamic class cavebgEasy_src extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function cavebgEasy_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 267
//cavebgMine_src (cavebgMine_src)
package {
import flash.display.*;
public dynamic class cavebgMine_src extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function cavebgMine_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 268
//checkpoint_src (checkpoint_src)
package {
import flash.display.*;
public dynamic class checkpoint_src extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function checkpoint_src(){
addFrameScript(0, frame1, 29, frame30);
}
function frame1(){
stop();
}
function frame30(){
stop();
}
}
}//package
Section 269
//darkwing_source (darkwing_source)
package {
import flash.display.*;
public dynamic class darkwing_source extends MovieClip {
public const LABEL_SWITCH = 13;
public const LABEL_FALLING = 7;
public const LABEL_UNHIDE = 12;
public const LABEL_INTRO = 0;
public const LABEL_DEATH = 10;
public const LABEL_WALK = 2;
public const LABEL_IDLE = 9;
public const LABEL_JUMPING = 5;
public const LABEL_COVER = 1;
public const LABEL_CROUCH = 4;
public const LABEL_HOOK = 14;
public const LABEL_HIDE = 11;
public const LABEL_JUMP = 6;
public const LABEL_SHOOT = 3;
public const LABEL_HANG = 8;
public var bbox:MovieClip;
public var hook_box:MovieClip;
public var draw_frame:MovieClip;
public function darkwing_source(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 270
//darkwing2_source (darkwing2_source)
package {
import flash.display.*;
public dynamic class darkwing2_source extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function darkwing2_source(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 271
//die_wav (die_wav)
package {
import flash.media.*;
public dynamic class die_wav extends Sound {
}
}//package
Section 272
//digplate001_src (digplate001_src)
package {
import flash.display.*;
public dynamic class digplate001_src extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function digplate001_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 273
//digplate002_src (digplate002_src)
package {
import flash.display.*;
public dynamic class digplate002_src extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function digplate002_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 274
//earth001_src (earth001_src)
package {
import flash.display.*;
public dynamic class earth001_src extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function earth001_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 275
//earth002_src (earth002_src)
package {
import flash.display.*;
public dynamic class earth002_src extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function earth002_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 276
//earth003_src (earth003_src)
package {
import flash.display.*;
public dynamic class earth003_src extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function earth003_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 277
//earth005_src (earth005_src)
package {
import flash.display.*;
public dynamic class earth005_src extends MovieClip {
public const LABEL_FALL = 2;
public const LABEL_IDLE = 0;
public const LABEL_SHAKE = 1;
public const BITMAP_MIDNAME = "FallingGround";
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function earth005_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 278
//fall_wav (fall_wav)
package {
import flash.media.*;
public dynamic class fall_wav extends Sound {
}
}//package
Section 279
//Fireup_src (Fireup_src)
package {
import flash.display.*;
public dynamic class Fireup_src extends MovieClip {
public const BITMAP_MIDNAME = "Fireup";
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function Fireup_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 280
//game (game)
package {
import main.engine.*;
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.utils.*;
import main.*;
import flash.net.*;
import flash.text.*;
import flash.filters.*;
public class game extends MovieClip {
public const SCOREVAL_REDGEM = 250;
public const SCORE_TRYBESTGAME = 13;
public const SCOREVAL_NICETRY = 100;
public const $ZERO_POINT;
public const SCOREVAL_DIAGEM = 1000;
public const SCOREVAL_GREENGEM = 10;
public const SCORE_SHOWBLUEGEMS = 2;
public const SCOREVAL_FLASHBONUS = 5000;
public const SCORE_PRELOADTEXTS = 0;
public const SCOREVAL_BIGGEM = 10000;
public const SCOREVAL_GEMMASTER = 10000;
public const SCORE_SHOWDIAGEMS = 4;
public const SCORE_GEMMASTERBONUS = 10;
public const SCORE_FLASHBONUS = 11;
public const SCORE_TRYGEMMASTERBONUS = 12;
public const SCORE_AWESOMEBONUS = 8;
public const SCORE_NICETRYBONUS = 9;
public const SCORE_SHOWTIME = 6;
public const SCORE_SHOWBESTLEVEL = 14;
public const SCORE_SHOWBESTGAME = 15;
public const SCORE_SHOWGREENGEMS = 1;
public const SCORE_SHOWREDGEMS = 3;
public const SCOREVAL_SECONDBONUS = 1;
public const SCOREVAL_AWESOME = 1000;
public const SCORE_SHOWBUTTONS = 7;
public const SCOREVAL_BLUEGEM = 50;
public const SCORE_SHOWBIGGEMS = 5;
public var $treasures:Number;// = 0
public var $PLAYER;// = null
public var $game_goblins_counter:Number;// = 0
public var $Version;// = 0.8216
public var $bHardcoreEnabled:Boolean;// = false
public var $int1:int;// = 0
public var $int2:int;// = 0
public var $int3:int;// = 0
public var $CAMERA;// = null
public var $player_lives:Number;// = 0
public var $int4:int;// = 0
public var $OBJECT;
public var $factory:IFactory;
public var i:uint;// = 0
public var j:uint;// = 0
public var k:uint;// = 0
public var $game_grade;// = 0
public var menu_mc:MovieClip;
public var z:uint;// = 0
public var r;
public var engine_window:MovieClip;
public var $bBossTalk:Boolean;// = true
public var $bFirstRun;// = true
public var $FLAG1:Boolean;
public var $FLAG3:Boolean;
public var $FLAG4:Boolean;
public var $FLAG5:Boolean;
public var $FLAG2:Boolean;
public var $level_biggems:Number;// = 0
public var $best_time:Boolean;// = false
public var $MC:MovieClip;
public var $score_timer:Number;// = 0
public var $temp_biggems:Number;// = 0
public var $temp_bluegems:Number;// = 0
public var $level_grade:Number;// = 0
public var $PauseTimeout;// = 10
public var $num_redgems:Number;// = 0
public var $diagems:Number;// = 0
public var $greengems:Number;// = 0
public var BACKGROUNDS;
public var $level_greengems:Number;// = 0
public var $time:Number;// = 0
public var $num_bluegems:Number;// = 0
public var ii:uint;// = 0
public var $debug_surface:Graphics;
public var $GAME_STATS;
public var jj:uint;// = 0
public var $easy_levels_discovered:Number;// = 1
public var $last_checkpoint_name:String;// = ""
public var kk:uint;// = 0
public var $num_greengems:Number;// = 0
public var $bTrainingMode:Boolean;// = false
public var $nextScoreState:uint;// = 0
public var $onkong:Boolean;// = false
public var $Achievements;
public var $bUseKong:Boolean;// = false
public var $num_biggems:Number;// = 0
public var $EASY_LEVELS;
public var $SFX;// = null
public var $level_time:Number;// = 0
public var isLoaded;// = false
public var $bGame:Boolean;// = false
private var kongregate;
public var $level_bluegems:Number;// = 0
public var $POINT1;
public var $POINT2;
public var $EASY_LEVEL_TIMES;
public var $gems_counter:Number;// = 0
public var resources_mc:MovieClip;
public var $achievements_levels_mode:Boolean;// = true
public var HUD_mc:MovieClip;
public var $User;// = "user"
public var $temp_total_score:Number;// = 0
public var $level_diagems:Number;// = 0
public var $PauseTime;// = 0
public var $shown_value:Number;// = 0
public var $HUD;// = null
public var $current_music;
public var $game_mode:Boolean;// = false
public var $temp_diagems:Number;// = 0
public var $level_help;
public var $coins:Number;// = 0
public var sindeces;
public var levels_mc:MovieClip;
public var $SOUNDS;
public var easy_levels_mc:MovieClip;
public var $golds:Number;// = 0
public var $redgems:Number;// = 0
public var $calcScoreState:uint;// = 0
public var $float1:Number;// = 0
public var $float2:Number;// = 0
public var $float3:Number;// = 0
public var $float4:Number;// = 0
public var $resources:MovieClip;
public var $BulletManager;// = null
public var $bluegems:Number;// = 0
public var $TEMP_GAME_STATS;
public var $LEVELS;
public var $achievements_current_level:Number;// = 0
public var $current_game_level;// = 0
public var $temp_gems_counter:Number;// = 0
public var _mochi:MochiWrapper;
public var $UPtest;
public var $current_game_mode;// = false
public var kong_mc:MovieClip;
public var $temp_greengems:Number;// = 0
public var $level_help_completed:Boolean;// = false
public var level_help:MovieClip;
public var $num_diagems:Number;// = 0
public var $total_score:Number;// = 0
public var mochi_mc;// = null
public var zz:uint;// = 0
public var GRID:Grid;
public var $temp_level_time:Number;// = 0
public var $biggems:Number;// = 0
public var $game_gems_counter:Number;// = 0
public var $engine:ArcadeEngine;
public var COLORTRANSFORM:ColorTransform;
public var $level_removed_objects_length;// = 0
public var $level_score:Number;// = 0
public var $levels_discovered:Number;// = 1
public var $UPtest2;
public var $MENU;// = null
public var $Savegame_slot;// = "ts"
public var $lev_grade:Number;// = 0
public var $goblins_counter:Number;// = 0
public var $current_level:uint;// = 0
public var $bEasyMode:Boolean;// = false
public var $Cookie;
public var $contextPause:Boolean;// = false
public var $level_redgems:Number;// = 0
public var $CURRENT_GAME_STATS;
public var $temp_redgems:Number;// = 0
public var $LEVELS_STATS;
public var $level_removed_objects;
public var $LEVEL_TIMES;
public var $temp_goblins_counter:Number;// = 0
public function game():void{
$Version = 0.8216;
$bGame = false;
$PauseTimeout = 10;
$PauseTime = 0;
$contextPause = false;
$bFirstRun = true;
$bUseKong = false;
$onkong = false;
$MENU = null;
$HUD = null;
$SFX = null;
$BulletManager = null;
$CAMERA = null;
BACKGROUNDS = new Array();
$PLAYER = null;
COLORTRANSFORM = new ColorTransform();
i = 0;
j = 0;
k = 0;
z = 0;
ii = 0;
jj = 0;
kk = 0;
zz = 0;
$int1 = 0;
$int2 = 0;
$int3 = 0;
$int4 = 0;
$float1 = 0;
$float2 = 0;
$float3 = 0;
$float4 = 0;
$ZERO_POINT = new Point(0, 0);
$POINT1 = new Point(0, 0);
$POINT2 = new Point(0, 0);
$UPtest = new Vector2D(0.0001, -1);
$UPtest2 = new Vector2D(0.0001, 1);
$SOUNDS = new Array();
$calcScoreState = 0;
$nextScoreState = 0;
$score_timer = 0;
$shown_value = 0;
$level_removed_objects = new Array();
$level_removed_objects_length = 0;
$last_checkpoint_name = "";
$temp_greengems = 0;
$temp_bluegems = 0;
$temp_redgems = 0;
$temp_diagems = 0;
$temp_biggems = 0;
$temp_level_time = 0;
$greengems = 0;
$bluegems = 0;
$redgems = 0;
$diagems = 0;
$biggems = 0;
$level_time = 0;
$coins = 0;
$golds = 0;
$treasures = 0;
$time = 0;
$level_greengems = 0;
$level_bluegems = 0;
$level_redgems = 0;
$level_diagems = 0;
$level_biggems = 0;
$level_score = 0;
$best_time = false;
$level_grade = 0;
$lev_grade = 0;
$bTrainingMode = false;
$bEasyMode = false;
$bBossTalk = true;
$bHardcoreEnabled = false;
$LEVELS = new Array();
$EASY_LEVELS = new Array();
$current_level = 0;
$level_help_completed = false;
$LEVEL_TIMES = new Array();
$EASY_LEVEL_TIMES = new Array();
$num_greengems = 0;
$num_bluegems = 0;
$num_redgems = 0;
$num_diagems = 0;
$num_biggems = 0;
$total_score = 0;
$temp_total_score = 0;
$player_lives = 0;
$levels_discovered = 1;
$easy_levels_discovered = 1;
$User = "user";
$Savegame_slot = "ts";
$game_grade = 0;
$Achievements = new Array();
$gems_counter = 0;
$goblins_counter = 0;
$game_gems_counter = 0;
$game_goblins_counter = 0;
$temp_gems_counter = 0;
$temp_goblins_counter = 0;
$LEVELS_STATS = new Array();
$GAME_STATS = new Array();
$TEMP_GAME_STATS = new Array();
$CURRENT_GAME_STATS = new Array();
$game_mode = false;
$current_game_level = 0;
$current_game_mode = false;
$achievements_levels_mode = true;
$achievements_current_level = 0;
isLoaded = false;
mochi_mc = null;
addFrameScript(0, frame1);
super();
}
public function __continueFunc(_arg1:MouseEvent):void{
$engine.$sound.StopSounds();
$MENU.removeEventListener(KeyboardEvent.KEY_DOWN, GameoverKeyFunc);
$MENU.gotoAndPlay("GameOver_fadeout");
Continue();
}
public function GameOver():void{
$bGame = false;
$engine.$sound.StopSounds();
$current_music = $engine.$sound.Play($SOUNDS[GameConstants.M_LOOSE_TRACK]);
$engine.HideFPS();
$MENU.gotoAndPlay("GameOver");
DestroyLevel();
$temp_greengems = $greengems;
$temp_bluegems = $bluegems;
$temp_redgems = $redgems;
$temp_diagems = $diagems;
$temp_biggems = $biggems;
$temp_level_time = $level_time;
$temp_gems_counter = $gems_counter;
$temp_goblins_counter = $goblins_counter;
}
public function ShowLevelDescript():void{
if ($current_level > 7){
$engine.$sound.StopSounds();
$current_music = $engine.$sound.Play($SOUNDS[GameConstants.M_TITLE_TRACK], true);
$MENU.gotoAndPlay("outro");
return;
};
if (!$level_help_completed){
$MENU.gotoAndStop("empty_frame");
InitLevel();
return;
};
$MENU.cave_number.text = (("CAVE #" + ($current_level + 1)) + "/8");
switch ($current_level){
case 0:
$MENU.level_descript.text = "Just in and out";
break;
case 1:
$MENU.level_descript.text = "Not enough gems";
break;
case 2:
$MENU.level_descript.text = "Easy was a wrong word";
break;
case 3:
$MENU.level_descript.text = "Abandoned mine";
break;
case 4:
$MENU.level_descript.text = "Goblins!";
break;
case 5:
$MENU.level_descript.text = "Great waterfalls";
break;
case 6:
$MENU.level_descript.text = "Treasure keeper";
break;
case 7:
$MENU.level_descript.text = "Up!";
break;
};
}
public function ChooseGift():void{
$bHardcoreEnabled = true;
if ($Cookie.data.game_grade == 0){
$MENU.gotoAndStop("gift1");
$MENU.pic_mc.gotoAndPlay("gift1");
return;
};
if ($Cookie.data.game_grade == 1){
$MENU.gotoAndStop("gift2");
$MENU.pic_mc.gotoAndPlay("gift2");
return;
};
if ($Cookie.data.game_grade == 2){
$MENU.gotoAndStop("gift3");
$MENU.pic_mc.gotoAndPlay("gift3");
return;
};
}
public function GameoverScreenInit():void{
DestroyLevel();
if ($bTrainingMode){
$MENU.total_score.visible = false;
} else {
$MENU.total_score.visible = true;
$MENU.total_score.text = ("TOTAL SCORE: " + $total_score);
};
$MENU.__over.addEventListener(MouseEvent.MOUSE_DOWN, __overFunc);
if ($player_lives > 0){
$MENU.__continue.visible = true;
$MENU.__continue.addEventListener(MouseEvent.MOUSE_DOWN, __continueFunc);
} else {
$MENU.__continue.visible = true;
$MENU.__continue.addEventListener(MouseEvent.MOUSE_DOWN, __overFunc);
};
$MENU.addEventListener(KeyboardEvent.KEY_DOWN, GameoverKeyFunc);
if (((((!($bTrainingMode)) && (!(($total_score == 0))))) && (($player_lives == 0)))){
$MENU._submit_text.visible = true;
$MENU._submit.visible = true;
$MENU._submit.addEventListener(MouseEvent.MOUSE_DOWN, __submitScores);
} else {
$MENU._submit_text.visible = false;
$MENU._submit.visible = false;
};
}
public function NextLevel():void{
if (((($current_level == 7)) && (!($bTrainingMode)))){
$bHardcoreEnabled = true;
};
SaveStats();
$current_level++;
if ($bEasyMode){
if ($easy_levels_discovered < ($current_level + 1)){
$easy_levels_discovered = ($current_level + 1);
};
} else {
if ($levels_discovered < ($current_level + 1)){
$levels_discovered = ($current_level + 1);
};
};
ResetLevelStat();
$player_lives = 3;
}
public function InitLevel():void{
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
$bGame = true;
$engine.$sound.StopSounds();
$current_music = $engine.$sound.Play($SOUNDS[GameConstants.M_LEVEL_TRACK], true);
$engine.Reset();
if (!$level_help_completed){
_local2 = MovieClip($level_help.wr_bounds.getChildByName("level_bounds"));
_local3 = MovieClip($level_help.wr_bounds.getChildByName("level_cell"));
_local4 = Math.ceil(Math.max(_local2.width, _local2.height));
_local5 = Math.ceil((_local4 / Math.ceil(_local3.width)));
$engine.$renderer.SetGRID(_local4, _local5);
$engine.$collider.SetGRID(_local4, _local5);
_local1 = 0;
while (_local1 < $level_help.numChildren) {
if (($level_help.getChildAt(_local1) is MovieClip)){
MovieClip($level_help.getChildAt(_local1)).Init(this);
};
_local1++;
};
} else {
if ($bEasyMode){
_local2 = MovieClip($EASY_LEVELS[$current_level].wr_bounds.getChildByName("level_bounds"));
_local3 = MovieClip($EASY_LEVELS[$current_level].wr_bounds.getChildByName("level_cell"));
_local4 = Math.ceil(Math.max(_local2.width, _local2.height));
_local5 = Math.ceil((_local4 / Math.ceil(_local3.width)));
$engine.$renderer.SetGRID(_local4, _local5);
$engine.$collider.SetGRID(_local4, _local5);
_local1 = 0;
while (_local1 < $EASY_LEVELS[$current_level].numChildren) {
if (($EASY_LEVELS[$current_level].getChildAt(_local1) is MovieClip)){
MovieClip($EASY_LEVELS[$current_level].getChildAt(_local1)).Init(this);
};
_local1++;
};
if ($current_level == 6){
$engine.$sound.StopSounds();
$current_music = $engine.$sound.Play($SOUNDS[GameConstants.M_BOSS_TRACK], true);
};
} else {
_local2 = MovieClip($LEVELS[$current_level].wr_bounds.getChildByName("level_bounds"));
_local3 = MovieClip($LEVELS[$current_level].wr_bounds.getChildByName("level_cell"));
_local4 = Math.ceil(Math.max(_local2.width, _local2.height));
_local5 = Math.ceil((_local4 / Math.ceil(_local3.width)));
$engine.$renderer.SetGRID(_local4, _local5);
$engine.$collider.SetGRID(_local4, _local5);
_local1 = 0;
while (_local1 < $LEVELS[$current_level].numChildren) {
if (($LEVELS[$current_level].getChildAt(_local1) is MovieClip)){
MovieClip($LEVELS[$current_level].getChildAt(_local1)).Init(this);
};
_local1++;
};
if ($current_level == 6){
$engine.$sound.StopSounds();
$current_music = $engine.$sound.Play($SOUNDS[GameConstants.M_BOSS_TRACK], true);
};
};
};
$engine.InitObjects();
_local1 = 0;
while (_local1 < $level_removed_objects_length) {
$engine.$objects.DeleteObject($level_removed_objects[_local1]);
_local1++;
};
$engine.$renderer.SortObjects();
$engine.$collider.SortObjects();
$engine.$renderer.ObjectsToGrid();
$engine.$collider.ObjectsToGrid();
$engine.$renderer.DrawGRID();
$engine.ShowFPS();
ResetHUD();
}
public function ScoresSkipKeyFunc(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == 32){
SkipScores();
$MENU.removeEventListener(KeyboardEvent.KEY_DOWN, ScoresSkipKeyFunc);
};
}
private function loadComplete(_arg1:Event):void{
kongregate = _arg1.target.content;
kongregate.services.connect();
$bUseKong = true;
addEventListener(Event.ENTER_FRAME, PreloadLevels);
}
public function kong_done():void{
this.menu_mc.visible = true;
this.removeChild(this.kong_mc);
addEventListener(Event.ENTER_FRAME, PreloadLevels);
}
private function ioErrorHandler(_arg1:Event):void{
$bUseKong = false;
addEventListener(Event.ENTER_FRAME, PreloadLevels);
}
function frame1(){
stop();
}
public function AddLevelStat(_arg1:uint):void{
switch (_arg1){
case GameConstants.LSTAT_GREENGEM:
$temp_gems_counter++;
$temp_greengems++;
$HUD.greengems.text = ((("x" + $temp_greengems) + "/") + $level_greengems);
$HUD.greengem.play();
break;
case GameConstants.LSTAT_BLUEGEM:
$temp_gems_counter++;
$temp_bluegems++;
$HUD.bluegems.text = ((("x" + $temp_bluegems) + "/") + $level_bluegems);
$HUD.bluegem.play();
break;
case GameConstants.LSTAT_REDGEM:
$temp_gems_counter++;
$temp_redgems++;
$HUD.redgems.text = ((("x" + $temp_redgems) + "/") + $level_redgems);
$HUD.redgem.play();
break;
case GameConstants.LSTAT_DIAGEM:
$temp_gems_counter++;
$temp_diagems++;
$HUD.diagems.text = ((("x" + $temp_diagems) + "/") + $level_diagems);
$HUD.diagem.play();
break;
case GameConstants.LSTAT_BIGGEM:
$temp_gems_counter++;
$temp_biggems++;
$HUD.biggems.text = ((("x" + $temp_biggems) + "/") + $level_biggems);
$HUD.biggem.play();
break;
case GameConstants.LSTAT_TIME:
$temp_level_time++;
if (($temp_level_time - (Math.floor(($temp_level_time / 60)) * 60)) < 10){
$HUD.level_time.text = ((Math.floor(($temp_level_time / 60)) + ":0") + ($temp_level_time - (Math.floor(($temp_level_time / 60)) * 60)));
} else {
$HUD.level_time.text = ((Math.floor(($temp_level_time / 60)) + ":") + ($temp_level_time - (Math.floor(($temp_level_time / 60)) * 60)));
};
break;
case GameConstants.LSTAT_GOBLIN:
$temp_goblins_counter++;
break;
case GameConstants.LSTAT_BOSS:
if (!$Achievements[GameConstants.A_BOSS_DEFEATED]){
$engine.$sound.Play($SOUNDS[GameConstants.S_ACHIEVEMENT]);
$MENU.login.gotoAndPlay("aboss");
$Achievements[GameConstants.A_BOSS_DEFEATED] = true;
};
break;
case GameConstants.LSTAT_GOLDKIRKA:
if (!$Achievements[GameConstants.A_GOLD_KIRKA_FOUND]){
$engine.$sound.Play($SOUNDS[GameConstants.S_ACHIEVEMENT]);
$MENU.login.gotoAndPlay("agoldkirka");
$Achievements[GameConstants.A_GOLD_KIRKA_FOUND] = true;
};
break;
default:
break;
};
if ((((($game_gems_counter + $temp_gems_counter) == 50)) && (!($Achievements[GameConstants.A_COLLECTED_GEMS_50])))){
$engine.$sound.Play($SOUNDS[GameConstants.S_ACHIEVEMENT]);
$MENU.login.gotoAndPlay("a50gems");
$Achievements[GameConstants.A_COLLECTED_GEMS_50] = true;
};
if ((((($game_gems_counter + $temp_gems_counter) == 100)) && (!($Achievements[GameConstants.A_COLLECTED_GEMS_100])))){
$engine.$sound.Play($SOUNDS[GameConstants.S_ACHIEVEMENT]);
$MENU.login.gotoAndPlay("a100gems");
$Achievements[GameConstants.A_COLLECTED_GEMS_100] = true;
};
if ((((($game_gems_counter + $temp_gems_counter) == 210)) && (!($Achievements[GameConstants.A_COLLECTED_GEMS_300])))){
$engine.$sound.Play($SOUNDS[GameConstants.S_ACHIEVEMENT]);
$MENU.login.gotoAndPlay("a300gems");
$Achievements[GameConstants.A_COLLECTED_GEMS_300] = true;
};
if ((((($game_goblins_counter + $temp_goblins_counter) == 5)) && (!($Achievements[GameConstants.A_DESTROY_10_GOBLINS])))){
$engine.$sound.Play($SOUNDS[GameConstants.S_ACHIEVEMENT]);
$MENU.login.gotoAndPlay("a10goblins");
$Achievements[GameConstants.A_DESTROY_10_GOBLINS] = true;
};
if ((((($game_goblins_counter + $temp_goblins_counter) == 10)) && (!($Achievements[GameConstants.A_DESTROY_30_GOBLINS])))){
$engine.$sound.Play($SOUNDS[GameConstants.S_ACHIEVEMENT]);
$MENU.login.gotoAndPlay("a30goblins");
$Achievements[GameConstants.A_DESTROY_30_GOBLINS] = true;
};
}
public function ZoomIn():void{
$engine.$renderer.ZoomIn();
}
public function Continue():void{
$player_lives--;
$level_greengems = 0;
$level_bluegems = 0;
$level_redgems = 0;
$level_diagems = 0;
$level_biggems = 0;
$gems_counter = 0;
$goblins_counter = 0;
$level_removed_objects.length = $level_removed_objects_length;
InitLevel();
}
public function __submitFromLogin(_arg1):void{
mochi_mc.ShowLeaderboard($total_score, _arg1);
}
public function ShowEndGameStats(_arg1:MovieClip, _arg2:uint):void{
var _local3:*;
_arg1._item.gotoAndStop(_arg2);
_arg1.greengem_val.text = "0";
_arg1.bluegem_val.text = "0";
_arg1.redgem_val.text = "0";
_arg1.diagem_val.text = "0";
_arg1.biggem_val.text = "0";
_arg1.timer_val.text = "0";
_arg1.total_score_val.text = $CURRENT_GAME_STATS[7].$total_score;
_local3 = 0;
while (_local3 < 8) {
_arg1.greengem_val.text = (Number(_arg1.greengem_val.text) + $CURRENT_GAME_STATS[_local3].$greengems);
_arg1.bluegem_val.text = (Number(_arg1.bluegem_val.text) + $CURRENT_GAME_STATS[_local3].$bluegems);
_arg1.redgem_val.text = (Number(_arg1.redgem_val.text) + $CURRENT_GAME_STATS[_local3].$redgems);
_arg1.diagem_val.text = (Number(_arg1.diagem_val.text) + $CURRENT_GAME_STATS[_local3].$diagems);
_arg1.biggem_val.text = (Number(_arg1.biggem_val.text) + $CURRENT_GAME_STATS[_local3].$biggems);
_arg1.timer_val.text = (Number(_arg1.greengem_val.text) + $CURRENT_GAME_STATS[_local3].$level_time);
_local3++;
};
if ((Number(_arg1.timer_val.text) - (Math.floor((Number(_arg1.timer_val.text) / 60)) * 60)) < 10){
_arg1.timer_val.text = ((Math.floor((Number(_arg1.timer_val.text) / 60)) + ":0") + (Number(_arg1.timer_val.text) - (Math.floor((Number(_arg1.timer_val.text) / 60)) * 60)));
} else {
_arg1.timer_val.text = ((Math.floor((Number(_arg1.timer_val.text) / 60)) + ":") + (Number(_arg1.timer_val.text) - (Math.floor((Number(_arg1.timer_val.text) / 60)) * 60)));
};
if ($bEasyMode){
mochi_mc.EndPlay();
} else {
mochi_mc.EndPlay();
};
_arg1._score_submit.gotoAndStop(2);
$MENU.login.gotoAndPlay(3);
$total_score = $CURRENT_GAME_STATS[7].$total_score;
}
public function Update(_arg1:Event):void{
$engine.Update();
if ($PauseTime < $PauseTimeout){
$PauseTime++;
};
if ($engine.$input.keys[GameConstants.KEYS.$pause]){
HandleGamePause();
};
}
public function SaveStats():void{
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local1 = 0;
if ($level_score > $LEVELS_STATS[$current_level].$level_score){
$LEVELS_STATS[$current_level].$greengems = $greengems;
$LEVELS_STATS[$current_level].$bluegems = $bluegems;
$LEVELS_STATS[$current_level].$redgems = $redgems;
$LEVELS_STATS[$current_level].$diagems = $diagems;
$LEVELS_STATS[$current_level].$biggems = $biggems;
$LEVELS_STATS[$current_level].$num_greengems = $level_greengems;
$LEVELS_STATS[$current_level].$num_bluegems = $level_bluegems;
$LEVELS_STATS[$current_level].$num_redgems = $level_redgems;
$LEVELS_STATS[$current_level].$num_diagems = $level_diagems;
$LEVELS_STATS[$current_level].$num_biggems = $level_biggems;
$LEVELS_STATS[$current_level].$level_time = $level_time;
$LEVELS_STATS[$current_level].$level_score = $level_score;
$LEVELS_STATS[$current_level].$level_grade = $level_grade;
$LEVELS_STATS[$current_level].$bEasyMode = $bEasyMode;
};
if (!$bTrainingMode){
$TEMP_GAME_STATS[$current_level].$greengems = $greengems;
$TEMP_GAME_STATS[$current_level].$bluegems = $bluegems;
$TEMP_GAME_STATS[$current_level].$redgems = $redgems;
$TEMP_GAME_STATS[$current_level].$diagems = $diagems;
$TEMP_GAME_STATS[$current_level].$biggems = $biggems;
$TEMP_GAME_STATS[$current_level].$num_greengems = $level_greengems;
$TEMP_GAME_STATS[$current_level].$num_bluegems = $level_bluegems;
$TEMP_GAME_STATS[$current_level].$num_redgems = $level_redgems;
$TEMP_GAME_STATS[$current_level].$num_diagems = $level_diagems;
$TEMP_GAME_STATS[$current_level].$num_biggems = $level_biggems;
$TEMP_GAME_STATS[$current_level].$level_time = $level_time;
$TEMP_GAME_STATS[$current_level].$level_score = $level_score;
$TEMP_GAME_STATS[$current_level].$total_score = $total_score;
$TEMP_GAME_STATS[$current_level].$level_grade = $level_grade;
$TEMP_GAME_STATS[$current_level].$bEasyMode = $bEasyMode;
$CURRENT_GAME_STATS[$current_level].$greengems = $greengems;
$CURRENT_GAME_STATS[$current_level].$bluegems = $bluegems;
$CURRENT_GAME_STATS[$current_level].$redgems = $redgems;
$CURRENT_GAME_STATS[$current_level].$diagems = $diagems;
$CURRENT_GAME_STATS[$current_level].$biggems = $biggems;
$CURRENT_GAME_STATS[$current_level].$num_greengems = $level_greengems;
$CURRENT_GAME_STATS[$current_level].$num_bluegems = $level_bluegems;
$CURRENT_GAME_STATS[$current_level].$num_redgems = $level_redgems;
$CURRENT_GAME_STATS[$current_level].$num_diagems = $level_diagems;
$CURRENT_GAME_STATS[$current_level].$num_biggems = $level_biggems;
$CURRENT_GAME_STATS[$current_level].$level_time = $level_time;
$CURRENT_GAME_STATS[$current_level].$level_score = $level_score;
$CURRENT_GAME_STATS[$current_level].$total_score = $total_score;
$CURRENT_GAME_STATS[$current_level].$level_grade = $level_grade;
$CURRENT_GAME_STATS[$current_level].$bEasyMode = $bEasyMode;
if (((($current_level == 7)) && (($total_score > $GAME_STATS[$current_level].$total_score)))){
i = 0;
while (i < 8) {
$GAME_STATS[i].$greengems = $TEMP_GAME_STATS[i].$greengems;
$GAME_STATS[i].$bluegems = $TEMP_GAME_STATS[i].$bluegems;
$GAME_STATS[i].$redgems = $TEMP_GAME_STATS[i].$redgems;
$GAME_STATS[i].$diagems = $TEMP_GAME_STATS[i].$diagems;
$GAME_STATS[i].$biggems = $TEMP_GAME_STATS[i].$biggems;
$GAME_STATS[i].$num_greengems = $TEMP_GAME_STATS[i].$num_greengems;
$GAME_STATS[i].$num_bluegems = $TEMP_GAME_STATS[i].$num_bluegems;
$GAME_STATS[i].$num_redgems = $TEMP_GAME_STATS[i].$num_redgems;
$GAME_STATS[i].$num_diagems = $TEMP_GAME_STATS[i].$num_diagems;
$GAME_STATS[i].$num_biggems = $TEMP_GAME_STATS[i].$num_biggems;
$GAME_STATS[i].$level_time = $TEMP_GAME_STATS[i].$level_time;
$GAME_STATS[i].$level_score = $TEMP_GAME_STATS[i].$level_score;
$GAME_STATS[i].$total_score = $TEMP_GAME_STATS[i].$total_score;
$GAME_STATS[i].$level_grade = $TEMP_GAME_STATS[i].$level_grade;
$GAME_STATS[i].$bEasyMode = $TEMP_GAME_STATS[i].$bEasyMode;
_local1 = (_local1 + (($TEMP_GAME_STATS[i].$num_greengems * SCOREVAL_GREENGEM) + SCOREVAL_AWESOME));
_local1 = (_local1 + (($TEMP_GAME_STATS[i].$num_bluegems * SCOREVAL_BLUEGEM) + SCOREVAL_AWESOME));
_local1 = (_local1 + (($TEMP_GAME_STATS[i].$num_redgems * SCOREVAL_REDGEM) + SCOREVAL_AWESOME));
_local1 = (_local1 + (($TEMP_GAME_STATS[i].$num_diagems * SCOREVAL_DIAGEM) + SCOREVAL_AWESOME));
_local1 = (_local1 + (($TEMP_GAME_STATS[i].$num_biggems * SCOREVAL_BIGGEM) + SCOREVAL_AWESOME));
_local1 = (_local1 + SCOREVAL_GEMMASTER);
i++;
};
$game_grade = 0;
if (((($total_score > 250000)) && (($total_score < 425000)))){
$game_grade = 1;
};
if ($total_score >= 425000){
$game_grade = 2;
};
switch ($game_grade){
case 0:
if (!$Achievements[GameConstants.A_GET_A_NECKLE]){
$Achievements[GameConstants.A_GET_A_NECKLE] = true;
};
break;
case 1:
if (!$Achievements[GameConstants.A_GET_A_DIADEM]){
$Achievements[GameConstants.A_GET_A_DIADEM] = true;
};
break;
case 2:
if (!$Achievements[GameConstants.A_GET_A_CROWN]){
$Achievements[GameConstants.A_GET_A_CROWN] = true;
};
break;
};
_local5 = 0;
i = 0;
while (i < 8) {
_local5 = (_local5 + $GAME_STATS[i].$level_time);
i++;
};
if (((((($bEasyMode == true)) && ((_local5 < (60 * 12))))) && (!($Achievements[GameConstants.A_GAME_COMPLETE_EASY_IN_4MINS])))){
$Achievements[GameConstants.A_GAME_COMPLETE_EASY_IN_4MINS] = true;
};
if (((((($bEasyMode == false)) && ((_local5 < (60 * 15))))) && (!($Achievements[GameConstants.A_GAME_COMPLETE_HARDCORE_IN_8MINS])))){
$Achievements[GameConstants.A_GAME_COMPLETE_HARDCORE_IN_8MINS] = true;
};
if ($bEasyMode){
$Achievements[GameConstants.A_GAME_COMPLETE_EASY] = true;
} else {
$Achievements[GameConstants.A_GAME_COMPLETE_HARDCORE] = true;
};
};
};
_local2 = Number($Cookie.data.game_grade);
_local3 = Number($Cookie.data.current_game_level);
_local4 = Boolean($Cookie.data.current_game_mode);
if (!$bTrainingMode){
$game_gems_counter = ($game_gems_counter + $gems_counter);
$game_goblins_counter = ($game_goblins_counter + $goblins_counter);
};
$Cookie.clear();
$Cookie.data.Saved = true;
$Cookie.data.Version = $Version;
$Cookie.data.Achievements = $Achievements;
$Cookie.data.LEVELS_STATS = $LEVELS_STATS;
$Cookie.data.GAME_STATS = $GAME_STATS;
$Cookie.data.CURRENT_GAME_STATS = $CURRENT_GAME_STATS;
$Cookie.data.levels_discovered = $levels_discovered;
$Cookie.data.easy_levels_discovered = $easy_levels_discovered;
$Cookie.data.level_help_completed = $level_help_completed;
if ($current_level == 7){
};
$Cookie.data.bHardcoreEnabled = $bHardcoreEnabled;
$Cookie.data.game_gems_counter = $game_gems_counter;
$Cookie.data.game_goblins_counter = $game_goblins_counter;
$Cookie.data.total_score = $total_score;
if (!$bTrainingMode){
$Cookie.data.current_game_level = ($current_level + 1);
$Cookie.data.current_game_mode = $bEasyMode;
} else {
$Cookie.data.current_game_level = _local3;
$Cookie.data.current_game_mode = _local4;
};
if (_local1 != 0){
$Cookie.data.game_grade = $game_grade;
} else {
$Cookie.data.game_grade = _local2;
};
$Cookie.flush();
}
public function ScoresReplayKeyFunc(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == 65){
$MENU.play();
$MENU.removeEventListener(KeyboardEvent.KEY_DOWN, ScoresReplayKeyFunc);
ReplayLevel();
};
}
public function PreloadLevels(_arg1:Event):void{
$LEVELS.push(this.levels_mc.getChildAt(0));
$LEVEL_TIMES.push(MovieClip(this.levels_mc.getChildAt(0)).GetLevelTime());
$EASY_LEVELS.push(this.easy_levels_mc.getChildAt(0));
$EASY_LEVEL_TIMES.push(MovieClip(this.easy_levels_mc.getChildAt(0)).GetLevelTime());
if (this.levels_mc.currentFrame != this.levels_mc.totalFrames){
this.levels_mc.nextFrame();
this.easy_levels_mc.nextFrame();
} else {
$MENU.login.gotoAndStop(1);
this.removeChild(levels_mc);
this.removeChild(easy_levels_mc);
removeEventListener(Event.ENTER_FRAME, PreloadLevels);
mochi_mc.Connect();
addEventListener(Event.ENTER_FRAME, Update);
Login($User);
};
}
public function Init():void{
var _local1:*;
var _local2:*;
var _local3:*;
this.menu_mc.visible = false;
_local1 = this.root.loaderInfo.url.split("/")[2];
if (((!((_local1 == ""))) && (!((_local1.indexOf("chat.kongregate.com") == -1))))){
$onkong = true;
};
mochi_mc = this._mochi;
_local2 = new MovieClip();
_local2.x = 0;
_local2.y = 0;
this.addChild(_local2);
$debug_surface = _local2.graphics;
$resources = this.resources_mc;
this.removeChild(resources_mc);
$MENU = this.menu_mc;
$HUD = this.HUD_mc;
$engine = new ArcadeEngine(this.engine_window, $debug_surface);
this.removeChild(this.engine_window);
$engine.HideFPS();
$factory = new MyFactory(this);
this.levels_mc.visible = false;
this.easy_levels_mc.visible = false;
this.level_help.visible = false;
$level_help = level_help;
_local3 = 0;
while (_local3 < GameConstants.ACHIEVEMENTS_LENGTH) {
$Achievements.push(false);
_local3++;
};
_local3 = 0;
while (_local3 < 8) {
$LEVELS_STATS.push(new Object());
_local3++;
};
_local3 = 0;
while (_local3 < 8) {
$LEVELS_STATS[_local3].$greengems = 0;
$LEVELS_STATS[_local3].$bluegems = 0;
$LEVELS_STATS[_local3].$redgems = 0;
$LEVELS_STATS[_local3].$diagems = 0;
$LEVELS_STATS[_local3].$biggems = 0;
$LEVELS_STATS[_local3].$num_greengems = 0;
$LEVELS_STATS[_local3].$num_bluegems = 0;
$LEVELS_STATS[_local3].$num_redgems = 0;
$LEVELS_STATS[_local3].$num_diagems = 0;
$LEVELS_STATS[_local3].$num_biggems = 0;
$LEVELS_STATS[_local3].$level_time = 0xFFFF;
$LEVELS_STATS[_local3].$level_score = 0;
$LEVELS_STATS[_local3].$level_grade = 0;
$LEVELS_STATS[_local3].$bEasyMode = true;
_local3++;
};
_local3 = 0;
while (_local3 < 8) {
$GAME_STATS.push(new Object());
_local3++;
};
_local3 = 0;
while (_local3 < 8) {
$GAME_STATS[_local3].$greengems = 0;
$GAME_STATS[_local3].$bluegems = 0;
$GAME_STATS[_local3].$redgems = 0;
$GAME_STATS[_local3].$diagems = 0;
$GAME_STATS[_local3].$biggems = 0;
$GAME_STATS[_local3].$num_greengems = 0;
$GAME_STATS[_local3].$num_bluegems = 0;
$GAME_STATS[_local3].$num_redgems = 0;
$GAME_STATS[_local3].$num_diagems = 0;
$GAME_STATS[_local3].$num_biggems = 0;
$GAME_STATS[_local3].$level_time = 0;
$GAME_STATS[_local3].$level_score = 0;
$GAME_STATS[_local3].$total_score = 0;
$GAME_STATS[_local3].$level_grade = 0;
$GAME_STATS[_local3].$bEasyMode = true;
_local3++;
};
_local3 = 0;
while (_local3 < 8) {
$TEMP_GAME_STATS.push(new Object());
_local3++;
};
_local3 = 0;
while (_local3 < 8) {
$TEMP_GAME_STATS[_local3].$greengems = 0;
$TEMP_GAME_STATS[_local3].$bluegems = 0;
$TEMP_GAME_STATS[_local3].$redgems = 0;
$TEMP_GAME_STATS[_local3].$diagems = 0;
$TEMP_GAME_STATS[_local3].$biggems = 0;
$TEMP_GAME_STATS[_local3].$num_greengems = 0;
$TEMP_GAME_STATS[_local3].$num_bluegems = 0;
$TEMP_GAME_STATS[_local3].$num_redgems = 0;
$TEMP_GAME_STATS[_local3].$num_diagems = 0;
$TEMP_GAME_STATS[_local3].$num_biggems = 0;
$TEMP_GAME_STATS[_local3].$level_time = 0;
$TEMP_GAME_STATS[_local3].$level_score = 0;
$TEMP_GAME_STATS[_local3].$total_score = 0;
$TEMP_GAME_STATS[_local3].$level_grade = 0;
$TEMP_GAME_STATS[_local3].$bEasyMode = true;
_local3++;
};
_local3 = 0;
while (_local3 < 8) {
$CURRENT_GAME_STATS.push(new Object());
_local3++;
};
_local3 = 0;
while (_local3 < 8) {
$CURRENT_GAME_STATS[_local3].$greengems = 0;
$CURRENT_GAME_STATS[_local3].$bluegems = 0;
$CURRENT_GAME_STATS[_local3].$redgems = 0;
$CURRENT_GAME_STATS[_local3].$diagems = 0;
$CURRENT_GAME_STATS[_local3].$biggems = 0;
$CURRENT_GAME_STATS[_local3].$num_greengems = 0;
$CURRENT_GAME_STATS[_local3].$num_bluegems = 0;
$CURRENT_GAME_STATS[_local3].$num_redgems = 0;
$CURRENT_GAME_STATS[_local3].$num_diagems = 0;
$CURRENT_GAME_STATS[_local3].$num_biggems = 0;
$CURRENT_GAME_STATS[_local3].$level_time = 0;
$CURRENT_GAME_STATS[_local3].$level_score = 0;
$CURRENT_GAME_STATS[_local3].$total_score = 0;
$CURRENT_GAME_STATS[_local3].$level_grade = 0;
$CURRENT_GAME_STATS[_local3].$bEasyMode = true;
_local3++;
};
this.kong_mc.gotoAndPlay(2);
}
public function ShowAchievementsLevelStats():void{
i = $achievements_current_level;
$MENU.levels_window.cave_num.text = ("Cave #" + (i + 1));
if ($achievements_levels_mode){
if ($Cookie.data.LEVELS_STATS[i].$bEasyMode){
$MENU.levels_window.easy_mode.text = "normal";
} else {
$MENU.levels_window.easy_mode.text = "hardcore";
};
$MENU.levels_window.total_score.visible = false;
$MENU.levels_window.total_score_val.visible = false;
$MENU.levels_window.greengem_val.text = (($Cookie.data.LEVELS_STATS[i].$greengems + "/") + $Cookie.data.LEVELS_STATS[i].$num_greengems);
$MENU.levels_window.bluegem_val.text = (($Cookie.data.LEVELS_STATS[i].$bluegems + "/") + $Cookie.data.LEVELS_STATS[i].$num_bluegems);
$MENU.levels_window.redgem_val.text = (($Cookie.data.LEVELS_STATS[i].$redgems + "/") + $Cookie.data.LEVELS_STATS[i].$num_redgems);
$MENU.levels_window.diagem_val.text = (($Cookie.data.LEVELS_STATS[i].$diagems + "/") + $Cookie.data.LEVELS_STATS[i].$num_diagems);
$MENU.levels_window.biggem_val.text = (($Cookie.data.LEVELS_STATS[i].$biggems + "/") + $Cookie.data.LEVELS_STATS[i].$num_biggems);
if ($Cookie.data.LEVELS_STATS[i].$level_time == 0xFFFF){
$MENU.levels_window.timer_val.text = "--";
} else {
if (($Cookie.data.LEVELS_STATS[i].$level_time - (Math.floor(($Cookie.data.LEVELS_STATS[i].$level_time / 60)) * 60)) < 10){
$MENU.levels_window.timer_val.text = ((Math.floor(($Cookie.data.LEVELS_STATS[i].$level_time / 60)) + ":0") + ($Cookie.data.LEVELS_STATS[i].$level_time - (Math.floor(($Cookie.data.LEVELS_STATS[i].$level_time / 60)) * 60)));
} else {
$MENU.levels_window.timer_val.text = ((Math.floor(($Cookie.data.LEVELS_STATS[i].$level_time / 60)) + ":") + ($Cookie.data.LEVELS_STATS[i].$level_time - (Math.floor(($Cookie.data.LEVELS_STATS[i].$level_time / 60)) * 60)));
};
};
$MENU.levels_window.level_score_val.text = $Cookie.data.LEVELS_STATS[i].$level_score;
switch ($Cookie.data.LEVELS_STATS[i].$level_grade){
case 0:
$MENU.levels_window.level_grade.text = "LOW";
break;
case 1:
$MENU.levels_window.level_grade.text = "GOOD";
break;
case 2:
$MENU.levels_window.level_grade.text = "SUPER";
break;
};
} else {
if ($Cookie.data.GAME_STATS[0].$bEasyMode){
$MENU.levels_window.easy_mode.text = "normal";
} else {
$MENU.levels_window.easy_mode.text = "hardcore";
};
$MENU.levels_window.total_score.visible = true;
$MENU.levels_window.total_score_val.visible = true;
$MENU.levels_window.greengem_val.text = (($Cookie.data.GAME_STATS[i].$greengems + "/") + $Cookie.data.GAME_STATS[i].$num_greengems);
$MENU.levels_window.bluegem_val.text = (($Cookie.data.GAME_STATS[i].$bluegems + "/") + $Cookie.data.GAME_STATS[i].$num_bluegems);
$MENU.levels_window.redgem_val.text = (($Cookie.data.GAME_STATS[i].$redgems + "/") + $Cookie.data.GAME_STATS[i].$num_redgems);
$MENU.levels_window.diagem_val.text = (($Cookie.data.GAME_STATS[i].$diagems + "/") + $Cookie.data.GAME_STATS[i].$num_diagems);
$MENU.levels_window.biggem_val.text = (($Cookie.data.GAME_STATS[i].$biggems + "/") + $Cookie.data.GAME_STATS[i].$num_biggems);
if ($Cookie.data.GAME_STATS[i].$level_time == 0){
$MENU.levels_window.timer_val.text = "--";
} else {
if (($Cookie.data.GAME_STATS[i].$level_time - (Math.floor(($Cookie.data.GAME_STATS[i].$level_time / 60)) * 60)) < 10){
$MENU.levels_window.timer_val.text = ((Math.floor(($Cookie.data.GAME_STATS[i].$level_time / 60)) + ":0") + ($Cookie.data.GAME_STATS[i].$level_time - (Math.floor(($Cookie.data.GAME_STATS[i].$level_time / 60)) * 60)));
} else {
$MENU.levels_window.timer_val.text = ((Math.floor(($Cookie.data.GAME_STATS[i].$level_time / 60)) + ":") + ($Cookie.data.GAME_STATS[i].$level_time - (Math.floor(($Cookie.data.GAME_STATS[i].$level_time / 60)) * 60)));
};
};
$MENU.levels_window.level_score_val.text = $Cookie.data.GAME_STATS[i].$level_score;
$MENU.levels_window.total_score_val.text = $Cookie.data.GAME_STATS[7].$total_score;
switch ($Cookie.data.GAME_STATS[i].$level_grade){
case 0:
$MENU.levels_window.level_grade.text = "LOW";
break;
case 1:
$MENU.levels_window.level_grade.text = "GOOD";
break;
case 2:
$MENU.levels_window.level_grade.text = "SUPER";
break;
};
switch ($Cookie.data.game_grade){
case -1:
break;
case 0:
$MENU.levels_window.gift.visible = true;
$MENU.levels_window.gift.gotoAndStop(1);
break;
case 1:
$MENU.levels_window.gift.visible = true;
$MENU.levels_window.gift.gotoAndStop(2);
break;
case 2:
$MENU.levels_window.gift.visible = true;
$MENU.levels_window.gift.gotoAndStop(3);
break;
};
};
}
public function ResetHUD():void{
$HUD.greengems.text = ((("x" + $temp_greengems) + "/") + $level_greengems);
$HUD.bluegems.text = ((("x" + $temp_bluegems) + "/") + $level_bluegems);
$HUD.redgems.text = ((("x" + $temp_redgems) + "/") + $level_redgems);
$HUD.diagems.text = ((("x" + $temp_diagems) + "/") + $level_diagems);
$HUD.biggems.text = ((("x" + $temp_biggems) + "/") + $level_biggems);
if (($temp_level_time - (Math.floor(($temp_level_time / 60)) * 60)) < 10){
$HUD.level_time.text = ((Math.floor(($temp_level_time / 60)) + ":0") + ($temp_level_time - (Math.floor(($temp_level_time / 60)) * 60)));
} else {
$HUD.level_time.text = ((Math.floor(($temp_level_time / 60)) + ":") + ($temp_level_time - (Math.floor(($temp_level_time / 60)) * 60)));
};
}
public function NewGame():void{
$player_lives = 3;
$current_level = 0;
ResetLevelStat();
$game_gems_counter = 0;
$game_goblins_counter = 0;
$bTrainingMode = false;
$bBossTalk = true;
ResetCurrentGameStats();
if ($bEasyMode){
mochi_mc.StartPlay("EASY");
} else {
mochi_mc.StartPlay("HARDCORE");
};
}
public function __overFunc(_arg1:MouseEvent):void{
$engine.$sound.StopSounds();
$current_music = $engine.$sound.Play($SOUNDS[GameConstants.M_TITLE_TRACK], true);
$MENU.removeEventListener(KeyboardEvent.KEY_DOWN, GameoverKeyFunc);
$MENU.gotoAndStop("menu");
ResetGlobalStats();
}
public function PrecalcScores():void{
$greengems = $temp_greengems;
$bluegems = $temp_bluegems;
$redgems = $temp_redgems;
$diagems = $temp_diagems;
$biggems = $temp_biggems;
$level_time = $temp_level_time;
$gems_counter = $temp_gems_counter;
$goblins_counter = $temp_goblins_counter;
$best_time = false;
$temp_total_score = $total_score;
}
public function ResetCurrentGameStats():void{
var _local1:*;
_local1 = 0;
while (_local1 < 8) {
$CURRENT_GAME_STATS[_local1].$greengems = 0;
$CURRENT_GAME_STATS[_local1].$bluegems = 0;
$CURRENT_GAME_STATS[_local1].$redgems = 0;
$CURRENT_GAME_STATS[_local1].$diagems = 0;
$CURRENT_GAME_STATS[_local1].$biggems = 0;
$CURRENT_GAME_STATS[_local1].$num_greengems = 0;
$CURRENT_GAME_STATS[_local1].$num_bluegems = 0;
$CURRENT_GAME_STATS[_local1].$num_redgems = 0;
$CURRENT_GAME_STATS[_local1].$num_diagems = 0;
$CURRENT_GAME_STATS[_local1].$num_biggems = 0;
$CURRENT_GAME_STATS[_local1].$level_time = 0;
$CURRENT_GAME_STATS[_local1].$level_score = 0;
$CURRENT_GAME_STATS[_local1].$total_score = 0;
$CURRENT_GAME_STATS[_local1].$level_grade = 0;
$CURRENT_GAME_STATS[_local1].$bEasyMode = true;
_local1++;
};
}
public function Checkpoint(_arg1:String):void{
$last_checkpoint_name = _arg1;
$greengems = $temp_greengems;
$bluegems = $temp_bluegems;
$redgems = $temp_redgems;
$diagems = $temp_diagems;
$biggems = $temp_biggems;
$level_time = $temp_level_time;
$gems_counter = $temp_gems_counter;
$goblins_counter = $temp_goblins_counter;
$level_removed_objects_length = $level_removed_objects.length;
$MENU.gotoAndPlay("checkpoint");
}
public function Pause():void{
$engine.Pause();
}
public function SoundOff(_arg1:Boolean):void{
if (_arg1){
$engine.SoundOff();
$HUD._sound.mic.gotoAndStop(2);
} else {
$engine.SoundOn();
if ($bGame){
if ($current_level == 6){
};
};
$HUD._sound.mic.gotoAndStop(1);
};
}
public function ResetGlobalStats():void{
ResetLevelStat();
$num_greengems = 0;
$num_bluegems = 0;
$num_redgems = 0;
$num_diagems = 0;
$num_biggems = 0;
$total_score = 0;
$game_gems_counter = 0;
$game_goblins_counter = 0;
$player_lives = 3;
}
public function AchievementsShowPrev():void{
$achievements_current_level--;
if ($achievements_current_level < 0){
$achievements_current_level = 7;
};
if ($achievements_current_level == 6){
$achievements_current_level = 5;
};
ShowAchievementsLevelStats();
}
public function playSavedGame():void{
var _local1:*;
if (((($Cookie.data.current_game_level == 0)) || (($Cookie.data.current_game_level == 8)))){
return;
};
$bBossTalk = true;
$player_lives = 3;
$current_level = $Cookie.data.current_game_level;
$bEasyMode = $Cookie.data.current_game_mode;
$game_gems_counter = $Cookie.data.game_gems_counter;
$game_goblins_counter = $Cookie.data.game_goblins_counter;
ResetLevelStat();
$bTrainingMode = false;
_local1 = 0;
while (_local1 < $current_level) {
$TEMP_GAME_STATS[_local1].$greengems = $CURRENT_GAME_STATS[_local1].$greengems;
$TEMP_GAME_STATS[_local1].$bluegems = $CURRENT_GAME_STATS[_local1].$bluegems;
$TEMP_GAME_STATS[_local1].$redgems = $CURRENT_GAME_STATS[_local1].$redgems;
$TEMP_GAME_STATS[_local1].$diagems = $CURRENT_GAME_STATS[_local1].$diagems;
$TEMP_GAME_STATS[_local1].$biggems = $CURRENT_GAME_STATS[_local1].$biggems;
$TEMP_GAME_STATS[_local1].$num_greengems = $CURRENT_GAME_STATS[_local1].$num_greengems;
$TEMP_GAME_STATS[_local1].$num_bluegems = $CURRENT_GAME_STATS[_local1].$num_bluegems;
$TEMP_GAME_STATS[_local1].$num_redgems = $CURRENT_GAME_STATS[_local1].$num_redgems;
$TEMP_GAME_STATS[_local1].$num_diagems = $CURRENT_GAME_STATS[_local1].$num_diagems;
$TEMP_GAME_STATS[_local1].$num_biggems = $CURRENT_GAME_STATS[_local1].$num_biggems;
$TEMP_GAME_STATS[_local1].$level_time = $CURRENT_GAME_STATS[_local1].$level_time;
$TEMP_GAME_STATS[_local1].$level_score = $CURRENT_GAME_STATS[_local1].$level_score;
$TEMP_GAME_STATS[_local1].$total_score = $CURRENT_GAME_STATS[_local1].$total_score;
$total_score = $CURRENT_GAME_STATS[_local1].$total_score;
$TEMP_GAME_STATS[_local1].$level_grade = $CURRENT_GAME_STATS[_local1].$level_grade;
$TEMP_GAME_STATS[_local1].$bEasyMode = $CURRENT_GAME_STATS[_local1].$bEasyMode;
_local1++;
};
$engine.$sound.StopSounds();
$MENU.gotoAndPlay("level_intro");
}
public function ZoomOut():void{
$engine.$renderer.ZoomOut();
}
public function __submitScores(_arg1:MouseEvent):void{
$MENU._submit.removeEventListener(KeyboardEvent.KEY_DOWN, __submitScores);
$MENU._submit.visible = false;
$MENU._submit_text.visible = false;
$MENU.login.gotoAndPlay(3);
}
public function SkipScores():void{
$MENU.removeEventListener(KeyboardEvent.KEY_DOWN, ScoresSkipKeyFunc);
$MENU.addEventListener(KeyboardEvent.KEY_DOWN, ScoresReplayKeyFunc);
this.stage.removeEventListener(Event.ENTER_FRAME, CalcScores);
$MENU.__skip_scores.gotoAndStop("hidden");
$MENU._replay.visible = true;
$MENU.next_cave.visible = true;
$MENU.__replay.visible = true;
$MENU.__nextcave.visible = true;
$total_score = $temp_total_score;
$level_score = 0;
$MENU.greengem.visible = true;
$MENU.greengem_val.visible = true;
$MENU.greengem_val.text = (($greengems + "/") + $level_greengems);
$level_score = ($level_score + (SCOREVAL_GREENGEM * $greengems));
if (((($greengems == $level_greengems)) && (!(($level_greengems == 0))))){
$level_score = ($level_score + SCOREVAL_AWESOME);
};
$MENU.bluegem.visible = true;
$MENU.bluegem_val.visible = true;
$MENU.bluegem_val.text = (($bluegems + "/") + $level_bluegems);
$level_score = ($level_score + (SCOREVAL_BLUEGEM * $bluegems));
if (((($bluegems == $level_bluegems)) && (!(($level_bluegems == 0))))){
$level_score = ($level_score + SCOREVAL_AWESOME);
};
$MENU.redgem.visible = true;
$MENU.redgem_val.visible = true;
$MENU.redgem_val.text = (($redgems + "/") + $level_redgems);
$level_score = ($level_score + (SCOREVAL_REDGEM * $redgems));
if (((($redgems == $level_redgems)) && (!(($level_redgems == 0))))){
$level_score = ($level_score + SCOREVAL_AWESOME);
};
$MENU.diagem.visible = true;
$MENU.diagem_val.visible = true;
$MENU.diagem_val.text = (($diagems + "/") + $level_diagems);
$level_score = ($level_score + (SCOREVAL_DIAGEM * $diagems));
if (((($diagems == $level_diagems)) && (!(($level_diagems == 0))))){
$level_score = ($level_score + SCOREVAL_AWESOME);
};
$MENU.biggem.visible = true;
$MENU.biggem_val.visible = true;
$MENU.biggem_val.text = (($biggems + "/") + $level_biggems);
$level_score = ($level_score + (SCOREVAL_BIGGEM * $biggems));
if (((($biggems == $level_biggems)) && (!(($level_biggems == 0))))){
$level_score = ($level_score + SCOREVAL_AWESOME);
};
if (((((((((($greengems == $level_greengems)) && (($bluegems == $level_bluegems)))) && (($redgems == $level_redgems)))) && (($diagems == $level_diagems)))) && (($biggems == $level_biggems)))){
$level_score = ($level_score + SCOREVAL_GEMMASTER);
};
$MENU.timer.visible = true;
$MENU.timer_val.visible = true;
if (($level_time - (Math.floor(($level_time / 60)) * 60)) < 10){
$MENU.timer_val.text = ((Math.floor(($level_time / 60)) + ":0") + ($level_time - (Math.floor(($level_time / 60)) * 60)));
} else {
$MENU.timer_val.text = ((Math.floor(($level_time / 60)) + ":") + ($level_time - (Math.floor(($level_time / 60)) * 60)));
};
if ($level_time < $LEVEL_TIMES[$current_level]){
if ($bEasyMode){
$level_score = ($level_score + (($EASY_LEVEL_TIMES[$current_level] - $level_time) * 100));
} else {
$level_score = ($level_score + (($LEVEL_TIMES[$current_level] - $level_time) * 100));
};
};
$lev_grade = 0;
$lev_grade = ($lev_grade + (($level_greengems * SCOREVAL_GREENGEM) + SCOREVAL_AWESOME));
$lev_grade = ($lev_grade + (($level_bluegems * SCOREVAL_BLUEGEM) + SCOREVAL_AWESOME));
$lev_grade = ($lev_grade + (($level_redgems * SCOREVAL_REDGEM) + SCOREVAL_AWESOME));
$lev_grade = ($lev_grade + (($level_diagems * SCOREVAL_DIAGEM) + SCOREVAL_AWESOME));
$lev_grade = ($lev_grade + (($level_biggems * SCOREVAL_BIGGEM) + SCOREVAL_AWESOME));
$lev_grade = ($lev_grade + SCOREVAL_GEMMASTER);
$level_grade = 0;
if (((($level_score > ($lev_grade / 3))) && (($level_score < (2 * ($lev_grade / 3)))))){
$level_grade = 1;
};
if ($level_score >= (2 * ($lev_grade / 3))){
$level_grade = 2;
};
$MENU.level_grade.visible = true;
switch ($level_grade){
case 0:
$MENU.level_grade.gotoAndPlay("low");
break;
case 1:
$MENU.level_grade.gotoAndPlay("good");
break;
case 2:
$MENU.level_grade.gotoAndPlay("super");
break;
};
$total_score = ($total_score + $level_score);
$MENU.level_score.visible = true;
$MENU.total_score.visible = true;
$MENU.level_score_val.visible = true;
$MENU.total_score_val.visible = true;
$MENU.level_score_val.text = $level_score;
$MENU.total_score_val.text = $total_score;
$calcScoreState = SCORE_PRELOADTEXTS;
$score_timer = 0;
}
public function InitDataFromResources(_arg1:String):Object{
return (MovieClip($resources.getChildByName(_arg1)).Init(this));
}
public function PreviewAchievements2():void{
if ($onkong){
$MENU.levels_window._onkong.visible = false;
} else {
$MENU.levels_window._onkong.visible = true;
};
i = 0;
while (i < $Achievements.length) {
if ($Achievements[i]){
MovieClip($MENU.levels_window.getChildByName(("achievement_" + i))).gotoAndStop(2);
} else {
MovieClip($MENU.levels_window.getChildByName(("achievement_" + i))).gotoAndStop(1);
};
i++;
};
}
public function DumpStats():void{
$Cookie.clear();
$Cookie.data.Saved = true;
$Cookie.data.Version = $Version;
$Cookie.data.Achievements = $Achievements;
$Cookie.data.LEVELS_STATS = $LEVELS_STATS;
$Cookie.data.GAME_STATS = $GAME_STATS;
$Cookie.data.CURRENT_GAME_STATS = $CURRENT_GAME_STATS;
$Cookie.data.levels_discovered = $levels_discovered;
$Cookie.data.easy_levels_discovered = $easy_levels_discovered;
$Cookie.data.level_help_completed = $level_help_completed;
$Cookie.data.bHardcoreEnabled = $bHardcoreEnabled;
$Cookie.data.game_gems_counter = $game_gems_counter;
$Cookie.data.game_goblins_counter = $game_goblins_counter;
$Cookie.data.total_score = $total_score;
$Cookie.data.game_grade = -1;
$Cookie.data.current_game_level = 0;
$Cookie.data.current_game_mode = false;
$Cookie.flush();
}
public function AchievementsShowNext():void{
$achievements_current_level++;
if ($achievements_current_level > 7){
$achievements_current_level = 0;
};
if ($achievements_current_level == 6){
$achievements_current_level = 7;
};
ShowAchievementsLevelStats();
}
public function PreviewAchievements():void{
$achievements_levels_mode = false;
AchievementsShowBestLevels();
}
public function GameoverKeyFunc(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == 32){
if ($player_lives > 0){
$engine.$sound.StopSounds();
$MENU.removeEventListener(KeyboardEvent.KEY_DOWN, GameoverKeyFunc);
$MENU.gotoAndPlay("GameOver_fadeout");
Continue();
} else {
$engine.$sound.StopSounds();
$current_music = $engine.$sound.Play($SOUNDS[GameConstants.M_TITLE_TRACK], true);
$MENU.removeEventListener(KeyboardEvent.KEY_DOWN, GameoverKeyFunc);
$MENU.gotoAndStop("menu");
ResetGlobalStats();
};
};
}
public function CalcScores(_arg1:Event):void{
var _local2:*;
$score_timer++;
switch ($calcScoreState){
case SCORE_PRELOADTEXTS:
switch ($score_timer){
case 2:
$MENU.cave_num.text = (("Cave #" + ($current_level + 1)) + "/8");
$MENU.cave_num.visible = true;
break;
case 5:
$MENU.level_score.visible = true;
break;
case 10:
$MENU.level_score_val.text = "0";
$MENU.level_score_val.visible = true;
break;
case 15:
$MENU.total_score.visible = true;
break;
case 20:
$MENU.total_score_val.text = $total_score;
$MENU.total_score_val.visible = true;
break;
case 25:
$score_timer = 0;
$calcScoreState = SCORE_SHOWGREENGEMS;
break;
};
break;
case SCORE_SHOWGREENGEMS:
switch ($score_timer){
case 1:
$MENU.greengem.visible = true;
$MENU.greengem.gotoAndPlay(2);
break;
case 11:
$MENU.greengem_val.visible = true;
$MENU.greengem_val.text = ("0/" + $level_greengems);
$shown_value = 0;
break;
case 17:
if ($shown_value < $greengems){
$score_timer = 11;
$shown_value++;
$MENU.greengem_val.text = (($shown_value + "/") + $level_greengems);
$level_score = ($level_score + SCOREVAL_GREENGEM);
$total_score = ($total_score + SCOREVAL_GREENGEM);
$MENU.level_score_val.text = $level_score;
$MENU.total_score_val.text = $total_score;
};
break;
case 25:
$score_timer = 0;
if (((($greengems == $level_greengems)) && (!(($level_greengems == 0))))){
$score_timer = 0;
$MENU.popup.gotoAndPlay("awesome");
$calcScoreState = SCORE_AWESOMEBONUS;
$nextScoreState = SCORE_SHOWBLUEGEMS;
} else {
if (((($greengems == ($level_greengems - 1))) && (!(($greengems == 0))))){
$score_timer = 0;
$MENU.popup.gotoAndPlay("nicetry");
$calcScoreState = SCORE_NICETRYBONUS;
$nextScoreState = SCORE_SHOWBLUEGEMS;
} else {
$calcScoreState = SCORE_SHOWBLUEGEMS;
};
};
break;
};
break;
case SCORE_SHOWBLUEGEMS:
switch ($score_timer){
case 1:
$MENU.bluegem.visible = true;
$MENU.bluegem.gotoAndPlay(2);
break;
case 11:
$MENU.bluegem_val.visible = true;
$MENU.bluegem_val.text = ("0/" + $level_bluegems);
$shown_value = 0;
break;
case 17:
if ($shown_value < $bluegems){
$score_timer = 11;
$shown_value++;
$MENU.bluegem_val.text = (($shown_value + "/") + $level_bluegems);
$level_score = ($level_score + SCOREVAL_BLUEGEM);
$total_score = ($total_score + SCOREVAL_BLUEGEM);
$MENU.level_score_val.text = $level_score;
$MENU.total_score_val.text = $total_score;
};
break;
case 25:
$score_timer = 0;
if (((($bluegems == $level_bluegems)) && (!(($level_bluegems == 0))))){
$score_timer = 0;
$MENU.popup.gotoAndPlay("awesome");
$calcScoreState = SCORE_AWESOMEBONUS;
$nextScoreState = SCORE_SHOWREDGEMS;
} else {
if (((($bluegems == ($level_bluegems - 1))) && (!(($bluegems == 0))))){
$score_timer = 0;
$MENU.popup.gotoAndPlay("nicetry");
$calcScoreState = SCORE_NICETRYBONUS;
$nextScoreState = SCORE_SHOWREDGEMS;
} else {
$calcScoreState = SCORE_SHOWREDGEMS;
};
};
break;
};
break;
case SCORE_SHOWREDGEMS:
switch ($score_timer){
case 1:
$MENU.redgem.visible = true;
$MENU.redgem.gotoAndPlay(2);
break;
case 11:
$MENU.redgem_val.visible = true;
$MENU.redgem_val.text = ("0/" + $level_redgems);
$shown_value = 0;
break;
case 17:
if ($shown_value < $redgems){
$score_timer = 11;
$shown_value++;
$MENU.redgem_val.text = (($shown_value + "/") + $level_redgems);
$level_score = ($level_score + SCOREVAL_REDGEM);
$total_score = ($total_score + SCOREVAL_REDGEM);
$MENU.level_score_val.text = $level_score;
$MENU.total_score_val.text = $total_score;
};
break;
case 25:
$score_timer = 0;
if (((($redgems == $level_redgems)) && (!(($level_redgems == 0))))){
$score_timer = 0;
$MENU.popup.gotoAndPlay("awesome");
$calcScoreState = SCORE_AWESOMEBONUS;
$nextScoreState = SCORE_SHOWDIAGEMS;
} else {
if (((($redgems == ($level_redgems - 1))) && (!(($redgems == 0))))){
$score_timer = 0;
$MENU.popup.gotoAndPlay("nicetry");
$calcScoreState = SCORE_NICETRYBONUS;
$nextScoreState = SCORE_SHOWDIAGEMS;
} else {
$calcScoreState = SCORE_SHOWDIAGEMS;
};
};
break;
};
break;
case SCORE_SHOWDIAGEMS:
switch ($score_timer){
case 1:
$MENU.diagem.visible = true;
$MENU.diagem.gotoAndPlay(2);
break;
case 11:
$MENU.diagem_val.visible = true;
$MENU.diagem_val.text = ("0/" + $level_diagems);
$shown_value = 0;
break;
case 17:
if ($shown_value < $diagems){
$score_timer = 11;
$shown_value++;
$MENU.diagem_val.text = (($shown_value + "/") + $level_diagems);
$level_score = ($level_score + SCOREVAL_DIAGEM);
$total_score = ($total_score + SCOREVAL_DIAGEM);
$MENU.level_score_val.text = $level_score;
$MENU.total_score_val.text = $total_score;
};
break;
case 25:
$score_timer = 0;
if (((($diagems == $level_diagems)) && (!(($level_diagems == 0))))){
$MENU.popup.gotoAndPlay("awesome");
$calcScoreState = SCORE_AWESOMEBONUS;
$nextScoreState = SCORE_SHOWBIGGEMS;
} else {
if (((($diagems == ($level_diagems - 1))) && (!(($diagems == 0))))){
$MENU.popup.gotoAndPlay("nicetry");
$calcScoreState = SCORE_NICETRYBONUS;
$nextScoreState = SCORE_SHOWBIGGEMS;
} else {
$calcScoreState = SCORE_SHOWBIGGEMS;
};
};
break;
};
break;
case SCORE_SHOWBIGGEMS:
switch ($score_timer){
case 1:
$MENU.biggem.visible = true;
$MENU.biggem.gotoAndPlay(2);
break;
case 11:
$MENU.biggem_val.visible = true;
$MENU.biggem_val.text = ("0/" + $level_biggems);
$shown_value = 0;
break;
case 17:
if ($shown_value < $biggems){
$score_timer = 11;
$shown_value++;
$MENU.biggem_val.text = (($shown_value + "/") + $level_biggems);
$level_score = ($level_score + SCOREVAL_BIGGEM);
$total_score = ($total_score + SCOREVAL_BIGGEM);
$MENU.level_score_val.text = $level_score;
$MENU.total_score_val.text = $total_score;
};
break;
case 25:
$score_timer = 0;
if (((($biggems == $level_biggems)) && (!(($level_biggems == 0))))){
$MENU.popup.gotoAndPlay("awesome");
$calcScoreState = SCORE_AWESOMEBONUS;
$nextScoreState = SCORE_TRYGEMMASTERBONUS;
} else {
if (((($biggems == ($level_biggems - 1))) && (!(($biggems == 0))))){
$MENU.popup.gotoAndPlay("nicetry");
$calcScoreState = SCORE_NICETRYBONUS;
$nextScoreState = SCORE_SHOWTIME;
} else {
$calcScoreState = SCORE_SHOWTIME;
};
};
break;
};
break;
case SCORE_SHOWTIME:
switch ($score_timer){
case 1:
$MENU.timer.visible = true;
$MENU.timer.gotoAndPlay(2);
break;
case 11:
$MENU.timer_val.visible = true;
if (($level_time - (Math.floor(($level_time / 60)) * 60)) < 10){
$MENU.timer_val.text = ((Math.floor(($level_time / 60)) + ":0") + ($level_time - (Math.floor(($level_time / 60)) * 60)));
} else {
$MENU.timer_val.text = ((Math.floor(($level_time / 60)) + ":") + ($level_time - (Math.floor(($level_time / 60)) * 60)));
};
$shown_value = 0;
break;
case 21:
$score_timer = 0;
if ($level_time < $LEVEL_TIMES[$current_level]){
$MENU.popup.gotoAndPlay("flashbonus");
$calcScoreState = SCORE_FLASHBONUS;
} else {
if ($current_level == 7){
if ($level_score > $Cookie.data.LEVELS_STATS[$current_level].$level_score){
$calcScoreState = SCORE_SHOWBESTLEVEL;
$nextScoreState = SCORE_TRYBESTGAME;
} else {
$calcScoreState = SCORE_TRYBESTGAME;
$nextScoreState = SCORE_SHOWBUTTONS;
};
} else {
if ($level_score > $Cookie.data.LEVELS_STATS[$current_level].$level_score){
$calcScoreState = SCORE_SHOWBESTLEVEL;
$nextScoreState = SCORE_SHOWBUTTONS;
} else {
$calcScoreState = SCORE_SHOWBUTTONS;
$nextScoreState = SCORE_SHOWBUTTONS;
};
};
};
break;
};
break;
case SCORE_SHOWBUTTONS:
$MENU._replay.visible = true;
$MENU.next_cave.visible = true;
$MENU.__replay.visible = true;
$MENU.__nextcave.visible = true;
$calcScoreState = SCORE_PRELOADTEXTS;
$lev_grade = 0;
$lev_grade = ($lev_grade + (($level_greengems * SCOREVAL_GREENGEM) + SCOREVAL_AWESOME));
$lev_grade = ($lev_grade + (($level_bluegems * SCOREVAL_BLUEGEM) + SCOREVAL_AWESOME));
$lev_grade = ($lev_grade + (($level_redgems * SCOREVAL_REDGEM) + SCOREVAL_AWESOME));
$lev_grade = ($lev_grade + (($level_diagems * SCOREVAL_DIAGEM) + SCOREVAL_AWESOME));
$lev_grade = ($lev_grade + (($level_biggems * SCOREVAL_BIGGEM) + SCOREVAL_AWESOME));
$lev_grade = ($lev_grade + SCOREVAL_GEMMASTER);
$level_grade = 0;
if (((($level_score > ($lev_grade / 3))) && (($level_score < (2 * ($lev_grade / 3)))))){
$level_grade = 1;
};
if ($level_score >= (2 * ($lev_grade / 3))){
$level_grade = 2;
};
$MENU.level_grade.visible = true;
switch ($level_grade){
case 0:
$MENU.level_grade.gotoAndPlay("low");
break;
case 1:
$MENU.level_grade.gotoAndPlay("good");
break;
case 2:
$MENU.level_grade.gotoAndPlay("super");
break;
};
$MENU.__skip_scores.gotoAndStop("hidden");
$MENU.removeEventListener(KeyboardEvent.KEY_DOWN, ScoresSkipKeyFunc);
$MENU.addEventListener(KeyboardEvent.KEY_DOWN, ScoresReplayKeyFunc);
this.stage.removeEventListener(Event.ENTER_FRAME, CalcScores);
break;
case SCORE_AWESOMEBONUS:
if ($score_timer == 1){
$level_score = ($level_score + SCOREVAL_AWESOME);
$total_score = ($total_score + SCOREVAL_AWESOME);
$MENU.level_score_val.text = $level_score;
$MENU.total_score_val.text = $total_score;
$MENU.extra_points.extra_wrapper.extra_text.text = ("+" + SCOREVAL_AWESOME);
$MENU.extra_points.play();
};
if ($score_timer == 30){
$calcScoreState = $nextScoreState;
$score_timer = 0;
};
break;
case SCORE_NICETRYBONUS:
if ($score_timer == 1){
};
if ($score_timer == 30){
$calcScoreState = $nextScoreState;
$score_timer = 0;
};
break;
case SCORE_FLASHBONUS:
if ($score_timer == 1){
_local2 = (($LEVEL_TIMES[$current_level] - $level_time) * 100);
if ($bEasyMode){
_local2 = (($EASY_LEVEL_TIMES[$current_level] - $level_time) * 100);
};
$level_score = ($level_score + _local2);
$total_score = ($total_score + _local2);
$MENU.level_score_val.text = $level_score;
$MENU.total_score_val.text = $total_score;
$MENU.extra_points.extra_wrapper.extra_text.text = ("+" + _local2);
$MENU.extra_points.play();
if ($best_time){
$MENU.best_time.gotoAndPlay(2);
};
};
if ($score_timer == 30){
if ($current_level == 7){
if ($level_score > $Cookie.data.LEVELS_STATS[$current_level].$level_score){
$calcScoreState = SCORE_SHOWBESTLEVEL;
$nextScoreState = SCORE_TRYBESTGAME;
} else {
$calcScoreState = SCORE_TRYBESTGAME;
$nextScoreState = SCORE_SHOWBUTTONS;
};
} else {
if ($level_score > $Cookie.data.LEVELS_STATS[$current_level].$level_score){
$calcScoreState = SCORE_SHOWBESTLEVEL;
$nextScoreState = SCORE_SHOWBUTTONS;
} else {
$calcScoreState = SCORE_SHOWBUTTONS;
$nextScoreState = SCORE_SHOWBUTTONS;
};
};
$score_timer = 0;
};
break;
case SCORE_TRYGEMMASTERBONUS:
if ($score_timer == 15){
$score_timer = 0;
if (((((((((($greengems == $level_greengems)) && (($bluegems == $level_bluegems)))) && (($redgems == $level_redgems)))) && (($diagems == $level_diagems)))) && (($biggems == $level_biggems)))){
$MENU.popup.gotoAndPlay("gemmaster");
$calcScoreState = SCORE_GEMMASTERBONUS;
$nextScoreState = SCORE_SHOWTIME;
} else {
$calcScoreState = SCORE_SHOWTIME;
};
};
break;
case SCORE_GEMMASTERBONUS:
if ($score_timer == 1){
$level_score = ($level_score + SCOREVAL_GEMMASTER);
$total_score = ($total_score + SCOREVAL_GEMMASTER);
$MENU.level_score_val.text = $level_score;
$MENU.total_score_val.text = $total_score;
$MENU.extra_points.extra_wrapper.extra_text.text = ("+" + SCOREVAL_GEMMASTER);
$MENU.extra_points.play();
};
if ($score_timer == 50){
$calcScoreState = $nextScoreState;
$score_timer = 0;
};
break;
case SCORE_TRYBESTGAME:
if ($score_timer == 15){
$score_timer = 0;
if ($total_score > $Cookie.data.GAME_STATS[$current_level].$total_score){
$MENU.popup.gotoAndPlay("best_game_score");
$calcScoreState = SCORE_SHOWBESTGAME;
$nextScoreState = SCORE_SHOWBUTTONS;
} else {
$calcScoreState = SCORE_SHOWBUTTONS;
};
};
break;
case SCORE_SHOWBESTLEVEL:
if ($score_timer == 1){
$MENU.popup.gotoAndPlay("best_level_score");
};
if ($score_timer == 50){
$calcScoreState = $nextScoreState;
$score_timer = 0;
};
break;
case SCORE_SHOWBESTGAME:
if ($score_timer == 1){
$MENU.popup.gotoAndPlay("best_game_score");
};
if ($score_timer == 50){
$calcScoreState = $nextScoreState;
$score_timer = 0;
};
break;
};
}
public function LevelObjectRemoved(_arg1:uint):void{
$level_removed_objects.push(_arg1);
}
public function __replayFunc(_arg1:MouseEvent):void{
$MENU.removeEventListener(KeyboardEvent.KEY_DOWN, ScoresReplayKeyFunc);
$MENU.play();
ReplayLevel();
}
public function LoadStats():void{
$Cookie = SharedObject.getLocal($Savegame_slot);
if (((!(($Cookie.data.Saved == undefined))) && (!(($Cookie.data.Version == undefined))))){
if ($Cookie.data.Version != $Version){
DumpStats();
return;
};
$levels_discovered = Number($Cookie.data.levels_discovered);
$easy_levels_discovered = Number($Cookie.data.easy_levels_discovered);
$bHardcoreEnabled = Boolean($Cookie.data.bHardcoreEnabled);
$game_gems_counter = $Cookie.data.game_gems_counter;
$game_goblins_counter = $Cookie.data.game_goblins_counter;
$level_help_completed = $Cookie.data.level_help_completed;
$current_game_level = Number($Cookie.data.current_game_level);
$current_game_mode = Boolean($Cookie.data.current_game_mode);
if (((!(($Cookie.data.current_game_level == 0))) && (!(($Cookie.data.current_game_level == 8))))){
$MENU._menu_frame.__continue.gotoAndStop(2);
};
i = 0;
while (i < GameConstants.ACHIEVEMENTS_LENGTH) {
$Achievements[i] = $Cookie.data.Achievements[i];
i++;
};
i = 0;
while (i < 8) {
$LEVELS_STATS[i].$greengems = $Cookie.data.LEVELS_STATS[i].$greengems;
$LEVELS_STATS[i].$bluegems = $Cookie.data.LEVELS_STATS[i].$bluegems;
$LEVELS_STATS[i].$redgems = $Cookie.data.LEVELS_STATS[i].$redgems;
$LEVELS_STATS[i].$diagems = $Cookie.data.LEVELS_STATS[i].$diagems;
$LEVELS_STATS[i].$biggems = $Cookie.data.LEVELS_STATS[i].$biggems;
$LEVELS_STATS[i].$num_greengems = $Cookie.data.LEVELS_STATS[i].$num_greengems;
$LEVELS_STATS[i].$num_bluegems = $Cookie.data.LEVELS_STATS[i].$num_bluegems;
$LEVELS_STATS[i].$num_redgems = $Cookie.data.LEVELS_STATS[i].$num_redgems;
$LEVELS_STATS[i].$num_diagems = $Cookie.data.LEVELS_STATS[i].$num_diagems;
$LEVELS_STATS[i].$num_biggems = $Cookie.data.LEVELS_STATS[i].$num_biggems;
$LEVELS_STATS[i].$level_time = $Cookie.data.LEVELS_STATS[i].$level_time;
$LEVELS_STATS[i].$level_grade = $Cookie.data.LEVELS_STATS[i].$level_grade;
$LEVELS_STATS[i].$level_score = $Cookie.data.LEVELS_STATS[i].$level_score;
$LEVELS_STATS[i].$bEasyMode = $Cookie.data.LEVELS_STATS[i].$bEasyMode;
i++;
};
i = 0;
while (i < 8) {
$GAME_STATS[i].$greengems = $Cookie.data.GAME_STATS[i].$greengems;
$GAME_STATS[i].$bluegems = $Cookie.data.GAME_STATS[i].$bluegems;
$GAME_STATS[i].$redgems = $Cookie.data.GAME_STATS[i].$redgems;
$GAME_STATS[i].$diagems = $Cookie.data.GAME_STATS[i].$diagems;
$GAME_STATS[i].$biggems = $Cookie.data.GAME_STATS[i].$biggems;
$GAME_STATS[i].$num_greengems = $Cookie.data.GAME_STATS[i].$num_greengems;
$GAME_STATS[i].$num_bluegems = $Cookie.data.GAME_STATS[i].$num_bluegems;
$GAME_STATS[i].$num_redgems = $Cookie.data.GAME_STATS[i].$num_redgems;
$GAME_STATS[i].$num_diagems = $Cookie.data.GAME_STATS[i].$num_diagems;
$GAME_STATS[i].$num_biggems = $Cookie.data.GAME_STATS[i].$num_biggems;
$GAME_STATS[i].$level_time = $Cookie.data.GAME_STATS[i].$level_time;
$GAME_STATS[i].$level_score = $Cookie.data.GAME_STATS[i].$level_score;
$GAME_STATS[i].$total_score = $Cookie.data.GAME_STATS[i].$total_score;
$GAME_STATS[i].$level_grade = $Cookie.data.GAME_STATS[i].$level_grade;
$GAME_STATS[i].$bEasyMode = $Cookie.data.GAME_STATS[i].$bEasyMode;
i++;
};
i = 0;
while (i < 8) {
$CURRENT_GAME_STATS[i].$greengems = $Cookie.data.CURRENT_GAME_STATS[i].$greengems;
$CURRENT_GAME_STATS[i].$bluegems = $Cookie.data.CURRENT_GAME_STATS[i].$bluegems;
$CURRENT_GAME_STATS[i].$redgems = $Cookie.data.CURRENT_GAME_STATS[i].$redgems;
$CURRENT_GAME_STATS[i].$diagems = $Cookie.data.CURRENT_GAME_STATS[i].$diagems;
$CURRENT_GAME_STATS[i].$biggems = $Cookie.data.CURRENT_GAME_STATS[i].$biggems;
$CURRENT_GAME_STATS[i].$num_greengems = $Cookie.data.CURRENT_GAME_STATS[i].$num_greengems;
$CURRENT_GAME_STATS[i].$num_bluegems = $Cookie.data.CURRENT_GAME_STATS[i].$num_bluegems;
$CURRENT_GAME_STATS[i].$num_redgems = $Cookie.data.CURRENT_GAME_STATS[i].$num_redgems;
$CURRENT_GAME_STATS[i].$num_diagems = $Cookie.data.CURRENT_GAME_STATS[i].$num_diagems;
$CURRENT_GAME_STATS[i].$num_biggems = $Cookie.data.CURRENT_GAME_STATS[i].$num_biggems;
$CURRENT_GAME_STATS[i].$level_time = $Cookie.data.CURRENT_GAME_STATS[i].$level_time;
$CURRENT_GAME_STATS[i].$level_score = $Cookie.data.CURRENT_GAME_STATS[i].$level_score;
$CURRENT_GAME_STATS[i].$total_score = $Cookie.data.CURRENT_GAME_STATS[i].$total_score;
$CURRENT_GAME_STATS[i].$level_grade = $Cookie.data.CURRENT_GAME_STATS[i].$level_grade;
$CURRENT_GAME_STATS[i].$bEasyMode = $Cookie.data.CURRENT_GAME_STATS[i].$bEasyMode;
i++;
};
} else {
DumpStats();
};
}
public function Login(_arg1):void{
LoadStats();
$SOUNDS.push($engine.$sound.AddSound(new achievement_wav()));
$SOUNDS.push($engine.$sound.AddSound(new die_wav()));
$SOUNDS.push($engine.$sound.AddSound(new fall_wav()));
$SOUNDS.push($engine.$sound.AddSound(new gem_wav()));
$SOUNDS.push($engine.$sound.AddSound(new ground_wav()));
$SOUNDS.push($engine.$sound.AddSound(new hit_wav()));
$SOUNDS.push($engine.$sound.AddSound(new hook_wav()));
$SOUNDS.push($engine.$sound.AddSound(new jump_wav()));
$SOUNDS.push($engine.$sound.AddSound(new quake_wav()));
$SOUNDS.push($engine.$sound.AddSound(new rock_fall_wav()));
$SOUNDS.push($engine.$sound.AddSound(new spider_jump_wav()));
$SOUNDS.push($engine.$sound.AddSound(new switch_wav()));
$SOUNDS.push($engine.$sound.AddSound(new TITLE_TRACK_wav()));
$SOUNDS.push($engine.$sound.AddSound(new LEVEL_TRACK_wav()));
$SOUNDS.push($engine.$sound.AddSound(new BOSS_TRACK_wav()));
$SOUNDS.push($engine.$sound.AddSound(new WIN_TRACK_wav()));
$SOUNDS.push($engine.$sound.AddSound(new LOOSE_TRACK_wav()));
$current_music = $engine.$sound.Play($SOUNDS[GameConstants.M_TITLE_TRACK], true);
isLoaded = true;
}
public function Play():void{
$engine.Play();
}
public function ShowHighscores():void{
mochi_mc.ShowLeaderboard();
}
public function AchievementsShowBestGame():void{
var _local1:*;
if (!$achievements_levels_mode){
return;
};
$achievements_current_level = 0;
$achievements_levels_mode = false;
$MENU.levels_window.__best_levels.gotoAndStop("best_levels_off");
$MENU.levels_window.__best_game.gotoAndStop("best_game_on");
$MENU.levels_window.total_game_time.visible = true;
_local1 = 0;
i = 0;
while (i < 8) {
_local1 = (_local1 + $Cookie.data.GAME_STATS[i].$level_time);
i++;
};
$MENU.levels_window.total_game_time.text = ((("total game time: " + Math.floor((_local1 / 60))) + ":") + (_local1 - (Math.floor((_local1 / 60)) * 60)));
ShowAchievementsLevelStats();
}
public function ResetLevelStat():void{
$level_removed_objects.length = 0;
$level_removed_objects_length = 0;
$last_checkpoint_name = "StartPoint";
$temp_greengems = 0;
$temp_bluegems = 0;
$temp_redgems = 0;
$temp_diagems = 0;
$temp_biggems = 0;
$temp_level_time = 0;
$temp_gems_counter = 0;
$temp_goblins_counter = 0;
$gems_counter = 0;
$goblins_counter = 0;
$greengems = 0;
$bluegems = 0;
$redgems = 0;
$diagems = 0;
$biggems = 0;
$coins = 0;
$golds = 0;
$treasures = 0;
$level_time = 0;
$level_score = 0;
$level_greengems = 0;
$level_bluegems = 0;
$level_redgems = 0;
$level_diagems = 0;
$level_biggems = 0;
}
public function AchievementsShowBestLevels():void{
if ($achievements_levels_mode){
return;
};
$achievements_current_level = 0;
$achievements_levels_mode = true;
$MENU.levels_window.__best_levels.gotoAndStop("best_levels_on");
$MENU.levels_window.__best_game.gotoAndStop("best_game_off");
$MENU.levels_window.total_game_time.visible = false;
$MENU.levels_window.gift.visible = false;
ShowAchievementsLevelStats();
}
public function ScoreScreenInit():void{
$engine.$sound.StopSounds();
$current_music = $engine.$sound.Play($SOUNDS[GameConstants.M_TITLE_TRACK], true);
if ($bTrainingMode){
$MENU.next_cave.text = "RETURN";
} else {
$MENU.next_cave.text = "NEXT CAVE";
};
if ($current_level == 7){
$MENU.next_cave.text = "LEAVE CAVE";
};
$MENU.__replay.addEventListener(MouseEvent.MOUSE_DOWN, __replayFunc);
$MENU.__nextcave.addEventListener(MouseEvent.MOUSE_DOWN, __nextcaveFunc);
$MENU.__replay.visible = false;
$MENU.__nextcave.visible = false;
$MENU.__skip_scores.gotoAndStop("online");
$MENU.addEventListener(KeyboardEvent.KEY_DOWN, ScoresSkipKeyFunc);
PrecalcScores();
this.stage.addEventListener(Event.ENTER_FRAME, CalcScores);
}
public function HandleGamePause():void{
if ($contextPause){
return;
};
if ($bGame){
if ($engine.$pause){
if ($PauseTime >= $PauseTimeout){
$PauseTime = 0;
$MENU.gotoAndStop("empty_frame");
$engine.Play();
};
} else {
if ($PauseTime >= $PauseTimeout){
$PauseTime = 0;
$MENU.gotoAndStop("pause");
$engine.Pause();
};
};
};
}
public function ReplayLevel():void{
$total_score = ($total_score - $level_score);
ResetLevelStat();
$player_lives = 3;
}
public function __nextcaveFunc(_arg1:MouseEvent):void{
$MENU.removeEventListener(KeyboardEvent.KEY_DOWN, ScoresReplayKeyFunc);
if ($bTrainingMode){
$engine.$sound.StopSounds();
$current_music = $engine.$sound.Play($SOUNDS[GameConstants.M_TITLE_TRACK], true);
$MENU.gotoAndStop("menu");
SaveStats();
ResetGlobalStats();
return;
};
$engine.$sound.StopSounds();
$MENU.play();
NextLevel();
}
public function DestroyLevel():void{
$engine.Reset();
$engine.ClearResources();
}
}
}//package
Section 281
//gem_wav (gem_wav)
package {
import flash.media.*;
public dynamic class gem_wav extends Sound {
}
}//package
Section 282
//goblin_source (goblin_source)
package {
import flash.display.*;
public dynamic class goblin_source extends MovieClip {
public const LABEL_DEATH = 2;
public const LABEL_WALK = 0;
public const LABEL_IDLE = 1;
public var bbox:MovieClip;
public var hook_box:MovieClip;
public var draw_frame:MovieClip;
public function goblin_source(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 283
//grass001_src (grass001_src)
package {
import flash.display.*;
public dynamic class grass001_src extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function grass001_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 284
//greengem_src (greengem_src)
package {
import flash.display.*;
public dynamic class greengem_src extends MovieClip {
public var bbox:MovieClip;
public function greengem_src(){
addFrameScript(0, frame1, 11, frame12);
}
function frame12(){
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package
Section 285
//ground_wav (ground_wav)
package {
import flash.media.*;
public dynamic class ground_wav extends Sound {
}
}//package
Section 286
//ground001_src (ground001_src)
package {
import flash.display.*;
public dynamic class ground001_src extends MovieClip {
public var bbox:MovieClip;
public var levelbottom:MovieClip;
public var draw_frame:MovieClip;
public var solid:MovieClip;
public var grid_cell:MovieClip;
public var grid_bounds:MovieClip;
public function ground001_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 287
//ground002_src (ground002_src)
package {
import flash.display.*;
public dynamic class ground002_src extends MovieClip {
public var bbox:MovieClip;
public var levelbottom:MovieClip;
public var draw_frame:MovieClip;
public var solid:MovieClip;
public var grid_cell:MovieClip;
public var grid_bounds:MovieClip;
public function ground002_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 288
//ground003_src (ground003_src)
package {
import flash.display.*;
public dynamic class ground003_src extends MovieClip {
public var bbox:MovieClip;
public var levelbottom:MovieClip;
public var draw_frame:MovieClip;
public var solid:MovieClip;
public var grid_cell:MovieClip;
public var grid_bounds:MovieClip;
public function ground003_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 289
//ground004_src (ground004_src)
package {
import flash.display.*;
public dynamic class ground004_src extends MovieClip {
public var bbox:MovieClip;
public var levelbottom:MovieClip;
public var draw_frame:MovieClip;
public var solid:MovieClip;
public var grid_cell:MovieClip;
public var grid_bounds:MovieClip;
public function ground004_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 290
//ground005_src (ground005_src)
package {
import flash.display.*;
public dynamic class ground005_src extends MovieClip {
public var bbox:MovieClip;
public var levelbottom:MovieClip;
public var draw_frame:MovieClip;
public var solid:MovieClip;
public var grid_cell:MovieClip;
public var grid_bounds:MovieClip;
public function ground005_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 291
//groundHelp_src (groundHelp_src)
package {
import flash.display.*;
public dynamic class groundHelp_src extends MovieClip {
public var bbox:MovieClip;
public var levelbottom:MovieClip;
public var draw_frame:MovieClip;
public var solid:MovieClip;
public var grid_cell:MovieClip;
public var grid_bounds:MovieClip;
public function groundHelp_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 292
//groundUP_src (groundUP_src)
package {
import flash.display.*;
public dynamic class groundUP_src extends MovieClip {
public var bbox:MovieClip;
public var levelbottom:MovieClip;
public var draw_frame:MovieClip;
public var solid:MovieClip;
public var grid_cell:MovieClip;
public var grid_bounds:MovieClip;
public function groundUP_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 293
//HiddenPlate001_src (HiddenPlate001_src)
package {
import flash.display.*;
public dynamic class HiddenPlate001_src extends MovieClip {
public const LABEL_UNHIDE = 1;
public const LABEL_HIDDEN = 0;
public const LABEL_UNHIDDEN = 2;
public const BITMAP_MIDNAME = "HidingPlate001";
public const LABEL_HIDE = 3;
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function HiddenPlate001_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 294
//hit_wav (hit_wav)
package {
import flash.media.*;
public dynamic class hit_wav extends Sound {
}
}//package
Section 295
//holes001_src (holes001_src)
package {
import flash.display.*;
public dynamic class holes001_src extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function holes001_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 296
//hook_wav (hook_wav)
package {
import flash.media.*;
public dynamic class hook_wav extends Sound {
}
}//package
Section 297
//hook001_src (hook001_src)
package {
import flash.display.*;
public dynamic class hook001_src extends MovieClip {
public const LABEL_FALL = 2;
public const LABEL_IDLE = 0;
public const LABEL_SHAKE = 1;
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function hook001_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 298
//jump_wav (jump_wav)
package {
import flash.media.*;
public dynamic class jump_wav extends Sound {
}
}//package
Section 299
//killers001_src (killers001_src)
package {
import flash.display.*;
public dynamic class killers001_src extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function killers001_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 300
//killers002_src (killers002_src)
package {
import flash.display.*;
public dynamic class killers002_src extends MovieClip {
public const BITMAP_MIDNAME = "CeilSpikes";
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function killers002_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 301
//killers003_src (killers003_src)
package {
import flash.display.*;
public dynamic class killers003_src extends MovieClip {
public const BITMAP_MIDNAME = "Floorspikes";
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function killers003_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 302
//LEVEL_TRACK_wav (LEVEL_TRACK_wav)
package {
import flash.media.*;
public dynamic class LEVEL_TRACK_wav extends Sound {
}
}//package
Section 303
//Lighters_src (Lighters_src)
package {
import flash.display.*;
public dynamic class Lighters_src extends MovieClip {
public const BITMAP_MIDNAME = "Lighter";
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function Lighters_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 304
//LOOSE_TRACK_wav (LOOSE_TRACK_wav)
package {
import flash.media.*;
public dynamic class LOOSE_TRACK_wav extends Sound {
}
}//package
Section 305
//platform001_src (platform001_src)
package {
import flash.display.*;
public dynamic class platform001_src extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function platform001_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 306
//Pointer001_src (Pointer001_src)
package {
import flash.display.*;
public dynamic class Pointer001_src extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function Pointer001_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 307
//quake_wav (quake_wav)
package {
import flash.media.*;
public dynamic class quake_wav extends Sound {
}
}//package
Section 308
//rock_fall_wav (rock_fall_wav)
package {
import flash.media.*;
public dynamic class rock_fall_wav extends Sound {
}
}//package
Section 309
//sfx01_src (sfx01_src)
package {
import flash.display.*;
public dynamic class sfx01_src extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function sfx01_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 310
//spider_jump_wav (spider_jump_wav)
package {
import flash.media.*;
public dynamic class spider_jump_wav extends Sound {
}
}//package
Section 311
//Stone001_src (Stone001_src)
package {
import flash.display.*;
public dynamic class Stone001_src extends MovieClip {
public const BITMAP_MIDNAME = "Stone001";
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function Stone001_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 312
//switch_wav (switch_wav)
package {
import flash.media.*;
public dynamic class switch_wav extends Sound {
}
}//package
Section 313
//switch001_src (switch001_src)
package {
import flash.display.*;
public dynamic class switch001_src extends MovieClip {
public const BITMAP_MIDNAME = "switch001";
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function switch001_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 314
//TITLE_TRACK_wav (TITLE_TRACK_wav)
package {
import flash.media.*;
public dynamic class TITLE_TRACK_wav extends Sound {
}
}//package
Section 315
//Vagon001_src (Vagon001_src)
package {
import flash.display.*;
public dynamic class Vagon001_src extends MovieClip {
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function Vagon001_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 316
//Waterfall001_src (Waterfall001_src)
package {
import flash.display.*;
public dynamic class Waterfall001_src extends MovieClip {
public const BITMAP_MIDNAME = "Waterfall";
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function Waterfall001_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 317
//Waterfall002_src (Waterfall002_src)
package {
import flash.display.*;
public dynamic class Waterfall002_src extends MovieClip {
public const BITMAP_MIDNAME = "Waterfall002";
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function Waterfall002_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 318
//Waterflow001_src (Waterflow001_src)
package {
import flash.display.*;
public dynamic class Waterflow001_src extends MovieClip {
public const BITMAP_MIDNAME = "Waterflow";
public var bbox:MovieClip;
public var draw_frame:MovieClip;
public function Waterflow001_src(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 319
//WIN_TRACK_wav (WIN_TRACK_wav)
package {
import flash.media.*;
public dynamic class WIN_TRACK_wav extends Sound {
}
}//package