Section 1
//ag_intro_mc_50 (AtomikKaos2_fla.ag_intro_mc_50)
package AtomikKaos2_fla {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.media.*;
import flash.text.*;
import flash.filters.*;
import flash.utils.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class ag_intro_mc_50 extends MovieClip {
public function ag_intro_mc_50(){
addFrameScript(217, frame218);
}
function frame218(){
stop();
MovieClip(parent).Proceed();
}
}
}//package AtomikKaos2_fla
Section 2
//SimpleButton2 (core.extensions.SimpleButton2)
package core.extensions {
import flash.display.*;
import flash.events.*;
public class SimpleButton2 extends SimpleButton {
public function SimpleButton2(){
addEventListener(MouseEvent.ROLL_OVER, PrivateOver);
addEventListener(MouseEvent.ROLL_OUT, PrivateOut);
addEventListener(MouseEvent.CLICK, PrivateClick);
addEventListener(Event.ADDED_TO_STAGE, PrivateBoot);
addEventListener(Event.REMOVED_FROM_STAGE, PrivateShutdown);
}
protected function Over(){
OverrideMessage();
}
protected function Boot(){
OverrideMessage();
}
protected function Out(){
OverrideMessage();
}
protected function Click(){
OverrideMessage();
}
protected function Shutdown(){
OverrideMessage();
}
private function OverrideMessage(){
}
private function PrivateOver(_arg1:MouseEvent){
Over();
}
private function PrivateShutdown(_arg1:Event){
removeEventListener(MouseEvent.CLICK, PrivateClick);
removeEventListener(Event.REMOVED_FROM_STAGE, PrivateShutdown);
Shutdown();
}
private function PrivateClick(_arg1:MouseEvent){
Click();
}
private function PrivateOut(_arg1:MouseEvent){
Out();
}
private function PrivateBoot(_arg1:Event){
Boot();
}
}
}//package core.extensions
Section 3
//Preloader (core.services.Preloader)
package core.services {
import flash.display.*;
import flash.events.*;
public class Preloader extends MovieClip {
public function Preloader(){
addEventListener(Event.ENTER_FRAME, UpdateCount);
addEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
private function Shutdown(_arg1:Event){
removeEventListener(Event.ENTER_FRAME, UpdateCount);
removeEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
private function UpdateCount(_arg1:Event){
Update((stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal));
}
protected function Update(_arg1:Number){
trace("Implement override function for Update!");
}
}
}//package core.services
Section 4
//Array2 (core.structures.Array2)
package core.structures {
public class Array2 implements Collection {
private var _a:Array;
private var _h:int;
private var _w:int;
public function Array2(_arg1:int, _arg2:int){
if ((((_arg1 < 1)) || ((_arg2 < 1)))){
throw (new Error("illegal size"));
};
_a = new Array((_w = _arg1), (_h = _arg2));
fill(null);
}
public function fill(_arg1):void{
var _local2:int;
var _local3:int;
var _local4:Class;
_local2 = (_w * _h);
if ((_arg1 is Class)){
_local4 = (_arg1 as Class);
_local3 = 0;
while (_local3 < _local2) {
_a[_local3] = new (_local4);
_local3++;
};
} else {
_local3 = 0;
while (_local3 < _local2) {
_a[_local3] = _arg1;
_local3++;
};
};
}
public function get width():int{
return (_w);
}
public function get size():int{
return ((_w * _h));
}
public function getCol(_arg1:int):Array{
var _local2:Array;
var _local3:int;
_local2 = [];
_local3 = 0;
while (_local3 < _h) {
_local2[_local3] = _a[int(((_local3 * _w) + _arg1))];
_local3++;
};
return (_local2);
}
public function shiftLeft():void{
var _local1:int;
var _local2:int;
var _local3:int;
if (_w == 1){
return;
};
_local1 = (_w - 1);
_local3 = 0;
while (_local3 < _h) {
_local2 = ((_local3 * _w) + _local1);
_a.splice(_local2, 0, _a.splice((_local2 - _local1), 1));
_local3++;
};
}
public function set width(_arg1:int):void{
resize(_arg1, _h);
}
public function appendCol(_arg1:Array):void{
var _local2:int;
_arg1.length = _h;
_local2 = 0;
while (_local2 < _h) {
_a.splice((((_local2 * _w) + _w) + _local2), 0, _arg1[_local2]);
_local2++;
};
_w++;
}
public function set height(_arg1:int):void{
resize(_w, _arg1);
}
public function shiftDown():void{
var _local1:int;
if (_h == 1){
return;
};
_local1 = ((_h - 1) * _w);
_a = _a.slice(_local1, (_local1 + _w)).concat(_a);
_a.splice((_h * _w), _w);
}
public function clear():void{
_a = new Array(size);
}
public function get(_arg1:int, _arg2:int){
return (_a[int(((_arg2 * _w) + _arg1))]);
}
public function setRow(_arg1:uint, _arg2:Array):void{
var _local3:int;
var _local4:int;
if ((((_arg1 < 0)) || ((_arg1 > _h)))){
throw (new Error("row index out of bounds"));
};
_local3 = (_arg1 * _w);
_local4 = 0;
while (_local4 < _w) {
_a[int((_local3 + _local4))] = _arg2[_local4];
_local4++;
};
}
public function prependCol(_arg1:Array):void{
var _local2:int;
_arg1.length = _h;
_local2 = 0;
while (_local2 < _h) {
_a.splice(((_local2 * _w) + _local2), 0, _arg1[_local2]);
_local2++;
};
_w++;
}
public function isEmpty():Boolean{
return (false);
}
public function toArray():Array{
var _local1:Array;
var _local2:int;
_local1 = _a.concat();
_local2 = size;
if (_local1.length > _local2){
_local1.length = _local2;
};
return (_local1);
}
public function contains(_arg1):Boolean{
var _local2:int;
var _local3:int;
_local2 = size;
_local3 = 0;
while (_local3 < _local2) {
if (_a[_local3] === _arg1){
return (true);
};
_local3++;
};
return (false);
}
public function appendRow(_arg1:Array):void{
_arg1.length = _w;
_a = _a.concat(_arg1);
_h++;
}
public function dump():String{
var _local1:String;
var _local2:int;
var _local3:*;
var _local4:int;
var _local5:int;
_local1 = "Array2\n{";
_local4 = 0;
while (_local4 < _h) {
_local1 = (_local1 + ("\n" + "\t"));
_local2 = (_local4 * _w);
_local5 = 0;
while (_local5 < _w) {
_local3 = _a[int((_local2 + _local5))];
_local1 = (_local1 + (("[" + ((_local3)!=undefined) ? _local3 : "?") + "]"));
_local5++;
};
_local4++;
};
_local1 = (_local1 + "\n}");
return (_local1);
}
public function getArray():Array{
return (_a);
}
public function getRow(_arg1:int):Array{
var _local2:int;
_local2 = (_arg1 * _w);
return (_a.slice(_local2, (_local2 + _w)));
}
public function get height():int{
return (_h);
}
public function getIterator():Iterator{
return (new Array2Iterator(this));
}
public function prependRow(_arg1:Array):void{
_arg1.length = _w;
_a = _arg1.concat(_a);
_h++;
}
public function set(_arg1:int, _arg2:int, _arg3):void{
_a[int(((_arg2 * _w) + _arg1))] = _arg3;
}
public function resize(_arg1:int, _arg2:int):void{
var _local3:Array;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
if ((((_arg1 < 1)) || ((_arg2 < 1)))){
throw (new Error("illegal size"));
};
_local3 = _a.concat();
_a.length = 0;
_a.length = (_arg1 * _arg2);
_local4 = ((_arg1 < _w)) ? _arg1 : _w;
_local5 = ((_arg2 < _h)) ? _arg2 : _h;
_local7 = 0;
while (_local7 < _local5) {
_local8 = (_local7 * _arg1);
_local9 = (_local7 * _w);
_local6 = 0;
while (_local6 < _local4) {
_a[int((_local8 + _local6))] = _local3[int((_local9 + _local6))];
_local6++;
};
_local7++;
};
_w = _arg1;
_h = _arg2;
}
public function transpose():void{
var _local1:Array;
var _local2:int;
var _local3:int;
_local1 = _a.concat();
_local2 = 0;
while (_local2 < _h) {
_local3 = 0;
while (_local3 < _w) {
_a[int(((_local3 * _w) + _local2))] = _local1[int(((_local2 * _w) + _local3))];
_local3++;
};
_local2++;
};
}
public function shiftRight():void{
var _local1:int;
var _local2:int;
var _local3:int;
if (_w == 1){
return;
};
_local1 = (_w - 1);
_local3 = 0;
while (_local3 < _h) {
_local2 = ((_local3 * _w) + _local1);
_a.splice((_local2 - _local1), 0, _a.splice(_local2, 1));
_local3++;
};
}
public function toString():String{
return ((((("[Array2, width=" + width) + ", height=") + height) + "]"));
}
public function shiftUp():void{
if (_h == 1){
return;
};
_a = _a.concat(_a.slice(0, _w));
_a.splice(0, _w);
}
public function setCol(_arg1:int, _arg2:Array):void{
var _local3:int;
if ((((_arg1 < 0)) || ((_arg1 > _w)))){
throw (new Error("column index out of bounds"));
};
_local3 = 0;
while (_local3 < _h) {
_a[int(((_local3 * _w) + _arg1))] = _arg2[_local3];
_local3++;
};
}
}
}//package core.structures
class Array2Iterator implements Iterator {
private var _a2:Array2;
private var _xCursor:int;
private var _yCursor:int;
private function Array2Iterator(_arg1:Array2){
_a2 = _arg1;
_xCursor = (_yCursor = 0);
}
public function start():void{
_xCursor = (_yCursor = 0);
}
public function hasNext():Boolean{
return ((((_yCursor * _a2.width) + _xCursor) < _a2.size));
}
public function get data(){
return (_a2.get(_xCursor, _yCursor));
}
public function set data(_arg1):void{
_a2.set(_xCursor, _yCursor, _arg1);
}
public function next(){
var _local1:*;
_local1 = data;
if (++_xCursor == _a2.width){
_yCursor++;
_xCursor = 0;
};
return (_local1);
}
}
Section 5
//Collection (core.structures.Collection)
package core.structures {
public interface Collection {
function isEmpty():Boolean;
function getIterator():Iterator;
function get size():int;
function clear():void;
function toArray():Array;
function contains(_arg1):Boolean;
}
}//package core.structures
Section 6
//Iterator (core.structures.Iterator)
package core.structures {
public interface Iterator {
function start():void;
function next();
function set data(_arg1):void;
function get data();
function hasNext():Boolean;
}
}//package core.structures
Section 7
//Application (core.systems.Application)
package core.systems {
import flash.display.*;
public class Application extends MovieClip {
protected var previousSceneArguments:String;
protected var currentSceneArguments:String;
protected var currentSceneClass:Class;
protected var gameScene:DisplayObject;
protected var previousSceneClass:Class;
protected var gameDialog:DisplayObject;
public function Back(){
StartScene(previousSceneClass, previousSceneArguments);
}
public function StartScene(_arg1:Class, _arg2:String=null){
previousSceneClass = currentSceneClass;
previousSceneArguments = currentSceneArguments;
currentSceneClass = _arg1;
currentSceneArguments = _arg2;
DeleteScene();
if (_arg2 == null){
gameScene = new (_arg1);
} else {
gameScene = new _arg1(_arg2);
};
gameScene.x = 0;
gameScene.y = 0;
addChild(gameScene);
}
public function CloseDialog(){
if (gameDialog != null){
removeChild(gameDialog);
gameDialog = null;
};
}
public function OpenDialog(_arg1:Class, _arg2:String=null){
CloseDialog();
if (_arg2 == null){
gameDialog = new (_arg1);
} else {
gameDialog = new _arg1(_arg2);
};
gameDialog.x = 0;
gameDialog.y = 0;
addChild(gameDialog);
}
public function DeleteScene(){
if (gameScene != null){
removeChild(gameScene);
gameScene = null;
};
}
}
}//package core.systems
Section 8
//Audio (core.systems.Audio)
package core.systems {
import flash.media.*;
public class Audio {
private var currentMusic:Class;
private var mTrfm:Array;
private var mClss:Array;
private var sTrfm:Array;
private var sClss:Array;
private var mMute:Boolean;
private var mChnl:Array;
private var sMute:Boolean;
private var sChnl:Array;
public function Audio(){
sMute = false;
mMute = false;
sChnl = new Array();
sClss = new Array();
sTrfm = new Array();
mChnl = new Array();
mClss = new Array();
mTrfm = new Array();
currentMusic = null;
}
public function ToggleSound(){
sMute = !(sMute);
}
public function RegisterSound(_arg1:Class, _arg2:Number=1, _arg3:Number=0){
sChnl[_arg1] = new SoundChannel();
sClss[_arg1] = new (_arg1);
sTrfm[_arg1] = new SoundTransform(_arg2, _arg3);
}
public function ToggleMusic(){
var _local1:Class;
mMute = !(mMute);
if (mMute){
StopMusic();
} else {
_local1 = currentMusic;
currentMusic = null;
PlayMusic(_local1);
};
}
public function PlaySound(_arg1:Class){
if (!sMute){
sChnl[_arg1] = sClss[_arg1].play();
sChnl[_arg1].soundTransform = sTrfm[_arg1];
};
}
public function RegisterMusic(_arg1:Class, _arg2:Number=1, _arg3:Number=0){
mChnl[_arg1] = new SoundChannel();
mClss[_arg1] = new (_arg1);
mTrfm[_arg1] = new SoundTransform(_arg2, _arg3);
}
public function StopMusic(){
if (currentMusic != null){
mChnl[currentMusic].stop();
};
}
public function PlayMusic(_arg1:Class){
if (!mMute){
if (((!((currentMusic == null))) && (!((currentMusic == _arg1))))){
StopMusic();
};
if (currentMusic != _arg1){
mChnl[_arg1] = mClss[_arg1].play(0, 9999);
mChnl[_arg1].soundTransform = mTrfm[_arg1];
};
};
currentMusic = _arg1;
}
}
}//package core.systems
Section 9
//File (core.systems.File)
package core.systems {
import flash.net.*;
public class File {
private var mObject:SharedObject;
public function File(_arg1:String){
mObject = SharedObject.getLocal(_arg1);
if (mObject.data.name == undefined){
Create(_arg1);
} else {
trace((("File :: Local object " + _arg1) + " exists."));
};
}
public function Read(_arg1:String):Number{
_arg1 = _arg1.toLowerCase();
if (mObject.data.values[_arg1] != undefined){
trace((((("File :: " + _arg1) + " returned the value ") + mObject.data.values[_arg1]) + "."));
return (mObject.data.values[_arg1]);
};
trace((("File :: " + _arg1) + " has no value, returning 0."));
return (0);
}
public function Create(_arg1:String){
mObject.data.name = _arg1;
mObject.data.values = new Array();
mObject.flush();
trace((("File :: Local object " + _arg1) + " created."));
}
public function Erase(){
mObject.clear();
trace("File :: Object deleted from disk.");
}
public function Write(_arg1:String, _arg2:Number){
_arg1 = _arg1.toLowerCase();
mObject.data.values[_arg1] = _arg2;
mObject.flush();
trace(((("File :: " + _arg1) + " = ") + _arg2));
}
}
}//package core.systems
Section 10
//Clock (core.utilities.Clock)
package core.utilities {
import flash.utils.*;
public class Clock {
protected var initialTime:int;// = 0
protected var lastTime:int;// = 0
protected var needToUpdateDSec:Boolean;// = true
protected var isPaused:Boolean;// = false
protected var totalTimeSec:Number;// = 0
protected var pauseTime:int;// = 0
protected var totalTime:int;// = 0
protected var needToUpdateTSec:Boolean;// = true
protected var delta:int;// = 0
protected var deltaSec:Number;// = 0
protected var actualTime:int;// = 0
protected var initialPauseTime:int;// = 0
public function Clock(){
initialTime = 0;
initialPauseTime = 0;
lastTime = 0;
actualTime = 0;
totalTime = 0;
delta = 0;
pauseTime = 0;
totalTimeSec = 0;
deltaSec = 0;
needToUpdateTSec = true;
needToUpdateDSec = true;
isPaused = false;
super();
lastTime = (initialTime = getTimer());
}
public function Update():int{
if (!isPaused){
actualTime = getTimer();
totalTime = ((actualTime - initialTime) - pauseTime);
delta = (actualTime - lastTime);
lastTime = actualTime;
needToUpdateTSec = true;
needToUpdateDSec = true;
return (delta);
};
return (0);
}
public function Pause(_arg1:Boolean=true){
var _local2:Number;
if (_arg1 == isPaused){
return;
};
actualTime = getTimer();
if (_arg1){
initialPauseTime = actualTime;
} else {
_local2 = (actualTime - initialPauseTime);
pauseTime = (pauseTime + _local2);
totalTime = ((actualTime - initialTime) - pauseTime);
delta = ((actualTime - lastTime) - _local2);
lastTime = actualTime;
};
isPaused = _arg1;
}
public function get TotalTimeMs():int{
return (totalTime);
}
public function get DeltaSec():Number{
if (needToUpdateDSec){
deltaSec = (delta * 0.001);
needToUpdateDSec = false;
};
return (deltaSec);
}
public function get DeltaMs():Number{
return (delta);
}
public function get IsPaused():Boolean{
return (isPaused);
}
public function get TotalTimeSec():Number{
if (needToUpdateTSec){
totalTimeSec = (totalTime * 0.001);
needToUpdateTSec = false;
};
return (totalTimeSec);
}
public function Reset(_arg1:Boolean=false){
isPaused = _arg1;
initialTime = getTimer();
lastTime = initialTime;
initialPauseTime = 0;
delta = 0;
totalTime = 0;
pauseTime = 0;
needToUpdateTSec = true;
needToUpdateDSec = true;
}
}
}//package core.utilities
Section 11
//Math2 (core.utilities.Math2)
package core.utilities {
import flash.geom.*;
import flash.display.*;
public class Math2 {
public static const HALF_PI:Number = 1.5707963267949;
public static const DOUBLE_PI:Number = 6.28318530717959;
public static function Rad2Deg(_arg1:Number):Number{
return ((_arg1 * (180 / Math.PI)));
}
public static function RandomI(_arg1:uint, _arg2:uint):uint{
return (Math.round(((Math.random() * (_arg2 - _arg1)) + _arg1)));
}
public static function GetAngleBetweenObjects(_arg1:DisplayObject, _arg2:DisplayObject):Number{
var _local3:Point;
var _local4:Point;
_local3 = new Point(_arg1.x, _arg1.y);
_local4 = new Point(_arg2.x, _arg2.y);
_local3 = _arg1.localToGlobal(_local3);
_local4 = _arg2.localToGlobal(_local4);
return (GetAngleBetweenPoints(_local3, _local4));
}
public static function Deg2Rad(_arg1:Number):Number{
return ((_arg1 * (Math.PI / 180)));
}
public static function RandomN(_arg1:Number, _arg2:Number):Number{
return (((Math.random() * (_arg2 - _arg1)) + _arg1));
}
public static function GetAngleBetweenPoints(_arg1:Point, _arg2:Point):Number{
return (Rad2Deg(Math.atan2((_arg2.y - _arg1.y), (_arg2.x - _arg1.x))));
}
}
}//package core.utilities
Section 12
//AdLoader (CPMStar.AdLoader)
package CPMStar {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.system.*;
public class AdLoader extends Sprite {
private var contentspotid:String;
private var cpmstarLoader:Loader;
public function AdLoader(_arg1:String){
this.contentspotid = _arg1;
addEventListener(Event.ADDED, addedHandler);
}
private function addedHandler(_arg1:Event):void{
var _local2:String;
var _local3:DisplayObjectContainer;
removeEventListener(Event.ADDED, addedHandler);
Security.allowDomain("server.cpmstar.com");
_local2 = "http://server.cpmstar.com/adviewas3.swf";
_local3 = parent;
cpmstarLoader = new Loader();
cpmstarLoader.contentLoaderInfo.addEventListener(Event.INIT, dispatchHandler);
cpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler);
cpmstarLoader.load(new URLRequest(((_local2 + "?contentspotid=") + contentspotid)));
addChild(cpmstarLoader);
}
private function dispatchHandler(_arg1:Event):void{
dispatchEvent(_arg1);
}
}
}//package CPMStar
Section 13
//AchievementsOk (game.buttons.AchievementsOk)
package game.buttons {
import game.data.*;
import core.extensions.*;
public class AchievementsOk extends SimpleButton2 {
override protected function Click(){
Objects.achievementsDialog.RenderScreen();
}
}
}//package game.buttons
Section 14
//ArmorGamesButton (game.buttons.ArmorGamesButton)
package game.buttons {
import game.data.*;
import core.extensions.*;
public class ArmorGamesButton extends SimpleButton2 {
override protected function Click(){
Objects.appManager.OpenURL("http://www.armorgames.com");
}
}
}//package game.buttons
Section 15
//GenericAchievements (game.buttons.GenericAchievements)
package game.buttons {
import game.scenes.*;
import game.data.*;
import core.extensions.*;
public class GenericAchievements extends SimpleButton2 {
override protected function Click(){
Objects.appManager.StartScene(Achievements);
}
}
}//package game.buttons
Section 16
//GenericBack (game.buttons.GenericBack)
package game.buttons {
import game.data.*;
import core.extensions.*;
public class GenericBack extends SimpleButton2 {
override protected function Click(){
Objects.appManager.Back();
}
}
}//package game.buttons
Section 17
//GenericBriefing (game.buttons.GenericBriefing)
package game.buttons {
import game.scenes.*;
import game.data.*;
import core.extensions.*;
import game.dialogs.*;
public class GenericBriefing extends SimpleButton2 {
private var levelFailed:LevelFailed;
override protected function Boot(){
levelFailed = Objects.levelFailed;
}
override protected function Click(){
Objects.appManager.CloseDialog();
Objects.appManager.StartScene(Briefing);
}
}
}//package game.buttons
Section 18
//LevelFailedRetry (game.buttons.LevelFailedRetry)
package game.buttons {
import game.scenes.*;
import game.logic.*;
import game.data.*;
import core.extensions.*;
public class LevelFailedRetry extends SimpleButton2 {
private var appManager:AtomikKaos2;
private var level:LevelPlay;
public function LevelFailedRetry(){
appManager = Objects.appManager;
level = Objects.level;
super();
}
override protected function Click(){
appManager.DeleteScene();
appManager.StartScene(LevelPlay, String(level.currentLevel));
}
}
}//package game.buttons
Section 19
//LevelInfoNextLevel (game.buttons.LevelInfoNextLevel)
package game.buttons {
import game.scenes.*;
import game.logic.*;
import game.data.*;
import core.extensions.*;
public class LevelInfoNextLevel extends SimpleButton2 {
private var appManager:AtomikKaos2;
private var level:LevelPlay;
public function LevelInfoNextLevel(){
appManager = Objects.appManager;
level = Objects.level;
super();
}
override protected function Click(){
appManager.CloseDialog();
appManager.StartScene(LevelPlay, String((level.currentLevel + 1)));
}
}
}//package game.buttons
Section 20
//LevelInfoOk (game.buttons.LevelInfoOk)
package game.buttons {
import game.scenes.*;
import game.logic.*;
import game.data.*;
import core.extensions.*;
public class LevelInfoOk extends SimpleButton2 {
private var appManager:AtomikKaos2;
private var levelObject:LevelPlay;
public function LevelInfoOk(){
levelObject = Objects.level;
appManager = Objects.appManager;
super();
}
override protected function Click(){
appManager.CloseDialog();
levelObject.Ready();
}
}
}//package game.buttons
Section 21
//MainMenuEditor (game.buttons.MainMenuEditor)
package game.buttons {
import game.scenes.*;
import game.logic.*;
import game.data.*;
import core.extensions.*;
public class MainMenuEditor extends SimpleButton2 {
private var appManager:AtomikKaos2;
public function MainMenuEditor(){
appManager = Objects.appManager;
super();
}
override protected function Click(){
appManager.StartScene(LevelEditor);
}
}
}//package game.buttons
Section 22
//MainMenuPlay (game.buttons.MainMenuPlay)
package game.buttons {
import game.scenes.*;
import game.logic.*;
import game.data.*;
import core.extensions.*;
public class MainMenuPlay extends SimpleButton2 {
private var appManager:AtomikKaos2;
public function MainMenuPlay(){
appManager = Objects.appManager;
super();
}
override protected function Click(){
appManager.StartScene(Briefing);
}
}
}//package game.buttons
Section 23
//SoundNo (game.buttons.SoundNo)
package game.buttons {
import game.scenes.*;
import game.data.*;
import core.extensions.*;
public class SoundNo extends SimpleButton2 {
override protected function Click(){
Objects.soundManager.ToggleMusic();
Objects.soundManager.ToggleSound();
Objects.appManager.StartScene(MainMenu);
}
}
}//package game.buttons
Section 24
//SoundYes (game.buttons.SoundYes)
package game.buttons {
import game.scenes.*;
import game.data.*;
import core.extensions.*;
public class SoundYes extends SimpleButton2 {
override protected function Click(){
Objects.soundManager.PlayMusic(Music);
Objects.appManager.StartScene(MainMenu);
}
}
}//package game.buttons
Section 25
//Submit (game.buttons.Submit)
package game.buttons {
import flash.display.*;
import core.extensions.*;
public class Submit extends SimpleButton2 {
override protected function Click(){
MovieClip(parent).gotoAndStop(2);
}
}
}//package game.buttons
Section 26
//SubmitScore (game.buttons.SubmitScore)
package game.buttons {
import game.data.*;
import core.extensions.*;
import game.dialogs.*;
public class SubmitScore extends SimpleButton2 {
override protected function Click(){
Objects.appManager.StartScene(SubmitScoreDialog);
}
}
}//package game.buttons
Section 27
//TutorialOk (game.buttons.TutorialOk)
package game.buttons {
import core.extensions.*;
import game.dialogs.*;
public class TutorialOk extends SimpleButton2 {
private var tutorial:Tutorial;
override protected function Boot(){
tutorial = Tutorial(parent);
}
override protected function Click(){
tutorial.Proceed();
}
}
}//package game.buttons
Section 28
//VideoWalk (game.buttons.VideoWalk)
package game.buttons {
import game.data.*;
import core.extensions.*;
public class VideoWalk extends SimpleButton2 {
override protected function Click(){
Objects.appManager.OpenURL("http://armorgames.com/guide/Atomik-Kaos-2-Video-Walkthrough");
}
}
}//package game.buttons
Section 29
//VortixGames (game.buttons.VortixGames)
package game.buttons {
import game.data.*;
import core.extensions.*;
public class VortixGames extends SimpleButton2 {
override protected function Click(){
Objects.appManager.OpenURL("http://www.vortixgames.com");
}
}
}//package game.buttons
Section 30
//Constants (game.data.Constants)
package game.data {
public class Constants {
public static const STOP:int = 3;
public static const DPS:int = 45;
public static const START:int = 4;
public static const EDIT:int = 2;
public static const MRS:int = 32;
public static const IDLE:int = 0;
public static const EDITORBIT:int = 2;
public static const DEAD:int = 1;
public static const MOVEATOM:int = 3;
public static const ALIVE:int = 0;
public static const EDITATOM1:int = 4;
public static const EDITATOM2:int = 5;
public static const MOVEORBIT:int = 1;
public static function OrbitTime():Number{
return (((360 / DPS) * 1000));
}
public static function OrbitRadius(_arg1:int):int{
return ((32 + (MRS * _arg1)));
}
public static function OrbitSpeed(_arg1:int):int{
if (_arg1 == 3){
_arg1 = 4;
};
if (_arg1 == -3){
_arg1 = -4;
};
return ((DPS * _arg1));
}
}
}//package game.data
Section 31
//LevelStrings (game.data.LevelStrings)
package game.data {
public class LevelStrings {
public static var strings:Array = new Array();
public static function GetLevelPar(_arg1:int):int{
return (int(strings[_arg1].charAt(0)));
}
public static function GetLevel(_arg1:int):String{
if (_arg1 >= strings.length){
return ("EOF");
};
return (strings[_arg1]);
}
strings.push(null);
strings.push("1#0,0,2,1|6,-180|6,0");
strings.push("1#0,0,6,-2|2,-90|2,150|2,30");
strings.push("2#16,-16,8,1|3,180|3,-60|3,60|7,90|7,-90");
strings.push("3#0,-16,8,1|4,-146|4,-34|4,34|4,146|5,-89|5,179|5,-1|5,91#0,-16,4,3|3,-28");
strings.push("2#0,0,13,3|2,-179|2,-120|2,-59|2,-1|2,61|2,119#0,0,5,-3|3,-90|3,-150|3,150|3,90|3,30|3,-30");
strings.push("3#0,0,8,1|5,-45|5,-135|5,135|5,45#144,0,4,-3|6,-179#-144,0,4,-3|6,-1#0,-144,4,3#0,144,4,3#32,0,1,0|5,-178");
strings.push("1#-176,-144,3,1|4,-68,0|4,68,0|4,0,0|4,180,0#-48,-16,3,-2|4,-176,0#-32,144,4,1|4,178,0#48,144,2,1|4,178,0|4,4,0#96,-48,1,1|4,-90,0#160,-112,1,-1|4,86,0#240,-48,1,1|4,-92,0");
strings.push("1#0,0,3,1|8,180,0|9,0,0");
strings.push("1#0,0,9,1|8,178,0|8,-90,0|8,2,0|8,90,0#32,0,1,0|4,170,0");
strings.push("2#-96,96,3,1|1,-45,0#-96,-96,3,1|1,-134,0|8,45,-135#96,-96,3,1|1,135,0#96,96,3,1|1,44,0|8,-135,-90");
strings.push("2#0,0,1,1|8,0,180#-96,0,1,2|5,0,0#96,0,1,2|5,0,0#0,-96,1,2|5,0,0#0,96,1,2|5,0,0");
strings.push("2#0,0,11,1|5,-90,0|5,180,0|5,90,0|5,0,0#0,0,5,-3|3,-108,0#192,0,3,3|8,-179,180#-192,0,3,3|9,-2,0");
strings.push("2#0,0,11,1|1,-102,0|1,-78,0|1,-168,0|1,168,0|1,90,0|1,102,0|1,78,0|1,180,0|1,0,0|1,-12,0|1,11,0|6,-90,0#0,0,8,1|9,-106,0|9,-74,0|9,90,0|9,106,0|9,73,0|9,-164,0|9,164,0|9,180,0|9,-16,0|9,0,0|9,16,0#0,-16,2,-3|7,-88,0|9,89,0");
strings.push("5#0,0,11,-1|9,-128,0|9,-53,0|9,52,0|9,128,0|9,38,0|9,-38,0|9,-142,0|9,142,0#0,0,8,-2|6,-90,0|6,87,0|7,180,0|7,0,0#0,0,4,-3|2,2,0");
strings.push("3#-96,0,11,1|4,-134,0|4,-46,0|4,46,0|4,134,0|6,-1,0#96,0,11,1|5,-89,0|5,179,0|5,91,0|5,-1,0");
strings.push("2#0,-128,2,1|3,-90,0|9,93,0#0,0,2,1|8,113,15#112,-64,2,1|3,-30,0|9,152,0#-112,-64,2,1|3,-151,0|9,34,0#-112,64,2,1|3,150,0|9,-31,0#0,128,2,1|3,92,0|9,-91,0#112,64,2,1|3,33,0|9,-150,0");
strings.push("4#0,0,7,1|1,-90,0|8,180,0|8,0,0#128,0,3,2|9,177,0|8,0,180#-128,0,3,2|9,-179,0|8,0,180#-32,0,1,0|7,0,0#0,-128,3,2|9,90,0|8,-90,90#0,128,3,2|9,90,0|8,-90,90");
strings.push("3#-208,-144,2,1|4,179,0#-64,-144,2,2|4,179,0#-208,0,2,3|4,179,0#-80,0,2,1|5,1,0#208,0,2,-3|5,2,0#64,-144,2,2|5,1,0#64,144,2,1|5,2,0#-208,128,2,1|6,86,0#208,128,2,2|7,90,0#208,-144,2,3|6,89,0");
strings.push("1#0,0,13,1|2,177,0|2,-117,0|2,-63,0|2,3,0|2,57,0|2,123,0#0,0,9,2|3,-90,0|3,-150,0|3,150,0|3,90,0|3,30,0|3,-30,0#0,0,5,3|8,109,-45|8,-169,60|8,-43,165|8,76,-75");
strings.push("2#-32,32,1,1|4,178,0#64,32,1,-2|5,0,0#-32,128,1,-2|6,90,0#64,128,1,1|7,90,0#64,-64,1,1|4,90,0#-32,-64,1,-2|5,87,0#64,-160,1,-2|6,88,0#-32,-160,1,1|7,90,0");
strings.push("1#0,-16,3,0|8,-94,15|8,-63,45|8,-33,75|5,31,0|8,-2,90#-64,-112,2,0|8,56,165|8,99,-150|8,145,-105|8,-173,-60|8,-131,0#208,-160,3,0|8,169,-75|8,-157,-45|8,-125,-15|8,-93,15|8,-61,135|8,120,0|8,86,-30|8,51,-45|8,16,-90|8,-30,135#-96,144,1,1|9,-15,0|9,106,0|9,-86,0");
strings.push("2#0,0,13,2|7,-89,0|7,89,0|6,180,0|6,0,0|9,-135,0#0,0,10,3|7,-89,0|7,89,0|6,180,0|6,0,0#0,0,7,-3|7,-89,0|7,89,0|6,180,0|6,1,0|5,-135,0#0,0,4,1|6,180,0|6,1,0|7,-88,0|7,87,0|9,45,0");
strings.push("3#-256,176,2,-1|8,-47,-45#-160,80,2,3|5,-46,0|8,-102,150|8,-144,105|9,170,0|9,106,0|8,12,120|8,58,165#-240,-64,2,3|2,44,0#-16,160,2,3|3,-132,0#0,-80,8,-1|9,-46,0");
strings.push("1#16,0,1,-3|5,88,0#128,-80,1,3|5,135,0#16,-112,1,2|5,-83,0#-80,-16,1,-2|5,-83,0#48,112,1,0|5,-83,0#224,-48,1,1|5,-126,0#144,-176,1,2|5,160,0#-128,80,1,1|5,140,0");
strings.push("4#272,-192,1,-3|9,26,0#-272,192,1,3|8,-105,-30#-176,128,1,3|8,76,-45#144,-192,1,-3|9,45,0#-272,32,1,3|8,171,-30#48,-160,1,-3|9,149,0#-80,176,1,3|8,-157,-45#192,-96,1,-3|9,-133,0");
strings.push("5#-64,64,4,-3|9,-89,0|9,-178,0|9,90,0|9,-2,0#-32,64,1,0|4,-178,0#48,-48,4,3|9,-136,0|9,-45,0|9,46,0#80,-48,1,0|5,177,0#-224,-48,4,-1|9,178,0#-192,-48,1,0|6,176,0#-224,-176,2,1|9,-91,0#-192,-176,1,0|7,-174,0#240,-176,2,-3|9,-120,0|9,-59,0|9,3,0|9,61,0|9,122,0#272,-176,1,0|2,178,0");
strings.push("1#0,-16,3,1|8,179,0|8,-136,45|8,-90,90|8,-44,135|8,134,-45|8,90,-90|8,46,-135|8,1,180#32,-16,1,0|1,178,0#32,-16,8,2|8,-54,135|8,0,180|8,54,-135|8,103,-90|8,144,-45|8,180,0|8,-144,45|8,-103,90");
strings.push("2#16,-16,1,-1|9,4,0|8,176,0#16,-128,1,1|7,-178,0#-96,-128,1,-1|6,180,0#-224,-128,1,1|9,2,0#-96,-16,1,1|7,180,0#-96,80,1,-1|8,-178,-90#128,-128,1,-1|8,0,180#128,-16,1,1|7,4,0#128,80,1,-1|6,6,0|8,174,90#128,176,1,1|9,180,0#240,80,1,1|9,8,0");
strings.push("2#0,16,5,1|8,-143,60|8,81,-150|8,156,0|8,24,0|8,-95,105|8,125,-30|8,-6,-120|9,-48,0");
strings.push("5#0,0,12,-3|8,-179,180|8,-135,45|8,-90,-90|8,-1,180|8,44,-135|8,136,-45|8,-45,135|8,90,90#0,0,9,3|8,-179,0|8,-90,90|8,44,-135|9,-134,0|9,136,0|8,90,-90#48,0,2,1|1,-178,0|9,-1,0");
strings.push("2#0,0,6,3|9,179,0|9,-135,0|9,-108,0|9,-88,0|9,-63,0|9,-16,0|9,19,0|9,43,0|9,61,0|9,89,0#32,0,1,-2|1,-49,0|1,-175,0");
strings.push("2#-240,-64,1,1|8,-45,75#-240,-160,1,1|8,-97,15#-144,-160,1,1|8,-113,105#-48,-160,1,1|8,55,165#48,-160,1,1|8,135,135#144,-160,1,1|8,140,165#240,-160,1,1|8,-140,135#-144,-64,1,1|8,-25,120#-48,-64,1,1|8,141,-120#48,-64,1,1|8,131,105#144,-64,1,1|8,132,-135#-240,32,1,1|8,151,0#-240,128,1,1|8,97,-90#240,-64,1,1|8,-41,90#-144,32,1,1|8,-117,-105#-48,32,1,1|8,28,15#48,32,1,1|8,-108,-60#144,32,1,1|8,121,-135#240,32,1,1|8,-36,-105#-144,128,1,1|8,-133,-150#-48,128,1,1|8,2,0#48,128,1,1|8,0,-75#144,128,1,1|8,120,-60#240,128,1,1|8,-139,150");
}
}//package game.data
Section 32
//Objects (game.data.Objects)
package game.data {
import game.scenes.*;
import game.logic.*;
import game.dialogs.*;
public class Objects {
public static var levelFailed:LevelFailed;
public static var level:LevelPlay;
public static var briefing:Briefing;
public static var appManager:AtomikKaos2;
public static var playerState:PlayerState;
public static var levelInfo:LevelInfo;
public static var achievements:Achievements;
public static var achievementsDialog:AchievementsDialog;
public static var soundManager:SoundManager;
}
}//package game.data
Section 33
//Text (game.data.Text)
package game.data {
import core.structures.*;
public class Text {
public static var Unlocked:Array = new Array();
public static var TutorialB:Array2 = new Array2(8, 2);
public static var LevelInfoHumour:Array2 = new Array2(34, 2);
public static var Header:Array = new Array();
public static var TutorialH:Array2 = new Array2(8, 2);
public static var Editor:Array = new Array();
public static var Locked:Array = new Array();
public static var Test:Array = new Array();
public static var Level:Array = new Array();
public static var Briefing:Array = new Array();
public static var Failed:Array = new Array();
public static var LevelInfoText:Array = new Array();
Editor["IDLE"] = "C to create orbit | T to test level";
Editor["MOVEORBIT"] = "Click to position the orbit";
Editor["EDITORBIT"] = "1 to 9 to create atoms | + or - to change size | S to change speed |M to move | D to delete";
Editor["MOVEATOM"] = "Click the atom to position it";
Editor["EDITATOM1"] = "M to move | D to delete";
Editor["EDITATOM2"] = "R to rotate | M to move | D to delete";
Test["PHASE1"] = "Testing Atom Collisions...";
Test["PHASE1FAILED"] = "Collision found, tested failed! Press any key to return to Editor.";
Test["PHASE1SUCCESS"] = "Collision test passed! Press any key to continue!";
Test["PHASE2"] = "Determining level par: Click on a atom to initiate chain...";
Test["PHASE2FIRE"] = "Testing Gameplay...";
Failed["EXPERIMENT_FAILED"] = "Experiment Failed!";
Failed["RETRY_EXPERIMENT"] = "Retry current experiment.";
Failed["BACK_TO_BRIEFING"] = "Back to briefing screen.";
TutorialH.set(1, 1, "Welcome to Atomik Kaos 2 Tutorial");
TutorialB.set(1, 1, "The objective of each experiment is to eliminate all existing atoms.\n\nTo do so, you'll have to align the atoms and click one of them to release it's particles. Each atom has a number of particles that will shoot in the direction of the arrows displayed in it.\n\nWhen a particle hits another atom, that atom will explode, releasing its own particles.");
TutorialH.set(1, 2, "Controling Atom Movement");
TutorialB.set(1, 2, "You can control the rotation speed of the atoms by moving your cursor. The closer the cursor is to an atom, the slower all atoms will move.\n\nUse this to adjust the position of the atoms to get the best possible experiment.\n\nGive it a try.");
TutorialH.set(2, 1, "Well Done!");
TutorialB.set(2, 1, "Try another one... with one click only...");
TutorialH.set(3, 1, "Experiment Par");
TutorialB.set(3, 1, "Each experiment has a maximum number of allowed clicks, just like golf holes have a par.\n\nYou can only progress through the game by matching or lowering each experiment par.");
TutorialH.set(3, 2, "This Experiment");
TutorialB.set(3, 2, "This experiment was designed to allow two clicks, but it can be done with one click only.\n\nGive it a try!");
TutorialH.set(4, 1, "Below Par");
TutorialB.set(4, 1, "This experiment was designed to allow three clicks, but it can be done with one click.\n\nCan you find the position of the purple atom in order to make a one click play in a three click experiment?\n\nTry it!");
TutorialH.set(5, 1, "Orbit Speed");
TutorialB.set(5, 1, "Different orbits move at different speeds.\n\nThis is something you should always look at when creating chains.\n\nFaster orbits take less time to complete revolutions, but are quite more difficult to control.");
TutorialH.set(6, 1, "Score");
TutorialB.set(6, 1, "You should always look for the maximum chain early on, since the first click renders a higher score per atom than the second click, third click and so on.\n\nIn this experiment you will always have to use two clicks to complete it, but if you eliminate the orange atoms first, your score will be lower.\n\nIf you use a blue atom to chain the orange atoms you'll have a higher score since the first click will have more atoms.");
TutorialH.set(6, 2, "Score Bonus");
TutorialB.set(6, 2, "One more thing: the faster you clear an experiment the higher your score will be.\n\nThe higher the atom count, the higher the bonus multiplier will be when the experiment starts. The bonus multiplier will lower as time goes by though, so be quick!");
TutorialH.set(7, 1, "Strange Experiments");
TutorialB.set(7, 1, "Some experiments are just strange and look way too difficult. Look for patterns in the rotation, for instance, in this experiment, the three rightmost atoms have a very predictable and slow rotation.\n\nSlow the atoms with your cursor while you check the position of all the experiment when the three rightmost atoms are aligned and give it a try!\n\nRemember that some orbits are faster so you'll have to find the best timing.");
TutorialH.set(8, 1, "Last but not least");
TutorialB.set(8, 1, "These two are quite special so they were saved for last.\n\nThe yellow is a one way atom. It is special because it can be pointing anywhere unlike the other atoms.\n\nThe grey one is a hole and it does not have any particles, therefore it does not shoot any.\n\nUse it wisely and carefully, since they can be your best friend or your worst enemy.");
Level["FAILED"] = "Level Failed!";
Level["COMPLETED"] = "Level Completed!";
LevelInfoText["YOUR_SOLUTION"] = "Your solution";
LevelInfoText["NOT_FOUND"] = "Not yet found!";
LevelInfoText["EXPERIMENT_PAR"] = "Experiment Par";
LevelInfoText["YOUR_PAR"] = "Your Par";
LevelInfoText["NONE"] = "None";
LevelInfoText["OPEN"] = "Open";
LevelInfoText["SOLVED"] = "Solved";
LevelInfoText["EXPERIMENT_STATUS"] = "Experiment Status";
LevelInfoText["YOUR_SCORE"] = "Your Best Score";
LevelInfoHumour.set(0, 1, "Nature Complaints #");
LevelInfoHumour.set(1, 1, "Crickets chirp's pitch is too high.");
LevelInfoHumour.set(1, 2, "Through genetic manipulation, all male crickets now have a subwoofer.");
LevelInfoHumour.set(2, 1, "Because of cricket's subwoofers, rave parties have started in the wild and many animals are complaining.");
LevelInfoHumour.set(2, 2, "Through genetic manipulation, all animals are now deaf.");
LevelInfoHumour.set(3, 1, "Preys can't hear predators because you made them deaf.");
LevelInfoHumour.set(3, 2, "You decided not to do anything, predators will grow fat... like anyone else!");
LevelInfoHumour.set(4, 1, "Fat cheetahs are complaining that they lost the title of world fastest animal to the gazelle.");
LevelInfoHumour.set(4, 2, "Through genetic manipulation, gazelles now hunt cheetahs. Yeah, that makes sense!");
LevelInfoHumour.set(5, 1, "Mosquitos sting too much!");
LevelInfoHumour.set(5, 2, "Through genetic manipulation, mosquitoes now have teeth instead of a sting. What?! They don't sting now, do they?!");
LevelInfoHumour.set(6, 1, "Since they got teeth, mosquitoes are hunting cheetahs too.");
LevelInfoHumour.set(6, 2, "You modified a gene so that mosquitoes prefer fat, making cheetahs thin again and restoring the natural order of things.");
LevelInfoHumour.set(7, 1, "Cheetas are thin again, mosquitoes now hunt the fattest animal on the planet: people!");
LevelInfoHumour.set(7, 2, "You did what you should have done in the beginning: instead of teeth or a sting, mosquitoes now have a fork, a spoon, manners and a French accent.");
LevelInfoHumour.set(8, 1, "Sun is too bright.");
LevelInfoHumour.set(8, 2, "You deregulated everyone's biological clock so that human awake cycle is at night. Let's have a cricket party!");
LevelInfoHumour.set(0, 2, "Human Condition #");
LevelInfoHumour.set(9, 1, "Solve the biggest human tragedy: the monobrow!");
LevelInfoHumour.set(9, 2, "Instead of solving the problem directly, you managed to make people believe, through the use of pheromones that monobrows are quite attractive.");
LevelInfoHumour.set(10, 1, "Some people speak too much! They are so annoying! Somebody has to do something about it... they just bla bla bla and then bla bla bla...");
LevelInfoHumour.set(10, 2, "You created a special ear implant for people that speak too much. This implant repeats the sentences like 'yes... sure...' that makes them feel someone is listening.");
LevelInfoHumour.set(11, 1, "People that fart anonymously in social events have to be exposed.");
LevelInfoHumour.set(11, 2, "Beans and other erm... 'gas producers' were transformed in order to create moisty and colorful clouds.");
LevelInfoHumour.set(12, 1, "Colorful moist sticks in monobrows eliminating the effect of the 'beautiful monobrow pheromone'");
LevelInfoHumour.set(12, 2, "You tried to fix it, but you were laughing so much of the now colored monobrows, that you ruined the experiment. Monobrows now release colorful yet smelly pheromones.");
LevelInfoHumour.set(13, 1, "A raging monobrow crowd is just outside the lab! Find a quick fix to the monobrow problem.");
LevelInfoHumour.set(13, 2, "You accept that the monobrows problem is unsolvable. Not even your genius can solve such a problem. Instead of that you changed a gene that turns rage into nose hair.");
LevelInfoHumour.set(14, 1, "A new trend is born! People that drive in heavy traffic now have amazing facial hair statues made with nose hair and monobrows.");
LevelInfoHumour.set(14, 2, "Why should you do anything about that? It's hilarious and they are happy, so move on, nothing to see. Except that new website with the best statues!");
LevelInfoHumour.set(15, 1, "The ear implants for people that talk too much are making them go nuts. Oh... look at that lizard with a pink and green monobrow and nose hair statue.");
LevelInfoHumour.set(15, 2, "Hi, I'm your new assistant since you fired the loonie one. What do we have to do?");
LevelInfoHumour.set(16, 1, "A lot of people with smelly feet ask for your help.");
LevelInfoHumour.set(16, 2, "You organize a multimedia show about the life of people you helped. Everyone agreed that if you can paint farts, smelly feet are not a problem.");
LevelInfoHumour.set(0, 3, "Animal Issues #");
LevelInfoHumour.set(17, 1, "Dog owners are embarrassed by 'leg humping' for far too long! Do something about it!");
LevelInfoHumour.set(17, 2, "You meticulously engineered dog behavior and the results are astonishing. Dogs completely stopped humping people's legs... just... WOW!");
LevelInfoHumour.set(18, 1, "Cockroaches! Argh! Destroy it! Everyone hates it!");
LevelInfoHumour.set(18, 2, "I'm sorry for my outburst... yes I understand not even a worldwide nuclear war will terminate cockroaches. I understand I have to be professional... I'm sorry... really... I am...");
LevelInfoHumour.set(19, 1, "After hearing about the success with dogs behavior, cat owners asked you to solve what is known as 'sofa scratching' syndrome.");
LevelInfoHumour.set(19, 2, "It's fair to say that something went wrong... cats are now humping legs.");
LevelInfoHumour.set(20, 1, "'I can solve it!' you announced loudly! Solve the mess with cats humping people's legs.");
LevelInfoHumour.set(20, 2, "Congratulations! Cats stopped scratching sofas! You still need to do something about the 'leg humping' though, but cat owners are half pleased.");
LevelInfoHumour.set(21, 1, "I have made a bomb from your notes and I will kill all cockroaches! MUWAHAHAHAH! You had a choice but you preferred the roaches!! Now we will all die but the cockroaches are going DOWN!");
LevelInfoHumour.set(21, 2, "Hello professor, I'm your new assistant since the last one went mad... Does that happen often?");
LevelInfoHumour.set(22, 1, "Dog owners are back because, for some *cough* unexplained *cough* reason, dogs are now scratching sofas.");
LevelInfoHumour.set(22, 2, "You finally understood that you are simply swapping genes due to some lab mistake. You solved it and now cats scratch and dogs hump, but you announced you will solve both problems.");
LevelInfoHumour.set(23, 1, "Ok... seems we have a problem here. When you swapped scratching and humping, seems you also swapped barking and meowing. Please fix that.");
LevelInfoHumour.set(23, 2, "Ah! Great! Cats scratch and meow and dogs hump and bark! Good work... I think... or hope... or not...");
LevelInfoHumour.set(24, 1, "Last thing to be solved: the original requests... dogs with no humping and cats with no scratching.");
LevelInfoHumour.set(24, 2, "Ah... the simplicity... with no finger nails, cats can't scratch and dogs can't stand up to hump. Everyone is happy.");
LevelInfoHumour.set(0, 4, "World Problems #");
LevelInfoHumour.set(25, 1, "Financial resources are unequal distributed worldwide. Solving this problem will solve several other problems.");
LevelInfoHumour.set(25, 2, "You decided to make a proposal in the United Nations. You will solve the problem if you are paid 50 million dollars... monthly... until the end of your days...");
LevelInfoHumour.set(26, 1, "The richer countries said that your proposal is unacceptable! The poorer countries say that if you can solve the problem, they'll gladly pay the 50 million dollars monthly wage.");
LevelInfoHumour.set(26, 2, "Through genetic engineering, all poorer countries intellectuals, researchers and scientists are more intelligent and competent. Money starts shifting quickly.");
LevelInfoHumour.set(27, 1, "A intellectual genius (that you created, by the way) in one of the former poor countries found a glitch in your 50 million monthly dollar contract. Payments stopped.");
LevelInfoHumour.set(27, 2, "For some weird reason, everyone in the former poor countries has a thick monobrow, their dogs hump everyone's legs and the cats scratch every fabric they can find.");
LevelInfoHumour.set(28, 1, "Road rage is a major problem in all major cities around the world.");
LevelInfoHumour.set(28, 2, "You created an additive for oil that causes people to feel relaxed. There are reports of increased traffic due to excessive love.");
LevelInfoHumour.set(29, 1, "Solve the economic crisis.");
LevelInfoHumour.set(29, 2, "You thoroughly examined the worldwide economic crisis and discovered that is related with greed. You offered to help for about 50 million dollars... monthly... again...");
LevelInfoHumour.set(30, 1, "Ok... solve greed then...");
LevelInfoHumour.set(30, 2, "Gene manipulation completely removed greed from the human behavior. You still want your monthly 50 million.");
LevelInfoHumour.set(31, 1, "Climate is changing and pollution building up.");
LevelInfoHumour.set(31, 2, "You announced that your study of the problem shows that either people stop being dumb or only cockroaches will survive.");
LevelInfoHumour.set(32, 1, "'We cannot have dumb people!' says the United Nations and pass you the problem.");
LevelInfoHumour.set(32, 2, "People are now aware and world is a better place. You claim the solution, but after all you did, no one believes you.");
Briefing["LOCKED"] = "Locked";
Briefing["UNKNOWN"] = "Unknown!";
Briefing["HEADER1"] = "Choose an experiment";
Briefing["TEXT1"] = "You can try to solve an open experiment or try to improve your current record on a solved experiment. Click the experiment icon to launch it.";
Briefing["HEADER2"] = "Clicks below par";
Briefing["HEADER3"] = "Full Score";
Header[2] = "One half of the work";
Header[3] = "One third of the effort";
Header[4] = "One fourth of the skill";
Header[5] = "One fifth of the sweat";
Header[6] = "Slightly below par";
Header[7] = "Way below par";
Header[8] = "Too much below par";
Header[9] = "Nature Lover";
Header[10] = "Good Samaritan";
Header[11] = "Dog or Cat Lover";
Header[12] = "Evil Genius";
Header[13] = "Brainiac";
Locked[2] = "Make 1 click on a 2 par";
Locked[3] = "Make 1 click on a 3 par";
Locked[4] = "Make 1 click on a 4 par";
Locked[5] = "Make 1 click on a 5 par";
Locked[6] = "Make 1 click below the par";
Locked[7] = "Make 2 clicks below the par";
Locked[8] = "Make 3 clicks below the par";
Locked[9] = "Finish Nature Complaints";
Locked[10] = "Finish Human Condition";
Locked[11] = "Finish Animal Issues";
Locked[12] = "Finish World Problems";
Locked[13] = "Beat the final experiment in 1 click";
Unlocked[2] = "Made 1 click on a 2 par";
Unlocked[3] = "Made 1 click on a 3 par";
Unlocked[4] = "Made 1 click on a 4 par";
Unlocked[5] = "Made 1 click on a 5 par";
Unlocked[6] = "Made 1 click below the par";
Unlocked[7] = "Made 2 clicks below the par";
Unlocked[8] = "Made 3 clicks below the par";
Unlocked[9] = "Finished Nature Complaints";
Unlocked[10] = "Finished Human Condition";
Unlocked[11] = "Finished Animal Issues";
Unlocked[12] = "Finished World Problems";
Unlocked[13] = Locked[13];
}
}//package game.data
Section 34
//AchievementsDialog (game.dialogs.AchievementsDialog)
package game.dialogs {
import flash.display.*;
import flash.events.*;
import game.logic.*;
import game.data.*;
import flash.text.*;
public class AchievementsDialog extends MovieClip {
public var AText:TextField;
public var ASymbol:AchievementSymbolsNumb;
public var ProblemText:TextField;
public var AName:TextField;
private var currentLevel:String;
public function AchievementsDialog(_arg1:String){
Objects.achievementsDialog = this;
this.currentLevel = _arg1;
RenderScreen();
addEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
private function Shutdown(_arg1:Event){
Objects.achievementsDialog = null;
removeEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
public function RenderScreen(){
var _local1:int;
_local1 = AchievementsLogic.GetNextAchievement();
trace(_local1);
if (_local1 != 0){
ASymbol.gotoAndStop(_local1);
AName.text = Text.Header[_local1];
AText.text = Text.Unlocked[_local1];
} else {
Objects.appManager.OpenDialog(LevelInfo, currentLevel);
};
}
}
}//package game.dialogs
Section 35
//LevelFailed (game.dialogs.LevelFailed)
package game.dialogs {
import flash.display.*;
import flash.events.*;
import game.logic.*;
import game.data.*;
import flash.text.*;
public class LevelFailed extends MovieClip {
private var appManager:AtomikKaos2;
public var HeaderText:TextField;
public function LevelFailed(_arg1:String){
appManager = Objects.appManager;
super();
Objects.levelFailed = this;
addEventListener(Event.ADDED_TO_STAGE, Boot);
addEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
private function Boot(_arg1:Event){
HeaderText.text = Text.Failed["EXPERIMENT_FAILED"];
}
private function Shutdown(_arg1:Event){
Objects.levelFailed = null;
removeEventListener(Event.ADDED_TO_STAGE, Boot);
removeEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
}
}//package game.dialogs
Section 36
//LevelInfo (game.dialogs.LevelInfo)
package game.dialogs {
import flash.display.*;
import flash.events.*;
import game.scenes.*;
import game.logic.*;
import game.data.*;
import flash.text.*;
public class LevelInfo extends MovieClip {
public var ProblemHeader:TextField;
public var ExperimentStatusHeader:TextField;
private var levelObject:LevelPlay;
private var playerState:PlayerState;
public var ExperimentStatusText:TextField;
public var ProblemText:TextField;
private var appManager:AtomikKaos2;
public var SolutionText:TextField;
public var Buttons:LevelInfoButtons;
public var YourBestScoreHeader:TextField;
public var YourParHeader:TextField;
public var ExperimentParText:TextField;
public var SolutionHeader:TextField;
public var YourParText:TextField;
public var YourBestScoreText:TextField;
public var ExperimentParHeader:TextField;
public function LevelInfo(_arg1:String){
var _local2:int;
var _local3:int;
var _local4:String;
var _local5:String;
var _local6:String;
appManager = Objects.appManager;
levelObject = Objects.level;
playerState = Objects.playerState;
super();
Objects.levelInfo = this;
addEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
_local2 = Math.ceil((int(_arg1) / 8));
_local3 = (int(_arg1) - ((_local2 - 1) * 8));
_local4 = "";
_local5 = "";
_local6 = "";
if (playerState.IsLevelCompleted(int(_arg1))){
_local4 = Text.LevelInfoHumour.get(int(_arg1), 2);
} else {
_local4 = Text.LevelInfoText["NOT_FOUND"];
};
if (playerState.GetPar(int(_arg1)) == 0){
_local5 = "-";
_local6 = Text.LevelInfoText["OPEN"];
} else {
_local5 = String(playerState.GetPar(int(_arg1)));
if (playerState.GetPar(int(_arg1)) > levelObject.levelPar){
_local6 = Text.LevelInfoText["OPEN"];
} else {
_local6 = Text.LevelInfoText["SOLVED"];
};
};
ProblemHeader.text = (Text.LevelInfoHumour.get(0, _local2) + String(_local3));
ProblemText.text = Text.LevelInfoHumour.get(int(_arg1), 1);
SolutionHeader.text = Text.LevelInfoText["YOUR_SOLUTION"];
SolutionText.text = _local4;
ExperimentParHeader.text = Text.LevelInfoText["EXPERIMENT_PAR"];
ExperimentParText.text = String(levelObject.levelPar);
YourParHeader.text = Text.LevelInfoText["YOUR_PAR"];
YourParText.text = _local5;
ExperimentStatusHeader.text = Text.LevelInfoText["EXPERIMENT_STATUS"];
ExperimentStatusText.text = _local6;
YourBestScoreHeader.text = Text.LevelInfoText["YOUR_SCORE"];
YourBestScoreText.text = String(playerState.GetScore(levelObject.currentLevel));
if (levelObject.nOfClicks > 0){
Buttons.gotoAndStop(2);
} else {
Buttons.gotoAndStop(1);
};
}
private function Shutdown(_arg1:Event){
Objects.levelInfo = null;
}
}
}//package game.dialogs
Section 37
//SubmitScoreDialog (game.dialogs.SubmitScoreDialog)
package game.dialogs {
import flash.display.*;
import flash.events.*;
import game.scenes.*;
import game.data.*;
import flash.net.*;
import flash.text.*;
public class SubmitScoreDialog extends MovieClip {
public var loader:URLLoader;
public var verbs:Number;
public var viper:String;
public var variables:URLVariables;
public var Name:TextField;
public var abrazor30Data:URLRequest;
public function SubmitScoreDialog(_arg1:String){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stage.focus = Name;
stop();
}
function frame2(){
abrazor30Data = new URLRequest("http://rankz.armorbot.com/submit/as3_v0.php");
abrazor30Data.method = URLRequestMethod.POST;
variables = new URLVariables();
variables.flashkey = "UElGVVRQWGs=";
variables.SU0249 = "MzM4MGolZSVhJW4lcw==";
variables.bmFtZTE = Name.text;
verbs = Objects.playerState.GetFullScore();
viper = (verbs + "Z");
variables.c2NvcmUx = viper.split("0").join("U");
variables.c2NvcmUx = variables.c2NvcmUx.split("").join("A");
variables.c2NvcmUx = variables.c2NvcmUx.split("AU").join("Y");
variables.c2NvcmUx = variables.c2NvcmUx.split("A1").join("B");
variables.c2NvcmUx = variables.c2NvcmUx.split(".").join("N");
abrazor30Data.data = variables;
loader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, dataOnLoad);
loader.load(abrazor30Data);
stop();
}
public function dataOnLoad(_arg1:Event){
var _local2:URLRequest;
Objects.appManager.StartScene(Briefing);
_local2 = new URLRequest("http://rankz.armorbot.com/ak2score/");
navigateToURL(_local2, "_blank");
}
}
}//package game.dialogs
Section 38
//Tutorial (game.dialogs.Tutorial)
package game.dialogs {
import flash.display.*;
import game.logic.*;
import game.data.*;
import flash.text.*;
public class Tutorial extends MovieClip {
public var BodyText:TextField;
private var currentTFrame:int;// = 0
public var appManager:AtomikKaos2;
private var currentTLevel:int;
public var HeaderText:TextField;
public function Tutorial(_arg1:String){
appManager = Objects.appManager;
currentTFrame = 0;
super();
currentTLevel = int(_arg1);
Proceed();
}
public function Proceed(){
if ((((((((((((((((((currentTLevel == 1)) && ((currentTFrame == 2)))) || ((((currentTLevel == 2)) && ((currentTFrame == 1)))))) || ((((currentTLevel == 3)) && ((currentTFrame == 2)))))) || ((((currentTLevel == 4)) && ((currentTFrame == 1)))))) || ((((currentTLevel == 5)) && ((currentTFrame == 1)))))) || ((((currentTLevel == 6)) && ((currentTFrame == 2)))))) || ((((currentTLevel == 7)) && ((currentTFrame == 1)))))) || ((((currentTLevel == 8)) && ((currentTFrame == 1)))))){
appManager.OpenDialog(LevelInfo, String(currentTLevel));
return;
};
currentTFrame++;
HeaderText.text = Text.TutorialH.get(currentTLevel, currentTFrame);
BodyText.text = (Text.TutorialB.get(currentTLevel, currentTFrame) + "\n\nPress Ok to continue.");
}
}
}//package game.dialogs
Section 39
//AchievementsLogic (game.logic.AchievementsLogic)
package game.logic {
import game.data.*;
public class AchievementsLogic {
public static const AREA_2:int = 10;
public static const AREA_3:int = 11;
public static const BELOW_1:int = 6;
public static const BELOW_3:int = 8;
public static const AREA_4:int = 12;
public static const LOCKED:int = 1;
public static const BELOW_2:int = 7;
public static const BRAINIAC:int = 13;
public static const ONE_IN_2:int = 2;
public static const ONE_IN_3:int = 3;
public static const ONE_IN_4:int = 4;
public static const ONE_IN_5:int = 5;
public static const AREA_1:int = 9;
private static var newAchievements:Array = new Array();
public static function NewAchievements():Boolean{
if (newAchievements.length == 0){
return (false);
};
return (true);
}
private static function TestAchievement(_arg1:int){
if (Objects.playerState.GetAchievementStatus(_arg1) == 0){
trace((_arg1 + " unlocked!"));
Objects.playerState.UnlockAchievement(_arg1);
newAchievements.push(_arg1);
};
}
public static function GetNextAchievement():int{
if (newAchievements.length != 0){
return (newAchievements.shift());
};
return (0);
}
public static function TestEndLevel(_arg1:int){
var _local2:int;
var _local3:int;
_local2 = Objects.playerState.GetPar(_arg1);
_local3 = LevelStrings.GetLevelPar(_arg1);
if (_local2 == 1){
switch (_local3){
case 2:
TestAchievement(ONE_IN_2);
break;
case 3:
TestAchievement(ONE_IN_3);
break;
case 4:
TestAchievement(ONE_IN_4);
break;
case 5:
TestAchievement(ONE_IN_5);
break;
};
};
if (_local2 < _local3){
switch ((_local3 - _local2)){
case 1:
TestAchievement(BELOW_1);
break;
case 2:
TestAchievement(BELOW_2);
break;
case 3:
TestAchievement(BELOW_3);
break;
};
};
switch (_arg1){
case 8:
TestAchievement(AREA_1);
break;
case 16:
TestAchievement(AREA_2);
break;
case 24:
TestAchievement(AREA_3);
break;
case 32:
TestAchievement(AREA_4);
break;
};
if ((((_arg1 == 32)) && ((_local2 == 1)))){
TestAchievement(BRAINIAC);
};
}
}
}//package game.logic
Section 40
//AtomikKaos2 (game.logic.AtomikKaos2)
package game.logic {
import game.scenes.*;
import game.data.*;
import core.systems.*;
import flash.net.*;
public class AtomikKaos2 extends Application {
public function AtomikKaos2(){
addFrameScript(1, frame2, 2, frame3, 3, frame4);
stop();
MochiBot.track(this, "6282a5f3");
Objects.appManager = this;
StartScene(GamePreloader);
}
public function Boot(){
stop();
Objects.playerState = new PlayerState();
Objects.soundManager = new SoundManager();
StartScene(SoundAndMusic);
}
public function LoadSponsor(){
stop();
StartScene(ArmorGames);
}
function frame3(){
stop();
}
override public function StartScene(_arg1:Class, _arg2:String=null){
previousSceneClass = currentSceneClass;
previousSceneArguments = currentSceneArguments;
currentSceneClass = _arg1;
currentSceneArguments = _arg2;
DeleteScene();
gameScene = new _arg1(_arg2);
gameScene.x = 320;
gameScene.y = 240;
addChild(gameScene);
}
function frame4(){
gotoAndStop("Game");
}
override public function OpenDialog(_arg1:Class, _arg2:String=null){
CloseDialog();
gameDialog = new _arg1(_arg2);
addChild(gameDialog);
}
function frame2(){
LoadSponsor();
}
public function OpenURL(_arg1:String){
var _local2:URLRequest;
_local2 = new URLRequest(_arg1);
navigateToURL(_local2, "_blank");
}
}
}//package game.logic
Section 41
//Level (game.logic.Level)
package game.logic {
import flash.display.*;
import game.stuff.*;
import game.tokens.*;
import core.utilities.*;
import game.data.*;
public class Level extends MovieClip {
private const ATOMRADIUS:int = 16;
private const COLLISIONRADIUS:int;
private const PARTRADIUS:int = 8;
private const ATOMMINDIST:int = 0;
private const ATOMMAXDIST:int = 9216;
protected var dotsList:Array;
protected var orbYList:Array;
protected var partList:Array;
private var rotationSpeed:Number;
public var levelPar:int;
protected var orbXList:Array;
protected var orbTList:Array;
protected var atomList:Array;
public function Level(){
COLLISIONRADIUS = ((ATOMRADIUS * ATOMRADIUS) + (PARTRADIUS * PARTRADIUS));
super();
}
protected function TestAtomCollisions():Boolean{
var _local1:int;
var _local2:*;
var _local3:*;
var _local4:Number;
var _local5:Number;
_local1 = ((32 * 32) - 2);
_local2 = 0;
while (_local2 < atomList.length) {
_local3 = (_local2 + 1);
while (_local3 < atomList.length) {
_local4 = (atomList[_local2].x - atomList[_local3].x);
_local5 = (atomList[_local2].y - atomList[_local3].y);
if (((_local4 * _local4) + (_local5 * _local5)) < _local1){
atomList[_local2].alpha = 1;
atomList[_local3].alpha = 1;
return (true);
};
atomList[_local2].alpha = 0.5;
atomList[_local3].alpha = 0.5;
_local3++;
};
_local2++;
};
return (false);
}
public function CreateExplosion(_arg1:Token){
var _local2:*;
var _local3:Particle;
for (_local2 in _arg1.shootingAngles) {
_local3 = new Particle(_arg1.type, _arg1.x, _arg1.y, _arg1.shootingAngles[_local2]);
addChild(_local3);
partList.push(_local3);
};
}
public function Score(_arg1:Token){
}
public function CreateDot(_arg1:Number, _arg2:Number, _arg3:int=0){
var _local4:OrbitDot;
_local4 = new OrbitDot(_arg1, _arg2, _arg3);
addChildAt(_local4, 0);
dotsList.push(_local4);
}
public function Ignite(_arg1:Token){
trace("Ignite is only available while playing the level.");
}
protected function CreateLevel(_arg1:String){
var _local2:Array;
var _local3:int;
var _local4:Array;
var _local5:*;
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
var _local10:int;
var _local11:Number;
var _local12:Number;
var _local13:Token;
_local2 = _arg1.split("#");
levelPar = _local2[0];
_local3 = 1;
while (_local3 < _local2.length) {
_local4 = _local2[_local3].split("|");
for (_local5 in _local4) {
if (_local5 == 0){
_local6 = _local4[0].split(",")[0];
_local7 = _local4[0].split(",")[1];
_local8 = _local4[0].split(",")[2];
_local9 = _local4[0].split(",")[3];
if (_local9 != 0){
orbXList.push(_local6);
orbYList.push(_local7);
orbTList.push(_local8);
};
} else {
_local10 = _local4[_local5].split(",")[0];
_local11 = _local4[_local5].split(",")[1];
_local12 = _local4[_local5].split(",")[2];
_local13 = new Token(this, _local10, _local6, _local7, _local8, _local9, _local11, _local12);
atomList.push(_local13);
addChild(_local13);
};
};
_local3++;
};
}
protected function UpdateParticles(_arg1:int){
var _local2:*;
var _local3:*;
var _local4:Number;
var _local5:Number;
for (_local2 in partList) {
partList[_local2].Update(_arg1);
for (_local3 in atomList) {
if (atomList[_local3].state != Constants.DEAD){
_local4 = (atomList[_local3].x - partList[_local2].x);
_local5 = (atomList[_local3].y - partList[_local2].y);
if (((_local4 * _local4) + (_local5 * _local5)) < COLLISIONRADIUS){
atomList[_local3].state = Constants.DEAD;
partList[_local2].state = Constants.DEAD;
};
};
};
CreateDot(partList[_local2].x, partList[_local2].y, partList[_local2].currentFrame);
};
}
protected function UpdateAtoms(_arg1:int, _arg2:Boolean){
var _local3:Number;
var _local4:*;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
_local3 = 1;
for (_local4 in atomList) {
atomList[_local4].Update((_arg1 * rotationSpeed));
if (((!((_local3 == 0))) && (_arg2))){
_local5 = Math.pow(Math.abs((atomList[_local4].x - mouseX)), 2);
_local6 = Math.pow(Math.abs((atomList[_local4].y - mouseY)), 2);
_local7 = (_local5 + _local6);
if (_local7 < ATOMMINDIST){
_local3 = 0;
};
if ((((_local7 > ATOMMINDIST)) && ((_local7 < ATOMMAXDIST)))){
_local8 = (_local7 / (ATOMMAXDIST - ATOMMINDIST));
if (_local8 < _local3){
_local3 = _local8;
};
};
};
};
rotationSpeed = _local3;
}
protected function UpdateDots(_arg1:int){
var _local2:*;
var _local3:Boolean;
_local2 = (dotsList.length - 1);
while (_local2 > 0) {
_local3 = dotsList[_local2].Update(_arg1);
if (_local3){
removeChild(dotsList[_local2]);
dotsList.splice(_local2, 1);
};
_local2--;
};
}
protected function UpdateDeadTokens(){
var _local1:*;
var _local2:*;
_local1 = (atomList.length - 1);
while (_local1 >= 0) {
if (atomList[_local1].state == Constants.DEAD){
CreateExplosion(atomList[_local1]);
Score(atomList[_local1]);
removeChild(atomList[_local1]);
atomList.splice(_local1, 1);
};
_local1--;
};
_local2 = (partList.length - 1);
while (_local2 >= 0) {
if ((((((((((partList[_local2].x < (-320 - PARTRADIUS))) || ((partList[_local2].x > (320 + PARTRADIUS))))) || ((partList[_local2].y < (-240 - PARTRADIUS))))) || ((partList[_local2].y > (240 + PARTRADIUS))))) || ((partList[_local2].state == Constants.DEAD)))){
removeChild(partList[_local2]);
partList.splice(_local2, 1);
};
_local2--;
};
}
public function CreateOrbitDots(_arg1:int){
var _local2:*;
var _local3:*;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:int;
if (_arg1 == 0){
return;
};
for (_local2 in orbXList) {
_local3 = 1;
while (_local3 <= _arg1) {
_local4 = Math2.RandomN(0, 360);
_local5 = Constants.OrbitRadius(orbTList[_local2]);
_local6 = (orbXList[_local2] + (Math.cos(Math2.Deg2Rad(_local4)) * (_local5 * 0.5)));
_local7 = (orbYList[_local2] + (Math.sin(Math2.Deg2Rad(_local4)) * (_local5 * 0.5)));
CreateDot(_local6, _local7);
_local3++;
};
};
}
}
}//package game.logic
Section 42
//PlayerState (game.logic.PlayerState)
package game.logic {
import game.data.*;
import core.systems.*;
public class PlayerState extends File {
private const LPK:String = "levelpar";
private const LSK:String = "levelscore";
private const ACH:String = "achievement";
private const LCK:String = "levelcomplete";
public function PlayerState(){
super("atomikkaos2");
}
public function GetLastCompletedLevel():int{
var _local1:int;
var _local2:int;
_local1 = 0;
_local2 = 1;
while (_local2 <= 32) {
if (Read((LCK + _local2)) == 1){
_local1 = _local2;
};
_local2++;
};
return (_local1);
}
public function GetPar(_arg1:int):int{
return (int(Read((LPK + _arg1))));
}
public function SetLevelAsComplete(_arg1:int){
Write((LCK + _arg1), 1);
}
public function IsLevelCompleted(_arg1:int):Boolean{
if (Read((LCK + _arg1)) == 1){
return (true);
};
return (false);
}
public function SetPar(_arg1:int, _arg2:int){
var _local3:String;
_local3 = (LPK + _arg1);
if ((((Read(_local3) == 0)) || ((_arg2 < Read(_local3))))){
Write(_local3, _arg2);
};
}
public function GetAchievementStatus(_arg1:int):int{
return (Read((ACH + _arg1)));
}
public function GetFullScore():int{
var _local1:int;
var _local2:*;
_local1 = 0;
_local2 = 1;
while (_local2 <= 32) {
_local1 = (_local1 + GetScore(_local2));
_local2++;
};
return (_local1);
}
public function SetScore(_arg1:int, _arg2:int){
var _local3:String;
_local3 = (LSK + _arg1);
if (_arg2 > Read(_local3)){
Write(_local3, _arg2);
};
}
public function UnlockAchievement(_arg1:int){
Write((ACH + _arg1), 1);
}
public function GetGameDiff():int{
var _local1:int;
var _local2:int;
_local1 = 0;
_local2 = 1;
while (_local2 <= 32) {
_local1 = (_local1 + GetParDiff(_local2));
_local2++;
};
return (_local1);
}
public function GetParDiff(_arg1:int):int{
if (int(Read((LPK + _arg1))) == 0){
return (0);
};
trace((((((LevelStrings.GetLevelPar(_arg1) + " ") + " - ") + int(Read((LPK + _arg1)))) + " = ") + (LevelStrings.GetLevelPar(_arg1) - int(Read((LPK + _arg1))))));
return ((LevelStrings.GetLevelPar(_arg1) - int(Read((LPK + _arg1)))));
}
public function GetScore(_arg1:int):int{
return (int(Read((LSK + _arg1))));
}
}
}//package game.logic
Section 43
//SoundManager (game.logic.SoundManager)
package game.logic {
import core.utilities.*;
import core.systems.*;
public class SoundManager extends Audio {
public function SoundManager(){
RegisterMusic(Music);
RegisterSound(Ping1);
RegisterSound(Ping2);
RegisterSound(Ping3);
RegisterSound(Ping4);
RegisterSound(Ping5);
}
public function PlayRandomPing(){
var _local1:int;
var _local2:Class;
_local1 = Math2.RandomI(1, 5);
switch (_local1){
case 1:
_local2 = Ping1;
break;
case 2:
_local2 = Ping2;
break;
case 3:
_local2 = Ping3;
break;
case 4:
_local2 = Ping4;
break;
case 5:
_local2 = Ping5;
break;
};
PlaySound(_local2);
}
}
}//package game.logic
Section 44
//Achievements (game.scenes.Achievements)
package game.scenes {
import flash.display.*;
import flash.events.*;
import game.stuff.*;
import game.data.*;
import flash.text.*;
public class Achievements extends MovieClip {
public var a6:AchievementSymbols;
public var a4:AchievementSymbols;
public var a9:AchievementSymbols;
public var a5:AchievementSymbols;
public var a8:AchievementSymbols;
public var t2:TextField;
public var t3:TextField;
public var t7:TextField;
public var t8:TextField;
public var t9:TextField;
public var t5:TextField;
public var a11:AchievementSymbols;
public var a13:AchievementSymbols;
public var t4:TextField;
public var t6:TextField;
public var h10:TextField;
public var h13:TextField;
public var h12:TextField;
public var t12:TextField;
public var h11:TextField;
public var t13:TextField;
public var a10:AchievementSymbols;
public var t11:TextField;
public var h2:TextField;
public var h5:TextField;
public var h6:TextField;
public var h7:TextField;
public var h8:TextField;
public var h9:TextField;
public var h3:TextField;
public var h4:TextField;
public var t10:TextField;
public var a2:AchievementSymbols;
public var a3:AchievementSymbols;
public var a7:AchievementSymbols;
public var a12:AchievementSymbols;
public function Achievements(_arg1:String){
Objects.achievements = this;
addEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
public function WriteData(_arg1:int, _arg2:int){
var _local3:String;
var _local4:String;
_local3 = Text.Briefing["LOCKED"];
_local4 = Text.Locked[_arg1];
if (_arg2 == 1){
_local3 = Text.Header[_arg1];
_local4 = Text.Unlocked[_arg1];
};
TextField(getChildByName(("h" + _arg1))).text = _local3;
TextField(getChildByName(("t" + _arg1))).text = _local4;
}
private function Shutdown(_arg1:Event){
Objects.achievements = null;
removeEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
}
}//package game.scenes
Section 45
//ArmorGames (game.scenes.ArmorGames)
package game.scenes {
import flash.display.*;
import flash.events.*;
import game.data.*;
public class ArmorGames extends MovieClip {
public var Anim:MovieClip;
public function ArmorGames(_arg1:String){
addFrameScript(0, frame1);
Anim.gotoAndPlay(2);
addEventListener(MouseEvent.CLICK, Click);
}
function frame1(){
trace("me is loaded");
}
private function Click(_arg1:MouseEvent){
Objects.appManager.OpenURL("http://www.armorgames.com");
}
public function Proceed(){
Objects.appManager.Boot();
removeEventListener(MouseEvent.CLICK, Click);
}
}
}//package game.scenes
Section 46
//Briefing (game.scenes.Briefing)
package game.scenes {
import flash.display.*;
import flash.events.*;
import game.stuff.*;
import game.logic.*;
import game.data.*;
import flash.text.*;
public class Briefing extends MovieClip {
private var playerState:PlayerState;
private var lastCompletedLevel:int;
public var ExperimentStatusText:TextField;
public var ProblemText:TextField;
public var SolutionText:TextField;
public var YourBestScoreHeader:TextField;
public var ExperimentParText:TextField;
public var level10:LevelButton;
public var level11:LevelButton;
public var level12:LevelButton;
public var level13:LevelButton;
public var level14:LevelButton;
public var level15:LevelButton;
public var level16:LevelButton;
public var level18:LevelButton;
public var level19:LevelButton;
public var level17:LevelButton;
public var level20:LevelButton;
public var level21:LevelButton;
public var level22:LevelButton;
public var level23:LevelButton;
public var level24:LevelButton;
public var level25:LevelButton;
public var level27:LevelButton;
public var level28:LevelButton;
public var level29:LevelButton;
public var level26:LevelButton;
public var level30:LevelButton;
public var level31:LevelButton;
public var level32:LevelButton;
public var ExperimentParHeader:TextField;
public var level1:LevelButton;
public var level2:LevelButton;
public var level3:LevelButton;
public var level4:LevelButton;
public var level5:LevelButton;
public var level6:LevelButton;
public var level7:LevelButton;
public var level9:LevelButton;
public var level8:LevelButton;
public var YourParHeader:TextField;
public var SolutionHeader:TextField;
public var YourParText:TextField;
private var clicksBelowPar:int;
public var YourBestScoreText:TextField;
public var ExperimentStatusHeader:TextField;
public var ProblemHeader:TextField;
public function Briefing(_arg1:String){
playerState = Objects.playerState;
super();
addEventListener(Event.ADDED_TO_STAGE, Boot);
addEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
private function Shutdown(_arg1:Event){
Objects.briefing = null;
removeEventListener(Event.ADDED_TO_STAGE, Boot);
removeEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
public function UpdatePanel(_arg1:int, _arg2:int){
var _local3:int;
var _local4:int;
var _local5:String;
var _local6:String;
var _local7:String;
var _local8:String;
if (_arg1 != 0){
_local3 = Math.ceil((int(_arg1) / 8));
_local4 = (int(_arg1) - ((_local3 - 1) * 8));
_local5 = Text.Briefing["UNKNOWN"];
_local6 = Text.LevelInfoText["NOT_FOUND"];
_local7 = "-";
_local8 = Text.Briefing["LOCKED"];
if (_arg2 != 1){
_local5 = Text.LevelInfoHumour.get(int(_arg1), 1);
if (_arg2 == 2){
_local8 = Text.LevelInfoText["OPEN"];
};
if (_arg2 == 3){
_local8 = Text.LevelInfoText["SOLVED"];
};
};
if (_arg2 == 3){
_local6 = Text.LevelInfoHumour.get(int(_arg1), 2);
_local7 = String(playerState.GetPar(int(_arg1)));
};
ProblemHeader.text = (Text.LevelInfoHumour.get(0, _local3) + String(_local4));
ProblemText.text = _local5;
SolutionHeader.text = Text.LevelInfoText["YOUR_SOLUTION"];
SolutionText.text = _local6;
ExperimentParHeader.text = Text.LevelInfoText["EXPERIMENT_PAR"];
ExperimentParText.text = String(LevelStrings.GetLevelPar(_arg1));
YourParHeader.text = Text.LevelInfoText["YOUR_PAR"];
YourParText.text = _local7;
ExperimentStatusHeader.text = Text.LevelInfoText["EXPERIMENT_STATUS"];
ExperimentStatusText.text = _local8;
YourBestScoreHeader.text = Text.LevelInfoText["YOUR_SCORE"];
YourBestScoreText.text = String(playerState.GetScore(_arg1));
} else {
ProblemHeader.text = Text.Briefing["HEADER1"];
ProblemText.text = Text.Briefing["TEXT1"];
SolutionHeader.text = "";
SolutionText.text = "";
ExperimentParHeader.text = Text.Briefing["HEADER2"];
ExperimentParText.text = String(clicksBelowPar);
YourParHeader.text = Text.Briefing["HEADER3"];
YourParText.text = String(playerState.GetFullScore());
ExperimentStatusHeader.text = "";
ExperimentStatusText.text = "";
YourBestScoreHeader.text = "";
YourBestScoreText.text = "";
};
}
private function Boot(_arg1:Event){
Objects.briefing = this;
lastCompletedLevel = Objects.playerState.GetLastCompletedLevel();
clicksBelowPar = Math.abs(Objects.playerState.GetGameDiff());
UpdatePanel(0, 0);
}
public function RegisterLevelButton(_arg1:LevelButton){
var _local2:int;
_local2 = _arg1.name.split("level")[1];
if ((((lastCompletedLevel == 0)) && ((_local2 == 1)))){
_arg1.gotoAndStop(2);
return;
};
if (Objects.playerState.IsLevelCompleted(_local2)){
_arg1.gotoAndStop(3);
return;
};
if (_local2 == (lastCompletedLevel + 1)){
_arg1.gotoAndStop(2);
return;
};
_arg1.gotoAndStop(1);
}
}
}//package game.scenes
Section 47
//GamePreloader (game.scenes.GamePreloader)
package game.scenes {
import flash.display.*;
import flash.events.*;
import game.data.*;
import CPMStar.*;
import flash.text.*;
import core.services.*;
public class GamePreloader extends Preloader {
public var Loaded:TextField;
public var adBox:MovieClip;
public function GamePreloader(_arg1:String){
var _local2:DisplayObject;
super();
_local2 = new AdLoader("479QF52F2786");
adBox.addChild(_local2);
addEventListener(Event.REMOVED_FROM_STAGE, Removed);
}
private function Removed(_arg1:Event){
removeChild(adBox);
}
override protected function Update(_arg1:Number){
Loaded.text = String(Math.round((_arg1 * 100)));
if (_arg1 == 1){
Objects.appManager.play();
};
}
}
}//package game.scenes
Section 48
//LevelCode (game.scenes.LevelCode)
package game.scenes {
import flash.display.*;
import flash.events.*;
import game.data.*;
import flash.text.*;
public class LevelCode extends MovieClip {
private var levelDetail:String;
public var EditorText:TextField;
public function LevelCode(_arg1:String){
levelDetail = _arg1;
EditorText.text = _arg1;
addEventListener(Event.ADDED_TO_STAGE, Boot);
addEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
private function Boot(_arg1:Event){
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDown);
}
private function Shutdown(_arg1:Event){
stage.removeEventListener(KeyboardEvent.KEY_DOWN, KeyDown);
removeEventListener(Event.ADDED_TO_STAGE, Boot);
removeEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
private function KeyDown(_arg1:KeyboardEvent){
if (_arg1.keyCode == 69){
Objects.appManager.StartScene(LevelEditor);
};
if (_arg1.keyCode == 66){
Objects.appManager.StartScene(LevelEditor, levelDetail);
};
}
}
}//package game.scenes
Section 49
//LevelEditor (game.scenes.LevelEditor)
package game.scenes {
import flash.display.*;
import flash.events.*;
import game.tokens.*;
import game.logic.*;
import game.data.*;
import flash.text.*;
public class LevelEditor extends MovieClip {
private var levelDetail:String;
public var OrbitsLayer:LevelEditorLayer;
private var appManager:AtomikKaos2;
public var EditorText:TextField;
public var currentAtom:Token;
private var orbits:Array;
public var AtomsLayer:LevelEditorLayer;
private var levelPar:int;
public var currentOrbit:Orbit;
private var strings:Array;
public var GuidesLayer:LevelEditorLayer;
private var state:int;
public function LevelEditor(_arg1:String=null){
appManager = Objects.appManager;
super();
orbits = new Array();
strings = new Array();
LoadText();
if (_arg1 == null){
levelPar = 0;
} else {
this.levelDetail = _arg1;
CreateLevel();
};
SetState(Constants.IDLE);
addEventListener(Event.ADDED_TO_STAGE, Boot);
addEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
private function Boot(_arg1:Event){
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDown);
}
private function LoadText(){
strings[Constants.IDLE] = Text.Editor["IDLE"];
strings[Constants.MOVEORBIT] = Text.Editor["MOVEORBIT"];
strings[Constants.EDITORBIT] = Text.Editor["EDITORBIT"];
strings[Constants.MOVEATOM] = Text.Editor["MOVEATOM"];
strings[Constants.EDITATOM1] = Text.Editor["EDITATOM1"];
strings[Constants.EDITATOM2] = Text.Editor["EDITATOM2"];
}
public function SetState(_arg1:int){
var _local2:*;
var _local3:*;
state = _arg1;
if ((((state == Constants.MOVEATOM)) || ((state == Constants.MOVEORBIT)))){
for (_local2 in orbits) {
if (orbits[_local2] != currentOrbit){
orbits[_local2].SetMouseInput(false, false);
} else {
orbits[_local2].SetMouseInput(true, false);
};
};
} else {
for (_local3 in orbits) {
orbits[_local3].SetMouseInput(true, true);
};
};
EditorText.text = strings[state];
}
public function SetOrbit(_arg1:Orbit=null){
currentOrbit = _arg1;
if (_arg1 != null){
SetState(Constants.EDITORBIT);
} else {
SetState(Constants.IDLE);
};
}
public function CreateOrbit(){
var _local1:Orbit;
SetState(Constants.MOVEORBIT);
_local1 = new Orbit(this);
OrbitsLayer.addChild(_local1);
orbits.push(_local1);
}
private function Shutdown(_arg1:Event){
orbits = null;
strings = null;
currentOrbit = null;
currentAtom = null;
stage.removeEventListener(KeyboardEvent.KEY_DOWN, KeyDown);
removeEventListener(Event.ADDED_TO_STAGE, Boot);
removeEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
private function KeyDown(_arg1:KeyboardEvent){
if ((((_arg1.keyCode == 67)) && ((state == Constants.IDLE)))){
CreateOrbit();
};
if ((((((_arg1.keyCode >= 49)) && ((_arg1.keyCode <= 57)))) && ((state == Constants.EDITORBIT)))){
SetState(Constants.MOVEATOM);
currentOrbit.CreateAtom((_arg1.keyCode - 48), 0);
};
if ((((((_arg1.keyCode == 107)) || ((_arg1.keyCode == 187)))) && ((state == Constants.EDITORBIT)))){
currentOrbit.ChangeSize(1);
};
if ((((((_arg1.keyCode == 109)) || ((_arg1.keyCode == 189)))) && ((state == Constants.EDITORBIT)))){
currentOrbit.ChangeSize(-1);
};
if (_arg1.keyCode == 77){
if (state == Constants.EDITORBIT){
SetState(Constants.MOVEORBIT);
currentOrbit.state = currentOrbit.FOLLOW;
};
if ((((state == Constants.EDITATOM1)) || ((state == Constants.EDITATOM2)))){
SetState(Constants.MOVEATOM);
currentOrbit.MoveCurrentAtom();
};
};
if (_arg1.keyCode == 68){
if ((((state == Constants.EDITATOM1)) || ((state == Constants.EDITATOM2)))){
currentAtom.Delete();
currentAtom = null;
};
if (state == Constants.EDITORBIT){
currentOrbit.Delete();
orbits.splice(orbits.indexOf(currentOrbit, 1));
OrbitsLayer.removeChild(currentOrbit);
currentOrbit = null;
};
SetState(Constants.IDLE);
};
if ((((_arg1.keyCode == 83)) && ((state == Constants.EDITORBIT)))){
currentOrbit.ChangeSpeed();
};
if ((((_arg1.keyCode == 84)) && ((state == Constants.IDLE)))){
appManager.StartScene(LevelTest, GetLevelString());
};
if ((((_arg1.keyCode == 82)) && ((state == Constants.EDITATOM2)))){
currentAtom.RotateArrow();
};
}
private function GetLevelString():String{
var _local1:String;
var _local2:*;
_local1 = String(levelPar);
for (_local2 in orbits) {
_local1 = (_local1 + ("#" + orbits[_local2].GetString()));
};
return (_local1);
}
public function SetAtom(_arg1:Token=null){
currentAtom = _arg1;
if (_arg1 != null){
if (_arg1.type == 8){
SetState(Constants.EDITATOM2);
} else {
SetState(Constants.EDITATOM1);
};
} else {
SetState(Constants.IDLE);
};
}
private function CreateLevel(){
var _local1:Array;
var _local2:*;
var _local3:Orbit;
_local1 = levelDetail.split("#");
levelPar = _local1[0];
_local2 = 1;
while (_local2 < _local1.length) {
_local3 = new Orbit(this);
OrbitsLayer.addChild(_local3);
_local3.CreateFromScratch(_local1[_local2]);
orbits.push(_local3);
_local2++;
};
}
}
}//package game.scenes
Section 50
//LevelPlay (game.scenes.LevelPlay)
package game.scenes {
import flash.events.*;
import game.stuff.*;
import game.tokens.*;
import game.logic.*;
import core.utilities.*;
import game.data.*;
import game.dialogs.*;
public class LevelPlay extends Level {
private const FIRE:int = 2;
private const NONE:int = 5;
private const KILL:int = 4;
private const WAIT:int = 3;
private const MOVE:int = 1;
private const IDLE:int = 0;
private var clock:Clock;
private var levelDetail:String;
private var playerState:PlayerState;
private var appManager:AtomikKaos2;
public var Background:LevelBackground;
public var nOfClicks:int;
private var currentScore:int;
private var state:int;
public var currentLevel:int;
private var bonusScore:int;
private var ready:Boolean;
private var bonusScoreCounter:int;
public var infoBubble:InfoBubble;// = null
public function LevelPlay(_arg1:String){
appManager = Objects.appManager;
playerState = Objects.playerState;
infoBubble = null;
super();
currentLevel = int(_arg1);
addEventListener(Event.ADDED_TO_STAGE, Boot);
addEventListener(Event.ENTER_FRAME, Update);
addEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
public function WriteInfo(_arg1:String){
if (infoBubble == null){
infoBubble = new InfoBubble(_arg1);
infoBubble.x = 320;
infoBubble.y = 240;
addChild(infoBubble);
} else {
infoBubble.Write(_arg1);
};
}
private function Boot(_arg1:Event){
var _local2:String;
Objects.level = this;
clock = new Clock();
atomList = new Array();
partList = new Array();
dotsList = new Array();
orbTList = new Array();
orbXList = new Array();
orbYList = new Array();
_local2 = LevelStrings.GetLevel(currentLevel);
if (_local2 == "EOF"){
appManager.StartScene(MainMenu);
return;
};
CreateLevel(_local2);
trace(((("Level:" + currentLevel) + " | Par:") + levelPar));
if (currentLevel <= 8){
appManager.OpenDialog(Tutorial, String(currentLevel));
} else {
appManager.OpenDialog(LevelInfo, String(currentLevel));
};
state = IDLE;
nOfClicks = 0;
currentScore = 0;
bonusScoreCounter = (atomList.length * 5000);
bonusScore = int((bonusScoreCounter * 0.001));
ready = false;
Background.gotoAndStop(Math.ceil((currentLevel / 8)));
alpha = 0;
clock.Reset();
}
override public function Score(_arg1:Token){
var _local2:int;
var _local3:ScoreBubble;
_local2 = 0;
if (((levelPar - nOfClicks) + 1) > 0){
_local2 = ((10 * ((levelPar - nOfClicks) + 1)) * bonusScore);
currentScore = (currentScore + _local2);
};
_local3 = new ScoreBubble(_local2);
_local3.x = _arg1.x;
_local3.y = _arg1.y;
addChild(_local3);
WriteInfo(("Score: " + currentScore));
Objects.soundManager.PlayRandomPing();
}
private function Shutdown(_arg1:Event){
Objects.level = null;
clock = null;
atomList = null;
partList = null;
removeEventListener(Event.ADDED_TO_STAGE, Boot);
removeEventListener(Event.ENTER_FRAME, Update);
removeEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
public function Ready(){
ready = true;
}
override public function Ignite(_arg1:Token){
if (state == MOVE){
_arg1.state = Constants.DEAD;
state = FIRE;
nOfClicks++;
};
}
private function Update(_arg1:Event){
var _local2:int;
_local2 = clock.Update();
if (infoBubble != null){
infoBubble.Update(_local2);
};
if (state != NONE){
CreateOrbitDots(Math.round((_local2 * 0.025)));
UpdateDots(_local2);
};
if ((((state == IDLE)) || ((state == KILL)))){
UpdateAtoms((_local2 * (20 - (19 * alpha))), false);
if (state == IDLE){
alpha = (alpha + (_local2 * 0.0005));
} else {
alpha = (alpha - (_local2 * 0.0005));
};
if ((((state == IDLE)) && ((alpha >= 1)))){
alpha = 1;
state = WAIT;
};
if ((((state == KILL)) && ((alpha <= 0)))){
alpha = 0;
state = NONE;
};
};
if (state == WAIT){
UpdateAtoms(_local2, false);
if (ready){
state = MOVE;
};
};
if (state == MOVE){
UpdateAtoms(_local2, true);
bonusScoreCounter = (bonusScoreCounter - (_local2 * 0.2));
if (bonusScoreCounter <= 1000){
bonusScoreCounter = 1000;
};
if (int((bonusScoreCounter * 0.001)) != bonusScore){
bonusScore = int((bonusScoreCounter * 0.001));
WriteInfo((("Bonus: " + String(bonusScore)) + "x"));
};
};
if (state == FIRE){
UpdateParticles(_local2);
UpdateDeadTokens();
if (partList.length == 0){
if ((((nOfClicks <= levelPar)) && ((atomList.length == 0)))){
playerState.SetPar(currentLevel, nOfClicks);
playerState.SetScore(currentLevel, currentScore);
playerState.SetLevelAsComplete(currentLevel);
AchievementsLogic.TestEndLevel(currentLevel);
if (AchievementsLogic.NewAchievements()){
appManager.OpenDialog(AchievementsDialog, String(currentLevel));
} else {
appManager.OpenDialog(LevelInfo, String(currentLevel));
};
WriteInfo(Text.Level["COMPLETED"]);
state = KILL;
} else {
if ((((nOfClicks == levelPar)) && (!((atomList.length == 0))))){
playerState.SetPar(currentLevel, nOfClicks);
playerState.SetScore(currentLevel, currentScore);
appManager.OpenDialog(LevelFailed);
WriteInfo(Text.Level["FAILED"]);
state = KILL;
} else {
state = MOVE;
};
};
WriteInfo(((("Click: " + nOfClicks) + " | Par: ") + levelPar));
};
};
setChildIndex(Background, 0);
}
}
}//package game.scenes
Section 51
//LevelTest (game.scenes.LevelTest)
package game.scenes {
import flash.events.*;
import game.tokens.*;
import game.logic.*;
import core.utilities.*;
import game.data.*;
import flash.text.*;
public class LevelTest extends Level {
private const TESTPHASE2FIRE:int = 4;
private const TESTPHASE2:int = 3;
private const TESTPHASE1:int = 0;
private const TESTPHASE1FAILED:int = 1;
private const TESTPHASE1SUCCESS:int = 2;
private var levelDetail:String;
private var clock:Clock;
private var appManager:AtomikKaos2;
public var EditorText:TextField;
private var state:int;
private var levelTime:Number;
public function LevelTest(_arg1:String){
appManager = Objects.appManager;
super();
this.levelDetail = _arg1;
addEventListener(Event.ADDED_TO_STAGE, Boot);
addEventListener(Event.ENTER_FRAME, Update);
addEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
private function TestComplete(){
var _local1:Array;
var _local2:String;
var _local3:int;
_local1 = levelDetail.split("#");
_local2 = String(levelPar);
_local3 = 1;
while (_local3 < _local1.length) {
_local2 = (_local2 + ("#" + _local1[_local3]));
_local3++;
};
appManager.StartScene(LevelCode, _local2);
}
private function Boot(_arg1:Event){
clock = new Clock();
levelTime = 0;
levelPar = 0;
atomList = new Array();
partList = new Array();
CreateLevel(levelDetail);
SetState(TESTPHASE1);
clock.Reset();
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
}
private function SetState(_arg1:int){
switch (_arg1){
case TESTPHASE1:
EditorText.text = Text.Test["TEST_PHASE1"];
break;
case TESTPHASE1FAILED:
EditorText.text = Text.Test["TEST_PHASE1FAILED"];
break;
case TESTPHASE1SUCCESS:
EditorText.text = Text.Test["TEST_PHASE1SUCCESS"];
levelPar = 0;
break;
case TESTPHASE2:
EditorText.text = Text.Test["TEST_PHASE2"];
break;
case TESTPHASE2FIRE:
EditorText.text = Text.Test["TEST_PHASE2FIRE"];
break;
};
state = _arg1;
}
private function Shutdown(_arg1:Event){
clock = null;
atomList = null;
partList = null;
removeEventListener(Event.ADDED_TO_STAGE, Boot);
removeEventListener(Event.ENTER_FRAME, Update);
removeEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDown);
}
private function keyDown(_arg1:KeyboardEvent){
if (state == TESTPHASE1FAILED){
appManager.StartScene(LevelEditor, levelDetail);
};
if (state == TESTPHASE1SUCCESS){
SetState(TESTPHASE2);
};
}
override public function Ignite(_arg1:Token){
if (state == TESTPHASE2){
levelPar++;
_arg1.state = Constants.DEAD;
SetState(TESTPHASE2FIRE);
};
}
private function Update(_arg1:Event){
var _local2:int;
_local2 = clock.Update();
if (state == TESTPHASE1){
levelTime = (levelTime + _local2);
if (levelTime > Constants.OrbitTime()){
SetState(TESTPHASE1SUCCESS);
_local2 = (levelTime - Constants.OrbitTime());
};
UpdateAtoms(_local2, false);
if (TestAtomCollisions()){
SetState(TESTPHASE1FAILED);
};
};
if (state == TESTPHASE2FIRE){
UpdateParticles(_local2);
UpdateDeadTokens();
if (partList.length == 0){
if (atomList.length == 0){
TestComplete();
} else {
SetState(TESTPHASE2);
};
};
};
}
}
}//package game.scenes
Section 52
//MainMenu (game.scenes.MainMenu)
package game.scenes {
import flash.display.*;
public class MainMenu extends MovieClip {
public function MainMenu(_arg1:String=null){
}
}
}//package game.scenes
Section 53
//SiteLocked (game.scenes.SiteLocked)
package game.scenes {
import flash.display.*;
import flash.text.*;
public class SiteLocked extends MovieClip {
public var HeaderText:TextField;
public function SiteLocked(_arg1:String){
}
}
}//package game.scenes
Section 54
//SoundAndMusic (game.scenes.SoundAndMusic)
package game.scenes {
import flash.display.*;
import flash.text.*;
public class SoundAndMusic extends MovieClip {
public var HeaderText:TextField;
public function SoundAndMusic(_arg1:String){
}
}
}//package game.scenes
Section 55
//AchievementSymbols (game.stuff.AchievementSymbols)
package game.stuff {
import flash.display.*;
import flash.events.*;
import game.data.*;
public class AchievementSymbols extends MovieClip {
public function AchievementSymbols(){
addEventListener(Event.ADDED_TO_STAGE, Boot);
addEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
private function Boot(_arg1:Event){
var _local2:int;
var _local3:int;
_local2 = name.split("a")[1];
_local3 = 0;
if (Objects.playerState.GetAchievementStatus(_local2) == 1){
_local3 = 1;
gotoAndStop(_local2);
} else {
gotoAndStop(1);
};
Objects.achievements.WriteData(_local2, _local3);
}
private function Shutdown(_arg1:Event){
removeEventListener(Event.ADDED_TO_STAGE, Boot);
removeEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
}
}//package game.stuff
Section 56
//InfoBubble (game.stuff.InfoBubble)
package game.stuff {
import flash.display.*;
import game.scenes.*;
import game.data.*;
import flash.text.*;
public class InfoBubble extends MovieClip {
private const SHOWTIME:int = 1000;
private const FADE:int = 1;
private const SHOW:int = 0;
public var InfoText:TextField;
private var level:LevelPlay;
private var state:int;
private var time:int;// = 0
public function InfoBubble(_arg1:String){
time = 0;
level = Objects.level;
super();
Write(_arg1);
}
public function Write(_arg1:String){
alpha = 1;
time = 0;
InfoText.text = _arg1;
state = SHOW;
}
public function Update(_arg1:int){
time = (time + _arg1);
if ((((state == SHOW)) && ((time >= SHOWTIME)))){
state = FADE;
};
if (state == FADE){
alpha = (alpha - (_arg1 * 0.001));
if (alpha <= 0){
level.infoBubble = null;
level.removeChild(this);
};
};
}
}
}//package game.stuff
Section 57
//LevelButton (game.stuff.LevelButton)
package game.stuff {
import flash.display.*;
import flash.events.*;
import game.scenes.*;
import game.data.*;
import flash.filters.*;
public class LevelButton extends MovieClip {
private const LOCKED:int = 1;
private const OPEN:int = 2;
private const DONE:int = 3;
private var filtersList:Array;
private var level:int;
private var state:int;
private var glow:GlowFilter;
public function LevelButton(){
filtersList = new Array();
super();
addEventListener(Event.ADDED_TO_STAGE, Boot);
addEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
addEventListener(MouseEvent.ROLL_OVER, Over);
addEventListener(MouseEvent.ROLL_OUT, Out);
addEventListener(MouseEvent.CLICK, Click);
}
private function Boot(_arg1:Event){
Objects.briefing.RegisterLevelButton(this);
}
private function Over(_arg1:MouseEvent){
if (currentFrame != 1){
switch (currentFrame){
case 2:
glow = new GlowFilter(0xFF0000);
break;
case 3:
glow = new GlowFilter(0xFF);
break;
};
filtersList.push(glow);
filters = filtersList;
};
Objects.briefing.UpdatePanel(name.split("level")[1], currentFrame);
}
private function Out(_arg1:MouseEvent){
filtersList = new Array();
filters = filtersList;
Objects.briefing.UpdatePanel(0, 0);
}
private function Shutdown(_arg1:Event){
removeEventListener(Event.ADDED_TO_STAGE, Boot);
removeEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
removeEventListener(MouseEvent.ROLL_OVER, Over);
removeEventListener(MouseEvent.ROLL_OUT, Out);
removeEventListener(MouseEvent.CLICK, Click);
}
private function Click(_arg1:MouseEvent){
if (currentFrame != 1){
Objects.appManager.StartScene(LevelPlay, name.split("level")[1]);
};
}
}
}//package game.stuff
Section 58
//OrbitDot (game.stuff.OrbitDot)
package game.stuff {
import flash.display.*;
import core.utilities.*;
import flash.filters.*;
public class OrbitDot extends MovieClip {
private var filterList:Array;
private var maxSize:Number;
private var glow:GlowFilter;
public function OrbitDot(_arg1:Number, _arg2:Number, _arg3:int){
var _local4:uint;
super();
_local4 = 0;
switch (_arg3){
case 0:
_local4 = 0xFFFFFF;
break;
case 1:
_local4 = 7920164;
break;
case 2:
_local4 = 11026175;
break;
case 3:
_local4 = 13518247;
break;
case 4:
_local4 = 14622517;
break;
case 5:
_local4 = 16741633;
break;
case 6:
_local4 = 38143;
break;
case 7:
_local4 = 2281903;
break;
case 8:
_local4 = 13547021;
break;
};
this.x = _arg1;
this.y = _arg2;
filterList = new Array();
glow = new GlowFilter(_local4);
filterList.push(glow);
filters = filterList;
width = (height = (maxSize = Math2.RandomN(1, 5)));
if (_arg3 == 0){
gotoAndStop(9);
} else {
gotoAndStop(_arg3);
};
}
public function Update(_arg1:int):Boolean{
maxSize = (maxSize - (_arg1 * 0.005));
if (maxSize >= 0){
width = (height = maxSize);
glow.alpha = Math.random();
return (false);
};
return (true);
}
}
}//package game.stuff
Section 59
//ScoreBubble (game.stuff.ScoreBubble)
package game.stuff {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class ScoreBubble extends MovieClip {
public var ScoreText:TextField;
public function ScoreBubble(_arg1:int){
ScoreText.text = String(_arg1);
addEventListener(Event.ENTER_FRAME, Update);
}
private function End(){
removeEventListener(Event.ENTER_FRAME, Update);
MovieClip(parent).removeChild(this);
}
private function Update(_arg1:Event){
alpha = (alpha - 0.1);
y--;
if (alpha == 0){
End();
};
}
}
}//package game.stuff
Section 60
//Orbit (game.tokens.Orbit)
package game.tokens {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import game.scenes.*;
import core.utilities.*;
import game.data.*;
public class Orbit extends MovieClip {
public const STOP:int = 1;
public const EDIT:int = 2;
public const FOLLOW:int = 0;
public const MOVEATOM:int = 3;
private var size:int;
private var clock:Clock;
public var Ring:OrbitRing;
private var speed:int;
private var atom:Token;
private var editor:LevelEditor;
private var atoms:Array;
private var dps:int;
public var state:int;
public function Orbit(_arg1:LevelEditor){
this.editor = _arg1;
clock = new Clock();
clock.Reset();
atom = null;
atoms = new Array();
size = 1;
speed = 1;
dps = Constants.OrbitSpeed(speed);
state = FOLLOW;
addEventListener(Event.ADDED_TO_STAGE, Boot);
addEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
public function SetMouseInput(_arg1:Boolean, _arg2:Boolean){
var _local3:*;
mouseEnabled = _arg1;
for (_local3 in atoms) {
if (atoms[_local3] != atom){
atoms[_local3].mouseEnabled = _arg2;
};
};
}
private function Boot(_arg1:Event){
addEventListener(Event.ENTER_FRAME, Update);
addEventListener(MouseEvent.MOUSE_OVER, Over);
addEventListener(MouseEvent.MOUSE_OUT, Out);
addEventListener(MouseEvent.CLICK, Click);
}
private function Over(_arg1:MouseEvent){
if (state == STOP){
editor.SetOrbit(this);
Ring.alpha = 1;
};
}
private function Out(_arg1:MouseEvent){
if (((!((state == FOLLOW))) && (!((state == MOVEATOM))))){
editor.SetOrbit();
editor.SetState(Constants.IDLE);
Ring.alpha = 0.5;
};
}
private function MoveAllAtoms(){
var _local1:*;
for (_local1 in atoms) {
atoms[_local1].Move(x, y, size, atoms[_local1].Angle);
};
}
public function CreateFromScratch(_arg1:String){
var _local2:Array;
var _local3:*;
var _local4:int;
var _local5:Number;
var _local6:Number;
_local2 = _arg1.split("|");
for (_local3 in _local2) {
if (_local3 == 0){
x = _local2[0].split(",")[0];
y = _local2[0].split(",")[1];
size = _local2[0].split(",")[2];
Ring.width = (Ring.height = Constants.OrbitRadius(size));
speed = _local2[0].split(",")[3];
dps = Constants.OrbitSpeed(speed);
} else {
_local4 = _local2[_local3].split(",")[0];
_local5 = _local2[_local3].split(",")[1];
_local6 = _local2[_local3].split(",")[2];
CreateAtom(_local4, _local6);
atom.Move(x, y, size, _local5);
atom.state = Constants.STOP;
};
};
state = STOP;
}
public function ChangeSpeed(){
speed++;
if (speed == 4){
speed = -3;
};
dps = Constants.OrbitSpeed(speed);
}
private function TestHorBorders(_arg1:int, _arg2:int):Boolean{
if (((((_arg1 - (_arg2 * 0.5)) > -320)) && (((_arg1 + (_arg2 * 0.5)) < 320)))){
return (true);
};
return (false);
}
private function Shutdown(_arg1:Event){
editor = null;
atom = null;
atoms = null;
removeEventListener(Event.ADDED_TO_STAGE, Boot);
removeEventListener(Event.ENTER_FRAME, Update);
removeEventListener(MouseEvent.MOUSE_OVER, Over);
removeEventListener(MouseEvent.MOUSE_OUT, Out);
removeEventListener(MouseEvent.CLICK, Click);
removeEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
private function Click(_arg1:MouseEvent){
if (state == FOLLOW){
state = STOP;
editor.SetOrbit(this);
return;
};
}
public function CreateAtom(_arg1:int, _arg2:int){
atom = new Token(null, _arg1, x, y, size, 0, 0, _arg2);
atom.ActivateEditorMode(editor, this);
atoms.push(atom);
state = MOVEATOM;
editor.AtomsLayer.addChild(atom);
}
public function SetAtom(_arg1:Token=null){
if (state != MOVEATOM){
atom = _arg1;
editor.SetOrbit(this);
editor.SetAtom(_arg1);
};
}
public function MoveCurrentAtom(){
atom.state = Constants.EDIT;
state = MOVEATOM;
}
public function DeleteAtom(_arg1:Token){
_arg1.DeleteParticleGuides();
editor.AtomsLayer.removeChild(_arg1);
atoms.splice(atoms.indexOf(_arg1), 1);
}
public function Delete(){
var _local1:*;
_local1 = (atoms.length - 1);
while (_local1 >= 0) {
DeleteAtom(atoms[_local1]);
_local1--;
};
}
public function Update(_arg1:Event){
var _local2:int;
var _local3:int;
var _local4:Point;
var _local5:Point;
if (state == FOLLOW){
_local2 = (Math.round((editor.mouseX / 16)) * 16);
_local3 = (Math.round((editor.mouseY / 16)) * 16);
if (TestHorBorders(_local2, width)){
x = _local2;
};
if (TestVerBorders(_local3, height)){
y = _local3;
};
MoveAllAtoms();
};
if (state == MOVEATOM){
_local4 = new Point(x, y);
_local5 = new Point(editor.mouseX, editor.mouseY);
atom.Move(x, y, size, Math2.GetAngleBetweenPoints(_local4, _local5));
};
if (editor.currentOrbit != this){
Ring.rotation = (Ring.rotation + ((clock.Update() * dps) * 0.001));
} else {
Ring.rotation = 0;
};
}
public function GetString():String{
var _local1:String;
var _local2:*;
_local1 = ((((((x + ",") + y) + ",") + size) + ",") + speed);
for (_local2 in atoms) {
_local1 = (_local1 + ("|" + atoms[_local2].GetString()));
};
return (_local1);
}
public function ChangeSize(_arg1:int){
var _local2:int;
var _local3:int;
_local2 = Constants.OrbitRadius((size + _arg1));
_local3 = _local2;
if (((((TestHorBorders(x, _local2)) && (TestVerBorders(y, _local3)))) && (((size + _arg1) > 0)))){
size = (size + _arg1);
Ring.rotation = 0;
Ring.width = _local2;
Ring.height = _local3;
MoveAllAtoms();
};
}
private function TestVerBorders(_arg1:int, _arg2:int):Boolean{
if (((((_arg1 - (_arg2 * 0.5)) > -240)) && (((_arg1 + (_arg2 * 0.5)) < 240)))){
return (true);
};
return (false);
}
}
}//package game.tokens
Section 61
//Particle (game.tokens.Particle)
package game.tokens {
import flash.display.*;
import core.utilities.*;
import game.data.*;
public class Particle extends MovieClip {
public var state:int;
private var angle:int;
public function Particle(_arg1:int, _arg2:Number, _arg3:Number, _arg4:int){
gotoAndStop(_arg1);
this.x = _arg2;
this.y = _arg3;
this.angle = _arg4;
state = Constants.ALIVE;
}
public function Update(_arg1:int){
x = (x + ((Math.cos(Math2.Deg2Rad(angle)) * _arg1) * 0.2));
y = (y + ((Math.sin(Math2.Deg2Rad(angle)) * _arg1) * 0.2));
}
}
}//package game.tokens
Section 62
//Token (game.tokens.Token)
package game.tokens {
import flash.display.*;
import flash.events.*;
import game.scenes.*;
import game.logic.*;
import core.utilities.*;
import game.data.*;
public class Token extends MovieClip {
private var particleGuides:Array;
public var shootingAngles:Array;
private var orbitR:Number;
private var orbitS:Number;
private var orbitX:Number;
private var editor:LevelEditor;
private var orbitY:Number;
private var orbit:Orbit;
private var level:Level;
public var state:int;
public var type:int;
private var angle:Number;
public function Token(_arg1:Level, _arg2:int, _arg3:Number, _arg4:Number, _arg5:int, _arg6:int, _arg7:Number, _arg8:int=0){
var _local9:*;
super();
this.level = _arg1;
this.type = _arg2;
switch (_arg2){
case 1:
shootingAngles = new Array(0, 45, 90, 135, 180, 225, 270, 315);
break;
case 2:
shootingAngles = new Array(0, 60, 120, 180, 240, 300);
break;
case 3:
shootingAngles = new Array(30, 90, 150, 210, 270, 330);
break;
case 4:
shootingAngles = new Array(0, 90, 180, 270);
break;
case 5:
shootingAngles = new Array(45, 135, 225, 315);
break;
case 6:
shootingAngles = new Array(0, 180);
break;
case 7:
shootingAngles = new Array(90, 270);
break;
case 8:
shootingAngles = new Array();
shootingAngles.push(_arg8);
_local9 = new PointArrow();
new PointArrow().x = (_local9.y = 0);
addChild(_local9);
_local9.rotation = _arg8;
break;
case 9:
shootingAngles = new Array();
break;
};
gotoAndStop(_arg2);
this.orbitX = _arg3;
this.orbitY = _arg4;
this.orbitS = Constants.OrbitSpeed(_arg6);
this.orbitR = Constants.OrbitRadius(_arg5);
this.angle = _arg7;
Update();
state = Constants.ALIVE;
addEventListener(MouseEvent.CLICK, MouseClick);
addEventListener(MouseEvent.ROLL_OVER, MouseOver);
addEventListener(MouseEvent.ROLL_OUT, MouseOut);
addEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
private function MouseClick(_arg1:MouseEvent){
if (state == Constants.EDIT){
orbit.state = orbit.STOP;
state = Constants.STOP;
};
if (state == Constants.ALIVE){
level.Ignite(this);
};
}
public function ActivateEditorMode(_arg1:LevelEditor, _arg2:Orbit){
var _local3:*;
var _local4:ParticleGuide;
this.editor = _arg1;
this.orbit = _arg2;
particleGuides = new Array();
for (_local3 in shootingAngles) {
_local4 = new ParticleGuide();
_local4.x = x;
_local4.y = y;
_local4.rotation = shootingAngles[_local3];
_arg1.GuidesLayer.addChild(_local4);
particleGuides.push(_local4);
};
state = Constants.EDIT;
}
public function RotateArrow(){
rotation = (rotation + 15);
particleGuides[0].rotation = rotation;
shootingAngles[0] = rotation;
}
private function Shutdown(_arg1:Event){
level = null;
editor = null;
orbit = null;
particleGuides = null;
removeEventListener(MouseEvent.CLICK, MouseClick);
removeEventListener(MouseEvent.ROLL_OVER, MouseOver);
removeEventListener(MouseEvent.ROLL_OUT, MouseOut);
removeEventListener(Event.REMOVED_FROM_STAGE, Shutdown);
}
private function MouseOut(_arg1:MouseEvent){
if (state == Constants.STOP){
editor.SetState(Constants.IDLE);
orbit.SetAtom();
};
}
public function get Angle():Number{
return (angle);
}
public function DeleteParticleGuides(){
var _local1:*;
for (_local1 in particleGuides) {
editor.GuidesLayer.removeChild(particleGuides[_local1]);
};
}
public function Delete(){
orbit.DeleteAtom(this);
}
public function Update(_arg1:int=0){
angle = (angle + ((orbitS * _arg1) * 0.001));
x = (orbitX + (Math.cos(Math2.Deg2Rad(angle)) * (orbitR * 0.5)));
y = (orbitY + (Math.sin(Math2.Deg2Rad(angle)) * (orbitR * 0.5)));
}
public function GetString():String{
return ("blargh!");
}
public function Move(_arg1:Number, _arg2:Number, _arg3:int, _arg4:Number){
var _local5:*;
this.orbitX = _arg1;
this.orbitY = _arg2;
this.orbitR = Constants.OrbitRadius(_arg3);
this.angle = _arg4;
Update();
for (_local5 in particleGuides) {
particleGuides[_local5].x = x;
particleGuides[_local5].y = y;
};
}
private function MouseOver(_arg1:MouseEvent){
if (state == Constants.STOP){
orbit.SetAtom(this);
};
}
}
}//package game.tokens
Section 63
//AchievementSymbolsNumb (AchievementSymbolsNumb)
package {
import flash.display.*;
public dynamic class AchievementSymbolsNumb extends MovieClip {
}
}//package
Section 64
//AssetsHolder (AssetsHolder)
package {
import flash.display.*;
public dynamic class AssetsHolder extends MovieClip {
public function AssetsHolder(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 65
//LevelBackground (LevelBackground)
package {
import flash.display.*;
public dynamic class LevelBackground extends MovieClip {
}
}//package
Section 66
//LevelEditorLayer (LevelEditorLayer)
package {
import flash.display.*;
public dynamic class LevelEditorLayer extends MovieClip {
public function LevelEditorLayer(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
}
}
}//package
Section 67
//LevelInfoButtons (LevelInfoButtons)
package {
import flash.display.*;
public dynamic class LevelInfoButtons extends MovieClip {
}
}//package
Section 68
//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 69
//Music (Music)
package {
import flash.media.*;
public dynamic class Music extends Sound {
}
}//package
Section 70
//OrbitRing (OrbitRing)
package {
import flash.display.*;
public dynamic class OrbitRing extends MovieClip {
}
}//package
Section 71
//ParticleGuide (ParticleGuide)
package {
import flash.display.*;
public dynamic class ParticleGuide extends MovieClip {
public function ParticleGuide(){
addFrameScript(0, frame1);
}
function frame1(){
mouseEnabled = false;
}
}
}//package
Section 72
//Ping1 (Ping1)
package {
import flash.media.*;
public dynamic class Ping1 extends Sound {
}
}//package
Section 73
//Ping2 (Ping2)
package {
import flash.media.*;
public dynamic class Ping2 extends Sound {
}
}//package
Section 74
//Ping3 (Ping3)
package {
import flash.media.*;
public dynamic class Ping3 extends Sound {
}
}//package
Section 75
//Ping4 (Ping4)
package {
import flash.media.*;
public dynamic class Ping4 extends Sound {
}
}//package
Section 76
//Ping5 (Ping5)
package {
import flash.media.*;
public dynamic class Ping5 extends Sound {
}
}//package
Section 77
//PointArrow (PointArrow)
package {
import flash.display.*;
public dynamic class PointArrow extends MovieClip {
}
}//package
Section 78
//TokenArrow (TokenArrow)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.media.*;
import flash.text.*;
import flash.filters.*;
import flash.utils.*;
import flash.system.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class TokenArrow extends MovieClip {
public function TokenArrow(){
addFrameScript(0, frame1);
}
function frame1(){
rotation = MovieClip(parent).shootingAngles[0];
}
}
}//package