Section 1
//Bosses (clss.Bosses)
package clss {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Bosses extends MovieClip {
public var life:uint;
public var dying:Boolean;
public var dead:Boolean;
public var hit:Boolean;
public function Bosses(){
var _local1:Timer;
super();
addFrameScript(0, frame1, 1, frame2, 2, frame3);
_local1 = new Timer(100, 0);
_local1.addEventListener("timer", Acciones);
_local1.start();
}
function Acciones(_arg1:TimerEvent){
if (life <= 0){
dying = true;
};
if (((dying) && ((alpha > 0.5)))){
alpha = (alpha - 0.03);
scaleX = (scaleX + 0.1);
scaleY = (scaleY + 0.1);
};
if (alpha <= 0.5){
dead = true;
};
if (((hit) && (!(dying)))){
alpha = (alpha + 0.1);
};
if (alpha >= 1){
hit = false;
};
}
function frame3(){
life = 20;
}
public function kill(){
dying = true;
}
function frame1(){
life = 15;
}
function frame2(){
life = 10;
}
public function HIT(){
life--;
if (!dying){
hit = true;
};
if (!dying){
alpha = 0.7;
};
}
}
}//package clss
Section 2
//BOULDER (clss.BOULDER)
package clss {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.filters.*;
public class BOULDER extends MovieClip {
public var originX:int;
public var originY:int;
public var id:Boolean;
public var tipo:String;
private var myFilter:DropShadowFilter;
public var advSpeed:int;
public var thisTimer:Timer;
public var accSpeed:int;
public var gfx:MovieClip;
public var tick:Boolean;
public var grabbed:MovieClip;
public var fuerzaX:int;
public var Bfocus:Boolean;
public var fuerzaY:int;
public var Ofocus:Boolean;
private var pausado:Boolean;
public var bandera:int;
static var arregloBoulders:Array = new Array();
public function BOULDER(_arg1:String, _arg2:int, _arg3:int, _arg4:int, _arg5:int){
addFrameScript(0, frame1);
myFilter = new DropShadowFilter(5, 45, 0, 0.5, 2, 2);
alpha = 0;
scaleX = 1.2;
scaleY = 1.2;
advSpeed = _arg3;
accSpeed = _arg2;
fuerzaX = _arg4;
fuerzaY = _arg5;
pausado = false;
tipo = _arg1;
if (tipo == "gemA"){
gfx.gotoAndStop(1);
} else {
if (tipo == "gemB"){
gfx.gotoAndStop(2);
} else {
if (tipo == "gemC"){
gfx.gotoAndStop(3);
} else {
if (tipo == "gemD"){
gfx.gotoAndStop(4);
} else {
if (tipo == "gemE"){
gfx.gotoAndStop(5);
} else {
if (tipo == "gemF"){
gfx.gotoAndStop(6);
};
};
};
};
};
};
addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
Bfocus = false;
Ofocus = false;
grabbed.alpha = 0;
}
public function Acciones(_arg1:TimerEvent){
if (MAIN.pausado == false){
if (alpha < 1){
alpha = (alpha + 0.01);
};
fuerzaX = (fuerzaX + ((originX - x) / (10 / accSpeed)));
fuerzaY = (fuerzaY + ((originY - y) / (10 / accSpeed)));
if (fuerzaX > 50000){
fuerzaX = 50000;
};
if (fuerzaX < -50000){
fuerzaX = -50000;
};
if (fuerzaY > 50000){
fuerzaY = 50000;
};
if (fuerzaY < -50000){
fuerzaY = -50000;
};
x = (x + (fuerzaX / (10000 / advSpeed)));
y = (y + (fuerzaY / (10000 / advSpeed)));
rotation++;
if (tick == true){
if (bandera == 0){
scaleX = 1.1;
scaleY = 1.1;
bandera = 1;
} else {
scaleX = 0.9;
scaleY = 0.9;
bandera = 0;
};
tick = false;
};
};
}
public function mouseUpHandler(_arg1:MouseEvent){
stopDrag();
grabbed.alpha = 0;
Bfocus = false;
}
public function mouseDownHandler(_arg1:MouseEvent){
if (MAIN.pausado == false){
startDrag(true);
grabbed.alpha = 100;
fuerzaX = 0;
fuerzaY = 0;
Bfocus = true;
};
}
function frame1(){
thisTimer = new Timer(10, 0);
thisTimer.addEventListener("timer", Acciones);
thisTimer.start();
bandera = 0;
originX = (550 / 2);
originY = (400 / 2);
tick = false;
}
public function mouseOverHandler(_arg1:MouseEvent){
if (_arg1.buttonDown){
if (MAIN.pausado == false){
startDrag(true);
grabbed.alpha = 100;
fuerzaX = 0;
fuerzaY = 0;
Bfocus = true;
};
};
}
}
}//package clss
Section 3
//FPSCounter (clss.FPSCounter)
package clss {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.text.*;
public class FPSCounter extends MovieClip {
private var startTick:Number;
private var FPS:TextField;
private var numFrames:Number;
public function FPSCounter(){
numFrames = 0;
startTick = getTimer();
FPS = new TextField();
FPS.textColor = 0x666666;
addChild(FPS);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
public function onEnterFrame(_arg1:Event):void{
var _local2:Number;
numFrames++;
_local2 = ((getTimer() - startTick) * 0.001);
if (_local2 > 0.1){
FPS.text = ("FPS: " + (Math.floor(((numFrames / _local2) * 10)) / 10));
};
}
}
}//package clss
Section 4
//HELP (clss.HELP)
package clss {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class HELP extends MovieClip {
var Desplegando;// = true
var contador:int;// = 1
public var helpDialog:MovieClip;
var bandera:Boolean;// = false
public function HELP(_arg1:int){
var _local2:Timer;
bandera = false;
contador = 1;
Desplegando = true;
super();
addFrameScript(0, frame1);
_local2 = new Timer(10, 0);
_local2.addEventListener("timer", Acciones);
_local2.start();
alpha = 0;
helpDialog.gotoAndStop(_arg1);
}
function Acciones(_arg1:TimerEvent){
if (Desplegando == true){
if (alpha < 1){
alpha = (alpha + 0.01);
};
};
if (Desplegando == false){
if (alpha > 0){
alpha = (alpha - 0.01);
};
};
}
function frame1(){
}
}
}//package clss
Section 5
//Key (clss.Key)
package clss {
import flash.events.*;
public class Key {
private var keys:Array;
public function Key(_arg1:Object):void{
keys = new Array(222);
_arg1.addEventListener(KeyboardEvent.KEY_DOWN, downhandle, false, 0, true);
_arg1.addEventListener(KeyboardEvent.KEY_UP, uphandle, false, 0, true);
}
private function uphandle(_arg1:KeyboardEvent):void{
keys[_arg1.keyCode] = false;
}
public function isUp(_arg1:uint, ... _args):Boolean{
var _local3:uint;
if (_args.length == 0){
return (!(keys[_arg1]));
};
if (keys[_arg1]){
return (false);
};
_local3 = 0;
while (_local3 < _args.length) {
if (keys[_args[_local3]]){
return (false);
};
_local3++;
};
return (true);
}
private function downhandle(_arg1:KeyboardEvent):void{
keys[_arg1.keyCode] = true;
}
public function isDown(_arg1:uint, ... _args):Boolean{
var _local3:uint;
if (_args.length == 0){
return (keys[_arg1]);
};
if (!keys[_arg1]){
return (false);
};
_local3 = 0;
while (_local3 < _args.length) {
if (!keys[_args[_local3]]){
return (false);
};
_local3++;
};
return (true);
}
}
}//package clss
Section 6
//LEVELS (clss.LEVELS)
package clss {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.media.*;
public class LEVELS {
private const xQUARTER:int = 137;
private const xHALF:int = 275;
private const yHALF:int = 200;
private const xTHIRD:int = 183;
private const yQUARTER:int = 100;
private const yTHIRD:int = 133;
private var target:MovieClip;
public var timerGenesis:Timer;
private var uniqueNameId:uint;// = 1
private var telon:TELON;
private var k:int;// = 1
private var uniqueModId:uint;// = 1
public var boss:Bosses;
public var currLevel:uint;
private var tempB:uint;// = 10
public var contador:uint;// = 1
private var ayuda:HELP;
private var tempA:uint;// = 10
static var thisRedZone:redZone;
public function LEVELS(_arg1:MovieClip){
uniqueNameId = 1;
uniqueModId = 1;
contador = 1;
tempA = 10;
tempB = 10;
k = 1;
super();
currLevel = 1;
target = _arg1;
thisRedZone = null;
timerGenesis = new Timer(100, 0);
timerGenesis.addEventListener("timer", cicloGenesis);
timerGenesis.start();
}
public function dispatchRedZone(){
thisRedZone = null;
thisRedZone = new redZone(currLevel);
thisRedZone.x = 275;
thisRedZone.y = 200;
thisRedZone.name = "mainRedZone";
target.addChild(thisRedZone);
}
public function Level08(){
levelTransition();
if (contador == 4){
newMod(450, 50, "Wind");
newMod(450, 350, "Wind");
newBoulder(50, (yQUARTER / 2), "gemA", 0.5, 2);
newBoulder(50, (yQUARTER * 1.5), "gemB", 0.5, 2);
newBoulder(50, (yQUARTER * 2.5), "gemC", 0.5, 2);
newBoulder(50, (yQUARTER * 3.5), "gemD", 0.5, 2);
newBoulder(500, (yQUARTER / 2), "gemA", 1, 2);
newBoulder(500, (yQUARTER * 1.5), "gemB", 1, 2);
newBoulder(500, (yQUARTER * 2.5), "gemC", 1, 2);
newBoulder(500, (yQUARTER * 3.5), "gemD", 1, 2);
};
if (contador == 100){
newMod(450, 50, "Wind");
newMod(450, 350, "Wind");
newBoulder(50, ((yQUARTER / 2) - 15), "gemB", 0.5, 2);
newBoulder(50, ((yQUARTER * 1.5) - 15), "gemB", 0.5, 2);
newBoulder(50, ((yQUARTER * 2.5) - 15), "gemB", 0.5, 2);
newBoulder(50, ((yQUARTER * 3.5) - 15), "gemB", 0.5, 2);
newBoulder(50, ((yQUARTER / 2) + 15), "gemB", 0.5, 2);
newBoulder(50, ((yQUARTER * 1.5) + 15), "gemB", 0.5, 2);
newBoulder(50, ((yQUARTER * 2.5) + 15), "gemB", 0.5, 2);
newBoulder(50, ((yQUARTER * 3.5) + 15), "gemB", 0.5, 2);
newBoulder(50, ((yQUARTER / 2) + 45), "gemB", 0.5, 2);
newBoulder(50, ((yQUARTER * 1.5) + 45), "gemB", 0.5, 2);
newBoulder(50, ((yQUARTER * 2.5) + 45), "gemB", 0.5, 2);
newBoulder(50, ((yQUARTER * 3.5) + 45), "gemB", 0.5, 2);
};
if ((((contador > 100)) && (isFinished()))){
advanceLevel();
};
if ((((contador > 150)) && ((BOULDER.arregloBoulders.length < 3)))){
advanceLevel();
};
}
public function Level09(){
var _local1:int;
var _local2:int;
levelTransition();
_local1 = 2;
_local2 = 6;
if (contador == 20){
newBoulder(-10, yQUARTER, "gemB", _local1, _local2);
};
if (contador == 22){
newBoulder(-10, yQUARTER, "gemB", _local1, _local2);
};
if (contador == 24){
newBoulder(-10, yQUARTER, "gemB", _local1, _local2);
};
if (contador == 26){
newBoulder(-10, yQUARTER, "gemB", _local1, _local2);
};
if (contador == 40){
newBoulder(560, (yQUARTER * 3), "gemB", _local1, _local2);
};
if (contador == 42){
newBoulder(560, (yQUARTER * 3), "gemB", _local1, _local2);
};
if (contador == 44){
newBoulder(560, (yQUARTER * 3), "gemB", _local1, _local2);
};
if (contador == 46){
newBoulder(560, (yQUARTER * 3), "gemB", _local1, _local2);
};
if (contador == 60){
newBoulder(560, yQUARTER, "gemA", _local1, _local2);
};
if (contador == 62){
newBoulder(560, yQUARTER, "gemC", _local1, _local2);
};
if (contador == 64){
newBoulder(560, yQUARTER, "gemA", _local1, _local2);
};
if (contador == 66){
newBoulder(560, yQUARTER, "gemC", _local1, _local2);
};
if (contador == 80){
newBoulder(-10, (yQUARTER * 3), "gemA", _local1, _local2);
};
if (contador == 82){
newBoulder(-10, (yQUARTER * 3), "gemC", _local1, _local2);
};
if (contador == 84){
newBoulder(-10, (yQUARTER * 3), "gemA", _local1, _local2);
};
if (contador == 86){
newBoulder(-10, (yQUARTER * 3), "gemC", _local1, _local2);
};
if (contador == 100){
newBoulder(-10, (yQUARTER * 3), "gemB", _local1, _local2);
};
if (contador == 102){
newBoulder(-10, (yQUARTER * 3), "gemD", _local1, _local2);
};
if (contador == 104){
newBoulder(-10, (yQUARTER * 3), "gemB", _local1, _local2);
};
if (contador == 106){
newBoulder(-10, (yQUARTER * 3), "gemD", _local1, _local2);
};
if (contador == 108){
newBoulder(-10, (yQUARTER * 3), "gemB", _local1, _local2);
};
if (contador == 110){
newBoulder(-10, (yQUARTER * 3), "gemD", _local1, _local2);
};
if (contador == 120){
newBoulder(-10, (yQUARTER * 3), "gemB", _local1, _local2);
};
if (contador == 122){
newBoulder(-10, (yQUARTER * 3), "gemD", _local1, _local2);
};
if (contador == 124){
newBoulder(-10, (yQUARTER * 3), "gemB", _local1, _local2);
};
if (contador == 126){
newBoulder(-10, (yQUARTER * 3), "gemD", _local1, _local2);
};
if (contador == 128){
newBoulder(-10, (yQUARTER * 3), "gemB", _local1, _local2);
};
if (contador == 130){
newBoulder(-10, (yQUARTER * 3), "gemD", _local1, _local2);
};
if (contador == 150){
newBoulder(-10, yQUARTER, "gemB", _local1, _local2);
};
if (contador == 152){
newBoulder(-10, yQUARTER, "gemD", _local1, _local2);
};
if (contador == 154){
newBoulder(-10, yQUARTER, "gemB", _local1, _local2);
};
if (contador == 156){
newBoulder(-10, yQUARTER, "gemD", _local1, _local2);
};
if (contador == 158){
newBoulder(-10, yQUARTER, "gemB", _local1, _local2);
};
if (contador == 160){
newBoulder(-10, yQUARTER, "gemD", _local1, _local2);
};
if (contador == 170){
newBoulder(560, yQUARTER, "gemB", _local1, _local2);
};
if (contador == 172){
newBoulder(560, yQUARTER, "gemD", _local1, _local2);
};
if (contador == 174){
newBoulder(560, yQUARTER, "gemB", _local1, _local2);
};
if (contador == 176){
newBoulder(560, yQUARTER, "gemD", _local1, _local2);
};
if (contador == 178){
newBoulder(560, yQUARTER, "gemB", _local1, _local2);
};
if (contador == 180){
newBoulder(560, yQUARTER, "gemD", _local1, _local2);
};
if ((((contador > 180)) && (isFinished()))){
advanceLevel();
};
if ((((contador > 250)) && ((BOULDER.arregloBoulders.length < 3)))){
advanceLevel();
};
}
public function Level13(){
levelTransition();
if (contador == 15){
newBoulder(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "gemA", 1, 1);
newBoulder(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "gemA", 1, 1);
newBoulder(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "gemA", 1, 1);
newBoulder(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "gemA", 1, 1);
newBoulder(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "gemB", 1, 1);
newBoulder(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "gemB", 1, 1);
newBoulder(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "gemB", 1, 1);
newBoulder(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "gemB", 1, 1);
newBoulder(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "gemE", 1, 1);
newBoulder(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "gemE", 1, 1);
newBoulder(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "gemE", 1, 1);
newBoulder(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "gemE", 1, 1);
newBoulder(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "gemD", 1, 1);
newBoulder(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "gemD", 1, 1);
newBoulder(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "gemD", 1, 1);
newBoulder(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "gemD", 1, 1);
newMod(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "Kaos");
newMod(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "Kaos");
newMod(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "Kaos");
newMod(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "Kaos");
newMod(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "Kaos");
newMod(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "Kaos");
newMod(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "Kaos");
newMod(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "Kaos");
newMod(((xHALF * 2) * Math.random()), ((yHALF * 2) * Math.random()), "Kaos");
};
if ((((contador > 15)) && (isFinished()))){
advanceLevel();
};
if ((((contador > 60)) && ((BOULDER.arregloBoulders.length < 3)))){
advanceLevel();
};
}
public function cicloGenesis(_arg1:TimerEvent){
target.txtlevel.text = String(currLevel);
if (MAIN.pausado == false){
if (currLevel == 1){
Level01();
} else {
if (currLevel == 1){
Level01();
} else {
if (currLevel == 2){
Level02();
} else {
if (currLevel == 3){
Level03();
} else {
if (currLevel == 4){
Level04();
} else {
if (currLevel == 5){
Level05();
} else {
if (currLevel == 6){
Level06();
} else {
if (currLevel == 7){
Level07();
} else {
if (currLevel == 8){
Level08();
} else {
if (currLevel == 9){
Level09();
} else {
if (currLevel == 10){
Level10();
} else {
if (currLevel == 11){
Level11();
} else {
if (currLevel == 12){
Level12();
} else {
if (currLevel == 13){
Level13();
} else {
if (currLevel == 14){
Level14();
} else {
if (currLevel == 15){
Level15();
} else {
if (currLevel == 16){
Level16();
} else {
if (currLevel == 100){
LevelMeteorStorm();
} else {
if (currLevel == 101){
LevelScramble();
} else {
if (currLevel == 102){
LevelHurricane();
} else {
if (currLevel == 103){
LevelChallenge();
} else {
if (currLevel == 104){
LevelChallengeComplete();
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
contador++;
};
}
public function Level16(){
levelTransition();
if (contador == 4){
target.removeChild(boss);
};
}
public function Level10(){
levelTransition();
if (contador == 4){
boss = null;
boss = new Bosses();
boss.gotoAndStop(2);
boss.y = yHALF;
boss.x = xHALF;
target.addChild(boss);
};
if ((contador % 40) == 0){
newBoulder(100, 100, "gemD", 1, 1);
newBoulder(100, 200, "gemB", 1, 1);
newBoulder(100, 300, "gemD", 1, 1);
newBoulder(400, 100, "gemD", 1, 1);
newBoulder(400, 200, "gemB", 1, 1);
newBoulder(400, 300, "gemD", 1, 1);
};
if ((((contador > 4)) && ((boss.dead == true)))){
advanceLevel();
};
}
public function Level11(){
levelTransition();
if (contador == 6){
target.removeChild(boss);
};
if (contador == 20){
newBoulder(20, (yTHIRD * 0.5), "gemE", 1, 10);
newBoulder(20, (yTHIRD * 1.5), "gemE", 1, 10);
newBoulder(20, (yTHIRD * 2.5), "gemE", 1, 10);
newBoulder(20, (yTHIRD * 2.5), "gemE", 1, 10);
newBoulder(530, (yTHIRD * 0.5), "gemF", 10, 1);
newBoulder(530, (yTHIRD * 1.5), "gemF", 10, 1);
newBoulder(530, (yTHIRD * 2.5), "gemF", 10, 1);
newBoulder(530, (yTHIRD * 2.5), "gemF", 10, 1);
newMod(130, 50, "Freeze");
newMod(450, 350, "Repel");
};
if (contador == 50){
newBoulder(530, (yTHIRD * 0.5), "gemE", 1, 10);
newBoulder(530, (yTHIRD * 1.5), "gemE", 1, 10);
newBoulder(530, (yTHIRD * 2.5), "gemE", 1, 10);
newBoulder(530, (yTHIRD * 2.5), "gemE", 1, 10);
newBoulder(530, (yTHIRD * 0.5), "gemE", 1, 15);
newBoulder(530, (yTHIRD * 1.5), "gemE", 1, 15);
newBoulder(530, (yTHIRD * 2.5), "gemE", 1, 15);
newBoulder(530, (yTHIRD * 2.5), "gemE", 1, 15);
newBoulder(20, (yTHIRD * 0.5), "gemF", 10, 1);
newBoulder(20, (yTHIRD * 1.5), "gemF", 10, 1);
newBoulder(20, (yTHIRD * 2.5), "gemF", 10, 1);
newBoulder(20, (yTHIRD * 2.5), "gemF", 10, 1);
newBoulder(20, (yTHIRD * 0.5), "gemF", 15, 1);
newBoulder(20, (yTHIRD * 1.5), "gemF", 15, 1);
newBoulder(20, (yTHIRD * 2.5), "gemF", 15, 1);
newBoulder(20, (yTHIRD * 2.5), "gemF", 15, 1);
};
if ((((contador > 50)) && (isFinished()))){
advanceLevel();
};
if ((((contador > 120)) && ((BOULDER.arregloBoulders.length < 3)))){
advanceLevel();
};
}
public function Level12(){
levelTransition();
if (((((((contador % 2) == 0)) && ((contador < 60)))) && ((contador > 15)))){
newBoulder(-99, (yHALF - 15), "gemF", 1, 5, 1500);
newBoulder(649, (yHALF + 15), "gemF", 1, 5, -1500);
};
if (((((((contador % 10) == 0)) && ((contador < 130)))) && ((contador > 70)))){
newBoulder(649, (yHALF - 20), "gemE", 1, 1, -3500);
newBoulder(649, (yHALF + 20), "gemE", 1, 1, -3500);
newBoulder(649, yHALF, "gemE", 1, 1, -3500);
newBoulder(-99, (yHALF - 20), "gemE", 1, 1, 3500);
newBoulder(-99, (yHALF + 20), "gemE", 1, 1, 3500);
newBoulder(-99, yHALF, "gemE", 1, 1, 3500);
};
if (((((((contador % 10) == 0)) && ((contador < 130)))) && ((contador > 70)))){
newBoulder(649, (yHALF - 20), "gemE", 1, 1, -3500);
newBoulder(649, (yHALF + 20), "gemE", 1, 1, -3500);
newBoulder(649, yHALF, "gemE", 1, 1, -3500);
newBoulder(-99, (yHALF - 20), "gemE", 1, 1, 3500);
newBoulder(-99, (yHALF + 20), "gemE", 1, 1, 3500);
newBoulder(-99, yHALF, "gemE", 1, 1, 3500);
};
if ((((contador > 130)) && (isFinished()))){
advanceLevel();
};
if ((((contador > 200)) && ((BOULDER.arregloBoulders.length < 3)))){
advanceLevel();
};
}
public function Level07(){
levelTransition();
if (contador == 10){
newMod(xHALF, 50, "Freeze");
};
if (contador == 50){
newMod(xHALF, 350, "Freeze");
};
if (contador == 90){
newMod(50, yHALF, "Freeze");
};
if (contador == 130){
newMod(500, yHALF, "Freeze");
};
if (contador == 170){
newMod(500, yHALF, "Freeze");
newMod(50, yHALF, "Freeze");
};
if (contador == 20){
newBoulder(50, 50, "gemA", 2, 2);
newBoulder(50, 350, "gemA", 2, 2);
newBoulder(500, 50, "gemA", 2, 2);
newBoulder(500, 350, "gemA", 2, 2);
};
if (contador == 60){
closeHelp();
newBoulder(50, 50, "gemB", 2, 3);
newBoulder(50, 350, "gemB", 2, 3);
newBoulder(500, 50, "gemB", 2, 3);
newBoulder(500, 350, "gemB", 2, 3);
newBoulder(xHALF, 50, "gemB", 2, 5);
newBoulder(xHALF, 350, "gemB", 2, 5);
newBoulder(500, yHALF, "gemB", 2, 5);
newBoulder(50, yHALF, "gemB", 2, 5);
};
if (contador == 100){
newBoulder(50, 50, "gemC", 3, 4);
newBoulder(50, 350, "gemC", 3, 4);
newBoulder(500, 50, "gemC", 3, 4);
newBoulder(500, 350, "gemC", 3, 4);
newBoulder(xHALF, 50, "gemA", 3, 5);
newBoulder(xHALF, 350, "gemA", 3, 5);
newBoulder(50, yHALF, "gemA", 3, 5);
newBoulder(500, yHALF, "gemA", 3, 5);
};
if (contador == 140){
newBoulder(50, 50, "gemD", 4, 5);
newBoulder(50, 350, "gemD", 4, 5);
newBoulder(500, 50, "gemD", 4, 5);
newBoulder(500, 350, "gemD", 4, 5);
newBoulder(xHALF, 50, "gemA", 4, 5);
newBoulder(xHALF, 350, "gemA", 4, 5);
newBoulder(50, yHALF, "gemA", 4, 5);
newBoulder(500, yHALF, "gemA", 4, 5);
};
if ((((contador > 140)) && (isFinished()))){
advanceLevel();
};
if ((((contador > 200)) && ((BOULDER.arregloBoulders.length < 3)))){
advanceLevel();
};
}
public function Level14(){
levelTransition();
if (contador == 20){
newBoulder(100, 200, "gemA", 1, 3);
newBoulder(400, 200, "gemB", 1, 3);
newBoulder(100, 250, "gemA", 1, 3);
newBoulder(400, 250, "gemB", 1, 3);
};
if (contador == 60){
closeHelp();
newBoulder(100, 200, "gemC", 1, 3);
newBoulder(400, 200, "gemD", 1, 3);
newBoulder(100, 250, "gemC", 1, 3);
newBoulder(400, 250, "gemD", 1, 3);
};
if ((((contador > 80)) && (isFinished()))){
advanceLevel();
};
if ((((contador > 150)) && ((BOULDER.arregloBoulders.length < 3)))){
advanceLevel();
};
}
public function finish(){
if (((((((((((!((currLevel == 100))) && (!((currLevel == 101))))) && (!((currLevel == 102))))) && (!((currLevel == 103))))) && (!((currLevel == 104))))) && (!((currLevel == 1))))){
telon.y = 600;
};
if (((((((!((currLevel == 100))) && (!((currLevel == 101))))) && (!((currLevel == 102))))) && (!((currLevel == 1))))){
telon = null;
};
if (((((((!((currLevel == 100))) && (!((currLevel == 101))))) && (!((currLevel == 102))))) && ((currLevel >= 3)))){
target.removeChild(thisRedZone);
};
if ((((((currLevel == 5)) || ((currLevel == 10)))) || ((currLevel == 15)))){
target.removeChild(boss);
};
if (((((((!((currLevel == 100))) && (!((currLevel == 101))))) && (!((currLevel == 102))))) && (!((currLevel == 103))))){
target.removeChild(ayuda);
};
if (((!((currLevel == 100))) && ((currLevel >= 3)))){
thisRedZone = null;
};
}
public function posicionarOrigen(){
target.origin.x = 275;
target.origin.y = 200;
}
public function Level15(){
levelTransition();
if (contador == 4){
boss = null;
boss = new Bosses();
boss.gotoAndStop(3);
boss.y = yHALF;
boss.x = xHALF;
target.addChild(boss);
};
if (((((contador % 10) == 0)) && (isFinished()))){
newBoulder(50, (yTHIRD * 0.5), "gemA", 2, 2);
newBoulder(50, (yTHIRD * 1.5), "gemB", 2, 2);
newBoulder(50, (yTHIRD * 2.5), "gemC", 1, 1);
newBoulder(500, (yTHIRD * 0.5), "gemD", 1, 1);
newBoulder(500, (yTHIRD * 1.5), "gemE", 3, 3);
newBoulder(500, (yTHIRD * 2.5), "gemF", 3, 3);
};
if ((((contador > 4)) && ((boss.dead == true)))){
advanceLevel();
};
}
public function LevelMeteorStorm(){
if ((contador % 5) == 0){
newBoulder(((Math.random() * xHALF) * 2), -30, "gemF", 11, 1, -10000, -10000);
newBoulder(((Math.random() * xHALF) * 2), 430, "gemF", 11, 1, 10000, 10000);
};
}
public function LevelHurricane(){
if ((contador % 15) == 0){
newBoulder(0, ((Math.random() * yHALF) * 2), "gemA", 10, 1);
newBoulder(0, ((Math.random() * yHALF) * 2), "gemB", 10, 1);
newBoulder(0, ((Math.random() * yHALF) * 2), "gemC", 10, 1);
newMod(((Math.random() * xHALF) * 2), ((Math.random() * yHALF) * 2), "Kaos");
newMod(((Math.random() * xHALF) * 2), ((Math.random() * yHALF) * 2), "Kaos");
newMod(((Math.random() * xHALF) * 2), ((Math.random() * yHALF) * 2), "Kaos");
newMod(((Math.random() * xHALF) * 2), ((Math.random() * yHALF) * 2), "Kaos");
};
}
public function hitBoss(){
boss.HIT();
}
public function advanceLevel(){
KillAll();
contador = 0;
currLevel++;
}
public function newBoulder(_arg1:int, _arg2:int, _arg3:String, _arg4:Number=1, _arg5:Number=1, _arg6:int=0, _arg7:int=0){
BOULDER.arregloBoulders.push(new BOULDER(_arg3, _arg4, _arg5, _arg6, _arg7));
BOULDER.arregloBoulders[(BOULDER.arregloBoulders.length - 1)].x = _arg1;
BOULDER.arregloBoulders[(BOULDER.arregloBoulders.length - 1)].y = _arg2;
BOULDER.arregloBoulders[(BOULDER.arregloBoulders.length - 1)].name = ("boulderNum_" + uniqueNameId);
target.addChild(BOULDER.arregloBoulders[(BOULDER.arregloBoulders.length - 1)]);
uniqueNameId++;
}
public function closeTelon(){
telon.Desplegando = false;
}
public function LevelChallengeComplete(){
}
public function isFinished():Boolean{
if (BOULDER.arregloBoulders.length > 0){
return (false);
};
return (true);
}
public function newMod(_arg1:int, _arg2:int, _arg3:String){
MOD.arregloMods.push(new MOD(_arg3));
MOD.arregloMods[(MOD.arregloMods.length - 1)].x = _arg1;
MOD.arregloMods[(MOD.arregloMods.length - 1)].y = _arg2;
MOD.arregloMods[(MOD.arregloMods.length - 1)].name = ("ModNum_" + uniqueModId);
target.addChild(MOD.arregloMods[(MOD.arregloMods.length - 1)]);
uniqueModId++;
}
public function KillAll(){
var _local1:rightPlosion;
k = 1;
while (k <= BOULDER.arregloBoulders.length) {
target.removeChild(target.getChildByName(BOULDER.arregloBoulders[(k - 1)].name));
_local1 = new rightPlosion();
_local1.x = BOULDER.arregloBoulders[(k - 1)].x;
_local1.y = BOULDER.arregloBoulders[(k - 1)].y;
target.addChild(_local1);
k++;
};
k = 1;
while (k <= MOD.arregloMods.length) {
target.removeChild(target.getChildByName(MOD.arregloMods[(k - 1)].name));
k++;
};
BOULDER.arregloBoulders.splice(0, BOULDER.arregloBoulders.length);
MOD.arregloMods.splice(0, MOD.arregloMods.length);
}
public function LevelScramble(){
if ((contador % 25) == 0){
newBoulder(20, ((Math.random() * yHALF) * 2), "gemA", (1 + (Math.random() * 2)), (1 + (Math.random() * 2)));
newBoulder(20, ((Math.random() * yHALF) * 2), "gemB", (1 + (Math.random() * 2)), (1 + (Math.random() * 2)));
newBoulder(20, ((Math.random() * yHALF) * 2), "gemC", (1 + (Math.random() * 2)), (1 + (Math.random() * 2)));
newBoulder(530, ((Math.random() * yHALF) * 2), "gemD", (1 + (Math.random() * 2)), (1 + (Math.random() * 2)));
newBoulder(530, ((Math.random() * yHALF) * 2), "gemE", (1 + (Math.random() * 2)), (1 + (Math.random() * 2)));
newBoulder(530, ((Math.random() * yHALF) * 2), "gemF", (1 + (Math.random() * 2)), (1 + (Math.random() * 2)));
};
}
public function closeHelp(){
ayuda.Desplegando = false;
}
public function dispatchHelp(){
ayuda = null;
ayuda = new HELP(currLevel);
ayuda.x = 275;
ayuda.y = 200;
target.addChild(ayuda);
}
public function dispatchTelon(){
telon.listo = false;
telon.Desplegando = true;
}
public function Level01(){
if (contador == 1){
dispatchHelp();
};
if (contador == 40){
newBoulder((xTHIRD - 20), 350, "gemC");
newBoulder((xTHIRD + 20), 350, "gemC");
newBoulder(((xTHIRD * 2) - 20), 350, "gemC");
newBoulder(((xTHIRD * 2) + 20), 350, "gemC");
};
if (contador == 45){
closeHelp();
};
if (contador == 70){
newBoulder((xTHIRD - 30), 100, "gemC");
newBoulder((xTHIRD + 30), 100, "gemC");
newBoulder(((xTHIRD * 2) - 30), 100, "gemC");
newBoulder(((xTHIRD * 2) + 30), 100, "gemC");
};
if (contador == 90){
newBoulder(0, yQUARTER, "gemC");
newBoulder(0, (yQUARTER * 2), "gemC");
newBoulder(0, (yQUARTER * 3), "gemC");
newBoulder(550, yQUARTER, "gemC");
newBoulder(550, (yQUARTER * 2), "gemC");
newBoulder(550, (yQUARTER * 3), "gemC");
};
if (contador > 90){
if (isFinished()){
advanceLevel();
};
};
if ((((contador > 170)) && ((BOULDER.arregloBoulders.length < 3)))){
KillAll();
advanceLevel();
};
}
public function Level03(){
levelTransition();
if (contador == 40){
closeHelp();
dispatchRedZone();
};
if (contador == 60){
newBoulder((xQUARTER / 2), 400, "gemC", 1, 5);
};
if (contador == 64){
newBoulder((xQUARTER * 1.5), 400, "gemC", 1, 5);
};
if (contador == 68){
newBoulder((xQUARTER * 2), 400, "gemC", 1, 5);
};
if (contador == 72){
newBoulder((xQUARTER * 2.5), 400, "gemC", 1, 5);
};
if (contador == 76){
newBoulder((xQUARTER * 3), 400, "gemC", 1, 5);
};
if (contador == 80){
newBoulder((xQUARTER * 3.5), 400, "gemC", 1, 5);
};
if (contador == 60){
newBoulder((xQUARTER / 2), 0, "gemD", 1, 5);
};
if (contador == 64){
newBoulder((xQUARTER * 1.5), 0, "gemD", 1, 5);
};
if (contador == 68){
newBoulder((xQUARTER * 2), 0, "gemD", 1, 5);
};
if (contador == 72){
newBoulder((xQUARTER * 2.5), 0, "gemD", 1, 5);
};
if (contador == 76){
newBoulder((xQUARTER * 3), 0, "gemD", 1, 5);
};
if (contador == 80){
newBoulder((xQUARTER * 3.5), 0, "gemD", 1, 5);
};
tempA = 5;
tempB = 1;
if (contador == 100){
newBoulder(0, (yQUARTER / 2), "gemC", tempA, tempB);
newBoulder(0, (yQUARTER * 1.5), "gemC", tempA, tempB);
newBoulder(0, (yQUARTER * 2), "gemC", tempA, tempB);
newBoulder(0, (yQUARTER * 2.5), "gemC", tempA, tempB);
newBoulder(0, (yQUARTER * 3), "gemC", tempA, tempB);
newBoulder(0, (yQUARTER * 3.5), "gemC", tempA, tempB);
};
if (contador == 110){
newBoulder(550, (yQUARTER / 2), "gemD", tempA, tempB);
newBoulder(550, (yQUARTER * 1.5), "gemD", tempA, tempB);
newBoulder(550, (yQUARTER * 2), "gemD", tempA, tempB);
newBoulder(550, (yQUARTER * 2.5), "gemD", tempA, tempB);
newBoulder(550, (yQUARTER * 3), "gemD", tempA, tempB);
newBoulder(550, (yQUARTER * 3.5), "gemD", tempA, tempB);
};
if (contador > 110){
if (isFinished()){
advanceLevel();
};
};
if ((((contador > 200)) && ((BOULDER.arregloBoulders.length < 3)))){
advanceLevel();
};
}
public function Level04(){
levelTransition();
if (contador == 40){
closeHelp();
};
if (contador == 40){
newBoulder((xQUARTER / 2), 400, "gemC", 1, 2);
newBoulder((xQUARTER * 1.5), 400, "gemD", 1, 2);
newBoulder((xQUARTER * 2.5), 400, "gemC", 1, 2);
newBoulder((xQUARTER * 3), 400, "gemD", 1, 2);
};
if (contador == 40){
newBoulder((xQUARTER / 2), 0, "gemD", 1, 2);
newBoulder((xQUARTER * 1.5), 0, "gemC", 1, 2);
newBoulder((xQUARTER * 2.5), 0, "gemD", 1, 2);
newBoulder((xQUARTER * 3), 0, "gemC", 1, 2);
};
if (contador == 80){
newBoulder((xQUARTER / 2), 400, "gemD", 1, 2);
newBoulder((xQUARTER * 1.5), 400, "gemC", 1, 2);
newBoulder((xQUARTER * 2.5), 400, "gemD", 1, 2);
newBoulder((xQUARTER * 3), 400, "gemC", 1, 2);
};
if (contador == 80){
newBoulder((xQUARTER / 2), 0, "gemC", 1, 2);
newBoulder((xQUARTER * 1.5), 0, "gemD", 1, 2);
newBoulder((xQUARTER * 2.5), 0, "gemC", 1, 2);
newBoulder((xQUARTER * 3), 0, "gemD", 1, 2);
};
if (contador == 110){
newBoulder((xQUARTER / 2), 400, "gemC", 1, 2);
newBoulder((xQUARTER * 1.5), 400, "gemD", 1, 2);
newBoulder((xQUARTER * 2.5), 400, "gemC", 1, 2);
newBoulder((xQUARTER * 3), 400, "gemD", 1, 2);
};
if (contador == 110){
newBoulder((xQUARTER / 2), 0, "gemD", 1, 2);
newBoulder((xQUARTER * 1.5), 0, "gemC", 1, 2);
newBoulder((xQUARTER * 2.5), 0, "gemD", 1, 2);
newBoulder((xQUARTER * 3), 0, "gemC", 1, 2);
};
if (contador == 130){
newBoulder((xQUARTER / 2), 400, "gemD", 1, 2);
newBoulder((xQUARTER * 1.5), 400, "gemC", 1, 2);
newBoulder((xQUARTER * 2.5), 400, "gemD", 1, 2);
newBoulder((xQUARTER * 3), 400, "gemC", 1, 2);
};
if (contador == 130){
newBoulder((xQUARTER / 2), 0, "gemC", 1, 2);
newBoulder((xQUARTER * 1.5), 0, "gemD", 1, 2);
newBoulder((xQUARTER * 2.5), 0, "gemC", 1, 2);
newBoulder((xQUARTER * 3), 0, "gemD", 1, 2);
};
if ((((contador > 130)) && (isFinished()))){
advanceLevel();
};
if ((((contador > 200)) && ((BOULDER.arregloBoulders.length < 3)))){
advanceLevel();
};
}
public function Level05(){
levelTransition();
if (contador == 4){
boss = new Bosses();
boss.gotoAndStop(1);
boss.y = 100;
boss.x = xHALF;
target.addChild(boss);
};
if (contador == 40){
closeHelp();
};
if ((((contador > 25)) && (((contador % 12) == 0)))){
newBoulder((Math.random() * 550), -10, "gemC", 5, 2);
};
if ((((contador > 25)) && (((contador % 25) == 0)))){
newBoulder((Math.random() * 550), -10, "gemD", 5, 2);
};
if ((((contador > 4)) && ((boss.dead == true)))){
advanceLevel();
};
}
public function Level06(){
levelTransition();
if (contador == 6){
target.removeChild(boss);
};
if (contador == 40){
closeHelp();
};
if (contador == 20){
newBoulder((xQUARTER / 2), 350, "gemB", 0.5, 2);
newBoulder((xQUARTER * 1.5), 350, "gemA", 0.5, 2);
newBoulder((xQUARTER * 2.5), 350, "gemB", 0.5, 2);
newBoulder((xQUARTER * 3.5), 350, "gemA", 0.5, 2);
};
if (contador == 20){
newBoulder(50, (yQUARTER / 2), "gemB", 0.5, 2);
newBoulder(50, (yQUARTER * 1.5), "gemA", 0.5, 2);
newBoulder(50, (yQUARTER * 2.5), "gemB", 0.5, 2);
newBoulder(50, (yQUARTER * 3.5), "gemA", 0.5, 2);
};
if (contador == 20){
newBoulder((xQUARTER / 2), 50, "gemB", 0.5, 2);
newBoulder((xQUARTER * 1.5), 50, "gemA", 0.5, 2);
newBoulder((xQUARTER * 2.5), 50, "gemB", 0.5, 2);
newBoulder((xQUARTER * 3.5), 50, "gemA", 0.5, 2);
};
if (contador == 20){
newBoulder(500, (yQUARTER / 2), "gemA", 0.5, 2);
newBoulder(500, (yQUARTER * 1.5), "gemB", 0.5, 2);
newBoulder(500, (yQUARTER * 2.5), "gemA", 0.5, 2);
newBoulder(500, (yQUARTER * 3.5), "gemB", 0.5, 2);
};
if (contador == 100){
newBoulder(500, (yQUARTER * 1.5), "gemB", 1, 2);
newBoulder(500, (yQUARTER * 2.5), "gemC", 1, 2);
newBoulder(500, (yQUARTER * 3.5), "gemA", 1, 2);
};
if (contador == 100){
newBoulder(50, (yQUARTER / 2), "gemA", 1, 2);
newBoulder(50, (yQUARTER * 1.5), "gemB", 1, 2);
newBoulder(50, (yQUARTER * 2.5), "gemC", 1, 2);
};
if ((((contador > 130)) && (isFinished()))){
advanceLevel();
};
if ((((contador > 200)) && ((BOULDER.arregloBoulders.length < 3)))){
advanceLevel();
};
}
public function LevelChallenge(){
var _local1:String;
if (contador == 4){
dispatchRedZone();
};
if ((contador % 40) == 0){
newBoulder(((Math.random() * xHALF) * 2), -30, "gemB", 2, 2, -10000, -10000);
_local1 = thisRedZone.challenge_area.red_area.y;
if (int(_local1) < -4700){
advanceLevel();
};
};
}
public function levelTransition(){
if (contador == 1){
dispatchTelon();
};
if ((((telon.listo == true)) && ((contador == 3)))){
closeTelon();
contador = 4;
posicionarOrigen();
if (currLevel > 3){
thisRedZone.gotoAndStop(currLevel);
};
} else {
if (telon.listo == false){
contador = 2;
};
};
if (contador == 10){
dispatchHelp();
};
}
public function Level02(){
if (contador == 1){
telon = new TELON();
telon.x = 275;
telon.y = 200;
target.addChild(telon);
};
levelTransition();
if (contador == 30){
newBoulder(0, 0, "gemC", 4, 1);
newBoulder(550, 400, "gemC", 4, 1);
newBoulder(0, 400, "gemD", 4, 1);
newBoulder(550, 0, "gemD", 4, 1);
};
if (contador == 45){
closeHelp();
};
if (contador == 55){
newBoulder(0, 0, "gemC", 1, 1);
newBoulder(550, 400, "gemC", 1, 1);
newBoulder(xHALF, 400, "gemD", 1, 1);
newBoulder(xHALF, 0, "gemD", 1, 1);
newBoulder(0, 400, "gemC", 1, 1);
newBoulder(550, 0, "gemC", 1, 1);
newBoulder(0, yHALF, "gemD", 1, 1);
newBoulder(550, yHALF, "gemD", 1, 1);
};
if (contador == 80){
newBoulder(0, 0, "gemD", 1, 1);
newBoulder(550, 400, "gemD", 1, 1);
newBoulder(xHALF, 400, "gemC", 1, 1);
newBoulder(xHALF, 0, "gemC", 1, 1);
newBoulder(0, 400, "gemD", 1, 1);
newBoulder(550, 0, "gemD", 1, 1);
newBoulder(0, yHALF, "gemC", 1, 1);
newBoulder(550, yHALF, "gemC", 1, 1);
};
if (contador > 85){
if (isFinished()){
advanceLevel();
};
};
if ((((contador > 180)) && ((BOULDER.arregloBoulders.length < 3)))){
advanceLevel();
};
}
}
}//package clss
Section 7
//MAIN (clss.MAIN)
package clss {
import flash.events.*;
import flash.display.*;
import com.kongregate.as3.client.*;
import flash.net.*;
import flash.utils.*;
import flash.text.*;
import flash.media.*;
import flash.ui.*;
public dynamic class MAIN extends MovieClip {
public var txt_adventure:TextField;
public var txtScore:TextField;
public var btnInstructions:SimpleButton;
public var timerIntro:Timer;
private var vault:VAULT;
private var currLevelHold:int;
public var txt_meteor:TextField;
public var btnNormal:SimpleButton;
public var kongIntro:MovieClip;
private var i:int;// = 1
private var k:int;// = 1
public var btn_challenge:SimpleButton;
public var btn_hurricane:SimpleButton;
public var txtLifeBars:TextField;
private var m:int;// = 1
private var l:int;// = 1
private var dY:int;// = 0
public var btn_Vanilla:SimpleButton;
private var j:int;// = 1
private var t:int;// = 1
private var emptyVar;// = 34
private var currModArrayLen:int;
public var btnSettings:SimpleButton;
private var dX:int;// = 0
public var btnProgress:SimpleButton;
public var btnCredits:SimpleButton;
private var timerRythm:Timer;
private var yaPego:Number;
private var timerOrigin:Timer;
var fx;
public var btn_adventure:SimpleButton;
public var btn_hard:SimpleButton;
public var txtCombo:TextField;
public var btnQuality:SimpleButton;
public var txtlevel:TextField;
public var timerIntroV:Timer;
public var t_1:MovieClip;
public var t_4:MovieClip;
public var t_5:MovieClip;
public var t_6:MovieClip;
public var t_7:MovieClip;
public var origin:MovieClip;
public var t_2:MovieClip;
public var t_3:MovieClip;
private var keyui:Key;
public var t_9:MovieClip;
public var t_8:MovieClip;
private var seleccion:int;
private var banderaT:Boolean;// = true
private var currArrayLen:int;
public var txt_challenge:TextField;
public var btnKongregate:SimpleButton;
public var txt_hard:TextField;
public var btnBack:SimpleButton;
public var btn_meteoro:SimpleButton;
var timerColisiones:Timer;
private var levels:LEVELS;
public var gfx:MovieClip;
public var txt_hurricane:TextField;
public var txt_advCombo:TextField;
private var cFPS:FPSCounter;
public var btnErase:SimpleButton;
var chnl_fx:SoundChannel;
public var txt_scramble:TextField;
public var gameOver_dialog:gameOverDialog;
public var jukebox:MovieClip;
public var VanillaIntro:MovieClip;
private var pC:int;// = 1
private var kongregate:KongregateAPI;
public var btn_soup:SimpleButton;
public static var scr:int;
public static var level:int;
public static var bigCombo:int;
public static var combo:int;
public static var lf:int;
public static var pausado:Boolean;
public function MAIN(){
keyui = new Key(stage);
emptyVar = 34;
banderaT = true;
j = 1;
i = 1;
k = 1;
l = 1;
m = 1;
t = 1;
dX = 0;
dY = 0;
pC = 1;
super();
addFrameScript(0, frame1, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 11, frame12, 12, frame13, 13, frame14, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 18, frame19, 19, frame20);
kongregate = new KongregateAPI();
this.addChild(kongregate);
vault = new VAULT();
cFPS = new FPSCounter();
cFPS.x = 500;
cFPS.y = 0;
this.addChild(cFPS);
timerRythm = new Timer(469, 0);
timerRythm.addEventListener("timer", cicloRythm);
timerOrigin = new Timer(20, 0);
timerOrigin.addEventListener("timer", control);
timerColisiones = new Timer(10, 0);
timerColisiones.addEventListener("timer", deteccionColisiones);
}
public function onAdventureClick(_arg1:MouseEvent):void{
SoundMixer.stopAll();
gotoAndPlay("normal");
}
public function OnLogoPress(_arg1:MouseEvent){
navigateToURL(new URLRequest("http://www.kongregate.com/?gamereferral=Shape-a-licious"), "_blank");
}
public function onHardClick(_arg1:MouseEvent):void{
SoundMixer.stopAll();
gotoAndPlay("Hard");
}
function frame14(){
scr = 0;
combo = 0;
lf = 130;
level = 0;
bigCombo = 0;
pausado = false;
timerOrigin.start();
parseLifeVars(lf);
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
addEventListener(MouseEvent.ROLL_OUT, mouseAfueraHandler);
timerColisiones.start();
levels = null;
levels = new LEVELS(this);
levels.currLevel = 100;
stop();
}
function frame16(){
scr = 0;
combo = 0;
lf = 130;
level = 0;
bigCombo = 0;
pausado = false;
timerOrigin.start();
parseLifeVars(lf);
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
addEventListener(MouseEvent.ROLL_OUT, mouseAfueraHandler);
timerColisiones.start();
levels = null;
levels = new LEVELS(this);
levels.currLevel = 103;
stop();
}
function frame5(){
MochiAd.showInterLevelAd({clip:root, id:"a64757caff87fd86", res:"550x400", no_bg:false});
}
public function mouseDownHandler(_arg1:MouseEvent){
origin.presionado = true;
}
function frame11(){
btnBack.addEventListener(MouseEvent.CLICK, onBackClick);
btn_adventure.addEventListener(MouseEvent.CLICK, onAdventureClick);
btn_hard.addEventListener(MouseEvent.CLICK, onHardClick);
btn_meteoro.addEventListener(MouseEvent.CLICK, onMeteorClick);
btn_challenge.addEventListener(MouseEvent.CLICK, onChallengeClick);
btn_hurricane.addEventListener(MouseEvent.CLICK, onHurricaneClick);
btn_soup.addEventListener(MouseEvent.CLICK, onSoupClick);
stop();
}
function frame6(){
SoundMixer.stopAll();
}
function frame4(){
stop();
timerIntroV = new Timer(500, 0);
timerIntroV.addEventListener("timer", cicloIntroV);
timerIntroV.start();
}
function frame19(){
btnBack.addEventListener(MouseEvent.CLICK, onBackClick);
stop();
}
function frame3(){
stop();
timerIntro = new Timer(500, 0);
timerIntro.addEventListener("timer", cicloIntro);
timerIntro.start();
}
function frame9(){
levels = null;
stop();
}
function frame12(){
stop();
if (vault.trophy_adventureComplete){
t_1.x = 135;
};
if (vault.trophy_adventureCombo){
t_2.x = 135;
};
if (vault.trophy_challengeComplete){
t_3.x = 135;
};
if (vault.trophy_hurricaneScore){
t_4.x = 135;
};
if (vault.trophy_meteorScore){
t_5.x = 135;
};
if (vault.trophy_scrambleScore){
t_6.x = 135;
};
if (vault.trophy_adventureScore){
t_7.x = 135;
};
if (vault.trophy_hardComplete){
t_8.x = 135;
};
if (vault.trophy_perfectCombo){
t_9.x = 135;
};
btnBack.addEventListener(MouseEvent.CLICK, onBackClick);
}
public function cicloIntroV(_arg1:TimerEvent){
if (VanillaIntro.cargado == 1){
timerIntroV.stop();
gotoAndPlay("menu");
};
}
function frame1(){
MochiAd.showPreGameAd({clip:root, id:"a64757caff87fd86", res:"550x400", background:0xFFFFFF, color:0x884F00, outline:6307872, no_bg:true});
MochiBot.track(this, "8c90e2c6");
}
public function onCreditsClick(_arg1:MouseEvent):void{
SoundMixer.stopAll();
gotoAndPlay("Credits");
}
function frame13(){
scr = 0;
combo = 0;
lf = 130;
level = 0;
bigCombo = 0;
pausado = false;
timerOrigin.start();
parseLifeVars(lf);
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
addEventListener(MouseEvent.ROLL_OUT, mouseAfueraHandler);
timerColisiones.start();
levels = null;
levels = new LEVELS(this);
levels.currLevel = 100;
stop();
}
function frame7(){
btnNormal.addEventListener(MouseEvent.CLICK, onNormalClick);
btnInstructions.addEventListener(MouseEvent.CLICK, onInstructionsClick);
btnProgress.addEventListener(MouseEvent.CLICK, onProgressClick);
btnCredits.addEventListener(MouseEvent.CLICK, onCreditsClick);
btnSettings.addEventListener(MouseEvent.CLICK, onSettingsClick);
btn_Vanilla.addEventListener(MouseEvent.CLICK, OnLogoPressV);
btnKongregate.addEventListener(MouseEvent.CLICK, OnLogoPress);
stop();
}
function frame8(){
scr = 0;
combo = 0;
lf = 130;
level = 0;
bigCombo = 0;
pausado = false;
timerOrigin.start();
timerRythm.start();
parseLifeVars(lf);
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
addEventListener(MouseEvent.ROLL_OUT, mouseAfueraHandler);
timerColisiones.start();
levels = null;
levels = new LEVELS(this);
stop();
}
function frame17(){
scr = 0;
combo = 0;
lf = 130;
level = 0;
bigCombo = 0;
pausado = false;
timerOrigin.start();
parseLifeVars(lf);
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
addEventListener(MouseEvent.ROLL_OUT, mouseAfueraHandler);
timerColisiones.start();
levels = null;
levels = new LEVELS(this);
stop();
}
public function onChallengeClick(_arg1:MouseEvent):void{
SoundMixer.stopAll();
gotoAndPlay("Challenge");
}
function frame18(){
scr = 0;
combo = 0;
lf = 130;
level = 0;
bigCombo = 0;
pausado = false;
timerOrigin.start();
parseLifeVars(lf);
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
addEventListener(MouseEvent.ROLL_OUT, mouseAfueraHandler);
timerColisiones.start();
levels = null;
levels = new LEVELS(this);
levels.currLevel = 102;
stop();
}
public function onSoupClick(_arg1:MouseEvent):void{
SoundMixer.stopAll();
gotoAndPlay("Soup");
}
function frame10(){
btnBack.addEventListener(MouseEvent.CLICK, onBackClick);
txt_hurricane.text = String(vault.score_hurricane);
txt_adventure.text = String(vault.score_adventure);
txt_meteor.text = String(vault.score_meteor);
txt_challenge.text = String(vault.score_challenge);
txt_scramble.text = String(vault.score_scramble);
txt_hard.text = String(vault.score_hard);
txt_advCombo.text = String(vault.combo_adventure);
stop();
}
public function onInstructionsClick(_arg1:MouseEvent):void{
SoundMixer.stopAll();
gotoAndPlay("instructions");
}
function frame20(){
btnBack.addEventListener(MouseEvent.CLICK, onBackClick);
stop();
btnQuality.addEventListener(MouseEvent.CLICK, onQualityClick);
btnErase.addEventListener(MouseEvent.CLICK, onEraseClick);
}
function cicloMods(){
if (currModArrayLen > 0){
j = 1;
while (j <= MOD.arregloMods.length) {
if (MOD.arregloMods[(j - 1)].x > 550){
this.removeChild(getChildByName(MOD.arregloMods[(j - 1)].name));
MOD.arregloMods.splice((j - 1), 1);
break;
};
if (MOD.arregloMods[(j - 1)].Ofocus == true){
if (MOD.arregloMods[(j - 1)].tipo == "Wind"){
k = 1;
while (k <= BOULDER.arregloBoulders.length) {
BOULDER.arregloBoulders[(k - 1)].fuerzaX = (BOULDER.arregloBoulders[(k - 1)].fuerzaX + 3000);
k++;
};
};
if (MOD.arregloMods[(j - 1)].tipo == "Kaos"){
k = 1;
while (k <= BOULDER.arregloBoulders.length) {
BOULDER.arregloBoulders[(k - 1)].fuerzaX = (BOULDER.arregloBoulders[(k - 1)].fuerzaX + ((Math.random() - 0.5) * 100000));
BOULDER.arregloBoulders[(k - 1)].fuerzaY = (BOULDER.arregloBoulders[(k - 1)].fuerzaY + ((Math.random() - 0.5) * 100000));
k++;
};
};
if (MOD.arregloMods[(j - 1)].tipo == "KillAll"){
k = 1;
while (k <= BOULDER.arregloBoulders.length) {
this.removeChild(getChildByName(BOULDER.arregloBoulders[(k - 1)].name));
BOULDER.arregloBoulders.splice((k - 1), 1);
scr = (scr + 100);
txtScore.text = String(scr);
k++;
};
};
if (MOD.arregloMods[(j - 1)].tipo == "Freeze"){
k = 1;
while (k <= BOULDER.arregloBoulders.length) {
BOULDER.arregloBoulders[(k - 1)].fuerzaX = 0;
BOULDER.arregloBoulders[(k - 1)].fuerzaY = 0;
k++;
};
};
if (MOD.arregloMods[(j - 1)].tipo == "Repel"){
k = 1;
while (k <= BOULDER.arregloBoulders.length) {
BOULDER.arregloBoulders[(k - 1)].fuerzaX = (BOULDER.arregloBoulders[(k - 1)].fuerzaX * -1);
BOULDER.arregloBoulders[(k - 1)].fuerzaY = (BOULDER.arregloBoulders[(k - 1)].fuerzaY * -1);
k++;
};
};
fx = new rightPlosion();
fx.x = MOD.arregloMods[(j - 1)].x;
fx.y = MOD.arregloMods[(j - 1)].y;
this.addChild(fx);
this.removeChild(getChildByName(MOD.arregloMods[(j - 1)].name));
MOD.arregloMods.splice((j - 1), 1);
};
j++;
};
};
}
function frame15(){
scr = 0;
combo = 0;
lf = 130;
level = 0;
bigCombo = 0;
pausado = false;
timerOrigin.start();
parseLifeVars(lf);
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
addEventListener(MouseEvent.ROLL_OUT, mouseAfueraHandler);
timerColisiones.start();
levels = null;
levels = new LEVELS(this);
levels.currLevel = 101;
stop();
}
public function mouseUpHandler(_arg1:MouseEvent){
origin.presionado = false;
combo = 0;
txtCombo.text = ("+" + String(combo));
}
public function deteccionColisiones(_arg1:TimerEvent){
var _local2:*;
if (levels.currLevel != currLevelHold){
seleccion = 0;
};
if (seleccion == 0){
if (levels.currLevel == 1){
jukebox.gotoAndPlay("LoopEasy");
seleccion = 1;
} else {
if (levels.currLevel == 5){
jukebox.gotoAndPlay("LoopBossOne");
seleccion = 1;
} else {
if (levels.currLevel == 6){
jukebox.gotoAndPlay("LoopB");
seleccion = 1;
} else {
if (levels.currLevel == 15){
jukebox.gotoAndPlay("LoopBSpeed");
seleccion = 1;
} else {
if (levels.currLevel == 16){
jukebox.gotoAndPlay("LoopFanfare");
seleccion = 1;
} else {
if (levels.currLevel == 100){
jukebox.gotoAndPlay("LoopBSpeed");
seleccion = 1;
} else {
if (levels.currLevel == 101){
jukebox.gotoAndPlay("LoopB");
seleccion = 1;
} else {
if (levels.currLevel == 102){
jukebox.gotoAndPlay("LoopBSpeed");
seleccion = 1;
} else {
if (levels.currLevel == 103){
jukebox.gotoAndPlay("LoopEasy");
seleccion = 1;
};
};
};
};
};
};
};
};
};
if (levels.currLevel == 104){
jukebox.gotoAndPlay("LoopFanfare");
seleccion = 1;
};
};
currLevelHold = levels.currLevel;
if (pausado == false){
if (LEVELS.thisRedZone){
if (LEVELS.thisRedZone.hitTestPoint(origin.x, origin.y, true)){
lf = (lf - 1);
parseLifeVars(lf);
};
if (LEVELS.thisRedZone.hitTestPoint(this.mouseX, this.mouseY, true)){
lf = (lf - 0.5);
parseLifeVars(lf);
};
};
};
if (pausado == false){
if (levels.boss){
if (levels.boss.hitTestPoint(origin.x, origin.y, true)){
lf = (lf - 1);
parseLifeVars(lf);
};
};
};
yaPego = 0;
currArrayLen = BOULDER.arregloBoulders.length;
currModArrayLen = MOD.arregloMods.length;
cicloMods();
if (currArrayLen > 0){
j = 1;
while (j <= currArrayLen) {
if (yaPego == 0){
if (BOULDER.arregloBoulders[(j - 1)].x < -100){
BOULDER.arregloBoulders[(j - 1)].x = 600;
};
if (BOULDER.arregloBoulders[(j - 1)].x > 650){
BOULDER.arregloBoulders[(j - 1)].x = -100;
};
if (BOULDER.arregloBoulders[(j - 1)].y > 500){
BOULDER.arregloBoulders[(j - 1)].y = -50;
};
if (BOULDER.arregloBoulders[(j - 1)].y < -100){
BOULDER.arregloBoulders[(j - 1)].y = 450;
};
BOULDER.arregloBoulders[(j - 1)].originX = origin.x;
BOULDER.arregloBoulders[(j - 1)].originY = origin.y;
if (levels.currLevel == 5){
if (levels.boss){
if (BOULDER.arregloBoulders[(j - 1)].Bfocus == true){
if (levels.boss.hitTestPoint(BOULDER.arregloBoulders[(j - 1)].x, BOULDER.arregloBoulders[(j - 1)].y, true)){
if (BOULDER.arregloBoulders[(j - 1)].tipo == "gemC"){
fx = new rightPlosion();
fx.x = BOULDER.arregloBoulders[(j - 1)].x;
fx.y = BOULDER.arregloBoulders[(j - 1)].y;
this.addChild(fx);
combo++;
if (combo > bigCombo){
bigCombo = combo;
};
scr = (scr + (100 + (combo << 1)));
levels.hitBoss();
txtScore.text = String(scr);
txtCombo.text = ("+" + String(combo));
} else {
fx = new wrongPlosion();
fx.x = BOULDER.arregloBoulders[(j - 1)].x;
fx.y = BOULDER.arregloBoulders[(j - 1)].y;
this.addChild(fx);
lf = (lf - 10);
parseLifeVars(lf);
combo = 0;
txtCombo.text = ("+" + String(combo));
};
this.removeChild(getChildByName(BOULDER.arregloBoulders[(j - 1)].name));
BOULDER.arregloBoulders.splice((j - 1), 1);
yaPego = 1;
break;
};
};
};
};
if (levels.currLevel == 10){
if (levels.boss){
if (BOULDER.arregloBoulders[(j - 1)].Bfocus == true){
if (levels.boss.hitTestPoint(BOULDER.arregloBoulders[(j - 1)].x, BOULDER.arregloBoulders[(j - 1)].y, true)){
if (BOULDER.arregloBoulders[(j - 1)].tipo == "gemD"){
fx = new rightPlosion();
fx.x = BOULDER.arregloBoulders[(j - 1)].x;
fx.y = BOULDER.arregloBoulders[(j - 1)].y;
this.addChild(fx);
combo++;
if (combo > bigCombo){
bigCombo = combo;
};
scr = (scr + (100 + (combo << 1)));
levels.hitBoss();
txtScore.text = String(scr);
txtCombo.text = ("+" + String(combo));
} else {
fx = new wrongPlosion();
fx.x = BOULDER.arregloBoulders[(j - 1)].x;
fx.y = BOULDER.arregloBoulders[(j - 1)].y;
this.addChild(fx);
lf = (lf - 10);
parseLifeVars(lf);
combo = 0;
txtCombo.text = ("+" + String(combo));
};
this.removeChild(getChildByName(BOULDER.arregloBoulders[(j - 1)].name));
BOULDER.arregloBoulders.splice((j - 1), 1);
yaPego = 1;
break;
};
};
};
};
if (levels.currLevel == 15){
if (levels.boss){
if (BOULDER.arregloBoulders[(j - 1)].Bfocus == true){
if (levels.boss.hitTestPoint(BOULDER.arregloBoulders[(j - 1)].x, BOULDER.arregloBoulders[(j - 1)].y, true)){
fx = new rightPlosion();
fx.x = BOULDER.arregloBoulders[(j - 1)].x;
fx.y = BOULDER.arregloBoulders[(j - 1)].y;
this.addChild(fx);
combo++;
if (combo > bigCombo){
bigCombo = combo;
};
scr = (scr + (100 + (combo << 1)));
levels.hitBoss();
txtScore.text = String(scr);
txtCombo.text = ("+" + String(combo));
this.removeChild(getChildByName(BOULDER.arregloBoulders[(j - 1)].name));
BOULDER.arregloBoulders.splice((j - 1), 1);
yaPego = 1;
break;
};
};
};
};
if (BOULDER.arregloBoulders[(j - 1)].hitTestPoint(origin.x, origin.y)){
fx = new wrongPlosion();
fx.x = BOULDER.arregloBoulders[(j - 1)].x;
fx.y = BOULDER.arregloBoulders[(j - 1)].y;
this.addChild(fx);
combo = 0;
txtCombo.text = ("+" + String(combo));
this.removeChild(getChildByName(BOULDER.arregloBoulders[(j - 1)].name));
BOULDER.arregloBoulders.splice((j - 1), 1);
lf = (lf - 20);
parseLifeVars(lf);
yaPego = 1;
break;
};
if (BOULDER.arregloBoulders[(j - 1)].Bfocus == true){
_local2 = 0;
_local2 = 1;
while (_local2 <= currArrayLen) {
if (((BOULDER.arregloBoulders[(j - 1)].hitTestPoint(BOULDER.arregloBoulders[(_local2 - 1)].x, BOULDER.arregloBoulders[(_local2 - 1)].y, true)) && (!((_local2 == j))))){
if (BOULDER.arregloBoulders[(j - 1)].tipo == BOULDER.arregloBoulders[(_local2 - 1)].tipo){
fx = new rightPlosion();
fx.x = BOULDER.arregloBoulders[(j - 1)].x;
fx.y = BOULDER.arregloBoulders[(j - 1)].y;
this.addChild(fx);
combo++;
if (combo > bigCombo){
bigCombo = combo;
};
scr = (scr + (100 + (combo << 1)));
txtScore.text = String(scr);
txtCombo.text = ("+" + String(combo));
} else {
fx = new wrongPlosion();
fx.x = BOULDER.arregloBoulders[(j - 1)].x;
fx.y = BOULDER.arregloBoulders[(j - 1)].y;
this.addChild(fx);
lf = (lf - 10);
parseLifeVars(lf);
combo = 0;
txtCombo.text = ("+" + String(combo));
};
this.removeChild(getChildByName(BOULDER.arregloBoulders[(_local2 - 1)].name));
this.removeChild(getChildByName(BOULDER.arregloBoulders[(j - 1)].name));
if (j > _local2){
BOULDER.arregloBoulders.splice((j - 1), 1);
BOULDER.arregloBoulders.splice((_local2 - 1), 1);
} else {
if (_local2 > j){
BOULDER.arregloBoulders.splice((j - 1), 1);
BOULDER.arregloBoulders.splice((_local2 - 2), 1);
};
};
yaPego = 1;
break;
};
_local2++;
};
};
};
j++;
};
};
if (levels.currLevel == 16){
if (levels.contador > 50){
lf = 0;
};
};
if (levels.currLevel == 104){
if (levels.contador > 50){
lf = 0;
};
};
if (lf <= 0){
gameOver_dialog.x = 275;
gameOver_dialog.txtBigCombo.text = ("+" + String(bigCombo));
gameOver_dialog.txtScore.text = String(Math.round(scr));
if ((((levels.currLevel >= 1)) && ((levels.currLevel <= 15)))){
if (currentFrame == 17){
vault.parseHardScore(scr);
vault.parseAdvCombo(bigCombo);
kongregate.stats.submit("HighScore Hard", scr);
kongregate.stats.submit("HighScore Combo", bigCombo);
} else {
vault.parseAdvScore(scr);
vault.parseAdvCombo(bigCombo);
kongregate.stats.submit("HighScore Adventure", scr);
kongregate.stats.submit("HighScore Combo", bigCombo);
};
if (bigCombo >= 100){
if (!vault.trophy_adventureCombo){
gameOver_dialog.dyna_tag.text = "Got the Adventure Combo Trophy !";
};
vault.trophy_adventureCombo = true;
kongregate.stats.submit("trophy combo", 1);
};
if (bigCombo >= 200){
if (!vault.trophy_perfectCombo){
gameOver_dialog.dyna_tag.text = "Got the Perfect Combo Trophy !";
};
vault.trophy_perfectCombo = true;
kongregate.stats.submit("trophy big combo", 1);
};
};
if (levels.currLevel == 16){
if (currentFrame == 17){
if (!vault.trophy_hardComplete){
gameOver_dialog.dyna_tag.text = "Got the Hard Trophy !";
};
vault.trophy_hardComplete = true;
vault.parseHardScore(scr);
vault.parseAdvCombo(bigCombo);
kongregate.stats.submit("HighScore Hard", scr);
kongregate.stats.submit("HighScore Combo", bigCombo);
kongregate.stats.submit("trophy hard", 1);
} else {
if (!vault.trophy_adventureComplete){
gameOver_dialog.dyna_tag.text = "Got the Adventure Trophy !";
};
vault.trophy_adventureComplete = true;
vault.parseAdvScore(scr);
vault.parseAdvCombo(bigCombo);
kongregate.stats.submit("HighScore Adventure", scr);
kongregate.stats.submit("HighScore Combo", bigCombo);
kongregate.stats.submit("trophy adventure", 1);
};
if (scr >= 45000){
if (!vault.trophy_adventureScore){
gameOver_dialog.dyna_tag.text = "Got the Adventure Score Trophy";
};
vault.trophy_adventureScore = true;
kongregate.stats.submit("trophy adventure score", 1);
};
if (bigCombo >= 100){
if (!vault.trophy_adventureCombo){
gameOver_dialog.dyna_tag.text = "Got the Adventure Combo Trophy !";
};
vault.trophy_adventureCombo = true;
kongregate.stats.submit("trophy combo", 1);
};
if (bigCombo >= 200){
if (!vault.trophy_perfectCombo){
gameOver_dialog.dyna_tag.text = "Got the Perfect Combo Trophy !";
};
vault.trophy_perfectCombo = true;
kongregate.stats.submit("trophy big combo", 1);
};
};
if (levels.currLevel == 100){
if (scr >= 2500){
if (!vault.trophy_meteorScore){
gameOver_dialog.dyna_tag.text = "Got the Meteor Trophy !";
};
vault.trophy_meteorScore = true;
kongregate.stats.submit("trophy meteor", 1);
};
vault.parseMeteorScore(scr);
kongregate.stats.submit("HighScore MeteorStorm", scr);
};
if (levels.currLevel == 101){
if (scr >= 1500){
if (!vault.trophy_scrambleScore){
gameOver_dialog.dyna_tag.text = "Got the Scramble Trophy !";
};
vault.trophy_scrambleScore = true;
kongregate.stats.submit("trophy scramble", 1);
};
vault.parseScrambleScore(scr);
kongregate.stats.submit("HighScore Scramble", scr);
};
if (levels.currLevel == 102){
if (scr >= 2000){
if (!vault.trophy_hurricaneScore){
gameOver_dialog.dyna_tag.text = "Got the Hurricane Trophy !";
};
vault.trophy_hurricaneScore = true;
kongregate.stats.submit("trophy hurricane", 1);
};
vault.parseHurricaneScore(scr);
kongregate.stats.submit("HighScore Hurricane", scr);
};
if (levels.currLevel == 103){
vault.parseChallengeScore(scr);
kongregate.stats.submit("HighScore Challenge", scr);
};
if (levels.currLevel == 104){
if (!vault.trophy_challengeComplete){
gameOver_dialog.dyna_tag.text = "Got the Challenge Trophy !";
};
vault.trophy_challengeComplete = true;
vault.parseChallengeScore(scr);
kongregate.stats.submit("trophy challenge", 1);
kongregate.stats.submit("HighScore Challenge", scr);
};
vault.saveTrophies();
vault.saveScores();
if (levels.currLevel == 100){
gameOver_dialog.txttitle.text = "Crashed";
};
if (levels.currLevel == 16){
gameOver_dialog.txttitle.text = "Finished";
};
if (levels.currLevel == 104){
gameOver_dialog.txttitle.text = "Completed";
};
removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
removeEventListener(MouseEvent.ROLL_OUT, mouseAfueraHandler);
removeEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
k = 1;
while (k <= BOULDER.arregloBoulders.length) {
this.removeChild(getChildByName(BOULDER.arregloBoulders[(k - 1)].name));
k++;
};
k = 1;
while (k <= MOD.arregloMods.length) {
this.removeChild(getChildByName(MOD.arregloMods[(k - 1)].name));
k++;
};
BOULDER.arregloBoulders.splice(0, BOULDER.arregloBoulders.length);
MOD.arregloMods.splice(0, MOD.arregloMods.length);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
timerColisiones.stop();
levels.timerGenesis.stop();
timerOrigin.stop();
levels.finish();
};
}
public function onHurricaneClick(_arg1:MouseEvent):void{
SoundMixer.stopAll();
gotoAndPlay("Hurricane");
}
public function onQualityClick(_arg1:MouseEvent):void{
if (stage.quality == "LOW"){
stage.quality = "MEDIUM";
} else {
if (stage.quality == "MEDIUM"){
stage.quality = "HIGH";
} else {
if (stage.quality == "HIGH"){
stage.quality = "BEST";
} else {
if (stage.quality == "BEST"){
stage.quality = "LOW";
};
};
};
};
}
public function cicloIntro(_arg1:TimerEvent){
if (kongIntro.cargado == 1){
timerIntro.stop();
play();
};
}
public function OnLogoPressV(_arg1:MouseEvent){
navigateToURL(new URLRequest("http://www.villavanilla.net"), "_blank");
}
function control(_arg1:TimerEvent){
if (pausado == false){
if (dX > 70){
dX = 70;
} else {
if (dX < -70){
dX = -70;
};
};
if (dY > 70){
dY = 70;
} else {
if (dY < -70){
dY = -70;
};
};
if (((keyui.isDown(83)) || (keyui.isDown(40)))){
dY = (dY + 6);
};
if (((keyui.isDown(87)) || (keyui.isDown(38)))){
dY = (dY - 6);
};
if (((keyui.isDown(65)) || (keyui.isDown(37)))){
dX = (dX - 6);
};
if (((keyui.isDown(68)) || (keyui.isDown(39)))){
dX = (dX + 6);
};
if (origin.x < 0){
origin.x = 2;
dX = 0;
};
if (origin.x > 550){
origin.x = 548;
dX = 0;
};
if (origin.y < 0){
origin.y = 2;
dY = 0;
};
if (origin.y > 400){
origin.y = 398;
dY = 0;
};
dX = (dX * 0.99999);
dY = (dY * 0.99999);
origin.x = (origin.x + (dX / 10));
origin.y = (origin.y + (dY / 10));
};
}
function parseLifeVars(_arg1:int){
txtLifeBars.text = ":";
m = 1;
while (m < _arg1) {
txtLifeBars.appendText("I");
m++;
};
}
public function onNormalClick(_arg1:MouseEvent):void{
SoundMixer.stopAll();
gotoAndPlay("PlayMenu");
}
public function onSettingsClick(_arg1:MouseEvent):void{
SoundMixer.stopAll();
gotoAndPlay("Settings");
}
public function mouseAfueraHandler(_arg1:MouseEvent){
origin.presionado = false;
}
function cicloRythm(_arg1:TimerEvent){
if (pausado == false){
if (lf < 130){
if (currentFrame == 8){
lf++;
parseLifeVars(lf);
};
};
k = 1;
while (k <= BOULDER.arregloBoulders.length) {
BOULDER.arregloBoulders[(k - 1)].tick = true;
k++;
};
};
}
public function onBackClick(_arg1:MouseEvent):void{
SoundMixer.stopAll();
gotoAndPlay("menu");
}
public function onProgressClick(_arg1:MouseEvent):void{
SoundMixer.stopAll();
gotoAndPlay("Progress");
}
public function onEraseClick(_arg1:MouseEvent):void{
vault.eraseAll();
}
function reportKeyDown(_arg1:KeyboardEvent):void{
if (_arg1.charCode == 117){
if (pausado == true){
Mouse.show();
pausado = false;
origin.pausado = false;
alpha = 1;
} else {
if (pausado == false){
pausado = true;
origin.pausado = true;
combo = 0;
txtCombo.text = ("+" + String(combo));
alpha = 0.2;
pC = 1;
while (pC <= BOULDER.arregloBoulders.length) {
BOULDER.arregloBoulders[(pC - 1)].grabbed.alpha = 0;
BOULDER.arregloBoulders[(pC - 1)].stopDrag();
BOULDER.arregloBoulders[(pC - 1)].Bfocus = false;
pC++;
};
Mouse.hide();
};
};
};
}
public function onMeteorClick(_arg1:MouseEvent):void{
SoundMixer.stopAll();
gotoAndPlay("MeteorStorm");
}
}
}//package clss
Section 8
//MOD (clss.MOD)
package clss {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class MOD extends MovieClip {
public var SPEED:uint;
public var tipo:String;
public var thisTimer:Timer;
public var gfx:MovieClip;
public var fuerzaX:uint;
public var Ofocus:Boolean;
public static var arregloMods:Array = new Array();
public function MOD(_arg1:String){
addFrameScript(0, frame1, 2, frame3);
tipo = _arg1;
if (tipo == "Wind"){
gfx.gotoAndStop(1);
} else {
if (tipo == "Kaos"){
gfx.gotoAndStop(2);
} else {
if (tipo == "Repel"){
gfx.gotoAndStop(3);
} else {
if (tipo == "KillAll"){
gfx.gotoAndStop(4);
} else {
if (tipo == "Freeze"){
gfx.gotoAndStop(5);
};
};
};
};
};
addEventListener(MouseEvent.ROLL_OVER, mouseOverHandler);
Ofocus = false;
alpha = 0;
}
public function Acciones(_arg1:TimerEvent){
if (MAIN.pausado == false){
x = (x + fuerzaX);
};
if (alpha < 1){
alpha = (alpha + 0.01);
};
}
function frame3(){
stop();
}
function frame1(){
SPEED = 20;
thisTimer = new Timer(SPEED, 0);
thisTimer.addEventListener("timer", Acciones);
thisTimer.start();
fuerzaX = 0;
}
public function mouseOverHandler(_arg1:MouseEvent){
if (MAIN.pausado == false){
Ofocus = true;
};
}
}
}//package clss
Section 9
//redZone (clss.redZone)
package clss {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class redZone extends MovieClip {
public var red_2:MovieClip;
public var red:MovieClip;
public var challenge_area:MovieClip;
public function redZone(_arg1:int){
var _local2:Timer;
super();
alpha = 0;
gotoAndStop(_arg1);
_local2 = new Timer(10, 0);
_local2.addEventListener("timer", Acciones);
_local2.start();
}
function Acciones(_arg1:TimerEvent){
if (alpha < 1){
alpha = (alpha + 0.01);
};
}
}
}//package clss
Section 10
//TELON (clss.TELON)
package clss {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class TELON extends MovieClip {
var Desplegando;// = true
private var contador:int;// = 1
public var listo:Boolean;// = false
private var bandera:Boolean;// = false
public function TELON(){
var _local1:Timer;
bandera = false;
contador = 1;
listo = false;
Desplegando = true;
super();
_local1 = new Timer(10, 0);
_local1.addEventListener("timer", Acciones);
_local1.start();
alpha = 0;
}
function Acciones(_arg1:TimerEvent){
contador++;
if (alpha >= 1){
listo = true;
};
if (Desplegando == true){
if (alpha <= 1){
alpha = (alpha + 0.05);
};
};
if (Desplegando == false){
if (alpha > 0){
alpha = (alpha - 0.05);
};
};
}
}
}//package clss
Section 11
//VAULT (clss.VAULT)
package clss {
import flash.net.*;
public class VAULT {
public var trophy_adventureCombo:Boolean;
var mySharedObject:SharedObject;
public var trophy_adventureScore:Boolean;
public var trophy_adventureComplete:Boolean;
public var combo_adventure:int;
public var score_adventure:int;
public var score_hurricane:int;
public var trophy_challengeComplete:Boolean;
public var trophy_perfectCombo:Boolean;
public var score_scramble:int;
public var trophy_hardComplete:Boolean;
public var trophy_scrambleScore:Boolean;
public var trophy_meteorScore:Boolean;
public var score_hard:int;
public var score_meteor:int;
public var score_challenge:int;
public var trophy_hurricaneScore:Boolean;
public function VAULT(){
mySharedObject = SharedObject.getLocal("saveFile");
trophy_adventureComplete = mySharedObject.data.trophy_adventureComplete;
trophy_hardComplete = mySharedObject.data.trophy_hardComplete;
trophy_challengeComplete = mySharedObject.data.trophy_challengeComplete;
trophy_adventureCombo = mySharedObject.data.trophy_adventureCombo;
trophy_adventureScore = mySharedObject.data.trophy_adventureScore;
trophy_meteorScore = mySharedObject.data.trophy_meteorScore;
trophy_scrambleScore = mySharedObject.data.trophy_scrambleScore;
trophy_hurricaneScore = mySharedObject.data.trophy_hurricaneScore;
trophy_perfectCombo = mySharedObject.data.trophy_perfectCombo;
combo_adventure = mySharedObject.data.combo_adventure;
score_adventure = mySharedObject.data.score_adventure;
score_hard = mySharedObject.data.score_hard;
score_hurricane = mySharedObject.data.score_hurricane;
score_challenge = mySharedObject.data.score_challenge;
score_scramble = mySharedObject.data.score_scramble;
score_meteor = mySharedObject.data.score_meteor;
}
public function parseChallengeScore(_arg1:int){
if (_arg1 > score_challenge){
score_challenge = _arg1;
};
mySharedObject.data.score_challenge = _arg1;
}
public function saveScores(){
mySharedObject.data.combo_adventure = combo_adventure;
mySharedObject.data.score_adventure = score_adventure;
mySharedObject.data.score_hard = score_hard;
mySharedObject.data.score_hurricane = score_hurricane;
mySharedObject.data.score_challenge = score_challenge;
mySharedObject.data.score_scramble = score_scramble;
mySharedObject.data.score_meteor = score_meteor;
}
public function parseHardScore(_arg1:int){
if (_arg1 > score_hard){
score_hard = _arg1;
};
mySharedObject.data.score_hard = _arg1;
}
public function parseScrambleScore(_arg1:int){
if (_arg1 > score_scramble){
score_scramble = _arg1;
};
mySharedObject.data.score_scramble = _arg1;
}
public function parseMeteorScore(_arg1:int){
if (_arg1 > score_meteor){
score_meteor = _arg1;
};
mySharedObject.data.score_meteor = _arg1;
}
public function parseAdvScore(_arg1:int){
if (_arg1 > score_adventure){
score_adventure = _arg1;
};
mySharedObject.data.score_adventure = _arg1;
}
public function parseHurricaneScore(_arg1:int){
if (_arg1 > score_hurricane){
score_hurricane = _arg1;
};
mySharedObject.data.score_hurricane = _arg1;
}
public function eraseAll(){
trophy_adventureComplete = false;
trophy_hardComplete = false;
trophy_challengeComplete = false;
trophy_adventureCombo = false;
trophy_adventureScore = false;
trophy_meteorScore = false;
trophy_scrambleScore = false;
trophy_hurricaneScore = false;
trophy_perfectCombo = false;
combo_adventure = 0;
score_adventure = 0;
score_hard = 0;
score_hurricane = 0;
score_challenge = 0;
score_scramble = 0;
score_meteor = 0;
saveTrophies();
saveScores();
}
public function saveTrophies(){
mySharedObject.data.trophy_adventureComplete = trophy_adventureComplete;
mySharedObject.data.trophy_hardComplete = trophy_hardComplete;
mySharedObject.data.trophy_challengeComplete = trophy_challengeComplete;
mySharedObject.data.trophy_adventureCombo = trophy_adventureCombo;
mySharedObject.data.trophy_adventureScore = trophy_adventureScore;
mySharedObject.data.trophy_meteorScore = trophy_meteorScore;
mySharedObject.data.trophy_scrambleScore = trophy_scrambleScore;
mySharedObject.data.trophy_hurricaneScore = trophy_hurricaneScore;
mySharedObject.data.trophy_perfectCombo = trophy_perfectCombo;
}
public function parseAdvCombo(_arg1:int){
if (_arg1 > combo_adventure){
combo_adventure = _arg1;
};
mySharedObject.data.scombo_adventure = _arg1;
}
}
}//package clss
Section 12
//KongregateEvent (com.kongregate.as3.client.events.KongregateEvent)
package com.kongregate.as3.client.events {
import flash.events.*;
public class KongregateEvent extends Event {
public static const COMPLETE:String = "component_api_available";
public function KongregateEvent(_arg1:String){
super(_arg1);
}
}
}//package com.kongregate.as3.client.events
Section 13
//AbstractShadowService (com.kongregate.as3.client.services.AbstractShadowService)
package com.kongregate.as3.client.services {
import flash.events.*;
public class AbstractShadowService extends EventDispatcher {
protected function alert(_arg1:String, _arg2:String, _arg3="", _arg4:String=""):void{
trace(((((((("Kongregate API: " + _arg1) + ".") + _arg2) + "(") + _arg3) + ") ") + _arg4));
}
}
}//package com.kongregate.as3.client.services
Section 14
//HighScoreServiceShadow (com.kongregate.as3.client.services.HighScoreServiceShadow)
package com.kongregate.as3.client.services {
public class HighScoreServiceShadow extends AbstractShadowService implements IHighScoreServices {
private var mode:String;
public function HighScoreServiceShadow(){
mode = "";
}
public function submit(_arg1:Number, _arg2:String=null):void{
alert("IHighScoreServices", "submit", arguments);
}
public function connect():Boolean{
alert("IKongregateServices", "connect");
return (true);
}
public function requestList(_arg1:Function):void{
alert("IHighScoreServices", "requestList", "", (("[Mode: " + mode) + "]"));
_arg1({success:false});
}
public function setMode(_arg1:String):void{
alert("IHighScoreServices", "setMode", arguments);
this.mode = _arg1;
}
}
}//package com.kongregate.as3.client.services
Section 15
//IHighScoreServices (com.kongregate.as3.client.services.IHighScoreServices)
package com.kongregate.as3.client.services {
public interface IHighScoreServices {
function setMode(_arg1:String):void;
function submit(_arg1:Number, _arg2:String=null):void;
function requestList(_arg1:Function):void;
}
}//package com.kongregate.as3.client.services
Section 16
//IKongregateServices (com.kongregate.as3.client.services.IKongregateServices)
package com.kongregate.as3.client.services {
import flash.events.*;
public interface IKongregateServices extends IEventDispatcher {
function getPlayerInfo(_arg1:Function):void;
function connect(_arg1:Number=-1):Boolean;
}
}//package com.kongregate.as3.client.services
Section 17
//IStatServices (com.kongregate.as3.client.services.IStatServices)
package com.kongregate.as3.client.services {
public interface IStatServices {
function submitArray(_arg1:Array):void;
function submit(_arg1:String, _arg2:Number):void;
}
}//package com.kongregate.as3.client.services
Section 18
//IUserServices (com.kongregate.as3.client.services.IUserServices)
package com.kongregate.as3.client.services {
public interface IUserServices {
function getName():String;
function getPlayerInfo(_arg1:Function):void;
}
}//package com.kongregate.as3.client.services
Section 19
//KongregateServiceShadow (com.kongregate.as3.client.services.KongregateServiceShadow)
package com.kongregate.as3.client.services {
public class KongregateServiceShadow extends AbstractShadowService implements IKongregateServices {
public function getName():String{
alert("IKongregateServices", "getName");
return ("Guest");
}
public function connect(_arg1:Number=-1):Boolean{
alert("IKongregateServices", "connect", arguments);
return (true);
}
public function getPlayerInfo(_arg1:Function):void{
alert("IKongregateServices", "getPlayerInfo");
_arg1(new Object());
}
}
}//package com.kongregate.as3.client.services
Section 20
//StatServiceShadow (com.kongregate.as3.client.services.StatServiceShadow)
package com.kongregate.as3.client.services {
public class StatServiceShadow extends AbstractShadowService implements IStatServices {
public function submitArray(_arg1:Array):void{
alert("IStatServices", "submitArray", arguments);
}
public function submit(_arg1:String, _arg2:Number):void{
alert("IStatServices", "submitStat", arguments);
}
}
}//package com.kongregate.as3.client.services
Section 21
//UserServiceShadow (com.kongregate.as3.client.services.UserServiceShadow)
package com.kongregate.as3.client.services {
public class UserServiceShadow extends AbstractShadowService implements IUserServices {
public function getName():String{
alert("UserService", "getName");
return ("Guest");
}
public function getPlayerInfo(_arg1:Function):void{
alert("UserService", "getPlayerInfo");
_arg1({isGuest:true, name:"Guest", points:0, level:0, isMode:false, isAdmin:false, isDeveloper:false, avatarPath:"", chatAvatarPath:""});
}
}
}//package com.kongregate.as3.client.services
Section 22
//IAPIBootstrap (com.kongregate.as3.client.IAPIBootstrap)
package com.kongregate.as3.client {
import flash.events.*;
import flash.display.*;
public interface IAPIBootstrap {
function init(_arg1:Event=null, _arg2:Stage=null):void;
function hideLog():void;
function showLog(_arg1:int=0):void;
}
}//package com.kongregate.as3.client
Section 23
//KongregateAPI (com.kongregate.as3.client.KongregateAPI)
package com.kongregate.as3.client {
import flash.events.*;
import flash.display.*;
import com.kongregate.as3.client.services.*;
import flash.net.*;
import flash.utils.*;
import com.kongregate.as3.client.events.*;
import flash.system.*;
import flash.errors.*;
public class KongregateAPI extends Sprite {
private const VERSION:Number = 1;
private var loader:Loader;
private var loadedDomain:ApplicationDomain;
private static const CLASS_USER:String = "com.kongregate.as3.client.services.UserServices";
private static const CLASS_STATS:String = "com.kongregate.as3.client.services.StatServices";
private static const CLASS_SERVICES:String = "com.kongregate.as3.client.services.KongregateServices";
private static const CLASS_SCORES:String = "com.kongregate.as3.client.services.HighScoreServices";
private static const DEBUG_API_URL:String = "//Linuxpc/kongregate/public/flash/API_AS3.swf";
private static var _connected:Boolean;
private static var kUser:IUserServices;
private static var _loaded:Boolean;
private static var kServices:IKongregateServices;
private static var kScores:IHighScoreServices;
private static var mInstance:KongregateAPI;
private static var kStats:IStatServices;
private static var kAPI:IAPIBootstrap;
public function KongregateAPI(){
if (mInstance != null){
throw (new Error("Warning: KongregateAPI has been added to stage more than once or accessed improperly. Use getInstance() or a stage reference to access."));
};
mInstance = this;
this.addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);
}
public function get loaded():Boolean{
return (_loaded);
}
public function get connected():Boolean{
return (_connected);
}
private function alertConnected(_arg1:TimerEvent=null):void{
var _local2:KongregateEvent;
var _local3:Boolean;
_local2 = new KongregateEvent(KongregateEvent.COMPLETE);
_local3 = this.dispatchEvent(_local2);
}
private function init(_arg1:Event):void{
var _local2:Object;
var _local3:String;
var _local4:URLRequest;
var _local5:LoaderContext;
this.removeEventListener(Event.ADDED_TO_STAGE, init);
_loaded = false;
_connected = false;
_local2 = LoaderInfo(root.loaderInfo).parameters;
_local3 = _local2.api_path;
if (_local3 == null){
trace("Alert: Kongregate API could not be loaded, due to local testing. API will load when the game is uploaded.");
createShadowServices();
return;
};
Security.allowDomain("*.kongregate.com");
Security.allowDomain("kongregatetrunk.com");
_local4 = new URLRequest(_local3);
_local5 = new LoaderContext(false);
_local5.applicationDomain = ApplicationDomain.currentDomain;
_local5.securityDomain = SecurityDomain.currentDomain;
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
loader.load(_local4, _local5);
}
public function get api():IAPIBootstrap{
return (kAPI);
}
private function loadComplete(_arg1:Event):void{
getServices();
}
public function get scores():IHighScoreServices{
return (kScores);
}
private function ioErrorHandler(_arg1:IOErrorEvent):void{
throw (new IOError(("API file not found. " + _arg1)));
}
public function get services():IKongregateServices{
return (kServices);
}
public function get stats():IStatServices{
return (kStats);
}
private function createShadowServices():void{
var _local1:Timer;
trace(">>> Kongregate Shadow Services instantiated for local development..");
kServices = new KongregateServiceShadow();
kScores = new HighScoreServiceShadow();
kStats = new StatServiceShadow();
kUser = new UserServiceShadow();
_local1 = new Timer(200, 1);
_local1.addEventListener(TimerEvent.TIMER_COMPLETE, alertConnected);
_local1.start();
_connected = true;
}
public function get user():IUserServices{
return (kUser);
}
private function getServices():void{
var _local1:ApplicationDomain;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local1 = ApplicationDomain.currentDomain;
kAPI = IAPIBootstrap(loader.getChildAt(0));
this.addChild(loader);
_local2 = _local1.getDefinition(CLASS_SERVICES);
trace(_local2);
kServices = _local2.getInstance();
_local3 = _local1.getDefinition(CLASS_SCORES);
kScores = _local3.getInstance();
_local4 = _local1.getDefinition(CLASS_STATS);
kStats = _local4.getInstance();
_local5 = _local1.getDefinition(CLASS_USER);
kUser = _local5.getInstance();
kServices.connect(VERSION);
_loaded = true;
_connected = true;
alertConnected();
}
public static function getInstance():KongregateAPI{
if (!mInstance){
throw (new IllegalOperationError("You must add the Kongregate API component to the stage before attempting to access it."));
};
return (mInstance);
}
}
}//package com.kongregate.as3.client
Section 24
//Animator (fl.motion.Animator)
package fl.motion {
import flash.geom.*;
import flash.events.*;
import flash.display.*;
public class Animator extends EventDispatcher {
private var targetState:Object;
public var transformationPoint:Point;
private var _isPlaying:Boolean;// = false
private var _time:int;// = -1
private var _target:DisplayObject;
public var repeatCount:int;// = 1
private var _lastRenderedTime:int;// = -1
private var playCount:int;// = 0
private var _motion:Motion;
public var orientToPath:Boolean;// = false
public var autoRewind:Boolean;// = false
public var positionMatrix:Matrix;
private static var enterFrameBeacon:MovieClip = new MovieClip();
public function Animator(_arg1:XML=null, _arg2:DisplayObject=null){
orientToPath = false;
autoRewind = false;
repeatCount = 1;
_isPlaying = false;
_lastRenderedTime = -1;
_time = -1;
playCount = 0;
super();
this.motion = new Motion(_arg1);
this.target = _arg2;
}
public function stop():void{
enterFrameBeacon.removeEventListener(Event.ENTER_FRAME, this.enterFrameHandler);
this._isPlaying = false;
this.playCount = 0;
this.rewind();
this.dispatchEvent(new MotionEvent(MotionEvent.MOTION_END));
}
public function get target():DisplayObject{
return (this._target);
}
public function set time(_arg1:int):void{
var _local2:Motion;
var _local3:Keyframe;
var _local4:Boolean;
var _local5:Number;
var _local6:Number;
var _local7:Point;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Matrix;
var _local13:Point;
var _local14:Number;
var _local15:Number;
var _local16:ColorTransform;
var _local17:Number;
var _local18:Number;
var _local19:Number;
if (_arg1 == this._time){
return;
};
_local2 = this.motion;
if (_arg1 > (_local2.duration - 1)){
_arg1 = (_local2.duration - 1);
} else {
if (_arg1 < 0){
_arg1 = 0;
};
};
this._time = _arg1;
this.dispatchEvent(new MotionEvent(MotionEvent.TIME_CHANGE));
_local3 = _local2.getCurrentKeyframe(_arg1);
_local4 = (((_local3.index == this._lastRenderedTime)) && (!(_local3.tweens.length)));
if (_local4){
return;
};
this._target.visible = false;
if (!_local3.blank){
_local5 = _local2.getValue(_arg1, Tweenables.X);
_local6 = _local2.getValue(_arg1, Tweenables.Y);
_local7 = new Point(_local5, _local6);
if (this.positionMatrix){
_local7 = this.positionMatrix.transformPoint(_local7);
};
_local7.x = (_local7.x + this.targetState.x);
_local7.y = (_local7.y + this.targetState.y);
_local8 = (_local2.getValue(_arg1, Tweenables.SCALE_X) * this.targetState.scaleX);
_local9 = (_local2.getValue(_arg1, Tweenables.SCALE_Y) * this.targetState.scaleY);
_local10 = 0;
_local11 = 0;
if (this.orientToPath){
_local17 = _local2.getValue((_arg1 + 1), Tweenables.X);
_local18 = _local2.getValue((_arg1 + 1), Tweenables.Y);
_local19 = (Math.atan2((_local18 - _local6), (_local17 - _local5)) * (180 / Math.PI));
if (!isNaN(_local19)){
_local10 = (_local19 + this.targetState.skewX);
_local11 = (_local19 + this.targetState.skewY);
};
} else {
_local10 = (_local2.getValue(_arg1, Tweenables.SKEW_X) + this.targetState.skewX);
_local11 = (_local2.getValue(_arg1, Tweenables.SKEW_Y) + this.targetState.skewY);
};
_local12 = new Matrix((_local8 * Math.cos((_local11 * (Math.PI / 180)))), (_local8 * Math.sin((_local11 * (Math.PI / 180)))), (-(_local9) * Math.sin((_local10 * (Math.PI / 180)))), (_local9 * Math.cos((_local10 * (Math.PI / 180)))), _local7.x, _local7.y);
_local13 = _local12.transformPoint(this.targetState.transformPointInternal);
_local14 = (_local12.tx - _local13.x);
_local15 = (_local12.ty - _local13.y);
_local12.tx = (_local12.tx + _local14);
_local12.ty = (_local12.ty + _local15);
this._target.rotation = _local11;
this._target.transform.matrix = _local12;
this._target.scaleX = _local8;
this._target.scaleY = _local9;
_local16 = _local2.getColorTransform(_arg1);
if (_local16){
this._target.transform.colorTransform = _local16;
};
this._target.filters = _local2.getFilters(_arg1);
this._target.blendMode = _local3.blendMode;
this._target.cacheAsBitmap = _local3.cacheAsBitmap;
this._target.visible = true;
};
this._lastRenderedTime = this._time;
this.dispatchEvent(new MotionEvent(MotionEvent.MOTION_UPDATE));
}
private function enterFrameHandler(_arg1:Event):void{
this.nextFrame();
}
public function set target(_arg1:DisplayObject):void{
var _local2:Object;
var _local3:Number;
var _local4:Number;
var _local5:Point;
if (!_arg1){
return;
};
this._target = _arg1;
this.targetState = {};
this.targetState.scaleX = this._target.scaleX;
this.targetState.scaleY = this._target.scaleY;
this.targetState.skewX = MatrixTransformer.getSkewX(this._target.transform.matrix);
this.targetState.skewY = MatrixTransformer.getSkewY(this._target.transform.matrix);
this.targetState.matrix = this._target.transform.matrix;
_local2 = (this.targetState.bounds = this._target.getBounds(this._target));
if (this.transformationPoint){
_local3 = ((this.transformationPoint.x * _local2.width) + _local2.left);
_local4 = ((this.transformationPoint.y * _local2.height) + _local2.top);
this.targetState.transformPointInternal = new Point(_local3, _local4);
_local5 = this.targetState.matrix.transformPoint(this.targetState.transformPointInternal);
this.targetState.x = _local5.x;
this.targetState.y = _local5.y;
} else {
this.targetState.transformPointInternal = new Point(0, 0);
this.targetState.x = this._target.x;
this.targetState.y = this._target.y;
};
}
public function get isPlaying():Boolean{
return (_isPlaying);
}
public function resume():void{
enterFrameBeacon.addEventListener(Event.ENTER_FRAME, this.enterFrameHandler, false, 0, true);
this._isPlaying = true;
}
private function handleLastFrame():void{
this.playCount++;
if ((((this.repeatCount == 0)) || ((this.playCount < this.repeatCount)))){
this.rewind();
} else {
this.end();
};
}
public function get motion():Motion{
return (this._motion);
}
public function nextFrame():void{
if (this.time >= (this.motion.duration - 1)){
this.handleLastFrame();
} else {
this.time++;
};
}
public function play():void{
if (!this._isPlaying){
enterFrameBeacon.addEventListener(Event.ENTER_FRAME, this.enterFrameHandler, false, 0, true);
this._isPlaying = true;
};
this.playCount = 0;
this.rewind();
this.dispatchEvent(new MotionEvent(MotionEvent.MOTION_START));
}
public function rewind():void{
this.time = 0;
}
public function end():void{
enterFrameBeacon.removeEventListener(Event.ENTER_FRAME, this.enterFrameHandler);
this._isPlaying = false;
this.playCount = 0;
if (this.autoRewind){
this.rewind();
} else {
if (this.time != (this.motion.duration - 1)){
this.time = (this.motion.duration - 1);
};
};
this.dispatchEvent(new MotionEvent(MotionEvent.MOTION_END));
}
public function get time():int{
return (this._time);
}
public function pause():void{
enterFrameBeacon.removeEventListener(Event.ENTER_FRAME, this.enterFrameHandler);
this._isPlaying = false;
}
public function set motion(_arg1:Motion):void{
this._motion = _arg1;
if (((_arg1.source) && (_arg1.source.transformationPoint))){
this.transformationPoint = _arg1.source.transformationPoint.clone();
};
}
public static function fromXMLString(_arg1:String, _arg2:DisplayObject=null):Animator{
return (new Animator(new XML(_arg1), _arg2));
}
}
}//package fl.motion
Section 25
//BezierEase (fl.motion.BezierEase)
package fl.motion {
import flash.geom.*;
public class BezierEase implements ITween {
public var points:Array;
private var firstNode:Point;
private var _target:String;// = ""
private var lastNode:Point;
public function BezierEase(_arg1:XML=null){
_target = "";
super();
this.points = [];
this.parseXML(_arg1);
}
public function set target(_arg1:String):void{
this._target = _arg1;
}
public function get target():String{
return (this._target);
}
public function getValue(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local5:Number;
var _local6:Array;
var _local7:Number;
if (_arg4 <= 0){
return (NaN);
};
_local5 = (_arg1 / _arg4);
if (_local5 <= 0){
return (_arg2);
};
if (_local5 >= 1){
return ((_arg2 + _arg3));
};
this.firstNode = new Point(0, _arg2);
this.lastNode = new Point(1, (_arg2 + _arg3));
_local6 = [this.firstNode].concat(this.points);
_local6.push(this.lastNode);
_local7 = CustomEase.getYForPercent(_local5, _local6);
return (_local7);
}
private function parseXML(_arg1:XML=null):BezierEase{
var _local2:XMLList;
var _local3:XML;
if (!_arg1){
return (this);
};
if (_arg1.@target.length()){
this.target = _arg1.@target;
};
_local2 = _arg1.elements();
for each (_local3 in _local2) {
this.points.push(new Point(Number(_local3.@x), Number(_local3.@y)));
};
return (this);
}
}
}//package fl.motion
Section 26
//BezierSegment (fl.motion.BezierSegment)
package fl.motion {
import flash.geom.*;
public class BezierSegment {
public var a:Point;
public var c:Point;
public var b:Point;
public var d:Point;
public function BezierSegment(_arg1:Point, _arg2:Point, _arg3:Point, _arg4:Point){
this.a = _arg1;
this.b = _arg2;
this.c = _arg3;
this.d = _arg4;
}
public function getYForX(_arg1:Number, _arg2:Array=null):Number{
var _local3:Array;
var _local4:Number;
var _local5:Number;
var _local6:Number;
if (this.a.x < this.d.x){
if (_arg1 <= (this.a.x + 1E-16)){
return (this.a.y);
};
if (_arg1 >= (this.d.x - 1E-16)){
return (this.d.y);
};
} else {
if (_arg1 >= (this.a.x + 1E-16)){
return (this.a.y);
};
if (_arg1 <= (this.d.x - 1E-16)){
return (this.d.y);
};
};
if (!_arg2){
_arg2 = getCubicCoefficients(this.a.x, this.b.x, this.c.x, this.d.x);
};
_local3 = getCubicRoots(_arg2[0], _arg2[1], _arg2[2], (_arg2[3] - _arg1));
_local4 = NaN;
if (_local3.length == 0){
_local4 = 0;
} else {
if (_local3.length == 1){
_local4 = _local3[0];
} else {
for each (_local6 in _local3) {
if ((((0 <= _local6)) && ((_local6 <= 1)))){
_local4 = _local6;
break;
};
};
};
};
if (isNaN(_local4)){
return (NaN);
};
_local5 = getSingleValue(_local4, this.a.y, this.b.y, this.c.y, this.d.y);
return (_local5);
}
public function getValue(_arg1:Number):Point{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local2 = this.a.x;
_local3 = (((((_arg1 * _arg1) * (this.d.x - _local2)) + ((3 * (1 - _arg1)) * ((_arg1 * (this.c.x - _local2)) + ((1 - _arg1) * (this.b.x - _local2))))) * _arg1) + _local2);
_local4 = this.a.y;
_local5 = (((((_arg1 * _arg1) * (this.d.y - _local4)) + ((3 * (1 - _arg1)) * ((_arg1 * (this.c.y - _local4)) + ((1 - _arg1) * (this.b.y - _local4))))) * _arg1) + _local4);
return (new Point(_local3, _local5));
}
public static function getCubicCoefficients(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Array{
return ([(((-(_arg1) + (3 * _arg2)) - (3 * _arg3)) + _arg4), (((3 * _arg1) - (6 * _arg2)) + (3 * _arg3)), ((-3 * _arg1) + (3 * _arg2)), _arg1]);
}
public static function getSingleValue(_arg1:Number, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0):Number{
return ((((((_arg1 * _arg1) * (_arg5 - _arg2)) + ((3 * (1 - _arg1)) * ((_arg1 * (_arg4 - _arg2)) + ((1 - _arg1) * (_arg3 - _arg2))))) * _arg1) + _arg2));
}
public static function getCubicRoots(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0):Array{
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:int;
var _local16:Number;
if (!_arg1){
return (BezierSegment.getQuadraticRoots(_arg2, _arg3, _arg4));
};
if (_arg1 != 1){
_arg2 = (_arg2 / _arg1);
_arg3 = (_arg3 / _arg1);
_arg4 = (_arg4 / _arg1);
};
_local5 = (((_arg2 * _arg2) - (3 * _arg3)) / 9);
_local6 = (((((_arg2 * _arg2) - (3 * _arg3)) / 9) * _local5) * _local5);
_local7 = ((((((2 * _arg2) * _arg2) * _arg2) - ((9 * _arg2) * _arg3)) + (27 * _arg4)) / 54);
_local8 = (_local6 - (_local7 * _local7));
if (_local8 >= 0){
if (!_local5){
return ([0]);
};
_local9 = Math.acos((_local7 / Math.sqrt(_local6)));
_local10 = Math.sqrt(_local5);
_local11 = (((-2 * _local10) * Math.cos((_local9 / 3))) - (_arg2 / 3));
_local12 = (((-2 * _local10) * Math.cos(((_local9 + (2 * Math.PI)) / 3))) - (_arg2 / 3));
_local13 = (((-2 * _local10) * Math.cos(((_local9 + (4 * Math.PI)) / 3))) - (_arg2 / 3));
return ([_local11, _local12, _local13]);
//unresolved jump
};
_local14 = Math.pow((Math.sqrt(-(_local8)) + Math.abs(_local7)), (1 / 3));
_local15 = ((_local7)>0) ? 1 : ((_local7 < 0)) ? -1 : 0;
_local16 = ((-(_local15) * (_local14 + (_local5 / _local14))) - (_arg2 / 3));
return ([_local16]);
}
public static function getQuadraticRoots(_arg1:Number, _arg2:Number, _arg3:Number):Array{
var _local4:Array;
var _local5:Number;
var _local6:int;
var _local7:Number;
_local4 = [];
if (!_arg1){
if (!_arg2){
return ([]);
};
_local4[0] = (-(_arg3) / _arg2);
return (_local4);
};
_local5 = ((_arg2 * _arg2) - ((4 * _arg1) * _arg3));
_local6 = ((_local5)>0) ? 1 : ((_local5 < 0)) ? -1 : 0;
if (_local6 < 0){
return ([]);
};
if (!_local6){
_local4[0] = (-(_arg2) / (2 * _arg1));
} else {
_local4[0] = (_local4[1] = (-(_arg2) / (2 * _arg1)));
_local7 = (Math.sqrt(_local5) / (2 * _arg1));
_local4[0] = (_local4[0] - _local7);
_local4[1] = (_local4[1] + _local7);
};
return (_local4);
}
}
}//package fl.motion
Section 27
//Color (fl.motion.Color)
package fl.motion {
import flash.geom.*;
import flash.display.*;
public class Color extends ColorTransform {
private var _tintMultiplier:Number;// = 0
private var _tintColor:Number;// = 0
public function Color(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1, _arg4:Number=1, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0){
_tintColor = 0;
_tintMultiplier = 0;
super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8);
}
public function setTint(_arg1:uint, _arg2:Number):void{
var _local3:uint;
var _local4:uint;
var _local5:uint;
this._tintColor = _arg1;
this._tintMultiplier = _arg2;
this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = (1 - _arg2)));
_local3 = ((_arg1 >> 16) & 0xFF);
_local4 = ((_arg1 >> 8) & 0xFF);
_local5 = (_arg1 & 0xFF);
this.redOffset = Math.round((_local3 * _arg2));
this.greenOffset = Math.round((_local4 * _arg2));
this.blueOffset = Math.round((_local5 * _arg2));
}
public function set tintColor(_arg1:uint):void{
this.setTint(_arg1, this.tintMultiplier);
}
public function get brightness():Number{
return ((this.redOffset) ? (1 - this.redMultiplier) : (this.redMultiplier - 1));
}
private function deriveTintColor():uint{
var _local1:Number;
var _local2:uint;
var _local3:uint;
var _local4:uint;
var _local5:uint;
_local1 = (1 / this.tintMultiplier);
_local2 = Math.round((this.redOffset * _local1));
_local3 = Math.round((this.greenOffset * _local1));
_local4 = Math.round((this.blueOffset * _local1));
_local5 = (((_local2 << 16) | (_local3 << 8)) | _local4);
return (_local5);
}
public function get tintMultiplier():Number{
return (this._tintMultiplier);
}
public function get tintColor():uint{
return (this._tintColor);
}
public function set brightness(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
if (_arg1 > 1){
_arg1 = 1;
} else {
if (_arg1 < -1){
_arg1 = -1;
};
};
_local2 = (1 - Math.abs(_arg1));
_local3 = 0;
if (_arg1 > 0){
_local3 = (_arg1 * 0xFF);
};
this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = _local2));
this.redOffset = (this.greenOffset = (this.blueOffset = _local3));
}
public function set tintMultiplier(_arg1:Number):void{
this.setTint(this.tintColor, _arg1);
}
private function parseXML(_arg1:XML=null):Color{
var _local2:XML;
var _local3:XML;
var _local4:String;
var _local5:uint;
if (!_arg1){
return (this);
};
_local2 = _arg1.elements()[0];
if (!_local2){
return (this);
};
for each (_local3 in _local2.attributes()) {
_local4 = _local3.localName();
if (_local4 == "tintColor"){
_local5 = (Number(_local3.toString()) as uint);
this.tintColor = _local5;
} else {
this[_local4] = Number(_local3.toString());
};
};
return (this);
}
public static function interpolateColor(_arg1:uint, _arg2:uint, _arg3:Number):uint{
var _local4:Number;
var _local5:uint;
var _local6:uint;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local10:uint;
var _local11:uint;
var _local12:uint;
var _local13:uint;
var _local14:uint;
var _local15:uint;
var _local16:uint;
var _local17:uint;
_local4 = (1 - _arg3);
_local5 = ((_arg1 >> 24) & 0xFF);
_local6 = ((_arg1 >> 16) & 0xFF);
_local7 = ((_arg1 >> 8) & 0xFF);
_local8 = (_arg1 & 0xFF);
_local9 = ((_arg2 >> 24) & 0xFF);
_local10 = ((_arg2 >> 16) & 0xFF);
_local11 = ((_arg2 >> 8) & 0xFF);
_local12 = (_arg2 & 0xFF);
_local13 = ((_local5 * _local4) + (_local9 * _arg3));
_local14 = ((_local6 * _local4) + (_local10 * _arg3));
_local15 = ((_local7 * _local4) + (_local11 * _arg3));
_local16 = ((_local8 * _local4) + (_local12 * _arg3));
_local17 = ((((_local13 << 24) | (_local14 << 16)) | (_local15 << 8)) | _local16);
return (_local17);
}
public static function interpolateTransform(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{
var _local4:Number;
var _local5:ColorTransform;
_local4 = (1 - _arg3);
_local5 = new ColorTransform(((_arg1.redMultiplier * _local4) + (_arg2.redMultiplier * _arg3)), ((_arg1.greenMultiplier * _local4) + (_arg2.greenMultiplier * _arg3)), ((_arg1.blueMultiplier * _local4) + (_arg2.blueMultiplier * _arg3)), ((_arg1.alphaMultiplier * _local4) + (_arg2.alphaMultiplier * _arg3)), ((_arg1.redOffset * _local4) + (_arg2.redOffset * _arg3)), ((_arg1.greenOffset * _local4) + (_arg2.greenOffset * _arg3)), ((_arg1.blueOffset * _local4) + (_arg2.blueOffset * _arg3)), ((_arg1.alphaOffset * _local4) + (_arg2.alphaOffset * _arg3)));
return (_local5);
}
public static function fromXML(_arg1:XML):Color{
return (Color(new (Color).parseXML(_arg1)));
}
}
}//package fl.motion
Section 28
//CustomEase (fl.motion.CustomEase)
package fl.motion {
import flash.geom.*;
public class CustomEase implements ITween {
public var points:Array;
private var firstNode:Point;
private var _target:String;// = ""
private var lastNode:Point;
public function CustomEase(_arg1:XML=null){
_target = "";
super();
this.points = [];
this.parseXML(_arg1);
this.firstNode = new Point(0, 0);
this.lastNode = new Point(1, 1);
}
public function set target(_arg1:String):void{
this._target = _arg1;
}
public function get target():String{
return (this._target);
}
public function getValue(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local5:Number;
var _local6:Array;
var _local7:Number;
if (_arg4 <= 0){
return (NaN);
};
_local5 = (_arg1 / _arg4);
if (_local5 <= 0){
return (_arg2);
};
if (_local5 >= 1){
return ((_arg2 + _arg3));
};
_local6 = [this.firstNode].concat(this.points);
_local6.push(this.lastNode);
_local7 = getYForPercent(_local5, _local6);
return ((_arg2 + (_local7 * _arg3)));
}
private function parseXML(_arg1:XML=null):CustomEase{
var _local2:XMLList;
var _local3:XML;
if (!_arg1){
return (this);
};
if (_arg1.@target.length()){
this.target = _arg1.@target;
};
_local2 = _arg1.elements();
for each (_local3 in _local2) {
this.points.push(new Point(Number(_local3.@x), Number(_local3.@y)));
};
return (this);
}
static function getYForPercent(_arg1:Number, _arg2:Array):Number{
var _local3:BezierSegment;
var _local4:Array;
var _local5:int;
var _local6:BezierSegment;
var _local7:Number;
var _local8:int;
var _local9:BezierSegment;
_local3 = new BezierSegment(_arg2[0], _arg2[1], _arg2[2], _arg2[3]);
_local4 = [_local3];
_local5 = 3;
while (_local5 < (_arg2.length - 3)) {
_local4.push(new BezierSegment(_arg2[_local5], _arg2[(_local5 + 1)], _arg2[(_local5 + 2)], _arg2[(_local5 + 3)]));
_local5 = (_local5 + 3);
};
_local6 = _local3;
if (_arg2.length >= 5){
_local8 = 0;
while (_local8 < _local4.length) {
_local9 = _local4[_local8];
if ((((_local9.a.x <= _arg1)) && ((_arg1 <= _local9.d.x)))){
_local6 = _local9;
break;
};
_local8++;
};
};
_local7 = _local6.getYForX(_arg1);
return (_local7);
}
}
}//package fl.motion
Section 29
//FunctionEase (fl.motion.FunctionEase)
package fl.motion {
import flash.utils.*;
public class FunctionEase implements ITween {
private var _functionName:String;// = ""
public var parameters:Array;// = null
private var _target:String;// = ""
public var easingFunction:Function;// = null
public function FunctionEase(_arg1:XML=null){
_functionName = "";
easingFunction = null;
parameters = null;
_target = "";
super();
this.parseXML(_arg1);
}
public function get functionName():String{
return (this._functionName);
}
public function set functionName(_arg1:String):void{
var _local2:Array;
var _local3:String;
var _local4:String;
var _local5:Class;
_local2 = _arg1.split(".");
_local3 = _local2.pop();
_local4 = _local2.join(".");
_local5 = (getDefinitionByName(_local4) as Class);
if ((_local5[_local3] is Function)){
this.easingFunction = _local5[_local3];
this._functionName = _arg1;
};
}
public function set target(_arg1:String):void{
this._target = _arg1;
}
public function get target():String{
return (this._target);
}
public function getValue(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local5:Array;
if ((this.parameters is Array)){
_local5 = [_arg1, _arg2, _arg3, _arg4].concat(this.parameters);
return (this.easingFunction.apply(null, _local5));
};
return (this.easingFunction(_arg1, _arg2, _arg3, _arg4));
}
private function parseXML(_arg1:XML=null):FunctionEase{
if (!_arg1){
return (this);
};
if (_arg1.@functionName.length()){
this.functionName = _arg1.@functionName;
};
return (this);
}
}
}//package fl.motion
Section 30
//ITween (fl.motion.ITween)
package fl.motion {
public interface ITween {
function get target():String;
function set target(_arg1:String):void;
function getValue(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number;
}
}//package fl.motion
Section 31
//Keyframe (fl.motion.Keyframe)
package fl.motion {
import flash.filters.*;
import flash.display.*;
import flash.utils.*;
public class Keyframe {
public var skewX:Number;// = NAN
public var blendMode:String;
public var skewY:Number;// = NAN
public var firstFrame:String;
public var tweenScale:Boolean;// = true
public var cacheAsBitmap:Boolean;// = false
public var rotateTimes:uint;// = 0
public var tweenSync:Boolean;// = false
public var loop:String;
public var scaleX:Number;// = NAN
private var _index:int;// = -1
public var blank:Boolean;// = false
public var tweenSnap:Boolean;// = false
public var scaleY:Number;// = NAN
public var color:Color;
public var rotateDirection:String;
public var orientToPath:Boolean;// = false
public var tweens:Array;
public var label:String;// = ""
public var x:Number;// = NAN
public var y:Number;// = NAN
public var filters:Array;
public function Keyframe(_arg1:XML=null){
_index = -1;
x = NaN;
y = NaN;
scaleX = NaN;
scaleY = NaN;
skewX = NaN;
skewY = NaN;
label = "";
tweenScale = true;
tweenSnap = false;
tweenSync = false;
cacheAsBitmap = false;
blendMode = BlendMode.NORMAL;
rotateDirection = RotateDirection.AUTO;
rotateTimes = 0;
orientToPath = false;
blank = false;
super();
this.tweens = [];
this.filters = [];
this.parseXML(_arg1);
}
public function set index(_arg1:int):void{
this._index = ((_arg1)<0) ? 0 : _arg1;
if (this._index == 0){
this.setDefaults();
};
}
public function getTween(_arg1:String=""):ITween{
var _local2:ITween;
for each (_local2 in this.tweens) {
if ((((((((_local2.target == _arg1)) || ((((_local2.target == "rotation")) && ((((_arg1 == "skewX")) || ((_arg1 == "skewY")))))))) || ((((_local2.target == "position")) && ((((_arg1 == "x")) || ((_arg1 == "y")))))))) || ((((_local2.target == "scale")) && ((((_arg1 == "scaleX")) || ((_arg1 == "scaleY")))))))){
return (_local2);
};
};
return (null);
}
public function setValue(_arg1:String, _arg2:Number):void{
this[_arg1] = _arg2;
}
public function getValue(_arg1:String):Number{
return (Number(this[_arg1]));
}
public function get index():int{
return (this._index);
}
private function setDefaults():void{
if (isNaN(this.x)){
this.x = 0;
};
if (isNaN(this.y)){
this.y = 0;
};
if (isNaN(this.scaleX)){
this.scaleX = 1;
};
if (isNaN(this.scaleY)){
this.scaleY = 1;
};
if (isNaN(this.skewX)){
this.skewX = 0;
};
if (isNaN(this.skewY)){
this.skewY = 0;
};
if (!this.color){
this.color = new Color();
};
}
public function affectsTweenable(_arg1:String=""):Boolean{
return (((((((((((!(_arg1)) || (!(isNaN(this[_arg1]))))) || ((((_arg1 == "color")) && (this.color))))) || ((((_arg1 == "filters")) && (this.filters.length))))) || (this.blank))) || (this.getTween())));
}
private function parseXML(_arg1:XML=null):Keyframe{
var indexString:String;
var indexValue:int;
var tweenableNames:Array;
var tweenableName:String;
var elements:XMLList;
var filtersArray:Array;
var child:XML;
var attribute:XML;
var attributeValue:String;
var name:String;
var tweenChildren:XMLList;
var tweenChild:XML;
var tweenName:String;
var filtersChildren:XMLList;
var filterXML:XML;
var filterName:String;
var filterClassName:String;
var filterClass:Object;
var filterInstance:BitmapFilter;
var filterTypeInfo:XML;
var accessorList:XMLList;
var ratios:Array;
var attrib:XML;
var attribName:String;
var accessor:XML;
var attribType:String;
var attribValue:String;
var uintValue:uint;
var valuesArray:Array;
var xml = _arg1;
if (!xml){
return (this);
};
indexString = xml.@index.toXMLString();
indexValue = parseInt(indexString);
if (indexString){
this.index = indexValue;
} else {
throw (new Error("<Keyframe> is missing the required attribute \"index\"."));
};
if (xml.@label.length()){
this.label = xml.@label;
};
if (xml.@tweenScale.length()){
this.tweenScale = (xml.@tweenScale.toString() == "true");
};
if (xml.@tweenSnap.length()){
this.tweenSnap = (xml.@tweenSnap.toString() == "true");
};
if (xml.@tweenSync.length()){
this.tweenSync = (xml.@tweenSync.toString() == "true");
};
if (xml.@blendMode.length()){
this.blendMode = xml.@blendMode;
};
if (xml.@cacheAsBitmap.length()){
this.cacheAsBitmap = (xml.@cacheAsBitmap.toString() == "true");
};
if (xml.@rotateDirection.length()){
this.rotateDirection = xml.@rotateDirection;
};
if (xml.@rotateTimes.length()){
this.rotateTimes = parseInt(xml.@rotateTimes);
};
if (xml.@orientToPath.length()){
this.orientToPath = (xml.@orientToPath.toString() == "true");
};
if (xml.@blank.length()){
this.blank = (xml.@blank.toString() == "true");
};
tweenableNames = ["x", "y", "scaleX", "scaleY", "rotation", "skewX", "skewY"];
for each (tweenableName in tweenableNames) {
attribute = xml.attribute(tweenableName)[0];
if (!attribute){
} else {
attributeValue = attribute.toString();
if (attributeValue){
this[tweenableName] = Number(attributeValue);
};
};
};
elements = xml.elements();
filtersArray = [];
for each (child in elements) {
name = child.localName();
if (name == "tweens"){
tweenChildren = child.elements();
for each (tweenChild in tweenChildren) {
tweenName = tweenChild.localName();
if (tweenName == "SimpleEase"){
this.tweens.push(new SimpleEase(tweenChild));
} else {
if (tweenName == "CustomEase"){
this.tweens.push(new CustomEase(tweenChild));
} else {
if (tweenName == "BezierEase"){
this.tweens.push(new BezierEase(tweenChild));
} else {
if (tweenName == "FunctionEase"){
this.tweens.push(new FunctionEase(tweenChild));
};
};
};
};
};
} else {
if (name == "filters"){
filtersChildren = child.elements();
for each (filterXML in filtersChildren) {
filterName = filterXML.localName();
filterClassName = ("flash.filters." + filterName);
if (filterName == "AdjustColorFilter"){
} else {
filterClass = getDefinitionByName(filterClassName);
filterInstance = new (filterClass);
filterTypeInfo = describeType(filterInstance);
accessorList = filterTypeInfo.accessor;
ratios = [];
for each (attrib in filterXML.attributes()) {
attribName = attrib.localName();
accessor = accessorList.(@name == attribName)[0];
attribType = accessor.@type;
attribValue = attrib.toString();
if (attribType == "int"){
filterInstance[attribName] = parseInt(attribValue);
} else {
if (attribType == "uint"){
filterInstance[attribName] = (parseInt(attribValue) as uint);
uintValue = (parseInt(attribValue) as uint);
} else {
if (attribType == "Number"){
filterInstance[attribName] = Number(attribValue);
} else {
if (attribType == "Boolean"){
filterInstance[attribName] = (attribValue == "true");
} else {
if (attribType == "Array"){
attribValue = attribValue.substring(1, (attribValue.length - 1));
valuesArray = null;
if ((((attribName == "ratios")) || ((attribName == "colors")))){
valuesArray = splitUint(attribValue);
} else {
if (attribName == "alphas"){
valuesArray = splitNumber(attribValue);
};
};
if (attribName == "ratios"){
ratios = valuesArray;
} else {
if (valuesArray){
filterInstance[attribName] = valuesArray;
};
};
} else {
if (attribType == "String"){
filterInstance[attribName] = attribValue;
};
};
};
};
};
};
};
if (ratios.length){
filterInstance["ratios"] = ratios;
};
filtersArray.push(filterInstance);
};
};
} else {
if (name == "color"){
this.color = Color.fromXML(child);
};
};
};
this.filters = filtersArray;
};
return (this);
}
public function set rotation(_arg1:Number):void{
if (((isNaN(this.skewX)) || (isNaN(this.skewY)))){
this.skewX = _arg1;
} else {
this.skewX = (this.skewX + (_arg1 - this.skewY));
};
this.skewY = _arg1;
}
public function get rotation():Number{
return (this.skewY);
}
private static function splitNumber(_arg1:String):Array{
var _local2:Array;
var _local3:int;
_local2 = _arg1.split(",");
_local3 = 0;
while (_local3 < _local2.length) {
_local2[_local3] = Number(_local2[_local3]);
_local3++;
};
return (_local2);
}
private static function splitUint(_arg1:String):Array{
var _local2:Array;
var _local3:int;
_local2 = _arg1.split(",");
_local3 = 0;
while (_local3 < _local2.length) {
_local2[_local3] = (parseInt(_local2[_local3]) as uint);
_local3++;
};
return (_local2);
}
private static function splitInt(_arg1:String):Array{
var _local2:Array;
var _local3:int;
_local2 = _arg1.split(",");
_local3 = 0;
while (_local3 < _local2.length) {
_local2[_local3] = (parseInt(_local2[_local3]) as int);
_local3++;
};
return (_local2);
}
}
}//package fl.motion
Section 32
//MatrixTransformer (fl.motion.MatrixTransformer)
package fl.motion {
import flash.geom.*;
public class MatrixTransformer {
public static function getSkewY(_arg1:Matrix):Number{
return ((Math.atan2(_arg1.b, _arg1.a) * (180 / Math.PI)));
}
public static function getScaleX(_arg1:Matrix):Number{
return (Math.sqrt(((_arg1.a * _arg1.a) + (_arg1.b * _arg1.b))));
}
public static function getScaleY(_arg1:Matrix):Number{
return (Math.sqrt(((_arg1.c * _arg1.c) + (_arg1.d * _arg1.d))));
}
public static function setSkewXRadians(_arg1:Matrix, _arg2:Number):void{
var _local3:Number;
_local3 = getScaleY(_arg1);
_arg1.c = (-(_local3) * Math.sin(_arg2));
_arg1.d = (_local3 * Math.cos(_arg2));
}
public static function setRotation(_arg1:Matrix, _arg2:Number):void{
setRotationRadians(_arg1, (_arg2 * (Math.PI / 180)));
}
public static function rotateAroundInternalPoint(_arg1:Matrix, _arg2:Number, _arg3:Number, _arg4:Number):void{
var _local5:Point;
_local5 = new Point(_arg2, _arg3);
_local5 = _arg1.transformPoint(_local5);
_arg1.tx = (_arg1.tx - _local5.x);
_arg1.ty = (_arg1.ty - _local5.y);
_arg1.rotate((_arg4 * (Math.PI / 180)));
_arg1.tx = (_arg1.tx + _local5.x);
_arg1.ty = (_arg1.ty + _local5.y);
}
public static function setSkewX(_arg1:Matrix, _arg2:Number):void{
setSkewXRadians(_arg1, (_arg2 * (Math.PI / 180)));
}
public static function setSkewY(_arg1:Matrix, _arg2:Number):void{
setSkewYRadians(_arg1, (_arg2 * (Math.PI / 180)));
}
public static function setScaleX(_arg1:Matrix, _arg2:Number):void{
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local3 = getScaleX(_arg1);
if (_local3){
_local4 = (_arg2 / _local3);
_arg1.a = (_arg1.a * _local4);
_arg1.b = (_arg1.b * _local4);
} else {
_local5 = getSkewYRadians(_arg1);
_arg1.a = (Math.cos(_local5) * _arg2);
_arg1.b = (Math.sin(_local5) * _arg2);
};
}
public static function setScaleY(_arg1:Matrix, _arg2:Number):void{
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local3 = getScaleY(_arg1);
if (_local3){
_local4 = (_arg2 / _local3);
_arg1.c = (_arg1.c * _local4);
_arg1.d = (_arg1.d * _local4);
} else {
_local5 = getSkewXRadians(_arg1);
_arg1.c = (-(Math.sin(_local5)) * _arg2);
_arg1.d = (Math.cos(_local5) * _arg2);
};
}
public static function setRotationRadians(_arg1:Matrix, _arg2:Number):void{
var _local3:Number;
var _local4:Number;
_local3 = getRotationRadians(_arg1);
_local4 = getSkewXRadians(_arg1);
setSkewXRadians(_arg1, ((_local4 + _arg2) - _local3));
setSkewYRadians(_arg1, _arg2);
}
public static function setSkewYRadians(_arg1:Matrix, _arg2:Number):void{
var _local3:Number;
_local3 = getScaleX(_arg1);
_arg1.a = (_local3 * Math.cos(_arg2));
_arg1.b = (_local3 * Math.sin(_arg2));
}
public static function getSkewX(_arg1:Matrix):Number{
return ((Math.atan2(-(_arg1.c), _arg1.d) * (180 / Math.PI)));
}
public static function getSkewYRadians(_arg1:Matrix):Number{
return (Math.atan2(_arg1.b, _arg1.a));
}
public static function getSkewXRadians(_arg1:Matrix):Number{
return (Math.atan2(-(_arg1.c), _arg1.d));
}
public static function getRotation(_arg1:Matrix):Number{
return ((getRotationRadians(_arg1) * (180 / Math.PI)));
}
public static function rotateAroundExternalPoint(_arg1:Matrix, _arg2:Number, _arg3:Number, _arg4:Number):void{
_arg1.tx = (_arg1.tx - _arg2);
_arg1.ty = (_arg1.ty - _arg3);
_arg1.rotate((_arg4 * (Math.PI / 180)));
_arg1.tx = (_arg1.tx + _arg2);
_arg1.ty = (_arg1.ty + _arg3);
}
public static function getRotationRadians(_arg1:Matrix):Number{
return (getSkewYRadians(_arg1));
}
public static function matchInternalPointWithExternal(_arg1:Matrix, _arg2:Point, _arg3:Point):void{
var _local4:Point;
var _local5:Number;
var _local6:Number;
_local4 = _arg1.transformPoint(_arg2);
_local5 = (_arg3.x - _local4.x);
_local6 = (_arg3.y - _local4.y);
_arg1.tx = (_arg1.tx + _local5);
_arg1.ty = (_arg1.ty + _local6);
}
}
}//package fl.motion
Section 33
//Motion (fl.motion.Motion)
package fl.motion {
import flash.filters.*;
import flash.geom.*;
import flash.utils.*;
public class Motion {
private var _keyframesCompact:Array;
public var keyframes:Array;
public var source:Source;
private var _duration:int;// = 0
private static var typeCache:Object = {};
public function Motion(_arg1:XML=null){
var _local2:Keyframe;
_duration = 0;
super();
this.keyframes = [];
this.parseXML(_arg1);
if (!this.source){
this.source = new Source();
};
if (this.duration == 0){
_local2 = new Keyframe();
_local2.index = 0;
this.addKeyframe(_local2);
};
}
public function getFilters(_arg1:Number):Array{
var _local2:Array;
var _local3:Keyframe;
var _local4:Array;
var _local5:Number;
var _local6:ITween;
var _local7:Keyframe;
var _local8:Array;
var _local9:Number;
var _local10:Number;
_local2 = null;
_local3 = this.getCurrentKeyframe(_arg1, "filters");
if (((!(_local3)) || (!(_local3.filters.length)))){
return ([]);
};
_local4 = _local3.filters;
_local5 = (_arg1 - _local3.index);
_local6 = ((_local3.getTween("filters")) || (_local3.getTween()));
if ((((_local5 == 0)) || (!(_local6)))){
_local2 = _local4;
} else {
if (_local6){
_local7 = this.getNextKeyframe(_arg1, "filters");
if (((!(_local7)) || (!(_local7.filters.length)))){
_local2 = _local4;
} else {
_local8 = _local7.filters;
_local9 = (_local7.index - _local3.index);
_local10 = _local6.getValue(_local5, 0, 1, _local9);
_local2 = interpolateFilters(_local4, _local8, _local10);
};
};
};
return (_local2);
}
public function getCurrentKeyframe(_arg1:int, _arg2:String=""):Keyframe{
var _local3:int;
var _local4:Keyframe;
if (((((isNaN(_arg1)) || ((_arg1 < 0)))) || ((_arg1 > (this.duration - 1))))){
return (null);
};
_local3 = _arg1;
while (_local3 > 0) {
_local4 = this.keyframes[_local3];
if (((_local4) && (_local4.affectsTweenable(_arg2)))){
return (_local4);
};
_local3--;
};
return (this.keyframes[0]);
}
public function get duration():int{
if (this._duration < this.keyframes.length){
this._duration = this.keyframes.length;
};
return (this._duration);
}
public function get keyframesCompact():Array{
var _local1:Keyframe;
this._keyframesCompact = [];
for each (_local1 in this.keyframes) {
if (_local1){
this._keyframesCompact.push(_local1);
};
};
return (this._keyframesCompact);
}
private function parseXML(_arg1:XML):Motion{
var _local2:XMLList;
var _local3:Number;
var _local4:XML;
var _local5:XML;
if (!_arg1){
return (this);
};
if (_arg1.@duration.length()){
this._duration = parseInt(_arg1.@duration);
};
_local2 = _arg1.elements();
_local3 = 0;
while (_local3 < _local2.length()) {
_local4 = _local2[_local3];
if (_local4.localName() == "source"){
_local5 = _local4.children()[0];
this.source = new Source(_local5);
} else {
if (_local4.localName() == "Keyframe"){
this.addKeyframe(new Keyframe(_local4));
};
};
_local3++;
};
return (this);
}
public function set duration(_arg1:int):void{
if (_arg1 < this.keyframes.length){
_arg1 = this.keyframes.length;
};
this._duration = _arg1;
}
private function indexOutOfRange(_arg1:int):Boolean{
return (((((isNaN(_arg1)) || ((_arg1 < 0)))) || ((_arg1 > (this.duration - 1)))));
}
public function addKeyframe(_arg1:Keyframe):void{
this.keyframes[_arg1.index] = _arg1;
if (this.duration < this.keyframes.length){
this.duration = this.keyframes.length;
};
}
public function setValue(_arg1:int, _arg2:String, _arg3:Number):void{
var _local4:Keyframe;
if (_arg1 == 0){
return;
};
_local4 = this.keyframes[_arg1];
if (!_local4){
_local4 = new Keyframe();
_local4.index = _arg1;
this.addKeyframe(_local4);
};
_local4.setValue(_arg2, _arg3);
}
public function getNextKeyframe(_arg1:int, _arg2:String=""):Keyframe{
var _local3:int;
var _local4:Keyframe;
if (((((isNaN(_arg1)) || ((_arg1 < 0)))) || ((_arg1 > (this.duration - 1))))){
return (null);
};
_local3 = (_arg1 + 1);
while (_local3 < this.keyframes.length) {
_local4 = this.keyframes[_local3];
if (((_local4) && (_local4.affectsTweenable(_arg2)))){
return (_local4);
};
_local3++;
};
return (null);
}
public function getValue(_arg1:Number, _arg2:String):Number{
var _local3:Number;
var _local4:Keyframe;
var _local5:Number;
var _local6:Number;
var _local7:ITween;
var _local8:String;
var _local9:Keyframe;
var _local10:Number;
var _local11:Number;
var _local12:Number;
_local3 = NaN;
_local4 = this.getCurrentKeyframe(_arg1, _arg2);
if (((!(_local4)) || (_local4.blank))){
return (NaN);
};
_local5 = _local4.getValue(_arg2);
if (((isNaN(_local5)) && ((_local4.index > 0)))){
_local5 = this.getValue((_local4.index - 1), _arg2);
};
if (isNaN(_local5)){
return (NaN);
};
_local6 = (_arg1 - _local4.index);
if (_local6 == 0){
return (_local5);
};
_local7 = ((_local4.getTween(_arg2)) || (_local4.getTween()));
if (((((!(_local7)) || (((!(_local4.tweenScale)) && ((((_arg2 == Tweenables.SCALE_X)) || ((_arg2 == Tweenables.SCALE_Y)))))))) || ((((_local4.rotateDirection == RotateDirection.NONE)) && ((((((_arg2 == Tweenables.ROTATION)) || ((_arg2 == Tweenables.SKEW_X)))) || ((_arg2 == Tweenables.SKEW_Y)))))))){
return (_local5);
};
_local8 = _arg2;
if (_local7.target == ""){
_local8 = "";
};
_local9 = this.getNextKeyframe(_arg1, _local8);
if (((!(_local9)) || (_local9.blank))){
return (_local5);
};
_local10 = _local9.getValue(_arg2);
if (isNaN(_local10)){
_local10 = _local5;
};
_local11 = (_local10 - _local5);
if ((((((_arg2 == Tweenables.SKEW_X)) || ((_arg2 == Tweenables.SKEW_Y)))) || ((_arg2 == Tweenables.ROTATION)))){
if (_local4.rotateDirection == RotateDirection.AUTO){
_local11 = (_local11 % 360);
if (_local11 > 180){
_local11 = (_local11 - 360);
} else {
if (_local11 < -180){
_local11 = (_local11 + 360);
};
};
} else {
if (_local4.rotateDirection == RotateDirection.CW){
if (_local11 < 0){
_local11 = ((_local11 % 360) + 360);
};
_local11 = (_local11 + (_local4.rotateTimes * 360));
} else {
if (_local11 > 0){
_local11 = ((_local11 % 360) - 360);
};
_local11 = (_local11 - (_local4.rotateTimes * 360));
};
};
};
_local12 = (_local9.index - _local4.index);
_local3 = _local7.getValue(_local6, _local5, _local11, _local12);
return (_local3);
}
public function set keyframesCompact(_arg1:Array):void{
var _local2:Keyframe;
this._keyframesCompact = _arg1.concat();
this.keyframes = [];
for each (_local2 in this._keyframesCompact) {
this.addKeyframe(_local2);
};
}
public function getColorTransform(_arg1:int):ColorTransform{
var _local2:ColorTransform;
var _local3:Keyframe;
var _local4:ColorTransform;
var _local5:Number;
var _local6:ITween;
var _local7:Keyframe;
var _local8:ColorTransform;
var _local9:Number;
var _local10:Number;
_local2 = null;
_local3 = this.getCurrentKeyframe(_arg1, "color");
if (((!(_local3)) || (!(_local3.color)))){
return (null);
};
_local4 = _local3.color;
_local5 = (_arg1 - _local3.index);
_local6 = ((((_local3.getTween("color")) || (_local3.getTween("alpha")))) || (_local3.getTween()));
if ((((_local5 == 0)) || (!(_local6)))){
_local2 = _local4;
} else {
if (_local6){
_local7 = this.getNextKeyframe(_arg1, "color");
if (((!(_local7)) || (!(_local7.color)))){
_local2 = _local4;
} else {
_local8 = _local7.color;
_local9 = (_local7.index - _local3.index);
_local10 = _local6.getValue(_local5, 0, 1, _local9);
_local2 = Color.interpolateTransform(_local4, _local8, _local10);
};
};
};
return (_local2);
}
private static function getTypeInfo(_arg1):XML{
var _local2:String;
_local2 = "";
if ((_arg1 is String)){
_local2 = _arg1;
} else {
_local2 = getQualifiedClassName(_arg1);
};
if ((_local2 in typeCache)){
return (typeCache[_local2]);
};
if ((_arg1 is String)){
_arg1 = getDefinitionByName(_arg1);
};
return ((typeCache[_local2] = describeType(_arg1)));
}
public static function interpolateFilter(_arg1:BitmapFilter, _arg2:BitmapFilter, _arg3:Number):BitmapFilter{
var _local4:Number;
var _local5:BitmapFilter;
var _local6:XML;
var _local7:XMLList;
var _local8:XML;
var _local9:String;
var _local10:String;
var _local11:uint;
var _local12:uint;
var _local13:uint;
var _local14:Array;
var _local15:Array;
var _local16:Array;
var _local17:int;
var _local18:int;
var _local19:int;
var _local20:int;
var _local21:int;
var _local22:Number;
var _local23:uint;
var _local24:Number;
var _local25:int;
var _local26:Number;
var _local27:uint;
var _local28:Number;
var _local29:int;
var _local30:uint;
var _local31:Number;
if (((!(_arg2)) || (!((_arg1["constructor"] == _arg2["constructor"]))))){
return (_arg1);
};
if (_arg3 > 1){
_arg3 = 1;
} else {
if (_arg3 < 0){
_arg3 = 0;
};
};
_local4 = (1 - _arg3);
_local5 = _arg1.clone();
_local6 = getTypeInfo(_arg1);
_local7 = _local6.accessor;
for each (_local8 in _local7) {
_local9 = _local8.@name.toString();
_local10 = _local8.@type;
if ((((_local10 == "Number")) || ((_local10 == "int")))){
_local5[_local9] = ((_arg1[_local9] * _local4) + (_arg2[_local9] * _arg3));
} else {
if (_local10 == "uint"){
switch (_local9){
case "color":
case "highlightColor":
case "shadowColor":
_local11 = _arg1[_local9];
_local12 = _arg2[_local9];
_local13 = Color.interpolateColor(_local11, _local12, _arg3);
_local5[_local9] = _local13;
break;
default:
_local5[_local9] = ((_arg1[_local9] * _local4) + (_arg2[_local9] * _arg3));
break;
};
};
};
};
if ((((_arg1 is GradientGlowFilter)) || ((_arg1 is GradientBevelFilter)))){
_local14 = [];
_local15 = [];
_local16 = [];
_local17 = _arg1["ratios"].length;
_local18 = _arg2["ratios"].length;
_local19 = Math.max(_local17, _local18);
_local20 = 0;
while (_local20 < _local19) {
_local21 = Math.min(_local20, (_local17 - 1));
_local22 = _arg1["ratios"][_local21];
_local23 = _arg1["colors"][_local21];
_local24 = _arg1["alphas"][_local21];
_local25 = Math.min(_local20, (_local18 - 1));
_local26 = _arg2["ratios"][_local25];
_local27 = _arg2["colors"][_local25];
_local28 = _arg2["alphas"][_local25];
_local29 = ((_local22 * _local4) + (_local26 * _arg3));
_local30 = Color.interpolateColor(_local23, _local27, _arg3);
_local31 = ((_local24 * _local4) + (_local28 * _arg3));
_local14[_local20] = _local29;
_local15[_local20] = _local30;
_local16[_local20] = _local31;
_local20++;
};
_local5["colors"] = _local15;
_local5["alphas"] = _local16;
_local5["ratios"] = _local14;
};
return (_local5);
}
public static function interpolateFilters(_arg1:Array, _arg2:Array, _arg3:Number):Array{
var _local4:Array;
var _local5:int;
var _local6:BitmapFilter;
var _local7:BitmapFilter;
var _local8:BitmapFilter;
if (_arg1.length != _arg2.length){
return (null);
};
_local4 = [];
_local5 = 0;
while (_local5 < _arg1.length) {
_local6 = _arg1[_local5];
_local7 = _arg2[_local5];
_local8 = interpolateFilter(_local6, _local7, _arg3);
if (_local8){
_local4.push(_local8);
};
_local5++;
};
return (_local4);
}
public static function fromXMLString(_arg1:String):Motion{
var _local2:XML;
_local2 = new XML(_arg1);
return (new Motion(_local2));
}
}
}//package fl.motion
Section 34
//MotionEvent (fl.motion.MotionEvent)
package fl.motion {
import flash.events.*;
public class MotionEvent extends Event {
public static const MOTION_UPDATE:String = "motionUpdate";
public static const TIME_CHANGE:String = "timeChange";
public static const MOTION_START:String = "motionStart";
public static const MOTION_END:String = "motionEnd";
public function MotionEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
override public function clone():Event{
return (new MotionEvent(this.type, this.bubbles, this.cancelable));
}
}
}//package fl.motion
Section 35
//RotateDirection (fl.motion.RotateDirection)
package fl.motion {
public class RotateDirection {
public static const CW:String = "cw";
public static const CCW:String = "ccw";
public static const NONE:String = "none";
public static const AUTO:String = "auto";
}
}//package fl.motion
Section 36
//SimpleEase (fl.motion.SimpleEase)
package fl.motion {
public class SimpleEase implements ITween {
private var _ease:Number;// = 0
private var _target:String;// = ""
public function SimpleEase(_arg1:XML=null){
_ease = 0;
_target = "";
super();
this.parseXML(_arg1);
}
public function set target(_arg1:String):void{
this._target = _arg1;
}
private function parseXML(_arg1:XML=null):SimpleEase{
if (_arg1){
if (_arg1.@ease.length()){
this.ease = Number(_arg1.@ease);
};
};
return (this);
}
public function get ease():Number{
return (this._ease);
}
public function get target():String{
return (this._target);
}
public function getValue(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (easeQuadPercent(_arg1, _arg2, _arg3, _arg4, this.ease));
}
public function set ease(_arg1:Number):void{
this._ease = ((_arg1 > 1)) ? 1 : ((_arg1 < -1)) ? -1 : (isNaN(_arg1)) ? 0 : _arg1;
}
public static function easeQuadPercent(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{
if (_arg4 <= 0){
return (NaN);
};
if (_arg1 <= 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 >= 1){
return ((_arg2 + _arg3));
};
if (!_arg5){
return (((_arg3 * _arg1) + _arg2));
};
if (_arg5 > 1){
_arg5 = 1;
} else {
if (_arg5 < -1){
_arg5 = -1;
};
};
if (_arg5 < 0){
return ((((_arg3 * _arg1) * ((_arg1 * -(_arg5)) + (1 + _arg5))) + _arg2));
};
return ((((_arg3 * _arg1) * (((2 - _arg1) * _arg5) + (1 - _arg5))) + _arg2));
}
public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg4 <= 0){
return (NaN);
};
if (_arg1 <= 0){
return (_arg2);
};
if (_arg1 >= _arg4){
return ((_arg2 + _arg3));
};
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
}
}//package fl.motion
Section 37
//Source (fl.motion.Source)
package fl.motion {
import flash.geom.*;
public class Source {
public var instanceName:String;// = ""
public var symbolName:String;// = ""
public var dimensions:Rectangle;
public var scaleX:Number;// = 1
public var skewY:Number;// = 0
public var skewX:Number;// = 0
public var scaleY:Number;// = 1
public var elementType:String;// = ""
public var transformationPoint:Point;
public var linkageID:String;// = ""
public var frameRate:Number;// = NAN
public var x:Number;// = 0
public var y:Number;// = 0
public var rotation:Number;// = 0
public function Source(_arg1:XML=null){
frameRate = NaN;
elementType = "";
symbolName = "";
instanceName = "";
linkageID = "";
x = 0;
y = 0;
scaleX = 1;
scaleY = 1;
skewX = 0;
skewY = 0;
rotation = 0;
super();
this.parseXML(_arg1);
}
private function parseXML(_arg1:XML=null):Source{
var _local2:XMLList;
var _local3:XML;
var _local4:XML;
var _local5:XML;
if (!_arg1){
return (this);
};
if (_arg1.@instanceName){
this.instanceName = String(_arg1.@instanceName);
};
if (_arg1.@symbolName){
this.symbolName = String(_arg1.@symbolName);
};
if (_arg1.@linkageID){
this.linkageID = String(_arg1.@linkageID);
};
if (!isNaN(_arg1.@frameRate)){
this.frameRate = Number(_arg1.@frameRate);
};
_local2 = _arg1.elements();
for each (_local3 in _local2) {
if (_local3.localName() == "transformationPoint"){
_local4 = _local3.children()[0];
this.transformationPoint = new Point(Number(_local4.@x), Number(_local4.@y));
} else {
if (_local3.localName() == "dimensions"){
_local5 = _local3.children()[0];
this.dimensions = new Rectangle(Number(_local5.@left), Number(_local5.@top), Number(_local5.@width), Number(_local5.@height));
};
};
};
return (this);
}
}
}//package fl.motion
Section 38
//Tweenables (fl.motion.Tweenables)
package fl.motion {
public class Tweenables {
public static const SCALE_X:String = "scaleX";
public static const SCALE_Y:String = "scaleY";
public static const SKEW_X:String = "skewX";
public static const SKEW_Y:String = "skewY";
public static const X:String = "x";
public static const Y:String = "y";
public static const ROTATION:String = "rotation";
}
}//package fl.motion
Section 39
//bg_ani_19 (TheShapes_fla.bg_ani_19)
package TheShapes_fla {
import flash.display.*;
public dynamic class bg_ani_19 extends MovieClip {
public var gfx:MovieClip;
}
}//package TheShapes_fla
Section 40
//ChallengeCourse_64 (TheShapes_fla.ChallengeCourse_64)
package TheShapes_fla {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public dynamic class ChallengeCourse_64 extends MovieClip {
public var pausado;
public var haciaArribat:Timer;
public var red_area:MovieClip;
public function ChallengeCourse_64(){
addFrameScript(0, frame1);
}
public function haciaArriba(_arg1:TimerEvent){
if (!pausado){
red_area.y = (red_area.y - 2);
};
}
function frame1(){
pausado = false;
haciaArribat = new Timer(25, 0);
haciaArribat.addEventListener(TimerEvent.TIMER, haciaArriba);
haciaArribat.start();
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
}
public function reportKeyDown(_arg1:KeyboardEvent):void{
if (_arg1.charCode == 117){
if (pausado == true){
pausado = false;
} else {
if (pausado == false){
pausado = true;
};
};
};
}
}
}//package TheShapes_fla
Section 41
//JukeBox_29 (TheShapes_fla.JukeBox_29)
package TheShapes_fla {
import flash.display.*;
import flash.media.*;
public dynamic class JukeBox_29 extends MovieClip {
public function JukeBox_29(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10);
}
function frame10(){
stop();
}
function frame3(){
SoundMixer.stopAll();
}
function frame6(){
stop();
}
function frame7(){
SoundMixer.stopAll();
}
function frame1(){
SoundMixer.stopAll();
}
function frame4(){
stop();
}
function frame5(){
SoundMixer.stopAll();
}
function frame9(){
SoundMixer.stopAll();
}
function frame8(){
stop();
}
function frame2(){
stop();
}
}
}//package TheShapes_fla
Section 42
//Kongintro30fps_2 (TheShapes_fla.Kongintro30fps_2)
package TheShapes_fla {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public dynamic class Kongintro30fps_2 extends MovieClip {
public var btn_Kong:SimpleButton;
public var cargado;
public function Kongintro30fps_2(){
addFrameScript(0, frame1, 179, frame180);
}
public function OnLogoPress(_arg1:MouseEvent){
navigateToURL(new URLRequest("http://www.kongregate.com/?gamereferral=Shape-a-licious"), "_blank");
}
function frame180(){
cargado = 1;
stop();
}
function frame1(){
cargado = 0;
btn_Kong.addEventListener(MouseEvent.CLICK, OnLogoPress);
}
}
}//package TheShapes_fla
Section 43
//origin_30 (TheShapes_fla.origin_30)
package TheShapes_fla {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public dynamic class origin_30 extends MovieClip {
public var WHITE:int;
public var gutter:int;
public var thisTimer:Timer;
public var BLUE:int;
public var seed:int;
public var YELLOW:int;
public var gfx:MovieClip;
public var borderColor:int;
public var borderSize:int;
public var presionado:Boolean;
public var myDegrees:Number;
public var fxs:MovieClip;
public var pausado:Boolean;
public function origin_30(){
addFrameScript(0, frame1);
}
public function Acciones(_arg1:TimerEvent):void{
var _local2:int;
var _local3:DisplayObject;
if (pausado == false){
myDegrees = ((Math.atan2((root.mouseY - this.y), (root.mouseX - this.x)) * 180) / Math.PI);
gfx.rotation = (myDegrees + 90);
_local2 = this.fxs.numChildren;
fxs.graphics.clear();
if (presionado == true){
fxs.graphics.lineStyle(0, BLUE, 1);
fxs.graphics.lineTo((root.mouseX - x), (root.mouseY - y));
};
};
}
function frame1(){
thisTimer = new Timer(5, 0);
gutter = 0;
seed = 1;
YELLOW = 12615776;
WHITE = 12615776;
BLUE = 12615776;
presionado = false;
borderColor = 0x666666;
borderSize = 1;
thisTimer.addEventListener("timer", Acciones);
thisTimer.start();
pausado = false;
}
}
}//package TheShapes_fla
Section 44
//RED_62 (TheShapes_fla.RED_62)
package TheShapes_fla {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public dynamic class RED_62 extends MovieClip {
public var red_2:MovieClip;
public var thisTimer:Timer;
public var haciaArribat:Timer;
public var red:MovieClip;
public var pausado;
public function RED_62(){
addFrameScript(0, frame1);
}
public function haciaArriba(_arg1:TimerEvent){
if (pausado == false){
red.rotation = (red.rotation + 0.5);
red_2.rotation = (red_2.rotation - 0.5);
};
}
function frame1(){
thisTimer = new Timer(10, 0);
pausado = false;
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
haciaArribat = new Timer(10, 0);
haciaArribat.addEventListener("timer", haciaArriba);
haciaArribat.start();
}
public function reportKeyDown(_arg1:KeyboardEvent):void{
if (_arg1.charCode == 117){
if (pausado == true){
pausado = false;
} else {
if (pausado == false){
pausado = true;
};
};
};
}
}
}//package TheShapes_fla
Section 45
//Red5_inner_59 (TheShapes_fla.Red5_inner_59)
package TheShapes_fla {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public dynamic class Red5_inner_59 extends MovieClip {
public var pausado;
public var haciaArribat:Timer;
public var red_area:MovieClip;
public function Red5_inner_59(){
addFrameScript(0, frame1);
}
public function haciaArriba(_arg1:TimerEvent){
if (!pausado){
red_area.y = (red_area.y - 0.1);
};
}
function frame1(){
pausado = false;
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
haciaArribat = new Timer(10, 0);
haciaArribat.addEventListener("timer", haciaArriba);
haciaArribat.start();
}
public function reportKeyDown(_arg1:KeyboardEvent):void{
if (_arg1.charCode == 117){
if (pausado == true){
pausado = false;
} else {
if (pausado == false){
pausado = true;
};
};
};
}
}
}//package TheShapes_fla
Section 46
//Shapator_50 (TheShapes_fla.Shapator_50)
package TheShapes_fla {
import flash.filters.*;
import flash.geom.*;
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.net.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.system.*;
import flash.text.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Shapator_50 extends MovieClip {
public var counter:int;
public var thisTimer:Timer;
public var shapoto:MovieClip;
public var haciaArribat:Timer;
public var originalH:int;
public var originalW:int;
public var pausado;
public function Shapator_50(){
addFrameScript(0, frame1);
}
public function haciaArriba(_arg1:TimerEvent){
if (pausado == false){
shapoto.rotation = (shapoto.rotation + 1);
shapoto.shapator_inner.y = (shapoto.shapator_inner.y + Math.cos((counter / 10)));
if (shapoto.shapator_inner.scaleX < 5){
shapoto.shapator_inner.scaleX = (shapoto.shapator_inner.scaleX * 1.001);
};
if (shapoto.shapator_inner.scaleY < 5){
shapoto.shapator_inner.scaleY = (shapoto.shapator_inner.scaleY * 1.001);
};
shapoto.shapator_inner.x = (shapoto.shapator_inner.x + (Math.cos((counter / 100)) * 2));
shapoto.x = (shapoto.x + (Math.cos((counter / 100)) * 2));
counter = (counter + 1);
};
}
function frame1(){
thisTimer = new Timer(10, 0);
pausado = false;
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
haciaArribat = new Timer(10, 0);
haciaArribat.addEventListener("timer", haciaArriba);
originalW = shapoto.width;
originalH = shapoto.height;
haciaArribat.start();
}
public function reportKeyDown(_arg1:KeyboardEvent):void{
if (_arg1.charCode == 117){
if (pausado == true){
pausado = false;
} else {
if (pausado == false){
pausado = true;
};
};
};
}
}
}//package TheShapes_fla
Section 47
//trapezodo_full_47 (TheShapes_fla.trapezodo_full_47)
package TheShapes_fla {
import fl.motion.*;
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public dynamic class trapezodo_full_47 extends MovieClip {
public var jaw_down_animator:Animator;
public var jaw_up:MovieClip;
public var jaw_down_xml:XML;
public var thisTimer:Timer;
public var jaw_down:MovieClip;
public var jaw_up_animator:Animator;
public var jaw_up_xml:XML;
public var pausado;
public function trapezodo_full_47(){
addFrameScript(0, frame1);
}
public function Acciones(_arg1:TimerEvent){
if (pausado == false){
jaw_up_animator.nextFrame();
jaw_down_animator.nextFrame();
};
}
function frame1(){
jaw_down_xml = <Motion duration="193" xmlns="fl.motion.*" xmlns:geom="flash.geom.*" xmlns:filters="flash.filters.*">
<source>
<Source frameRate="120" x="54" y="159.05" scaleX="0.738" scaleY="0.738" rotation="0" elementType="movie clip" instanceName="jaw_down" symbolName="Juego/Bosses/trapezodo_B">
<dimensions>
<geom:Rectangle left="-72.6" top="-33.35" width="145.2" height="66.75"/>
</dimensions>
<transformationPoint>
<geom:Point x="1" y="0.9992509363295881"/>
</transformationPoint>
</Source>
</source>
<Keyframe index="0" tweenSnap="true" tweenSync="true">
<tweens>
<SimpleEase ease="-1"/>
</tweens>
</Keyframe>
<Keyframe index="44" tweenSnap="true" tweenSync="true">
<tweens>
<SimpleEase ease="-1"/>
</tweens>
</Keyframe>
<Keyframe index="74" tweenSnap="true" tweenSync="true" y="-109.00000000000001">
<tweens>
<SimpleEase ease="1"/>
</tweens>
</Keyframe>
<Keyframe index="102" tweenSnap="true" tweenSync="true">
<tweens>
<SimpleEase ease="1"/>
</tweens>
</Keyframe>
<Keyframe index="192" tweenSnap="true" tweenSync="true" y="0">
<tweens>
<SimpleEase ease="-1"/>
</tweens>
</Keyframe>
</Motion>
;
jaw_down_animator = new Animator(jaw_down_xml, jaw_down);
jaw_down_animator.repeatCount = 0;
pausado = false;
jaw_up_xml = <Motion duration="193" xmlns="fl.motion.*" xmlns:geom="flash.geom.*" xmlns:filters="flash.filters.*">
<source>
<Source frameRate="120" x="54" y="-121.1" scaleX="0.738" scaleY="0.738" rotation="0" elementType="movie clip" instanceName="jaw_up" symbolName="Juego/Bosses/trapezodo_A">
<dimensions>
<geom:Rectangle left="-72.6" top="-33.35" width="145.2" height="66.75"/>
</dimensions>
<transformationPoint>
<geom:Point x="1" y="0.9992509363295881"/>
</transformationPoint>
</Source>
</source>
<Keyframe index="0" tweenSnap="true" tweenSync="true">
<tweens>
<SimpleEase ease="-1"/>
</tweens>
</Keyframe>
<Keyframe index="44" tweenSnap="true" tweenSync="true">
<tweens>
<SimpleEase ease="-1"/>
</tweens>
</Keyframe>
<Keyframe index="74" tweenSnap="true" tweenSync="true" y="121.94999999999999">
<tweens>
<SimpleEase ease="1"/>
</tweens>
</Keyframe>
<Keyframe index="102" tweenSnap="true" tweenSync="true">
<tweens>
<SimpleEase ease="1"/>
</tweens>
</Keyframe>
<Keyframe index="192" tweenSnap="true" tweenSync="true" y="0">
<tweens>
<SimpleEase ease="-1"/>
</tweens>
</Keyframe>
</Motion>
;
jaw_up_animator = new Animator(jaw_up_xml, jaw_up);
jaw_up_animator.repeatCount = 0;
thisTimer = new Timer(10, 0);
thisTimer.addEventListener("timer", Acciones);
thisTimer.start();
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
}
public function reportKeyDown(_arg1:KeyboardEvent):void{
if (_arg1.charCode == 117){
if (pausado == true){
pausado = false;
} else {
if (pausado == false){
pausado = true;
};
};
};
}
}
}//package TheShapes_fla
Section 48
//Trapezodo_inner_46 (TheShapes_fla.Trapezodo_inner_46)
package TheShapes_fla {
import fl.motion.*;
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public dynamic class Trapezodo_inner_46 extends MovieClip {
public var trapezoido_inner_xml:XML;
public var thisTimer:Timer;
public var trapezoido_inner_animator:Animator;
public var trapezoido_inner:MovieClip;
public var pausado;
public function Trapezodo_inner_46(){
addFrameScript(0, frame1);
}
public function Acciones(_arg1:TimerEvent){
if (pausado == false){
trapezoido_inner_animator.nextFrame();
};
}
function frame1(){
pausado = false;
trapezoido_inner_xml = <Motion duration="1200" xmlns="fl.motion.*" xmlns:geom="flash.geom.*" xmlns:filters="flash.filters.*">
<source>
<Source frameRate="120" x="-257.85" y="9.15" scaleX="1.12" scaleY="1.12" rotation="-7.3" elementType="movie clip" symbolName="Juego/Bosses/trapezodo_full">
<dimensions>
<geom:Rectangle left="-53.2" top="-170.35" width="107.2" height="329.45"/>
</dimensions>
<transformationPoint>
<geom:Point x="0.4962686567164179" y="0.5170739110638943"/>
</transformationPoint>
</Source>
</source>
<Keyframe index="0" tweenSnap="true" tweenSync="true">
<tweens>
<SimpleEase ease="-1"/>
</tweens>
</Keyframe>
<Keyframe index="299" orientToPath="true" tweenSnap="true" tweenSync="true" x="257.95000000000005" y="-9" scaleX="0.8919642857142857" scaleY="0.8919642857142857" rotation="8">
<tweens>
<SimpleEase ease="1"/>
</tweens>
</Keyframe>
<Keyframe index="599" orientToPath="true" tweenSnap="true" tweenSync="true" x="544.05" y="0.049999999999998934" scaleX="1.0419642857142857" scaleY="1.0419642857142857" rotation="30">
<tweens>
<SimpleEase ease="-1"/>
</tweens>
</Keyframe>
<Keyframe index="899" orientToPath="true" tweenSnap="true" tweenSync="true" x="257.95000000000005" y="-9" scaleX="0.8919642857142857" scaleY="0.8919642857142857" rotation="8">
<tweens>
<SimpleEase ease="1"/>
</tweens>
</Keyframe>
<Keyframe index="1199" tweenSnap="true" tweenSync="true" x="0" y="0" scaleX="1" scaleY="1" rotation="0">
<tweens>
<SimpleEase ease="-1"/>
</tweens>
</Keyframe>
</Motion>
;
thisTimer = new Timer(15, 0);
thisTimer.addEventListener("timer", Acciones);
thisTimer.start();
trapezoido_inner_animator = new Animator(trapezoido_inner_xml, trapezoido_inner);
trapezoido_inner_animator.repeatCount = 0;
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
}
public function reportKeyDown(_arg1:KeyboardEvent):void{
if (_arg1.charCode == 117){
if (pausado == true){
pausado = false;
} else {
if (pausado == false){
pausado = true;
};
};
};
}
}
}//package TheShapes_fla
Section 49
//Triangu_inner_44 (TheShapes_fla.Triangu_inner_44)
package TheShapes_fla {
import fl.motion.*;
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public dynamic class Triangu_inner_44 extends MovieClip {
public var thisTimer:Timer;
public var boss_gfx_xml:XML;
public var boss_gfx_animator:Animator;
public var boss_gfx:MovieClip;
public var pausado;
public function Triangu_inner_44(){
addFrameScript(0, frame1);
}
public function Acciones(_arg1:TimerEvent){
if (pausado == false){
boss_gfx_animator.nextFrame();
};
}
function frame1(){
pausado = false;
boss_gfx_xml = <Motion duration="200" xmlns="fl.motion.*" xmlns:geom="flash.geom.*" xmlns:filters="flash.filters.*">
<source>
<Source frameRate="120" x="-188" y="0" scaleX="1" scaleY="1" rotation="0" elementType="movie clip" instanceName="boss_gfx" symbolName="Triangu_gfx">
<dimensions>
<geom:Rectangle left="-57.3" top="-49.85" width="114.65" height="99.7"/>
</dimensions>
<transformationPoint>
<geom:Point x="0.4997819450501526" y="0.5"/>
</transformationPoint>
</Source>
</source>
<Keyframe index="0" rotateDirection="cw" tweenScale="false" tweenSnap="true" tweenSync="true">
<tweens>
<SimpleEase ease="-1"/>
</tweens>
</Keyframe>
<Keyframe index="49" tweenScale="false" tweenSnap="true" tweenSync="true" x="179.15" rotation="180">
<tweens>
<SimpleEase ease="1"/>
</tweens>
</Keyframe>
<Keyframe index="99" tweenScale="false" tweenSnap="true" tweenSync="true" x="362" rotation="-15">
<tweens>
<SimpleEase ease="-1"/>
</tweens>
</Keyframe>
<Keyframe index="149" tweenScale="false" tweenSnap="true" tweenSync="true" x="181" rotation="180">
<tweens>
<SimpleEase ease="1"/>
</tweens>
</Keyframe>
<Keyframe index="199" rotateDirection="cw" tweenScale="false" tweenSnap="true" tweenSync="true" x="0" rotation="0">
<tweens>
<SimpleEase ease="-1"/>
</tweens>
</Keyframe>
</Motion>
;
boss_gfx_animator = new Animator(boss_gfx_xml, boss_gfx);
boss_gfx_animator.repeatCount = 0;
thisTimer = new Timer(20, 0);
thisTimer.addEventListener("timer", Acciones);
thisTimer.start();
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
}
public function reportKeyDown(_arg1:KeyboardEvent):void{
if (_arg1.charCode == 117){
if (pausado == true){
pausado = false;
} else {
if (pausado == false){
pausado = true;
};
};
};
}
}
}//package TheShapes_fla
Section 50
//Tween1_51 (TheShapes_fla.Tween1_51)
package TheShapes_fla {
import flash.display.*;
public dynamic class Tween1_51 extends MovieClip {
public var shapator_inner:MovieClip;
}
}//package TheShapes_fla
Section 51
//VanillaIntro_17 (TheShapes_fla.VanillaIntro_17)
package TheShapes_fla {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public dynamic class VanillaIntro_17 extends MovieClip {
public var btn_Vanilla:SimpleButton;
public var cargado;
public function VanillaIntro_17(){
addFrameScript(0, frame1, 34, frame35, 99, frame100, 149, frame150);
}
function frame150(){
cargado = 1;
stop();
}
public function OnLogoPress(_arg1:MouseEvent){
navigateToURL(new URLRequest("http://www.villavanilla.net"), "_blank");
}
function frame1(){
cargado = 0;
btn_Vanilla.addEventListener(MouseEvent.CLICK, OnLogoPress);
}
function frame100(){
btn_Vanilla.addEventListener(MouseEvent.CLICK, OnLogoPress);
}
function frame35(){
btn_Vanilla.addEventListener(MouseEvent.CLICK, OnLogoPress);
}
}
}//package TheShapes_fla
Section 52
//gameOverDialog (gameOverDialog)
package {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.text.*;
import flash.media.*;
public dynamic class gameOverDialog extends MovieClip {
public var txtBigCombo:TextField;
public var txtScore:TextField;
public var dyna_tag:TextField;
public var btnKongregate:SimpleButton;
public var btnBack:SimpleButton;
public var txttitle:TextField;
public function gameOverDialog(){
addFrameScript(0, frame1);
}
public function OnLogoPress(_arg1:MouseEvent){
navigateToURL(new URLRequest("http://www.kongregate.com/?gamereferral=Shape-a-licious"), "_blank");
}
function frame1(){
btnBack.addEventListener(MouseEvent.CLICK, onBackClick);
btnKongregate.addEventListener(MouseEvent.CLICK, OnLogoPress);
}
public function onBackClick(_arg1:MouseEvent):void{
SoundMixer.stopAll();
MovieClip(root).gotoAndPlay(5);
}
}
}//package
Section 53
//LoopB (LoopB)
package {
import flash.media.*;
public dynamic class LoopB extends Sound {
}
}//package
Section 54
//LoopBossOne (LoopBossOne)
package {
import flash.media.*;
public dynamic class LoopBossOne extends Sound {
}
}//package
Section 55
//LoopBSpeed (LoopBSpeed)
package {
import flash.media.*;
public dynamic class LoopBSpeed extends Sound {
}
}//package
Section 56
//LoopEasy (LoopEasy)
package {
import flash.media.*;
public dynamic class LoopEasy extends Sound {
}
}//package
Section 57
//LoopFanfare (LoopFanfare)
package {
import flash.media.*;
public dynamic class LoopFanfare extends Sound {
}
}//package
Section 58
//MochiAd (MochiAd)
package {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
public class MochiAd {
public static var adReady:Boolean;
public static function getVersion():String{
return ("2.1");
}
public static function fetchHighScores(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{
var _local4:MovieClip;
_local4 = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id});
if (!_local4){
return (false);
};
_local4.doSend(["fetchHighScores", _arg1], _arg2, _arg3);
return (true);
}
public static function _allowDomains(_arg1:String):String{
var _local2:String;
_local2 = _arg1.split("/")[2].split(":")[0];
Security.allowDomain("*");
Security.allowDomain(_local2);
Security.allowInsecureDomain("*");
Security.allowInsecureDomain(_local2);
return (_local2);
}
public static function 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 f:Function;
var g:Function;
var req:URLRequest;
var v:Object;
var options = _arg1;
DEFAULTS = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
if (!MochiAd._isNetworkAvailable()){
return (null);
};
if (clip._mochiad_loaded){
return (null);
};
depth = options.depth;
delete options.depth;
mc = createEmptyMovieClip(clip, "_mochiad", depth);
wh = MochiAd._getRes(options, clip);
options.res = ((wh[0] + "x") + wh[1]);
options.server = (options.server + options.id);
delete options.id;
clip._mochiad_loaded = true;
if (clip.loaderInfo.loaderURL.indexOf("http") == 0){
options.as3_swf = clip.loaderInfo.loaderURL;
};
lv = new URLVariables();
for (k in options) {
v = options[k];
if (!(v is Function)){
lv[k] = v;
};
};
server = lv.server;
delete lv.server;
hostname = _allowDomains(server);
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.lc = lc;
lv.lc = name;
lv.st = getTimer();
loader = new Loader();
f = function (_arg1:Object):void{
mc._mochiad_ctr_failed = true;
};
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f);
g = function (_arg1:Object):void{
MochiAd.unload(clip);
};
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g);
req = new URLRequest((server + ".swf"));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader.load(req);
mc.addChild(loader);
mc._mochiad_ctr = loader;
return (mc);
}
public static function 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{
this.clip.stop();
}, ad_finished:function ():void{
this.clip.play();
}};
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_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
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;
_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.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = (_arg1 - 250);
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
_local1 = this.parent._mochiad_ctr;
_local2 = (getTimer() - this.started);
_local3 = false;
if (!chk.showing){
_local4 = _local1.loaderInfo.bytesTotal;
if ((((_local4 > 0)) || (("number" == "undefined")))){
chk.showing = true;
chk.started = getTimer();
} else {
if (_local2 > chk.ad_timeout){
_local3 = true;
};
};
};
if ((((_local2 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){
_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];
};
};
_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++;
};
};
return (_local3);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function unload(_arg1:Object):Boolean{
if (((_arg1.clip) && (_arg1.clip._mochiad))){
_arg1 = _arg1.clip;
};
if (!_arg1._mochiad){
return (false);
};
if (_arg1._mochiad.onUnload){
_arg1._mochiad.onUnload();
};
_arg1.removeChild(_arg1._mochiad);
delete _arg1._mochiad_loaded;
delete _arg1._mochiad;
return (true);
}
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 sendHighScore(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{
var _local4:MovieClip;
_local4 = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id});
if (!_local4){
return (false);
};
_local4.doSend(["sendHighScore", _arg1], _arg2, _arg3);
return (true);
}
public static function _loadCommunicator(_arg1:Object):MovieClip{
var DEFAULTS:Object;
var clip:Object;
var clipname:String;
var server:String;
var depth:Number;
var mc:MovieClip;
var lv:URLVariables;
var k:String;
var lc:LocalConnection;
var name:String;
var req:URLRequest;
var loader:Loader;
var options = _arg1;
DEFAULTS = {com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
clipname = ("_mochiad_com_" + options.id);
if (!MochiAd._isNetworkAvailable()){
return (null);
};
if (clip[clipname]){
return (clip[clipname]);
};
server = (options.com_server + options.id);
MochiAd._allowDomains(server);
delete options.id;
delete options.com_server;
depth = options.depth;
delete options.depth;
mc = createEmptyMovieClip(clip, clipname, depth);
lv = new URLVariables();
for (k in options) {
lv[k] = options[k];
};
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.name = name;
mc.lc = lc;
lv.lc = name;
mc._id = 0;
mc._queue = [];
mc.rpcResult = function (_arg1:Object):void{
var _local3:Array;
var _local4:Array;
var _local5:Number;
var _local6:Object;
var _local7:Object;
_arg1 = parseInt(_arg1.toString());
_local3 = mc._callbacks[_arg1];
if (typeof(_local3) == "undefined"){
return;
};
delete mc._callbacks[_arg1];
_local4 = [];
_local5 = 2;
while (_local5 < _local3.length) {
_local4.push(_local3[_local5]);
_local5++;
};
_local5 = 1;
while (_local5 < arguments.length) {
_local4.push(arguments[_local5]);
_local5++;
};
_local6 = _local3[1];
_local7 = _local3[0];
if (((_local7) && ((typeof(_local6) == "string")))){
_local6 = _local7[_local6];
};
if (typeof(_local6) == "function"){
_local6.apply(_local7, _local4);
};
};
mc._didConnect = function (_arg1:String):void{
var _local2:Array;
var _local3:Function;
var _local4:Number;
var _local5:Array;
mc._endpoint = _arg1;
_local2 = mc._queue;
delete mc._queue;
_local3 = mc.doSend;
_local4 = 0;
while (_local4 < _local2.length) {
_local5 = _local2[_local4];
_local3.apply(this, _local5);
_local4++;
};
};
mc.doSend = function (_arg1:Array, _arg2:Object, _arg3:Object):void{
var _local5:Number;
var _local6:LocalConnection;
var _local7:Array;
var _local8:Number;
if (mc._endpoint == null){
_local7 = [];
_local8 = 0;
while (_local8 < arguments.length) {
_local7.push(arguments[_local8]);
_local8++;
};
mc._queue.push(_local7);
return;
};
mc._id = (mc._id + 1);
_local5 = mc._id;
mc._callbacks[_local5] = [_arg2, ((_arg3) || (_arg2))];
_local6 = new LocalConnection();
_local6.send(mc._endpoint, "rpc", _local5, _arg1);
};
mc._callbacks = {};
mc._callbacks[0] = [mc, "_didConnect"];
lv.st = getTimer();
req = new URLRequest((server + ".swf"));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader = new Loader();
loader.load(req);
mc.addChild(loader);
mc._mochiad_com = loader;
return (mc);
}
public static function showPreGameAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_msec:Number;
var ad_timeout:Number;
var fadeout_time:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var bar:MovieClip;
var bar_color:Number;
var bar_background:Number;
var bar_outline:Number;
var backing_mc:MovieClip;
var backing:Object;
var inside_mc:MovieClip;
var inside:Object;
var outline_mc:MovieClip;
var outline:Object;
var complete:Boolean;
var unloaded:Boolean;
var f:Function;
var r:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, ad_started:function ():void{
this.clip.stop();
}, ad_finished:function ():void{
this.clip.play();
}};
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_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
var fn:Function;
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);
bar.x = 10;
bar.y = (h - 20);
bar_color = options.color;
delete options.color;
bar_background = options.background;
delete options.background;
bar_outline = options.outline;
delete options.outline;
backing_mc = createEmptyMovieClip(bar, "_outline", 1);
backing = backing_mc.graphics;
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo((w - 20), 0);
backing.lineTo((w - 20), 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
inside_mc = createEmptyMovieClip(bar, "_inside", 2);
inside = inside_mc.graphics;
inside.beginFill(bar_color);
inside.moveTo(0, 0);
inside.lineTo((w - 20), 0);
inside.lineTo((w - 20), 10);
inside.lineTo(0, 10);
inside.lineTo(0, 0);
inside.endFill();
inside_mc.scaleX = 0;
outline_mc = createEmptyMovieClip(bar, "_outline", 3);
outline = outline_mc.graphics;
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo((w - 20), 0);
outline.lineTo((w - 20), 10);
outline.lineTo(0, 10);
outline.lineTo(0, 0);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number;
_local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
complete = false;
unloaded = false;
f = function (_arg1:Event):void{
complete = true;
if (unloaded){
MochiAd.unload(clip);
};
};
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
if ((clip.root is MovieClip)){
r = (clip.root as MovieClip);
if (r.framesLoaded >= r.totalFrames){
complete = true;
};
};
mc.unloadAd = function ():void{
unloaded = true;
if (complete){
MochiAd.unload(clip);
};
};
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = _arg1;
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Object;
var _local3:Number;
var _local4:Boolean;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Object;
var _local10:Number;
var _local11:Number;
if (!this.parent.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 = ((100 * _local6) / _local5);
_local8 = ((100 * _local3) / chk.ad_msec);
_local9 = this._mochiad_bar._inside;
_local10 = Math.min(100, Math.min(((_local7) || (0)), _local8));
_local10 = Math.max(this.last_pcnt, _local10);
this.last_pcnt = _local10;
_local9.scaleX = (_local10 * 0.01);
if (!chk.showing){
_local11 = _local2.loaderInfo.bytesTotal;
if ((((_local11 > 0)) || (("number" == "undefined")))){
chk.showing = true;
chk.started = getTimer();
} else {
if (_local3 > chk.ad_timeout){
_local4 = true;
};
};
};
if ((((_local3 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){
_local4 = true;
};
if (((complete) && (_local4))){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function showPreloaderAd(_arg1:Object):void{
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 {
mc.removeEventListener(Event.ENTER_FRAME, f);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package
Section 59
//MochiBot (MochiBot)
package {
import flash.display.*;
import flash.net.*;
import flash.system.*;
public dynamic class MochiBot extends Sprite {
public static function track(_arg1:Sprite, _arg2:String):MochiBot{
var _local3:MochiBot;
var _local4:String;
var _local5:URLVariables;
var _local6:String;
var _local7:URLRequest;
var _local8:Loader;
if (Security.sandboxType == "localWithFile"){
return (null);
};
_local3 = new (MochiBot);
_arg1.addChild(_local3);
Security.allowDomain("*");
Security.allowInsecureDomain("*");
_local4 = "http://core.mochibot.com/my/core.swf";
_local5 = new URLVariables();
_local5["sb"] = Security.sandboxType;
_local5["v"] = Capabilities.version;
_local5["swfid"] = _arg2;
_local5["mv"] = "8";
_local5["fv"] = "9";
_local6 = _local3.root.loaderInfo.loaderURL;
if (_local6.indexOf("http") == 0){
_local5["url"] = _local6;
} else {
_local5["url"] = "local";
};
_local7 = new URLRequest(_local4);
_local7.contentType = "application/x-www-form-urlencoded";
_local7.method = URLRequestMethod.POST;
_local7.data = _local5;
_local8 = new Loader();
_local3.addChild(_local8);
_local8.load(_local7);
return (_local3);
}
}
}//package
Section 60
//rightPlosion (rightPlosion)
package {
import flash.display.*;
public dynamic class rightPlosion extends MovieClip {
public function rightPlosion(){
addFrameScript(50, frame51);
}
function frame51(){
stop();
}
}
}//package
Section 61
//wrongPlosion (wrongPlosion)
package {
import flash.display.*;
public dynamic class wrongPlosion extends MovieClip {
public function wrongPlosion(){
addFrameScript(24, frame25);
}
function frame25(){
stop();
}
}
}//package