Section 1
//SimpleCache (com.framework.SimpleCache)
package com.framework {
public class SimpleCache {
protected var _targetClass:Class;
protected var _instances:Array;
public function SimpleCache(_arg1:Class){
_targetClass = _arg1;
_instances = [];
}
public function set(_arg1:Object):void{
_instances.push(_arg1);
}
public function get():Object{
if (_instances.length > 0){
return (_instances.pop());
};
return (getNewInstance());
}
protected function getNewInstance():Object{
return (new _targetClass());
}
}
}//package com.framework
Section 2
//FieldView (game.FieldView)
package game {
import flash.display.*;
public class FieldView extends MovieClip {
}
}//package game
Section 3
//Game (game.Game)
package game {
import Playtomic.*;
import util.*;
import gs.*;
import flash.events.*;
import flash.utils.*;
import flash.display.*;
import com.framework.*;
import gs.easing.*;
import util.sound.*;
import flash.ui.*;
public class Game extends View {
private var _lines:MovieClip;
public var progress_bar:item_bar;
private var animate_arr:Array;
private var _bonus_rnd:RandomArray;
private var _lock:Boolean;
private var _cur_item:Item;
public var game_back:MovieClip;
private var _robot_fl:Boolean;
private var _label_mc:Label;
private var _active:Item;
private var _check_timeout:uint;
private var _check_arr:Array;
public var pause_bt:pause_cl;
private var _add_fl:Boolean;
public var line_bar:LineBar;
private var _field_mc:MovieClip;
private var _scroll_back:ScrollBack;
public var points_mc:Points;
private var _destroy_counter:Number;
private var _play_fl:Boolean;
private var _gd:GameData;
private var _multiply:Number;
public var sound_bt:SoundButton;
private var _delay:Number;
private var _combo:Number;
private var _pause_bt:But;
private var _line_bar:LineBar;
private var _targeth:int;
private var _counter:Number;
public var next_color_mc:ColorIndicator;
public var label_mc:Label;
private var _next_color:ColorIndicator;
private var _bonus_arr:Array;
private var _land:Boolean;
private var _mouse_control:Boolean;
private var collect_arr:Array;
private var _shake_counter:Number;
private var _bombs_arr:Array;
private var _line:Array;
private var _item_rnd:RandomArray;
private var _progress_bar:ProgressTimeBar;
private var _sound_bt:SoundButton;
private var _items_swamp:Array;
private var _points_mc:Points;
private var _bonus_bar_cache:SimpleCache;
private var field:Array;
public var field_mc:FieldView;
public var lines:Lines;
public function Game(){
init();
}
private function activate(_arg1:Item):void{
if (_arg1.active){
_arg1.active = false;
_active = null;
};
_check_arr = [_arg1];
_combo = 0;
if (!checkCollect()){
checkEnd();
};
}
private function setFall(_arg1:Item):void{
_arg1._speed = _gd.SPEED;
_arg1.setState(Item.FALL);
addAnimate(_arg1);
}
private function shiftItemDown(_arg1:Item):void{
var _local2 = 1;
while (field[_arg1.h][(_arg1.v + _local2)] != null) {
addCheck(field[_arg1.h][(_arg1.v + _local2)]);
setMove(field[_arg1.h][(_arg1.v + _local2)]);
field[_arg1.h][(_arg1.v + _local2)].v = (field[_arg1.h][(_arg1.v + _local2)].v - 1);
field[_arg1.h][((_arg1.v + _local2) - 1)] = field[_arg1.h][(_arg1.v + _local2)];
_local2++;
};
field[_arg1.h][((_arg1.v + _local2) - 1)] = null;
}
public function init():void{
_field_mc = this["field_mc"];
_label_mc = this["label_mc"];
_points_mc = this["points_mc"];
_lines = this["lines"];
_progress_bar = this["progress_bar"];
_line_bar = this["line_bar"];
_scroll_back = this["game_back"]["scroll_back"];
_next_color = this["next_color_mc"];
_items_swamp = new Array();
_bonus_bar_cache = new SimpleCache(BonusBar);
_field_mc.addEventListener("shiftItem", shiftHandler);
_field_mc.addEventListener("removeItem", removeHandler);
_progress_bar.addEventListener(Event.COMPLETE, timerCompleteEvent);
addEventListener(Event.ENTER_FRAME, enterFrame);
_lines.addEventListener(MouseEvent.MOUSE_OVER, mouseMove);
_lines.addEventListener(MouseEvent.CLICK, mouseClick);
_sound_bt = this["sound_bt"];
_pause_bt = this["pause_bt"];
_pause_bt.addEventListener(MouseEvent.CLICK, onPause);
_play_fl = false;
_bonus_rnd = new RandomArray(3);
}
private function get item():Item{
var _local1:Item;
if (_items_swamp.length > 0){
_local1 = _items_swamp.pop();
} else {
_local1 = new Item();
};
_local1.initView(true, _next_color.get());
_next_color.set(_item_rnd.value);
return (_local1);
}
private function mouseMove(_arg1:MouseEvent):void{
var _local2:int;
if (_play_fl){
if (!mouse_control){
mouse_control = true;
};
_local2 = (int(_arg1.target.name.charAt(1)) - 1);
_lines[("l" + (_local2 + 1))].gotoAndPlay("high");
setMouseTarget(_local2);
};
}
public function initKeyboard():void{
App._stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
}
private function addAnimate(_arg1:Item):void{
var _local2:int;
var _local3:Boolean;
while (_local2 < animate_arr.length) {
if (animate_arr[_local2] == _arg1){
_local3 = false;
break;
};
_local2++;
};
if (_local3){
animate_arr.push(_arg1);
};
}
private function checkBonus(_arg1:Item):void{
if (_arg1._color >= _gd.COLORS_MAX){
if (_arg1._color == 8){
SoundFXController.playFX("rainbow");
} else {
if (_arg1._color == 9){
SoundFXController.playFX("boom");
initShake();
} else {
if (_arg1._color == 10){
_progress_bar.freeze();
SoundFXController.playFX("freeze");
};
};
};
var _local2 = _bonus_arr;
var _local3 = (_arg1._color - _gd.COLORS_MAX);
var _local4 = (_local2[_local3] - 1);
_local2[_local3] = _local4;
};
}
private function initShake(){
_shake_counter = 20;
setTimeout(doShake, 200);
}
private function runGame():void{
_progress_bar.init(0.1, (_gd.TIME_BAR_ARR[App._level.value] + _gd.DIFFICULTY_CORRECTION));
addItem();
}
private function getInstance(_arg1:int=-1):Item{
var _local2:Item;
if (_items_swamp.length > 0){
_local2 = _items_swamp.pop();
} else {
_local2 = new Item();
};
_local2.initView(false, _arg1);
_field_mc.addChild(_local2);
return (_local2);
}
private function checkCollect():Boolean{
var _local1:Item;
collect_arr = [];
_bombs_arr = [];
while (_check_arr.length > 0) {
_local1 = _check_arr.pop();
_line = [];
_counter = 0;
checkCell(_local1, _local1._color);
if (_counter > 2){
checkBombs();
collect_arr.push(_line);
} else {
clearLine(_line);
};
};
if (collect_arr.length > 0){
_lock = true;
collectItems();
return (true);
};
_lock = false;
addItem();
if (_add_fl){
newLine();
};
return (false);
}
private function removeHandler(_arg1:Event):void{
_field_mc.removeChild(Item(_arg1.target));
_items_swamp.push(Item(_arg1.target));
if (_destroy_counter >= 0){
_destroy_counter--;
};
}
public function initGame():void{
trace(_gd.SPEEDUP_LIMIT);
_play_fl = true;
_robot_fl = false;
App._stage.focus = App._stage;
_active = null;
_lock = false;
_add_fl = false;
mouse_control = false;
_targeth = 0;
_land = false;
_line_bar.initBar(_gd.LINES_COUNT_ARR[App._level.value]);
_scroll_back.init(((App._level.value % 3) + 1));
if (App._level.value < 3){
_gd.COLORS_COUNT = 4;
} else {
if (App._level.value < 6){
_gd.COLORS_COUNT = 5;
} else {
_gd.COLORS_COUNT = 6;
};
};
_item_rnd = new RandomArray(_gd.COLORS_COUNT);
_next_color.set(_item_rnd.value);
if ((((App._level.value == 3)) || ((App._level.value == 6)))){
_label_mc.show(("NEW ROBOT INVENTED!\nLEVEL " + App._level.value));
} else {
if (App._level.value == 9){
_label_mc.show(("FINAL COUNTDOWN!\nLEVEL " + App._level.value));
} else {
_label_mc.show(("LEVEL " + App._level.value));
};
};
trace(_gd.COLORS_COUNT);
_bonus_arr = [0, 0, 0];
_destroy_counter = 0;
_check_timeout = 0;
initField();
_sound_bt.setState();
}
private function setActive(_arg1:Item):void{
_land = false;
_active = _arg1;
_active.active = true;
if (mouse_control){
checkPosition();
};
}
private function moveTo(_arg1:int):void{
if ((((_arg1 >= 0)) && ((_arg1 < _gd.SIZEX)))){
if (!mouse_control){
_lines[("l" + (_arg1 + 1))].gotoAndPlay("high");
};
if (_active.y < (-(getY(_arg1)) * _gd.GRIDY)){
shiftItemDown(_active);
_active.h = _arg1;
_active.v = getY(_active.h);
field[_active.h][_active.v] = _active;
shiftItemUp(_active);
TweenLite.to(_active, 0.1, {x:(_active.h * _gd.GRIDX), ease:Quad.easeOut, onComplete:checkPosition});
};
};
}
private function initFieldItems():void{
checkAdd();
}
private function shiftItemUp(_arg1:Item):void{
var _local2:Item = field[_arg1.h][(_arg1.v - 1)];
while (_local2 != null) {
if ((((_local2._state == Item.FALL)) && ((_arg1.y > _local2.y)))){
field[_arg1.h][_arg1.v] = _local2;
field[_arg1.h][(_arg1.v - 1)] = _arg1;
_arg1.v = (_arg1.v - 1);
_local2.v = (_local2.v + 1);
_local2 = field[_arg1.h][(_arg1.v - 1)];
} else {
break;
};
};
}
private function addBonusBar():BonusBar{
var _local1:BonusBar = (_bonus_bar_cache.get() as BonusBar);
addChild(_local1);
_local1.addEventListener(BonusBar.DESTROY, destroyBonusBar);
return (_local1);
}
private function clearAll():void{
while (_field_mc.numChildren) {
_field_mc.removeChildAt(0);
};
}
private function onRestart(_arg1:MouseEvent):void{
Log.CustomMetric("restart");
App.restartGame();
}
private function addLine():void{
_line_bar.value--;
_scroll_back.value++;
_add_fl = false;
var _local1:int;
var _local2:int = getBonus();
var _local3:int = Math.round((Math.random() * 7));
while (_local1 < _gd.SIZEX) {
if ((((_local2 > -1)) && ((_local1 == _local3)))){
var _temp1 = _local1;
_local1 = (_local1 + 1);
addLineItem(_temp1, (_local2 + _gd.COLORS_MAX));
_bonus_arr[_local2] = (_bonus_arr[_local2] + 1);
_local2 = -1;
} else {
var _temp2 = _local1;
_local1 = (_local1 + 1);
addLineItem(_temp2);
};
};
}
private function collectLine(_arg1:Array):void{
var _local2:Item;
_combo++;
SoundFXController.playFX("line", 3);
_local2 = _arg1[(_arg1.length - 1)];
var _local3:Number = (_arg1.length * ((_gd.SCORE_STEP + App._level.value) - _gd.DIFFICULTY_CORRECTION));
_multiply = (_arg1.length - 2);
var _local4:Number = ((30 + _local2.x) + 25);
var _local5:Number = (540 + _local2.y);
while (_arg1.length > 0) {
_destroy_counter++;
_local2 = _arg1.pop();
checkBonus(_local2);
_local2.destroy(_delay);
_delay = (_delay + 0.05);
};
_points_mc.points = (_points_mc.points + ((_local3 * _multiply) * _combo));
var _local6:BonusBar = addBonusBar();
_local6.show(("+" + ((_local3 * _multiply) * _combo)), _local4, _local5, (_multiply > 3));
}
private function doShake(){
if (_play_fl){
x = (((Math.random() * _shake_counter) - (_shake_counter / 2)) * 2);
y = (((Math.random() * _shake_counter) - (_shake_counter / 2)) * 2);
if (_shake_counter-- > 0){
setTimeout(doShake, 15);
} else {
x = 0;
y = 0;
};
};
}
public function getMaxColumn():int{
var _local1:int;
var _local2:int;
var _local3:int;
while (_local1 < _gd.SIZEX) {
while (field[_local1][_local2] != null) {
if (Item(field[_local1][_local2])._state != Item.FALL){
_local2++;
} else {
break;
};
};
if (_local3 < _local2){
_local3 = _local2;
};
_local2 = 0;
_local1++;
};
return (_local3);
}
private function destroyAll():void{
var _local1:Number = 0;
var _local2:int;
var _local3:int = (_gd.SIZEY - 1);
while (_local3 >= 0) {
while (_local2 < _gd.SIZEX) {
if (field[_local2][_local3] != null){
field[_local2][_local3].destroy(_local1);
_local1 = (_local1 + 0.03);
};
_local2++;
};
_local2 = 0;
_local3--;
};
}
private function checkPosition():void{
var _local1:int;
if (((mouse_control) && (!((_active == null))))){
_local1 = (_targeth - _active.h);
if (_local1 > 0){
moveTo((_active.h + 1));
} else {
if (_local1 < 0){
moveTo((_active.h - 1));
} else {
if (((_land) && ((_local1 == 0)))){
_land = false;
landItem();
};
};
};
};
}
private function setMove(_arg1:Item, _arg2:Boolean=true):void{
if (_arg1._state != Item.FALL){
_arg1._speed = ((_arg2) ? 2 : -1 * _gd.SPEED);
_arg1.setState(Item.MOVE);
addAnimate(_arg1);
};
}
private function addItem(_arg1:int=-1):void{
_cur_item = item;
_cur_item.h = ((_arg1)>-1) ? _arg1 : Math.round((Math.random() * (_gd.SIZEX - 1)));
_cur_item.v = getY(_cur_item.h);
_cur_item.x = (_cur_item.h * _gd.GRIDX);
_cur_item.y = -480;
field[_cur_item.h][_cur_item.v] = _cur_item;
_field_mc.addChild(_cur_item);
setFall(_cur_item);
if (_active == null){
setActive(_cur_item);
};
}
private function onPause(_arg1:MouseEvent):void{
Log.CustomMetric("pause");
App.setPause();
App.showPause();
}
private function getBonus():int{
var _local3:int;
var _local1 = -1;
var _local2:int;
trace(((((_gd.UPGRADE[0].value + "-") + _gd.UPGRADE[1].value) + "-") + _gd.UPGRADE[2].value));
while (_local2 < _bonus_arr.length) {
_local3 = _bonus_rnd.value;
if (_bonus_arr[_local3] < _gd.UPGRADE[_local3].value){
_local1 = _local3;
break;
};
_local2++;
};
trace(_local1);
return (_local1);
}
private function endGame(_arg1:Boolean=false):void{
if (_arg1){
_label_mc.show("YOU ARE THE ROBOT!", true);
SoundFXController.playFX("youarearobot");
};
_progress_bar.active = false;
destroyAll();
_play_fl = false;
mouse_control = true;
App.endGame(_arg1);
}
private function shiftHandler(_arg1:Event):void{
shiftItemDown(Item(_arg1.target));
}
private function insertItem(_arg1:Item):void{
var _local2:int = _arg1.h;
var _local3:int = (getY(_local2) - 1);
var _local4:Item = field[_local2][_local3];
while (_local3 >= 0) {
_local4.v++;
field[_local4.h][_local4.v] = _local4;
if (!_local4.active){
setMove(_local4, false);
};
_local3--;
_local4 = field[_local2][_local3];
};
field[_arg1.h][_arg1.v] = _arg1;
setMove(_arg1, false);
_field_mc.setChildIndex(_arg1, 0);
}
private function enterFrame(_arg1:Event):void{
var _local2:int;
var _local3:Item;
var _local4:Boolean;
if (_play_fl){
_local2 = 0;
while (_local2 < animate_arr.length) {
_local3 = animate_arr[_local2];
_local3.y = (_local3.y + _local3._speed);
if (_local3._speed < 0){
_local4 = (_local3.y <= (-(_local3.v) * _gd.GRIDY));
} else {
_local4 = (_local3.y >= (-(_local3.v) * _gd.GRIDY));
};
if (_local4){
_local3.setState(Item.NONE);
animate_arr.splice(_local2, 1);
_local3.y = (-(_local3.v) * _gd.GRIDY);
if (_local3.active){
activate(_local3);
};
} else {
_local2++;
};
};
if (((((_lock) && ((animate_arr.length <= 1)))) && ((_destroy_counter <= 0)))){
if (!checkCollect()){
checkEnd();
};
};
};
}
private function collectOnFlight(_arg1:Item):void{
var _local2:Item = field[_arg1.h][(_arg1.v - 1)];
while (_local2 != null) {
if (_local2._state == Item.FALL){
_local2._speed = (_local2._speed + (_gd.SPEED * 10));
_local2 = field[_local2.h][(_local2.v - 1)];
} else {
break;
};
};
}
private function checkCell(_arg1:Item, _arg2:int=-1):void{
var item = _arg1;
var color = _arg2;
try {
if (item != null){
if (((((!(item._collect)) && ((((((item._color == color)) || ((item._color >= _gd.COLORS_MAX)))) || ((color < 0)))))) && (!((item._state == Item.FALL))))){
_line.push(item);
item._collect = true;
if ((((item._color <= _gd.COLORS_MAX)) && ((color >= 0)))){
_counter++;
checkCell(getItem((item.h - 1), item.v), color);
checkCell(getItem((item.h + 1), item.v), color);
checkCell(getItem(item.h, (item.v - 1)), color);
checkCell(getItem(item.h, (item.v + 1)), color);
} else {
if (item._color == 9){
_bombs_arr.push(item);
};
};
};
};
} catch(e:Error) {
trace(e);
};
}
public function set mouse_control(_arg1:Boolean):void{
_mouse_control = _arg1;
}
private function destroyBonusBar(_arg1:Event):void{
var _local2:BonusBar = (_arg1.target as BonusBar);
_bonus_bar_cache.set(_local2);
}
private function checkAdd():void{
if (_check_timeout != 0){
clearTimeout(_check_timeout);
_check_timeout = 0;
};
if (getMinColumn() < _gd.WAVE_COLUMN_SIZE){
addLine();
_check_timeout = setTimeout(checkAdd, 500);
} else {
runGame();
};
}
public function getMinColumn():int{
var _local1:int;
var _local2:int;
var _local3 = 15;
while (_local1 < _gd.SIZEX) {
while (field[_local1][_local2] != null) {
if (Item(field[_local1][_local2])._state != Item.FALL){
_local2++;
} else {
break;
};
};
if (_local3 > _local2){
_local3 = _local2;
};
_local2 = 0;
_local1++;
};
return (_local3);
}
private function timerCompleteEvent(_arg1:Event):void{
if (_lock){
_add_fl = true;
} else {
newLine();
};
}
private function keyDown(_arg1:KeyboardEvent):void{
if (mouse_control){
mouse_control = false;
};
if (((_active) && (_play_fl))){
if (_arg1.keyCode == Keyboard.LEFT){
moveTo((_active.h - 1));
} else {
if (_arg1.keyCode == Keyboard.RIGHT){
moveTo((_active.h + 1));
} else {
if (_arg1.keyCode == Keyboard.DOWN){
landItem();
} else {
if (_arg1.keyCode == 65){
moveTo((_active.h - 1));
} else {
if (_arg1.keyCode == 68){
moveTo((_active.h + 1));
} else {
if (_arg1.keyCode == 83){
landItem();
};
};
};
};
};
};
};
}
private function landItem():void{
if (_active != null){
SoundFXController.playFX("fall");
_lines[("l" + (_active.h + 1))].gotoAndPlay("high");
_active._speed = (_gd.SPEED * 10);
collectOnFlight(_active);
_active = null;
};
}
public function restartGame():void{
_label_mc.show("RESTART");
initGame();
}
private function getItem(_arg1:int, _arg2:int):Item{
var _local3:Item;
if ((((((_arg1 >= 0)) && ((_arg1 < _gd.SIZEX)))) && ((((_arg2 >= 0)) && ((_arg2 < _gd.SIZEY)))))){
_local3 = field[_arg1][_arg2];
};
return (_local3);
}
private function getColor(_arg1:int, _arg2:int):int{
var _local4:int;
var _local3:Boolean;
while (_local3) {
_local3 = false;
_local4 = Math.round((Math.random() * (_gd.COLORS_COUNT - 1)));
_local3 = checkCellColor(((Math.random())<0.5) ? _arg1 : (_arg1 - 1), _arg2, _local4);
};
return (_local4);
}
private function checkEnd():Boolean{
var _local1:Boolean;
if ((((_line_bar.value < 0)) && ((getMaxColumn() <= -(_line_bar.value))))){
endGame(true);
_local1 = true;
} else {
if ((((getMaxColumn() > 15)) || ((_line_bar.value <= -15)))){
endGame(false);
_local1 = true;
};
};
return (_local1);
}
public function setPause():void{
_play_fl = !(App._pause_fl);
if (_play_fl){
_progress_bar.start();
} else {
_progress_bar.stop();
};
mouse_control = !(_play_fl);
}
private function collectItems():void{
_delay = 0;
_destroy_counter = 0;
_delay = 0.1;
while (collect_arr.length > 0) {
collectLine(collect_arr.pop());
_delay = (_delay + 0.1);
};
if (_combo > 1){
_label_mc.show((("x" + _combo) + " COMBO"), false, true);
};
}
private function checkBomb(_arg1:Item):void{
checkCell(getItem((_arg1.h - 1), _arg1.v));
checkCell(getItem((_arg1.h - 1), (_arg1.v + 1)));
checkCell(getItem((_arg1.h - 1), (_arg1.v - 1)));
checkCell(getItem((_arg1.h + 1), _arg1.v));
checkCell(getItem((_arg1.h + 1), (_arg1.v + 1)));
checkCell(getItem((_arg1.h + 1), (_arg1.v - 1)));
checkCell(getItem(_arg1.h, (_arg1.v - 1)));
checkCell(getItem(_arg1.h, (_arg1.v + 1)));
}
public function get mouse_control():Boolean{
return (_mouse_control);
}
private function setMouseTarget(_arg1:int):void{
if (_targeth != _arg1){
_targeth = _arg1;
checkPosition();
};
}
private function initField():void{
clearAll();
animate_arr = new Array();
collect_arr = new Array();
field = new Array();
var _local1:int;
var _local2:int;
while (_local1 < _gd.SIZEX) {
field[_local1] = new Array();
while (_local2 < _gd.SIZEY) {
field[_local1][_local2] = null;
_local2++;
};
_local2 = 0;
_local1++;
};
initFieldItems();
}
private function changeActive(_arg1:Item):void{
if (_active != _arg1){
_active = null;
setActive(_arg1);
} else {
_active = null;
addItem();
};
}
private function mouseClick(_arg1:MouseEvent):void{
var _local2:int;
if (((_play_fl) && (!((_active == null))))){
_local2 = (int(_arg1.target.name.charAt(1)) - 1);
if (_active.h == _local2){
landItem();
} else {
setMouseTarget(_local2);
_land = true;
};
};
}
private function getY(_arg1:int):int{
var _local2:int;
while (field[_arg1][_local2] != null) {
_local2++;
};
return (_local2);
}
private function addCheck(_arg1:Item):void{
var _local2:int;
var _local3:Boolean;
while (_local2 < _check_arr.length) {
if (_check_arr[_local2] == _arg1){
_local3 = false;
break;
};
_local2++;
};
if (_local3){
_check_arr.push(_arg1);
};
}
private function clearLine(_arg1:Array):void{
var _local2:Item;
while (_arg1.length > 0) {
_local2 = _arg1.pop();
_local2._collect = false;
_local2._bomb = false;
};
}
private function checkBombs():void{
while (_bombs_arr.length > 0) {
checkBomb(_bombs_arr.pop());
};
}
private function newLine():void{
addLine();
_progress_bar.restart();
}
private function addLineItem(_arg1:int, _arg2:int=-1):void{
var _local3:Item = getInstance(((_arg2)<0) ? getColor(_arg1, 0) : _arg2);
_local3.h = _arg1;
_local3.v = 0;
_local3.x = (_local3.h * _gd.GRIDX);
_local3.y = _gd.GRIDY;
insertItem(_local3);
}
private function checkCellColor(_arg1:int, _arg2:int, _arg3:int):Boolean{
var _local5:Item;
var _local4:Boolean;
_local5 = getItem(_arg1, _arg2);
if (_local5 != null){
_local4 = (_local5._color == _arg3);
};
return (_local4);
}
override public function show():void{
_gd = GameSettings.gd;
if (((App._first_time) || (TutorialPopup.tutorial))){
App._first_time = false;
if (_field_mc.numChildren > 0){
destroyAll();
};
_line_bar.initBar(-11);
_scroll_back.init(1);
TutorialPopup.initTutorial();
TutorialPopup.showTutorial();
} else {
initGame();
};
}
}
}//package game
Section 4
//Item (game.Item)
package game {
import util.*;
import flash.events.*;
import flash.utils.*;
import flash.display.*;
public class Item extends MovieClip {
public var _eyes:MovieClip;
public var _view:ItemView;
public var _speed:int;
public var _bomb:Boolean;
public var _state:String;
public var _colors:MovieClip;
public var _mouth:MovieClip;
public var _color:uint;
private var _active:Boolean;
private var _h:int;
public var _mark:ItemMark;
public var _collect:Boolean;
private var _v:int;
public static var MOVE:String = "move";
public static var NONE:String = "none";
public static var FALL:String = "fall";
public function Item(){
init();
}
public function set h(_arg1:int):void{
_h = _arg1;
}
public function get active():Boolean{
return (_active);
}
public function remove():void{
dispatchEvent(new Event("removeItem", true));
}
public function set active(_arg1:Boolean):void{
_active = _arg1;
if (_active){
_view.gotoAndPlay("awake");
_eyes.gotoAndStop((Math.round((Math.random() * 3)) + 3));
} else {
_view.gotoAndPlay("land");
_eyes.gotoAndStop((Math.round((Math.random() * 1)) + 1));
};
}
public function initView(_arg1:Boolean=false, _arg2:int=-1):void{
if (_arg2 < 0){
_color = Math.round((Math.random() * (GameSettings.gd.COLORS_COUNT - 1)));
} else {
_color = _arg2;
};
_colors.gotoAndStop((_color + 1));
if ((((_arg2 == 8)) || ((_arg2 == 10)))){
_mouth.gotoAndStop((Math.round((Math.random() * 6)) + 1));
} else {
_mouth.gotoAndStop((_color + 1));
};
if (_arg1){
_view.gotoAndStop("appear");
} else {
_view.gotoAndStop("sleep");
};
if (_arg2 == 9){
_eyes.gotoAndStop(7);
} else {
_eyes.gotoAndStop((Math.round((Math.random() * 1)) + 1));
};
_active = false;
_collect = false;
_bomb = false;
setState(NONE);
}
public function playDestroy():void{
_view.gotoAndPlay("destroy");
dispatchEvent(new Event("shiftItem", true));
}
public function setState(_arg1:String):void{
if (_state != _arg1){
_state = _arg1;
};
}
public function get h():int{
return (_h);
}
public function get v():int{
return (_v);
}
public function destroy(_arg1:Number):void{
setTimeout(playDestroy, (_arg1 * 1000));
}
public function set v(_arg1:int):void{
_v = _arg1;
}
private function init():void{
_view = new ItemView();
addChild(_view);
_colors = _view["colors"];
_eyes = _view["eyes"];
_mouth = _view["mouth"];
buttonMode = false;
mouseEnabled = false;
mouseChildren = false;
}
}
}//package game
Section 5
//ItemView (game.ItemView)
package game {
import flash.display.*;
public class ItemView extends MovieClip {
public var colors:MovieClip;
public var eyes:MovieClip;
public var mouth:MovieClip;
public function ItemView(){
addFrameScript(9, frame10, 30, frame31, 43, frame44, 58, frame59, 71, frame72);
}
function frame59(){
gotoAndStop("sleep");
}
function frame72(){
gotoAndStop("sleep");
Item(parent).remove();
}
function frame31(){
stop();
}
function frame10(){
stop();
}
function frame44(){
gotoAndPlay("fly");
}
}
}//package game
Section 6
//Label (game.Label)
package game {
import gs.*;
import flash.display.*;
import gs.easing.*;
import flash.text.*;
public class Label extends MovieClip {
public var robot_mc:MovieClip;
public var text_tf:TextField;
private var _robot:Boolean;
private var _short:Boolean;
public function Label(){
this.mouseEnabled = false;
this.mouseChildren = false;
visible = false;
}
public function show(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false):void{
_robot = _arg2;
_short = _arg3;
this["robot_mc"].visible = _robot;
scaleX = (scaleY = 3);
rotation = ((Math.random() * 180) - 90);
TweenLite.to(this, 2, {scaleX:1, scaleY:1, rotation:0, autoAlpha:1, onComplete:hide, ease:Elastic.easeOut});
TextField(this["text_tf"]).text = _arg1;
}
private function hide():void{
TweenLite.to(this, 0.3, {autoAlpha:0, delay:(_robot) ? 5 : (_short) ? 0 : 1.5});
}
}
}//package game
Section 7
//Lines (game.Lines)
package game {
import flash.display.*;
public class Lines extends MovieClip {
public var l1:MovieClip;
public var l2:MovieClip;
public var l3:MovieClip;
public var l4:MovieClip;
public var l5:MovieClip;
public var l6:MovieClip;
public var l7:MovieClip;
public var l8:MovieClip;
public function Lines(){
var _local2:MovieClip;
super();
var _local1 = 1;
while (_local1 <= 8) {
_local2 = this[("l" + _local1)];
_local2.buttonMode = false;
_local2.mouseChildren = false;
_local1++;
};
}
}
}//package game
Section 8
//Particle (game.Particle)
package game {
import flash.display.*;
public class Particle extends MovieClip {
public var plane:MovieClip;
public function Particle(){
addFrameScript(8, frame9);
this["plane"]["plane"].gotoAndStop((Math.round((Math.random() * 2)) + 1));
this["plane"]["plane"].rotation = (Math.random() * 360);
this["plane"]["plane"].scaleX = (this["plane"]["plane"].scaleY = ((Math.random() * 0.5) + 0.5));
rotation = (Math.random() * 360);
x = (Math.round((Math.random() * 20)) - 10);
y = (Math.round((Math.random() * 20)) - 10);
}
function frame9(){
stop();
}
}
}//package game
Section 9
//Particles (game.Particles)
package game {
import flash.events.*;
import flash.display.*;
public class Particles extends MovieClip {
private var p:Particle;
private var n:int;// = 6
public function Particles(){
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
private function enterFrameHandler(_arg1:Event):void{
if (n >= 0){
addChild(new Particle());
addChild(new Particle());
n = (n - 2);
} else {
removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
};
}
}
}//package game
Section 10
//Points (game.Points)
package game {
import util.*;
import gs.*;
import flash.display.*;
import gs.easing.*;
import flash.text.*;
public class Points extends MovieClip {
public var text_tf:TextField;
private var _text_tf:TextField;
public function Points(){
this.mouseEnabled = false;
this.mouseChildren = false;
_text_tf = this["text_tf"];
}
public function get points():Number{
return (App._game_score.value);
}
public function set points(_arg1:Number):void{
App._game_score.value = _arg1;
update();
}
public function update():void{
_text_tf.text = format_points;
scaleX = (scaleY = 1.2);
TweenLite.to(this, 1, {scaleX:1, scaleY:1, ease:Elastic.easeOut});
}
public function get format_points():String{
var _local1:String = String(points);
while (_local1.length < 7) {
_local1 = ("0" + _local1);
};
return (_local1);
}
}
}//package game
Section 11
//Elastic (gs.easing.Elastic)
package gs.easing {
public class Elastic {
private static const _2PI:Number = (Math.PI * 2);
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
if (!_arg6){
_arg6 = (_arg4 * 0.3);
};
if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5)));
};
--_arg1;
return ((-(((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6)))) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 == 2){
return ((_arg2 + _arg3));
};
if (!_arg6){
_arg6 = (_arg4 * (0.3 * 1.5));
};
if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5)));
};
if (_arg1 < 1){
--_arg1;
return (((-0.5 * ((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6)))) + _arg2));
};
--_arg1;
return ((((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6))) * 0.5) + _arg3) + _arg2));
}
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
if (!_arg6){
_arg6 = (_arg4 * 0.3);
};
if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5)));
};
return (((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6))) + _arg3) + _arg2));
}
}
}//package gs.easing
Section 12
//Quad (gs.easing.Quad)
package gs.easing {
public class Quad {
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((_arg3 * _arg1) * _arg1) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2));
};
--_arg1;
return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2));
}
}
}//package gs.easing
Section 13
//AutoAlphaPlugin (gs.plugins.AutoAlphaPlugin)
package gs.plugins {
import gs.*;
import flash.display.*;
public class AutoAlphaPlugin extends TweenPlugin {
protected var _tweenVisible:Boolean;
protected var _target:Object;
protected var _visible:Boolean;
protected var _tween:TweenLite;
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function AutoAlphaPlugin(){
this.propName = "autoAlpha";
this.overwriteProps = ["alpha", "visible"];
this.onComplete = onCompleteTween;
}
override public function killProps(_arg1:Object):void{
super.killProps(_arg1);
_tweenVisible = !(Boolean(("visible" in _arg1)));
}
public function onCompleteTween():void{
if (((((_tweenVisible) && (!((_tween.vars.runBackwards == true))))) && ((_tween.ease == _tween.vars.ease)))){
_target.visible = _visible;
};
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
_target = _arg1;
_tween = _arg3;
_visible = Boolean(!((_arg2 == 0)));
_tweenVisible = true;
addTween(_arg1, "alpha", _arg1.alpha, _arg2, "alpha");
return (true);
}
override public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
if (((!((_target.visible == true))) && (_tweenVisible))){
_target.visible = true;
};
}
}
}//package gs.plugins
Section 14
//EndArrayPlugin (gs.plugins.EndArrayPlugin)
package gs.plugins {
import gs.*;
import flash.display.*;
import gs.utils.tween.*;
public class EndArrayPlugin extends TweenPlugin {
protected var _a:Array;
protected var _info:Array;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function EndArrayPlugin(){
_info = [];
super();
this.propName = "endArray";
this.overwriteProps = ["endArray"];
}
public function init(_arg1:Array, _arg2:Array):void{
_a = _arg1;
var _local3:int = (_arg2.length - 1);
while (_local3 > -1) {
if (((!((_arg1[_local3] == _arg2[_local3]))) && (!((_arg1[_local3] == null))))){
_info[_info.length] = new ArrayTweenInfo(_local3, _a[_local3], (_arg2[_local3] - _a[_local3]));
};
_local3--;
};
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){
return (false);
};
init((_arg1 as Array), _arg2);
return (true);
}
override public function set changeFactor(_arg1:Number):void{
var _local2:int;
var _local3:ArrayTweenInfo;
var _local4:Number;
var _local5:int;
if (this.round){
_local2 = (_info.length - 1);
while (_local2 > -1) {
_local3 = _info[_local2];
_local4 = (_local3.start + (_local3.change * _arg1));
_local5 = ((_local4)<0) ? -1 : 1;
_a[_local3.index] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4);
_local2--;
};
} else {
_local2 = (_info.length - 1);
while (_local2 > -1) {
_local3 = _info[_local2];
_a[_local3.index] = (_local3.start + (_local3.change * _arg1));
_local2--;
};
};
}
}
}//package gs.plugins
Section 15
//FramePlugin (gs.plugins.FramePlugin)
package gs.plugins {
import gs.*;
import flash.display.*;
public class FramePlugin extends TweenPlugin {
protected var _target:MovieClip;
public var frame:int;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function FramePlugin(){
this.propName = "frame";
this.overwriteProps = ["frame"];
this.round = true;
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
if (((!((_arg1 is MovieClip))) || (isNaN(_arg2)))){
return (false);
};
_target = (_arg1 as MovieClip);
this.frame = _target.currentFrame;
addTween(this, "frame", this.frame, _arg2, "frame");
return (true);
}
override public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
_target.gotoAndStop(this.frame);
}
}
}//package gs.plugins
Section 16
//RemoveTintPlugin (gs.plugins.RemoveTintPlugin)
package gs.plugins {
public class RemoveTintPlugin extends TintPlugin {
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function RemoveTintPlugin(){
this.propName = "removeTint";
}
}
}//package gs.plugins
Section 17
//TintPlugin (gs.plugins.TintPlugin)
package gs.plugins {
import gs.*;
import flash.display.*;
import flash.geom.*;
import gs.utils.tween.*;
public class TintPlugin extends TweenPlugin {
protected var _target:DisplayObject;
protected var _ct:ColorTransform;
protected var _ignoreAlpha:Boolean;
public static const VERSION:Number = 1.1;
public static const API:Number = 1;
protected static var _props:Array = ["redMultiplier", "greenMultiplier", "blueMultiplier", "alphaMultiplier", "redOffset", "greenOffset", "blueOffset", "alphaOffset"];
public function TintPlugin(){
this.propName = "tint";
this.overwriteProps = ["tint"];
}
public function init(_arg1:DisplayObject, _arg2:ColorTransform):void{
var _local3:int;
var _local4:String;
_target = _arg1;
_ct = _target.transform.colorTransform;
_local3 = (_props.length - 1);
while (_local3 > -1) {
_local4 = _props[_local3];
if (_ct[_local4] != _arg2[_local4]){
_tweens[_tweens.length] = new TweenInfo(_ct, _local4, _ct[_local4], (_arg2[_local4] - _ct[_local4]), "tint", false);
};
_local3--;
};
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
if (!(_arg1 is DisplayObject)){
return (false);
};
var _local4:ColorTransform = new ColorTransform();
if (((!((_arg2 == null))) && (!((_arg3.exposedVars.removeTint == true))))){
_local4.color = uint(_arg2);
};
_ignoreAlpha = true;
init((_arg1 as DisplayObject), _local4);
return (true);
}
override public function set changeFactor(_arg1:Number):void{
var _local2:ColorTransform;
updateTweens(_arg1);
if (_ignoreAlpha){
_local2 = _target.transform.colorTransform;
_ct.alphaMultiplier = _local2.alphaMultiplier;
_ct.alphaOffset = _local2.alphaOffset;
};
_target.transform.colorTransform = _ct;
}
}
}//package gs.plugins
Section 18
//TweenPlugin (gs.plugins.TweenPlugin)
package gs.plugins {
import gs.*;
import gs.utils.tween.*;
public class TweenPlugin {
public var overwriteProps:Array;
protected var _tweens:Array;
public var propName:String;
public var onComplete:Function;
public var round:Boolean;
protected var _changeFactor:Number;// = 0
public static const VERSION:Number = 1.03;
public static const API:Number = 1;
public function TweenPlugin(){
_tweens = [];
super();
}
protected function updateTweens(_arg1:Number):void{
var _local2:int;
var _local3:TweenInfo;
var _local4:Number;
var _local5:int;
if (this.round){
_local2 = (_tweens.length - 1);
while (_local2 > -1) {
_local3 = _tweens[_local2];
_local4 = (_local3.start + (_local3.change * _arg1));
_local5 = ((_local4)<0) ? -1 : 1;
_local3.target[_local3.property] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4);
_local2--;
};
} else {
_local2 = (_tweens.length - 1);
while (_local2 > -1) {
_local3 = _tweens[_local2];
_local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1));
_local2--;
};
};
}
public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
_changeFactor = _arg1;
}
protected function addTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4, _arg5:String=null):void{
var _local6:Number;
if (_arg4 != null){
_local6 = ((typeof(_arg4))=="number") ? (_arg4 - _arg3) : Number(_arg4);
if (_local6 != 0){
_tweens[_tweens.length] = new TweenInfo(_arg1, _arg2, _arg3, _local6, ((_arg5) || (_arg2)), false);
};
};
}
public function killProps(_arg1:Object):void{
var _local2:int;
_local2 = (this.overwriteProps.length - 1);
while (_local2 > -1) {
if ((this.overwriteProps[_local2] in _arg1)){
this.overwriteProps.splice(_local2, 1);
};
_local2--;
};
_local2 = (_tweens.length - 1);
while (_local2 > -1) {
if ((_tweens[_local2].name in _arg1)){
_tweens.splice(_local2, 1);
};
_local2--;
};
}
public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
addTween(_arg1, this.propName, _arg1[this.propName], _arg2, this.propName);
return (true);
}
public function get changeFactor():Number{
return (_changeFactor);
}
public static function activate(_arg1:Array):Boolean{
var _local2:int;
var _local3:Object;
_local2 = (_arg1.length - 1);
while (_local2 > -1) {
_local3 = new (_arg1[_local2]);
TweenLite.plugins[_local3.propName] = _arg1[_local2];
_local2--;
};
return (true);
}
}
}//package gs.plugins
Section 19
//VisiblePlugin (gs.plugins.VisiblePlugin)
package gs.plugins {
import gs.*;
import flash.display.*;
public class VisiblePlugin extends TweenPlugin {
protected var _target:Object;
protected var _visible:Boolean;
protected var _tween:TweenLite;
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function VisiblePlugin(){
this.propName = "visible";
this.overwriteProps = ["visible"];
this.onComplete = onCompleteTween;
}
public function onCompleteTween():void{
if (((!((_tween.vars.runBackwards == true))) && ((_tween.ease == _tween.vars.ease)))){
_target.visible = _visible;
};
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
_target = _arg1;
_tween = _arg3;
_visible = Boolean(_arg2);
return (true);
}
override public function set changeFactor(_arg1:Number):void{
if (_target.visible != true){
_target.visible = true;
};
}
}
}//package gs.plugins
Section 20
//VolumePlugin (gs.plugins.VolumePlugin)
package gs.plugins {
import gs.*;
import flash.media.*;
import flash.display.*;
public class VolumePlugin extends TweenPlugin {
protected var _target:Object;
protected var _st:SoundTransform;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function VolumePlugin(){
this.propName = "volume";
this.overwriteProps = ["volume"];
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
if (((isNaN(_arg2)) || (!(_arg1.hasOwnProperty("soundTransform"))))){
return (false);
};
_target = _arg1;
_st = _target.soundTransform;
addTween(_st, "volume", _st.volume, _arg2, "volume");
return (true);
}
override public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
_target.soundTransform = _st;
}
}
}//package gs.plugins
Section 21
//ArrayTweenInfo (gs.utils.tween.ArrayTweenInfo)
package gs.utils.tween {
public class ArrayTweenInfo {
public var change:Number;
public var start:Number;
public var index:uint;
public function ArrayTweenInfo(_arg1:uint, _arg2:Number, _arg3:Number){
this.index = _arg1;
this.start = _arg2;
this.change = _arg3;
}
}
}//package gs.utils.tween
Section 22
//TweenInfo (gs.utils.tween.TweenInfo)
package gs.utils.tween {
public class TweenInfo {
public var start:Number;
public var name:String;
public var change:Number;
public var target:Object;
public var property:String;
public var isPlugin:Boolean;
public function TweenInfo(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Boolean){
this.target = _arg1;
this.property = _arg2;
this.start = _arg3;
this.change = _arg4;
this.name = _arg5;
this.isPlugin = _arg6;
}
}
}//package gs.utils.tween
Section 23
//TweenLite (gs.TweenLite)
package gs {
import flash.events.*;
import flash.utils.*;
import flash.display.*;
import gs.utils.tween.*;
import gs.plugins.*;
public class TweenLite {
public var started:Boolean;
public var delay:Number;
protected var _hasUpdate:Boolean;
protected var _hasPlugins:Boolean;
public var initted:Boolean;
public var active:Boolean;
public var startTime:Number;
public var target:Object;
public var duration:Number;
public var gc:Boolean;
public var tweens:Array;
public var vars:Object;
public var ease:Function;
public var exposedVars:Object;
public var initTime:Number;
public var combinedTimeScale:Number;
public static const version:Number = 10.092;
private static var _timer:Timer = new Timer(2000);
public static var defaultEase:Function = TweenLite.easeOut;
public static var plugins:Object = {};
public static var currentTime:uint;
public static var masterList:Dictionary = new Dictionary(false);
protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, roundProps:1, onStart:1, onStartParams:1, persist:1, renderOnStart:1, proxiedEase:1, easeParams:1, yoyo:1, loop:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, orientToBezier:1, timeScale:1};
public static var killDelayedCallsTo:Function = TweenLite.killTweensOf;
public static var timingSprite:Sprite = new Sprite();
public static var overwriteManager:Object;
private static var _tlInitted:Boolean;
public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){
if (_arg1 == null){
return;
};
if (!_tlInitted){
TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin]);
currentTime = getTimer();
timingSprite.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true);
if (overwriteManager == null){
overwriteManager = {mode:1, enabled:false};
};
_timer.addEventListener("timer", killGarbage, false, 0, true);
_timer.start();
_tlInitted = true;
};
this.vars = _arg3;
this.duration = ((_arg2) || (0.001));
this.delay = ((_arg3.delay) || (0));
this.combinedTimeScale = ((_arg3.timeScale) || (1));
this.active = Boolean((((_arg2 == 0)) && ((this.delay == 0))));
this.target = _arg1;
if (typeof(this.vars.ease) != "function"){
this.vars.ease = defaultEase;
};
if (this.vars.easeParams != null){
this.vars.proxiedEase = this.vars.ease;
this.vars.ease = easeProxy;
};
this.ease = this.vars.ease;
this.exposedVars = ((this.vars.isTV)==true) ? this.vars.exposedVars : this.vars;
this.tweens = [];
this.initTime = currentTime;
this.startTime = (this.initTime + (this.delay * 1000));
var _local4:int = ((((_arg3.overwrite == undefined)) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite);
if (((!((_arg1 in masterList))) || ((_local4 == 1)))){
masterList[_arg1] = [this];
} else {
masterList[_arg1].push(this);
};
if ((((((this.vars.runBackwards == true)) && (!((this.vars.renderOnStart == true))))) || (this.active))){
initTweenVals();
if (this.active){
render((this.startTime + 1));
} else {
render(this.startTime);
};
if (((((!((this.exposedVars.visible == null))) && ((this.vars.runBackwards == true)))) && ((this.target is DisplayObject)))){
this.target.visible = this.exposedVars.visible;
};
};
}
public function get enabled():Boolean{
return ((this.gc) ? false : true);
}
public function set enabled(_arg1:Boolean):void{
var _local2:Array;
var _local3:Boolean;
var _local4:int;
if (_arg1){
if (!(this.target in masterList)){
masterList[this.target] = [this];
} else {
_local2 = masterList[this.target];
_local4 = (_local2.length - 1);
while (_local4 > -1) {
if (_local2[_local4] == this){
_local3 = true;
break;
};
_local4--;
};
if (!_local3){
_local2[_local2.length] = this;
};
};
};
this.gc = (_arg1) ? false : true;
if (this.gc){
this.active = false;
} else {
this.active = this.started;
};
}
public function clear():void{
this.tweens = [];
this.vars = (this.exposedVars = {ease:this.vars.ease});
_hasUpdate = false;
}
public function render(_arg1:uint):void{
var _local3:Number;
var _local4:TweenInfo;
var _local5:int;
var _local2:Number = ((_arg1 - this.startTime) * 0.001);
if (_local2 >= this.duration){
_local2 = this.duration;
_local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0;
} else {
_local3 = this.ease(_local2, 0, 1, this.duration);
};
_local5 = (this.tweens.length - 1);
while (_local5 > -1) {
_local4 = this.tweens[_local5];
_local4.target[_local4.property] = (_local4.start + (_local3 * _local4.change));
_local5--;
};
if (_hasUpdate){
this.vars.onUpdate.apply(null, this.vars.onUpdateParams);
};
if (_local2 == this.duration){
complete(true);
};
}
public function activate():void{
this.started = (this.active = true);
if (!this.initted){
initTweenVals();
};
if (this.vars.onStart != null){
this.vars.onStart.apply(null, this.vars.onStartParams);
};
if (this.duration == 0.001){
this.startTime = (this.startTime - 1);
};
}
public function initTweenVals():void{
var _local1:String;
var _local2:int;
var _local3:*;
var _local4:TweenInfo;
if (((!((this.exposedVars.timeScale == undefined))) && (this.target.hasOwnProperty("timeScale")))){
this.tweens[this.tweens.length] = new TweenInfo(this.target, "timeScale", this.target.timeScale, (this.exposedVars.timeScale - this.target.timeScale), "timeScale", false);
};
for (_local1 in this.exposedVars) {
if ((_local1 in _reservedProps)){
} else {
if ((_local1 in plugins)){
_local3 = new (plugins[_local1]);
if (_local3.onInitTween(this.target, this.exposedVars[_local1], this) == false){
this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false);
} else {
this.tweens[this.tweens.length] = new TweenInfo(_local3, "changeFactor", 0, 1, ((_local3.overwriteProps.length)==1) ? _local3.overwriteProps[0] : "_MULTIPLE_", true);
_hasPlugins = true;
};
} else {
this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false);
};
};
};
if (this.vars.runBackwards == true){
_local2 = (this.tweens.length - 1);
while (_local2 > -1) {
_local4 = this.tweens[_local2];
this.tweens[_local2].start = (_local4.start + _local4.change);
_local4.change = -(_local4.change);
_local2--;
};
};
if (this.vars.onUpdate != null){
_hasUpdate = true;
};
if (((TweenLite.overwriteManager.enabled) && ((this.target in masterList)))){
overwriteManager.manageOverwrites(this, masterList[this.target]);
};
this.initted = true;
}
protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams)));
}
public function killVars(_arg1:Object):void{
if (overwriteManager.enabled){
overwriteManager.killVars(_arg1, this.exposedVars, this.tweens);
};
}
public function complete(_arg1:Boolean=false):void{
var _local2:int;
if (!_arg1){
if (!this.initted){
initTweenVals();
};
this.startTime = (currentTime - ((this.duration * 1000) / this.combinedTimeScale));
render(currentTime);
return;
};
if (_hasPlugins){
_local2 = (this.tweens.length - 1);
while (_local2 > -1) {
if (((this.tweens[_local2].isPlugin) && (!((this.tweens[_local2].target.onComplete == null))))){
this.tweens[_local2].target.onComplete();
};
_local2--;
};
};
if (this.vars.persist != true){
this.enabled = false;
};
if (this.vars.onComplete != null){
this.vars.onComplete.apply(null, this.vars.onCompleteParams);
};
}
public static function updateAll(_arg1:Event=null):void{
var _local4:Array;
var _local5:int;
var _local6:TweenLite;
var _local2:uint = (currentTime = getTimer());
var _local3:Dictionary = masterList;
for each (_local4 in _local3) {
_local5 = (_local4.length - 1);
while (_local5 > -1) {
_local6 = _local4[_local5];
if (_local6.active){
_local6.render(_local2);
} else {
if (_local6.gc){
_local4.splice(_local5, 1);
} else {
if (_local2 >= _local6.startTime){
_local6.activate();
_local6.render(_local2);
};
};
};
_local5--;
};
};
}
public static function removeTween(_arg1:TweenLite, _arg2:Boolean=true):void{
if (_arg1 != null){
if (_arg2){
_arg1.clear();
};
_arg1.enabled = false;
};
}
public static function killTweensOf(_arg1:Object=null, _arg2:Boolean=false):void{
var _local3:Array;
var _local4:int;
var _local5:TweenLite;
if (((!((_arg1 == null))) && ((_arg1 in masterList)))){
_local3 = masterList[_arg1];
_local4 = (_local3.length - 1);
while (_local4 > -1) {
_local5 = _local3[_local4];
if (((_arg2) && (!(_local5.gc)))){
_local5.complete(false);
};
_local5.clear();
_local4--;
};
delete masterList[_arg1];
};
}
public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
_arg3.runBackwards = true;
return (new TweenLite(_arg1, _arg2, _arg3));
}
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
protected static function killGarbage(_arg1:TimerEvent):void{
var _local3:Object;
var _local2:Dictionary = masterList;
for (_local3 in _local2) {
if (_local2[_local3].length == 0){
delete _local2[_local3];
};
};
}
public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null):TweenLite{
return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, overwrite:0}));
}
public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
return (new TweenLite(_arg1, _arg2, _arg3));
}
}
}//package gs
Section 24
//KongregateAPI (kongregate.KongregateAPI)
package kongregate {
import util.*;
import flash.events.*;
import flash.net.*;
import flash.display.*;
public class KongregateAPI extends MovieClip {
public static var api;
public function init(_arg1:LoaderInfo):void{
var _local2:Object = _arg1.parameters;
var _local3:String = ((_local2.api_path) || ("http://www.kongregate.com/flash/API_AS3_Local.swf"));
var _local4:URLRequest = new URLRequest(_local3);
var _local5:Loader = new Loader();
_local5.contentLoaderInfo.addEventListener(Event.COMPLETE, apiLoadComplete);
_local5.load(_local4);
this.addChild(_local5);
}
public function apiLoadComplete(_arg1:Event):void{
api = _arg1.target.content;
api.services.connect();
dispatchEvent(new Event(Event.COMPLETE));
}
public static function get isHome():Boolean{
return (Util.isDomain(".*kongregate.com", false));
}
}
}//package kongregate
Section 25
//MochiDigits (mochi.as3.MochiDigits)
package mochi.as3 {
public final class MochiDigits {
private var Sibling:MochiDigits;
private var Fragment:Number;
private var Encoder:Number;
public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{
Encoder = 0;
setValue(_arg1, _arg2);
}
public function reencode():void{
var _local1:uint = int((2147483647 * Math.random()));
Fragment = (Fragment ^ (_local1 ^ Encoder));
Encoder = _local1;
}
public function set value(_arg1:Number):void{
setValue(_arg1);
}
public function toString():String{
var _local1:String = String.fromCharCode((Fragment ^ Encoder));
if (Sibling != null){
_local1 = (_local1 + Sibling.toString());
};
return (_local1);
}
public function setValue(_arg1:Number=0, _arg2:uint=0):void{
var _local3:String = _arg1.toString();
var _temp1 = _arg2;
_arg2 = (_arg2 + 1);
Fragment = (_local3.charCodeAt(_temp1) ^ Encoder);
if (_arg2 < _local3.length){
Sibling = new MochiDigits(_arg1, _arg2);
} else {
Sibling = null;
};
reencode();
}
public function get value():Number{
return (Number(this.toString()));
}
public function addValue(_arg1:Number):void{
value = (value + _arg1);
}
}
}//package mochi.as3
Section 26
//Encode (Playtomic.Encode)
package Playtomic {
import flash.utils.*;
import flash.display.*;
public class Encode {
private static const BASE64_CHARS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
private static const decodeChars:Array = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1];
private static var crcTableComputed:Boolean = false;
private static var hex_chr:String = "0123456789abcdef";
private static var crcTable:Array;
private static function ff(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
return (cmn(bitOR(bitAND(_arg2, _arg3), bitAND(~(_arg2), _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7));
}
private static function cmn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{
return (addme(rol(addme(addme(_arg2, _arg1), addme(_arg4, _arg6)), _arg5), _arg3));
}
public static function PNG(_arg1:BitmapData):ByteArray{
var _local5:uint;
var _local6:int;
var _local2:ByteArray = new ByteArray();
_local2.writeUnsignedInt(2303741511);
_local2.writeUnsignedInt(218765834);
var _local3:ByteArray = new ByteArray();
_local3.writeInt(_arg1.width);
_local3.writeInt(_arg1.height);
_local3.writeUnsignedInt(134610944);
_local3.writeByte(0);
writeChunk(_local2, 1229472850, _local3);
var _local4:ByteArray = new ByteArray();
var _local7:int;
while (_local7 < _arg1.height) {
_local4.writeByte(0);
if (!_arg1.transparent){
_local6 = 0;
while (_local6 < _arg1.width) {
_local5 = _arg1.getPixel(_local6, _local7);
_local4.writeUnsignedInt(uint((((_local5 & 0xFFFFFF) << 8) | 0xFF)));
_local6++;
};
} else {
_local6 = 0;
while (_local6 < _arg1.width) {
_local5 = _arg1.getPixel32(_local6, _local7);
_local4.writeUnsignedInt(uint((((_local5 & 0xFFFFFF) << 8) | (_local5 >>> 24))));
_local6++;
};
};
_local7++;
};
_local4.compress();
writeChunk(_local2, 1229209940, _local4);
writeChunk(_local2, 1229278788, null);
return (_local2);
}
private static function bitAND(_arg1:Number, _arg2:Number):Number{
var _local3:Number = ((_arg1 & 1) & (_arg2 & 1));
var _local4:Number = ((_arg1 >>> 1) & (_arg2 >>> 1));
return (((_local4 << 1) | _local3));
}
private static function bitXOR(_arg1:Number, _arg2:Number):Number{
var _local3:Number = ((_arg1 & 1) ^ (_arg2 & 1));
var _local4:Number = ((_arg1 >>> 1) ^ (_arg2 >>> 1));
return (((_local4 << 1) | _local3));
}
private static function rol(_arg1:Number, _arg2:Number):Number{
return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2))));
}
private static function hh(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
return (cmn(bitXOR(bitXOR(_arg2, _arg3), _arg4), _arg1, _arg2, _arg5, _arg6, _arg7));
}
private static function str2blks_MD5(_arg1:String):Array{
var _local4:int;
var _local2:Number = (((_arg1.length + 8) >> 6) + 1);
var _local3:Array = new Array((_local2 * 16));
_local4 = 0;
while (_local4 < (_local2 * 16)) {
_local3[_local4] = 0;
_local4++;
};
_local4 = 0;
while (_local4 < _arg1.length) {
_local3[(_local4 >> 2)] = (_local3[(_local4 >> 2)] | (_arg1.charCodeAt(_local4) << ((((_arg1.length * 8) + _local4) % 4) * 8)));
_local4++;
};
_local3[(_local4 >> 2)] = (_local3[(_local4 >> 2)] | (128 << ((((_arg1.length * 8) + _local4) % 4) * 8)));
var _local5:int = (_arg1.length * 8);
_local3[((_local2 * 16) - 2)] = (_local5 & 0xFF);
_local3[((_local2 * 16) - 2)] = (_local3[((_local2 * 16) - 2)] | (((_local5 >>> 8) & 0xFF) << 8));
_local3[((_local2 * 16) - 2)] = (_local3[((_local2 * 16) - 2)] | (((_local5 >>> 16) & 0xFF) << 16));
_local3[((_local2 * 16) - 2)] = (_local3[((_local2 * 16) - 2)] | (((_local5 >>> 24) & 0xFF) << 24));
return (_local3);
}
private static function writeChunk(_arg1:ByteArray, _arg2:uint, _arg3:ByteArray):void{
var _local8:uint;
var _local9:uint;
var _local10:uint;
if (!crcTableComputed){
crcTableComputed = true;
crcTable = [];
_local9 = 0;
while (_local9 < 0x0100) {
_local8 = _local9;
_local10 = 0;
while (_local10 < 8) {
if ((_local8 & 1)){
_local8 = uint((uint(3988292384) ^ uint((_local8 >>> 1))));
} else {
_local8 = uint((_local8 >>> 1));
};
_local10++;
};
crcTable[_local9] = _local8;
_local9++;
};
};
var _local4:uint;
if (_arg3 != null){
_local4 = _arg3.length;
};
_arg1.writeUnsignedInt(_local4);
var _local5:uint = _arg1.position;
_arg1.writeUnsignedInt(_arg2);
if (_arg3 != null){
_arg1.writeBytes(_arg3);
};
var _local6:uint = _arg1.position;
_arg1.position = _local5;
_local8 = 4294967295;
var _local7:int;
while (_local7 < (_local6 - _local5)) {
_local8 = uint((crcTable[((_local8 ^ _arg1.readUnsignedByte()) & uint(0xFF))] ^ uint((_local8 >>> 8))));
_local7++;
};
_local8 = uint((_local8 ^ uint(4294967295)));
_arg1.position = _local6;
_arg1.writeUnsignedInt(_local8);
}
private static function gg(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
return (cmn(bitOR(bitAND(_arg2, _arg4), bitAND(_arg3, ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7));
}
private static function ii(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
return (cmn(bitXOR(_arg3, bitOR(_arg2, ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7));
}
private static function rhex(_arg1:Number):String{
var _local3:int;
var _local2 = "";
_local3 = 0;
while (_local3 <= 3) {
_local2 = (_local2 + (hex_chr.charAt(((_arg1 >> ((_local3 * 8) + 4)) & 15)) + hex_chr.charAt(((_arg1 >> (_local3 * 8)) & 15))));
_local3++;
};
return (_local2);
}
public static function Base64(_arg1:ByteArray):String{
var _local3:Array;
var _local5:uint;
var _local6:uint;
var _local7:uint;
var _local2 = "";
var _local4:Array = new Array(4);
_arg1.position = 0;
while (_arg1.bytesAvailable > 0) {
_local3 = new Array();
_local5 = 0;
while ((((_local5 < 3)) && ((_arg1.bytesAvailable > 0)))) {
_local3[_local5] = _arg1.readUnsignedByte();
_local5++;
};
_local4[0] = ((_local3[0] & 252) >> 2);
_local4[1] = (((_local3[0] & 3) << 4) | (_local3[1] >> 4));
_local4[2] = (((_local3[1] & 15) << 2) | (_local3[2] >> 6));
_local4[3] = (_local3[2] & 63);
_local6 = _local3.length;
while (_local6 < 3) {
_local4[(_local6 + 1)] = 64;
_local6++;
};
_local7 = 0;
while (_local7 < _local4.length) {
_local2 = (_local2 + BASE64_CHARS.charAt(_local4[_local7]));
_local7++;
};
};
return (_local2);
}
private static function bitOR(_arg1:Number, _arg2:Number):Number{
var _local3:Number = ((_arg1 & 1) | (_arg2 & 1));
var _local4:Number = ((_arg1 >>> 1) | (_arg2 >>> 1));
return (((_local4 << 1) | _local3));
}
private static function addme(_arg1:Number, _arg2:Number):Number{
var _local3:Number = ((_arg1 & 0xFFFF) + (_arg2 & 0xFFFF));
var _local4:Number = (((_arg1 >> 16) + (_arg2 >> 16)) + (_local3 >> 16));
return (((_local4 << 16) | (_local3 & 0xFFFF)));
}
public static function Base64Decode(_arg1:String):ByteArray{
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:ByteArray;
_local7 = _arg1.length;
_local6 = 0;
_local8 = new ByteArray();
while (_local6 < _local7) {
do {
var _temp1 = _local6;
_local6 = (_local6 + 1);
_local2 = decodeChars[(_arg1.charCodeAt(_temp1) & 0xFF)];
} while ((((_local6 < _local7)) && ((_local2 == -1))));
if (_local2 == -1){
break;
};
do {
var _temp2 = _local6;
_local6 = (_local6 + 1);
_local3 = decodeChars[(_arg1.charCodeAt(_temp2) & 0xFF)];
} while ((((_local6 < _local7)) && ((_local3 == -1))));
if (_local3 == -1){
break;
};
_local8.writeByte(((_local2 << 2) | ((_local3 & 48) >> 4)));
do {
var _temp3 = _local6;
_local6 = (_local6 + 1);
_local4 = (_arg1.charCodeAt(_temp3) & 0xFF);
if (_local4 == 61){
return (_local8);
};
_local4 = decodeChars[_local4];
} while ((((_local6 < _local7)) && ((_local4 == -1))));
if (_local4 == -1){
break;
};
_local8.writeByte((((_local3 & 15) << 4) | ((_local4 & 60) >> 2)));
do {
var _temp4 = _local6;
_local6 = (_local6 + 1);
_local5 = (_arg1.charCodeAt(_temp4) & 0xFF);
if (_local5 == 61){
return (_local8);
};
_local5 = decodeChars[_local5];
} while ((((_local6 < _local7)) && ((_local5 == -1))));
if (_local5 == -1){
break;
};
_local8.writeByte((((_local4 & 3) << 6) | _local5));
};
return (_local8);
}
public static function MD5(_arg1:String):String{
var _local7:int;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local2:Array = str2blks_MD5(_arg1);
var _local3:Number = 1732584193;
var _local4:Number = -271733879;
var _local5:Number = -1732584194;
var _local6:Number = 271733878;
_local7 = 0;
while (_local7 < _local2.length) {
_local8 = _local3;
_local9 = _local4;
_local10 = _local5;
_local11 = _local6;
_local3 = ff(_local3, _local4, _local5, _local6, _local2[(_local7 + 0)], 7, -680876936);
_local6 = ff(_local6, _local3, _local4, _local5, _local2[(_local7 + 1)], 12, -389564586);
_local5 = ff(_local5, _local6, _local3, _local4, _local2[(_local7 + 2)], 17, 606105819);
_local4 = ff(_local4, _local5, _local6, _local3, _local2[(_local7 + 3)], 22, -1044525330);
_local3 = ff(_local3, _local4, _local5, _local6, _local2[(_local7 + 4)], 7, -176418897);
_local6 = ff(_local6, _local3, _local4, _local5, _local2[(_local7 + 5)], 12, 1200080426);
_local5 = ff(_local5, _local6, _local3, _local4, _local2[(_local7 + 6)], 17, -1473231341);
_local4 = ff(_local4, _local5, _local6, _local3, _local2[(_local7 + 7)], 22, -45705983);
_local3 = ff(_local3, _local4, _local5, _local6, _local2[(_local7 + 8)], 7, 1770035416);
_local6 = ff(_local6, _local3, _local4, _local5, _local2[(_local7 + 9)], 12, -1958414417);
_local5 = ff(_local5, _local6, _local3, _local4, _local2[(_local7 + 10)], 17, -42063);
_local4 = ff(_local4, _local5, _local6, _local3, _local2[(_local7 + 11)], 22, -1990404162);
_local3 = ff(_local3, _local4, _local5, _local6, _local2[(_local7 + 12)], 7, 1804603682);
_local6 = ff(_local6, _local3, _local4, _local5, _local2[(_local7 + 13)], 12, -40341101);
_local5 = ff(_local5, _local6, _local3, _local4, _local2[(_local7 + 14)], 17, -1502002290);
_local4 = ff(_local4, _local5, _local6, _local3, _local2[(_local7 + 15)], 22, 1236535329);
_local3 = gg(_local3, _local4, _local5, _local6, _local2[(_local7 + 1)], 5, -165796510);
_local6 = gg(_local6, _local3, _local4, _local5, _local2[(_local7 + 6)], 9, -1069501632);
_local5 = gg(_local5, _local6, _local3, _local4, _local2[(_local7 + 11)], 14, 643717713);
_local4 = gg(_local4, _local5, _local6, _local3, _local2[(_local7 + 0)], 20, -373897302);
_local3 = gg(_local3, _local4, _local5, _local6, _local2[(_local7 + 5)], 5, -701558691);
_local6 = gg(_local6, _local3, _local4, _local5, _local2[(_local7 + 10)], 9, 38016083);
_local5 = gg(_local5, _local6, _local3, _local4, _local2[(_local7 + 15)], 14, -660478335);
_local4 = gg(_local4, _local5, _local6, _local3, _local2[(_local7 + 4)], 20, -405537848);
_local3 = gg(_local3, _local4, _local5, _local6, _local2[(_local7 + 9)], 5, 568446438);
_local6 = gg(_local6, _local3, _local4, _local5, _local2[(_local7 + 14)], 9, -1019803690);
_local5 = gg(_local5, _local6, _local3, _local4, _local2[(_local7 + 3)], 14, -187363961);
_local4 = gg(_local4, _local5, _local6, _local3, _local2[(_local7 + 8)], 20, 1163531501);
_local3 = gg(_local3, _local4, _local5, _local6, _local2[(_local7 + 13)], 5, -1444681467);
_local6 = gg(_local6, _local3, _local4, _local5, _local2[(_local7 + 2)], 9, -51403784);
_local5 = gg(_local5, _local6, _local3, _local4, _local2[(_local7 + 7)], 14, 1735328473);
_local4 = gg(_local4, _local5, _local6, _local3, _local2[(_local7 + 12)], 20, -1926607734);
_local3 = hh(_local3, _local4, _local5, _local6, _local2[(_local7 + 5)], 4, -378558);
_local6 = hh(_local6, _local3, _local4, _local5, _local2[(_local7 + 8)], 11, -2022574463);
_local5 = hh(_local5, _local6, _local3, _local4, _local2[(_local7 + 11)], 16, 1839030562);
_local4 = hh(_local4, _local5, _local6, _local3, _local2[(_local7 + 14)], 23, -35309556);
_local3 = hh(_local3, _local4, _local5, _local6, _local2[(_local7 + 1)], 4, -1530992060);
_local6 = hh(_local6, _local3, _local4, _local5, _local2[(_local7 + 4)], 11, 1272893353);
_local5 = hh(_local5, _local6, _local3, _local4, _local2[(_local7 + 7)], 16, -155497632);
_local4 = hh(_local4, _local5, _local6, _local3, _local2[(_local7 + 10)], 23, -1094730640);
_local3 = hh(_local3, _local4, _local5, _local6, _local2[(_local7 + 13)], 4, 681279174);
_local6 = hh(_local6, _local3, _local4, _local5, _local2[(_local7 + 0)], 11, -358537222);
_local5 = hh(_local5, _local6, _local3, _local4, _local2[(_local7 + 3)], 16, -722521979);
_local4 = hh(_local4, _local5, _local6, _local3, _local2[(_local7 + 6)], 23, 76029189);
_local3 = hh(_local3, _local4, _local5, _local6, _local2[(_local7 + 9)], 4, -640364487);
_local6 = hh(_local6, _local3, _local4, _local5, _local2[(_local7 + 12)], 11, -421815835);
_local5 = hh(_local5, _local6, _local3, _local4, _local2[(_local7 + 15)], 16, 530742520);
_local4 = hh(_local4, _local5, _local6, _local3, _local2[(_local7 + 2)], 23, -995338651);
_local3 = ii(_local3, _local4, _local5, _local6, _local2[(_local7 + 0)], 6, -198630844);
_local6 = ii(_local6, _local3, _local4, _local5, _local2[(_local7 + 7)], 10, 1126891415);
_local5 = ii(_local5, _local6, _local3, _local4, _local2[(_local7 + 14)], 15, -1416354905);
_local4 = ii(_local4, _local5, _local6, _local3, _local2[(_local7 + 5)], 21, -57434055);
_local3 = ii(_local3, _local4, _local5, _local6, _local2[(_local7 + 12)], 6, 1700485571);
_local6 = ii(_local6, _local3, _local4, _local5, _local2[(_local7 + 3)], 10, -1894986606);
_local5 = ii(_local5, _local6, _local3, _local4, _local2[(_local7 + 10)], 15, -1051523);
_local4 = ii(_local4, _local5, _local6, _local3, _local2[(_local7 + 1)], 21, -2054922799);
_local3 = ii(_local3, _local4, _local5, _local6, _local2[(_local7 + 8)], 6, 1873313359);
_local6 = ii(_local6, _local3, _local4, _local5, _local2[(_local7 + 15)], 10, -30611744);
_local5 = ii(_local5, _local6, _local3, _local4, _local2[(_local7 + 6)], 15, -1560198380);
_local4 = ii(_local4, _local5, _local6, _local3, _local2[(_local7 + 13)], 21, 1309151649);
_local3 = ii(_local3, _local4, _local5, _local6, _local2[(_local7 + 4)], 6, -145523070);
_local6 = ii(_local6, _local3, _local4, _local5, _local2[(_local7 + 11)], 10, -1120210379);
_local5 = ii(_local5, _local6, _local3, _local4, _local2[(_local7 + 2)], 15, 718787259);
_local4 = ii(_local4, _local5, _local6, _local3, _local2[(_local7 + 9)], 21, -343485551);
_local3 = addme(_local3, _local8);
_local4 = addme(_local4, _local9);
_local5 = addme(_local5, _local10);
_local6 = addme(_local6, _local11);
_local7 = (_local7 + 16);
};
return ((((rhex(_local3) + rhex(_local4)) + rhex(_local5)) + rhex(_local6)));
}
}
}//package Playtomic
Section 27
//Leaderboards (Playtomic.Leaderboards)
package Playtomic {
import flash.events.*;
import flash.net.*;
import flash.external.*;
public class Leaderboards {
public static const TODAY:String = "today";
public static const NEWEST:String = "newest";
public static const LAST30DAYS:String = "last30days";
public static const ALLTIME:String = "alltime";
public static const LAST7DAYS:String = "last7days";
public static function LoadPrivateLeaderboard(_arg1:String, _arg2:Function=null):void{
var sendaction:URLLoader;
var handled:Boolean;
var bridge:Function;
var tableid = _arg1;
var callback = _arg2;
sendaction = new URLLoader();
handled = false;
if (callback != null){
bridge = function ():void{
if ((((callback == null)) || (handled))){
return;
};
handled = true;
var _local1:XML = XML(sendaction["data"]);
var _local2:int = parseInt(_local1["status"]);
var _local3:int = parseInt(_local1["errorcode"]);
var _local4:PrivateLeaderboard = new PrivateLeaderboard(tableid, _local1["name"], _local1["bitly"], _local1["permalink"], ((_local1["highest"] == "true")) ? true : false, _local1["realname"]);
callback(_local4, new Response(_local2, _local3));
};
sendaction.addEventListener(Event.COMPLETE, bridge);
};
var fail:Function = function ():void{
if ((((callback == null)) || (handled))){
return;
};
handled = true;
callback(null, Response.GeneralFailure());
};
var httpstatusignore:Function = function ():void{
};
var postdata:URLVariables = new URLVariables();
postdata["tableid"] = tableid;
var request:URLRequest = new URLRequest(((((("http://g" + Log.GUID) + ".api.playtomic.com/v2/leaderboards/load.aspx?swfid=") + Log.SWFID) + "&r=") + Math.random()));
request.data = postdata;
request.method = URLRequestMethod.POST;
sendaction.addEventListener(IOErrorEvent.IO_ERROR, fail);
sendaction.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpstatusignore);
sendaction.addEventListener(SecurityErrorEvent.SECURITY_ERROR, fail);
sendaction.load(request);
}
public static function List(_arg1:String, _arg2:Function, _arg3:Object=null):void{
var sendaction:URLLoader;
var handled:Boolean;
var key:String;
var request:URLRequest;
var bridge:Function;
var table = _arg1;
var callback = _arg2;
var options = _arg3;
if (options == null){
options = new Object();
};
var global:Boolean = (options.hasOwnProperty("global")) ? options["global"] : true;
var highest:Boolean = (options.hasOwnProperty("highest")) ? options["highest"] : true;
var mode:String = (options.hasOwnProperty("mode")) ? options["mode"] : "alltime";
var customfilters:Object = (options.hasOwnProperty("customfilters")) ? options["customfilters"] : new Object();
var page:int = (options.hasOwnProperty("page")) ? options["page"] : 1;
var perpage:int = (options.hasOwnProperty("perpage")) ? options["perpage"] : 20;
var facebook:Boolean = (options.hasOwnProperty("facebook")) ? options["facebook"] : false;
var friendslist:Array = (options.hasOwnProperty("friendslist")) ? options["friendslist"] : new Array();
sendaction = new URLLoader();
handled = false;
if (callback != null){
bridge = function ():void{
if ((((callback == null)) || (handled))){
return;
};
handled = true;
ProcessScores(sendaction, callback);
};
sendaction.addEventListener(Event.COMPLETE, bridge);
};
var fail:Function = function ():void{
if ((((callback == null)) || (handled))){
return;
};
handled = true;
callback([], 0, Response.GeneralFailure());
};
var httpstatusignore:Function = function ():void{
};
var postdata:URLVariables = new URLVariables();
var numfilters:int;
for (key in customfilters) {
postdata[("ckey" + numfilters)] = key;
postdata[("cdata" + numfilters)] = escape(customfilters[key]);
numfilters = (numfilters + 1);
};
postdata["url"] = (((global) || ((Log.SourceUrl == null)))) ? "global" : Log.SourceUrl;
postdata["mode"] = mode;
postdata["page"] = page;
postdata["perpage"] = perpage;
postdata["highest"] = (highest) ? "y" : "n";
postdata["customfilters"] = numfilters;
postdata["table"] = escape(table);
if (facebook){
if (friendslist.length > 0){
postdata["friendslist"] = friendslist.join(",");
};
request = new URLRequest(((((("http://g" + Log.GUID) + ".api.playtomic.com/v2/leaderboards/listfb.aspx?swfid=") + Log.SWFID) + "&r=") + Math.random()));
} else {
request = new URLRequest(((((("http://g" + Log.GUID) + ".api.playtomic.com/v2/leaderboards/list.aspx?swfid=") + Log.SWFID) + "&r=") + Math.random()));
};
request.data = postdata;
request.method = URLRequestMethod.POST;
sendaction.addEventListener(IOErrorEvent.IO_ERROR, fail);
sendaction.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpstatusignore);
sendaction.addEventListener(SecurityErrorEvent.SECURITY_ERROR, fail);
sendaction.load(request);
}
public static function CreatePrivateLeaderboard(_arg1:String, _arg2:String, _arg3:Function=null, _arg4:Boolean=true):void{
var sendaction:URLLoader;
var handled:Boolean;
var bridge:Function;
var table = _arg1;
var permalink = _arg2;
var callback = _arg3;
var highest = _arg4;
sendaction = new URLLoader();
handled = false;
if (callback != null){
bridge = function ():void{
if ((((callback == null)) || (handled))){
return;
};
handled = true;
var _local1:XML = XML(sendaction["data"]);
var _local2:int = parseInt(_local1["status"]);
var _local3:int = parseInt(_local1["errorcode"]);
var _local4:PrivateLeaderboard = new PrivateLeaderboard(_local1["tableid"], table, _local1["bitly"], _local1["permalink"], (_local1["highest"] == "true"), _local1["realname"]);
callback(_local4, new Response(_local2, _local3));
};
sendaction.addEventListener(Event.COMPLETE, bridge);
};
var fail:Function = function ():void{
if ((((callback == null)) || (handled))){
return;
};
handled = true;
callback(null, Response.GeneralFailure());
};
var httpstatusignore:Function = function ():void{
};
var postdata:URLVariables = new URLVariables();
postdata["table"] = table;
postdata["highest"] = (highest) ? "y" : "n";
postdata["permalink"] = permalink;
var request:URLRequest = new URLRequest(((((("http://g" + Log.GUID) + ".api.playtomic.com/v2/leaderboards/create.aspx?swfid=") + Log.SWFID) + "&r=") + Math.random()));
request.data = postdata;
request.method = URLRequestMethod.POST;
sendaction.addEventListener(IOErrorEvent.IO_ERROR, fail);
sendaction.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpstatusignore);
sendaction.addEventListener(SecurityErrorEvent.SECURITY_ERROR, fail);
sendaction.load(request);
}
private static function ProcessScores(_arg1:URLLoader, _arg2:Function):void{
var _local8:XMLList;
var _local9:String;
var _local10:int;
var _local11:int;
var _local12:int;
var _local13:XML;
var _local14:PlayerScore;
var _local15:XMLList;
var _local16:XML;
var _local3:XML = XML(_arg1["data"]);
var _local4:int = parseInt(_local3["status"]);
var _local5:int = parseInt(_local3["errorcode"]);
var _local6:int = parseInt(_local3["numscores"]);
var _local7:Array = new Array();
if (_local4 == 1){
_local8 = _local3["score"];
for each (_local13 in _local8) {
_local9 = _local13["sdate"];
_local10 = int(_local9.substring((_local9.lastIndexOf("/") + 1)));
_local11 = int(_local9.substring(0, _local9.indexOf("/")));
_local12 = int(_local9.substring((_local9.indexOf("/") + 1)).substring(0, 2));
_local14 = new PlayerScore();
_local14.SDate = new Date(_local10, (_local11 - 1), _local12);
_local14.RDate = _local13["rdate"];
_local14.Name = _local13["name"];
_local14.Points = _local13["points"];
_local14.Website = _local13["website"];
_local14.Rank = _local13["rank"];
if (_local13["fbuserid"]){
_local14.FBUserId = _local13["fbuserid"];
};
if (_local13["custom"]){
_local15 = _local13["custom"];
for each (_local16 in _local15.children()) {
_local14.CustomData[_local16.name()] = _local16.text();
};
};
_local7.push(_local14);
};
};
_arg2(_local7, _local6, {Success:(_local4 == 1), ErrorCode:_local5});
}
public static function Save(_arg1:PlayerScore, _arg2:String, _arg3:Function=null, _arg4:Object=null):void{
var sendaction:URLLoader;
var handled:Boolean;
var bridge:Function;
var key:String;
var score = _arg1;
var table = _arg2;
var callback = _arg3;
var options = _arg4;
if (options == null){
options = new Object();
};
var allowduplicates:Boolean = (options.hasOwnProperty("allowduplicates")) ? options["allowduplicates"] : false;
var highest:Boolean = (options.hasOwnProperty("highest")) ? options["highest"] : true;
sendaction = new URLLoader();
handled = false;
if (callback != null){
bridge = function ():void{
if ((((callback == null)) || (handled))){
return;
};
handled = true;
var _local1:XML = XML(sendaction["data"]);
var _local2:int = parseInt(_local1["status"]);
if (_local2 == 1){
score.SDate = new Date();
score.RDate = "Just now";
};
callback(score, new Response(_local2, _local1["errorcode"]));
};
sendaction.addEventListener(Event.COMPLETE, bridge);
};
var fail:Function = function ():void{
if ((((callback == null)) || (handled))){
return;
};
handled = true;
callback(score, Response.GeneralFailure());
};
var httpstatusignore:Function = function ():void{
};
var s:String = score.Points.toString();
if (s.indexOf(".") > -1){
s = s.substring(0, s.indexOf("."));
};
var postdata:URLVariables = new URLVariables();
var customfields:int;
if (score.CustomData != null){
for (key in score.CustomData) {
postdata[("ckey" + customfields)] = key;
postdata[("cdata" + customfields)] = escape(score.CustomData[key]);
customfields = (customfields + 1);
};
};
postdata["url"] = Log.SourceUrl;
postdata["table"] = escape(table);
postdata["highest"] = (highest) ? "y" : "n";
postdata["name"] = escape(score.Name);
postdata["points"] = s;
postdata["allowduplicates"] = (allowduplicates) ? "y" : "n";
postdata["auth"] = Encode.MD5((Log.SourceUrl + s));
postdata["fb"] = (((!((score.FBUserId == ""))) && (!((score.FBUserId == null))))) ? "y" : "n";
postdata["fbuserid"] = score.FBUserId;
postdata["customfields"] = customfields;
var request:URLRequest = new URLRequest(((((("http://g" + Log.GUID) + ".api.playtomic.com/v2/leaderboards/save.aspx?swfid=") + Log.SWFID) + "&r=") + Math.random()));
request.data = postdata;
request.method = URLRequestMethod.POST;
sendaction.addEventListener(IOErrorEvent.IO_ERROR, fail);
sendaction.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpstatusignore);
sendaction.addEventListener(SecurityErrorEvent.SECURITY_ERROR, fail);
sendaction.load(request);
}
public static function GetLeaderboardFromUrl():String{
var url:String;
var leaderboardid:String;
if (!ExternalInterface.available){
return (null);
};
try {
url = String(ExternalInterface.call("window.location.href.toString"));
if (url.indexOf("?") == -1){
return (null);
};
leaderboardid = url.substring((url.indexOf("leaderboard=") + 12));
if (leaderboardid.indexOf("&") > -1){
leaderboardid = leaderboardid.substring(0, leaderboardid.indexOf("&"));
};
if (leaderboardid.indexOf("#") > -1){
leaderboardid = leaderboardid.substring(0, leaderboardid.indexOf("#"));
};
return (leaderboardid);
} catch(s:Error) {
};
return (null);
}
public static function SaveAndList(_arg1:PlayerScore, _arg2:String, _arg3:Function=null, _arg4:Object=null):void{
var sendaction:URLLoader;
var handled:Boolean;
var request:URLRequest;
var bridge:Function;
var fkey:String;
var dkey:String;
var score = _arg1;
var table = _arg2;
var callback = _arg3;
var options = _arg4;
if (options == null){
options = new Object();
};
var allowduplicates:Boolean = (options.hasOwnProperty("allowduplicates")) ? options["allowduplicates"] : false;
var global:Boolean = (options.hasOwnProperty("global")) ? options["global"] : true;
var highest:Boolean = (options.hasOwnProperty("highest")) ? options["highest"] : true;
var mode:String = (options.hasOwnProperty("mode")) ? options["mode"] : "alltime";
var customfilters:Object = (options.hasOwnProperty("customfilters")) ? options["customfilters"] : {};
var page:int = (options.hasOwnProperty("page")) ? options["page"] : 1;
var perpage:int = (options.hasOwnProperty("perpage")) ? options["perpage"] : 20;
var friendslist:Array = (options.hasOwnProperty("friendslist")) ? options["friendslist"] : new Array();
sendaction = new URLLoader();
handled = false;
if (callback != null){
bridge = function ():void{
if ((((callback == null)) || (handled))){
return;
};
handled = true;
ProcessScores(sendaction, callback);
};
sendaction.addEventListener(Event.COMPLETE, bridge);
};
var fail:Function = function ():void{
if ((((callback == null)) || (handled))){
return;
};
handled = true;
callback([], 0, Response.GeneralFailure());
};
var httpstatusignore:Function = function ():void{
};
var postdata:URLVariables = new URLVariables();
var numfilters:int;
if (customfilters != null){
for (fkey in customfilters) {
postdata[("ckey" + numfilters)] = fkey;
postdata[("cdata" + numfilters)] = escape(customfilters[fkey]);
numfilters = (numfilters + 1);
};
};
var numfields:int;
if (score.CustomData != null){
for (dkey in score.CustomData) {
postdata[("ckey" + numfields)] = dkey;
postdata[("cdata" + numfields)] = escape(score.CustomData[dkey]);
numfields = (numfields + 1);
};
};
postdata["url"] = Log.SourceUrl;
postdata["table"] = escape(table);
postdata["highest"] = (highest) ? "y" : "n";
postdata["name"] = escape(score.Name);
postdata["points"] = score.Points.toString();
postdata["allowduplicates"] = (allowduplicates) ? "y" : "n";
postdata["auth"] = Encode.MD5((Log.SourceUrl + score.Points.toString()));
postdata["numfields"] = numfields;
postdata["global"] = (global) ? "y" : "n";
postdata["mode"] = mode;
postdata["page"] = page;
postdata["perpage"] = perpage;
postdata["numfilters"] = numfilters;
if (((!((score.FBUserId == ""))) && (!((score.FBUserId == null))))){
if (friendslist.length > 0){
postdata["friendslist"] = friendslist.join(",");
};
postdata["fbuserid"] = score.FBUserId;
request = new URLRequest(((((("http://g" + Log.GUID) + ".api.playtomic.com/v2/leaderboards/saveandlistfb.aspx?swfid=") + Log.SWFID) + "&r=") + Math.random()));
} else {
request = new URLRequest(((((("http://g" + Log.GUID) + ".api.playtomic.com/v2/leaderboards/saveandlist.aspx?swfid=") + Log.SWFID) + "&r=") + Math.random()));
};
request.data = postdata;
request.method = URLRequestMethod.POST;
sendaction.addEventListener(IOErrorEvent.IO_ERROR, fail);
sendaction.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpstatusignore);
sendaction.addEventListener(SecurityErrorEvent.SECURITY_ERROR, fail);
sendaction.load(request);
}
}
}//package Playtomic
Section 28
//Link (Playtomic.Link)
package Playtomic {
import flash.net.*;
public final class Link {
private static var Clicks:Array = new Array();
public static function Open(_arg1:String, _arg2:String, _arg3:String):Boolean{
var result:Boolean;
var url = _arg1;
var name = _arg2;
var group = _arg3;
var unique:int;
var bunique:int;
var total:int;
var btotal:int;
var fail:int;
var bfail:int;
var key:String = ((url + ".") + name);
var baseurl:String = url;
baseurl = baseurl.replace("http://", "");
if (baseurl.indexOf("/") > -1){
baseurl = baseurl.substring(0, baseurl.indexOf("/"));
};
if (baseurl.indexOf("?") > -1){
baseurl = baseurl.substring(0, baseurl.indexOf("?"));
};
baseurl = (("http://" + baseurl) + "/");
var baseurlname:String = baseurl;
if (baseurlname.indexOf("//") > -1){
baseurlname = baseurlname.substring((baseurlname.indexOf("//") + 2));
};
baseurlname = baseurlname.replace("www.", "");
if (baseurlname.indexOf("/") > -1){
baseurlname = baseurlname.substring(0, baseurlname.indexOf("/"));
};
try {
navigateToURL(new URLRequest(url));
if (Clicks.indexOf(key) > -1){
total = 1;
} else {
total = 1;
unique = 1;
Clicks.push(key);
};
if (Clicks.indexOf(baseurlname) > -1){
btotal = 1;
} else {
btotal = 1;
bunique = 1;
Clicks.push(baseurlname);
};
result = true;
} catch(err:Error) {
fail = 1;
bfail = 1;
result = false;
};
Log.Link(baseurl, baseurlname.toLowerCase(), "DomainTotals", bunique, btotal, bfail);
Log.Link(url, name, group, unique, total, fail);
Log.ForceSend();
return (result);
}
}
}//package Playtomic
Section 29
//Log (Playtomic.Log)
package Playtomic {
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
import flash.external.*;
public final class Log {
private static const PingR:Timer = new Timer(30000);
private static const PingF:Timer = new Timer(60000);
private static var LevelAverages:Array = new Array();
private static var Customs:Array = new Array();
public static var Cookie:SharedObject;
public static var GUID:String = "";
public static var SWFID:int = 0;
private static var LevelRangeds:Array = new Array();
private static var Plays:int = 0;
public static var Enabled:Boolean = false;
private static var Pings:int = 0;
private static var FrozenQueue:Array = new Array();
public static var SourceUrl:String;
private static var HighestGoal:int = 0;
private static var FirstPing:Boolean = true;
private static var Frozen:Boolean = false;
public static var BaseUrl:String;
public static var Request:LogRequest;
public static var Queue:Boolean = true;
private static var LevelCounters:Array = new Array();
public static function PlayerLevelFlag(_arg1:String):void{
if (!Enabled){
return;
};
Send(("plf/" + _arg1));
}
public static function Link(_arg1:String, _arg2:String, _arg3:String, _arg4:int, _arg5:int, _arg6:int):void{
if (!Enabled){
return;
};
Send(((((((((((("l/" + Clean(_arg2)) + "/") + Clean(_arg3)) + "/") + Clean(_arg1)) + "/") + _arg4) + "/") + _arg5) + "/") + _arg6));
}
public static function PlayerLevelStart(_arg1:String):void{
if (!Enabled){
return;
};
Send(("pls/" + _arg1));
}
public static function LevelAverageMetric(_arg1:String, _arg2, _arg3:int, _arg4:Boolean=false):void{
var _local5:String;
if (!Enabled){
return;
};
if (_arg4){
_local5 = ((_arg1 + ".") + _arg2.toString());
if (LevelAverages.indexOf(_local5) > -1){
return;
};
LevelAverages.push(_local5);
};
Send(((((("la/" + Clean(_arg1)) + "/") + Clean(_arg2)) + "/") + _arg3));
}
public static function IncreaseViews():void{
var _local1:int = GetCookie("views");
_local1++;
SaveCookie("views", _local1);
}
private static function Send(_arg1:String, _arg2:Boolean=false):void{
if (Frozen){
FrozenQueue.push(_arg1);
return;
};
Request.Queue(_arg1);
if (((((Request.Ready) || (_arg2))) || (!(Queue)))){
Request.Send();
Request = LogRequest.Create();
};
}
public static function CustomMetric(_arg1:String, _arg2:String=null, _arg3:Boolean=false):void{
if (!Enabled){
return;
};
if (_arg2 == null){
_arg2 = "";
};
if (_arg3){
if (Customs.indexOf(_arg1) > -1){
return;
};
Customs.push(_arg1);
};
Send(((("c/" + Clean(_arg1)) + "/") + Clean(_arg2)));
}
private static function Clean(_arg1:String):String{
while (_arg1.indexOf("/") > -1) {
_arg1 = _arg1.replace("/", "\\");
};
while (_arg1.indexOf("~") > -1) {
_arg1 = _arg1.replace("~", "-");
};
return (escape(_arg1));
}
public static function UnFreeze():void{
Frozen = false;
Request.MassQueue(FrozenQueue);
}
private static function GetCookie(_arg1:String):int{
if (Cookie.data[_arg1] == undefined){
return (0);
};
return (int(Cookie.data[_arg1]));
}
public static function View(_arg1:int=0, _arg2:String="", _arg3:String=""):void{
if (SWFID > 0){
return;
};
SWFID = _arg1;
GUID = _arg2;
Enabled = true;
if ((((SWFID == 0)) || ((GUID == "")))){
Enabled = false;
return;
};
if (((((!((_arg3.indexOf("http://") == 0))) && (!((Security.sandboxType == "localWithNetwork"))))) && (!((Security.sandboxType == "localTrusted"))))){
Enabled = false;
return;
};
SourceUrl = GetUrl(_arg3);
if ((((((SourceUrl == null)) || ((SourceUrl == "")))) || ((SourceUrl.indexOf("https://") == 0)))){
Enabled = false;
return;
};
Security.loadPolicyFile((("http://g" + Log.GUID) + ".api.playtomic.com/crossdomain.xml"));
Request = LogRequest.Create();
Cookie = SharedObject.getLocal("playtomic");
var _local4:int = GetCookie("views");
Send(("v/" + (_local4 + 1)), true);
PingF.addEventListener(TimerEvent.TIMER, PingServer);
PingF.start();
}
public static function Freeze():void{
Frozen = true;
}
public static function LevelCounterMetric(_arg1:String, _arg2, _arg3:Boolean=false):void{
var _local4:String;
if (!Enabled){
return;
};
if (_arg3){
_local4 = ((_arg1 + ".") + _arg2.toString());
if (LevelCounters.indexOf(_local4) > -1){
return;
};
LevelCounters.push(_local4);
};
Send(((("lc/" + Clean(_arg1)) + "/") + Clean(_arg2)));
}
public static function Heatmap(_arg1:String, _arg2:String, _arg3:int, _arg4:int):void{
if (!Enabled){
return;
};
Send(((((((("h/" + Clean(_arg1)) + "/") + Clean(_arg2)) + "/") + _arg3) + "/") + _arg4));
}
public static function Play():void{
if (!Enabled){
return;
};
LevelCounters = new Array();
LevelAverages = new Array();
LevelRangeds = new Array();
Send(("p/" + (Plays + 1)), true);
}
public static function Funnel(_arg1:String, _arg2:String, _arg3:int):void{
if (!Enabled){
return;
};
Send(((((("f/" + Clean(_arg1)) + "/") + Clean(_arg2)) + "/") + _arg3));
}
public static function PlayerLevelWin(_arg1:String):void{
if (!Enabled){
return;
};
Send(("plw/" + _arg1));
}
public static function LevelRangedMetric(_arg1:String, _arg2, _arg3:int, _arg4:Boolean=false):void{
var _local5:String;
if (!Enabled){
return;
};
if (_arg4){
_local5 = ((_arg1 + ".") + _arg2.toString());
if (LevelRangeds.indexOf(_local5) > -1){
return;
};
LevelRangeds.push(_local5);
};
Send(((((("lr/" + Clean(_arg1)) + "/") + Clean(_arg2)) + "/") + _arg3));
}
private static function GetUrl(_arg1:String):String{
var url:String;
var defaulturl = _arg1;
if (ExternalInterface.available){
try {
url = String(ExternalInterface.call("window.location.href.toString"));
} catch(s:Error) {
url = defaulturl;
};
} else {
if ((((defaulturl.indexOf("http://") == 0)) || ((defaulturl.indexOf("https://") == 0)))){
url = defaulturl;
};
};
if ((((((url == null)) || ((url == "")))) || ((url == "null")))){
if ((((Security.sandboxType == "localWithNetwork")) || ((Security.sandboxType == "localTrusted")))){
url = "http://local-testing/";
} else {
url = null;
};
};
return (escape(url));
}
private static function SaveCookie(_arg1:String, _arg2:int):void{
Cookie.data[_arg1] = _arg2.toString();
Cookie.flush();
}
public static function PlayerLevelRetry(_arg1:String):void{
if (!Enabled){
return;
};
Send(("plr/" + _arg1));
}
public static function PlayerLevelQuit(_arg1:String):void{
if (!Enabled){
return;
};
Send(("plq/" + _arg1));
}
public static function ForceSend():void{
if (!Enabled){
return;
};
if (Request == null){
Request = LogRequest.Create();
};
Request.Send();
Request = LogRequest.Create();
if (FrozenQueue.length > 0){
Request.MassQueue(FrozenQueue);
};
}
private static function PingServer(... _args):void{
if (!Enabled){
return;
};
Pings++;
Send(((("t/" + (FirstPing) ? "y" : "n") + "/") + Pings), true);
if (FirstPing){
PingF.stop();
PingR.addEventListener(TimerEvent.TIMER, PingServer);
PingR.start();
FirstPing = false;
};
}
public static function IncreasePlays():void{
Plays++;
}
}
}//package Playtomic
Section 30
//LogRequest (Playtomic.LogRequest)
package Playtomic {
import flash.events.*;
import flash.net.*;
public final class LogRequest {
public var Ready:Boolean;// = false
private var Data:String;// = ""
private var Target:URLRequest;
private var Sender:URLLoader;
private var BaseUrl:String;
private static var Pool:Array = new Array();
private static var Failed:int = 0;
public function LogRequest(){
this.Sender = new URLLoader();
this.Sender.addEventListener(Event.COMPLETE, this.Complete);
this.Sender.addEventListener(IOErrorEvent.IO_ERROR, this.IOErrorHandler);
this.Sender.addEventListener(HTTPStatusEvent.HTTP_STATUS, this.StatusChange);
this.Sender.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.SecurityErrorHandler);
this.Target = new URLRequest();
this.BaseUrl = ((("http://g" + Log.GUID) + ".api.playtomic.com/tracker/q.aspx?swfid=") + Log.SWFID);
}
private function Complete(_arg1:Event=null):void{
if ((((this.Data.indexOf("v/") == 0)) || ((this.Data.indexOf("~v/") > -1)))){
Log.IncreaseViews();
};
if ((((this.Data.indexOf("p/") == 0)) || ((this.Data.indexOf("~p/") > -1)))){
Log.IncreasePlays();
};
Pool.push(this);
}
public function Send():void{
if (this.Data == ""){
return;
};
this.Target.url = (((((((this.BaseUrl + "&q=") + this.Data) + "&url=") + Log.SourceUrl) + "&") + Math.random()) + "z");
this.Sender.load(this.Target);
}
private function SecurityErrorHandler(_arg1:SecurityErrorEvent):void{
}
private function IOErrorHandler(_arg1:IOErrorEvent):void{
Failed++;
}
public function Queue(_arg1:String):void{
if (Failed > 3){
return;
};
this.Data = (this.Data + (((this.Data == "")) ? "" : "~" + _arg1));
if (this.Data.length > 300){
this.Ready = true;
};
}
private function StatusChange(_arg1:HTTPStatusEvent):void{
}
public function MassQueue(_arg1:Array):void{
var _local3:LogRequest;
if (Failed > 3){
return;
};
var _local2:int = (_arg1.length - 1);
while (_local2 > -1) {
this.Data = (this.Data + (((this.Data == "")) ? "" : "~" + _arg1[_local2]));
_arg1.splice(_local2, 1);
if (this.Data.length > 300){
_local3 = Create();
_local3.MassQueue(_arg1);
this.Ready = true;
this.Send();
return;
};
_local2--;
};
Log.Request = this;
}
public static function Create():LogRequest{
var _local1:LogRequest = ((Pool.length > 0)) ? (Pool.pop() as LogRequest) : new (LogRequest);
_local1.Data = "";
_local1.Ready = false;
return (_local1);
}
}
}//package Playtomic
Section 31
//PlayerScore (Playtomic.PlayerScore)
package Playtomic {
public final class PlayerScore {
public var RDate:String;
public var SDate:Date;
public var FBUserId:String;
public var Points:Number;
public var CustomData:Object;
public var Name:String;
public var Rank:int;
public var Website:String;
public function PlayerScore(_arg1:String="", _arg2:int=0){
CustomData = {};
super();
Name = _arg1;
Points = _arg2;
}
public function toString():String{
return ((((((("Playtomic.PlayerScore:" + "\nRank: ") + Rank) + "\nName: ") + Name) + "\nPoints: ") + Points));
}
public function toStringAll():String{
var _local2:String;
var _local1:* = ((((((((((((((("Playtomic.PlayerScore:" + "\nRank: ") + Rank) + "\nName: ") + Name) + "\nFBUserId: ") + FBUserId) + "\nPoints: ") + Points) + "\nWebsite: ") + Website) + "\nSDate: ") + SDate) + "\nRDate: ") + RDate) + "\nCustomData: ");
for each (_local2 in CustomData) {
_local1 = (_local1 + (((" \n" + _local2) + ": ") + CustomData[_local2]));
};
return (_local1);
}
}
}//package Playtomic
Section 32
//PrivateLeaderboard (Playtomic.PrivateLeaderboard)
package Playtomic {
public class PrivateLeaderboard {
public var Name:String;
public var Highest:Boolean;// = true
public var RealName:String;
public var Permalink:String;
public var TableId:String;
public var Bitly:String;
public function PrivateLeaderboard(_arg1:String=null, _arg2:String=null, _arg3:String=null, _arg4:String=null, _arg5:Boolean=false, _arg6:String=null){
TableId = _arg1;
Name = _arg2;
Bitly = _arg3;
Permalink = _arg4;
Highest = _arg5;
RealName = _arg6;
}
public function toString():String{
return ((((((((((((("Playtomic.PrivateLeaderboard:" + "\nTableId: ") + TableId) + "\nName: ") + Name) + "\nBitly: ") + Bitly) + "\nPermalink: ") + Permalink) + "\nHighest: ") + Highest) + "\nRealName: ") + RealName));
}
}
}//package Playtomic
Section 33
//Response (Playtomic.Response)
package Playtomic {
public class Response {
public var Success:Boolean;// = false
public var ErrorCode:int;// = 0
private static const ERRORS:Object = new Object();
public function Response(_arg1:int, _arg2:int){
Success = (_arg1 == 1);
ErrorCode = _arg2;
}
public function toString():String{
return ((((((("Playtomic.Response:" + "\nSuccess: ") + Success) + "\nErrorCode: ") + ErrorCode) + "\nErrorMessage: ") + ErrorMessage));
}
public function get ErrorMessage():String{
if (ErrorCode == 0){
return ("Nothing went wrong!");
};
return (ERRORS[ErrorCode]);
}
public static function GeneralFailure():Response{
return (new Response(0, 1));
}
ERRORS[0] = "No error";
ERRORS[1] = "General error, this typically means the player is unable to connect to the Playtomic servers";
ERRORS[2] = "Invalid game credentials. Make sure you use your SWFID and GUID from the `API` section in the dashboard.";
ERRORS[100] = "GeoIP API has been disabled. This may occur if your game is faulty or overwhelming the Playtomic servers.";
ERRORS[200] = "Leaderboard API has been disabled. This may occur if your game is faulty or overwhelming the Playtomic servers.";
ERRORS[201] = "The source URL or name weren't provided when saving a score. Make sure the player specifies a name and the game is initialized before anything else using the code in the `Set your game up` section.";
ERRORS[202] = "Invalid auth key. You should not see this normally, players might if they tamper with your game.";
ERRORS[203] = "No Facebook user id on a score specified as a Facebook submission.";
ERRORS[300] = "GameVars API has been disabled. This may occur if your game is faulty or overwhelming the Playtomic servers.";
ERRORS[400] = "Level sharing API has been disabled. This may occur if your game is faulty or overwhelming the Playtomic servers.";
ERRORS[401] = "Invalid rating value (must be 1 - 10).";
ERRORS[402] = "Player has already rated that level.";
ERRORS[403] = "The level name wasn't provided when saving a level.";
ERRORS[404] = "Invalid image auth. You should not see this normally, players might if they tamper with your game.";
ERRORS[405] = "Invalid image auth (again). You should not see this normally, players might if they tamper with your game.";
ERRORS[500] = "Data API has been disabled. This may occur if the Data API is not enabled for your game, or your game is faulty or overwhelming the Playtomic servers.";
}
}//package Playtomic
Section 34
//Settings (stackerz.Settings)
package stackerz {
import flash.display.*;
import flash.text.*;
public dynamic class Settings extends MovieClip {
public var speedup:TextField;
public var generate_step:TextField;
public var speed:TextField;
public var colorlimit:TextField;
public var restart:MovieClip;
}
}//package stackerz
Section 35
//Leaderboard (util.leaderboard.Leaderboard)
package util.leaderboard {
import Playtomic.*;
import util.*;
import flash.events.*;
import flash.utils.*;
import flash.display.*;
import mochi.as3.*;
import flash.text.*;
import flash.ui.*;
public class Leaderboard extends MovieClip {
private var _text_tf:TextField;
private var _leaderboard_list:LeaderboardList;
private var _error:MovieClip;
private var _leaderboard_connector:LeaderboardConnector;
public var _player_score:PlayerScore;
private var _submited:Boolean;
private var _score:MochiDigits;
public var leaderboard_list:LeaderboardList;
public var name_tf:TextField;
public var error_mc:MovieClip;
private var _week_bt:ButActivated;
public var text_tf:TextField;
public var points_tf:TextField;
private var _all_bt:ButActivated;
public var submit_bt:submit_cl;
private var _submit_bt:ButActivated;
private var _name_tf:TextField;
private var _name_default:String;// = "name"
private var _day_bt:ButActivated;
public var loading_mc:MovieClip;
private var _loading:MovieClip;
public static var _loaderInfo:LoaderInfo;
public static var TODAY:String = "today";
public static var ALL:String = "all";
public static var LAST7DAYS:String = "last7days";
public function Leaderboard(){
_submit_bt = this["submit_bt"];
_submit_bt.addEventListener(MouseEvent.CLICK, submitHandler);
_name_tf = this["name_tf"];
_text_tf = this["text_tf"];
_name_tf.addEventListener(FocusEvent.FOCUS_IN, focusInHandler);
_name_tf.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler);
_name_tf.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
_loading = this["loading_mc"];
_error = this["error_mc"];
_leaderboard_list = this["leaderboard_list"];
_leaderboard_connector = new LeaderboardConnector();
_leaderboard_connector._leaderboard_view = this;
_leaderboard_connector._leaderboard_list = _leaderboard_list;
_leaderboard_list._leaderboard_connector = _leaderboard_connector;
}
public function showError(_arg1:String):void{
hideLoading();
_error.visible = true;
_error["text_tf"].text = _arg1;
setTimeout(hideError, 2000);
}
private function setActive(_arg1:ButActivated):void{
_day_bt.active = true;
_week_bt.active = true;
_all_bt.active = true;
_arg1.active = false;
}
public function init(_arg1:int=-1, _arg2:int=0):void{
_score = new MochiDigits(_arg2);
hideLoading();
hideError();
_submit_bt.active = true;
_submited = false;
if (_arg1 > -1){
_leaderboard_connector._leaderboard = ("h" + _arg1);
_text_tf.text = (("Level " + App._level.value) + " leaderboard");
} else {
_leaderboard_connector._leaderboard = "h";
_text_tf.text = "Game leaderboard";
};
if (App._username == ""){
_name_tf.text = _name_default;
} else {
_name_tf.text = App._username;
};
this["points_tf"].text = _score.value;
_leaderboard_list.init();
listScores(LAST7DAYS);
}
private function submitHandler(_arg1:MouseEvent):void{
if (((!((_name_tf.text == _name_default))) && (!((_name_tf.text == ""))))){
Log.CustomMetric("SUBMIT");
_player_score = new PlayerScore();
_player_score.Name = _name_tf.text;
_player_score.Points = _score.value;
App.setUsername(_name_tf.text);
_leaderboard_connector.saveListScore(_player_score);
};
}
private function focusOutHandler(_arg1:FocusEvent):void{
if ((((_name_tf.text == "")) || ((_name_tf.text == " ")))){
if (App._username == ""){
_name_tf.text = _name_default;
} else {
_name_tf.text = App._username;
};
};
if (((_submited) && ((_name_tf.text == App._username)))){
_submit_bt.active = false;
};
}
public function hideLoading():void{
_loading.visible = false;
}
private function keyDown(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == Keyboard.ENTER){
submitHandler(null);
};
if (((((((!((_name_tf.text == ""))) && (!((_name_tf.text == " "))))) && (!((_name_tf.text == App._username))))) && (!((_name_tf.text == _name_default))))){
if (!_submit_bt.active){
_submit_bt.active = true;
};
};
}
private function listHandler(_arg1:MouseEvent):void{
var _local2:String;
var _local3:ButActivated = ButActivated(_arg1.target);
if (_local3 == _day_bt){
_local2 = TODAY;
} else {
if (_local3 == _week_bt){
_local2 = LAST7DAYS;
} else {
if (_local3 == _all_bt){
_local2 = ALL;
};
};
};
if (_local2 != _leaderboard_connector._mode){
setActive(_local3);
listScores(_local2);
};
}
function saveComplete():void{
hideLoading();
_submit_bt.active = false;
_submited = true;
}
private function listScores(_arg1:String):void{
_leaderboard_list.clearData();
_leaderboard_connector.listScores(_arg1);
}
public function hideError():void{
_error.visible = false;
}
private function focusInHandler(_arg1:FocusEvent):void{
if (_name_tf.text == _name_default){
_name_tf.text = "";
};
}
public function listComplete():void{
hideLoading();
if (App._username != ""){
submitHandler(null);
};
}
public function showLoading():void{
_loading.visible = true;
}
}
}//package util.leaderboard
Section 36
//LeaderboardConnector (util.leaderboard.LeaderboardConnector)
package util.leaderboard {
import Playtomic.*;
public class LeaderboardConnector {
public var _mode:String;
public var _leaderboard_view:Leaderboard;
public var _page:int;// = 1
public var _leaderboard:String;// = "h"
public var _leaderboard_list:LeaderboardList;
public function LeaderboardConnector(){
_mode = Leaderboard.TODAY;
super();
}
public function listScores(_arg1:String="today", _arg2:int=1):void{
_leaderboard_view.showLoading();
_mode = _arg1;
_page = _arg2;
var _local3:Object = new Object();
_local3.mode = _mode;
_local3.page = _page;
_local3.perpage = 5;
Leaderboards.List(_leaderboard, this.listComplete, _local3);
}
public function listComplete(_arg1:Array, _arg2:int, _arg3:Object):void{
if (_arg3.Success){
_leaderboard_view.listComplete();
trace(((_arg1.length + " scores returned out of ") + _arg2));
_leaderboard_list.listScores(_arg1);
} else {
_leaderboard_view.showError("load error");
};
}
public function getPage(_arg1:int=-1):void{
if (_arg1 < 0){
_page++;
} else {
_page = _arg1;
};
listScores(_mode, _page);
}
public function saveScore(_arg1:PlayerScore):void{
_leaderboard_view.showLoading();
Leaderboards.Save(_arg1, _leaderboard, this.saveComplete);
}
public function saveComplete(_arg1:Array, _arg2:int, _arg3:Object):void{
if (_arg3.Success){
_leaderboard_list.showPlayer(_leaderboard_view._player_score, _arg1);
_leaderboard_view.saveComplete();
} else {
_leaderboard_view.showError("save error");
};
}
public function saveListScore(_arg1:PlayerScore):void{
_leaderboard_view.showLoading();
var _local2:Object = new Object();
_local2.mode = _mode;
_local2.perpage = 4;
_local2.allowduplicates = false;
Leaderboards.SaveAndList(_arg1, _leaderboard, this.saveComplete, _local2);
}
}
}//package util.leaderboard
Section 37
//LeaderboardLine (util.leaderboard.LeaderboardLine)
package util.leaderboard {
import Playtomic.*;
import flash.display.*;
import flash.text.*;
public class LeaderboardLine extends MovieClip {
private var _score_tf:TextField;
private var _place:int;
private var _place_tf:TextField;
public var place_tf:TextField;
private var _pointer:MovieClip;
public var username_tf:TextField;
private var _username_tf:TextField;
public var pointer:MovieClip;
public var score_tf:TextField;
public function LeaderboardLine(){
_place_tf = this["place_tf"];
_username_tf = this["username_tf"];
_score_tf = this["score_tf"];
_pointer = this["pointer"];
}
public function setPlayer(){
if (_place > 3){
_pointer.gotoAndStop(5);
};
}
public function init(_arg1:PlayerScore):void{
_place = _arg1.Rank;
_pointer.gotoAndStop(((_place)<4) ? (_place + 1) : 1);
_place_tf.text = String(_arg1.Rank);
_username_tf.text = _arg1.Name;
_score_tf.text = String(_arg1.Points);
}
}
}//package util.leaderboard
Section 38
//LeaderboardList (util.leaderboard.LeaderboardList)
package util.leaderboard {
import Playtomic.*;
import flash.display.*;
public class LeaderboardList extends MovieClip {
private var _lines_swamp:Array;
private var _lines_array:Array;
public var _leaderboard_connector:LeaderboardConnector;
private var _player_score:PlayerScore;
private var _scores_array_init:Array;
private var _scores_array:Array;
public function LeaderboardList(){
_lines_array = [];
_lines_swamp = [];
}
public function showPlayer(_arg1:PlayerScore, _arg2:Array):void{
_player_score = _arg1;
var _local3:int;
if (_scores_array_init == null){
_scores_array = [];
} else {
_scores_array = _scores_array_init;
};
while (((((!((_scores_array[0] == null))) && (((_arg2[0] as PlayerScore).Rank > (_scores_array[_local3] as PlayerScore).Rank)))) && ((_local3 < (5 - _arg2.length))))) {
_local3++;
};
var _local4:int;
while ((((_local3 < 5)) && ((_local4 < _arg2.length)))) {
_scores_array[_local3] = _arg2[_local4];
_local3++;
_local4++;
};
list();
}
private function removeLine(_arg1:LeaderboardLine):void{
removeChild(_arg1);
_lines_swamp.push(_arg1);
}
public function resetPlayer():void{
_player_score = new PlayerScore();
}
public function init(){
clearData();
_scores_array_init = null;
}
private function getLine():LeaderboardLine{
var _local1:LeaderboardLine;
if (_lines_swamp.length > 0){
_local1 = _lines_swamp.pop();
} else {
_local1 = new LeaderboardLine();
};
return (_local1);
}
private function clearLines():void{
while (_lines_array.length > 0) {
removeLine(_lines_array.pop());
};
}
public function clearData():void{
resetPlayer();
clearLines();
_scores_array = [];
}
private function addLine(_arg1:PlayerScore):void{
var _local2:LeaderboardLine = getLine();
_local2.init(_arg1);
if (_arg1.Name == _player_score.Name){
_local2.setPlayer();
};
addChild(_local2);
_lines_array.push(_local2);
_local2.y = ((_lines_array.length - 1) * 25);
}
public function list():void{
var _local1:int;
clearLines();
while (_local1 < _scores_array.length) {
addLine(_scores_array[_local1]);
_local1++;
};
trace(_lines_array);
}
public function listScores(_arg1:Array):void{
_scores_array_init = _arg1.concat();
_scores_array = _scores_array_init.concat();
list();
}
}
}//package util.leaderboard
Section 39
//SoundBGController (util.sound.SoundBGController)
package util.sound {
import flash.events.*;
import flash.media.*;
import flash.utils.*;
public class SoundBGController {
private static var _soundTransform:SoundTransform = new SoundTransform();
private static var _curSound:Sound;
private static var _soundChannel:SoundChannel;
public static var soundHash:Object = {};
public static function playSoundBG(_arg1:String):void{
var cl:Class;
var name = _arg1;
if (soundHash[name] == null){
try {
cl = (getDefinitionByName(name) as Class);
} catch(e:Error) {
trace(((("[ERROR: cannot found Class with name = " + name) + "]:") + e));
return;
};
try {
soundHash[name] = (new (cl) as Sound);
} catch(e:Error) {
trace(((("[ERROR: cannot create Class with name = " + name) + "]:") + e));
return;
};
};
try {
if (_curSound != Sound(soundHash[name])){
_curSound = Sound(soundHash[name]);
playSound();
};
} catch(e:Error) {
trace(((("[ERROR: cannot play sound with name = " + name) + "]:") + e));
};
}
public static function get soundTransform():SoundTransform{
return (_soundTransform);
}
private static function soundCompleteHandler(_arg1:Event):void{
playSound();
}
public static function stopSound():void{
_soundChannel.stop();
_soundChannel.removeEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
}
public static function refreshSoundChannel():void{
if (_soundChannel != null){
_soundChannel.soundTransform = _soundTransform;
};
}
public static function get soundChannel():SoundChannel{
return (_soundChannel);
}
public static function playSound():void{
if (SoundManager.isSoundOn == false){
return;
};
if (_soundChannel != null){
stopSound();
};
_soundChannel = _curSound.play(0, 0, _soundTransform);
_soundChannel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
}
}
}//package util.sound
Section 40
//SoundButton (util.sound.SoundButton)
package util.sound {
import Playtomic.*;
import util.*;
import flash.events.*;
public class SoundButton extends But {
public function SoundButton(){
addFrameScript(0, frame1, 1, frame2);
super();
setState();
}
override protected function handleClick(_arg1:MouseEvent):void{
super.handleClick(_arg1);
SoundManager.isSoundOn = !(SoundManager.isSoundOn);
Log.CustomMetric((SoundManager.isSoundOn) ? "sound_on" : "sound_off");
setState();
}
function frame1(){
stop();
}
function frame2(){
stop();
}
public function setState():void{
if (SoundManager.isSoundOn == true){
gotoAndStop(1);
} else {
gotoAndStop(2);
};
}
}
}//package util.sound
Section 41
//SoundFXController (util.sound.SoundFXController)
package util.sound {
import flash.media.*;
import flash.utils.*;
public class SoundFXController {
private static var _soundTransform:SoundTransform = new SoundTransform();
public static var soundHash:Object = {};
public static function playSoundFX(_arg1:String):void{
var cl:Class;
var name = _arg1;
if (SoundManager.isSoundOn){
if (soundHash[name] == null){
try {
cl = (getDefinitionByName(name) as Class);
} catch(e:Error) {
trace(((("[ERROR: cannot found Class with name = " + name) + "]:") + e));
return;
};
try {
soundHash[name] = (new (cl) as Sound);
} catch(e:Error) {
trace(((("[ERROR: cannot create Class with name = " + name) + "]:") + e));
return;
};
};
try {
Sound(soundHash[name]).play(0, 1, _soundTransform);
} catch(e:Error) {
trace(((("[ERROR: cannot play sound with name = " + name) + "]:") + e));
};
};
}
public static function get soundTransform():SoundTransform{
return (_soundTransform);
}
public static function playFX(_arg1:String, _arg2:int=0):void{
var _local3:int;
if (_arg2 > 0){
_local3 = (Math.round((Math.random() * (_arg2 - 1))) + 1);
playSoundFX((_arg1 + String(_local3)));
} else {
playSoundFX(_arg1);
};
}
}
}//package util.sound
Section 42
//SoundManager (util.sound.SoundManager)
package util.sound {
import flash.net.*;
public class SoundManager {
private static const FX_VOLUME:Number = 0.75;
private static const BG_VOLUME:Number = 0.75;
private static var _isSoundOn:Boolean = true;
private static var _inited:Boolean = init();
private static var _so:SharedObject;
public static function set isSoundOn(_arg1:Boolean):void{
var value = _arg1;
if (value != _isSoundOn){
if (value == false){
try {
SoundBGController.stopSound();
} catch(e:Error) {
trace(("[Error: SoundManager try stop chanal]: " + e.message));
};
} else {
_isSoundOn = true;
SoundBGController.playSound();
};
};
_isSoundOn = value;
_so.data["isSoundOn"] = value;
_so.flush();
}
public static function get bgSoundVolume():Number{
return (SoundBGController.soundTransform.volume);
}
public static function get isSoundOn():Boolean{
return (_isSoundOn);
}
public static function set bgSoundVolume(_arg1:Number):void{
SoundBGController.soundTransform.volume = _arg1;
SoundBGController.refreshSoundChannel();
}
private static function init():Boolean{
_so = SharedObject.getLocal("sound_data");
if (_so.data["isSoundOn"] == null){
_so.data["isSoundOn"] = true;
_so.flush();
};
_isSoundOn = _so.data["isSoundOn"];
SoundBGController.soundTransform.volume = BG_VOLUME;
SoundFXController.soundTransform.volume = FX_VOLUME;
_inited = true;
return (true);
}
public static function get fxSoundVolume():Number{
return (SoundFXController.soundTransform.volume);
}
public static function set fxSoundVolume(_arg1:Number):void{
SoundFXController.soundTransform.volume = _arg1;
}
}
}//package util.sound
Section 43
//App (util.App)
package util {
import Playtomic.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import flash.display.*;
import game.*;
import mochi.as3.*;
import util.sound.*;
import kongregate.*;
import flash.ui.*;
public class App extends MovieClip {
public var views:Views;
public static var _so:SharedObject;
public static var _level:MochiDigits;
public static var _pause_fl:Boolean;
public static var _first_time:Boolean;
public static var _game_score:MochiDigits;
public static var _win_fl:Boolean;
public static var _hi_score:MochiDigits;
public static var _username:String = "";
private static var _upgrade_fl:Boolean;
public static var _score_fl:Boolean;
public static var _views:Views;
public static var _game_fl:Boolean;
public static var _stage:Stage;
public function App(){
addEventListener(Event.ADDED_TO_STAGE, addedToStage);
}
private function init():void{
GameSettings.init();
_views = this["views"];
_stage = stage;
_stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
Game(_views._game_mc).initKeyboard();
_game_score = new MochiDigits(0);
_hi_score = new MochiDigits(0);
_level = new MochiDigits(0);
_first_time = false;
_game_fl = false;
_score_fl = false;
_win_fl = false;
_upgrade_fl = false;
initUp();
getUserData();
showMenu();
SoundBGController.playSoundBG("wearetherobots");
}
private function addedToStage(_arg1:Event):void{
init();
}
public static function showPause():void{
if (_pause_fl){
howToPlay();
} else {
hidePopup(_views._how_mc);
};
}
public static function showPlayMenu():void{
_views.showScreen(_views._play_menu_mc);
}
private static function getUserData():void{
_so = SharedObject.getLocal("user_data_so");
if (_so.data["username"] != null){
_username = _so.data["username"];
};
if (_so.data["level"] != null){
_level.value = _so.data["level"];
};
if (_so.data["up"] != null){
GameSettings.gd.UPGRADE = _so.data["up"];
};
if (_so.data["upgrade_fl"] != null){
_upgrade_fl = _so.data["upgrade_fl"];
};
}
public static function startNextLevel(_arg1:Boolean=false):void{
if (_arg1){
upgrade_fl = false;
};
if (!_upgrade_fl){
startPlay();
} else {
showUpgrade();
};
}
public static function hiScore():void{
_views.showPopup(_views._result_mc);
_score_fl = true;
}
public static function set upgrade_fl(_arg1:Boolean):void{
_upgrade_fl = _arg1;
_so.data["upgrade_fl"] = _upgrade_fl;
_so.flush();
}
public static function showTutorial():void{
App.setPause();
_views.showPopup(_views._tutorial_mc);
}
public static function hidePopup(_arg1:View):void{
_views.hide(_arg1);
}
private static function keyDown(_arg1:KeyboardEvent):void{
if (_game_fl){
if (!_score_fl){
if ((((_arg1.keyCode == Keyboard.SPACE)) || ((_arg1.keyCode == Keyboard.ESCAPE)))){
setPause();
showPause();
} else {
if (_arg1.keyCode == 82){
};
};
};
};
}
public static function clearPause():void{
_pause_fl = false;
}
private static function showResultLevel():void{
_views.showScreen(_views._result_level_mc);
}
public static function restartGame():void{
Game(_views._game_mc).restartGame();
}
public static function setPause():void{
_pause_fl = !(_pause_fl);
Game(_views._game_mc).setPause();
}
public static function startPlay():void{
_game_score.value = 0;
_views.showScreen(_views._game_mc);
_game_fl = true;
}
public static function howToPlay():void{
_views.showPopup(_views._how_mc);
}
public static function setLevel(_arg1:Number=-1):void{
if (_arg1 == -1){
_level.value++;
} else {
_level.value = _arg1;
};
trace(("level -" + _level.value));
_so.data["level"] = _level.value;
_so.flush();
}
public static function initUp():void{
GameSettings.gd.UPGRADE = [new MochiDigits(0), new MochiDigits(0), new MochiDigits(0)];
}
public static function showNextLevel():void{
GameSettings.gd.DIFFICULTY_CORRECTION = 0;
setLevel();
setHiscore((_hi_score.value + _game_score.value));
upgrade_fl = true;
showUpgrade();
}
public static function setUsername(_arg1:String):void{
var _local2:String;
if ((((_arg1 == "")) && (KongregateAPI.isHome))){
_local2 = KongregateAPI.api.services.getUsername();
if (_local2.substr(0, 5) != "Guest"){
_username = _local2;
} else {
_username = _arg1;
};
} else {
_username = _arg1;
};
_so.data["username"] = _username;
_so.flush();
}
public static function endTutorial():void{
App.setPause();
App.hidePopup(_views._tutorial_mc);
Game(_views._game_mc).initGame();
}
public static function showUpgrade():void{
_views.showScreen(_views._upgrade_mc);
}
public static function endGame(_arg1:Boolean=false):void{
_win_fl = _arg1;
if (((_win_fl) && ((_level.value < (GameSettings.gd.LEVELS - 1))))){
setTimeout(showResultLevel, 3000);
} else {
setTimeout(hiScore, 3000);
};
}
public static function setHiscore(_arg1:Number=0):void{
if (_arg1 > _hi_score.value){
_hi_score.value = _arg1;
_so.data["hiscore"] = _hi_score.value;
_so.flush();
};
}
public static function startGame():void{
Log.Play();
initUp();
_hi_score.value = 0;
_first_time = true;
setUsername("");
setLevel(0);
startPlay();
}
public static function saveUp():void{
_so.data["up"] = GameSettings.gd.UPGRADE;
_so.flush();
}
public static function replayGame():void{
if (GameSettings.gd.DIFFICULTY_CORRECTION < GameSettings.gd.DIFFICULTY_CORRECTION_MAX){
GameSettings.gd.DIFFICULTY_CORRECTION++;
};
startPlay();
}
public static function showMenu():void{
_stage.focus = _stage;
_views.showScreen(_views._menu_mc);
_game_fl = false;
_score_fl = false;
_win_fl = false;
}
}
}//package util
Section 44
//BonusBar (util.BonusBar)
package util {
import gs.*;
import flash.events.*;
import flash.display.*;
import gs.easing.*;
import flash.text.*;
public class BonusBar extends MovieClip {
public var text_tf:TextField;
public static const DESTROY:String = "DESTROY";
public function BonusBar(_arg1:String="", _arg2:Number=0, _arg3:Number=0){
mouseEnabled = false;
mouseChildren = false;
if (_arg1 != ""){
show(_arg1, _arg2, _arg3);
} else {
visible = false;
};
}
private function hide():void{
TweenLite.to(this, 0.3, {autoAlpha:0});
dispatchEvent(new Event(DESTROY));
}
public function show(_arg1:String="", _arg2:Number=0, _arg3:Number=0, _arg4:Boolean=false):void{
scaleX = (scaleY = 5);
x = _arg2;
y = (_arg3 - 60);
alpha = 0;
TweenLite.to(this, 1, {scaleX:(_arg4) ? 2 : 1, scaleY:(_arg4) ? 2 : 1, autoAlpha:1, ease:Elastic.easeOut, onComplete:hide});
TextField(this["text_tf"]).text = _arg1;
}
}
}//package util
Section 45
//But (util.But)
package util {
import gs.*;
import flash.events.*;
import flash.display.*;
import gs.easing.*;
import util.sound.*;
public class But extends MovieClip {
public var _active:Boolean;
public function But(){
active = true;
mouseChildren = false;
addEventListener(MouseEvent.MOUSE_OVER, handleMouseOver);
addEventListener(MouseEvent.MOUSE_OUT, handleMouseOut);
addEventListener(MouseEvent.CLICK, handleClick);
}
protected function handleClick(_arg1:MouseEvent):void{
if (_active){
TweenLite.to(this, 1, {scaleX:1, scaleY:1, ease:Elastic.easeOut});
SoundFXController.playFX("button");
};
}
protected function handleMouseOver(_arg1:MouseEvent):void{
if (_active){
TweenLite.to(this, 1, {scaleX:1.1, scaleY:1.1, ease:Elastic.easeOut});
};
}
public function get active():Boolean{
return (_active);
}
protected function handleMouseOut(_arg1:MouseEvent):void{
if (_active){
TweenLite.to(this, 1, {scaleX:1, scaleY:1, ease:Elastic.easeOut});
};
}
public function set active(_arg1:Boolean):void{
_active = _arg1;
mouseEnabled = _active;
buttonMode = _active;
}
}
}//package util
Section 46
//ButActivated (util.ButActivated)
package util {
import gs.*;
import flash.display.*;
import gs.easing.*;
public class ButActivated extends But {
public var back:MovieClip;
override public function set active(_arg1:Boolean):void{
_active = _arg1;
this["back"].gotoAndStop((_active) ? 1 : 2);
scaleX = (scaleY = 1.1);
TweenLite.to(this, 1, {scaleX:1, scaleY:1, ease:Elastic.easeOut});
mouseEnabled = _active;
buttonMode = _active;
}
}
}//package util
Section 47
//ColorIndicator (util.ColorIndicator)
package util {
import flash.display.*;
public class ColorIndicator extends MovieClip {
private var _color_mc:MovieClip;
public var color_mc:MovieClip;
private var _color:int;
public function ColorIndicator(){
_color_mc = this["color_mc"];
_color_mc.stop();
}
public function get():int{
return (_color);
}
public function set(_arg1:int):void{
_color = _arg1;
_color_mc.gotoAndStop((_color + 1));
}
}
}//package util
Section 48
//GameData (util.GameData)
package util {
public class GameData {
public const FREEZE_TIME:Number = 5;
public var GENERATE_PERIOD_STEP:int;// = 5
public var COLORS_MAX:int;// = 8
public var WAVE_COLUMN_SIZE:Number;// = 5
public var TIME_BAR_ARR:Array;
public var GENERATE_PERIOD:int;// = 200
public var LINES_COUNT_ARR:Array;
public var GRIDX:int;// = 50
public var GRIDY:int;// = 30
public var UPGRADE:Array;
public var WAVE_INTERVAL:Number;// = 20
public var SPEEDUP_LIMIT:int;// = 500
public var COLORS_COUNT:int;// = 4
public var COLORS_MIN:int;// = 4
public var SPEED:Number;// = 3
public var DIFFICULTY_CORRECTION:int;// = 0
public var LEVELS:int;// = 10
public var GAP:int;// = 0
public var SIZEX:int;// = 8
public var SIZEY:int;// = 17
public var SCORE_STEP:int;// = 3
public var SCORE_MULTIPLIER:int;// = 1
public var GENERATE_PERIOD_MIN:int;// = 20
public var DIFFICULTY_CORRECTION_MAX:int;// = 3
public function GameData(){
LINES_COUNT_ARR = [8, 13, 20, 10, 13, 16, 10, 12, 14, 25];
TIME_BAR_ARR = [10, 8, 6, 10, 9, 8, 11, 10, 9, 8];
UPGRADE = [];
super();
}
}
}//package util
Section 49
//GameSettings (util.GameSettings)
package util {
public class GameSettings {
public static var EASY:String = "easy";
public static var mode:String;
public static var settings:Array;
public static var HARD:String = "hard";
public static var TUTORIAL:String = "tutorial";
public static function init():void{
var _local1:GameData;
settings = new Array();
_local1 = new GameData();
_local1.SPEED = 3;
_local1.GENERATE_PERIOD = 200;
_local1.GENERATE_PERIOD_MIN = 30;
_local1.GENERATE_PERIOD_STEP = 3;
_local1.SPEEDUP_LIMIT = 800;
settings[EASY] = _local1;
_local1 = new GameData();
_local1.SPEED = 3;
_local1.GENERATE_PERIOD = 200;
_local1.GENERATE_PERIOD_MIN = 20;
_local1.GENERATE_PERIOD_STEP = 5;
_local1.SPEEDUP_LIMIT = 400;
_local1.SCORE_MULTIPLIER = 5;
settings[HARD] = _local1;
mode = EASY;
}
public static function get gd():GameData{
return (settings[mode]);
}
}
}//package util
Section 50
//HowPopup (util.HowPopup)
package util {
import flash.events.*;
import flash.display.*;
public class HowPopup extends Popup {
public var pause_icon:MovieClip;
public var _menu_bt:But;
public var ok_bt:continue_cl;
public var menu_bt:menu_cl;
public function HowPopup(){
_menu_bt = this["menu_bt"];
_menu_bt.addEventListener(MouseEvent.CLICK, menuHandler);
}
private function menuHandler(_arg1:MouseEvent):void{
App.clearPause();
App.showMenu();
}
override public function show():void{
MovieClip(this["pause_icon"]).gotoAndPlay(1);
}
override protected function okHandler(_arg1:MouseEvent):void{
App.setPause();
App.showPause();
}
}
}//package util
Section 51
//LineBar (util.LineBar)
package util {
import gs.*;
import flash.display.*;
public class LineBar extends MovieClip {
private var _value:int;
private var _grid:MovieClip;
public var grid:MovieClip;
public function LineBar(){
_grid = this["grid"];
}
public function get value():Number{
return (_value);
}
public function set value(_arg1:Number):void{
_value = _arg1;
TweenLite.to(_grid, 0.65, {y:(_value * GameSettings.gd.GRIDY)});
}
public function initBar(_arg1:Number=60):void{
_value = _arg1;
_grid.y = (value * 30);
}
}
}//package util
Section 52
//LinkManager (util.LinkManager)
package util {
import Playtomic.*;
public class LinkManager {
public static const SQUIRRELSQUARE:String = "squirrelsquare";
public static const SQUIRRELSQUARE_SPLASH:String = "squirrelsquare_splash";
public static const SPONSOR:String = "sponsor";
private static var _squirrel_url:String = "http://www.facebook.com/pages/squirrelsquare/118332848191297";
private static var _sponsor_url:String = "http://www.games1.com/?utm_medium=brandedgames_external&utm_campaign=We-Are-the-Robots-2&utm_source=host&utm_content=ingame";
public static function goToURL(_arg1:String):void{
var _local2 = "";
switch (_arg1){
case SQUIRRELSQUARE:
break;
case SQUIRRELSQUARE_SPLASH:
break;
case SPONSOR:
_local2 = _sponsor_url;
break;
};
if (_local2 != ""){
Link.Open(_local2, _arg1, "");
} else {
Log.CustomMetric(_arg1.toUpperCase());
};
}
}
}//package util
Section 53
//Menu (util.Menu)
package util {
import flash.events.*;
import util.sound.*;
public class Menu extends View {
public var _sound_bt:SoundButton;
public var sound_bt:SoundButton;
public var more_bt:more;
public var logo:logo_cl;
public var _start_bt:But;
public var start_bt:start_cl;
public function Menu(){
_start_bt = this["start_bt"];
_sound_bt = this["sound_bt"];
addEventListener(MouseEvent.CLICK, clickHandler);
}
private function clickHandler(_arg1:MouseEvent):void{
if ((_arg1.target is But)){
trace(But(_arg1.target).name);
switch (But(_arg1.target).name){
case "start_bt":
App.showPlayMenu();
break;
case "more_bt":
LinkManager.goToURL(LinkManager.SPONSOR);
break;
};
};
}
override public function show():void{
_sound_bt.setState();
}
}
}//package util
Section 54
//PlayMenu (util.PlayMenu)
package util {
import Playtomic.*;
import flash.events.*;
public class PlayMenu extends View {
public var new_game_bt:new_game_cl;
public var tutorial_bt:tutorial_cl;
public var continue_bt:continue_cl_2;
public function PlayMenu(){
addEventListener(MouseEvent.CLICK, clickHandler);
}
private function clickHandler(_arg1:MouseEvent):void{
if ((_arg1.target is But)){
Log.CustomMetric(But(_arg1.target).name);
switch (But(_arg1.target).name){
case "new_game_bt":
App.startGame();
break;
case "continue_bt":
if (App._level.value > 0){
App.startNextLevel();
} else {
App.startGame();
};
break;
case "tutorial_bt":
TutorialPopup.initTutorial();
if (App._level.value > 0){
App.startNextLevel();
} else {
App.startGame();
};
break;
};
};
}
}
}//package util
Section 55
//Popup (util.Popup)
package util {
import flash.events.*;
public class Popup extends View {
public var _ok_bt:But;
public function Popup(){
_ok_bt = this["ok_bt"];
_ok_bt.addEventListener(MouseEvent.CLICK, okHandler);
}
protected function okHandler(_arg1:MouseEvent):void{
App.hidePopup(this);
}
}
}//package util
Section 56
//Preloader (util.Preloader)
package util {
import Playtomic.*;
import flash.events.*;
import flash.display.*;
import kongregate.*;
import flash.ui.*;
public class Preloader extends MovieClip {
public var preloaderAnim:MovieClip;
public var bonus_mc:BonusBar;
public static var _loaderInfo:LoaderInfo;
public function Preloader(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4);
stop();
addEventListener(Event.ADDED_TO_STAGE, addedToStage);
}
private function addedToStage(_arg1:Event):void{
stage.scaleMode = StageScaleMode.SHOW_ALL;
this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
SimpleButton(this["preloaderAnim"]["playBt"]).addEventListener(MouseEvent.CLICK, startGame);
SimpleButton(this["preloaderAnim"]["playBt"]).visible = false;
MovieClip(this["preloaderAnim"]["progressBar"]).visible = true;
MovieClip(this["preloaderAnim"]["back"]).buttonMode = true;
MovieClip(this["preloaderAnim"]["back"]).addEventListener(MouseEvent.CLICK, goSponsor);
}
function frame1(){
}
function frame2(){
stop();
}
function frame3(){
stop();
}
private function initPlaytomic():void{
Log.View(3510, "0abcf7dcc30445d1", _loaderInfo.loaderURL);
}
private function initKongregate():void{
var _local1:KongregateAPI = new KongregateAPI();
addChild(_local1);
_local1.init(_loaderInfo);
_local1.addEventListener(Event.COMPLETE, kongComplete);
}
public function getMainLoaderInfo():void{
_loaderInfo = root.loaderInfo;
if (_loaderInfo.loader != null){
_loaderInfo = _loaderInfo.loader.loaderInfo;
};
createContextMenu();
initPlaytomic();
initKongregate();
}
private function createContextMenu():void{
var _local1:ContextMenu = new ContextMenu();
_local1.hideBuiltInItems();
this.contextMenu = _local1;
}
private function onEnterFrame(_arg1:Event):void{
if (_loaderInfo == null){
getMainLoaderInfo();
};
var _local2:int = ((100 * _loaderInfo.bytesLoaded) / _loaderInfo.bytesTotal);
MovieClip(this["preloaderAnim"]["progressBar"]).gotoAndStop(Math.round(_local2));
if (_loaderInfo.bytesLoaded == _loaderInfo.bytesTotal){
MovieClip(this["preloaderAnim"]["progressBar"]).visible = false;
SimpleButton(this["preloaderAnim"]["playBt"]).visible = true;
this.removeEventListener(Event.ENTER_FRAME, onEnterFrame);
};
}
private function goSponsor(_arg1:MouseEvent):void{
LinkManager.goToURL(LinkManager.SPONSOR);
}
private function startGame(_arg1:MouseEvent):void{
gotoAndStop(3);
}
private function kongComplete(_arg1:Event):void{
}
function frame4(){
stop();
}
}
}//package util
Section 57
//ProgressTimeBar (util.ProgressTimeBar)
package util {
import flash.events.*;
import flash.utils.*;
import flash.display.*;
public class ProgressTimeBar extends Sprite {
public var bar_mc:MovieClip;
private var _freeze:MovieClip;
private var _bar:Sprite;
public var wheel:MovieClip;
private var _wheel:MovieClip;
private var _max:int;
private var _freeze_int:Number;// = 0
private var _step:int;
private var _value:int;
private var _active:Boolean;
private var time_int:Number;// = 0
public var freeze_mc:MovieClip;
public function ProgressTimeBar(){
_bar = this["bar_mc"];
_wheel = this["wheel"];
_freeze = this["freeze_mc"];
_freeze.visible = false;
}
public function get active():Boolean{
return (_active);
}
public function stop():void{
if (time_int != 0){
clearInterval(time_int);
time_int = 0;
};
}
public function restart():void{
_bar.scaleX = 0;
value = 0;
active = true;
start();
}
public function init(_arg1:Number=1, _arg2:Number=60):void{
_step = (_arg1 * 1000);
_max = (_arg2 * 1000);
_freeze.visible = false;
_wheel.play();
restart();
}
public function set active(_arg1:Boolean):void{
_active = _arg1;
if (!_active){
unfreeze();
stop();
};
}
public function freeze():void{
stop();
_wheel.stop();
_freeze.visible = true;
_freeze.gotoAndPlay(1);
if (_freeze_int != 0){
clearInterval(time_int);
_freeze_int = 0;
};
_freeze_int = setTimeout(unfreeze, (GameSettings.gd.FREEZE_TIME * 1000));
}
public function update():void{
value = (value + _step);
}
public function start():void{
if (_active){
stop();
time_int = setInterval(update, _step);
};
}
public function backward(_arg1:int):void{
value = (value - (_arg1 * _step));
}
public function set value(_arg1:Number):void{
_value = _arg1;
if (_value < 0){
_value = 0;
};
_bar.scaleX = progress;
if ((((progress >= 1)) && (active))){
active = false;
dispatchEvent(new Event(Event.COMPLETE));
};
}
public function get progress():Number{
return ((_value / _max));
}
public function unfreeze():void{
if (_freeze_int != 0){
clearInterval(time_int);
_freeze_int = 0;
};
start();
_wheel.play();
_freeze.visible = false;
}
public function get value():Number{
return (_value);
}
}
}//package util
Section 58
//RandomArray (util.RandomArray)
package util {
public class RandomArray {
private var _val_arr:Array;
private var _last_value:int;
private var _source_arr:Array;
public function RandomArray(_arg1:int){
_source_arr = [];
var _local2:int;
while (_local2 < _arg1) {
var _temp1 = _local2;
var _temp2 = _local2;
_local2 = (_local2 + 1);
_source_arr[_temp1] = _temp2;
};
getSource();
}
public function get value():int{
if (_val_arr.length == 0){
getSource();
};
var _local1:int = _val_arr.splice(Math.round((Math.random() * (_val_arr.length - 1))), 1)[0];
return (_local1);
}
private function getSource():void{
_val_arr = _source_arr.concat();
}
}
}//package util
Section 59
//ResultLevelPopup (util.ResultLevelPopup)
package util {
import Playtomic.*;
import flash.events.*;
import flash.display.*;
import util.leaderboard.*;
import flash.text.*;
import kongregate.*;
public class ResultLevelPopup extends Popup {
private var _leaderboard:Leaderboard;
public var level_tf:TextField;
public var end_text:MovieClip;
public var ok_bt:menu_result_cl;
public var replay_bt:replay_cl;
public var leaderboard:Leaderboard;
public var next_bt:next_cl;
public function ResultLevelPopup(){
_leaderboard = this["leaderboard"];
this["replay_bt"].addEventListener(MouseEvent.CLICK, replayHandler);
this["next_bt"].addEventListener(MouseEvent.CLICK, nextHandler);
}
override public function show():void{
_leaderboard.init(App._level.value, App._game_score.value);
TextField(this["end_text"]["top_tf"]).htmlText = (("<b>" + String((App._hi_score.value + App._game_score.value))) + "</b>");
TextField(this["level_tf"]).htmlText = (("<b>Level " + App._level.value) + " complete!</b>");
submitKongregate();
}
private function submitKongregate():void{
KongregateAPI.api.stats.submit("Highscore", (App._hi_score.value + App._game_score.value));
}
override protected function okHandler(_arg1:MouseEvent):void{
closeHandler();
}
private function submitHandler(_arg1:MouseEvent=null):void{
Log.CustomMetric("SUBMIT_MINDJOLT");
}
private function nextHandler(_arg1:MouseEvent):void{
App.showNextLevel();
}
private function replayHandler(_arg1:MouseEvent):void{
Log.CustomMetric("replay");
App.replayGame();
}
private function closeHandler():void{
App.showMenu();
}
}
}//package util
Section 60
//ResultPoints (util.ResultPoints)
package util {
import gs.*;
import flash.events.*;
import flash.display.*;
import gs.easing.*;
import flash.text.*;
public class ResultPoints extends MovieClip {
private var _cur_points:Number;
private var _points:Number;
private var _text_tf:TextField;
private var _step:int;
public var text_tf:TextField;
public function ResultPoints(){
this.mouseEnabled = false;
this.mouseChildren = false;
_text_tf = this["text_tf"];
}
private function completePoints(_arg1:Boolean):void{
_text_tf.htmlText = (("<b>" + _points) + "</b>");
if (_arg1){
removeEventListener(Event.ENTER_FRAME, update);
};
scaleX = (scaleY = 1.6);
TweenLite.to(this, 1, {scaleX:1, scaleY:1, ease:Elastic.easeOut});
dispatchEvent(new Event(Event.COMPLETE));
}
public function set points(_arg1:Number):void{
_points = _arg1;
_cur_points = 0;
_step = (_points / 20);
trace(_step);
if ((((_points > 0)) && ((_step > 0)))){
addEventListener(Event.ENTER_FRAME, update);
} else {
completePoints(false);
};
}
public function update(_arg1:Event):void{
if (_cur_points < _points){
_cur_points = (_cur_points + _step);
if (_cur_points > _points){
_cur_points = _points;
};
_text_tf.htmlText = (("<b>" + _cur_points) + "</b>");
} else {
completePoints(true);
};
}
public function get format_points():String{
var _local1:String = String(_cur_points);
while (_local1.length < 7) {
_local1 = ("0" + _local1);
};
return (_local1);
}
}
}//package util
Section 61
//ResultPopup (util.ResultPopup)
package util {
import Playtomic.*;
import flash.events.*;
import flash.display.*;
import util.leaderboard.*;
import flash.text.*;
import kongregate.*;
public class ResultPopup extends Popup {
public var submit_tf:TextField;
public var level_tf:TextField;
public var new_bt:new_cl;
public var ok_bt:menu_result_cl;
public var end_text:MovieClip;
public var replay_bt:replay_cl;
public var leaderboard:Leaderboard;
private var _leaderboard:Leaderboard;
public function ResultPopup(){
_leaderboard = this["leaderboard"];
this["replay_bt"].addEventListener(MouseEvent.CLICK, replayHandler);
this["new_bt"].addEventListener(MouseEvent.CLICK, newHandler);
}
private function replayHandler(_arg1:MouseEvent):void{
Log.CustomMetric("replay");
App.replayGame();
}
override public function show():void{
_leaderboard.init(-1, (App._hi_score.value + App._game_score.value));
submitKongregate();
}
private function closeHandler():void{
App.showMenu();
}
private function submitKongregate():void{
KongregateAPI.api.stats.submit("Highscore", (App._hi_score.value + App._game_score.value));
}
private function pointsComplete(_arg1:Event):void{
}
private function newHandler(_arg1:MouseEvent):void{
App.startGame();
}
override protected function okHandler(_arg1:MouseEvent):void{
closeHandler();
}
private function submitHandler(_arg1:MouseEvent=null):void{
Log.CustomMetric("SUBMIT_MINDJOLT");
}
}
}//package util
Section 62
//ScrollBack (util.ScrollBack)
package util {
import gs.*;
import flash.display.*;
public class ScrollBack extends MovieClip {
private var _begin_offset:Number;// = 0
private var _offset:Number;// = 520
private var _value:Number;
public var plane:MovieClip;
private var _plane:MovieClip;
public function ScrollBack(){
_plane = this["plane"];
}
public function set value(_arg1:Number):void{
_value = _arg1;
TweenLite.to(_plane, 0.65, {y:(-(_value) * 20)});
}
public function get value():Number{
return (_value);
}
public function init(_arg1:int=1):void{
_plane.gotoAndStop(_arg1);
_plane.y = _begin_offset;
_value = 0;
}
}
}//package util
Section 63
//SponsorLogo (util.SponsorLogo)
package util {
import flash.events.*;
import flash.display.*;
public class SponsorLogo extends MovieClip {
public function SponsorLogo(){
buttonMode = true;
addEventListener(MouseEvent.CLICK, handleClick);
}
protected function handleClick(_arg1:MouseEvent):void{
LinkManager.goToURL(LinkManager.SPONSOR);
}
}
}//package util
Section 64
//SqSqLogo (util.SqSqLogo)
package util {
import flash.events.*;
public class SqSqLogo extends But {
override protected function handleClick(_arg1:MouseEvent):void{
super.handleClick(_arg1);
LinkManager.goToURL(LinkManager.SQUIRRELSQUARE);
}
}
}//package util
Section 65
//TutorialPopup (util.TutorialPopup)
package util {
import Playtomic.*;
import flash.events.*;
public class TutorialPopup extends Popup {
public var skip_bt:skip_cl;
public var _skip_bt:But;
public var ok_bt:next_cl_2;
private var tutorial_step_max:int;// = 7
public static var tutorial_repeat:int;
public static var tutorial_step:int;
public static var tutorial:Boolean;
public function TutorialPopup(){
_skip_bt = this["skip_bt"];
_skip_bt.addEventListener(MouseEvent.CLICK, skipHandler);
}
private function skipHandler(_arg1:MouseEvent):void{
Log.CustomMetric("tutorial_skip");
tutorial = false;
App.endTutorial();
}
override public function show():void{
gotoAndStop(tutorial_step);
}
override protected function okHandler(_arg1:MouseEvent):void{
tutorial_step++;
if (tutorial_step == tutorial_step_max){
Log.CustomMetric("tutorial_complete");
};
if (tutorial_step <= tutorial_step_max){
tutorial_repeat = 0;
show();
} else {
tutorial_step = 1;
show();
};
}
public static function initTutorial():void{
tutorial = true;
tutorial_step = 1;
tutorial_repeat = 0;
}
public static function checkTutorial(_arg1:int):void{
if (((tutorial) && ((tutorial_step == _arg1)))){
tutorial_repeat++;
if (tutorial_repeat > 3){
showTutorial();
};
};
}
public static function showTutorial():void{
tutorial_repeat = 0;
App.showTutorial();
}
}
}//package util
Section 66
//UpgradeBut (util.UpgradeBut)
package util {
import gs.*;
import flash.events.*;
import flash.display.*;
import gs.easing.*;
import util.sound.*;
public class UpgradeBut extends But {
private var NEW:String;// = "new"
public var p1:MovieClip;
public var p3:MovieClip;
public var hi:MovieClip;
public var p2:MovieClip;
private var COMPLETE:String;// = "complete"
private var _hi:MovieClip;
private var EMPTY:String;// = "empty"
private var _value:int;
private static const UPGRADE_STEPS:int = 3;
public function UpgradeBut(){
_hi = this["hi"];
}
override public function set active(_arg1:Boolean):void{
_active = _arg1;
mouseEnabled = _active;
buttonMode = _active;
}
override protected function handleClick(_arg1:MouseEvent):void{
if (_active){
TweenLite.to(this, 1, {scaleX:0.9, scaleY:0.9, ease:Elastic.easeOut});
UpgradePopup(parent).initView(true);
value++;
active = false;
_hi.visible = true;
SoundFXController.playFX("button");
};
}
public function clearView():void{
var _local1:int;
while (_local1 < UPGRADE_STEPS) {
this[("p" + (_local1 + 1))].gotoAndStop(EMPTY);
_local1++;
};
}
public function initView():void{
_hi.visible = false;
var _local1:int;
clearView();
while (_local1 < _value) {
this[("p" + (_local1 + 1))].gotoAndStop(COMPLETE);
_local1++;
};
}
public function set value(_arg1:int):void{
if (_arg1 <= UPGRADE_STEPS){
_value = _arg1;
};
active = (_value < UPGRADE_STEPS);
initView();
}
override protected function handleMouseOver(_arg1:MouseEvent):void{
if (_active){
TweenLite.to(this, 1, {scaleX:0.95, scaleY:0.95, ease:Elastic.easeOut});
this[("p" + (_value + 1))].gotoAndStop(NEW);
};
}
public function get value():int{
return (_value);
}
override protected function handleMouseOut(_arg1:MouseEvent):void{
if (_active){
TweenLite.to(this, 1, {scaleX:0.9, scaleY:0.9, ease:Elastic.easeOut});
this[("p" + (_value + 1))].gotoAndStop(EMPTY);
};
}
}
}//package util
Section 67
//UpgradePopup (util.UpgradePopup)
package util {
import flash.events.*;
import flash.display.*;
public class UpgradePopup extends Popup {
public var robot_mc:MovieClip;
public var b1:upgrade_1;
public var help_bt:question_bt;
public var b3:upgrade_3;
public var help_mc:MovieClip;
public var ok_bt:upgrade_cl;
public var b2:upgrade_2;
public var _help_bt:But;
public var _help_mc:MovieClip;
public function UpgradePopup(){
_help_bt = this["help_bt"];
_help_bt.addEventListener(MouseEvent.CLICK, showHelp);
_help_mc = this["help_mc"];
_help_mc.buttonMode = true;
_help_mc.addEventListener(MouseEvent.CLICK, hideHelp);
}
private function hideHelp(_arg1:MouseEvent):void{
_help_mc.visible = false;
}
public function initView(_arg1:Boolean):void{
var _local3:UpgradeBut;
_help_mc.visible = false;
_ok_bt.active = _arg1;
var _local2:int;
while (_local2 < GameSettings.gd.UPGRADE.length) {
_local3 = this[("b" + (_local2 + 1))];
_local3.value = GameSettings.gd.UPGRADE[_local2].value;
_local2++;
};
}
private function showHelp(_arg1:MouseEvent):void{
_help_mc.visible = true;
}
override protected function okHandler(_arg1:MouseEvent):void{
saveData();
App.saveUp();
App.startNextLevel(true);
}
private function saveData():void{
var _local2:UpgradeBut;
var _local1:int;
while (_local1 < GameSettings.gd.UPGRADE.length) {
_local2 = this[("b" + (_local1 + 1))];
GameSettings.gd.UPGRADE[_local1].value = _local2.value;
_local1++;
};
}
override public function show():void{
initView(false);
}
}
}//package util
Section 68
//Util (util.Util)
package util {
import flash.display.*;
public class Util {
public static function isDate(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{
var _local4:Date = new Date();
var _local5:Date = new Date(_arg1, _arg2, _arg3);
return ((_local4.valueOf() < _local5.valueOf()));
}
public static function isDomain(_arg1:String, _arg2:Boolean=false):Boolean{
var _local3:Boolean;
var _local4:LoaderInfo = Preloader._loaderInfo;
var _local5:String = _local4.loaderURL;
var _local6 = (("^http(|s)://(" + _arg1) + ")/");
var _local7:RegExp = new RegExp(_local6, "i");
var _local8:RegExp = new RegExp("^http(|s)://");
_local3 = ((_local7.test(_local5)) || (((_arg2) && (!(_local8.test(_local5))))));
return (_local3);
}
}
}//package util
Section 69
//View (util.View)
package util {
import flash.display.*;
public class View extends MovieClip {
public function hide():void{
}
public function show():void{
}
}
}//package util
Section 70
//Views (util.Views)
package util {
import gs.*;
import flash.display.*;
import game.*;
import gs.easing.*;
public class Views extends MovieClip {
public var game_mc:Game;
public var _game_mc:View;
public var _upgrade_mc:View;
public var _how_mc:View;
public var _play_menu_mc:View;
public var result_level_mc:ResultLevelPopup;
public var tutorial_mc:TutorialPopup;
public var _tutorial_mc:View;
public var upgrade_mc:UpgradePopup;
public var _result_level_mc:View;
public var how_mc:HowPopup;
public var play_menu_mc:PlayMenu;
public var menu_mc:Menu;
public var _menu_mc:View;
public var result_mc:ResultPopup;
public var _result_mc:View;
public function Views(){
_menu_mc = this["menu_mc"];
_game_mc = this["game_mc"];
_result_mc = this["result_mc"];
_how_mc = this["how_mc"];
_play_menu_mc = this["play_menu_mc"];
_tutorial_mc = this["tutorial_mc"];
_upgrade_mc = this["upgrade_mc"];
_result_level_mc = this["result_level_mc"];
hideAll();
}
public function hide(_arg1:View):void{
TweenLite.to(_arg1, 0, {alpha:0});
_arg1.visible = false;
_arg1.x = -600;
}
public function showScreen(_arg1:View):void{
hideAll();
_arg1.show();
show(_arg1);
}
private function hideAll():void{
var _local1:*;
_local1 = 0;
while (_local1 < numChildren) {
hide(View(getChildAt(_local1)));
_local1++;
};
}
public function showPopup(_arg1:View):void{
_arg1.show();
show(_arg1);
}
public function show(_arg1:View):void{
_arg1.alpha = 0;
_arg1.x = -600;
_arg1.visible = true;
TweenLite.to(_arg1, 0.3, {alpha:1, x:0, ease:Quad.easeOut});
}
}
}//package util
Section 71
//back_plane_1_58 (watr2_fla.back_plane_1_58)
package watr2_fla {
import flash.display.*;
public dynamic class back_plane_1_58 extends MovieClip {
public function back_plane_1_58(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package watr2_fla
Section 72
//but_back_activated_163 (watr2_fla.but_back_activated_163)
package watr2_fla {
import flash.display.*;
public dynamic class but_back_activated_163 extends MovieClip {
public function but_back_activated_163(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package watr2_fla
Section 73
//but_backcopy2_122 (watr2_fla.but_backcopy2_122)
package watr2_fla {
import flash.display.*;
public dynamic class but_backcopy2_122 extends MovieClip {
public function but_backcopy2_122(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package watr2_fla
Section 74
//but_backcopy3_135 (watr2_fla.but_backcopy3_135)
package watr2_fla {
import flash.display.*;
public dynamic class but_backcopy3_135 extends MovieClip {
public function but_backcopy3_135(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package watr2_fla
Section 75
//freeze_plane_101 (watr2_fla.freeze_plane_101)
package watr2_fla {
import flash.display.*;
public dynamic class freeze_plane_101 extends MovieClip {
public function freeze_plane_101(){
addFrameScript(14, frame15);
}
function frame15(){
stop();
}
}
}//package watr2_fla
Section 76
//leaderboard_pointer_39 (watr2_fla.leaderboard_pointer_39)
package watr2_fla {
import flash.display.*;
public dynamic class leaderboard_pointer_39 extends MovieClip {
public function leaderboard_pointer_39(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package watr2_fla
Section 77
//line_plane_94 (watr2_fla.line_plane_94)
package watr2_fla {
import flash.display.*;
public dynamic class line_plane_94 extends MovieClip {
public function line_plane_94(){
addFrameScript(0, frame1, 9, frame10);
}
function frame10(){
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package watr2_fla
Section 78
//line_plane_left_92 (watr2_fla.line_plane_left_92)
package watr2_fla {
import flash.display.*;
public dynamic class line_plane_left_92 extends MovieClip {
public function line_plane_left_92(){
addFrameScript(0, frame1, 9, frame10);
}
function frame10(){
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package watr2_fla
Section 79
//line_plane_right_95 (watr2_fla.line_plane_right_95)
package watr2_fla {
import flash.display.*;
public dynamic class line_plane_right_95 extends MovieClip {
public function line_plane_right_95(){
addFrameScript(0, frame1, 9, frame10);
}
function frame10(){
gotoAndStop(1);
}
function frame1(){
stop();
}
}
}//package watr2_fla
Section 80
//logo_anim_40 (watr2_fla.logo_anim_40)
package watr2_fla {
import util.*;
import flash.events.*;
import flash.display.*;
public dynamic class logo_anim_40 extends MovieClip {
public function logo_anim_40(){
addFrameScript(0, frame1, 189, frame190);
}
function frame190(){
MovieClip(parent).play();
}
public function goTo(_arg1:MouseEvent){
LinkManager.goToURL(LinkManager.SQUIRRELSQUARE_SPLASH);
}
function frame1(){
this.buttonMode = true;
this.addEventListener(MouseEvent.CLICK, goTo);
}
}
}//package watr2_fla
Section 81
//pause_anim_154 (watr2_fla.pause_anim_154)
package watr2_fla {
import flash.display.*;
public dynamic class pause_anim_154 extends MovieClip {
public function pause_anim_154(){
addFrameScript(15, frame16);
}
function frame16(){
stop();
}
}
}//package watr2_fla
Section 82
//preloaderMC_3 (watr2_fla.preloaderMC_3)
package watr2_fla {
import flash.display.*;
public dynamic class preloaderMC_3 extends MovieClip {
public var progressBar:MovieClip;
public var back:MovieClip;
public var playBt:SimpleButton;
public function preloaderMC_3(){
addFrameScript(274, frame275);
}
function frame275(){
stop();
}
}
}//package watr2_fla
Section 83
//progressbar_5 (watr2_fla.progressbar_5)
package watr2_fla {
import flash.display.*;
public dynamic class progressbar_5 extends MovieClip {
public function progressbar_5(){
addFrameScript(99, frame100);
}
function frame100(){
stop();
}
}
}//package watr2_fla
Section 84
//Symbol8_48 (watr2_fla.Symbol8_48)
package watr2_fla {
import flash.display.*;
public dynamic class Symbol8_48 extends MovieClip {
public function Symbol8_48(){
addFrameScript(59, frame60);
}
function frame60(){
gotoAndPlay(6);
}
}
}//package watr2_fla
Section 85
//upgrade_point_159 (watr2_fla.upgrade_point_159)
package watr2_fla {
import flash.display.*;
public dynamic class upgrade_point_159 extends MovieClip {
public function upgrade_point_159(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package watr2_fla
Section 86
//westerenka_75 (watr2_fla.westerenka_75)
package watr2_fla {
import flash.display.*;
public dynamic class westerenka_75 extends MovieClip {
public function westerenka_75(){
addFrameScript(0, frame1, 299, frame300);
}
function frame1(){
gotoAndPlay(Math.round(((Math.random() * 200) + 2)));
}
function frame300(){
gotoAndPlay(2);
}
}
}//package watr2_fla
Section 87
//boom (boom)
package {
import flash.media.*;
public dynamic class boom extends Sound {
}
}//package
Section 88
//button (button)
package {
import flash.media.*;
public dynamic class button extends Sound {
}
}//package
Section 89
//complete (complete)
package {
import flash.media.*;
public dynamic class complete extends Sound {
}
}//package
Section 90
//continue_cl (continue_cl)
package {
import util.*;
public dynamic class continue_cl extends But {
}
}//package
Section 91
//continue_cl_2 (continue_cl_2)
package {
import util.*;
public dynamic class continue_cl_2 extends But {
}
}//package
Section 92
//fall (fall)
package {
import flash.media.*;
public dynamic class fall extends Sound {
}
}//package
Section 93
//fallsound1 (fallsound1)
package {
import flash.media.*;
public dynamic class fallsound1 extends Sound {
}
}//package
Section 94
//fallsound2 (fallsound2)
package {
import flash.media.*;
public dynamic class fallsound2 extends Sound {
}
}//package
Section 95
//fallsound3 (fallsound3)
package {
import flash.media.*;
public dynamic class fallsound3 extends Sound {
}
}//package
Section 96
//final (final)
package {
import flash.media.*;
public dynamic class final extends Sound {
}
}//package
Section 97
//freeze (freeze)
package {
import flash.media.*;
public dynamic class freeze extends Sound {
}
}//package
Section 98
//item_bar (item_bar)
package {
import util.*;
public dynamic class item_bar extends ProgressTimeBar {
}
}//package
Section 99
//ItemMark (ItemMark)
package {
import flash.display.*;
public dynamic class ItemMark extends MovieClip {
}
}//package
Section 100
//line1 (line1)
package {
import flash.media.*;
public dynamic class line1 extends Sound {
}
}//package
Section 101
//line2 (line2)
package {
import flash.media.*;
public dynamic class line2 extends Sound {
}
}//package
Section 102
//line3 (line3)
package {
import flash.media.*;
public dynamic class line3 extends Sound {
}
}//package
Section 103
//logo_cl (logo_cl)
package {
import util.*;
public dynamic class logo_cl extends SqSqLogo {
}
}//package
Section 104
//menu_cl (menu_cl)
package {
import util.*;
public dynamic class menu_cl extends But {
}
}//package
Section 105
//menu_result_cl (menu_result_cl)
package {
import util.*;
public dynamic class menu_result_cl extends But {
}
}//package
Section 106
//more (more)
package {
import util.*;
public dynamic class more extends But {
}
}//package
Section 107
//new_cl (new_cl)
package {
import util.*;
public dynamic class new_cl extends But {
}
}//package
Section 108
//new_game_cl (new_game_cl)
package {
import util.*;
public dynamic class new_game_cl extends But {
}
}//package
Section 109
//next_cl (next_cl)
package {
import util.*;
public dynamic class next_cl extends But {
}
}//package
Section 110
//next_cl_2 (next_cl_2)
package {
import util.*;
public dynamic class next_cl_2 extends But {
}
}//package
Section 111
//pause_cl (pause_cl)
package {
import util.*;
public dynamic class pause_cl extends But {
}
}//package
Section 112
//question_bt (question_bt)
package {
import util.*;
public dynamic class question_bt extends But {
}
}//package
Section 113
//rainbow (rainbow)
package {
import flash.media.*;
public dynamic class rainbow extends Sound {
}
}//package
Section 114
//replay_cl (replay_cl)
package {
import util.*;
public dynamic class replay_cl extends But {
}
}//package
Section 115
//skip_cl (skip_cl)
package {
import util.*;
public dynamic class skip_cl extends But {
}
}//package
Section 116
//start_cl (start_cl)
package {
import util.*;
public dynamic class start_cl extends But {
}
}//package
Section 117
//submit_cl (submit_cl)
package {
import util.*;
public dynamic class submit_cl extends ButActivated {
}
}//package
Section 118
//tutorial_cl (tutorial_cl)
package {
import util.*;
public dynamic class tutorial_cl extends But {
}
}//package
Section 119
//upgrade_1 (upgrade_1)
package {
import util.*;
public dynamic class upgrade_1 extends UpgradeBut {
}
}//package
Section 120
//upgrade_2 (upgrade_2)
package {
import util.*;
public dynamic class upgrade_2 extends UpgradeBut {
}
}//package
Section 121
//upgrade_3 (upgrade_3)
package {
import util.*;
public dynamic class upgrade_3 extends UpgradeBut {
}
}//package
Section 122
//upgrade_cl (upgrade_cl)
package {
import util.*;
public dynamic class upgrade_cl extends ButActivated {
}
}//package
Section 123
//wearetherobots (wearetherobots)
package {
import flash.media.*;
public dynamic class wearetherobots extends Sound {
}
}//package
Section 124
//x_cl (x_cl)
package {
import util.*;
public dynamic class x_cl extends But {
}
}//package
Section 125
//youarearobot (youarearobot)
package {
import flash.media.*;
public dynamic class youarearobot extends Sound {
}
}//package