Section 1
//KongregateEvent (com.kongregate.as3.client.events.KongregateEvent)
package com.kongregate.as3.client.events {
import flash.events.*;
public class KongregateEvent extends Event {
public static const COMPLETE:String = "component_api_available";
public function KongregateEvent(_arg1:String){
super(_arg1);
}
}
}//package com.kongregate.as3.client.events
Section 2
//AbstractShadowService (com.kongregate.as3.client.services.AbstractShadowService)
package com.kongregate.as3.client.services {
import flash.events.*;
public class AbstractShadowService extends EventDispatcher {
protected function alert(_arg1:String, _arg2:String, _arg3="", _arg4:String=""):void{
trace(((((((("Kongregate API: " + _arg1) + ".") + _arg2) + "(") + _arg3) + ") ") + _arg4));
}
}
}//package com.kongregate.as3.client.services
Section 3
//HighScoreServiceShadow (com.kongregate.as3.client.services.HighScoreServiceShadow)
package com.kongregate.as3.client.services {
public class HighScoreServiceShadow extends AbstractShadowService implements IHighScoreServices {
private var mode:String;
public function HighScoreServiceShadow(){
mode = "";
}
public function submit(_arg1:Number, _arg2:String=null):void{
alert("IHighScoreServices", "submit", arguments);
}
public function connect():Boolean{
alert("IKongregateServices", "connect");
return (true);
}
public function requestList(_arg1:Function):void{
alert("IHighScoreServices", "requestList", "", (("[Mode: " + mode) + "]"));
_arg1({success:false});
}
public function setMode(_arg1:String):void{
alert("IHighScoreServices", "setMode", arguments);
this.mode = _arg1;
}
}
}//package com.kongregate.as3.client.services
Section 4
//IHighScoreServices (com.kongregate.as3.client.services.IHighScoreServices)
package com.kongregate.as3.client.services {
public interface IHighScoreServices {
function setMode(_arg1:String):void;
function submit(_arg1:Number, _arg2:String=null):void;
function requestList(_arg1:Function):void;
}
}//package com.kongregate.as3.client.services
Section 5
//IKongregateServices (com.kongregate.as3.client.services.IKongregateServices)
package com.kongregate.as3.client.services {
import flash.events.*;
public interface IKongregateServices extends IEventDispatcher {
function getPlayerInfo(_arg1:Function):void;
function connect(_arg1:Number=-1):Boolean;
}
}//package com.kongregate.as3.client.services
Section 6
//IStatServices (com.kongregate.as3.client.services.IStatServices)
package com.kongregate.as3.client.services {
public interface IStatServices {
function submitArray(_arg1:Array):void;
function submit(_arg1:String, _arg2:Number):void;
}
}//package com.kongregate.as3.client.services
Section 7
//IUserServices (com.kongregate.as3.client.services.IUserServices)
package com.kongregate.as3.client.services {
public interface IUserServices {
function getName():String;
function getPlayerInfo(_arg1:Function):void;
}
}//package com.kongregate.as3.client.services
Section 8
//KongregateServiceShadow (com.kongregate.as3.client.services.KongregateServiceShadow)
package com.kongregate.as3.client.services {
public class KongregateServiceShadow extends AbstractShadowService implements IKongregateServices {
public function getName():String{
alert("IKongregateServices", "getName");
return ("Guest");
}
public function connect(_arg1:Number=-1):Boolean{
alert("IKongregateServices", "connect", arguments);
return (true);
}
public function getPlayerInfo(_arg1:Function):void{
alert("IKongregateServices", "getPlayerInfo");
_arg1(new Object());
}
}
}//package com.kongregate.as3.client.services
Section 9
//StatServiceShadow (com.kongregate.as3.client.services.StatServiceShadow)
package com.kongregate.as3.client.services {
public class StatServiceShadow extends AbstractShadowService implements IStatServices {
public function submitArray(_arg1:Array):void{
alert("IStatServices", "submitArray", arguments);
}
public function submit(_arg1:String, _arg2:Number):void{
alert("IStatServices", "submitStat", arguments);
}
}
}//package com.kongregate.as3.client.services
Section 10
//UserServiceShadow (com.kongregate.as3.client.services.UserServiceShadow)
package com.kongregate.as3.client.services {
public class UserServiceShadow extends AbstractShadowService implements IUserServices {
public function getName():String{
alert("UserService", "getName");
return ("Guest");
}
public function getPlayerInfo(_arg1:Function):void{
alert("UserService", "getPlayerInfo");
_arg1({isGuest:true, name:"Guest", points:0, level:0, isMode:false, isAdmin:false, isDeveloper:false, avatarPath:"", chatAvatarPath:""});
}
}
}//package com.kongregate.as3.client.services
Section 11
//IAPIBootstrap (com.kongregate.as3.client.IAPIBootstrap)
package com.kongregate.as3.client {
import flash.events.*;
import flash.display.*;
public interface IAPIBootstrap {
function init(_arg1:Event=null, _arg2:Stage=null):void;
function hideLog():void;
function showLog(_arg1:int=0):void;
}
}//package com.kongregate.as3.client
Section 12
//KongregateAPI (com.kongregate.as3.client.KongregateAPI)
package com.kongregate.as3.client {
import flash.events.*;
import flash.display.*;
import com.kongregate.as3.client.services.*;
import com.kongregate.as3.client.events.*;
import flash.utils.*;
import flash.system.*;
import flash.net.*;
import flash.errors.*;
public class KongregateAPI extends Sprite {
private const VERSION:Number = 1;
private var loader:Loader;
private var loadedDomain:ApplicationDomain;
private static const CLASS_USER:String = "com.kongregate.as3.client.services.UserServices";
private static const CLASS_STATS:String = "com.kongregate.as3.client.services.StatServices";
private static const CLASS_SERVICES:String = "com.kongregate.as3.client.services.KongregateServices";
private static const CLASS_SCORES:String = "com.kongregate.as3.client.services.HighScoreServices";
private static const DEBUG_API_URL:String = "//Linuxpc/kongregate/public/flash/API_AS3.swf";
private static var _connected:Boolean;
private static var kUser:IUserServices;
private static var _loaded:Boolean;
private static var kServices:IKongregateServices;
private static var kScores:IHighScoreServices;
private static var mInstance:KongregateAPI;
private static var kStats:IStatServices;
private static var kAPI:IAPIBootstrap;
public function KongregateAPI(){
if (mInstance != null){
throw (new Error("Warning: KongregateAPI has been added to stage more than once or accessed improperly. Use getInstance() or a stage reference to access."));
};
mInstance = this;
this.addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);
}
public function get loaded():Boolean{
return (_loaded);
}
public function get connected():Boolean{
return (_connected);
}
private function alertConnected(_arg1:TimerEvent=null):void{
var _local2:KongregateEvent;
var _local3:Boolean;
_local2 = new KongregateEvent(KongregateEvent.COMPLETE);
_local3 = this.dispatchEvent(_local2);
}
private function init(_arg1:Event):void{
var _local2:Object;
var _local3:String;
var _local4:URLRequest;
var _local5:LoaderContext;
this.removeEventListener(Event.ADDED_TO_STAGE, init);
_loaded = false;
_connected = false;
_local2 = LoaderInfo(root.loaderInfo).parameters;
_local3 = _local2.api_path;
if (_local3 == null){
trace("Alert: Kongregate API could not be loaded, due to local testing. API will load when the game is uploaded.");
createShadowServices();
return;
};
Security.allowDomain("*.kongregate.com");
Security.allowDomain("kongregatetrunk.com");
_local4 = new URLRequest(_local3);
_local5 = new LoaderContext(false);
_local5.applicationDomain = ApplicationDomain.currentDomain;
_local5.securityDomain = SecurityDomain.currentDomain;
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
loader.load(_local4, _local5);
}
public function get api():IAPIBootstrap{
return (kAPI);
}
private function loadComplete(_arg1:Event):void{
getServices();
}
public function get scores():IHighScoreServices{
return (kScores);
}
private function ioErrorHandler(_arg1:IOErrorEvent):void{
throw (new IOError(("API file not found. " + _arg1)));
}
public function get services():IKongregateServices{
return (kServices);
}
public function get stats():IStatServices{
return (kStats);
}
private function createShadowServices():void{
var _local1:Timer;
trace(">>> Kongregate Shadow Services instantiated for local development..");
kServices = new KongregateServiceShadow();
kScores = new HighScoreServiceShadow();
kStats = new StatServiceShadow();
kUser = new UserServiceShadow();
_local1 = new Timer(200, 1);
_local1.addEventListener(TimerEvent.TIMER_COMPLETE, alertConnected);
_local1.start();
_connected = true;
}
public function get user():IUserServices{
return (kUser);
}
private function getServices():void{
var _local1:ApplicationDomain;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local1 = ApplicationDomain.currentDomain;
kAPI = IAPIBootstrap(loader.getChildAt(0));
this.addChild(loader);
_local2 = _local1.getDefinition(CLASS_SERVICES);
trace(_local2);
kServices = _local2.getInstance();
_local3 = _local1.getDefinition(CLASS_SCORES);
kScores = _local3.getInstance();
_local4 = _local1.getDefinition(CLASS_STATS);
kStats = _local4.getInstance();
_local5 = _local1.getDefinition(CLASS_USER);
kUser = _local5.getInstance();
kServices.connect(VERSION);
_loaded = true;
_connected = true;
alertConnected();
}
public static function getInstance():KongregateAPI{
if (!mInstance){
throw (new IllegalOperationError("You must add the Kongregate API component to the stage before attempting to access it."));
};
return (mInstance);
}
}
}//package com.kongregate.as3.client
Section 13
//Regular (fl.transitions.easing.Regular)
package fl.transitions.easing {
public class Regular {
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((_arg3 * _arg1) * _arg1) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2));
};
--_arg1;
return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2));
}
}
}//package fl.transitions.easing
Section 14
//Strong (fl.transitions.easing.Strong)
package fl.transitions.easing {
public class Strong {
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2));
}
}
}//package fl.transitions.easing
Section 15
//Tween (fl.transitions.Tween)
package fl.transitions {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Tween extends EventDispatcher {
private var _position:Number;// = NAN
public var prevTime:Number;// = NAN
public var prevPos:Number;// = NAN
public var isPlaying:Boolean;// = false
private var _fps:Number;// = NAN
private var _time:Number;// = NAN
public var begin:Number;// = NAN
private var _finish:Number;// = NAN
public var change:Number;// = NAN
public var looping:Boolean;// = false
private var _intervalID:uint;// = 0
public var func:Function;
private var _timer:Timer;// = null
private var _startTime:Number;// = NAN
public var prop:String;// = ""
private var _duration:Number;// = NAN
public var obj:Object;// = null
public var useSeconds:Boolean;// = false
protected static var _mc:MovieClip = new MovieClip();
public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){
this.func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
};
super();
if (!arguments.length){
return;
};
this.obj = _arg1;
this.prop = _arg2;
this.begin = _arg4;
this.position = _arg4;
this.duration = _arg6;
this.useSeconds = _arg7;
if ((_arg3 is Function)){
this.func = _arg3;
};
this.finish = _arg5;
this._timer = new Timer(100);
this.start();
}
public function continueTo(_arg1:Number, _arg2:Number):void{
this.begin = this.position;
this.finish = _arg1;
if (!isNaN(_arg2)){
this.duration = _arg2;
};
this.start();
}
protected function startEnterFrame():void{
var _local1:Number;
if (isNaN(this._fps)){
_mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true);
} else {
_local1 = (1000 / this._fps);
this._timer.delay = _local1;
this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true);
this._timer.start();
};
this.isPlaying = true;
}
public function stop():void{
this.stopEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position));
}
private function fixTime():void{
if (this.useSeconds){
this._startTime = (getTimer() - (this._time * 1000));
};
}
public function set FPS(_arg1:Number):void{
var _local2:Boolean = this.isPlaying;
this.stopEnterFrame();
this._fps = _arg1;
if (_local2){
this.startEnterFrame();
};
}
public function get finish():Number{
return ((this.begin + this.change));
}
public function get duration():Number{
return (this._duration);
}
protected function stopEnterFrame():void{
if (isNaN(this._fps)){
_mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame);
} else {
this._timer.stop();
};
this.isPlaying = false;
}
public function set time(_arg1:Number):void{
this.prevTime = this._time;
if (_arg1 > this.duration){
if (this.looping){
this.rewind((_arg1 - this._duration));
this.update();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position));
} else {
if (this.useSeconds){
this._time = this._duration;
this.update();
};
this.stop();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position));
};
} else {
if (_arg1 < 0){
this.rewind();
this.update();
} else {
this._time = _arg1;
this.update();
};
};
}
public function getPosition(_arg1:Number=NaN):Number{
if (isNaN(_arg1)){
_arg1 = this._time;
};
return (this.func(_arg1, this.begin, this.change, this._duration));
}
public function set finish(_arg1:Number):void{
this.change = (_arg1 - this.begin);
}
public function set duration(_arg1:Number):void{
this._duration = ((_arg1)<=0) ? Infinity : _arg1;
}
public function get position():Number{
return (this.getPosition(this._time));
}
public function setPosition(_arg1:Number):void{
this.prevPos = this._position;
if (this.prop.length){
this.obj[this.prop] = (this._position = _arg1);
};
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position));
}
public function resume():void{
this.fixTime();
this.startEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position));
}
public function fforward():void{
this.time = this._duration;
this.fixTime();
}
protected function onEnterFrame(_arg1:Event):void{
this.nextFrame();
}
public function yoyo():void{
this.continueTo(this.begin, this.time);
}
public function nextFrame():void{
if (this.useSeconds){
this.time = ((getTimer() - this._startTime) / 1000);
} else {
this.time = (this._time + 1);
};
}
protected function timerHandler(_arg1:TimerEvent):void{
this.nextFrame();
_arg1.updateAfterEvent();
}
public function get FPS():Number{
return (this._fps);
}
public function rewind(_arg1:Number=0):void{
this._time = _arg1;
this.fixTime();
this.update();
}
public function set position(_arg1:Number):void{
this.setPosition(_arg1);
}
public function get time():Number{
return (this._time);
}
private function update():void{
this.setPosition(this.getPosition(this._time));
}
public function start():void{
this.rewind();
this.startEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position));
}
public function prevFrame():void{
if (!this.useSeconds){
this.time = (this._time - 1);
};
}
}
}//package fl.transitions
Section 16
//TweenEvent (fl.transitions.TweenEvent)
package fl.transitions {
import flash.events.*;
public class TweenEvent extends Event {
public var position:Number;// = NAN
public var time:Number;// = NAN
public static const MOTION_START:String = "motionStart";
public static const MOTION_STOP:String = "motionStop";
public static const MOTION_LOOP:String = "motionLoop";
public static const MOTION_CHANGE:String = "motionChange";
public static const MOTION_FINISH:String = "motionFinish";
public static const MOTION_RESUME:String = "motionResume";
public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){
super(_arg1, _arg4, _arg5);
this.time = _arg2;
this.position = _arg3;
}
override public function clone():Event{
return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable));
}
}
}//package fl.transitions
Section 17
//Fx1 (fxs.Fx1)
package fxs {
import flash.media.*;
public class Fx1 extends Sound {
public function Fx1():void{
}
}
}//package fxs
Section 18
//Fx2 (fxs.Fx2)
package fxs {
import flash.media.*;
public class Fx2 extends Sound {
public function Fx2():void{
}
}
}//package fxs
Section 19
//Fx3 (fxs.Fx3)
package fxs {
import flash.media.*;
public class Fx3 extends Sound {
public function Fx3():void{
}
}
}//package fxs
Section 20
//Fx4 (fxs.Fx4)
package fxs {
import flash.media.*;
public class Fx4 extends Sound {
public function Fx4():void{
}
}
}//package fxs
Section 21
//Fx5 (fxs.Fx5)
package fxs {
import flash.media.*;
public class Fx5 extends Sound {
public function Fx5():void{
}
}
}//package fxs
Section 22
//SavingSymbol_32 (game_fla.SavingSymbol_32)
package game_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.system.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.errors.*;
import flash.filters.*;
import flash.ui.*;
import flash.accessibility.*;
public dynamic class SavingSymbol_32 extends MovieClip {
public function SavingSymbol_32(){
addFrameScript(49, frame50);
}
function frame50(){
stop();
}
}
}//package game_fla
Section 23
//SoundLoop1 (loops.SoundLoop1)
package loops {
import flash.media.*;
public class SoundLoop1 extends Sound {
public function SoundLoop1():void{
}
}
}//package loops
Section 24
//SoundLoop10 (loops.SoundLoop10)
package loops {
import flash.media.*;
public class SoundLoop10 extends Sound {
public function SoundLoop10():void{
}
}
}//package loops
Section 25
//SoundLoop11 (loops.SoundLoop11)
package loops {
import flash.media.*;
public class SoundLoop11 extends Sound {
public function SoundLoop11():void{
}
}
}//package loops
Section 26
//SoundLoop13 (loops.SoundLoop13)
package loops {
import flash.media.*;
public class SoundLoop13 extends Sound {
public function SoundLoop13():void{
}
}
}//package loops
Section 27
//SoundLoop14 (loops.SoundLoop14)
package loops {
import flash.media.*;
public class SoundLoop14 extends Sound {
public function SoundLoop14():void{
}
}
}//package loops
Section 28
//SoundLoop15 (loops.SoundLoop15)
package loops {
import flash.media.*;
public class SoundLoop15 extends Sound {
public function SoundLoop15():void{
}
}
}//package loops
Section 29
//SoundLoop16 (loops.SoundLoop16)
package loops {
import flash.media.*;
public class SoundLoop16 extends Sound {
public function SoundLoop16():void{
}
}
}//package loops
Section 30
//SoundLoop17 (loops.SoundLoop17)
package loops {
import flash.media.*;
public class SoundLoop17 extends Sound {
public function SoundLoop17():void{
}
}
}//package loops
Section 31
//SoundLoop2 (loops.SoundLoop2)
package loops {
import flash.media.*;
public class SoundLoop2 extends Sound {
public function SoundLoop2():void{
}
}
}//package loops
Section 32
//SoundLoop3 (loops.SoundLoop3)
package loops {
import flash.media.*;
public class SoundLoop3 extends Sound {
public function SoundLoop3():void{
}
}
}//package loops
Section 33
//SoundLoop4 (loops.SoundLoop4)
package loops {
import flash.media.*;
public class SoundLoop4 extends Sound {
public function SoundLoop4():void{
}
}
}//package loops
Section 34
//SoundLoop5 (loops.SoundLoop5)
package loops {
import flash.media.*;
public class SoundLoop5 extends Sound {
public function SoundLoop5():void{
}
}
}//package loops
Section 35
//SoundLoop6 (loops.SoundLoop6)
package loops {
import flash.media.*;
public class SoundLoop6 extends Sound {
public function SoundLoop6():void{
}
}
}//package loops
Section 36
//Alertbox (Alertbox)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.text.*;
public class Alertbox extends MovieClip {
public var body:TextField;
public var data:Object;
public var title:TextField;
public var continueButton:MovieClip;
public static var CONTINUE:String = "alertboxContinue";
public function Alertbox():void{
}
public function init(_arg1:Object):void{
this.data = _arg1;
_arg1.soundLoopsChannel.soundTransform = new SoundTransform(((this.data.volume >= 0.9)) ? 0.4 : 0, 0);
title.text = _arg1.levels[_arg1.currentLevel].targets[_arg1.currentLevelTarget].title;
body.htmlText = ((((((("<b><br><font color=\"#cc0000\">No Score!</font></b>" + "<br>") + "<br>") + "<b>Did you know?</b>") + "<br>") + "You can also play games in real life!") + "<br>") + "The game has paused");
body.y = (title.y + title.height);
continueButton.buttonMode = true;
continueButton.addEventListener(MouseEvent.CLICK, continueButtonClickHandler);
}
public function continueButtonClickHandler(_arg1:MouseEvent):void{
data.soundLoopsChannel.soundTransform = new SoundTransform(this.data.volume, 0);
continueButton.removeEventListener(MouseEvent.CLICK, continueButtonClickHandler);
dispatchEvent(new Event(CONTINUE));
}
public function dispose():void{
data = null;
}
}
}//package
Section 37
//Board (Board)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.utils.*;
import fxs.*;
import flash.text.*;
import flash.filters.*;
import flash.ui.*;
public class Board extends MovieClip {
private var outTweenTimerbar:Tween;
private var inTweenBottom:Tween;
private var inTweenTimerbar:Tween;
private var inTweenTargetTextY:Tween;
public var statusbox:Statusbox;
public var blurTimer:Timer;
public var fx1:Fx1;
public var fx2:Fx2;
public var fx3:Fx3;
public var fx5:Fx5;
public var fx4:Fx4;
public var bottom:MovieClip;
public var timerbar:Timerbar;
private var inTweenTop:Tween;
private var inTweenInfobox:Tween;
public var data:Object;
private var outTweenTargetTextY:Tween;
private var outTweenBottom:Tween;
private var outTweenAlertbox:Tween;
public var top:MovieClip;
private var outTweenScorebox:Tween;
private var outTweenTop:Tween;
private var inTweenScorebox:Tween;
private var outTweenInfobox:Tween;
private var outTweenStatusbox:Tween;
public var infobox:Infobox;
public var map:Map;
public var targetText:TargetText;
public var alertbox:Alertbox;
private var inTweenStatusbox:Tween;
public var fxYeahs:ExtendedArray;
private var inTweenAlertbox:Tween;
public var scorebox:Scorebox;
private var inTweenTargetTextAlpha:Tween;
public static var START:String = "boardStart";
public static var CONTINUE:String = "boardContinue";
public static var END:String = "boardEnd";
public static var WIN:String = "boardWin";
public function Board():void{
}
public function removeMouseListeners():void{
map.removeEventListener(Map.MAP_CLICK, mapClickHandler);
}
public function blurOff(_arg1:TimerEvent):void{
var _local2:BlurFilter = new BlurFilter();
_local2.blurX = 0;
_local2.blurY = 0;
_local2.quality = BitmapFilterQuality.HIGH;
map.world.worldShape.filters = [_local2];
map.world.worldBorders.filters = [_local2];
blurTimer.removeEventListener(TimerEvent.TIMER, blurOn);
blurTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, blurOff);
blurTimer.stop();
blurTimer = null;
}
public function init(_arg1:Object):void{
this.data = _arg1;
fx1 = new Fx1();
fx2 = new Fx2();
fx3 = new Fx3();
fx4 = new Fx4();
fx5 = new Fx5();
fxYeahs = new ExtendedArray();
fxYeahs.push(fx3);
fxYeahs.push(fx4);
fxYeahs.push(fx4);
setTimeout(timerStart, 50);
_arg1.levels[_arg1.currentLevel].targets.shuffle();
map.init(_arg1);
map.cacheAsBitmap = true;
inTween();
}
public function addMouseListeners():void{
map.addEventListener(Map.MAP_CLICK, mapClickHandler);
}
public function timerStart():void{
fxYeahs.shuffle();
map.addListeners();
addMouseListeners();
addTimerListeners();
statusbox.init(data);
scorebox.init(data);
var _local1:String = data.levels[data.currentLevel].targets[data.currentLevelTarget].title;
targetText.init(_local1);
targetText.x = 400;
inTweenTargetTextY = new Tween(targetText, "y", Regular.easeOut, -25, 50, 10);
inTweenTargetTextAlpha = new Tween(targetText, "alpha", Regular.easeOut, 0, 1, 5);
addChild(targetText);
dispatchEvent(new Event(START));
timerbar.init(data);
}
public function removeTimerListeners():void{
timerbar.removeEventListener(Timerbar.TIMER_FINISH, timerbarHandler);
timerbar.removeEventListener(Timerbar.TIMER_FREEZE, timerbarHandler);
}
public function blurOn(_arg1:TimerEvent):void{
var _local2:BlurFilter = new BlurFilter();
_local2.blurX = 4;
_local2.blurY = 4;
_local2.quality = BitmapFilterQuality.LOW;
map.world.worldShape.filters = [_local2];
map.world.worldBorders.filters = [_local2];
}
public function toogleSoundHandler(_arg1:Event):void{
game.instance.volume = (data.volume = ((data.volume <= 0)) ? 0.9 : 0);
data.soundLoopsChannel.soundTransform = new SoundTransform(data.volume, 0);
}
public function mapClickHandler(_arg1:Event):void{
removeMouseListeners();
map.removeListeners();
timerbar.freeze();
fx1.play();
removeTimerListeners();
}
public function outTween():void{
outTweenStatusbox = new Tween(statusbox, "y", Regular.easeOut, statusbox.y, (statusbox.y - statusbox.height), 10);
outTweenScorebox = new Tween(scorebox, "y", Regular.easeOut, scorebox.y, (scorebox.y - scorebox.height), 10);
outTweenTop = new Tween(top, "y", Regular.easeOut, top.y, (top.y - top.height), 10);
outTweenTimerbar = new Tween(timerbar, "y", Regular.easeOut, timerbar.y, (timerbar.y + top.height), 10);
outTweenBottom = new Tween(bottom, "y", Regular.easeOut, bottom.y, (bottom.y + bottom.height), 10);
outTweenTargetTextY = new Tween(targetText, "y", Regular.easeOut, 50, -25, 10);
}
public function dispose():void{
fx1 = null;
fx2 = null;
fx3 = null;
fx4 = null;
fx5 = null;
fxYeahs = null;
inTweenAlertbox = null;
inTweenStatusbox = null;
inTweenScorebox = null;
inTweenTop = null;
inTweenBottom = null;
inTweenTimerbar = null;
outTweenAlertbox = null;
outTweenStatusbox = null;
outTweenScorebox = null;
outTweenTop = null;
outTweenTimerbar = null;
outTweenBottom = null;
inTweenTargetTextY = null;
inTweenTargetTextAlpha = null;
outTweenTargetTextY = null;
timerbar.removeEventListener(Timerbar.TOOGLE_SOUND, toogleSoundHandler);
timerbar.removeEventListener(Timerbar.TIMER_FINISH, timerbarHandler);
timerbar.removeEventListener(Timerbar.TIMER_FREEZE, timerbarHandler);
map.removeEventListener(MouseEvent.CLICK, mapClickHandler);
}
public function nextHandler(_arg1:Event):void{
data.currentLevelTarget++;
if (inTweenInfobox){
inTweenInfobox.stop();
inTweenInfobox = null;
};
if (infobox){
infobox.removeEventListener(Infobox.NEXT, nextHandler);
infobox.dispose();
removeChild(infobox);
infobox = null;
};
if (inTweenAlertbox){
inTweenAlertbox.stop();
inTweenAlertbox = null;
};
if (alertbox){
alertbox.removeEventListener(Alertbox.CONTINUE, nextHandler);
alertbox.dispose();
removeChild(alertbox);
alertbox = null;
};
map.dispose();
if (data.currentLevelTarget >= data.levels[data.currentLevel].maxTargets){
outTween();
if (data.levels[data.currentLevel].minScore <= data.levels[data.currentLevel].score){
data.currentLevel++;
data.currentLevelTarget = 0;
if (data.currentLevel >= data.levels.length){
setTimeout(dispatchEvent, 300, new Event(WIN));
} else {
setTimeout(dispatchEvent, 300, new Event(CONTINUE));
};
} else {
setTimeout(dispatchEvent, 300, new Event(END));
};
return;
};
map.init(data);
setTimeout(timerStart, 50);
}
public function inTween():void{
inTweenStatusbox = new Tween(statusbox, "y", Regular.easeOut, (statusbox.y - statusbox.height), statusbox.y, 10);
inTweenScorebox = new Tween(scorebox, "y", Regular.easeOut, (scorebox.y - scorebox.height), scorebox.y, 10);
inTweenTop = new Tween(top, "y", Regular.easeOut, (top.y - top.height), top.y, 10);
inTweenTimerbar = new Tween(timerbar, "y", Regular.easeOut, (timerbar.y + bottom.height), timerbar.y, 10);
inTweenBottom = new Tween(bottom, "y", Regular.easeOut, (bottom.y + bottom.height), bottom.y, 10);
}
public function timerbarHandler(_arg1:Event):void{
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:int;
inTweenTargetTextY = null;
inTweenTargetTextAlpha = null;
switch (_arg1.type){
case Timerbar.TIMER_FINISH:
_local2 = data.levels[data.currentLevel].targets[data.currentLevelTarget].x;
_local3 = data.levels[data.currentLevel].targets[data.currentLevelTarget].y;
map.theRedFlag(_local2, _local3);
alertbox = new Alertbox();
alertbox.init(data);
inTweenAlertbox = new Tween(alertbox, "y", Strong.easeOut, 200, 300, 10);
if (data.levels[data.currentLevel].targets[data.currentLevelTarget].x > 400){
alertbox.x = 200;
} else {
alertbox.x = 600;
};
alertbox.addEventListener(Alertbox.CONTINUE, nextHandler);
addChild(alertbox);
removeMouseListeners();
map.removeListeners();
removeTimerListeners();
fx1.play();
map.removeChild(map.cursor);
Mouse.show();
break;
case Timerbar.TIMER_FREEZE:
_local2 = data.levels[data.currentLevel].targets[data.currentLevelTarget].x;
_local3 = data.levels[data.currentLevel].targets[data.currentLevelTarget].y;
map.theRedFlag(_local2, _local3);
_local2 = map.cursorPositionOnClick.x;
_local3 = map.cursorPositionOnClick.y;
map.theGreenFlag(_local2, _local3);
_local4 = timerbar.timer.currentCount;
_local5 = map.distance.radius;
_local6 = Math.round(((timerbar.timer.repeatCount - _local4) / 40));
_local7 = (((100 - _local5) < 0)) ? 0 : (100 - _local5);
_local8 = 1;
if (_local5 <= 1){
blurTimer = new Timer(1, 10);
blurTimer.addEventListener(TimerEvent.TIMER, blurOn);
blurTimer.addEventListener(TimerEvent.TIMER_COMPLETE, blurOff);
blurTimer.start();
_local8 = 5;
data.soundFxsChannel = fx2.play();
data.soundFxsChannel.soundTransform = new SoundTransform(0.75, 0);
} else {
if (_local5 <= 6){
data.soundFxsChannel = fxYeahs[Math.round((Math.random() * 2))].play();
data.soundFxsChannel.soundTransform = new SoundTransform(0.75, 0);
_local8 = 3;
} else {
_local8 = 1;
};
};
data.levels[data.currentLevel].targets[data.currentLevelTarget].time = _local4;
data.levels[data.currentLevel].targets[data.currentLevelTarget].radius = _local5;
data.levels[data.currentLevel].targets[data.currentLevelTarget].bonusTime = _local6;
data.levels[data.currentLevel].targets[data.currentLevelTarget].scoreRadius = _local7;
data.levels[data.currentLevel].targets[data.currentLevelTarget].bonusRadius = _local8;
data.levels[data.currentLevel].score = (data.levels[data.currentLevel].score + (_local6 + (_local7 * _local8)));
data.score = (data.score + (_local6 + (_local7 * _local8)));
statusbox.init(data);
scorebox.init(data);
infobox = new Infobox();
infobox.init(data);
inTweenInfobox = new Tween(infobox, "y", Strong.easeOut, 200, 300, 10);
if (Math.abs((map.cursorPositionOnClick.x - data.levels[data.currentLevel].targets[data.currentLevelTarget].x)) > 280){
infobox.x = ((map.cursorPositionOnClick.x > data.levels[data.currentLevel].targets[data.currentLevelTarget].x)) ? (data.levels[data.currentLevel].targets[data.currentLevelTarget].x + (Math.abs((map.cursorPositionOnClick.x - data.levels[data.currentLevel].targets[data.currentLevelTarget].x)) / 2)) : (map.cursorPositionOnClick.x + (Math.abs((map.cursorPositionOnClick.x - data.levels[data.currentLevel].targets[data.currentLevelTarget].x)) / 2));
} else {
if ((map.cursorPositionOnClick.x + data.levels[data.currentLevel].targets[data.currentLevelTarget].x) < 800){
infobox.x = 600;
} else {
if ((map.cursorPositionOnClick.x + data.levels[data.currentLevel].targets[data.currentLevelTarget].x) > 800){
infobox.x = 200;
} else {
if ((((data.levels[data.currentLevel].targets[data.currentLevelTarget].x >= 400)) && ((map.cursorPositionOnClick.x >= 400)))){
infobox.x = 200;
} else {
if ((((data.levels[data.currentLevel].targets[data.currentLevelTarget].x <= 400)) && ((map.cursorPositionOnClick.x <= 400)))){
infobox.x = 600;
} else {
infobox.x = 0;
};
};
};
};
};
infobox.addEventListener(Infobox.NEXT, nextHandler);
addChild(infobox);
break;
};
}
public function addTimerListeners():void{
timerbar.addEventListener(Timerbar.TIMER_FINISH, timerbarHandler);
timerbar.addEventListener(Timerbar.TIMER_FREEZE, timerbarHandler);
timerbar.addEventListener(Timerbar.TOOGLE_SOUND, toogleSoundHandler);
}
}
}//package
Section 38
//Distance (Distance)
package {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Distance extends MovieClip {
public var circle:MovieClip;
private var _radius:Number;
public var radius:Number;
public var timer:Timer;
public function Distance():void{
timer = new Timer(10);
timer.addEventListener(TimerEvent.TIMER, timerHandler);
}
public function timerHandler(_arg1:TimerEvent):void{
circle.graphics.clear();
if (_radius < radius){
circle.graphics.lineStyle(0.5, 0xCC0000);
circle.graphics.drawCircle(0, 0, _radius);
} else {
circle.graphics.beginFill(0xFF00, 0.1);
circle.graphics.lineStyle(0.5, 0xFF00);
circle.graphics.drawCircle(0, 0, radius);
circle.graphics.endFill();
timer.stop();
timer.removeEventListener(TimerEvent.TIMER, timerHandler);
timer = null;
};
_radius = (_radius * 1.1);
}
public function init(_arg1:Object):void{
radius = _arg1.radius;
if (circle){
removeChild(circle);
circle = null;
};
_radius = 1;
circle = new MovieClip();
addChild(circle);
timer.start();
}
}
}//package
Section 39
//End (End)
package {
import flash.events.*;
import flash.display.*;
import com.kongregate.as3.client.*;
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.text.*;
import flash.net.*;
import flash.errors.*;
public class End extends MovieClip {
public var inTween:Tween;
public var copyright:MovieClip;
public var urlVariables:URLVariables;
public var levelText:TextField;
public var outTween:Tween;
public var kongregate:KongregateAPI;
public var playAgainButton:MovieClip;
public var scoreText:TextField;
public var urlRequest:URLRequest;
public var urlLoader:URLLoader;
public var data:Object;
public var playMoreButton:MovieClip;
public static var PLAY_AGAIN:String = "endPlayAgain";
public function End():void{
cacheAsBitmap = true;
}
public function outTweenFinishHandler(_arg1:TweenEvent):void{
outTween.removeEventListener(TweenEvent.MOTION_FINISH, outTweenFinishHandler);
outTween = null;
dispatchEvent(new Event(PLAY_AGAIN));
}
public function playMoreButtonClickHandler(_arg1:MouseEvent):void{
var event = _arg1;
var request:URLRequest = new URLRequest("http://games.dschini.org/");
try {
navigateToURL(request, "_blank");
} catch(e:Error) {
};
}
public function init(_arg1:Object):void{
this.data = _arg1;
kongregate = KongregateAPI.getInstance();
kongregate.scores.submit(_arg1.score);
kongregate.stats.submit("Score", _arg1.score);
levelText.text = (_arg1.currentLevel + 1);
scoreText.text = _arg1.score;
playAgainButton.buttonMode = true;
playAgainButton.addEventListener(MouseEvent.CLICK, playAgainButtonClickHandler);
playMoreButton.buttonMode = true;
playMoreButton.addEventListener(MouseEvent.CLICK, playMoreButtonClickHandler);
inTween = new Tween(this, "alpha", Regular.easeOut, 0, 1, 10);
inTween.addEventListener(TweenEvent.MOTION_FINISH, inTweenFinishHandler);
}
public function inTweenFinishHandler(_arg1:TweenEvent):void{
inTween.removeEventListener(TweenEvent.MOTION_FINISH, inTweenFinishHandler);
inTween = null;
}
public function playAgainButtonClickHandler(_arg1:MouseEvent):void{
playAgainButton.removeEventListener(MouseEvent.CLICK, playAgainButtonClickHandler);
outTween = new Tween(this, "alpha", Regular.easeIn, 1, 0, 10);
outTween.addEventListener(TweenEvent.MOTION_FINISH, outTweenFinishHandler);
}
}
}//package
Section 40
//ExtendedArray (ExtendedArray)
package {
public dynamic class ExtendedArray extends Array {
public function ExtendedArray(... _args){
var _local2:*;
super();
for each (_local2 in _args) {
super.push(_local2);
};
}
public function shuffle(_arg1:int=0, _arg2:int=0):Array{
var _local3:Array = this.sort(__shuffle);
return (this.sort(__shuffle));
}
function __shuffle(_arg1, _arg2):int{
var _local3:int = (Math.round((Math.random() * 2)) - 1);
return (_local3);
}
public function _shuffle(_arg1:int=0, _arg2:int=0):Array{
var _local4:int;
var _local5:*;
if (_arg2 == 0){
_arg2 = (this.length - 1);
};
var _local3:int = _arg2;
while (_local3 > _arg1) {
_local4 = (Math.floor((Math.random() * _arg2)) + _arg1);
_local5 = this[_local3];
this[_local3] = this[_local4];
this[_local4] = _local5;
_local3--;
};
return (this);
}
}
}//package
Section 41
//game (game)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import com.kongregate.as3.client.*;
import fl.transitions.*;
import com.kongregate.as3.client.events.*;
import fl.transitions.easing.*;
import flash.utils.*;
import loops.*;
public class game extends MovieClip {
var soundLoops:ExtendedArray;
var targets:ExtendedArray;
public var loader:MovieClip;
public var volume:Number;
public var kongregate:KongregateAPI;
public var win:Win;
public var end:End;
public var flashvars:Object;
public var board:Board;
public var splash:Splash;
public var data:Object;
public var background:MovieClip;
public var url:URL;
public static var instance:game;
public function game():void{
soundLoops = new ExtendedArray({instance:new SoundLoop1(), title:"COOL DISCO GROOVE 2", author:"Ravedeman", link:"http://www.mp3.com/ravedeman"}, {instance:new SoundLoop2(), title:".:: Mellow Trance ::.", author:"calpomatt", link:"http://http//www.calpoly.edu/~mghanson/flash/spacegrid.html"}, {instance:new SoundLoop3(), title:".:: Chill ::.", author:"calpomatt", link:"http://http//www.calpoly.edu/~mghanson/flash/spacegrid.html"}, {instance:new SoundLoop4(), title:"..Moonlight Sound..", author:"SLrec.", link:"http://http//www.frychen.de"}, {instance:new SoundLoop5(), title:".::Searching For Truth::.", author:"calpomatt", link:"http://http//www.calpoly.edu/~mghanson/flash/spacegrid.html"}, {instance:new SoundLoop6(), title:".::Smooth::.", author:"calpomatt", link:"http://http//www.calpoly.edu/~mghanson/flash/spacegrid.html"}, {instance:new SoundLoop10(), title:"Jazzloop", author:"Florian Ennemoser", link:"http://www.flashkit.com/loops/Easy_Listening/Jazz/Jazzloop-Florian_-4699/index.php"}, {instance:new SoundLoop11(), title:"Dreadlock Holida", author:"ZRS", link:"http://www.flashkit.com/loops/Ethnic/Reggae/Dreadloc-ZRS-3845/index.php"}, {instance:new SoundLoop13(), title:"Arabian dreams", author:"Sarbah", link:"http://www.flashkit.com/search.php?term=Sarbah&cat=loops&per=10&page=1&field=Contact_Name"}, {instance:new SoundLoop14(), title:"AMBIENTAL", author:"DAFILEMAN", link:"http://www.flashkit.com/search.php?term=DAFILEMAN&cat=loops&per=10&page=1&field=Contact_Name"}, {instance:new SoundLoop15(), title:"Steinhaug4", author:"Kim Steinhaug", link:"http://www.steinhaug.com/"}, {instance:new SoundLoop16(), title:"Adulterous Empress", author:"Lee I. Garnett", link:"http://www.sentrymarketing.com/"}, {instance:new SoundLoop17(), title:"A Track like this", author:"Beetown Records", link:"http://www.beetown.ch/"});
targets = new ExtendedArray({title:"Calcutta, India", x:584, y:352}, {title:"Cairo, Egypt", x:463, y:335}, {title:"Tianjin, China", x:645.8, y:311.55}, {title:"Sao Paulo, Brazil", x:298.75, y:453.3}, {title:"Hyderabad, India", x:564.1, y:363.5}, {title:"Casablanca, Morocco", x:382.35, y:325.85}, {title:"Pusan, South Korea", x:670.45, y:320.6}, {title:"Alexandria, Egypt", x:461.5, y:331.95}, {title:"Bakersfield, USA", x:144.5, y:320.3}, {title:"Joinville, Brazil", x:294.25, y:459.3}, {title:"Ciudad de Mexico, Mexico", x:186.75, y:359.05}, {title:"Virginia Beach, USA", x:235.75, y:318.05}, {title:"Memphis, USA", x:207, y:321.05}, {title:"Columbus, USA", x:221.25, y:307.8}, {title:"Omaha, USA", x:194.75, y:304.8}, {title:"Nassau, The Bahamas", x:232.5, y:346.55}, {title:"Halifax, Canada", x:262, y:294.3}, {title:"Mt Pearl, Newfoundland", x:284.5, y:287.05}, {title:"Pearl Harbor, Honolulu", x:62, y:354.55}, {title:"Lanzhou, China", x:619.8, y:317.8}, {title:"Wuhan, China", x:637.8, y:333.8}, {title:"Guiyang, China", x:624.8, y:343.55}, {title:"Nanning, China", x:648.05, y:329.8}, {title:"Wulumuqi, China", x:582.3, y:295.8}, {title:"Sassari, Sardegna Italy", x:415.5, y:306.8}, {title:"Cagliari, Sardegna Italy", x:417, y:310.8}, {title:"Charlotte, USA", x:226.25, y:321.3}, {title:"San Antonio, USA", x:188.1, y:335.7}, {title:"Tampa, USA", x:222.75, y:339.55}, {title:"Orlando, USA", x:224.5, y:337.05}, {title:"Tucson, USA", x:161, y:329.05}, {title:"Omaha, USA", x:193.75, y:305.55}, {title:"Indianapolis, USA", x:216, y:309.55}, {title:"Colorado Springs, USA", x:175.25, y:312.8}, {title:"Trondheim, Norway", x:419.5, y:226.5}, {title:"Ar Riyad, Saudi Arabia", x:495.5, y:347}, {title:"Malatya, Turkey", x:479.25, y:312.95}, {title:"Leeds, United Kingdom", x:393.95, y:267.35}, {title:"Aberdeen, United Kingdom", x:392.45, y:252.95}, {title:"Visby, Sweden", x:434.3, y:250.5}, {title:"Calgary, Canada", x:154.5, y:274.5}, {title:"Winnipeg, Canada", x:190.75, y:279}, {title:"Ottawa, Canada", x:235.75, y:294.05}, {title:"Fairbanks, Alaska", x:84.25, y:218.75}, {title:"Magadan, Russia", x:716.8, y:242.5}, {title:"Sapporo, Japan", x:698.3, y:300.05}, {title:"Salalah, Oman", x:512.5, y:364.5}, {title:"Cordoba, Argentinia", x:261.5, y:471.05}, {title:"Rosario, Argentinia", x:268, y:475.2}, {title:"Noumea, New Caledonia", x:750, y:449.05}, {title:"Broken Hill, Australia", x:697.8, y:472.55}, {title:"Rocky Point, Australia", x:699.05, y:429.55}, {title:"Alice Springs, Australia", x:680.55, y:452.55}, {title:"Broome, Australia", x:657.6, y:440.9}, {title:"Derby, Australia", x:660.4, y:437.45}, {title:"Karumba, Australia", x:696.5, y:439.95}, {title:"Linz, Austria", x:428.25, y:283.55}, {title:"Szeged, Hungary", x:439.8, y:289.35}, {title:"Split, Croatia", x:431.45, y:298}, {title:"Cluj, Romania", x:446.75, y:289.1}, {title:"Constanta, Romania", x:457.4, y:296.6}, {title:"Homyel, Belarus", x:462.6, y:270.35}, {title:"Mariupol, Ukraine", x:476.4, y:287.35}, {title:"Lugansk, Ukraine", x:480.45, y:283.35}, {title:"Jeddah, Saudi Arabia", x:480.7, y:354.25}, {title:"Esfahan, Iran", x:506.4, y:327.45}, {title:"Shiraz, Iran", x:508.4, y:334.35}, {title:"Bagasra, India", x:548.15, y:354.5}, {title:"Szczecin, Poland", x:429.1, y:267.65}, {title:"Lublin, Poland", x:445.4, y:274.7}, {title:"Gdansk, Poland", x:436.65, y:263.2}, {title:"Brno, Czech Republic", x:432.15, y:280.65}, {title:"Venezia, Italy", x:423.3, y:292.3}, {title:"Parma, Italy", x:419.8, y:294.7}, {title:"Rennes, France", x:393.5, y:284.8}, {title:"Montpellier, France", x:405.35, y:298.1}, {title:"Le Havre, France", x:397.7, y:280.25}, {title:"Nantes, France", x:394.2, y:287.45}, {title:"Murcia, Spain", x:394.7, y:314.55}, {title:"El Ejido, Spain", x:391.85, y:316.75}, {title:"Cadiz, Spain", x:384.1, y:317.4}, {title:"Salamanca, Spain", x:385.75, y:306.3}, {title:"Sintra, Portugal", x:377.8, y:311.6}, {title:"Bologna, Italy", x:422, y:295.7}, {title:"Catanzaro, Italy,", x:433, y:312}, {title:"Rotterdam, Netherlands", x:406.75, y:272}, {title:"Eindhoven, Netherlands", x:410, y:272.3}, {title:"Liege, Belgium", x:409.2, y:276.05}, {title:"Liverpool, United Kingdom", x:390.65, y:267.35}, {title:"Berlin, Germany", x:425.5, y:271}, {title:"Kiel, Germany", x:418.9, y:263.8}, {title:"Stuttgart, Germany", x:416.65, y:283.2}, {title:"Leipzig, Germany", x:423.65, y:273.55}, {title:"Frankfurt am Main, Germany", x:415.75, y:278.8}, {title:"Karlsruhe, Germany", x:415, y:282.55}, {title:"Hannover, Germany", x:418, y:271.3}, {title:"Nürnberg, Germany", x:421.25, y:281.2}, {title:"Regensburg, Germany", x:423.75, y:282.05}, {title:"Augsburg, Germany", x:420.9, y:283.3}, {title:"Trier, Germany", x:411.25, y:279.75}, {title:"Philadelphia, USA", x:238, y:309.05}, {title:"Quebec, Canada", x:246.5, y:287.95}, {title:"San Jose, Costa Rica", x:219.25, y:380.7}, {title:"Al Qatif, Saudi Arabia", x:503.2, y:343.2}, {title:"Mecca, Saudi Arabia", x:481.2, y:353.95}, {title:"Al Kuwayt, Kuwait", x:498.7, y:336.55}, {title:"Al Wakrah, Qatar", x:506.15, y:346.25}, {title:"Adan, Yemen", x:492.35, y:373.45}, {title:"Masqat, Oman", x:521.8, y:350.95}, {title:"Dubai, United Arab Emirates", x:514.55, y:346.8}, {title:"Mumbai, India", x:552.3, y:359.25}, {title:"New Delhi, India", x:561.3, y:337.05}, {title:"Nagpur, India", x:565.75, y:356.3}, {title:"Colombo, Sri Lanka", x:568.3, y:387.3}, {title:"Dacca, Bangladesh", x:588.95, y:349.6}, {title:"Kathmandu, Nepal", x:579, y:340.5}, {title:"Boston, USA", x:246.85, y:300.65}, {title:"Chicago, USA", x:210.85, y:302.85}, {title:"Minneapolis, USA", x:201.3, y:292.05}, {title:"Portland Oregon, USA", x:137.5, y:293.25}, {title:"Honolulu, Hawai", x:62.4, y:355.1}, {title:"Vancover, Canada", x:136.2, y:280.9}, {title:"Toronto, Canada", x:229.1, y:297.85}, {title:"Edmonton, Canada", x:157, y:265.7}, {title:"Anchorage, Alaska", x:79.3, y:236.3}, {title:"Salt Lake City, USA", x:159.75, y:304.3}, {title:"Denver, USA", x:173.6, y:309.2}, {title:"Kansas City, USA", x:197.15, y:312.6}, {title:"Dayton, USA", x:217.9, y:307.95}, {title:"Nashville, USA", x:213.25, y:317.8}, {title:"Atlanta, USA", x:218.85, y:326.55}, {title:"New Orleans, USA", x:207.25, y:335.35}, {title:"Dallas, USA", x:191.9, y:327.85}, {title:"Houston, USA", x:195.35, y:335.65}, {title:"Albuquerque, USA", x:171.8, y:323.1}, {title:"Phoenix, USA", x:157.3, y:324.85}, {title:"Los Angeles, USA", x:145.6, y:324.4}, {title:"San Francisco, USA", x:137.15, y:314.35}, {title:"San Diego, USA", x:147.95, y:326.95}, {title:"Las Vegas, USA", x:153.4, y:320.65}, {title:"Santo Domingo, Dominican Republic", x:247.5, y:361.8}, {title:"Carolina, Puerto Rico", x:257.5, y:362.55}, {title:"Panama, Panama", x:228, y:382.55}, {title:"Managua, Nicaragua", x:214.15, y:375.3}, {title:"Tegucigalpa, Honduras", x:212.65, y:371.2}, {title:"San Miguel, El Salvador", x:210.25, y:373.05}, {title:"Guatemala, Guatemala", x:203.75, y:369.8}, {title:"Belmopand, Belize", x:209.75, y:364.2}, {title:"Benito Juarez, Mexico", x:212.25, y:356.8}, {title:"Acapulco, Mexico", x:186, y:365.3}, {title:"Monterrey, Mexico", x:184, y:345.55}, {title:"Toluca, Mexico", x:187.75, y:360.55}, {title:"Guadalajara, Mexico", x:178.25, y:358.3}, {title:"Los Cabos, Mexico", x:164.25, y:350.55}, {title:"Miami, USA", x:226.75, y:345.05}, {title:"Jacksonville, USA", x:224, y:333.8}, {title:"Amsterdam, Netherlands", x:407.9, y:270.45}, {title:"Den Haag, Netherlands", x:406.95, y:271.7}, {title:"Brussel, Belgium", x:406, y:275.85}, {title:"Cologne, Germany", x:413.4, y:277.8}, {title:"La Habana, Cuba", x:222.65, y:351.15}, {title:"Kingston, Jamaica", x:234.05, y:362.85}, {title:"Port-au-Prince, Haiti", x:242.7, y:361.1}, {title:"Paramaribo, Suriname", x:279.4, y:389.45}, {title:"Cayenne, French Guiana", x:285.8, y:391.05}, {title:"Rostock, Germany", x:423, y:264.7}, {title:"Caracas, Venezuela", x:253.9, y:379.2}, {title:"Georgetown, Guyana", x:272.75, y:385.95}, {title:"Stanley, Falkland Islands", x:274, y:530.05}, {title:"Punta Arenas, Chile", x:246.55, y:534.9}, {title:"Puerto Mont, Chile", x:242.35, y:499}, {title:"Santiago, Chile", x:247.45, y:476.6}, {title:"Calama, Chile", x:250.3, y:448.95}, {title:"Mendoza, Argentina", x:251.4, y:478.2}, {title:"Buenos Aires, Argentina", x:274.1, y:480.2}, {title:"Mar del Plata, Argentina", x:274.7, y:489.3}, {title:"Trelew, Argentina", x:258.05, y:506.05}, {title:"Montevideo, Uruguay", x:279.1, y:480}, {title:"Rio de Janeiro, Brazil", x:303.15, y:451.45}, {title:"Porto Alegre, Brazil", x:289.8, y:468.55}, {title:"Salvador, Brazil", x:315.75, y:427.9}, {title:"Manaus, Brazil", x:268.7, y:406.85}, {title:"Fortaleza, Brazil", x:315.2, y:409.65}, {title:"Santana, Brazil", x:289.65, y:400.3}, {title:"Asuncion, Paraguay", x:273.45, y:455.05}, {title:"La Paz, Bolivia", x:252.4, y:436.05}, {title:"Trinidad, Bolivia", x:258.85, y:432.1}, {title:"Santa Cruz, Bolivia", x:261.4, y:437.7}, {title:"Lima, Peru", x:234.8, y:429}, {title:"Trujillo, Peru", x:229.5, y:418.9}, {title:"Guayaquil, Ecuador", x:227.45, y:405.8}, {title:"Buenaventura, Colombia", x:233.75, y:394.6}, {title:"Bogota, Colombia", x:239.55, y:392.9}, {title:"Barranquilla, Colombia", x:238.95, y:378.2}, {title:"Maracaibo, Venezuela", x:245.15, y:379.15}, {title:"Longyearbyen, Svalbard", x:431.5, y:125.5}, {title:"Torshavn, Faroe Islands", x:382.75, y:232.5}, {title:"Reykjavik, Iceland", x:351.75, y:222.25}, {title:"Akureyri, Iceland", x:359.5, y:214.75}, {title:"Brisbane, Australia", x:721.8, y:463.3}, {title:"Adelaide, Australia", x:690.8, y:481.55}, {title:"Auckland, New Zealand", x:769.3, y:487.05}, {title:"Wellington, New Zealand", x:767.8, y:498.3}, {title:"Hobart, Tasmania", x:709.8, y:502.3}, {title:"Phnum Penh, Cambodia", x:618.45, y:376.75}, {title:"Bangkok, Thailand", x:611, y:372.3}, {title:"Singapore, Republic of Singapore", x:617.3, y:397.7}, {title:"Bantaeng, Indonesia", x:650.5, y:412.95}, {title:"Manilla, Philippines", x:653.6, y:367.5}, {title:"Port Moresby, Papua New Guinea", x:708.95, y:421.1}, {title:"Darwin, Australia", x:676.95, y:427.9}, {title:"Perth, Australia", x:643.4, y:473.3}, {title:"Sydney, Australia", x:716.7, y:479.55}, {title:"Halab, Syria", x:476, y:319.3}, {title:"Baghdad, Iraq", x:490.7, y:326.3}, {title:"Mosul, Iraq", x:489.2, y:318.8}, {title:"Tabriz, Iran", x:494.95, y:313.45}, {title:"Tehran, Iran", x:506.8, y:321.45}, {title:"Bakhtaran, Iran", x:497.95, y:324.55}, {title:"Mashhad, Iran", x:523, y:319.05}, {title:"Tel Aviv, Israel", x:471.2, y:329.6}, {title:"Jerusalem, Israel", x:471.5, y:330.3}, {title:"Al Qahirah, Egypt", x:462.85, y:335.1}, {title:"Tarabulus, Libya", x:425.2, y:328.6}, {title:"Tunis, Tunisia", x:418.8, y:318.1}, {title:"El-Jazair, Algeria", x:403.6, y:318.4}, {title:"Oran, Algeria", x:396.4, y:321.25}, {title:"Rabat, Morocco", x:383.75, y:324.85}, {title:"Agadir, Morocco", x:377.1, y:334.95}, {title:"Las Palmas de Gran Canaria", x:364.5, y:339.8}, {title:"Laayoune, Western Sahara", x:369.2, y:341.7}, {title:"Nouakchott, Mauritania", x:364.2, y:362.9}, {title:"Bamako, Mali", x:379.85, y:374.45}, {title:"Dakar, Senegal", x:361.2, y:369.75}, {title:"Conakry, Guinea", x:368.8, y:380.55}, {title:"Freetown Sierra Leone", x:370.2, y:383.9}, {title:"Monrovia, Liberia", x:375.4, y:387.95}, {title:"Tamale, Ghana", x:395.2, y:381.8}, {title:"Accra, Ghana", x:397.1, y:389}, {title:"Bobo-Dioulasso, Burkina Faso", x:388.15, y:377.95}, {title:"Benin City, Nigeria", x:409.55, y:388.45}, {title:"Niamey, Niger", x:401.95, y:372.45}, {title:"Sarh, Chad", x:435.55, y:382.5}, {title:"Douala, Cameroon", x:418.25, y:393.55}, {title:"Bata, Equatorial Guinea", x:418.4, y:398.5}, {title:"Libreville, Gabon", x:417.85, y:402.25}, {title:"Bambari, Central African Republic", x:436.2, y:392.45}, {title:"Al Khurtum, Sudan", x:467.85, y:367.4}, {title:"Mitsiwa, Eritrea", x:480.6, y:368.5}, {title:"Adis Abeba, Ethiopia", x:480.05, y:382.65}, {title:"Djibouti, Djibouti", x:488.2, y:376.3}, {title:"Mogadishu, Somalia", x:492.3, y:396.45}, {title:"Nairobi, Kenya", x:476, y:403.5}, {title:"Kampala, Uganda", x:466.6, y:401.55}, {title:"Kisangani, Congo", x:452, y:401.25}, {title:"Mwanza, Tanzania", x:467.55, y:406.4}, {title:"Dar es Salaam, Tanzania", x:480.05, y:416.5}, {title:"Luanda, Angola", x:425.75, y:420.75}, {title:"Lusaka, Zambia", x:458.2, y:433.9}, {title:"Lilongwe, Malawi", x:469.65, y:431.1}, {title:"Maputo, Mozambique", x:466.8, y:457.45}, {title:"Harare, Zimbabwe", x:464.2, y:438.95}, {title:"Gaborone, Botswana", x:453.2, y:455.15}, {title:"Windhoek, Namibia", x:433.95, y:450.4}, {title:"Mbabane, Swaziland", x:464.75, y:459.05}, {title:"Pretoria, South Afrika", x:458.35, y:457.5}, {title:"Maseru, Lesotho", x:457.6, y:466.3}, {title:"Durban, South Afrika", x:462.4, y:468.2}, {title:"East London, South Afrika", x:456.7, y:474.7}, {title:"Antananarivo, Madagascar", x:497.7, y:442.6}, {title:"Port Louis, Mauritius", x:519.15, y:445.3}, {title:"Saint-Denis, Reunion", x:515.45, y:447.2}, {title:"Astana, Kazakhstan", x:549.1, y:273.75}, {title:"Ashgabat, Turkmenistan", x:520.8, y:313.95}, {title:"Samarqand, Uzbekistan", x:538.5, y:310.05}, {title:"Dushanbe, Tajikistan", x:543.45, y:312.65}, {title:"Bishkek, Kyrgyzstan", x:555.3, y:300.7}, {title:"Kabul, Afghanistan", x:544.4, y:323.5}, {title:"Islamabad, Pakistan", x:552.85, y:325.75}, {title:"Karachi, Pakistan", x:539.7, y:346.15}, {title:"Pyongyang, North Korea", x:664.1, y:311}, {title:"Seoul, South Korea", x:666.9, y:315.6}, {title:"Beijing, China", x:641.85, y:310.2}, {title:"Gwangju, South Korea", x:666.5, y:322.05}, {title:"Hiroshima, Japan", x:677.8, y:323.5}, {title:"Tokyo, Japan", x:692, y:321.05}, {title:"Taipei, Taiwan", x:655, y:347.5}, {title:"Hong Kong, China", x:639.15, y:352.3}, {title:"Shanghai, China", x:654.75, y:331.95}, {title:"Yangon, Burma", x:600.4, y:365.7}, {title:"Mandalay, Burma", x:601.4, y:353}, {title:"Haerbin, China", x:665.45, y:290.4}, {title:"Ha Noi, Vietnam", x:621.35, y:355.4}, {title:"Ho Chi Minh, Vietnam", x:623.6, y:378.9}, {title:"Istanbul, Turkey", x:458.05, y:305.6}, {title:"Ankara, Turkey", x:466.55, y:308.8}, {title:"Antalya, Turkey", x:462.45, y:317}, {title:"Erzurum, Turkey", x:485, y:308.7}, {title:"Beirut, Lebanon", x:472.55, y:324.9}, {title:"Dimashq, Syria", x:473.85, y:326.05}, {title:"Novosibirsk, Russia", x:570.5, y:260}, {title:"Samara, Russia", x:503.85, y:267.4}, {title:"Ulaanbaatar, Mongolia", x:625.3, y:284.95}, {title:"Baky, Azerbaijan", x:502.75, y:308}, {title:"Gyumri, Armenia", x:490.2, y:306.55}, {title:"Minsk, Belarus", x:456, y:264.8}, {title:"Sankt-Peterburg, Russia", x:461.45, y:241.8}, {title:"Moskva, Russia", x:476.15, y:256.95}, {title:"Zagreb, Croatia", x:430.65, y:291.6}, {title:"Sarajevo, Bosnia and Herzegovina", x:435.8, y:297.5}, {title:"Belgrad, Serbia", x:440.2, y:294.55}, {title:"Bucuresti, Romania", x:452.6, y:295.65}, {title:"Sofia, Bulgaria", x:446.6, y:301.15}, {title:"Kaunu, Lithuania", x:447.95, y:261.45}, {title:"Vilnius, Lithuania", x:450.75, y:261.9}, {title:"Vienna, Austria", x:431.7, y:283.65}, {title:"Luxembourg,Luxembourg", x:410.8, y:279.95}, {title:"Dortmund, Germany", x:412.95, y:272.95}, {title:"Dresden, Germany", x:425.85, y:274.6}, {title:"Strasbourg, France", x:413.45, y:283.4}, {title:"Praha, Czech Republic", x:427.65, y:278.1}, {title:"Warszawa, Poland", x:441.7, y:271.75}, {title:"Krakow, Poland", x:439.65, y:278.55}, {title:"Budapest, Hungary", x:437, y:285.95}, {title:"Liechtenstein", x:418.3, y:287.65}, {title:"Innsbruck, Austria", x:421.3, y:287.1}, {title:"Salzburg, Austria", x:424.9, y:285.1}, {title:"Graz, Austria", x:430, y:287.5}, {title:"Le Mans, France", x:396.25, y:284.4}, {title:"Zurich, Switzerland", x:415.45, y:287.5}, {title:"Bern, Switzerland", x:412.7, y:288.45}, {title:"Bari, Italy", x:433.2, y:305.8}, {title:"Napoli, Italy", x:427.15, y:306}, {title:"Palermo, Italy", x:425.4, y:313.45}, {title:"Malta, Republic of Malta", x:426.6, y:318.15}, {title:"Milano, Italy", x:415.75, y:292.7}, {title:"Genova, Italy", x:416.4, y:295.45}, {title:"Encamp, Andorra", x:400.6, y:301.75}, {title:"Marseille, France", x:408.2, y:299.05}, {title:"Toulouse, France", x:400.05, y:298.45}, {title:"Nimes, France", x:406, y:297.9}, {title:"Monaco, Monaco", x:411.3, y:299.3}, {title:"Lyon, France", x:406.45, y:292.1}, {title:"Bordeaux, France", x:395.15, y:294}, {title:"Vigo, Spain", x:378.75, y:302.85}, {title:"Valencia, Spain", x:397.2, y:310.2}, {title:"Palma, Spain", x:403, y:309.95}, {title:"Barcelona, Spain", x:401.6, y:304.9}, {title:"Malaga, Spain", x:387.9, y:317.2}, {title:"Sevilla, Spain", x:384.25, y:315.5}, {title:"Valladolid, Spain", x:387.9, y:304.55}, {title:"Helsinki, Finland", x:450.35, y:240.2}, {title:"Bergen, Norway", x:408.5, y:239.9}, {title:"Oslo, Norway", x:418.65, y:242.1}, {title:"Uppsala, Sweden", x:433.9, y:241.65}, {title:"Stockholm, Sweden", x:435.2, y:244.2}, {title:"Goteborg, Sweden", x:422.3, y:250.75}, {title:"Sundsvall, Sweden", x:433.9, y:231.4}, {title:"Oulu, Finland", x:451.1, y:217.75}, {title:"Belfast, North Ireland", x:383.75, y:261.95}, {title:"Dublin, Ireland", x:383.9, y:267.55}, {title:"Cork, Ireland", x:378.65, y:272.25}, {title:"Galway, Ireland", x:377.05, y:267.15}, {title:"Edinburgh, United Kingdom", x:390.75, y:257.2}, {title:"Glasgow, United Kingdom", x:387.5, y:257.75}, {title:"Manchester, United Kingdom", x:391.65, y:266.65}, {title:"Bradford, United Kingdom", x:393.5, y:264.9}, {title:"Birmingham, United Kingdom", x:392.9, y:270}, {title:"New York City, USA", x:240.5, y:306.05}, {title:"Hamburg, Germany", x:417.35, y:266}, {title:"Munich, Germany", x:422.3, y:283.75}, {title:"Tbilisi, Georgia", x:492.3, y:304.05}, {title:"Bodo, Nordland", x:428.4, y:206.15}, {title:"Cape Town, South Afrika", x:436.65, y:478.2}, {title:"Monrovia, Liberia", x:374.15, y:387.2}, {title:"Colombo, Sri Lanka", x:566.85, y:386.7}, {title:"Athina, Greece", x:447.55, y:314}, {title:"Sofia, Bulgaria", x:447.25, y:300.95}, {title:"Stockholm, Sweden", x:434.5, y:244.2}, {title:"Copenhagen, Denmark", x:422.9, y:259.6}, {title:"London, England", x:396.3, y:272.9}, {title:"Paris, France", x:401.7, y:282.15}, {title:"Riga, Latvia", x:448.5, y:253.45}, {title:"Talinn, Estonia", x:450, y:243.65}, {title:"Helsinki, Finland", x:450.15, y:240.05}, {title:"Rome, Italy", x:423.65, y:302.7}, {title:"Quito, Ecuador", x:229.75, y:401.5}, {title:"Madrid, Spain", x:389.4, y:307.55}, {title:"Lisboa, Portugal", x:377.65, y:312.45});
super();
addFrameScript(0, frame1);
loader = new MovieClip();
addChild(loader);
game.instance = this;
volume = 0.9;
flashvars = LoaderInfo(this.loaderInfo).parameters;
url = new URL(LoaderInfo(this.loaderInfo).loaderURL);
this.loaderInfo.addEventListener(Event.COMPLETE, gameLoaded);
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, showProgress);
}
public function goHandler(_arg1:Event):void{
var _local2:Sound = Sound(data.levels[data.currentLevel].loop.instance);
data.soundLoopsChannel = new LoopSoundChannel(_local2.play(0, 99));
data.soundLoopsChannel.soundTransform = new SoundTransform(data.volume, 0);
splash.removeEventListener(Splash.GO, goHandler);
removeChild(splash);
splash = null;
board = new Board();
board.init(data);
addChild(board);
board.addEventListener(Board.WIN, boardHandler);
board.addEventListener(Board.END, boardHandler);
board.addEventListener(Board.CONTINUE, boardHandler);
}
public function showSplash():void{
splash = new Splash();
splash.init(data);
splash.x = 400;
splash.y = 300;
addChild(splash);
splash.addEventListener(Splash.GO, goHandler);
}
public function showProgress(_arg1:ProgressEvent):void{
var _local2:Number = Math.round(((_arg1.bytesLoaded / _arg1.bytesTotal) * 760));
loader.graphics.clear();
loader.graphics.lineStyle(1, 0x660000, 0.5);
loader.graphics.beginFill(0x660000, 0.5);
loader.graphics.drawRect(20, 560, _local2, 20);
}
public function boardHandler(_arg1:Event):void{
board.removeEventListener(Board.WIN, boardHandler);
board.removeEventListener(Board.END, boardHandler);
board.removeEventListener(Board.CONTINUE, boardHandler);
data.soundLoopsChannel.fadeOut(data.volume);
switch (_arg1.type){
case Board.WIN:
removeChild(board);
board = null;
win = new Win();
win.init(data);
win.x = 400;
win.y = 300;
addChild(win);
win.addEventListener(Win.PLAY_AGAIN, playAgainHandler);
break;
case Board.END:
removeChild(board);
board = null;
end = new End();
end.init(data);
end.x = 400;
end.y = 300;
addChild(end);
end.addEventListener(End.PLAY_AGAIN, playAgainHandler);
break;
case Board.CONTINUE:
board.dispose();
removeChild(board);
board = null;
showSplash();
break;
};
}
public function init(_arg1:Event):void{
soundLoops.shuffle();
targets.shuffle();
data = new Object();
data.username = (flashvars["player"]) ? String(flashvars["player"]) : "Undefined";
data.score = 0;
data.volume = volume;
data.currentLevel = 0;
data.currentLevelTarget = 0;
data.levels = new Array();
data.levels[0] = {minScore:350, maxTime:13000, score:0, maxTargets:3, mapBorders:true, mapBackground:true, mapShape:true, mapShapeColor:0xCCCCCC, mapBordersColor:0x333333, mapBackgroundColor:0x777777, targets:targets, loop:soundLoops[0]};
data.levels[1] = {minScore:550, maxTime:12000, score:0, maxTargets:4, mapBorders:true, mapBackground:true, mapShape:true, mapShapeColor:0x666666, mapBordersColor:0xBBBBBB, mapBackgroundColor:0x333333, targets:targets, loop:soundLoops[1]};
data.levels[2] = {minScore:750, maxTime:11000, score:0, maxTargets:5, mapBorders:true, mapBackground:true, mapShape:true, mapShapeColor:0x333333, mapBordersColor:0x999999, mapBackgroundColor:0x666666, targets:targets, loop:soundLoops[2]};
data.levels[3] = {minScore:1000, maxTime:10000, score:0, maxTargets:6, mapBorders:true, mapBackground:true, mapShape:true, mapShapeColor:0xCCCCCC, mapBordersColor:0x454545, mapBackgroundColor:0x222222, targets:targets, loop:soundLoops[3]};
data.levels[4] = {minScore:1250, maxTime:9000, score:0, maxTargets:7, mapBorders:true, mapBackground:true, mapShape:true, mapShapeColor:0xA00B00, mapBordersColor:0xEEEEEE, mapBackgroundColor:0x300400, targets:targets, loop:soundLoops[4]};
data.levels[5] = {minScore:1450, maxTime:8000, score:0, maxTargets:8, mapBorders:true, mapBackground:true, mapShape:true, mapShapeColor:1192242, mapBordersColor:0xEEEEEE, mapBackgroundColor:0x666666, targets:targets, loop:soundLoops[5]};
data.levels[6] = {minScore:1700, maxTime:7000, score:0, maxTargets:9, mapBorders:false, mapBackground:true, mapShape:true, mapShapeColor:0xCCCCCC, mapBordersColor:0x454545, mapBackgroundColor:0x222222, targets:targets, loop:soundLoops[6]};
data.levels[7] = {minScore:2000, maxTime:6000, score:0, maxTargets:10, mapBorders:false, mapBackground:true, mapShape:true, mapShapeColor:0x333333, mapBordersColor:0xAAAAAA, mapBackgroundColor:0x999999, targets:targets, loop:soundLoops[7]};
data.levels[8] = {minScore:2300, maxTime:5000, score:0, maxTargets:11, mapBorders:false, mapBackground:true, mapShape:true, mapShapeColor:0xCCCCCC, mapBordersColor:0x454545, mapBackgroundColor:0x222222, targets:targets, loop:soundLoops[8]};
data.levels[9] = {minScore:2650, maxTime:4000, score:0, maxTargets:12, mapBorders:false, mapBackground:true, mapShape:true, mapShapeColor:0x333333, mapBordersColor:0xAAAAAA, mapBackgroundColor:0x999999, targets:targets, loop:soundLoops[9]};
showSplash();
}
public function gameLoaded(_arg1:Event):void{
if (loader){
loader.loaderInfo.removeEventListener(Event.COMPLETE, init);
loader.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, showProgress);
removeChild(loader);
loader = null;
};
kongregate = KongregateAPI.getInstance();
kongregate.addEventListener(KongregateEvent.COMPLETE, kongregateAPILoaded);
}
public function kongregateAPILoaded(_arg1:KongregateEvent):void{
kongregate.removeEventListener(KongregateEvent.COMPLETE, kongregateAPILoaded);
kongregate.services.connect();
init(new Event(Event.INIT));
}
public function playAgainHandler(_arg1:Event):void{
switch (_arg1.type){
case End.PLAY_AGAIN:
end.removeEventListener(End.PLAY_AGAIN, playAgainHandler);
removeChild(end);
end = null;
break;
case Win.PLAY_AGAIN:
win.removeEventListener(Win.PLAY_AGAIN, playAgainHandler);
removeChild(win);
win = null;
break;
};
init(new Event(Event.INIT));
}
function frame1(){
}
}
}//package
Section 42
//GreenFlag (GreenFlag)
package {
import flash.display.*;
public class GreenFlag extends MovieClip {
public function GreenFlag():void{
addFrameScript(10, frame11);
}
function frame11(){
stop();
}
}
}//package
Section 43
//Infobox (Infobox)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import com.kongregate.as3.client.*;
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.utils.*;
import flash.text.*;
public class Infobox extends MovieClip {
public var nextButtonTimer:Timer;
public var total:TextField;
public var nextButton:MovieClip;
public var scoreRadius:TextField;
public var bonusTime:TextField;
public var bonusRadius:TextField;
public var radius:TextField;
public var target:TextField;
public var kongregate:KongregateAPI;
public var title:TextField;
public var data:Object;
public static var SCALE:Number = 34;
public static var NEXT:String = "infoboxNext";
public function Infobox():void{
title.autoSize = TextFieldAutoSize.CENTER;
radius.autoSize = TextFieldAutoSize.CENTER;
target.autoSize = TextFieldAutoSize.LEFT;
total.autoSize = TextFieldAutoSize.LEFT;
bonusTime.autoSize = TextFieldAutoSize.LEFT;
scoreRadius.autoSize = TextFieldAutoSize.LEFT;
bonusRadius.autoSize = TextFieldAutoSize.LEFT;
}
public function nextButtonClickHandler(_arg1:Event):void{
data.soundLoopsChannel.soundTransform = new SoundTransform(this.data.volume, 0);
nextButtonTimer.removeEventListener(TimerEvent.TIMER, nextButtonTimerHandler);
nextButtonTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, nextButtonClickHandler);
nextButton.removeEventListener(MouseEvent.CLICK, nextButtonClickHandler);
nextButtonTimer.stop();
nextButtonTimer = null;
dispatchEvent(new Event(NEXT));
}
public function init(_arg1:Object):void{
kongregate = KongregateAPI.getInstance();
this.data = _arg1;
_arg1.soundLoopsChannel.soundTransform = new SoundTransform(((this.data.volume >= 0.9)) ? 0.6 : 0, 0);
title.text = _arg1.levels[_arg1.currentLevel].targets[_arg1.currentLevelTarget].title;
title.autoSize = TextFieldAutoSize.CENTER;
var _local2:Number = (_arg1.levels[_arg1.currentLevel].targets[_arg1.currentLevelTarget].radius * SCALE);
var _local3:Number = ((_local2 == 0)) ? _local2 : (_local2 + (SCALE * (Math.random() - 0.5)));
_local3 = ((_local3 < 0)) ? 0 : Math.round(_local3);
if (_local3 <= 0){
radius.text = "STRIKE";
kongregate.stats.submit("Strikes", 1);
} else {
radius.text = (_local3 + " km");
};
bonusTime.text = _arg1.levels[_arg1.currentLevel].targets[_arg1.currentLevelTarget].bonusTime;
scoreRadius.text = _arg1.levels[_arg1.currentLevel].targets[_arg1.currentLevelTarget].scoreRadius;
bonusRadius.text = ("x" + _arg1.levels[_arg1.currentLevel].targets[_arg1.currentLevelTarget].bonusRadius);
bonusRadius.x = (scoreRadius.x + scoreRadius.width);
total.text = (_arg1.levels[_arg1.currentLevel].targets[_arg1.currentLevelTarget].bonusTime + (_arg1.levels[_arg1.currentLevel].targets[_arg1.currentLevelTarget].scoreRadius * _arg1.levels[_arg1.currentLevel].targets[_arg1.currentLevelTarget].bonusRadius));
target.text = (((_arg1.currentLevelTarget + 1) + "/") + _arg1.levels[_arg1.currentLevel].maxTargets);
radius.y = (title.y + title.height);
nextButton.buttonMode = true;
nextButton.addEventListener(MouseEvent.CLICK, nextButtonClickHandler);
nextButtonTimer = new Timer(10, 350);
nextButtonTimer.addEventListener(TimerEvent.TIMER, nextButtonTimerHandler);
nextButtonTimer.addEventListener(TimerEvent.TIMER_COMPLETE, nextButtonClickHandler);
nextButtonTimer.start();
}
public function dispose():void{
data = null;
nextButtonTimer = null;
}
public function nextButtonTimerHandler(_arg1:TimerEvent):void{
nextButton.nextButtonMask.width = (nextButton.nextButtonMask.width - (160 / 350));
}
}
}//package
Section 44
//LoopSoundChannel (LoopSoundChannel)
package {
import flash.events.*;
import flash.media.*;
import flash.utils.*;
public class LoopSoundChannel {
public var channel:SoundChannel;
public var timer:Timer;
public var volume:Number;
public function LoopSoundChannel(_arg1, _arg2=false){
channel = _arg1;
channel.soundTransform = new SoundTransform((_arg2) ? 0 : 1, 0);
}
public function fadeIn(_arg1:Number=0):void{
this.volume = _arg1;
timer = new Timer(10, 30);
timer.addEventListener(TimerEvent.TIMER, fadeInTimerHandler);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, fadeInTimerCompleteHandler);
timer.start();
}
public function set soundTransform(_arg1:SoundTransform):void{
channel.soundTransform = _arg1;
}
private function fadeInTimerCompleteHandler(_arg1:TimerEvent):void{
timer.removeEventListener(TimerEvent.TIMER, fadeInTimerHandler);
timer.removeEventListener(TimerEvent.TIMER_COMPLETE, fadeInTimerCompleteHandler);
timer = null;
}
public function fadeOut(_arg1:Number=1):void{
this.volume = _arg1;
timer = new Timer(10, 100);
timer.addEventListener(TimerEvent.TIMER, fadeOutTimerHandler);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, fadeOutTimerCompleteHandler);
timer.start();
}
private function fadeInTimerHandler(_arg1:TimerEvent):void{
channel.soundTransform = new SoundTransform(volume, 0);
volume = ((volume > 0.9)) ? 0.9 : (volume + (1 / 30));
}
private function fadeOutTimerHandler(_arg1:TimerEvent):void{
channel.soundTransform = new SoundTransform(volume, 0);
volume = ((volume < 0)) ? 0 : (volume - (1 / 100));
}
private function fadeOutTimerCompleteHandler(_arg1:TimerEvent):void{
timer.removeEventListener(TimerEvent.TIMER, fadeOutTimerHandler);
timer.removeEventListener(TimerEvent.TIMER_COMPLETE, fadeOutTimerCompleteHandler);
volume = 0;
channel.stop();
channel = null;
timer.stop();
timer = null;
}
}
}//package
Section 45
//Map (Map)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.geom.*;
import flash.ui.*;
public class Map extends MovieClip {
public var cursorPositionOnClick:Point;
public var greenFlag:GreenFlag;
public var world:World;
public var cursor:MapCursor;
public var redFlag:RedFlag;
public var data:Object;
public var distance:Distance;
public static var MAP_CLICK:String = "mapClick";
public function Map():void{
world.cacheAsBitmap = true;
}
public function theDistance():Distance{
var _local1:*;
var _local2:*;
var _local3:Number;
if (((redFlag) && (greenFlag))){
_local2 = (redFlag.x - greenFlag.x);
_local3 = (redFlag.y - greenFlag.y);
_local1 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3)));
};
distance.init({radius:_local1});
distance.x = greenFlag.x;
distance.y = greenFlag.y;
addChild(distance);
return (distance);
}
public function init(_arg1:Object):void{
this.data = _arg1;
world.init(_arg1);
cursor = new MapCursor();
addChild(cursor);
distance = new Distance();
distance.cacheAsBitmap = true;
Mouse.hide();
}
private function mouseMoveHandler(_arg1:MouseEvent):void{
Mouse.hide();
cursor.x = _arg1.localX;
cursor.y = _arg1.localY;
_arg1.updateAfterEvent();
cursor.visible = true;
}
public function removeListeners():void{
removeEventListener(MouseEvent.MOUSE_OVER, mouseMoveHandler);
removeEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
removeEventListener(MouseEvent.CLICK, mouseClickHandler);
}
public function theGreenFlag(_arg1:Number, _arg2:Number):GreenFlag{
greenFlag = new GreenFlag();
greenFlag.stop();
greenFlag.x = _arg1;
greenFlag.y = _arg2;
if (redFlag){
theDistance();
//unresolved jump
};
addChild(greenFlag);
setTimeout(greenFlag.play, 0);
return (greenFlag);
}
public function dispose():void{
cursorPositionOnClick = null;
removeListeners();
Mouse.show();
data = null;
if (greenFlag){
if (contains(greenFlag)){
removeChild(greenFlag);
};
greenFlag = null;
};
if (redFlag){
if (contains(redFlag)){
removeChild(redFlag);
};
redFlag = null;
};
if (cursor){
if (contains(cursor)){
removeChild(cursor);
};
cursor = null;
};
if (distance){
if (contains(distance)){
removeChild(distance);
};
distance = null;
};
}
private function mouseOutHandler(_arg1:MouseEvent):void{
Mouse.show();
cursor.visible = false;
}
public function addListeners():void{
addEventListener(MouseEvent.MOUSE_OVER, mouseMoveHandler);
addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
addEventListener(MouseEvent.CLICK, mouseClickHandler);
addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
}
private function mouseClickHandler(_arg1:MouseEvent):void{
cursor.x = _arg1.localX;
cursor.y = _arg1.localY;
cursorPositionOnClick = new Point(cursor.x, cursor.y);
dispatchEvent(new Event(MAP_CLICK));
removeListeners();
removeChild(cursor);
Mouse.show();
}
public function theRedFlag(_arg1:Number, _arg2:Number):RedFlag{
redFlag = new RedFlag();
redFlag.stop();
redFlag.x = _arg1;
redFlag.y = _arg2;
if (greenFlag){
theDistance();
//unresolved jump
};
addChild(redFlag);
setTimeout(redFlag.play, 250);
return (redFlag);
}
}
}//package
Section 46
//MapCursor (MapCursor)
package {
import flash.display.*;
public class MapCursor extends Shape {
public function MapCursor(){
visible = false;
draw();
}
public function draw():void{
graphics.clear();
graphics.lineStyle(0.25, 0, 0.5);
graphics.drawCircle(0, 0, 15);
graphics.lineStyle(0.25, 0xFFFFFF, 0.5);
graphics.moveTo(0, -20);
graphics.lineTo(0, -1);
graphics.moveTo(0, 1);
graphics.lineTo(0, 20);
graphics.moveTo(-20, 0);
graphics.lineTo(-1, 0);
graphics.moveTo(1, 0);
graphics.lineTo(20, 0);
}
}
}//package
Section 47
//NextButton (NextButton)
package {
import flash.display.*;
public class NextButton extends MovieClip {
public var nextButtonMask:MovieClip;
public function NextButton():void{
}
public function init():void{
}
public function dispose():void{
}
}
}//package
Section 48
//RedFlag (RedFlag)
package {
import flash.display.*;
public class RedFlag extends MovieClip {
public function RedFlag():void{
addFrameScript(10, frame11);
}
function frame11(){
stop();
}
}
}//package
Section 49
//Scorebox (Scorebox)
package {
import flash.events.*;
import flash.display.*;
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.text.*;
public class Scorebox extends MovieClip {
public var score:TextField;
public var level:TextField;
public var data:Object;
public function Scorebox():void{
}
public function init(_arg1:Object):void{
this.data = _arg1;
level.text = (_arg1.currentLevel + 1);
score.text = _arg1.score;
}
}
}//package
Section 50
//Splash (Splash)
package {
import flash.events.*;
import flash.display.*;
import com.kongregate.as3.client.*;
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.text.*;
import flash.net.*;
public class Splash extends MovieClip {
public var inTween:Tween;
public var data:Object;
public var goal:TextField;
public var startButton:MovieClip;
public var title:TextField;
public var playMoreButton:MovieClip;
public var outTween:Tween;
public static var GO:String = "splashGo";
public static var READY:String = "splashReady";
public function Splash():void{
cacheAsBitmap = true;
}
public function outTweenFinishHandler(_arg1:TweenEvent):void{
outTween.removeEventListener(TweenEvent.MOTION_FINISH, outTweenFinishHandler);
outTween = null;
dispatchEvent(new Event(GO));
}
public function playMoreButtonClickHandler(_arg1:MouseEvent):void{
var event = _arg1;
var request:URLRequest = new URLRequest("http://games.dschini.org/");
try {
navigateToURL(request, "_blank");
} catch(e:Error) {
};
}
public function startButtonClickHandler(_arg1:MouseEvent):void{
startButton.removeEventListener(MouseEvent.CLICK, startButtonClickHandler);
outTween = new Tween(this, "alpha", Regular.easeIn, 1, 0, 10);
outTween.addEventListener(TweenEvent.MOTION_FINISH, outTweenFinishHandler);
}
public function inTweenFinishHandler(_arg1:TweenEvent):void{
inTween.removeEventListener(TweenEvent.MOTION_FINISH, inTweenFinishHandler);
inTween = null;
dispatchEvent(new Event(READY));
}
public function init(_arg1:Object):void{
this.data = _arg1;
title.text = ("Level " + (_arg1.currentLevel + 1));
goal.text = ((_arg1.levels[_arg1.currentLevel].minScore + "/") + _arg1.levels[_arg1.currentLevel].maxTargets);
kongregate = KongregateAPI.getInstance();
kongregate.stats.submit("Level", (_arg1.currentLevel + 1));
startButton.buttonMode = true;
startButton.addEventListener(MouseEvent.CLICK, startButtonClickHandler);
playMoreButton.buttonMode = true;
playMoreButton.addEventListener(MouseEvent.CLICK, playMoreButtonClickHandler);
inTween = new Tween(this, "alpha", Regular.easeOut, 0, 1, 10);
inTween.addEventListener(TweenEvent.MOTION_FINISH, inTweenFinishHandler);
}
}
}//package
Section 51
//Statusbox (Statusbox)
package {
import flash.events.*;
import flash.display.*;
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.text.*;
public class Statusbox extends MovieClip {
public var yours:TextField;
public var data:Object;
public var target:TextField;
public var tweenScoreMask:Tween;
public var levelscoreMask:MovieClip;
public var required:TextField;
public function Statusbox():void{
levelscoreMask.width = 0;
}
public function tweenHandler(_arg1:TweenEvent):void{
tweenScoreMask.removeEventListener(TweenEvent.MOTION_FINISH, tweenHandler);
tweenScoreMask = null;
}
public function init(_arg1:Object):void{
this.data = _arg1;
required.text = _arg1.levels[_arg1.currentLevel].minScore;
yours.text = _arg1.levels[_arg1.currentLevel].score;
target.text = (((_arg1.currentLevelTarget + 1) + "/") + _arg1.levels[_arg1.currentLevel].maxTargets);
tweenScoreMaskTarget = ((150 / _arg1.levels[_arg1.currentLevel].minScore) * _arg1.levels[_arg1.currentLevel].score);
tweenScoreMask = new Tween(levelscoreMask, "width", Strong.easeOut, levelscoreMask.width, tweenScoreMaskTarget, 10);
tweenScoreMask.addEventListener(TweenEvent.MOTION_FINISH, tweenHandler);
}
public function dispose():void{
tweenScoreMask.removeEventListener(TweenEvent.MOTION_FINISH, tweenHandler);
tweenScoreMask = null;
data = null;
}
}
}//package
Section 52
//TargetText (TargetText)
package {
import flash.events.*;
import flash.display.*;
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.utils.*;
import flash.text.*;
public class TargetText extends MovieClip {
public var title:TextField;
public function TargetText():void{
this.cacheAsBitmap = true;
title.antiAliasType = AntiAliasType.ADVANCED;
title.embedFonts = true;
title.autoSize = TextFieldAutoSize.CENTER;
}
public function init(_arg1:String):void{
title.text = _arg1;
title.y = (-(title.height) / 2);
}
}
}//package
Section 53
//Timerbar (Timerbar)
package {
import flash.events.*;
import flash.display.*;
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.utils.*;
import flash.text.*;
import flash.geom.*;
public class Timerbar extends MovieClip {
public var timerbarMask:MovieClip;
public var timer:Timer;
public var inTween:Tween;
var colorTransform:ColorTransform;
public var timerbarBar:MovieClip;
public var interpret:TextField;
public var duration:uint;
public var title:TextField;
public var volume:MovieClip;
public var data:Object;
public var outTween:Tween;
public static var TIMER_FREEZE:String = "timerFreeze";
public static var TOOGLE_SOUND:String = "toogleSound";
public static var TIMER_FINISH:String = "timerFinish";
public function Timerbar():void{
timer = new Timer(5);
timer.addEventListener(TimerEvent.TIMER, timerHandler);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, timerCompleteHandler);
volume.addEventListener(MouseEvent.CLICK, volumeClickHandler);
volume.buttonMode = true;
colorTransform = timerbarBar.transform.colorTransform;
colorTransform.color = 0x6600;
timerbarBar.transform.colorTransform = colorTransform;
}
public function init(_arg1:Object):void{
this.data = _arg1;
volume.alpha = ((_arg1.volume <= 0)) ? 0.25 : 0.75;
interpret.alpha = ((_arg1.volume <= 0)) ? 0.25 : 1;
interpret.text = ((_arg1.levels[_arg1.currentLevel].loop.title + " by ") + _arg1.levels[_arg1.currentLevel].loop.author);
colorTransform.color = 0x6600;
timerbarBar.transform.colorTransform = colorTransform;
duration = _arg1.levels[_arg1.currentLevel].maxTime;
timer.repeatCount = (duration / 5);
timer.reset();
timer.start();
}
public function freeze():void{
timer.stop();
dispatchEvent(new Event(TIMER_FREEZE));
}
public function volumeClickHandler(_arg1:MouseEvent):void{
dispatchEvent(new Event(TOOGLE_SOUND));
volume.alpha = ((data.volume <= 0)) ? 0.25 : 0.75;
interpret.alpha = ((data.volume <= 0)) ? 0.25 : 1;
}
public function timerHandler(_arg1:TimerEvent):void{
title.text = (Math.round(((duration - (timer.currentCount * timer.delay)) / 1000)) + " seconds left");
timerbarMask.scaleX = ((1 / duration) * (duration - (timer.currentCount * timer.delay)));
if (timerbarMask.scaleX <= 0.25){
colorTransform.color = 0x990000;
} else {
if (timerbarMask.scaleX <= 0.5){
colorTransform.color = 0x996600;
} else {
if (timerbarMask.scaleX <= 0.75){
colorTransform.color = 0x6666;
} else {
colorTransform.color = 0x6600;
};
};
};
timerbarBar.transform.colorTransform = colorTransform;
}
public function dispose():void{
if (volume){
volume.removeEventListener(MouseEvent.CLICK, volumeClickHandler);
};
if (timer){
timer.stop();
timer.removeEventListener(TimerEvent.TIMER, timerHandler);
timer.removeEventListener(TimerEvent.TIMER_COMPLETE, timerCompleteHandler);
timer = null;
};
}
public function timerCompleteHandler(_arg1:TimerEvent):void{
dispatchEvent(new Event(TIMER_FINISH));
}
}
}//package
Section 54
//TrailerText (TrailerText)
package {
import flash.events.*;
import flash.display.*;
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.utils.*;
import flash.text.*;
public class TrailerText extends MovieClip {
public var outTweenAlpha:Tween;
public var inTweenX:Tween;
public var inTweenY:Tween;
public var duration:uint;
public var inTweenAlpha:Tween;
public var outTweenX:Tween;
public var outTweenY:Tween;
public var title:TextField;
public function TrailerText():void{
this.cacheAsBitmap = true;
title.embedFonts = true;
}
public function outTweenFinishHandler():void{
outTweenX = null;
outTweenY = null;
outTweenAlpha = null;
}
public function inTweenFinishHandler():void{
inTweenX = null;
inTweenY = null;
inTweenAlpha = null;
outTweenX = new Tween(this, "scaleX", Strong.easeIn, 1, 0.5, ((duration / 2) / 1000), true);
outTweenY = new Tween(this, "scaleY", Strong.easeIn, 1, 0.5, ((duration / 2) / 1000), true);
outTweenAlpha = new Tween(this, "alpha", Strong.easeIn, 1, 0, ((duration / 2) / 1000), true);
setTimeout(outTweenFinishHandler, (duration / 2));
}
public function init(_arg1:Object):void{
title.text = _arg1.title;
duration = _arg1.duration;
inTweenX = new Tween(this, "scaleX", Strong.easeOut, 1.5, 1, ((duration / 2) / 1000), true);
inTweenY = new Tween(this, "scaleY", Strong.easeOut, 1.5, 1, ((duration / 2) / 1000), true);
inTweenAlpha = new Tween(this, "alpha", Strong.easeOut, 0, 1, ((duration / 2) / 1000), true);
setTimeout(inTweenFinishHandler, (duration / 2));
}
}
}//package
Section 55
//URL (URL)
package {
public class URL {
private var _scheme:String;
private var _host:String;
private var _query:String;
private var _path:String;
private var _userinfo:String;
private var _port:String;
private var _url:String;
private var _fragment:String;
private static const PATTERN:RegExp = /^([A-Za-z0-9_+.]{1,8}:\/\/)?([!-~]+@)?([^\/?#:]*)(:[0-9]*)?(\/[^?#]*)?(\?[^#]*)?(\#.*)?/i;
public function URL(_arg1:String):void{
var _local2:Array = _arg1.match(URL.PATTERN);
_url = _local2[0];
_scheme = _local2[1];
_userinfo = _local2[2];
_host = _local2[3];
_port = _local2[4];
_path = _local2[5];
_query = _local2[6];
_fragment = _local2[7];
}
public function get port():int{
return (((_port.length <= 0)) ? undefined : int(_port.substring(1, _port.length)));
}
public function get fragment():String{
return (((_fragment.length <= 0)) ? undefined : _fragment);
}
public function get query():Object{
var _local2:String;
var _local3:Array;
var _local4:int;
var _local5:Array;
var _local1:* = {raw:undefined, parsed:undefined};
if (((_query) && ((_query.length > 0)))){
_local1.raw = _query;
_local2 = _query.substring(1, _query.length);
_local3 = _local2.split("&");
_local1.parsed = ((_local3.length > 0)) ? {} : undefined;
_local4 = 0;
while (_local4 < _local3.length) {
_local5 = _local3[_local4].split("=");
_local1.parsed[_local5[0]] = _local5[1];
_local4++;
};
};
return (_local1);
}
public function get scheme():String{
return (((_scheme.length <= 0)) ? undefined : _scheme.substring(0, (_scheme.length - 3)));
}
public function get host():String{
return (((_host.length <= 0)) ? undefined : _host);
}
public function get path():String{
return (((_path.length <= 0)) ? undefined : _path);
}
public function get url():String{
return (((_url.length <= 0)) ? undefined : _url);
}
public function get userinfo():Object{
var _local2:Array;
var _local1:* = {user:undefined, pass:undefined};
if (_userinfo){
_local2 = _userinfo.substring(0, (_userinfo.length - 1)).split(":");
_local1.user = (_local2[0]) ? _local2[0] : _local1.user;
_local1.pass = (_local2[1]) ? _local2[1] : _local1.pas;
};
return (_local1);
}
}
}//package
Section 56
//Win (Win)
package {
import flash.events.*;
import flash.display.*;
import com.kongregate.as3.client.*;
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.text.*;
import flash.net.*;
import flash.errors.*;
public class Win extends MovieClip {
public var inTween:Tween;
public var copyright:MovieClip;
public var urlVariables:URLVariables;
public var outTween:Tween;
public var kongregate:KongregateAPI;
public var playAgainButton:MovieClip;
public var scoreText:TextField;
public var urlRequest:URLRequest;
public var urlLoader:URLLoader;
public var data:Object;
public var playMoreButton:MovieClip;
public static var PLAY_AGAIN:String = "winPlayAgain";
public function Win():void{
cacheAsBitmap = true;
}
public function playMoreButtonClickHandler(_arg1:MouseEvent):void{
var event = _arg1;
var request:URLRequest = new URLRequest("http://games.dschini.org/");
try {
navigateToURL(request, "_blank");
} catch(e:Error) {
};
}
public function outTweenFinishHandler(_arg1:TweenEvent):void{
outTween.removeEventListener(TweenEvent.MOTION_FINISH, outTweenFinishHandler);
outTween = null;
dispatchEvent(new Event(PLAY_AGAIN));
}
public function inTweenFinishHandler(_arg1:TweenEvent):void{
inTween.removeEventListener(TweenEvent.MOTION_FINISH, inTweenFinishHandler);
inTween = null;
}
public function init(_arg1:Object):void{
this.data = _arg1;
kongregate = KongregateAPI.getInstance();
kongregate.scores.submit(_arg1.score);
kongregate.stats.submit("Score", _arg1.score);
kongregate.stats.submit("Wins", 1);
scoreText.text = _arg1.score;
playAgainButton.buttonMode = true;
playAgainButton.addEventListener(MouseEvent.CLICK, playAgainButtonClickHandler);
playMoreButton.buttonMode = true;
playMoreButton.addEventListener(MouseEvent.CLICK, playMoreButtonClickHandler);
inTween = new Tween(this, "alpha", Regular.easeOut, 0, 1, 10);
inTween.addEventListener(TweenEvent.MOTION_FINISH, inTweenFinishHandler);
}
public function playAgainButtonClickHandler(_arg1:MouseEvent):void{
playAgainButton.removeEventListener(MouseEvent.CLICK, playAgainButtonClickHandler);
outTween = new Tween(this, "alpha", Regular.easeIn, 1, 0, 10);
outTween.addEventListener(TweenEvent.MOTION_FINISH, outTweenFinishHandler);
}
}
}//package
Section 57
//World (World)
package {
import flash.events.*;
import flash.display.*;
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.utils.*;
import flash.geom.*;
public class World extends MovieClip {
public var worldBackground:WorldBackground;
public var data:Object;
public var worldBorders:WorldBorders;
public var worldShape:WorldShape;
public function World():void{
}
public function dispose():void{
if (contains(worldBorders)){
removeChild(worldBorders);
};
worldBorders = null;
if (contains(worldBackground)){
removeChild(worldBackground);
};
worldBackground = null;
if (contains(worldShape)){
removeChild(worldShape);
};
worldShape = null;
}
public function init(_arg1:Object):void{
var _local2:ColorTransform;
var _local3:ColorTransform;
var _local4:ColorTransform;
this.data = _arg1;
if (!worldShape){
worldShape = new WorldShape();
worldShape.cacheAsBitmap = true;
addChild(worldShape);
};
if (!worldBackground){
worldBackground = new WorldBackground();
worldBackground.cacheAsBitmap = true;
addChild(worldBackground);
};
if (!worldBorders){
worldBorders = new WorldBorders();
worldBorders.cacheAsBitmap = true;
addChild(worldBorders);
};
if (_arg1.levels[_arg1.currentLevel].mapBackground){
_local2 = worldBackground.transform.colorTransform;
_local2.color = _arg1.levels[_arg1.currentLevel].mapBackgroundColor;
worldBackground.transform.colorTransform = _local2;
} else {
if (contains(worldBackground)){
removeChild(worldBackground);
};
};
if (_arg1.levels[_arg1.currentLevel].mapBorders){
_local3 = worldBorders.transform.colorTransform;
_local3.color = _arg1.levels[_arg1.currentLevel].mapBordersColor;
worldBorders.transform.colorTransform = _local3;
} else {
if (contains(worldBorders)){
removeChild(worldBorders);
};
};
if (_arg1.levels[_arg1.currentLevel].mapShape){
_local4 = worldShape.transform.colorTransform;
_local4.color = _arg1.levels[_arg1.currentLevel].mapShapeColor;
worldShape.transform.colorTransform = _local4;
} else {
if (contains(worldShape)){
removeChild(worldShape);
};
};
}
}
}//package
Section 58
//WorldBackground (WorldBackground)
package {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class WorldBackground extends MovieClip {
public function WorldBackground():void{
alpha = 0.5;
}
public function init():void{
}
public function dispose():void{
}
}
}//package
Section 59
//WorldBorders (WorldBorders)
package {
import flash.display.*;
public class WorldBorders extends MovieClip {
public function WorldBorders():void{
}
public function init():void{
}
public function dispose():void{
}
}
}//package
Section 60
//WorldShape (WorldShape)
package {
import flash.display.*;
public class WorldShape extends MovieClip {
public function WorldShape():void{
}
public function init():void{
}
public function dispose():void{
}
}
}//package