Section 1
//audio_clips_9 (disco_fish_2_fla.audio_clips_9)
package disco_fish_2_fla {
import flash.display.*;
public dynamic class audio_clips_9 extends MovieClip {
public function audio_clips_9(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package disco_fish_2_fla
Section 2
//blue_fish_icon_56 (disco_fish_2_fla.blue_fish_icon_56)
package disco_fish_2_fla {
import flash.display.*;
public dynamic class blue_fish_icon_56 extends MovieClip {
public var body:MovieClip;
}
}//package disco_fish_2_fla
Section 3
//CancelButton_45 (disco_fish_2_fla.CancelButton_45)
package disco_fish_2_fla {
import flash.display.*;
import flash.text.*;
public dynamic class CancelButton_45 extends MovieClip {
public var message_text:TextField;
}
}//package disco_fish_2_fla
Section 4
//damage_meter_37 (disco_fish_2_fla.damage_meter_37)
package disco_fish_2_fla {
import flash.display.*;
public dynamic class damage_meter_37 extends MovieClip {
public var green:MovieClip;
public var yellow:MovieClip;
public var red:MovieClip;
}
}//package disco_fish_2_fla
Section 5
//fish5_20 (disco_fish_2_fla.fish5_20)
package disco_fish_2_fla {
import flash.display.*;
public dynamic class fish5_20 extends MovieClip {
public var body:MovieClip;
}
}//package disco_fish_2_fla
Section 6
//LoadBar_6 (disco_fish_2_fla.LoadBar_6)
package disco_fish_2_fla {
import flash.display.*;
public dynamic class LoadBar_6 extends MovieClip {
public var Fill:MovieClip;
}
}//package disco_fish_2_fla
Section 7
//PointText_54 (disco_fish_2_fla.PointText_54)
package disco_fish_2_fla {
import flash.display.*;
import flash.text.*;
public dynamic class PointText_54 extends MovieClip {
public var PointText:TextField;
}
}//package disco_fish_2_fla
Section 8
//PreloaderScreen_1 (disco_fish_2_fla.PreloaderScreen_1)
package disco_fish_2_fla {
import flash.display.*;
public dynamic class PreloaderScreen_1 extends MovieClip {
public var loader:LoadBarSymbol;
}
}//package disco_fish_2_fla
Section 9
//red_fish_icon_57 (disco_fish_2_fla.red_fish_icon_57)
package disco_fish_2_fla {
import flash.display.*;
public dynamic class red_fish_icon_57 extends MovieClip {
public var body:MovieClip;
}
}//package disco_fish_2_fla
Section 10
//SubmitButton_46 (disco_fish_2_fla.SubmitButton_46)
package disco_fish_2_fla {
import flash.display.*;
import flash.text.*;
public dynamic class SubmitButton_46 extends MovieClip {
public var message_text:TextField;
}
}//package disco_fish_2_fla
Section 11
//yellow_fish_icon_58 (disco_fish_2_fla.yellow_fish_icon_58)
package disco_fish_2_fla {
import flash.display.*;
public dynamic class yellow_fish_icon_58 extends MovieClip {
public var body:MovieClip;
}
}//package disco_fish_2_fla
Section 12
//Background (Background)
package {
import flash.display.*;
public dynamic class Background extends MovieClip {
}
}//package
Section 13
//Bubble (Bubble)
package {
import flash.display.*;
public class Bubble extends MovieClip {
public var _type:int;
public var _speed:Number;
public var _scale:Number;
public var _spawnState:Boolean;// = true
public var _state:String;
public var _scrollOffsetX:Number;
public function Bubble():void{
_spawnState = true;
super();
deactivate();
}
public function shake():void{
x = (x + (((Math.random() * 6) + 1) - 3));
}
public function activate():void{
_state = "Active";
_speed = (((Math.random() * 3) * 1.25) + 4);
x = (Math.random() * 640);
y = (480 + height);
_scale = (((Math.random() * 30) + 30) / 100);
scaleX = _scale;
scaleY = _scale;
alpha = 0.4;
visible = true;
_spawnState = false;
}
public function deactivate():void{
_state = "Inactive";
visible = false;
}
public function update(_arg1:Number):void{
_scrollOffsetX = (GameManager.scrollSpeedX * _arg1);
switch (_state){
case "Active":
x = (x - _scrollOffsetX);
y = (y - _speed);
shake();
if (y < -(height)){
deactivate();
};
break;
};
}
}
}//package
Section 14
//BubbleManager (BubbleManager)
package {
import flash.display.*;
import flash.utils.*;
public class BubbleManager extends MovieClip {
public var active:Array;
public var bubbles:Array;
private var spawnInitTime:Number;
private var spawnDelay:Number;// = 0.25
public function BubbleManager():void{
bubbles = new Array();
active = new Array();
spawnDelay = 0.25;
spawnInitTime = getTimer();
super();
}
public function init(_arg1:Number, _arg2:Array):void{
var _local3:int;
bubbles = _arg2;
_local3 = 0;
while (_local3 < _arg1) {
bubbles[_local3] = new Bubble();
addChild(bubbles[_local3]);
_local3++;
};
}
public function deactivateAllBubbles():void{
var _local1:int;
var _local2:int;
_local2 = bubbles.length;
_local1 = 0;
while (_local1 < _local2) {
bubbles[_local1].deactivate();
bubbles[_local1]._spawnState = true;
_local1++;
};
active = new Array();
}
public function spawn():void{
var bubble_index:int;
bubble_index = inactive_bubble();
if (bubble_index >= 0){
var _local2 = bubbles[bubble_index];
with (_local2) {
activate();
x = (Math.random() * GameManager.screenWidth);
y = (GameManager.screenHeight + height);
_scale = (((Math.random() * 25) + 25) / 100);
scaleX = _scale;
scaleY = _scale;
_scrollOffsetX = 0;
active.push(bubbles[bubble_index]);
};
};
}
public function spawnCheck():void{
if (GameManager.elapsed_time(spawnInitTime) > spawnDelay){
spawnInitTime = getTimer();
spawn();
};
}
public function update(_arg1:Number):void{
var index:int;
var bubble_count:int;
var elapsedTime = _arg1;
bubble_count = active.length;
index = 0;
while (index < bubble_count) {
var _local3 = active[index];
with (_local3) {
if (_state == "Inactive"){
_spawnState = true;
active.splice(index, 1);
index--;
bubble_count--;
} else {
update(elapsedTime);
};
};
index = (index + 1);
};
}
public function inactive_bubble():int{
var _local1:int;
var _local2:int;
var _local3:int;
_local2 = -1;
_local3 = bubbles.length;
_local1 = 0;
while (_local1 < _local3) {
if (bubbles[_local1]._spawnState){
_local2 = _local1;
break;
};
_local1++;
};
return (_local2);
}
}
}//package
Section 15
//CreditsScreen (CreditsScreen)
package {
import flash.events.*;
import flash.display.*;
public class CreditsScreen extends MovieClip {
public var _state:String;
public var Continue:MovieClip;
public function CreditsScreen():void{
x = 0;
y = 0;
_state = "Inactive";
visible = false;
}
public function activate(){
_state = "Active";
visible = true;
}
public function check_rollovers(){
if (Continue.hitTestPoint(mouseX, mouseY)){
Continue.scaleX = 1.25;
Continue.scaleY = 1.25;
} else {
Continue.scaleX = 1;
Continue.scaleY = 1;
};
}
public function menu_mouseUp(_arg1:MouseEvent){
if (Continue.hitTestPoint(_arg1.stageX, _arg1.stageY)){
deactivate();
GameManager.gameState = "MainMenu";
};
}
public function deactivate(){
_state = "Inactive";
visible = false;
}
public function update():void{
switch (_state){
case "Active":
break;
};
}
}
}//package
Section 16
//disco_fish_2 (disco_fish_2)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
import flash.ui.*;
public dynamic class disco_fish_2 extends MovieClip {
public var SandControl:SandManager;
private var UI_MainMenu:MainMenuScreen;
private var UI_Submit:SubmitScoreScreen;
private var percent:int;
private var TheBackground:Background;
private var worm_num:int;// = 0
private var Fish_Count:int;// = 25
public var PropControl:PropManager;
private var UI_Pause:PauseScreen;
public var ScorePopUpControl:ScorePopUpManager;
private var fish_timer:Timer;
public var WormControl:WormManager;
private var UI_Game:GameUIScreen;
private var Worm_Count:int;// = 2
private var TheGulp:Gulp;
private var PlayerFish:Fish;
private var UI_HighScores:HighScoresScreen;
private var worm_timer:Timer;
public var BubbleControl:BubbleManager;
private var Fishes:Array;
public var PopUp_UI:PopUp;
private var FPS_Display:smallzFPS;
private var Bubbles:Array;
private var SandTiles:Array;
public var HighScoreControl:HighScoreManager;
public var PopUps:Array;
private var Props:Array;
public var KeyboardControl:smallzKeyboardManager;
private var TheSwipe:Swipe;
private var UI_HintPrompt:HintPrompt;
public var MessageControl:MessageManager;
private var UI_Instructions:InstructionsScreen;
private var Bubble_Count:int;// = 15
private var Worms:Array;
private var Soundtrack:SoundtrackMusic;
public var FishControl:FishManager;
private var UI_Credits:CreditsScreen;
private var bubble_timer:Timer;
public var load_screen:MovieClip;
public function disco_fish_2(){
Fish_Count = 25;
Worm_Count = 2;
Bubble_Count = 15;
Fishes = new Array();
Worms = new Array();
Bubbles = new Array();
SandTiles = new Array();
Props = new Array();
worm_num = 0;
PopUps = new Array();
super();
addFrameScript(0, frame1, 2, frame3);
trace("disco_fish()");
Security.allowDomain("*");
Security.allowInsecureDomain("*");
Security.loadPolicyFile("http://games.smallzworld.com/crossdomain.xml");
}
public function preload(){
stop();
this.addEventListener(Event.ENTER_FRAME, showProgress);
}
public function initApplication(){
var _local1:int;
Soundtrack = new SoundtrackMusic();
FishControl = new FishManager();
WormControl = new WormManager();
BubbleControl = new BubbleManager();
SandControl = new SandManager();
PropControl = new PropManager();
TheGulp = new Gulp();
TheSwipe = new Swipe();
TheBackground = new Background();
TheBackground.cacheAsBitmap = true;
addChild(TheBackground);
addChild(SandControl);
addChild(PropControl);
UI_Game = new GameUIScreen();
addChild(UI_Game);
addChild(FishControl);
addChild(WormControl);
addChild(BubbleControl);
TheBackground.x = 0;
TheBackground.y = 0;
WormControl.init(Worm_Count, Worms);
FishControl.init(Fish_Count, Fishes);
BubbleControl.init(Bubble_Count, Bubbles);
SandControl.init(2, SandTiles);
PropControl.init(10, Props);
PlayerFish = new Fish();
addChild(PlayerFish);
UI_MainMenu = new MainMenuScreen();
addChild(UI_MainMenu);
UI_Instructions = new InstructionsScreen();
addChild(UI_Instructions);
UI_Credits = new CreditsScreen();
addChild(UI_Credits);
UI_Pause = new PauseScreen();
addChild(UI_Pause);
UI_HighScores = new HighScoresScreen();
addChild(UI_HighScores);
UI_Submit = new SubmitScoreScreen();
addChild(UI_Submit);
UI_HintPrompt = new HintPrompt();
addChild(UI_HintPrompt);
UI_HintPrompt.visible = false;
UI_HintPrompt.x = ((GameManager.screenWidth / 2) - 150);
UI_HintPrompt.y = ((GameManager.screenHeight / 2) - 150);
PopUp_UI = new PopUp();
addChild(PopUp_UI);
ScorePopUpControl = new ScorePopUpManager();
ScorePopUpControl.init(10, PopUps);
addChild(ScorePopUpControl);
HighScoreControl = new HighScoreManager();
KeyboardControl = new smallzKeyboardManager();
addChild(KeyboardControl);
KeyboardControl.init();
MessageControl = new MessageManager();
stage.addEventListener(Event.ENTER_FRAME, main_loop);
stage.addEventListener(MouseEvent.MOUSE_UP, mouse_mouseUp_handler);
stage.focus = this;
addChild(MessageControl.messagePod);
Soundtrack.play(0, 999);
FishControl.updateSpawnSettings(GameManager.level);
}
public function showProgress(_arg1:Event):void{
var _local2:Number;
_local2 = Math.round(((this.loaderInfo.bytesLoaded / this.loaderInfo.bytesTotal) * 100));
load_screen.loader.load_bar.Fill.width = (198 * (_local2 / 100));
trace("Preloading");
if (this.loaderInfo.bytesLoaded == this.loaderInfo.bytesTotal){
trace("Done loading");
this.removeEventListener(Event.ENTER_FRAME, showProgress);
load_screen.visible = false;
showAds();
};
}
function frame3(){
stop();
}
public function showAds(){
stop();
MochiAd.showPreGameAd({clip:root, id:"4883f9835a17896b", res:"640x480", ad_finished:adFinished});
}
function frame1(){
preload();
}
public function mouse_mouseUp_handler(_arg1:MouseEvent){
var _local2:URLRequest;
switch (GameManager.gameState){
case "Game":
break;
case "HintPrompt":
UI_HintPrompt.visible = false;
GameManager.gameState = "Game";
break;
case "MainMenu":
UI_MainMenu.menu_mouseUp(_arg1);
if (MessageControl.messagePod.hitTestPoint(mouseX, mouseY)){
_local2 = new URLRequest(MessageControl.messagePod._linkURL);
navigateToURL(_local2);
trace(("Go to - " + _local2));
};
if (GameManager.gameState != "MainMenu"){
MessageControl.messagePod.visible = false;
};
break;
case "Instructions":
UI_Instructions.menu_mouseUp(_arg1);
break;
case "Credits":
UI_Credits.menu_mouseUp(_arg1);
break;
case "GameOver":
UI_Submit.menu_mouseUp(_arg1);
break;
case "PauseMenu":
UI_Pause.menu_mouseUp(_arg1);
break;
case "HighScores":
UI_HighScores.menu_mouseUp(_arg1);
break;
};
}
public function updateConstantObjects(_arg1:Number):void{
FishControl.spawnCheck();
FishControl.chumSpawnCheck();
WormControl.spawnCheck();
PropControl.spawnCheck();
BubbleControl.spawnCheck();
SandControl.update(_arg1);
PropControl.update(_arg1);
FishControl.update(_arg1);
WormControl.update(_arg1);
BubbleControl.update(_arg1);
}
private function main_loop(_arg1:Event){
var _local2:Number;
var _local3:int;
_local2 = GameManager.clock_pulse();
switch (GameManager.gameState){
case "Mochi":
break;
case "Game":
if (UI_Game._state == "Inactive"){
UI_Game.activate();
PlayerFish.activate();
PlayerFish.setState("Player");
Mouse.hide();
GameManager.levelInitTime = getTimer();
};
if (GameManager.elapsed_time(GameManager.levelInitTime) > GameManager.levelDuration){
GameManager.level++;
GameManager.levelInitTime = getTimer();
};
FishControl.updateSpawnSettings(GameManager.level);
PlayerFish.update_loc(mouseX, mouseY);
updateConstantObjects(_local2);
FishControl.collisionPlayerFish(PlayerFish, TheSwipe, TheGulp, ScorePopUpControl);
WormControl.collisionPlayerFish(PlayerFish, TheGulp);
ScorePopUpControl.update(_local2);
GameManager.decrement_health((5 * _local2));
UI_Game.update_damage_meter((GameManager.health / 100));
UI_Game.score.text = ("Score " + GameManager.playerScore);
if (GameManager.health == 0){
GameManager.gameState = "GameOver";
};
break;
case "MainMenu":
if (UI_MainMenu._state == "Inactive"){
UI_MainMenu.activate();
UI_Game.deactivate();
PlayerFish.deactivate();
Mouse.show();
if (!MessageControl._messageLoaded){
MessageControl.load_message(GameManager.gameID);
};
};
if (MessageControl._messageLoaded){
MessageControl.display_message(163, 145);
};
UI_MainMenu.check_rollovers();
updateConstantObjects(_local2);
break;
case "HintPrompt":
if (!UI_HintPrompt.visible){
UI_HintPrompt.visible = true;
};
if (GameManager.elapsed_time(GameManager.hintInitTime) > GameManager.hintDuration){
UI_HintPrompt.visible = false;
GameManager.gameState = "Game";
};
PropControl.spawnCheck();
BubbleControl.spawnCheck();
SandControl.update(_local2);
PropControl.update(_local2);
BubbleControl.update(_local2);
break;
case "Instructions":
if (UI_Instructions._state == "Inactive"){
UI_Instructions.activate();
PlayerFish.deactivate();
Mouse.show();
};
UI_Instructions.check_rollovers();
updateConstantObjects(_local2);
break;
case "Credits":
if (UI_Credits._state == "Inactive"){
UI_Credits.activate();
PlayerFish.deactivate();
Mouse.show();
};
UI_Credits.check_rollovers();
updateConstantObjects(_local2);
break;
case "GameOver":
if (UI_Submit._state == "Inactive"){
UI_Game.deactivate();
UI_Submit.activate();
PlayerFish.deactivate();
Mouse.show();
};
UI_Submit.check_rollovers();
updateConstantObjects(_local2);
break;
case "PauseMenu":
if (UI_Pause._state == "Inactive"){
UI_Pause.activate();
PlayerFish.deactivate();
Mouse.show();
};
break;
case "SaveHighScore":
HighScoreControl.save_highscore(GameManager.gameID, 0, UI_Submit.user_name.text, GameManager.level, GameManager.playerScore, 0, "No Comment");
break;
case "HighScores":
if (UI_HighScores._state == "Inactive"){
UI_HighScores.activate();
HighScoreControl.load_highscores(GameManager.gameID);
};
if (GameManager._highScoresLoaded){
UI_HighScores.update();
GameManager._highScoresLoaded = false;
};
UI_HighScores.check_rollovers();
break;
case "Reset":
FishControl.deactivateAllFish();
WormControl.deactivateAllWorms();
GameManager.resetGame();
GameManager.hintInitTime = getTimer();
GameManager.gameState = "HintPrompt";
break;
};
}
public function adFinished():void{
load_screen.visible = false;
GameManager.gameState = "MainMenu";
gotoAndPlay(2);
initApplication();
}
}
}//package
Section 17
//Fish (Fish)
package {
import flash.display.*;
public class Fish extends MovieClip {
public var _direction:String;
public var _type:int;
public var _speed:Number;
public var fish:MovieClip;
public var _scale:Number;
public var _rotationSpeed;
public var _color:int;
public var _colorSet:Boolean;
public var _test:String;
public var _spawnState:Boolean;// = true
public var _lastX:Number;// = 0
public var _lastY:Number;// = 0
public var _state:String;
public var _xs:Number;
public var minRadius:Number;// = 25
public var _radius:Number;
public var _originX:Number;
public var _ys:Number;
public var _originY:Number;
public var _chum:Boolean;
public var _scrollOffsetX:Number;// = 0
public var radiusRange:Number;// = 75
public var _angle:Number;
public var _facing:Number;
public function Fish():void{
_lastX = 0;
_lastY = 0;
_scrollOffsetX = 0;
minRadius = 25;
radiusRange = 75;
_spawnState = true;
super();
deactivate();
}
public function activate():void{
_state = "Active";
visible = true;
_spawnState = false;
}
private function random_direction():String{
var _local1:int;
_local1 = int(((Math.random() * 2) + 1));
if (_local1 == 1){
return ("Left");
};
return ("Right");
}
public function deactivate():void{
_state = "Inactive";
visible = false;
_chum = false;
gotoAndStop(1);
}
public function setState(_arg1:String){
if (_chum){
_type = 9;
_color = randomColor();
_scale = 0.5;
_colorSet = false;
} else {
_type = int(((Math.random() * 7) + 2));
_color = 0;
_colorSet = false;
_scale = (((Math.random() * 30) + 35) / 100);
};
_state = _arg1;
switch (_state){
case "Player":
_scale = 0.75;
_type = 1;
break;
case "Straight":
_direction = random_direction();
switch (_direction){
case "Left":
x = (640 + width);
_speed = -(_speed);
break;
case "Right":
x = -(width);
break;
};
y = ((Math.random() * (GameManager.screenWidth - height)) + (height / 2));
break;
case "Sine":
_radius = (minRadius + (Math.random() * radiusRange));
x = (GameManager.screenWidth + width);
_originY = ((Math.random() * (GameManager.screenHeight - (radiusRange * 2))) + radiusRange);
_angle = 0;
break;
case "Circle":
gotoAndStop(_type);
_radius = (minRadius + (Math.random() * radiusRange));
_originX = (GameManager.screenWidth + _radius);
_originY = ((Math.random() * (GameManager.screenHeight - (radiusRange * 2))) + radiusRange);
_angle = (Math.random() * 360);
_scrollOffsetX = 0;
break;
};
gotoAndStop(_type);
scaleX = _scale;
scaleY = _scale;
if ((((_direction == "Right")) && ((_state == "Straight")))){
scaleX = -(_scale);
};
}
public function bob():void{
y = (y + (((Math.random() * 5) + 1) - 3.5));
}
public function update(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
var _local4:Number;
_local4 = (Math.random() * 35);
if (_chum){
if (_color != currentFrame){
if (fish){
fish.gotoAndStop(_color);
_colorSet = true;
};
};
};
switch (_state){
case "Player":
x = stage.mouseX;
y = stage.mouseY;
break;
case "Straight":
_scrollOffsetX = (-(GameManager.scrollSpeedX) * _arg1);
x = (x + ((_speed * _arg1) + _scrollOffsetX));
rotation = 0;
bob();
switch (_direction){
case "Left":
if (x < -(width)){
deactivate();
};
break;
case "Right":
if (x > (640 + width)){
deactivate();
};
break;
};
break;
case "Sine":
_scrollOffsetX = (GameManager.scrollSpeedX * _arg1);
_angle = (_angle + ((_speed * _arg1) / 2));
if (_angle >= 360){
_angle = 0;
};
x = (x - _scrollOffsetX);
y = (_originY + (_radius * Math.sin(((_angle * Math.PI) / 180))));
_facing = smallzMath.get_angle(_lastX, _lastY, x, y);
_local3 = ((_facing / Math.PI) * 180);
if (_angle != 0){
rotation = (_local3 - 180);
};
_lastX = x;
_lastY = y;
if (x < -(width)){
deactivate();
};
break;
case "Circle":
_scrollOffsetX = (_scrollOffsetX - (GameManager.scrollSpeedX * _arg1));
_angle = (_angle + ((_speed * _arg1) / 2));
if (_angle >= 360){
_angle = 0;
};
x = ((_originX + _scrollOffsetX) + (_radius * Math.cos(((_angle * Math.PI) / 180))));
y = (_originY + (_radius * Math.sin(((_angle * Math.PI) / 180))));
_facing = smallzMath.get_angle(_lastX, _lastY, x, y);
_local3 = ((_facing / Math.PI) * 180);
if (_angle != 0){
rotation = (_local3 - 180);
};
_lastX = x;
_lastY = y;
if (x < -(width)){
deactivate();
};
break;
};
}
public function update_loc(_arg1:Number, _arg2:Number):void{
if (Math.abs((_arg1 - x)) > 1){
if (_arg1 > x){
scaleX = -(_scale);
} else {
scaleX = _scale;
};
};
x = _arg1;
y = _arg2;
}
private function randomColor():int{
var _local1:int;
_local1 = (int((Math.random() * 3)) + 1);
return (_local1);
}
private function colorCode(_arg1):String{
var _local2:String;
switch (_arg1){
case 1:
_local2 = "0xFF0000";
break;
case 2:
_local2 = "0xFFFF00";
break;
case 3:
_local2 = "0x0000FF";
break;
};
return (_local2);
}
}
}//package
Section 18
//FishManager (FishManager)
package {
import flash.display.*;
import flash.utils.*;
public class FishManager extends MovieClip {
private var chumPoints:int;// = 50
public var active:Array;
private var fishSpeedMax:Number;// = 500
public var fish:Array;
private var spawnDelayMin:Number;// = 0.3
private var lastColor:int;// = 0
private var spawnDelayDefault:Number;// = 1.25
private var chumSpawnDelay:Number;// = 0.5
private var fishSpeedDefault:Number;// = 150
private var spawnInitTime:Number;
private var fishSpeedIncrement:Number;// = 5
private var multiplier:int;// = 1
private var spawnDelay:Number;
private var fishSpeed:Number;
private var chumSpawnInitTime:Number;
private var fishRotationSpeed:Number;
public function FishManager():void{
fish = new Array();
active = new Array();
spawnDelayDefault = 1.25;
spawnDelayMin = 0.3;
spawnDelay = spawnDelayDefault;
spawnInitTime = getTimer();
chumSpawnDelay = 0.5;
chumSpawnInitTime = getTimer();
fishSpeedDefault = 150;
fishSpeed = fishSpeedDefault;
fishSpeedIncrement = 5;
fishSpeedMax = 500;
multiplier = 1;
lastColor = 0;
chumPoints = 50;
super();
}
public function init(_arg1:Number, _arg2:Array):void{
var _local3:int;
fish = _arg2;
_local3 = 0;
while (_local3 < _arg1) {
fish[_local3] = new Fish();
addChild(fish[_local3]);
fish[_local3]._type = 1;
fish[_local3].gotoAndStop(fish[_local3]._type);
_local3++;
};
}
public function updateSpawnSettings(_arg1:int):void{
if (_arg1 < 0){
_arg1 = 1;
};
spawnDelay = (spawnDelayDefault - (_arg1 * 0.1));
if (spawnDelay < spawnDelayMin){
spawnDelay = spawnDelayMin;
};
fishSpeed = (((Math.random() * 25) + fishSpeedDefault) + (fishSpeedIncrement * _arg1));
if (fishSpeed > fishSpeedMax){
fishSpeed = fishSpeedMax;
};
fishRotationSpeed = (fishSpeed * 0.75);
if (fishRotationSpeed > 150){
fishRotationSpeed = 150;
};
}
public function spawnFish(_arg1:Boolean):void{
var fish_index:int;
var patternIndex:int;
var chumState = _arg1;
fish_index = inactive_fish();
patternIndex = int(((Math.random() * 3) + 1));
if (fish_index >= 0){
active.push(fish[fish_index]);
var _local3 = fish[fish_index];
with (_local3) {
activate();
_chum = chumState;
_speed = fishSpeed;
_rotationSpeed = fishRotationSpeed;
switch (patternIndex){
case 1:
setState("Circle");
break;
case 2:
setState("Straight");
break;
case 3:
setState("Sine");
break;
};
};
};
}
public function deactivateAllFish():void{
var _local1:int;
var _local2:int;
_local2 = fish.length;
_local1 = 0;
while (_local1 < _local2) {
fish[_local1].deactivate();
fish[_local1]._spawnState = true;
_local1++;
};
active = new Array();
}
public function spawnCheck():void{
if (GameManager.elapsed_time(spawnInitTime) > spawnDelay){
spawnInitTime = getTimer();
spawnFish(false);
};
}
public function inactive_fish():int{
var _local1:int;
var _local2:int;
var _local3:int;
_local2 = -1;
_local3 = fish.length;
_local1 = 0;
while (_local1 < _local3) {
if (fish[_local1]._spawnState){
_local2 = _local1;
break;
};
_local1++;
};
return (_local2);
}
public function collisionPlayerFish(_arg1:Fish, _arg2:Swipe, _arg3:Gulp, _arg4:ScorePopUpManager){
var _local5:int;
var _local6:int;
var _local7:Number;
var _local8:Number;
var _local9:int;
_local6 = active.length;
_local7 = _arg1.x;
_local8 = _arg1.y;
_local5 = 0;
while (_local5 < _local6) {
if (active[_local5]._state != "Inactive"){
if (smallzMath.get_distance(active[_local5].x, active[_local5].y, _local7, _local8) < 100){
if (active[_local5].hitTestObject(_arg1)){
if (active[_local5]._chum){
if (lastColor == active[_local5]._color){
multiplier++;
} else {
multiplier = 1;
};
_local9 = (multiplier * chumPoints);
GameManager.increment_score(_local9);
GameManager.increment_health(3);
_arg4.activate(active[_local5].x, active[_local5].y, _local9);
active[_local5].deactivate();
lastColor = active[_local5]._color;
_arg3.play();
} else {
_arg2.play();
GameManager.decrement_health(1.5);
};
};
};
};
_local5++;
};
}
public function update(_arg1:Number):void{
var index:int;
var fish_count:int;
var elapsedTime = _arg1;
fish_count = active.length;
index = 0;
while (index < fish_count) {
var _local3 = active[index];
with (_local3) {
if (_state == "Inactive"){
_spawnState = true;
active.splice(index, 1);
index--;
fish_count--;
} else {
update(elapsedTime);
};
};
index = (index + 1);
};
}
public function chumSpawnCheck():void{
if (GameManager.elapsed_time(chumSpawnInitTime) > chumSpawnDelay){
chumSpawnInitTime = getTimer();
spawnFish(true);
};
}
}
}//package
Section 19
//GameManager (GameManager)
package {
import flash.utils.*;
public class GameManager {
public static var _highScores:Array;
public static var level:int = 1;
public static var levelDuration:Number = 15;
public static var gameID:int = 14;
public static var Debug:Boolean = false;
public static var TheSwipe:Swipe;
public static var clockPulseInitTime:Number = getTimer();
public static var health:Number = 100;
public static var scrollSpeedX:Number = 75;
public static var scrollSpeedY:Number;
public static var levelInitTime:Number;
public static var TheGulp:Gulp;
public static var hintInitTime:Number;
public static var _highScoresLoaded:Boolean = false;
public static var playerScore:uint = 0;
public static var screenHeight:Number = 480;
public static var screenWidth:Number = 640;
public static var hintDuration:Number = 5;
public static var initTime:Number;
public static var gameState:String = "MainMenu";
public function GameManager():void{
}
public static function increment_score(_arg1:uint):void{
playerScore = (playerScore + _arg1);
}
public static function change_gameState(_arg1:String):void{
gameState = _arg1;
}
public static function timeString(_arg1:int):String{
var _local2:int;
var _local3:String;
_local2 = Math.floor((_arg1 / 60));
_arg1 = (_arg1 - (_local2 * 60));
_local3 = ((_local2 + ":") + String((_arg1 + 100)).substr(1, 2));
return (_local3);
}
public static function get_gameState():String{
return (gameState);
}
public static function clock_pulse():Number{
var _local1:Number;
_local1 = elapsed_time(clockPulseInitTime);
clockPulseInitTime = getTimer();
return (_local1);
}
public static function decrement_health(_arg1:Number):void{
health = (health - _arg1);
if (health < 0){
health = 0;
};
}
public static function increment_health(_arg1:Number):void{
health = (health + _arg1);
if (health > 100){
health = 100;
};
}
public static function elapsed_time(_arg1:Number):Number{
var _local2:Number;
_local2 = ((getTimer() - _arg1) / 1000);
return (_local2);
}
public static function resetGame():void{
playerScore = 0;
health = 100;
level = 1;
}
}
}//package
Section 20
//GameUIScreen (GameUIScreen)
package {
import flash.display.*;
import flash.text.*;
public class GameUIScreen extends MovieClip {
public var damage:MovieClip;
public var score:TextField;
public var _state:String;
public function GameUIScreen():void{
x = 0;
y = 0;
deactivate();
}
public function activate(){
_state = "Active";
visible = true;
}
public function deactivate(){
_state = "Inactive";
visible = false;
}
public function update_damage_meter(_arg1:Number):void{
if (_arg1 > 0.66){
damage.green.visible = true;
damage.red.visible = false;
damage.yellow.visible = false;
damage.green.width = (200 * _arg1);
};
if ((((_arg1 > 0.33)) && ((_arg1 <= 0.66)))){
damage.yellow.visible = true;
damage.green.visible = false;
damage.red.visible = false;
damage.yellow.width = (200 * _arg1);
};
if (_arg1 <= 0.33){
damage.red.visible = true;
damage.green.visible = false;
damage.yellow.visible = false;
damage.red.width = (200 * _arg1);
};
}
public function update():void{
switch (_state){
case "Active":
break;
};
}
}
}//package
Section 21
//Gulp (Gulp)
package {
import flash.media.*;
public dynamic class Gulp extends Sound {
}
}//package
Section 22
//HighScoreListingSymbol (HighScoreListingSymbol)
package {
import flash.display.*;
import flash.text.*;
public dynamic class HighScoreListingSymbol extends MovieClip {
public var User:TextField;
public var Rank:TextField;
public var Score:TextField;
}
}//package
Section 23
//HighScoreManager (HighScoreManager)
package {
import flash.events.*;
import flash.net.*;
public class HighScoreManager {
public function HighScoreManager():void{
}
private function highscores_handler(_arg1:Event):void{
var _local2:URLLoader;
var _local3:int;
var _local4:Array;
_local2 = URLLoader(_arg1.target);
_local4 = new Array();
trace("Back");
_local3 = 1;
while (_local3 <= 10) {
if (_local2.data[("Score_" + _local3)]){
_local4[(_local3 - 1)] = new HighScoreRecord(_local3, _local2.data[("User_" + _local3)], _local2.data[("Score_" + _local3)], 0, "");
};
_local3++;
};
GameManager._highScores = _local4;
GameManager._highScoresLoaded = true;
GameManager.gameState = "HighScores";
}
private function save_highscore_handler(_arg1:Event):void{
var _local2:URLLoader;
var _local3:int;
_local2 = URLLoader(_arg1.target);
trace("Back from save high score");
GameManager.gameState = "HighScores";
}
public function load_highscores(_arg1:int){
var _local2:URLRequest;
var _local3:URLVariables;
var _local4:URLLoader;
_local2 = new URLRequest("http://games.smallzworld.com/RecordManagement.php");
_local3 = new URLVariables();
_local3.Routine = "AS3LoadHighScores";
_local3.Game_ID = _arg1;
_local2.data = _local3;
_local4 = new URLLoader();
_local4.dataFormat = URLLoaderDataFormat.VARIABLES;
_local4.addEventListener(Event.COMPLETE, highscores_handler);
_local4.load(_local2);
GameManager.gameState = "Loading";
GameManager._highScoresLoaded = false;
trace("Sent");
}
public function save_highscore(_arg1:int, _arg2:int, _arg3:String, _arg4:int, _arg5:int, _arg6:int, _arg7:String){
var _local8:URLRequest;
var _local9:URLVariables;
var _local10:URLLoader;
_local8 = new URLRequest("http://games.smallzworld.com/RecordManagement.php");
_local9 = new URLVariables();
_local9.Routine = "AddHighScore";
_local9.Game_ID = _arg1;
_local9.Profile_ID = _arg2;
_local9.UserName = _arg3;
_local9.Level = _arg4;
_local9.Score = _arg5;
_local9.TimeScore = _arg6;
_local9.Comment = _arg7;
_local8.data = _local9;
_local10 = new URLLoader();
_local10.dataFormat = URLLoaderDataFormat.VARIABLES;
_local10.addEventListener(Event.COMPLETE, save_highscore_handler);
_local10.load(_local8);
GameManager.gameState = "Saving";
trace("Sent High Score");
}
}
}//package
Section 24
//HighScoreRecord (HighScoreRecord)
package {
public class HighScoreRecord {
public var _comment:String;
public var _level:int;
public var _rank:int;
public var _user:String;
public var _score:Number;
public function HighScoreRecord(_arg1:int, _arg2:String, _arg3:Number, _arg4:int, _arg5:String):void{
_rank = _arg1;
_user = _arg2;
_score = _arg3;
_level = _arg4;
_comment = _arg5;
}
}
}//package
Section 25
//HighScoresScreen (HighScoresScreen)
package {
import flash.events.*;
import flash.display.*;
public class HighScoresScreen extends MovieClip {
public var score_10:HighScoreListingSymbol;
public var _state:String;
public var score_2:HighScoreListingSymbol;
public var score_6:HighScoreListingSymbol;
public var score_7:HighScoreListingSymbol;
public var score_9:HighScoreListingSymbol;
public var score_3:HighScoreListingSymbol;
public var Continue:MovieClip;
public var score_5:HighScoreListingSymbol;
public var score_8:HighScoreListingSymbol;
public var score_1:HighScoreListingSymbol;
public var score_4:HighScoreListingSymbol;
public function HighScoresScreen():void{
x = 0;
y = 0;
_state = "Inactive";
visible = false;
}
public function activate(){
var _local1:int;
_state = "Active";
visible = true;
_local1 = 1;
while (_local1 <= 10) {
this[("score_" + _local1)].visible = false;
_local1++;
};
}
public function check_rollovers(){
if (Continue.hitTestPoint(mouseX, mouseY)){
Continue.scaleX = 1.25;
Continue.scaleY = 1.25;
} else {
Continue.scaleX = 1;
Continue.scaleY = 1;
};
}
public function menu_mouseUp(_arg1:MouseEvent):void{
if (Continue.hitTestPoint(_arg1.stageX, _arg1.stageY)){
deactivate();
GameManager.gameState = "MainMenu";
};
}
public function deactivate(){
_state = "Inactive";
visible = false;
}
public function update():void{
var index:int;
var score_count:int;
var score_index:int;
score_count = GameManager._highScores.length;
index = 0;
while (index < score_count) {
var _local2 = GameManager;
with (_local2) {
score_index = (index + 1);
this[("score_" + score_index)].Rank.text = String(_highScores[index]._rank);
this[("score_" + score_index)].Score.text = String(_highScores[index]._score);
this[("score_" + score_index)].User.text = _highScores[index]._user;
this[("score_" + score_index)].visible = true;
};
index = (index + 1);
};
}
}
}//package
Section 26
//HintPrompt (HintPrompt)
package {
import flash.display.*;
import flash.text.*;
public dynamic class HintPrompt extends MovieClip {
public var message_text:TextField;
}
}//package
Section 27
//InstructionsScreen (InstructionsScreen)
package {
import flash.events.*;
import flash.display.*;
public class InstructionsScreen extends MovieClip {
public var _state:String;
public var Continue:MovieClip;
public function InstructionsScreen():void{
x = 0;
y = 0;
_state = "Inactive";
visible = false;
}
public function activate(){
_state = "Active";
visible = true;
}
public function check_rollovers(){
if (Continue.hitTestPoint(mouseX, mouseY)){
Continue.scaleX = 1.25;
Continue.scaleY = 1.25;
} else {
Continue.scaleX = 1;
Continue.scaleY = 1;
};
}
public function menu_mouseUp(_arg1:MouseEvent){
if (Continue.hitTestPoint(_arg1.stageX, _arg1.stageY)){
deactivate();
GameManager.gameState = "MainMenu";
};
}
public function deactivate(){
_state = "Inactive";
visible = false;
}
public function update():void{
switch (_state){
case "Active":
break;
};
}
}
}//package
Section 28
//LoadBarSymbol (LoadBarSymbol)
package {
import flash.display.*;
public dynamic class LoadBarSymbol extends MovieClip {
public var load_bar:MovieClip;
}
}//package
Section 29
//MainMenuScreen (MainMenuScreen)
package {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public class MainMenuScreen extends MovieClip {
public var PlayGame:MovieClip;
public var HighScores:MovieClip;
public var _state:String;
public var Credits:MovieClip;
public var Instructions:MovieClip;
public var LeaderBoards:MovieClip;
public var Smallzworld:MovieClip;
public function MainMenuScreen():void{
x = 0;
y = 0;
_state = "Inactive";
visible = false;
}
public function activate(){
_state = "Active";
visible = true;
}
public function check_rollovers(){
if (PlayGame.hitTestPoint(mouseX, mouseY)){
PlayGame.scaleX = 1.25;
PlayGame.scaleY = 1.25;
} else {
PlayGame.scaleX = 1;
PlayGame.scaleY = 1;
};
if (Instructions.hitTestPoint(mouseX, mouseY)){
Instructions.scaleX = 1.25;
Instructions.scaleY = 1.25;
} else {
Instructions.scaleX = 1;
Instructions.scaleY = 1;
};
if (Credits.hitTestPoint(mouseX, mouseY)){
Credits.scaleX = 1.25;
Credits.scaleY = 1.25;
} else {
Credits.scaleX = 1;
Credits.scaleY = 1;
};
if (HighScores.hitTestPoint(mouseX, mouseY)){
HighScores.scaleX = 1.25;
HighScores.scaleY = 1.25;
} else {
HighScores.scaleX = 1;
HighScores.scaleY = 1;
};
if (Smallzworld.hitTestPoint(mouseX, mouseY)){
Smallzworld.scaleX = 1.25;
Smallzworld.scaleY = 1.25;
} else {
Smallzworld.scaleX = 1;
Smallzworld.scaleY = 1;
};
if (LeaderBoards.hitTestPoint(mouseX, mouseY)){
LeaderBoards.scaleX = 1.25;
LeaderBoards.scaleY = 1.25;
} else {
LeaderBoards.scaleX = 1;
LeaderBoards.scaleY = 1;
};
}
public function menu_mouseUp(_arg1:MouseEvent){
var _local2:URLRequest;
var _local3:URLRequest;
if (PlayGame.hitTestPoint(_arg1.stageX, _arg1.stageY)){
deactivate();
GameManager.gameState = "Reset";
};
if (Instructions.hitTestPoint(_arg1.stageX, _arg1.stageY)){
deactivate();
GameManager.gameState = "Instructions";
};
if (Credits.hitTestPoint(_arg1.stageX, _arg1.stageY)){
deactivate();
GameManager.gameState = "Credits";
};
if (HighScores.hitTestPoint(_arg1.stageX, _arg1.stageY)){
deactivate();
GameManager.gameState = "HighScores";
};
if (LeaderBoards.hitTestPoint(_arg1.stageX, _arg1.stageY)){
_local2 = new URLRequest(("http://games.smallzworld.com/Main.php?PageType=DisplayHighScores&Game_ID=" + GameManager.gameID));
navigateToURL(_local2);
};
if (Smallzworld.hitTestPoint(_arg1.stageX, _arg1.stageY)){
_local3 = new URLRequest("http://games.smallzworld.com/");
navigateToURL(_local3);
};
}
public function deactivate(){
_state = "Inactive";
visible = false;
}
public function update():void{
switch (_state){
case "Active":
break;
};
}
}
}//package
Section 30
//Message (Message)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
import flash.net.*;
public class Message extends MovieClip {
public var loader:Loader;
public var _messageText:String;
public var message_text:TextField;
public var _imageLoaded:Boolean;// = false
public var _imageURL:String;
public var _state:String;
public var _linkURL:String;
public var image_icon:MovieClip;
public function Message():void{
_imageLoaded = false;
loader = new Loader();
super();
trace("initialize this");
_state = "Inactive";
visible = false;
}
public function activate():void{
_state = "Active";
visible = true;
}
public function deactivate():void{
_state = "Inactive";
visible = false;
}
public function display_message(_arg1:Number, _arg2:Number, _arg3:String, _arg4:String):void{
var _local5:URLRequest;
if (image_icon){
removeChild(image_icon);
};
image_icon = new MovieClip();
addChild(image_icon);
loader = new Loader();
if (_arg4 == ""){
_arg4 = "http://www.smallzworld.com/media/images/avatars/smallz_avatar.jpg";
};
_local5 = new URLRequest((_arg4 + "?hey=1"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, iconLoaded);
activate();
message_text.text = _arg3;
x = _arg1;
y = _arg2;
loader.load(_local5);
trace("make request");
}
private function iconLoaded(_arg1:Event):void{
var _local2:String;
trace("it's loaded");
image_icon.addChild(loader.content);
image_icon.x = 50;
image_icon.y = 40;
_local2 = _imageURL.substr((_imageURL.length - 3), 3);
trace(_local2);
if (_local2 != "swf"){
image_icon.width = 60;
image_icon.height = 60;
};
}
}
}//package
Section 31
//MessageManager (MessageManager)
package {
import flash.events.*;
import flash.net.*;
public class MessageManager {
public var _messageLoaded;// = false
public var messagePod:Message;
public function MessageManager():void{
_messageLoaded = false;
super();
messagePod = new Message();
}
private function message_handler(_arg1:Event):void{
var _local2:URLLoader;
var _local3:int;
_local2 = URLLoader(_arg1.target);
trace("message_handler()");
if (_local2.data.MessageText){
messagePod._messageText = _local2.data.MessageText;
messagePod._linkURL = _local2.data.LinkURL;
messagePod._imageURL = _local2.data.ImageURL;
trace(messagePod._linkURL);
};
_messageLoaded = true;
}
public function load_message(_arg1:int){
var _local2:URLRequest;
var _local3:URLVariables;
var _local4:URLLoader;
_local2 = new URLRequest("http://games.smallzworld.com/RecordManagement.php");
_local3 = new URLVariables();
_local3.Routine = "AS3Message";
_local3.Game_ID = _arg1;
_local2.data = _local3;
_local4 = new URLLoader();
_local4.dataFormat = URLLoaderDataFormat.VARIABLES;
_local4.addEventListener(Event.COMPLETE, message_handler);
_local4.load(_local2);
GameManager.gameState = "MainMenu";
_messageLoaded = false;
trace("load_message()");
}
public function display_message(_arg1:Number, _arg2:Number){
messagePod.display_message(_arg1, _arg2, messagePod._messageText, messagePod._imageURL);
_messageLoaded = false;
}
}
}//package
Section 32
//MochiAd (MochiAd)
package {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
public class MochiAd {
public static function getVersion():String{
return ("2.1");
}
public static function showTimedAd(_arg1:Object):void{
MochiAd.showInterLevelAd(_arg1);
}
public static function _allowDomains(_arg1:String):String{
var _local2:String;
_local2 = _arg1.split("/")[2].split(":")[0];
Security.allowDomain("*");
Security.allowDomain(_local2);
Security.allowInsecureDomain("*");
Security.allowInsecureDomain(_local2);
return (_local2);
}
public static function load(_arg1:Object):MovieClip{
var DEFAULTS:Object;
var clip:Object;
var depth:Number;
var mc:MovieClip;
var wh:Array;
var lv:URLVariables;
var k:String;
var server:String;
var hostname:String;
var lc:LocalConnection;
var name:String;
var loader:Loader;
var f:Function;
var g:Function;
var req:URLRequest;
var v:Object;
var options = _arg1;
DEFAULTS = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
if (!MochiAd._isNetworkAvailable()){
return (null);
};
if (clip._mochiad_loaded){
return (null);
};
depth = options.depth;
delete options.depth;
mc = createEmptyMovieClip(clip, "_mochiad", depth);
wh = MochiAd._getRes(options, clip);
options.res = ((wh[0] + "x") + wh[1]);
options.server = (options.server + options.id);
delete options.id;
clip._mochiad_loaded = true;
if (clip.loaderInfo.loaderURL.indexOf("http") == 0){
options.as3_swf = clip.loaderInfo.loaderURL;
};
lv = new URLVariables();
for (k in options) {
v = options[k];
if (!(v is Function)){
lv[k] = v;
};
};
server = lv.server;
delete lv.server;
hostname = _allowDomains(server);
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.lc = lc;
lv.lc = name;
lv.st = getTimer();
loader = new Loader();
f = function (_arg1:Object):void{
mc._mochiad_ctr_failed = true;
};
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f);
g = function (_arg1:Object):void{
MochiAd.unload(clip);
};
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g);
req = new URLRequest((server + ".swf"));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader.load(req);
mc.addChild(loader);
mc._mochiad_ctr = loader;
return (mc);
}
public static function sendHighScore(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{
var _local4:MovieClip;
_local4 = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id});
if (!_local4){
return (false);
};
_local4.doSend(["sendHighScore", _arg1], _arg2, _arg3);
return (true);
}
public static function _parseOptions(_arg1:Object, _arg2:Object):Object{
var _local3:Object;
var _local4:String;
var _local5:Array;
var _local6:Number;
var _local7:Array;
_local3 = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
if (_arg1){
for (_local4 in _arg1) {
_local3[_local4] = _arg1[_local4];
};
};
_arg1 = _local3.clip.loaderInfo.parameters.mochiad_options;
if (_arg1){
_local5 = _arg1.split("&");
_local6 = 0;
while (_local6 < _local5.length) {
_local7 = _local5[_local6].split("=");
_local3[unescape(_local7[0])] = unescape(_local7[1]);
_local6++;
};
};
return (_local3);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function unload(_arg1:Object):Boolean{
if (((_arg1.clip) && (_arg1.clip._mochiad))){
_arg1 = _arg1.clip;
};
if (!_arg1._mochiad){
return (false);
};
if (_arg1._mochiad.onUnload){
_arg1._mochiad.onUnload();
};
_arg1.removeChild(_arg1._mochiad);
delete _arg1._mochiad_loaded;
delete _arg1._mochiad;
return (true);
}
public static function showInterLevelAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_msec:Number;
var ad_timeout:Number;
var fadeout_time:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{
this.clip.stop();
}, ad_finished:function ():void{
this.clip.play();
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
ad_msec = 11000;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
options.ad_finished();
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number;
_local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = (_arg1 - 250);
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
_local1 = this.parent._mochiad_ctr;
_local2 = (getTimer() - this.started);
_local3 = false;
if (!chk.showing){
_local4 = _local1.loaderInfo.bytesTotal;
if ((((_local4 > 0)) || (("number" == "undefined")))){
chk.showing = true;
chk.started = getTimer();
} else {
if (_local2 > chk.ad_timeout){
_local3 = true;
};
};
};
if ((((_local2 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){
_local3 = true;
};
if (_local3){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function _getRes(_arg1:Object, _arg2:Object):Array{
var _local3:Object;
var _local4:Number;
var _local5:Number;
var _local6:Array;
_local3 = _arg2.getBounds(_arg2.root);
_local4 = 0;
_local5 = 0;
if (typeof(_arg1.res) != "undefined"){
_local6 = _arg1.res.split("x");
_local4 = parseFloat(_local6[0]);
_local5 = parseFloat(_local6[1]);
} else {
_local4 = (_local3.xMax - _local3.xMin);
_local5 = (_local3.yMax - _local3.yMin);
};
if ((((_local4 == 0)) || ((_local5 == 0)))){
_local4 = _arg2.stage.stageWidth;
_local5 = _arg2.stage.stageHeight;
};
return ([_local4, _local5]);
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{
var _local4:MovieClip;
_local4 = new MovieClip();
if (((false) && (_arg3))){
_arg1.addChildAt(_local4, _arg3);
} else {
_arg1.addChild(_local4);
};
_arg1[_arg2] = _local4;
_local4["_name"] = _arg2;
return (_local4);
}
public static function _loadCommunicator(_arg1:Object):MovieClip{
var DEFAULTS:Object;
var clip:Object;
var clipname:String;
var server:String;
var depth:Number;
var mc:MovieClip;
var lv:URLVariables;
var k:String;
var lc:LocalConnection;
var name:String;
var req:URLRequest;
var loader:Loader;
var options = _arg1;
DEFAULTS = {com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
clipname = ("_mochiad_com_" + options.id);
if (!MochiAd._isNetworkAvailable()){
return (null);
};
if (clip[clipname]){
return (clip[clipname]);
};
server = (options.com_server + options.id);
MochiAd._allowDomains(server);
delete options.id;
delete options.com_server;
depth = options.depth;
delete options.depth;
mc = createEmptyMovieClip(clip, clipname, depth);
lv = new URLVariables();
for (k in options) {
lv[k] = options[k];
};
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.name = name;
mc.lc = lc;
lv.lc = name;
mc._id = 0;
mc._queue = [];
mc.rpcResult = function (_arg1:Object):void{
var _local3:Array;
var _local4:Array;
var _local5:Number;
var _local6:Object;
var _local7:Object;
_arg1 = parseInt(_arg1.toString());
_local3 = mc._callbacks[_arg1];
if (typeof(_local3) == "undefined"){
return;
};
delete mc._callbacks[_arg1];
_local4 = [];
_local5 = 2;
while (_local5 < _local3.length) {
_local4.push(_local3[_local5]);
_local5++;
};
_local5 = 1;
while (_local5 < arguments.length) {
_local4.push(arguments[_local5]);
_local5++;
};
_local6 = _local3[1];
_local7 = _local3[0];
if (((_local7) && ((typeof(_local6) == "string")))){
_local6 = _local7[_local6];
};
if (typeof(_local6) == "function"){
_local6.apply(_local7, _local4);
};
};
mc._didConnect = function (_arg1:String):void{
var _local2:Array;
var _local3:Function;
var _local4:Number;
var _local5:Array;
mc._endpoint = _arg1;
_local2 = mc._queue;
delete mc._queue;
_local3 = mc.doSend;
_local4 = 0;
while (_local4 < _local2.length) {
_local5 = _local2[_local4];
_local3.apply(this, _local5);
_local4++;
};
};
mc.doSend = function (_arg1:Array, _arg2:Object, _arg3:Object):void{
var _local5:Number;
var _local6:LocalConnection;
var _local7:Array;
var _local8:Number;
if (mc._endpoint == null){
_local7 = [];
_local8 = 0;
while (_local8 < arguments.length) {
_local7.push(arguments[_local8]);
_local8++;
};
mc._queue.push(_local7);
return;
};
mc._id = (mc._id + 1);
_local5 = mc._id;
mc._callbacks[_local5] = [_arg2, ((_arg3) || (_arg2))];
_local6 = new LocalConnection();
_local6.send(mc._endpoint, "rpc", _local5, _arg1);
};
mc._callbacks = {};
mc._callbacks[0] = [mc, "_didConnect"];
lv.st = getTimer();
req = new URLRequest((server + ".swf"));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader = new Loader();
loader.load(req);
mc.addChild(loader);
mc._mochiad_com = loader;
return (mc);
}
public static function showPreGameAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_msec:Number;
var ad_timeout:Number;
var fadeout_time:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var bar:MovieClip;
var bar_color:Number;
var bar_background:Number;
var bar_outline:Number;
var backing_mc:MovieClip;
var backing:Object;
var inside_mc:MovieClip;
var inside:Object;
var outline_mc:MovieClip;
var outline:Object;
var complete:Boolean;
var unloaded:Boolean;
var f:Function;
var r:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, ad_started:function ():void{
this.clip.stop();
}, ad_finished:function ():void{
this.clip.play();
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
ad_msec = 11000;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
var fn:Function;
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.x = (w * -0.5);
chk.y = (h * -0.5);
bar = createEmptyMovieClip(chk, "_mochiad_bar", 4);
bar.x = 10;
bar.y = (h - 20);
bar_color = options.color;
delete options.color;
bar_background = options.background;
delete options.background;
bar_outline = options.outline;
delete options.outline;
backing_mc = createEmptyMovieClip(bar, "_outline", 1);
backing = backing_mc.graphics;
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo((w - 20), 0);
backing.lineTo((w - 20), 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
inside_mc = createEmptyMovieClip(bar, "_inside", 2);
inside = inside_mc.graphics;
inside.beginFill(bar_color);
inside.moveTo(0, 0);
inside.lineTo((w - 20), 0);
inside.lineTo((w - 20), 10);
inside.lineTo(0, 10);
inside.lineTo(0, 0);
inside.endFill();
inside_mc.scaleX = 0;
outline_mc = createEmptyMovieClip(bar, "_outline", 3);
outline = outline_mc.graphics;
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo((w - 20), 0);
outline.lineTo((w - 20), 10);
outline.lineTo(0, 10);
outline.lineTo(0, 0);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number;
_local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
complete = false;
unloaded = false;
f = function (_arg1:Event):void{
complete = true;
if (unloaded){
MochiAd.unload(clip);
};
};
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
if ((clip.root is MovieClip)){
r = (clip.root as MovieClip);
if (r.framesLoaded >= r.totalFrames){
complete = true;
};
};
mc.unloadAd = function ():void{
unloaded = true;
if (complete){
MochiAd.unload(clip);
};
};
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = _arg1;
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Object;
var _local3:Number;
var _local4:Boolean;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Object;
var _local10:Number;
var _local11:Number;
if (!this.parent.parent){
delete this["onEnterFrame"];
return;
};
_local1 = this.parent.parent.root;
_local2 = this.parent._mochiad_ctr;
_local3 = (getTimer() - this.started);
_local4 = false;
_local5 = _local1.loaderInfo.bytesTotal;
_local6 = _local1.loaderInfo.bytesLoaded;
_local7 = ((100 * _local6) / _local5);
_local8 = ((100 * _local3) / chk.ad_msec);
_local9 = this._mochiad_bar._inside;
_local10 = Math.min(100, Math.min(((_local7) || (0)), _local8));
_local10 = Math.max(this.last_pcnt, _local10);
this.last_pcnt = _local10;
_local9.scaleX = (_local10 * 0.01);
if (!chk.showing){
_local11 = _local2.loaderInfo.bytesTotal;
if ((((_local11 > 0)) || (("number" == "undefined")))){
chk.showing = true;
chk.started = getTimer();
} else {
if (_local3 > chk.ad_timeout){
_local4 = true;
};
};
};
if ((((_local3 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){
_local4 = true;
};
if (((complete) && (_local4))){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function showPreloaderAd(_arg1:Object):void{
MochiAd.showPreGameAd(_arg1);
}
public static function fetchHighScores(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{
var _local4:MovieClip;
_local4 = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id});
if (!_local4){
return (false);
};
_local4.doSend(["fetchHighScores", _arg1], _arg2, _arg3);
return (true);
}
public static function doOnEnterFrame(_arg1:MovieClip):void{
var f:Function;
var mc = _arg1;
f = function (_arg1:Object):void{
if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){
mc.onEnterFrame();
} else {
mc.removeEventListener(Event.ENTER_FRAME, f);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package
Section 33
//MyArial (MyArial)
package {
import flash.text.*;
public dynamic class MyArial extends Font {
}
}//package
Section 34
//PauseScreen (PauseScreen)
package {
import flash.events.*;
import flash.display.*;
public class PauseScreen extends MovieClip {
public var _state:String;
public var Continue:MovieClip;
public function PauseScreen():void{
x = 0;
y = 0;
_state = "Inactive";
visible = false;
}
public function activate(){
_state = "Active";
visible = true;
}
public function menu_mouseUp(_arg1:MouseEvent){
if (Continue.hitTestPoint(_arg1.stageX, _arg1.stageY)){
deactivate();
GameManager.gameState = "MainMenu";
};
}
public function deactivate(){
_state = "Inactive";
visible = false;
}
public function update():void{
switch (_state){
case "Active":
break;
};
}
}
}//package
Section 35
//PopUp (PopUp)
package {
import flash.display.*;
import flash.text.*;
public class PopUp extends MovieClip {
public var box_text:TextField;
public var _scale:Number;
public var _state:String;
public var title_text:TextField;
public var _scaleSpeed:Number;// = 250
public function PopUp():void{
_scaleSpeed = 250;
super();
deactivate();
}
public function activate(_arg1:String, _arg2:String):void{
x = (GameManager.screenWidth / 2);
y = (GameManager.screenHeight / 2);
_state = "Active";
title_text.text = _arg1;
box_text.text = _arg2;
visible = true;
}
public function transition_out():void{
_state = "Shrink";
}
public function transition_in():void{
_scale = 0.01;
scaleX = _scale;
scaleY = _scale;
_state = "Grow";
}
public function deactivate():void{
_state = "Inactive";
visible = false;
}
public function update(_arg1:Number):void{
switch (_state){
case "Active":
break;
case "Grow":
_scale = (_scale + ((_arg1 * _scaleSpeed) / 100));
if (_scale >= 1){
_scale = 1;
_state = "Active";
};
scaleX = _scale;
scaleY = _scale;
break;
case "Shrink":
_scale = (_scale - ((_arg1 * _scaleSpeed) / 100));
if (_scale <= 0.1){
_scale = 1;
deactivate();
};
scaleX = _scale;
scaleY = _scale;
break;
case "Inactive":
break;
};
}
}
}//package
Section 36
//Prop (Prop)
package {
import flash.display.*;
public class Prop extends MovieClip {
public var _type:int;
public var _speed:Number;
public var _scale:Number;
public var _spawnState:Boolean;// = true
public var _state:String;
public var _xs:Number;
public var _scrollOffsetX:Number;
public var _ys:Number;
public function Prop():void{
_spawnState = true;
super();
deactivate();
}
public function activate():void{
_state = "Active";
visible = true;
_spawnState = false;
}
public function deactivate():void{
_state = "Inactive";
visible = false;
}
public function update(_arg1:Number):void{
_scrollOffsetX = (GameManager.scrollSpeedX * _arg1);
switch (_state){
case "Active":
x = (x - _scrollOffsetX);
if (x < -(width)){
deactivate();
};
break;
};
}
}
}//package
Section 37
//PropManager (PropManager)
package {
import flash.display.*;
import flash.utils.*;
public class PropManager extends MovieClip {
public var active:Array;
public var props:Array;
private var spawnInitTime:Number;
private var spawnDelay:Number;// = 1.25
public function PropManager():void{
props = new Array();
active = new Array();
spawnDelay = 1.25;
spawnInitTime = getTimer();
super();
}
public function deactivateAllProps():void{
var _local1:int;
var _local2:int;
_local2 = props.length;
_local1 = 0;
while (_local1 < _local2) {
props[_local1].deactivate();
props[_local1].spawnState = true();
_local1++;
};
active = new Array();
}
public function init(_arg1:Number, _arg2:Array):void{
var _local3:int;
props = _arg2;
_local3 = 0;
while (_local3 < _arg1) {
props[_local3] = new Prop();
addChild(props[_local3]);
props[_local3].gotoAndStop(1);
_local3++;
};
}
public function spawn():void{
var prop_index:int;
prop_index = inactive_prop();
if (prop_index >= 0){
active.push(props[prop_index]);
var _local2 = props[prop_index];
with (_local2) {
activate();
_type = ((Math.random() * 3) + 1);
x = (GameManager.screenWidth + width);
y = (GameManager.screenHeight - ((Math.random() * 50) + 15));
_scale = (((Math.random() * 25) + 25) / 100);
scaleX = _scale;
scaleY = _scale;
props[prop_index].gotoAndStop(_type);
_scrollOffsetX = 0;
};
};
}
public function spawnCheck():void{
if (GameManager.elapsed_time(spawnInitTime) > spawnDelay){
spawnInitTime = getTimer();
spawnDelay = ((Math.random() * 4) + 1);
spawn();
};
}
public function inactive_prop():int{
var _local1:int;
var _local2:int;
var _local3:int;
_local2 = -1;
_local3 = props.length;
_local1 = 0;
while (_local1 < _local3) {
if (props[_local1]._spawnState){
_local2 = _local1;
break;
};
_local1++;
};
return (_local2);
}
public function update(_arg1:Number):void{
var index:int;
var prop_count:int;
var elapsedTime = _arg1;
prop_count = active.length;
index = 0;
while (index < prop_count) {
var _local3 = active[index];
with (_local3) {
if (_state == "Inactive"){
_spawnState = true;
active.splice(index, 1);
index--;
prop_count--;
} else {
update(elapsedTime);
};
};
index = (index + 1);
};
}
}
}//package
Section 38
//Sand (Sand)
package {
import flash.display.*;
public class Sand extends MovieClip {
public var _direction:String;
public var _type:int;
public var _speed:Number;
public var _scale:Number;
public var _state:String;
public var _xs:Number;
public var _scrollOffsetX:Number;
public var _ys:Number;
public var _angle:Number;
public function Sand():void{
deactivate();
}
public function activate():void{
_state = "Active";
visible = true;
}
public function deactivate():void{
_state = "Inactive";
visible = false;
}
public function update(_arg1:Number):void{
_scrollOffsetX = (GameManager.scrollSpeedX * _arg1);
switch (_state){
case "Active":
x = (x - _scrollOffsetX);
break;
};
}
}
}//package
Section 39
//SandManager (SandManager)
package {
import flash.display.*;
import flash.utils.*;
public class SandManager extends MovieClip {
private var spawnInitTime:Number;
public var tiles:Array;
private var spawnDelay:Number;// = 1.25
public function SandManager():void{
tiles = new Array();
spawnDelay = 1.25;
spawnInitTime = getTimer();
super();
}
public function deactivate_all_tile():void{
var _local1:int;
var _local2:int;
_local2 = tiles.length;
_local1 = 0;
while (_local1 < _local2) {
tiles[_local1].deactivate();
_local1++;
};
}
public function inactive_tile():int{
var _local1:int;
var _local2:int;
var _local3:int;
_local2 = -1;
_local3 = tiles.length;
_local1 = 0;
while (_local1 < _local3) {
if (tiles[_local1]._state == "Inactive"){
_local2 = _local1;
break;
};
_local1++;
};
return (_local2);
}
public function init(_arg1:Number, _arg2:Array):void{
var index:int;
var amount = _arg1;
var source_array = _arg2;
tiles = source_array;
index = 0;
while (index < amount) {
tiles[index] = new Sand();
addChild(tiles[index]);
var _local4 = tiles[index];
with (_local4) {
x = (index * width);
if (index == 1){
x = (x - 40);
};
y = ((GameManager.screenHeight - height) + 20);
_scrollOffsetX = 0;
activate();
};
index = (index + 1);
};
}
public function update(_arg1:Number):void{
var _local2:int;
var _local3:int;
_local3 = tiles.length;
_local2 = 0;
while (_local2 < _local3) {
tiles[_local2].update(_arg1);
_local2++;
};
_local2 = 0;
while (_local2 < _local3) {
if (tiles[_local2].x < -(tiles[_local2].width)){
if (_local2 == 0){
tiles[_local2].x = ((tiles[1].x + tiles[1].width) - 40);
} else {
tiles[_local2].x = ((tiles[0].x + tiles[0].width) - 40);
};
};
_local2++;
};
}
}
}//package
Section 40
//ScorePopUp (ScorePopUp)
package {
import flash.display.*;
import classes.smallz.*;
import classes.game.*;
public class ScorePopUp extends MovieClip {
public var _speed;// = 150
public var _state:String;
public var _scoreValue:Number;
public var PointText:MovieClip;
public function ScorePopUp():void{
_speed = 150;
super();
addFrameScript(22, frame23);
deactivate();
}
public function activate():void{
visible = true;
_state = "Active";
}
public function init():void{
_state = "Ready";
}
function frame23(){
this.stop();
}
public function deactivate():void{
_state = "Inactive";
visible = false;
}
public function update(_arg1:Number):void{
switch (_state){
case "Active":
y = (y - (_arg1 * _speed));
if (PointText){
if (PointText.PointText){
PointText.PointText.text = _scoreValue;
};
};
if (currentFrame == totalFrames){
deactivate();
};
break;
};
}
}
}//package
Section 41
//ScorePopUpManager (ScorePopUpManager)
package {
import flash.display.*;
import classes.game.*;
public class ScorePopUpManager extends MovieClip {
public var active:Array;
public var popups:Array;
public var _scale:Number;// = 0.5
public function ScorePopUpManager():void{
popups = new Array();
active = new Array();
_scale = 0.5;
super();
}
public function inactive_popup():int{
var _local1:int;
var _local2:int;
var _local3:int;
_local2 = -1;
_local3 = popups.length;
_local1 = 0;
while (_local1 < _local3) {
if (popups[_local1]._state == "Inactive"){
_local2 = _local1;
break;
};
_local1++;
};
return (_local2);
}
public function activate(_arg1:Number, _arg2:Number, _arg3:Number):void{
var popup_index:int;
var loc_x = _arg1;
var loc_y = _arg2;
var score_value = _arg3;
popup_index = inactive_popup();
active.push(popups[popup_index]);
var _local5 = popups[popup_index];
with (_local5) {
activate();
x = loc_x;
y = loc_y;
scaleX = _scale;
scaleY = _scale;
_scoreValue = score_value;
gotoAndPlay(1);
};
}
public function init(_arg1:int, _arg2:Array){
var _local3:int;
popups = _arg2;
_local3 = 0;
while (_local3 < _arg1) {
popups[_local3] = new ScorePopUp();
addChild(popups[_local3]);
_local3++;
};
}
public function deactivate_all_popups():void{
var _local1:int;
var _local2:int;
_local2 = popups.length;
_local1 = 0;
while (_local1 < _local2) {
popups[_local1].deactivate();
popups[_local1]._spawnState = true;
_local1++;
};
active = new Array();
}
public function update(_arg1:Number):void{
var index:int;
var popup_count:int;
var elapsedTime = _arg1;
popup_count = active.length;
index = 0;
while (index < popup_count) {
var _local3 = active[index];
with (_local3) {
if (_state == "Inactive"){
active.splice(index, 1);
index--;
popup_count--;
} else {
update(elapsedTime);
};
};
index = (index + 1);
};
}
}
}//package
Section 42
//smallzFPS (smallzFPS)
package {
import flash.display.*;
import flash.text.*;
import flash.utils.*;
public class smallzFPS extends MovieClip {
private var _fps:Number;
private var _frameCount:int;
private var _initTime:Number;
private var _sampleSize:int;
public var _fpsCounter:TextField;
private var _curTime:Number;
public function smallzFPS(_arg1:Number, _arg2:Number, _arg3:int):void{
var _local4:Font;
var _local5:TextFormat;
super();
_local4 = new MyArial();
_local5 = new TextFormat();
_local5.font = _local4.fontName;
_local5.bold = true;
_local5.size = 22;
_local5.color = 0xFFFFFF;
_initTime = getTimer();
_sampleSize = _arg3;
_frameCount = 0;
_fps = 0;
_fpsCounter = new TextField();
_fpsCounter.embedFonts = true;
_fpsCounter.defaultTextFormat = _local5;
_fpsCounter.x = _arg1;
_fpsCounter.y = _arg2;
addChild(_fpsCounter);
}
public function get_fps():Number{
return (_fps);
}
public function update(){
var _local1:Number;
_frameCount++;
_curTime = getTimer();
if (_frameCount == _sampleSize){
_local1 = (_curTime - _initTime);
_fps = ((_frameCount / _local1) * 1000);
_initTime = _curTime;
_frameCount = 0;
_fpsCounter.text = String(("FPS : " + int(_fps)));
};
}
}
}//package
Section 43
//smallzKeyboardManager (smallzKeyboardManager)
package {
import flash.events.*;
import flash.display.*;
public class smallzKeyboardManager extends Sprite {
public var pressed:Array;
public function smallzKeyboardManager(){
pressed = new Array();
super();
}
public function init(){
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
}
public function kill(){
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.removeEventListener(KeyboardEvent.KEY_UP, keyReleased);
}
public function isPressed(_arg1:int){
if (pressed.indexOf(_arg1) == -1){
return (false);
};
return (true);
}
public function keyPressed(_arg1:KeyboardEvent){
var _local2:int;
_local2 = pressed.indexOf(_arg1.keyCode);
if (_local2 == -1){
pressed.push(_arg1.keyCode);
};
}
public function keyReleased(_arg1:KeyboardEvent){
var _local2:int;
_local2 = pressed.indexOf(_arg1.keyCode);
if (_local2 != -1){
pressed.splice(_local2, 1);
};
}
}
}//package
Section 44
//smallzMath (smallzMath)
package {
public class smallzMath {
public static function old_get_angle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (Math.atan2((_arg4 - _arg2), (_arg3 - _arg1)));
}
public static function get_angle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (Math.atan2((_arg4 - _arg2), (_arg3 - _arg1)));
}
public static function get_distance(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local5:Number;
_local5 = Math.sqrt((((_arg1 - _arg3) * (_arg1 - _arg3)) + ((_arg2 - _arg4) * (_arg2 - _arg4))));
return (_local5);
}
}
}//package
Section 45
//SoundtrackMusic (SoundtrackMusic)
package {
import flash.media.*;
public dynamic class SoundtrackMusic extends Sound {
}
}//package
Section 46
//SubmitScoreScreen (SubmitScoreScreen)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public class SubmitScoreScreen extends MovieClip {
public var Submit:MovieClip;
public var user_name:TextField;
public var message_text:TextField;
public var score:TextField;
public var Cancel:MovieClip;
public var _state:String;
public function SubmitScoreScreen():void{
x = 0;
y = 0;
_state = "Inactive";
visible = false;
}
public function activate(){
_state = "Active";
visible = true;
score.text = ("Final Score " + String(GameManager.playerScore));
}
public function check_rollovers(){
if (Submit.hitTestPoint(mouseX, mouseY)){
Submit.scaleX = 1.25;
Submit.scaleY = 1.25;
} else {
Submit.scaleX = 1;
Submit.scaleY = 1;
};
if (Cancel.hitTestPoint(mouseX, mouseY)){
Cancel.scaleX = 1.25;
Cancel.scaleY = 1.25;
} else {
Cancel.scaleX = 1;
Cancel.scaleY = 1;
};
}
public function menu_mouseUp(_arg1:MouseEvent){
if (Cancel.hitTestPoint(_arg1.stageX, _arg1.stageY)){
deactivate();
GameManager.gameState = "HighScores";
};
if (((Submit.hitTestPoint(_arg1.stageX, _arg1.stageY)) && (Submit.visible))){
deactivate();
GameManager.gameState = "SaveHighScore";
};
}
public function deactivate(){
_state = "Inactive";
visible = false;
}
public function update():void{
switch (_state){
case "Active":
break;
};
}
}
}//package
Section 47
//Swipe (Swipe)
package {
import flash.media.*;
public dynamic class Swipe extends Sound {
}
}//package
Section 48
//Worm (Worm)
package {
import flash.display.*;
public class Worm extends MovieClip {
public var _direction:String;
public var _type:int;
public var _speed:Number;
public var _scale:Number;
public var _spawnState:Boolean;// = true
public var _state:String;
public var _xs:Number;
public var _scrollOffsetX:Number;
public var _ys:Number;
public var _angle:Number;
public function Worm():void{
_spawnState = true;
super();
_state = "Inactive";
_scale = 0.5;
scaleX = _scale;
scaleY = _scale;
visible = false;
}
public function activate():void{
_state = "Active";
y = ((Math.random() * 280) + 100);
_speed = 50;
_direction = random_direction();
switch (_direction){
case "Left":
x = (640 + width);
_speed = -(_speed);
scaleX = -(_scale);
break;
case "Right":
x = -(width);
scaleX = _scale;
break;
};
visible = true;
_spawnState = false;
}
private function random_direction():String{
var _local1:int;
_local1 = int(((Math.random() * 2) + 1));
if (_local1 == 1){
return ("Left");
};
return ("Right");
}
public function deactivate():void{
_state = "Inactive";
visible = false;
}
public function update(_arg1:Number):void{
_scrollOffsetX = (GameManager.scrollSpeedX * _arg1);
switch (_state){
case "Active":
x = (x + ((_speed * _arg1) + _scrollOffsetX));
if ((((x < -(width))) || ((x > (640 + width))))){
deactivate();
};
break;
};
}
}
}//package
Section 49
//WormManager (WormManager)
package {
import flash.display.*;
import flash.utils.*;
public class WormManager extends MovieClip {
public var active:Array;
public var spliceArray:Array;
private var spawnInitTime:Number;
public var worms:Array;
private var spawnDelay:Number;// = 4
public function WormManager():void{
worms = new Array();
active = new Array();
spliceArray = new Array();
spawnDelay = 4;
spawnInitTime = getTimer();
super();
}
public function init(_arg1:Number, _arg2:Array):void{
var _local3:int;
worms = _arg2;
_local3 = 0;
while (_local3 < _arg1) {
worms[_local3] = new Worm();
addChild(worms[_local3]);
worms[_local3]._type = 1;
worms[_local3].gotoAndStop(worms[_local3]._type);
_local3++;
};
}
public function inactive_worm():int{
var _local1:int;
var _local2:int;
var _local3:int;
_local2 = -1;
_local3 = worms.length;
_local1 = 0;
while (_local1 < _local3) {
if (worms[_local1]._spawnState){
_local2 = _local1;
break;
};
_local1++;
};
return (_local2);
}
public function spawn():void{
var worm_index:int;
worm_index = inactive_worm();
if (worm_index >= 0){
var _local2 = worms[worm_index];
with (_local2) {
activate();
_scrollOffsetX = 0;
active.push(worms[worm_index]);
};
};
}
public function spawnCheck():void{
if (GameManager.elapsed_time(spawnInitTime) > spawnDelay){
spawnInitTime = getTimer();
spawn();
};
}
public function deactivateAllWorms():void{
var _local1:int;
var _local2:int;
_local2 = worms.length;
_local1 = 0;
while (_local1 < _local2) {
worms[_local1].deactivate();
worms[_local1]._spawnState = true;
_local1++;
};
active = new Array();
}
public function collisionPlayerFish(_arg1:Fish, _arg2:Gulp):void{
var _local3:int;
var _local4:int;
_local4 = worms.length;
_local3 = 0;
while (_local3 < _local4) {
if (worms[_local3]._state == "Active"){
if (worms[_local3].hitTestObject(_arg1)){
GameManager.increment_score(25);
GameManager.increment_health(25);
worms[_local3].deactivate();
_arg2.play();
};
};
_local3++;
};
}
public function update(_arg1:Number):void{
var index:int;
var worm_count:int;
var elapsedTime = _arg1;
worm_count = active.length;
index = 0;
while (index < worm_count) {
var _local3 = active[index];
with (_local3) {
if (_state == "Inactive"){
_spawnState = true;
active.splice(index, 1);
index--;
worm_count--;
} else {
update(elapsedTime);
};
};
index = (index + 1);
};
}
}
}//package