Section 1
//KongregateEvent (com.kongregate.as3.client.events.KongregateEvent)
package com.kongregate.as3.client.events {
import flash.events.*;
public class KongregateEvent extends Event {
public static const COMPLETE:String = "component_api_available";
public function KongregateEvent(_arg1:String){
super(_arg1);
}
}
}//package com.kongregate.as3.client.events
Section 2
//AbstractShadowService (com.kongregate.as3.client.services.AbstractShadowService)
package com.kongregate.as3.client.services {
import flash.events.*;
public class AbstractShadowService extends EventDispatcher {
protected function alert(_arg1:String, _arg2:String, _arg3="", _arg4:String=""):void{
trace(((((((("Kongregate API: " + _arg1) + ".") + _arg2) + "(") + _arg3) + ") ") + _arg4));
}
}
}//package com.kongregate.as3.client.services
Section 3
//HighScoreServiceShadow (com.kongregate.as3.client.services.HighScoreServiceShadow)
package com.kongregate.as3.client.services {
public class HighScoreServiceShadow extends AbstractShadowService implements IHighScoreServices {
private var mode:String;
public function HighScoreServiceShadow(){
mode = "";
}
public function submit(_arg1:Number, _arg2:String=null):void{
alert("IHighScoreServices", "submit", arguments);
}
public function connect():Boolean{
alert("IKongregateServices", "connect");
return (true);
}
public function requestList(_arg1:Function):void{
alert("IHighScoreServices", "requestList", "", (("[Mode: " + mode) + "]"));
_arg1({success:false});
}
public function setMode(_arg1:String):void{
alert("IHighScoreServices", "setMode", arguments);
this.mode = _arg1;
}
}
}//package com.kongregate.as3.client.services
Section 4
//IHighScoreServices (com.kongregate.as3.client.services.IHighScoreServices)
package com.kongregate.as3.client.services {
public interface IHighScoreServices {
function setMode(_arg1:String):void;
function submit(_arg1:Number, _arg2:String=null):void;
function requestList(_arg1:Function):void;
}
}//package com.kongregate.as3.client.services
Section 5
//IKongregateServices (com.kongregate.as3.client.services.IKongregateServices)
package com.kongregate.as3.client.services {
import flash.events.*;
public interface IKongregateServices extends IEventDispatcher {
function getPlayerInfo(_arg1:Function):void;
function connect(_arg1:Number=-1):Boolean;
}
}//package com.kongregate.as3.client.services
Section 6
//IStatServices (com.kongregate.as3.client.services.IStatServices)
package com.kongregate.as3.client.services {
public interface IStatServices {
function submitArray(_arg1:Array):void;
function submit(_arg1:String, _arg2:Number):void;
}
}//package com.kongregate.as3.client.services
Section 7
//IUserServices (com.kongregate.as3.client.services.IUserServices)
package com.kongregate.as3.client.services {
public interface IUserServices {
function getName():String;
function getPlayerInfo(_arg1:Function):void;
}
}//package com.kongregate.as3.client.services
Section 8
//KongregateServiceShadow (com.kongregate.as3.client.services.KongregateServiceShadow)
package com.kongregate.as3.client.services {
public class KongregateServiceShadow extends AbstractShadowService implements IKongregateServices {
public function getName():String{
alert("IKongregateServices", "getName");
return ("Guest");
}
public function connect(_arg1:Number=-1):Boolean{
alert("IKongregateServices", "connect", arguments);
return (true);
}
public function getPlayerInfo(_arg1:Function):void{
alert("IKongregateServices", "getPlayerInfo");
_arg1(new Object());
}
}
}//package com.kongregate.as3.client.services
Section 9
//StatServiceShadow (com.kongregate.as3.client.services.StatServiceShadow)
package com.kongregate.as3.client.services {
public class StatServiceShadow extends AbstractShadowService implements IStatServices {
public function submitArray(_arg1:Array):void{
alert("IStatServices", "submitArray", arguments);
}
public function submit(_arg1:String, _arg2:Number):void{
alert("IStatServices", "submitStat", arguments);
}
}
}//package com.kongregate.as3.client.services
Section 10
//UserServiceShadow (com.kongregate.as3.client.services.UserServiceShadow)
package com.kongregate.as3.client.services {
public class UserServiceShadow extends AbstractShadowService implements IUserServices {
public function getName():String{
alert("UserService", "getName");
return ("Guest");
}
public function getPlayerInfo(_arg1:Function):void{
alert("UserService", "getPlayerInfo");
_arg1({isGuest:true, name:"Guest", points:0, level:0, isMode:false, isAdmin:false, isDeveloper:false, avatarPath:"", chatAvatarPath:""});
}
}
}//package com.kongregate.as3.client.services
Section 11
//IAPIBootstrap (com.kongregate.as3.client.IAPIBootstrap)
package com.kongregate.as3.client {
import flash.events.*;
import flash.display.*;
public interface IAPIBootstrap {
function init(_arg1:Event=null, _arg2:Stage=null):void;
function hideLog():void;
function showLog(_arg1:int=0):void;
}
}//package com.kongregate.as3.client
Section 12
//KongregateAPI (com.kongregate.as3.client.KongregateAPI)
package com.kongregate.as3.client {
import flash.events.*;
import flash.display.*;
import com.kongregate.as3.client.events.*;
import com.kongregate.as3.client.services.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
import flash.errors.*;
public class KongregateAPI extends Sprite {
private const VERSION:Number = 1;
private var loader:Loader;
private var loadedDomain:ApplicationDomain;
private static const CLASS_USER:String = "com.kongregate.as3.client.services.UserServices";
private static const CLASS_STATS:String = "com.kongregate.as3.client.services.StatServices";
private static const CLASS_SERVICES:String = "com.kongregate.as3.client.services.KongregateServices";
private static const CLASS_SCORES:String = "com.kongregate.as3.client.services.HighScoreServices";
private static const DEBUG_API_URL:String = "//Linuxpc/kongregate/public/flash/API_AS3.swf";
private static var _connected:Boolean;
private static var kUser:IUserServices;
private static var _loaded:Boolean;
private static var kServices:IKongregateServices;
private static var kScores:IHighScoreServices;
private static var mInstance:KongregateAPI;
private static var kStats:IStatServices;
private static var kAPI:IAPIBootstrap;
public function KongregateAPI(){
if (mInstance != null){
throw (new Error("Warning: KongregateAPI has been added to stage more than once or accessed improperly. Use getInstance() or a stage reference to access."));
};
mInstance = this;
this.addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);
}
public function get loaded():Boolean{
return (_loaded);
}
public function get connected():Boolean{
return (_connected);
}
private function alertConnected(_arg1:TimerEvent=null):void{
var _local2:KongregateEvent;
var _local3:Boolean;
_local2 = new KongregateEvent(KongregateEvent.COMPLETE);
_local3 = this.dispatchEvent(_local2);
}
private function init(_arg1:Event):void{
var _local2:Object;
var _local3:String;
var _local4:URLRequest;
var _local5:LoaderContext;
this.removeEventListener(Event.ADDED_TO_STAGE, init);
_loaded = false;
_connected = false;
_local2 = LoaderInfo(root.loaderInfo).parameters;
_local3 = _local2.api_path;
if (_local3 == null){
trace("Alert: Kongregate API could not be loaded, due to local testing. API will load when the game is uploaded.");
createShadowServices();
return;
};
Security.allowDomain("*.kongregate.com");
Security.allowDomain("kongregatetrunk.com");
_local4 = new URLRequest(_local3);
_local5 = new LoaderContext(false);
_local5.applicationDomain = ApplicationDomain.currentDomain;
_local5.securityDomain = SecurityDomain.currentDomain;
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
loader.load(_local4, _local5);
}
public function get api():IAPIBootstrap{
return (kAPI);
}
private function loadComplete(_arg1:Event):void{
getServices();
}
public function get scores():IHighScoreServices{
return (kScores);
}
private function ioErrorHandler(_arg1:IOErrorEvent):void{
throw (new IOError(("API file not found. " + _arg1)));
}
public function get services():IKongregateServices{
return (kServices);
}
public function get stats():IStatServices{
return (kStats);
}
private function createShadowServices():void{
var _local1:Timer;
trace(">>> Kongregate Shadow Services instantiated for local development..");
kServices = new KongregateServiceShadow();
kScores = new HighScoreServiceShadow();
kStats = new StatServiceShadow();
kUser = new UserServiceShadow();
_local1 = new Timer(200, 1);
_local1.addEventListener(TimerEvent.TIMER_COMPLETE, alertConnected);
_local1.start();
_connected = true;
}
public function get user():IUserServices{
return (kUser);
}
private function getServices():void{
var _local1:ApplicationDomain;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local1 = ApplicationDomain.currentDomain;
kAPI = IAPIBootstrap(loader.getChildAt(0));
this.addChild(loader);
_local2 = _local1.getDefinition(CLASS_SERVICES);
trace(_local2);
kServices = _local2.getInstance();
_local3 = _local1.getDefinition(CLASS_SCORES);
kScores = _local3.getInstance();
_local4 = _local1.getDefinition(CLASS_STATS);
kStats = _local4.getInstance();
_local5 = _local1.getDefinition(CLASS_USER);
kUser = _local5.getInstance();
kServices.connect(VERSION);
_loaded = true;
_connected = true;
alertConnected();
}
public static function getInstance():KongregateAPI{
if (!mInstance){
throw (new IllegalOperationError("You must add the Kongregate API component to the stage before attempting to access it."));
};
return (mInstance);
}
}
}//package com.kongregate.as3.client
Section 13
//GameIntroScreen (com.trickysheep.coral.GUI.UIScreens.GameIntroScreen)
package com.trickysheep.coral.GUI.UIScreens {
import flash.events.*;
import com.trickysheep.coral.GUI.*;
public class GameIntroScreen extends UIScreen {
private function SkipClicked(_arg1:Event){
this.dispatchEvent(new GUIEvent("ButtonClicked"));
this.dispatchEvent(new GUIEvent("GameIntroSkipped"));
}
override protected function InitScreen(){
Interface_mc.skip_btn_mc.hittarget_mc.buttonMode = true;
Interface_mc.skip_btn_mc.hittarget_mc.alpha = 0;
Interface_mc.skip_btn_mc.hittarget_mc.addEventListener(MouseEvent.CLICK, this.SkipClicked);
this.dispatchEvent(new GUIEvent("ScreenInitComplete"));
}
}
}//package com.trickysheep.coral.GUI.UIScreens
Section 14
//GameOverScreen (com.trickysheep.coral.GUI.UIScreens.GameOverScreen)
package com.trickysheep.coral.GUI.UIScreens {
import flash.events.*;
import com.trickysheep.coral.GUI.*;
public class GameOverScreen extends UIScreen {
private function QuitClickedClick(_arg1:Event){
this.dispatchEvent(new GUIEvent("ButtonClicked"));
this.dispatchEvent(new GUIEvent("GameEndingDone"));
}
override protected function InitScreen(){
Interface_mc.quit_btn_mc.hittarget_mc.buttonMode = true;
Interface_mc.quit_btn_mc.hittarget_mc.alpha = 0;
Interface_mc.quit_btn_mc.hittarget_mc.addEventListener(MouseEvent.CLICK, this.QuitClickedClick);
this.dispatchEvent(new GUIEvent("ScreenInitComplete"));
}
}
}//package com.trickysheep.coral.GUI.UIScreens
Section 15
//InGameScreen (com.trickysheep.coral.GUI.UIScreens.InGameScreen)
package com.trickysheep.coral.GUI.UIScreens {
import flash.events.*;
import com.trickysheep.util.*;
import com.trickysheep.coral.GUI.*;
import com.trickysheep.coral.*;
import flash.utils.*;
public class InGameScreen extends UIScreen {
public var InterfaceUpdatable_bool:Boolean;
public var PauseTimer:Timer;
public var ConfirmIsShowing_bool:Boolean;
public var MenuIsShowing_bool:Boolean;
private function LostClickedClick(_arg1:Event){
this.dispatchEvent(new GUIEvent("DEBUG_GameLost"));
}
private function QuitCancelClickedClick(_arg1:Event){
this.dispatchEvent(new GUIEvent("ButtonClicked"));
HideQuitOptions();
}
public function HideQuitOptions(){
MenuIsShowing_bool = false;
Interface_mc.quit_confirm_mc.visible = false;
}
private function QuitConfirmClickedClick(_arg1:Event){
this.dispatchEvent(new GUIEvent("ButtonClicked"));
Interface_mc.pause_menu_mc.visible = false;
Interface_mc.quit_confirm_mc.visible = false;
this.dispatchEvent(new GUIEvent("QuitGame"));
}
private function PlayClickedClick(_arg1:Event){
this.dispatchEvent(new GUIEvent("DEBUG_GameWon"));
}
override public function Show(){
var _local1:*;
trace("SHOW INGAME");
Interface_mc.visible = true;
MenuIsShowing_bool = false;
ConfirmIsShowing_bool = false;
if (myGameState.CurrentStage_num != 99){
Interface_mc.coral_meter_mc.gotoAndPlay("in");
Interface_mc.coral_meter_mc.coral_meter_bar_mc.gotoAndStop(1);
Interface_mc.coral_meter_mc.visible = true;
Interface_mc.ScoreTextTarget_mc.visible = true;
_local1 = 0;
while (_local1 < 5) {
Interface_mc[(("InfoTextTarget_" + _local1) + "_mc")].visible = true;
_local1++;
};
} else {
Interface_mc.coral_meter_mc.gotoAndStop(1);
Interface_mc.coral_meter_mc.visible = false;
Interface_mc.ScoreTextTarget_mc.visible = false;
_local1 = 0;
while (_local1 < 5) {
Interface_mc[(("InfoTextTarget_" + _local1) + "_mc")].visible = false;
_local1++;
};
};
Interface_mc.pause_menu_btn_mc.visible = true;
InterfaceUpdatable_bool = true;
UpdateInterface();
}
override public function Out(){
var _local1:*;
InterfaceUpdatable_bool = false;
Interface_mc.pause_menu_btn_mc.visible = false;
Interface_mc.coral_meter_mc.gotoAndPlay("out");
Interface_mc.ScoreTextTarget_mc.visible = false;
_local1 = 0;
while (_local1 < 5) {
Interface_mc[(("InfoTextTarget_" + _local1) + "_mc")].visible = false;
_local1++;
};
PauseTimer.addEventListener(TimerEvent.TIMER, this.OutPauseTimerHandler);
PauseTimer.start();
}
public function HidePauseMenu(){
MenuIsShowing_bool = false;
Interface_mc.pause_menu_mc.visible = false;
Interface_mc.pause_menu_btn_mc.visible = true;
}
private function PauseMenuClick(_arg1:Event){
this.dispatchEvent(new GUIEvent("ButtonClicked"));
this.dispatchEvent(new GUIEvent("PauseGame"));
ShowPauseMenu();
}
override protected function InitScreen(){
var _local1:*;
var _local2:HandFace;
var _local3:*;
Interface_mc.mouseEnabled = false;
Interface_mc.pause_menu_btn_mc.hittarget_mc.buttonMode = true;
Interface_mc.pause_menu_btn_mc.hittarget_mc.alpha = 0;
Interface_mc.pause_menu_btn_mc.hittarget_mc.addEventListener(MouseEvent.CLICK, this.PauseMenuClick);
Interface_mc.quit_confirm_mc.visible = false;
Interface_mc.pause_menu_mc.visible = false;
Interface_mc.quit_confirm_mc.yes_quit_btn_mc.buttonMode = true;
Interface_mc.quit_confirm_mc.yes_quit_btn_mc.addEventListener(MouseEvent.CLICK, this.QuitConfirmClickedClick);
Interface_mc.quit_confirm_mc.no_quit_btn_mc.buttonMode = true;
Interface_mc.quit_confirm_mc.no_quit_btn_mc.addEventListener(MouseEvent.CLICK, this.QuitCancelClickedClick);
Interface_mc.pause_menu_mc.symbols_btn_mc.buttonMode = true;
Interface_mc.pause_menu_mc.symbols_btn_mc.addEventListener(MouseEvent.CLICK, this.SymbolToggleClickedClick);
Interface_mc.pause_menu_mc.music_toggle_btn_mc.buttonMode = true;
Interface_mc.pause_menu_mc.music_toggle_btn_mc.addEventListener(MouseEvent.CLICK, this.MusicToggleClickedClick);
Interface_mc.pause_menu_mc.sound_toggle_btn_mc.buttonMode = true;
Interface_mc.pause_menu_mc.sound_toggle_btn_mc.addEventListener(MouseEvent.CLICK, this.SoundToggleClickedClick);
Interface_mc.pause_menu_mc.quit_btn_mc.buttonMode = true;
Interface_mc.pause_menu_mc.quit_btn_mc.addEventListener(MouseEvent.CLICK, this.QuitClick);
Interface_mc.pause_menu_mc.continue_btn_mc.buttonMode = true;
Interface_mc.pause_menu_mc.continue_btn_mc.addEventListener(MouseEvent.CLICK, this.ContinueClicked);
Interface_mc.ScoreTextTarget_mc.mouseEnabled = false;
Interface_mc.ScoreTextTarget_mc.mouseChildren = false;
Interface_mc.ScoreTextTarget_mc.selectable = false;
Interface_mc.ScoreTextTarget_mc.visible = false;
_local1 = 0;
while (_local1 < 5) {
_local3 = Interface_mc[(("InfoTextTarget_" + _local1) + "_mc")];
_local3.mouseEnabled = false;
_local3.mouseChildren = false;
_local3.selectable = false;
_local3.visible = false;
_local1++;
};
_local2 = HandFace.getInstance();
_local2.CreateHandTextField("Score", Interface_mc.ScoreTextTarget_mc, "SCORE");
_local1 = 0;
while (_local1 < 5) {
_local2.CreateHandTextField(("InfoText_" + _local1), Interface_mc[(("InfoTextTarget_" + _local1) + "_mc")], "INFO");
_local1++;
};
Interface_mc.coral_meter_mc.mouseEnabled = false;
Interface_mc.coral_meter_mc.mouseChildren = false;
PauseTimer = new Timer(500);
this.dispatchEvent(new GUIEvent("ScreenInitComplete"));
}
override public function UpdateInterface(){
var _local1:Number;
var _local2:*;
var _local3:*;
var _local4:String;
var _local5:String;
var _local6:Array;
var _local7:*;
if (InterfaceUpdatable_bool){
_local1 = 0;
_local1 = (myGameState.CurrentLevelHealth_int / myGameState.CurrentLevel.HealthRequired_num);
_local2 = Interface_mc.coral_meter_mc.coral_meter_bar_mc.currentFrame;
_local3 = Math.ceil((_local1 * 100));
if (_local2 < _local3){
Interface_mc.coral_meter_mc.coral_meter_bar_mc.gotoAndStop((_local2 + 1));
} else {
if (_local3 < _local2){
Interface_mc.coral_meter_mc.coral_meter_bar_mc.gotoAndStop((_local2 - 1));
};
};
_local4 = myGameState.NumberToCommaString(myGameState.TotalScore_int);
_local5 = myGameState.getScoreInfoString();
_local6 = _local5.split("\n");
HandFace.getInstance().SetHandTextFieldContents("Score", _local4);
_local7 = 0;
while (_local7 < 5) {
HandFace.getInstance().SetHandTextFieldContents(("InfoText_" + _local7), _local6[_local7]);
_local7++;
};
if (myGameState.BetweenLevels_bool){
Interface_mc.pause_menu_mc.visible = false;
Interface_mc.quit_confirm_mc.visible = false;
Interface_mc.pause_menu_btn_mc.visible = false;
};
if (MenuIsShowing_bool){
if (GameSettings.getInstance().getColorBlindMode()){
Interface_mc.pause_menu_mc.symbols_check_box_mc.gotoAndStop("on");
Interface_mc.pause_menu_mc.symbols_example_mc.gotoAndStop("on");
} else {
Interface_mc.pause_menu_mc.symbols_check_box_mc.gotoAndStop("off");
Interface_mc.pause_menu_mc.symbols_example_mc.gotoAndStop("off");
};
if (GameSettings.getInstance().getSoundOn()){
Interface_mc.pause_menu_mc.sound_check_box_mc.gotoAndStop("on");
} else {
Interface_mc.pause_menu_mc.sound_check_box_mc.gotoAndStop("off");
};
if (GameSettings.getInstance().getMusicOn()){
Interface_mc.pause_menu_mc.music_check_box_mc.gotoAndStop("on");
} else {
Interface_mc.pause_menu_mc.music_check_box_mc.gotoAndStop("off");
};
};
};
}
public function ShowPauseMenu(){
MenuIsShowing_bool = true;
UpdateInterface();
Interface_mc.pause_menu_mc.visible = true;
Interface_mc.pause_menu_btn_mc.visible = false;
}
private function QuitClick(_arg1:Event){
this.dispatchEvent(new GUIEvent("ButtonClicked"));
ShowQuitOptions();
}
private function ContinueClicked(_arg1:Event){
this.dispatchEvent(new GUIEvent("ButtonClicked"));
this.dispatchEvent(new GUIEvent("UnPauseGame"));
HidePauseMenu();
}
private function SoundToggleClickedClick(_arg1:Event){
if (GameSettings.getInstance().getSoundOn()){
this.dispatchEvent(new GUIEvent("TurnSoundOff"));
} else {
this.dispatchEvent(new GUIEvent("TurnSoundOn"));
};
this.dispatchEvent(new GUIEvent("ButtonClicked"));
UpdateInterface();
}
public function OutPauseTimerHandler(_arg1:TimerEvent):void{
PauseTimer.stop();
PauseTimer.removeEventListener(TimerEvent.TIMER, this.OutPauseTimerHandler);
this.dispatchEvent(new GUIEvent("ScreenOutFinished"));
}
private function SymbolToggleClickedClick(_arg1:Event){
this.dispatchEvent(new GUIEvent("ButtonClicked"));
GameSettings.getInstance().toggleColorBlindMode();
UpdateInterface();
}
public function ShowQuitOptions(){
ConfirmIsShowing_bool = true;
UpdateInterface();
Interface_mc.quit_confirm_mc.visible = true;
}
private function TestClickedClick(_arg1:Event){
this.dispatchEvent(new GUIEvent("DEBUG_Test"));
}
private function MusicToggleClickedClick(_arg1:Event){
this.dispatchEvent(new GUIEvent("ButtonClicked"));
if (GameSettings.getInstance().getMusicOn()){
this.dispatchEvent(new GUIEvent("TurnMusicOff"));
} else {
this.dispatchEvent(new GUIEvent("TurnMusicOn"));
};
UpdateInterface();
}
}
}//package com.trickysheep.coral.GUI.UIScreens
Section 16
//LevelIntroScreen (com.trickysheep.coral.GUI.UIScreens.LevelIntroScreen)
package com.trickysheep.coral.GUI.UIScreens {
import flash.events.*;
import com.trickysheep.coral.GUI.*;
import flash.utils.*;
public class LevelIntroScreen extends UIScreen {
var PauseTimer:Timer;
public function PauseTimerHandler(_arg1:TimerEvent):void{
PauseTimer.stop();
LevelIntroDone();
}
public function StartLevelIntroOutAnim(){
Interface_mc.level_intro_mc.message_txt.visible = false;
Interface_mc.level_intro_mc.gotoAndPlay("out");
}
private function LevelIntroDone(){
this.dispatchEvent(new GUIEvent("LevelIntroDone"));
}
override public function Show(){
Interface_mc.level_intro_mc.visible = false;
Interface_mc.visible = true;
StartLevelInfoInAnim();
}
public function StartLevelInfoInAnim(){
Interface_mc.level_intro_mc.addEventListener("ANIM_DONE", this.LevelInfoAnimFinished);
Interface_mc.level_intro_mc.gotoAndPlay("in");
Interface_mc.level_intro_mc.message_txt.visible = false;
Interface_mc.level_intro_mc.visible = true;
}
override public function Out(){
PauseTimer.stop();
Interface_mc.level_intro_mc.addEventListener("ANIM_DONE", this.LevelInfoOutAnimFinished);
StartLevelIntroOutAnim();
}
public function LevelInfoAnimFinished(_arg1:Event){
Interface_mc.level_intro_mc.removeEventListener("ANIM_DONE", this.LevelInfoAnimFinished);
Interface_mc.level_intro_mc.message_txt.text = myGameState.getCurrentLevelString();
Interface_mc.level_intro_mc.message_txt.visible = true;
PauseTimer = new Timer(1500);
PauseTimer.addEventListener(TimerEvent.TIMER, this.PauseTimerHandler);
PauseTimer.start();
}
override protected function InitScreen(){
this.dispatchEvent(new GUIEvent("ScreenInitComplete"));
}
public function LevelInfoOutAnimFinished(_arg1:Event){
Interface_mc.level_intro_mc.removeEventListener("ANIM_DONE", this.LevelInfoOutAnimFinished);
this.dispatchEvent(new GUIEvent("ScreenOutFinished"));
}
}
}//package com.trickysheep.coral.GUI.UIScreens
Section 17
//LevelOverScreen (com.trickysheep.coral.GUI.UIScreens.LevelOverScreen)
package com.trickysheep.coral.GUI.UIScreens {
import flash.events.*;
import com.trickysheep.coral.GUI.*;
import flash.utils.*;
public class LevelOverScreen extends UIScreen {
var PauseTimer:Timer;
public function PauseTimerHandler(_arg1:TimerEvent):void{
PauseTimer.stop();
StartNextLevel();
}
private function PlayClickedClick(_arg1:Event){
StartNextLevel();
}
private function TryAgainClickedClick(_arg1:Event){
this.dispatchEvent(new GUIEvent("RetryLevel"));
}
private function StartNextLevel(){
this.dispatchEvent(new GUIEvent("StartNextLevel"));
}
private function QuitClickedClick(_arg1:Event){
this.dispatchEvent(new GUIEvent("GotoMainMenu"));
}
override protected function InitScreen(){
Interface_mc.next_btn_mc.visible = false;
Interface_mc.try_again_btn_mc.visible = false;
Interface_mc.quit_btn_mc.visible = false;
if (myGameState.CurrentLevelWon_bool){
Interface_mc.message_txt.text = "";
} else {
Interface_mc.message_txt.text = (("YOU LOST LEVEL " + myGameState.getCurrentLevelString()) + ". :(");
Interface_mc.try_again_btn_mc.label_txt.text = "TRY AGAIN";
Interface_mc.try_again_btn_mc.hittarget_mc.buttonMode = true;
Interface_mc.try_again_btn_mc.hittarget_mc.alpha = 0;
Interface_mc.try_again_btn_mc.hittarget_mc.addEventListener(MouseEvent.CLICK, this.TryAgainClickedClick);
Interface_mc.try_again_btn_mc.visible = true;
Interface_mc.quit_btn_mc.label_txt.text = "QUIT";
Interface_mc.quit_btn_mc.hittarget_mc.buttonMode = true;
Interface_mc.quit_btn_mc.hittarget_mc.alpha = 0;
Interface_mc.quit_btn_mc.hittarget_mc.addEventListener(MouseEvent.CLICK, this.QuitClickedClick);
Interface_mc.quit_btn_mc.visible = true;
};
this.dispatchEvent(new GUIEvent("ScreenInitComplete"));
}
}
}//package com.trickysheep.coral.GUI.UIScreens
Section 18
//MainMenuScreen (com.trickysheep.coral.GUI.UIScreens.MainMenuScreen)
package com.trickysheep.coral.GUI.UIScreens {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.GUI.*;
import com.trickysheep.coral.*;
import flash.net.*;
public class MainMenuScreen extends UIScreen {
private var SecretButtonClickCount_num:Number;// = 0
public function MainMenuScreen(){
SecretButtonClickCount_num = 0;
super();
}
private function SecretButtonClickedClicked(_arg1:Event){
SecretButtonClickCount_num++;
if (SecretButtonClickCount_num >= 5){
GameSettings.getInstance().setLevelSelectUnlocked(true);
GameSettings.getInstance().setAquariumUnlocked(true);
Show();
};
}
private function Play1ClickedClicked(_arg1:Event){
this.dispatchEvent(new GUIEvent("SkipToStage", 1));
}
private function LinkClicked(_arg1:Event){
var _local2:URLRequest;
_local2 = new URLRequest(GameSettings.getInstance().getGameSiteLink());
navigateToURL(_local2, "_blank");
}
private function Play5ClickedClicked(_arg1:Event){
this.dispatchEvent(new GUIEvent("SkipToStage", 5));
}
private function Play6ClickedClicked(_arg1:Event){
this.dispatchEvent(new GUIEvent("SkipToStage", 6));
}
private function AquariumClickedClick(_arg1:Event){
var _local2:URLRequest;
this.dispatchEvent(new GUIEvent("ButtonClicked"));
if (GameSettings.getInstance().getConnectedToKongregate()){
if (GameSettings.getInstance().getAquariumUnlocked()){
this.dispatchEvent(new GUIEvent("PlayAquarium"));
} else {
trace("LOCKED SUCKA!");
};
} else {
_local2 = new URLRequest(GameSettings.getInstance().getKongregateGameLink());
navigateToURL(_local2, "_blank");
};
}
private function Play7ClickedClicked(_arg1:Event){
this.dispatchEvent(new GUIEvent("SkipToStage", 7));
}
private function ShowLevelSelect(){
if (GameSettings.getInstance().getLevelSelectUnlocked()){
Interface_mc.debug_buttons_mc.visible = true;
} else {
Interface_mc.debug_buttons_mc.visible = false;
};
}
override public function Show(){
Interface_mc.stage.quality = StageQuality.HIGH;
Interface_mc.visible = true;
ShowLevelSelect();
Interface_mc.visit_for_more_mc.visible = false;
Interface_mc.link_btn.visible = false;
if (GameSettings.getInstance().getAquariumModeEnabled()){
if (GameSettings.getInstance().getConnectedToKongregate()){
if (GameSettings.getInstance().getAquariumUnlocked()){
Interface_mc.aquarium_btn_mc.gotoAndStop("enabled");
Interface_mc.visit_for_more_mc.visible = true;
Interface_mc.link_btn.visible = true;
} else {
Interface_mc.aquarium_btn_mc.gotoAndStop("locked");
};
} else {
Interface_mc.aquarium_btn_mc.gotoAndStop("link_to_kong");
};
Interface_mc.aquarium_btn_mc.visible = true;
} else {
Interface_mc.aquarium_btn_mc.hittarget_mc.buttonMode = false;
Interface_mc.aquarium_btn_mc.hittarget_mc.removeEventListener(MouseEvent.CLICK, this.AquariumClickedClick);
Interface_mc.aquarium_btn_mc.visible = false;
};
GameSettings.getInstance().setHolidayModeOn(false);
if (GameSettings.getInstance().getHolidayModeAvailable()){
Interface_mc.holiday_btn_mc.visible = true;
Interface_mc.holiday_btn_mc.hittarget_mc.buttonMode = true;
} else {
Interface_mc.holiday_btn_mc.visible = false;
Interface_mc.holiday_btn_mc.hittarget_mc.buttonMode = false;
};
}
private function PlayClickedClick(_arg1:Event){
this.dispatchEvent(new GUIEvent("ButtonClicked"));
this.dispatchEvent(new GUIEvent("PlayNewGame"));
}
private function HolidayModeClick(_arg1:Event){
GameSettings.getInstance().setHolidayModeOn(true);
this.dispatchEvent(new GUIEvent("ButtonClicked"));
this.dispatchEvent(new GUIEvent("PlayNewGame"));
}
private function Play4ClickedClicked(_arg1:Event){
this.dispatchEvent(new GUIEvent("SkipToStage", 4));
}
override public function Out(){
Interface_mc.stage.quality = StageQuality.LOW;
super.Out();
}
private function TermsClicked(_arg1:Event){
var _local2:URLRequest;
_local2 = new URLRequest(GameSettings.getInstance().getTermsLink());
navigateToURL(_local2, "_blank");
}
override protected function InitScreen(){
Interface_mc.play_btn_mc.hittarget_mc.buttonMode = true;
Interface_mc.play_btn_mc.hittarget_mc.alpha = 0;
Interface_mc.play_btn_mc.hittarget_mc.addEventListener(MouseEvent.CLICK, this.PlayClickedClick);
Interface_mc.aquarium_btn_mc.hittarget_mc.buttonMode = true;
Interface_mc.aquarium_btn_mc.hittarget_mc.alpha = 0;
Interface_mc.aquarium_btn_mc.hittarget_mc.addEventListener(MouseEvent.CLICK, this.AquariumClickedClick);
Interface_mc.holiday_btn_mc.hittarget_mc.buttonMode = false;
Interface_mc.holiday_btn_mc.hittarget_mc.alpha = 0;
Interface_mc.holiday_btn_mc.hittarget_mc.addEventListener(MouseEvent.CLICK, this.HolidayModeClick);
Interface_mc.debug_buttons_mc.area_1_btn_mc.buttonMode = true;
Interface_mc.debug_buttons_mc.area_1_btn_mc.addEventListener(MouseEvent.CLICK, this.Play1ClickedClicked);
Interface_mc.debug_buttons_mc.area_2_btn_mc.buttonMode = true;
Interface_mc.debug_buttons_mc.area_2_btn_mc.addEventListener(MouseEvent.CLICK, this.Play2ClickedClicked);
Interface_mc.debug_buttons_mc.area_3_btn_mc.buttonMode = true;
Interface_mc.debug_buttons_mc.area_3_btn_mc.addEventListener(MouseEvent.CLICK, this.Play3ClickedClicked);
Interface_mc.debug_buttons_mc.area_4_btn_mc.buttonMode = true;
Interface_mc.debug_buttons_mc.area_4_btn_mc.addEventListener(MouseEvent.CLICK, this.Play4ClickedClicked);
Interface_mc.debug_buttons_mc.area_5_btn_mc.buttonMode = true;
Interface_mc.debug_buttons_mc.area_5_btn_mc.addEventListener(MouseEvent.CLICK, this.Play5ClickedClicked);
Interface_mc.debug_buttons_mc.area_6_btn_mc.buttonMode = true;
Interface_mc.debug_buttons_mc.area_6_btn_mc.addEventListener(MouseEvent.CLICK, this.Play6ClickedClicked);
Interface_mc.debug_buttons_mc.area_7_btn_mc.buttonMode = true;
Interface_mc.debug_buttons_mc.area_7_btn_mc.addEventListener(MouseEvent.CLICK, this.Play7ClickedClicked);
Interface_mc.link_btn.addEventListener(MouseEvent.CLICK, this.LinkClicked);
Interface_mc.terms_btn.addEventListener(MouseEvent.CLICK, this.TermsClicked);
Interface_mc.secret_btn_mc.buttonMode = true;
Interface_mc.secret_btn_mc.tabEnabled = false;
Interface_mc.secret_btn_mc.addEventListener(MouseEvent.CLICK, this.SecretButtonClickedClicked);
this.dispatchEvent(new GUIEvent("ScreenInitComplete"));
}
private function Play2ClickedClicked(_arg1:Event){
this.dispatchEvent(new GUIEvent("SkipToStage", 2));
}
private function Play3ClickedClicked(_arg1:Event){
this.dispatchEvent(new GUIEvent("SkipToStage", 3));
}
}
}//package com.trickysheep.coral.GUI.UIScreens
Section 19
//PlantPolypScreen (com.trickysheep.coral.GUI.UIScreens.PlantPolypScreen)
package com.trickysheep.coral.GUI.UIScreens {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.GUI.*;
import com.trickysheep.coral.world.floaties.*;
import ws.tink.display.*;
public class PlantPolypScreen extends UIScreen {
var World_mc:MovieClip;
var DraggablePolyp_mc:MovieClip;
var SelectedPolyp:Polyp;
var PolypsToPlace_array:Array;
public function PlantPolypScreen(){
DraggablePolyp_mc = new PolypSmallMC();
DraggablePolyp_mc.visible = false;
DraggablePolyp_mc.hitarea_mc.visible = false;
}
private function PolypClicked(_arg1:Event){
SelectedPolyp = _arg1.target.Polyp_Parent;
StartDragging(_arg1.target);
Interface_mc.addEventListener(Event.ENTER_FRAME, this.DragUpdate);
}
private function InitClickablePolyps(){
var _local1:*;
ClearAllClickablePolyps();
for (_local1 in PolypsToPlace_array) {
CreateClickablePolyp(PolypsToPlace_array[_local1]);
};
Interface_mc.polyp_bag_mc.polyps_in_bag_layer_mc.visible = true;
}
public function BagOutAnimFinished(_arg1:Event){
Interface_mc.polyp_bag_mc.removeEventListener("ANIM_DONE", this.BagOutAnimFinished);
}
private function StopDragging(){
Interface_mc.removeEventListener(Event.ENTER_FRAME, this.DragUpdate);
if (PolypSpotIsValid()){
PolypPlaced();
} else {
StartBagInAnim();
};
}
private function DragMouseRelease(_arg1:Event){
DraggablePolyp_mc.visible = false;
Interface_mc.stage.removeEventListener(MouseEvent.MOUSE_UP, this.DragMouseRelease);
StopDragging();
}
override public function Show(){
StartBagInAnim();
Interface_mc.visible = true;
Interface_mc.polyp_bag_mc.polyps_in_bag_layer_mc.visible = false;
}
private function CreateClickablePolyp(_arg1:Polyp){
var _local2:*;
var _local3:*;
_local2 = _arg1;
_local3 = new PolypSmallMC();
Interface_mc.polyp_bag_mc.polyps_in_bag_layer_mc.addChild(_local3);
_local3.visible = false;
_local3.Polyp_Parent = _local2;
_local3.addEventListener(Event.ENTER_FRAME, this.NewClickablePolypEnteredFrame);
_local2.setMC(_local3);
}
private function SetPolypsToCreate(_arg1:Number){
var _local2:*;
var _local3:*;
var _local4:*;
PolypsToPlace_array = new Array();
_local2 = 0;
while (_local2 < _arg1) {
_local3 = new Polyp();
_local3.PlanktonNeeded_num = 15;
_local3.setPosition((40 + (50 * _local2)), 40);
_local4 = Math.floor((Math.random() * 7));
_local3.CoralID_num = (_local4 + 1);
PolypsToPlace_array.push(_local3);
_local2++;
};
}
override public function Out(){
this.dispatchEvent(new GUIEvent("ScreenOutFinished"));
}
private function StartDragging(_arg1){
Interface_mc.stage.addEventListener(MouseEvent.MOUSE_UP, this.DragMouseRelease);
StartBagOutAnim();
}
public function StartBagOutAnim(){
Interface_mc.polyp_bag_mc.polyps_in_bag_layer_mc.visible = false;
Interface_mc.polyp_bag_mc.gotoAndPlay("out");
}
private function DragUpdate(_arg1:Event){
DraggablePolyp_mc.x = Interface_mc.mouseX;
DraggablePolyp_mc.y = Interface_mc.mouseY;
DraggablePolyp_mc.visible = true;
if (PolypSpotIsValid()){
DraggablePolyp_mc.alpha = 1;
} else {
DraggablePolyp_mc.alpha = 0.5;
};
}
override protected function InitScreen(){
if (!Interface_mc.contains(DraggablePolyp_mc)){
Interface_mc.addChild(DraggablePolyp_mc);
};
SetPolypsToCreate(myGameState.CurrentLevel.PolypCount_num);
World_mc = MovieClip(Interface_mc.parent.parent.getChildByName("world_mc"));
this.dispatchEvent(new GUIEvent("ScreenInitComplete"));
}
private function PolypPlacementFinished(){
this.dispatchEvent(new GUIEvent("PolypPlantingDone"));
}
private function NewClickablePolypEnteredFrame(_arg1:Event){
var _local2:*;
var _local3:*;
_local2 = _arg1.target;
_local2.removeEventListener(Event.ENTER_FRAME, this.NewClickablePolypEnteredFrame);
_local2.hitarea_mc.visible = false;
_local2.visible = true;
_local3 = _local2.Polyp_Parent;
_local3.Draw();
_local2.buttonMode = true;
_local2.addEventListener(MouseEvent.MOUSE_DOWN, this.PolypClicked);
}
private function PolypPlaced(){
var _local1:*;
SelectedPolyp.myParticle.pos.x = Interface_mc.mouseX;
SelectedPolyp.myParticle.pos.y = Interface_mc.mouseY;
_local1 = PolypsToPlace_array.indexOf(SelectedPolyp);
PolypsToPlace_array.splice(_local1, 1);
this.dispatchEvent(new GUIEvent("PolypPlacedInWorld", SelectedPolyp));
if (PolypsToPlace_array.length == 0){
PolypPlacementFinished();
} else {
StartBagInAnim();
};
}
public function StartBagInAnim(){
Interface_mc.polyp_bag_mc.addEventListener("ANIM_DONE", this.BagInAnimFinished);
Interface_mc.polyp_bag_mc.gotoAndPlay("in");
Interface_mc.polyp_bag_mc.visible = true;
}
private function PolypSpotIsValid():Boolean{
var _local1:*;
var _local2:Boolean;
_local1 = myGameState.CurrentReef.my_mc.buildarea_mc;
_local2 = HitTest.complexHitTestObject(DraggablePolyp_mc, _local1);
return (_local2);
}
public function BagInAnimFinished(_arg1:Event){
Interface_mc.polyp_bag_mc.removeEventListener("ANIM_DONE", this.BagInAnimFinished);
InitClickablePolyps();
}
private function ClearAllClickablePolyps(){
var _local1:*;
var _local2:*;
var _local3:*;
_local1 = Interface_mc.polyp_bag_mc.polyps_in_bag_layer_mc;
_local2 = _local1.numChildren;
_local3 = 0;
while (_local3 < _local2) {
_local1.removeChildAt(0);
_local3++;
};
}
}
}//package com.trickysheep.coral.GUI.UIScreens
Section 20
//StageIntroScreen (com.trickysheep.coral.GUI.UIScreens.StageIntroScreen)
package com.trickysheep.coral.GUI.UIScreens {
import flash.events.*;
import com.trickysheep.coral.GUI.*;
import flash.utils.*;
public class StageIntroScreen extends UIScreen {
var PauseTimer:Timer;
public function PauseTimerHandler(_arg1:TimerEvent):void{
PauseTimer.stop();
StageIntroDone();
}
private function StageIntroDone(){
this.dispatchEvent(new GUIEvent("StageIntroDone"));
}
override public function Show(){
PauseTimer = new Timer(500);
PauseTimer.addEventListener(TimerEvent.TIMER, this.PauseTimerHandler);
PauseTimer.start();
}
override protected function InitScreen(){
this.dispatchEvent(new GUIEvent("ScreenInitComplete"));
}
}
}//package com.trickysheep.coral.GUI.UIScreens
Section 21
//GUIController (com.trickysheep.coral.GUI.GUIController)
package com.trickysheep.coral.GUI {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.*;
import com.trickysheep.coral.GUI.UIScreens.*;
public class GUIController extends EventDispatcher {
private var Screens_array:Array;
private var CurrentScreen_str:String;
private var NextScreen_str:String;
private var InterfaceContainer_mc:MovieClip;
public function GUIController(){
Screens_array = new Array();
Screens_array["main_menu"] = new MainMenuScreen();
Screens_array["game_intro"] = new GameIntroScreen();
Screens_array["stage_intro"] = new StageIntroScreen();
Screens_array["level_intro"] = new LevelIntroScreen();
Screens_array["plant_polyp"] = new PlantPolypScreen();
Screens_array["in_game"] = new InGameScreen();
Screens_array["level_over"] = new LevelOverScreen();
Screens_array["game_over"] = new GameOverScreen();
CurrentScreen_str = "";
NextScreen_str = "";
}
public function ShowGameIntroScreen(){
GotoScreen("game_intro");
}
public function GUIEventHandler(_arg1:GUIEvent){
trace("GUIEventHandler", _arg1.command, CurrentScreen_str);
if (_arg1.command == "ScreenInitComplete"){
ShowScreen();
} else {
if (_arg1.command == "ScreenOutFinished"){
OldScreenOutFinished();
} else {
this.dispatchEvent(new GUIEvent(_arg1.command, _arg1.command_data));
};
};
}
public function ShowLevelStartScreen(){
GotoScreen("level_intro");
}
public function ShowMainMenuScreen(){
GotoScreen("main_menu");
}
public function ShowGameScreen(){
GotoScreen("in_game");
}
public function setInterfaceMC(_arg1:MovieClip){
InterfaceContainer_mc = _arg1;
InterfaceContainer_mc.visible = false;
InterfaceContainer_mc.addEventListener(Event.ENTER_FRAME, this.InterfaceContainerEnteredFrame);
}
public function GotoScreen(_arg1:String){
NextScreen_str = _arg1;
if (CurrentScreen_str == ""){
OldScreenOutFinished();
} else {
Screens_array[CurrentScreen_str].Out();
};
}
public function ShowPolypPlantingScreen(){
GotoScreen("plant_polyp");
}
public function ShowLevelWonScreen(){
GotoScreen("level_over");
}
public function UpdateInterface(){
Screens_array[CurrentScreen_str].UpdateInterface();
}
public function OldScreenOutFinished(){
var _local1:*;
CurrentScreen_str = NextScreen_str;
for (_local1 in Screens_array) {
Screens_array[_local1].Hide();
Screens_array[_local1].removeEventListener(GUIEvent.GUI_ACTION, this.GUIEventHandler);
};
Screens_array[CurrentScreen_str].addEventListener(GUIEvent.GUI_ACTION, this.GUIEventHandler);
Screens_array[CurrentScreen_str].ReadyScreen(CurrentScreen_str);
}
private function ShowScreen(){
InterfaceContainer_mc.visible = true;
Screens_array[CurrentScreen_str].Show();
}
public function ShowStageStartScreen(){
GotoScreen("stage_intro");
}
public function ShowLevelLostScreen(){
GotoScreen("level_over");
}
public function ShowGameWonScreen(){
GotoScreen("game_over");
}
public function setGameState(_arg1:GameState){
var _local2:*;
for (_local2 in Screens_array) {
Screens_array[_local2].setGameState(_arg1);
};
}
private function InterfaceContainerEnteredFrame(_arg1:Event){
var _local2:*;
_arg1.target.removeEventListener(Event.ENTER_FRAME, this.InterfaceContainerEnteredFrame);
for (_local2 in Screens_array) {
Screens_array[_local2].setInterfaceMC(InterfaceContainer_mc.getChildByName(_local2));
};
}
}
}//package com.trickysheep.coral.GUI
Section 22
//GUIEvent (com.trickysheep.coral.GUI.GUIEvent)
package com.trickysheep.coral.GUI {
import flash.events.*;
public class GUIEvent extends Event {
public var command:String;
public var command_data;
public static const GUI_ACTION:String = "GUI_ACTION";
public function GUIEvent(_arg1:String, ... _args){
super(GUI_ACTION);
this.command = _arg1;
if (_args.length == 1){
command_data = _args[0];
} else {
if (_args.length > 1){
command_data = _args;
};
};
}
}
}//package com.trickysheep.coral.GUI
Section 23
//UIScreen (com.trickysheep.coral.GUI.UIScreen)
package com.trickysheep.coral.GUI {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.*;
public class UIScreen extends EventDispatcher {
private var ScreenIsInit_bool:Boolean;// = false
public var Screen_mc:MovieClip;
public var myGameState:GameState;
public var Interface_mc:MovieClip;
public function UIScreen(){
ScreenIsInit_bool = false;
super();
}
protected function InitScreen(){
trace("WARNING: INIT SCREEN OVERRIDE NOT SET");
}
public function ReadyScreen(_arg1:String){
if (!ScreenIsInit_bool){
trace("GOING TO INIT", ScreenIsInit_bool);
InitScreen();
ScreenIsInit_bool = true;
} else {
trace("SKIPPING INIT", ScreenIsInit_bool);
this.dispatchEvent(new GUIEvent("ScreenInitComplete"));
};
}
public function UpdateInterface(){
}
public function setInterfaceMC(_arg1:MovieClip){
Interface_mc = _arg1;
}
public function Show(){
Interface_mc.visible = true;
}
public function Hide(){
Interface_mc.visible = false;
}
public function Out(){
this.dispatchEvent(new GUIEvent("ScreenOutFinished"));
}
public function setGameState(_arg1:GameState){
myGameState = _arg1;
}
}
}//package com.trickysheep.coral.GUI
Section 24
//FXEvent (com.trickysheep.coral.sound.FXEvent)
package com.trickysheep.coral.sound {
import flash.events.*;
public class FXEvent extends Event {
public var command:String;
public var command_data;
public static const SOUND_TRIGGER:String = "SOUND_TRIGGER";
public function FXEvent(_arg1:String, ... _args){
super(SOUND_TRIGGER);
this.command = _arg1;
if (_args.length == 1){
command_data = _args[0];
} else {
if (_args.length > 1){
command_data = _args;
};
};
}
}
}//package com.trickysheep.coral.sound
Section 25
//SoundManager (com.trickysheep.coral.sound.SoundManager)
package com.trickysheep.coral.sound {
import flash.events.*;
import com.trickysheep.coral.*;
import flash.utils.*;
import flash.media.*;
public class SoundManager {
private var FadeTimer:Timer;
public var FadeOutDelta_num:Number;
private var FXSounds_array:Array;
public var FadeInDelta_num:Number;
private var BGMLoops_array:Array;
private var BGMCurrentLoop_transform:SoundTransform;
public var FadingIn_bool:Boolean;
private var LoopCycleSwitchEvery_num:Number;
private var BGMPreviousLoop_transform:SoundTransform;
private var BGMLoopCycle_array:Array;
private var BGMCurrentLoop_channel:SoundChannel;
public var FadingOut_bool:Boolean;
private var LastBGSongPosition_num:Number;
private var BGMPreviousLoop_channel:SoundChannel;
private var FADE_UPDATE_RATE:Number;// = 200
private var BGMLoopCycleIndex_num:Number;
private var BGMSounds_array:Array;
private var ListeningForCycle_bool:Boolean;// = false
private var BGMChannels_array:Array;
private var BGMCurrentLoopCode_str:String;
private var MUSIC_VOL:Number;// = 0.75
private var LoopCycleCount_num:Number;
public function SoundManager(){
MUSIC_VOL = 0.75;
FADE_UPDATE_RATE = 200;
ListeningForCycle_bool = false;
super();
BGMCurrentLoopCode_str = "";
FadingOut_bool = false;
FadingIn_bool = false;
FadeTimer = new Timer(FADE_UPDATE_RATE);
FadeTimer.addEventListener(TimerEvent.TIMER, this.FadeTimerHandler);
}
public function FadeTimerHandler(_arg1:TimerEvent):void{
var _local2:*;
if (FadingIn_bool){
_local2 = (BGMCurrentLoop_transform.volume + FadeInDelta_num);
if (_local2 >= MUSIC_VOL){
_local2 = MUSIC_VOL;
FadingIn_bool = false;
};
BGMCurrentLoop_transform.volume = _local2;
BGMCurrentLoop_channel.soundTransform = BGMCurrentLoop_transform;
};
if (FadingOut_bool){
_local2 = (BGMPreviousLoop_transform.volume - FadeOutDelta_num);
if (_local2 <= 0){
_local2 = 0;
BGMPreviousLoop_channel.stop();
FadingOut_bool = false;
};
BGMPreviousLoop_transform.volume = _local2;
BGMPreviousLoop_channel.soundTransform = BGMPreviousLoop_transform;
};
if (((!(FadingIn_bool)) && (!(FadingOut_bool)))){
FadeTimer.stop();
};
}
public function FadeOutOldBGMLoop(){
if (GameSettings.getInstance().getMusicOn()){
BGMPreviousLoop_channel = BGMCurrentLoop_channel;
BGMPreviousLoop_transform = BGMPreviousLoop_channel.soundTransform;
FadingOut_bool = true;
FadeTimer.start();
};
}
public function StartLoopCycle(){
ListeningForCycle_bool = true;
BGMCurrentLoop_channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
NextLoopCycle();
}
public function PlaySound(_arg1:String):void{
var _local2:Sound;
if (GameSettings.getInstance().getSoundOn()){
if (FXSounds_array[_arg1] == null){
trace(("BAD SOUND CALLED: " + _arg1));
} else {
_local2 = FXSounds_array[_arg1];
_local2.play();
};
};
}
public function FadeInNewBGMLoop(_arg1:String){
var _local2:Sound;
if (GameSettings.getInstance().getMusicOn()){
BGMCurrentLoopCode_str = _arg1;
_local2 = BGMLoops_array[BGMCurrentLoopCode_str];
BGMCurrentLoop_channel = _local2.play(0, 999, new SoundTransform(0, 0));
BGMCurrentLoop_transform = BGMCurrentLoop_channel.soundTransform;
FadingIn_bool = true;
FadeTimer.start();
};
}
public function StopMusic(){
FadingIn_bool = false;
FadingOut_bool = false;
StopLoopCycle();
BGMCurrentLoop_channel.stop();
}
public function StopLoopCycle(){
if (ListeningForCycle_bool){
BGMCurrentLoop_channel.removeEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
};
}
public function Init(){
FXSounds_array = new Array();
FXSounds_array["FX_PLANKTON_1"] = new FX_PLANKTON_PICKUP_0();
FXSounds_array["FX_PLANKTON_2"] = new FX_PLANKTON_PICKUP_0b();
FXSounds_array["FX_PLANKTON_3"] = new FX_PLANKTON_PICKUP_1();
FXSounds_array["FX_PLANKTON_4"] = new FX_PLANKTON_PICKUP_1b();
FXSounds_array["FX_PLANKTON_5"] = new FX_PLANKTON_PICKUP_2();
FXSounds_array["FX_PLANKTON_6"] = new FX_PLANKTON_PICKUP_2b();
FXSounds_array["FX_PLANKTON_PICKUP_POISON"] = new FX_PLANKTON_PICKUP_POISON();
FXSounds_array["FX_POLYP_EAT_RIGHT"] = new FX_POLYP_EAT_RIGHT();
FXSounds_array["FX_POLYP_POISONED"] = new FX_POLYP_POISONED();
FXSounds_array["FX_POLYP_EAT_WRONG"] = new FX_POLYP_EAT_WRONG();
FXSounds_array["FX_POLYP_GROW_SMALL"] = new FX_POLYP_GROW_SMALL();
FXSounds_array["FX_POLYP_GROW_MEDIUM"] = new FX_POLYP_GROW_MEDIUM();
FXSounds_array["FX_POLYP_GROW_LARGE"] = new FX_POLYP_GROW_LARGE();
FXSounds_array["FX_POLYP_GRABBED"] = new FX_POLYP_GRABBED();
FXSounds_array["FX_POLYP_STUCK"] = new FX_POLYP_STUCK();
FXSounds_array["FX_FISH_GULP_DEEP"] = new FX_FISH_GULP_DEEP();
FXSounds_array["FX_FISH_GULP"] = new FX_FISH_GULP();
FXSounds_array["FX_FISH_INHALE"] = new FX_FISH_INHALE();
FXSounds_array["FX_FISH_MUNCH"] = new FX_FISH_MUNCH();
FXSounds_array["FX_FISH_POISONED"] = new FX_FISH_POISONED();
FXSounds_array["FX_FISH_RUSH"] = new FX_FISH_RUSH();
FXSounds_array["FX_FISH_SMACK_BIG"] = new FX_FISH_SMACK_BIG();
FXSounds_array["FX_FISH_SMACK_SMALL"] = new FX_FISH_SMACK_BIG();
FXSounds_array["FX_SIZZLE"] = new FX_SIZZLE();
FXSounds_array["FX_SOFT_DROP"] = new FX_SOFT_DROP();
FXSounds_array["FX_EXCRETE"] = new FX_EXCRETE();
FXSounds_array["FX_SLURP"] = new FX_SLURP();
FXSounds_array["FX_SLURP2"] = new FX_SLURP2();
FXSounds_array["FX_WOOSH_3"] = new FX_WOOSH_3();
FXSounds_array["FX_WOOSH_SOFT"] = new FX_WOOSH_SOFT();
FXSounds_array["FX_CLICK"] = new FX_CLICK();
GameSettings.getInstance().setMusicOn(true);
BGMLoops_array = new Array();
BGMLoops_array["BGM_DARK"] = new BGM_DARK();
BGMLoops_array["BGM_ENDING"] = new BGM_ENDING();
BGMLoops_array["BGM_MYSTERIOUS"] = new BGM_MYSTERIOUS();
BGMLoops_array["BGM_VOLCANO"] = new BGM_VOLCANO();
BGMLoops_array["BGM_LIVELY"] = new BGM_LIVELY();
BGMLoops_array["BGM_MAIN_MELODY"] = new BGM_MAIN_MELODY();
BGMLoops_array["BGM_DEEP"] = new BGM_DEEP();
BGMLoops_array["BGM_SPARSE"] = new BGM_SPARSE();
BGMLoopCycle_array = new Array("BGM_MAIN_MELODY", "BGM_ENDING", "BGM_LIVELY", "BGM_MAIN_MELODY", "BGM_DEEP", "BGM_VOLCANO");
BGMLoopCycleIndex_num = 0;
LoopCycleCount_num = 0;
LoopCycleSwitchEvery_num = 1;
}
private function soundCompleteHandler(_arg1:Event):void{
NextLoopCycle();
}
public function NextLoopCycle(){
var _local1:*;
var _local2:*;
LoopCycleCount_num++;
if (LoopCycleCount_num >= LoopCycleSwitchEvery_num){
_local1 = BGMLoopCycle_array[BGMLoopCycleIndex_num];
BGMLoopCycleIndex_num++;
if (BGMLoopCycleIndex_num >= BGMLoopCycle_array.length){
BGMLoopCycleIndex_num = 0;
};
LoopCycleCount_num = 0;
_local2 = BGMLoopCycle_array[BGMLoopCycleIndex_num];
StartBGMLoop(_local2, 5, 5);
};
}
public function UpdateSoundSettings():void{
var _local1:SoundTransform;
_local1 = SoundMixer.soundTransform;
if (GameSettings.getInstance().getSoundOn()){
_local1.volume = 1;
} else {
SoundMixer.stopAll();
_local1.volume = 0;
};
SoundMixer.soundTransform = _local1;
}
public function StartBGMLoop(_arg1:String, _arg2:Number, _arg3:Number){
var _local4:String;
if (GameSettings.getInstance().getMusicOn()){
_local4 = BGMLoops_array[_arg1];
FadeInDelta_num = (FADE_UPDATE_RATE / (_arg2 * 1000));
FadeOutDelta_num = (FADE_UPDATE_RATE / (_arg2 * 1000));
if (BGMCurrentLoopCode_str != ""){
FadeOutOldBGMLoop();
FadeInNewBGMLoop(_arg1);
} else {
FadeInNewBGMLoop(_arg1);
};
};
}
public function RestartMusic(){
var _local1:*;
_local1 = BGMCurrentLoopCode_str;
BGMCurrentLoopCode_str = "";
StartBGMLoop(_local1, 3, 3);
}
}
}//package com.trickysheep.coral.sound
Section 26
//GameStage (com.trickysheep.coral.stages.GameStage)
package com.trickysheep.coral.stages {
public class GameStage {
public var ReefID_num:Number;
public var Levels_array:Array;
public var ReefScrollFrames_num:Number;// = 60
public function GameStage():void{
ReefScrollFrames_num = 60;
super();
Levels_array = new Array();
}
public function getLevelCount():Number{
return (Levels_array.length);
}
public function AddLevel(_arg1:Level):void{
Levels_array.push(_arg1);
}
}
}//package com.trickysheep.coral.stages
Section 27
//Level (com.trickysheep.coral.stages.Level)
package com.trickysheep.coral.stages {
public class Level {
public var HealthRequired_num:Number;
public var AvailableEggColors_array:Array;
public var StartWithEnemy_bool:Boolean;// = true
public var CoralSeeds_Large_array:Array;
public var Name_str:String;
public var CoralSeeds_Medium_array:Array;
public var BGMCode_str:String;
public var Level_num:Number;
public var EggSizeSmallRatio_num:Number;
public var PolypCount_num:Number;
public var PlanktonStartBloom_num:Number;
public var TimePar_num:Number;
public var PoisonPlanktonSpawnRate_num:Number;// = 0
public var CoralSeeds_Small_array:Array;
public var PlanktonStartsMoving_bool:Boolean;
public var PlanktonVelocity_y_min:Number;
public var EggSpawnRate_num:Number;// = 120
public var MaxEggsActive_num:Number;// = 2
public var Enemies_array:Array;
public var PlanktonVelocity_x_min:Number;
public var PoisonPlanktonStartBloom_num:Number;// = 0
public var PoisonPlanktonStart_y_num:Number;
public var AvailablePlanktonColors_array:Array;
public var PlanktonVelocity_x_max:Number;
public var PlanktonVelocity_y_max:Number;
public var PoisonPlanktonStart_x_num:Number;
public var PlanktonSpawnRate_num:Number;
public var EggSizeMediumRatio_num:Number;
public var EggSizeLargeRatio_num:Number;
public function Level():void{
PoisonPlanktonStartBloom_num = 0;
PoisonPlanktonSpawnRate_num = 0;
EggSpawnRate_num = 120;
MaxEggsActive_num = 2;
StartWithEnemy_bool = true;
super();
Enemies_array = new Array();
CoralSeeds_Small_array = new Array();
CoralSeeds_Medium_array = new Array();
CoralSeeds_Large_array = new Array();
AvailablePlanktonColors_array = new Array();
AvailableEggColors_array = new Array();
}
public function setPlanktonColors(... _args){
AvailablePlanktonColors_array = _args;
}
public function setEggSizeDistribution(_arg1:Number, _arg2:Number, _arg3:Number){
EggSizeSmallRatio_num = _arg1;
EggSizeMediumRatio_num = _arg2;
EggSizeLargeRatio_num = _arg3;
}
public function setEggs(_arg1, _arg2){
MaxEggsActive_num = _arg1;
EggSpawnRate_num = _arg2;
}
public function setPlanktonMovement(_arg1, _arg2, _arg3, _arg4){
PlanktonStartsMoving_bool = true;
PlanktonVelocity_x_min = _arg1;
PlanktonVelocity_x_max = _arg2;
PlanktonVelocity_y_min = _arg3;
PlanktonVelocity_y_max = _arg4;
}
public function setEggColors(... _args){
AvailableEggColors_array = _args;
}
public function setSmallCorals(... _args){
CoralSeeds_Small_array = _args;
}
public function setLargeCorals(... _args){
CoralSeeds_Large_array = _args;
}
public function setPlankton(_arg1, _arg2){
PlanktonSpawnRate_num = _arg2;
PlanktonStartBloom_num = _arg1;
}
public function setPolypCount(_arg1){
PolypCount_num = _arg1;
}
public function setMediumCorals(... _args){
CoralSeeds_Medium_array = _args;
}
public function addEnemy(_arg1:String){
Enemies_array.push(_arg1);
}
public function setPoisonPlankton(_arg1, _arg2, _arg3){
PoisonPlanktonStart_x_num = _arg2;
PoisonPlanktonStart_y_num = _arg3;
PoisonPlanktonSpawnRate_num = _arg1;
}
public function setTimePar(_arg1){
TimePar_num = _arg1;
}
}
}//package com.trickysheep.coral.stages
Section 28
//Boss (com.trickysheep.coral.world.floaties.enemies.Boss)
package com.trickysheep.coral.world.floaties.enemies {
import flash.events.*;
import com.trickysheep.coral.world.*;
import com.trickysheep.util.geometery.*;
import com.trickysheep.coral.world.floaties.*;
public class Boss extends Enemy {
public var MouthOffsetRight_vector:Vector;
public var MouthOffsetLeft_vector:Vector;
public var CurrentTarget_floaty:Floaty;
public var MouthOffset_x_num:Number;
public var MouthOffset_y_num:Number;
public var SMACK_POINTS:Number;// = 500
public function Boss():void{
SMACK_POINTS = 500;
super();
Moving_bool = false;
}
override public function setListeners(){
my_mc.boss_animations_mc.addEventListener("BOSS_EXPLODE", this.DoReportBossExplode);
my_mc.boss_animations_mc.addEventListener("BOSS_DEAD", this.DoReportBossDead);
my_mc.boss_animations_mc.addEventListener("BELCH_RELEASE", this.DoBelchPoison);
my_mc.boss_animations_mc.addEventListener("POISON_SHOT", this.DoPoisonShot);
my_mc.boss_animations_mc.addEventListener("GOO_RELEASE", this.DoGooSplat);
my_mc.boss_animations_mc.addEventListener("ANIM_DONE", this.onAnimationFinished);
}
function Belch():void{
AIState_str = "BELCH";
AIActive_bool = false;
my_mc.boss_animations_mc.gotoAndPlay("burp");
}
public function ActivateAI():void{
FramesUntilAIStateUpdate_num = 0;
StartIdle();
}
override public function clearListeners(){
my_mc.boss_animations_mc.removeEventListener("BOSS_EXPLODE", this.DoReportBossExplode);
my_mc.boss_animations_mc.removeEventListener("BOSS_DEAD", this.DoReportBossDead);
my_mc.boss_animations_mc.removeEventListener("BELCH_RELEASE", this.DoBelchPoison);
my_mc.boss_animations_mc.removeEventListener("POISON_SHOT", this.DoPoisonShot);
my_mc.boss_animations_mc.removeEventListener("GOO_RELEASE", this.DoGooSplat);
my_mc.boss_animations_mc.removeEventListener("ANIM_DONE", this.onAnimationFinished);
}
public function setMouthOffset(_arg1, _arg2){
MouthOffset_x_num = (0 - _arg1);
MouthOffset_y_num = (0 - _arg2);
MouthOffsetRight_vector = new Vector(MouthOffset_x_num, MouthOffset_y_num, 0);
MouthOffsetLeft_vector = new Vector(-(MouthOffset_x_num), MouthOffset_y_num, 0);
}
override protected function doAIUpdate(){
var _local1:*;
if (AIState_str == "IDLE"){
if (Math.random() < 0.75){
_local1 = Math.random();
if (_local1 < 0.4){
ShootPoison();
} else {
if (_local1 < 0.65){
Belch();
} else {
PimplePop();
};
};
} else {
StartIdle();
};
} else {
if (AIState_str == "SHOOT_POISON"){
StartIdle();
} else {
if (AIState_str == "PIMPLE_POP"){
StartIdle();
} else {
if (AIState_str == "BELCH"){
StartIdle();
} else {
if (AIState_str == "DIE"){
StartIdle();
};
};
};
};
};
}
public function SetListenForClick(_arg1:Boolean){
}
function PimplePop():void{
AIState_str = "PIMPLE_POP";
AIActive_bool = false;
my_mc.boss_animations_mc.gotoAndPlay("pimple");
}
public function GetReadyForCannon(){
AIState_str = "DIE";
AIActive_bool = false;
my_mc.boss_animations_mc.gotoAndPlay("cannon_grow");
}
private function DoBelchPoison(_arg1:Event){
var _local2:*;
_local2 = my_mc.boss_animations_mc.belch_spawn_area_mc;
this.dispatchEvent(new FloatyEvent("PoisonRelease", _local2));
}
private function DoPoisonShot(_arg1:Event){
var _local2:Vector;
var _local3:Vector;
var _local4:Polyp;
_local2 = CurrentTarget_floaty.myParticle.pos;
_local3 = new Vector(548, 333, 0);
_local4 = Polyp(CurrentTarget_floaty);
if (_local4.Size_str == "SMALL"){
_local2 = _local2.addVector(new Vector(0, -15, 0));
} else {
if (_local4.Size_str == "MEDIUM"){
_local2 = _local2.addVector(new Vector(0, -34, 0));
} else {
if (_local4.Size_str == "LARGE"){
_local2 = _local2.addVector(new Vector(0, -39, 0));
};
};
};
TriggerPoisonShot(_local3, _local2);
}
private function DoGooSplat(_arg1:Event){
this.dispatchEvent(new FloatyEvent("GooSplat"));
}
public function StartIdle():void{
AIState_str = "IDLE";
AIActive_bool = true;
FramesUntilAIStateUpdate_num = (75 + (Math.random() * 60));
my_mc.boss_animations_mc.gotoAndPlay("idle");
}
private function DoReportBossExplode(_arg1:Event){
this.dispatchEvent(new FloatyEvent("BossExplode"));
}
private function DoReportBossDead(_arg1:Event){
this.dispatchEvent(new FloatyEvent("BossDead"));
}
public function TriggerPoisonShot(_arg1:Vector, _arg2:Vector){
this.dispatchEvent(new FloatyEvent("PoisonShot", _arg1, _arg2));
this.dispatchEvent(new FloatyEvent("PoisonLeakStop"));
}
override public function Draw():void{
my_mc.x = myParticle.pos.x;
my_mc.y = myParticle.pos.y;
}
function ShootPoison():void{
var _local1:*;
AIState_str = "SHOOT_POISON";
AIActive_bool = true;
CurrentTarget_floaty = FindTargetPolyp();
if (CurrentTarget_floaty != null){
_local1 = (CurrentTarget_floaty.myParticle.pos.y - 215);
my_mc.boss_animations_mc.LookInDirection_num = _local1;
my_mc.boss_animations_mc.gotoAndPlay("shoot");
AIActive_bool = false;
} else {
StartIdle();
};
}
public function CannonFired(){
AIState_str = "EXPLODEDED";
AIActive_bool = false;
my_mc.boss_animations_mc.gotoAndPlay("cannon_fire");
}
private function onAnimationFinished(_arg1:Event){
if (AIState_str == "SHOOT_POISON"){
this.dispatchEvent(new FloatyEvent("PoisonLeakResume"));
};
StartIdle();
}
}
}//package com.trickysheep.coral.world.floaties.enemies
Section 29
//ChomperFish (com.trickysheep.coral.world.floaties.enemies.ChomperFish)
package com.trickysheep.coral.world.floaties.enemies {
import flash.events.*;
import com.trickysheep.util.geometery.*;
import com.trickysheep.coral.world.floaties.*;
public class ChomperFish extends Fish {
public var BITE_DAMAGE:Number;// = 40
public var KnockedWhileChomping_bool;
public function ChomperFish():void{
BITE_DAMAGE = 40;
super();
SwimDirection_str = "RIGHT";
}
public function StartChomping():void{
AIState_str = "CHOMPING";
AIActive_bool = true;
EatingPlankton_bool = false;
myParticle.stopConstantVelocity();
myParticle.stopThrust();
my_mc.gotoAndPlay("chomp");
FramesUntilAIStateUpdate_num = 90;
SetListenForClick(true);
}
override public function Draw():void{
super.Draw();
my_mc.hitarea_mc.visible = false;
}
override public function clearListeners(){
my_mc.removeEventListener("FISH_BITE", this.ProcessFishBite);
}
override public function Hit():void{
if (AIState_str == "CHOMPING"){
KnockedWhileChomping_bool = true;
} else {
KnockedWhileChomping_bool = false;
};
super.Hit();
}
override protected function doAIUpdate(){
if (AIState_str == "IDLE"){
if (IsOnscreen(50)){
if (Math.random() < 0.25){
StartMilling();
} else {
StartCoralApproach();
};
} else {
StartMilling();
};
} else {
if (AIState_str == "MILLING"){
if (Math.random() < 0.15){
StartMilling();
} else {
StartIdle();
FramesUntilAIStateUpdate_num = (20 + (Math.random() * 40));
};
} else {
if (AIState_str == "APPROACH_CORALS"){
StartChomping();
} else {
if (AIState_str == "CHOMPING"){
FacingDirection_str = "RIGHT";
RunAway();
} else {
if (AIState_str == "KNOCKED"){
FacingDirection_str = "RIGHT";
RunAway();
} else {
if (AIState_str == "POISONED"){
RunAway();
} else {
if (AIState_str == "RUNNING_AWAY"){
Clear();
};
};
};
};
};
};
};
}
function StartCoralApproach():void{
var _local1:Number;
var _local2:*;
var _local3:*;
var _local4:Coral;
var _local5:*;
var _local6:Vector;
var _local7:Vector;
var _local8:Vector;
AIState_str = "APPROACH_CORALS";
AIActive_bool = true;
_local1 = 0;
_local2 = myGameState.ReefCorals_array;
_local3 = _local2.length;
if (_local3 > 0){
_local5 = Math.floor((Math.random() * _local3));
_local4 = _local2[_local5];
if (_local4.myParticle.pos.x > myParticle.pos.x){
_local6 = _local4.myParticle.pos.addVector(MouthOffsetRight_vector);
} else {
_local6 = _local4.myParticle.pos.addVector(MouthOffsetLeft_vector);
};
_local7 = new Vector(0, -10, 0);
_local6 = _local6.addVector(_local7);
if ((this is ParrotChomperFish)){
if ((FacingDirection_str == "RIGHT")){
_local8 = new Vector(-50, 0, 0);
} else {
_local8 = new Vector(50, 0, 0);
};
_local6 = _local6.addVector(_local8);
} else {
if ((FacingDirection_str == "RIGHT")){
_local8 = new Vector(-5, 0, 0);
} else {
_local8 = new Vector(5, 0, 0);
};
_local6 = _local6.addVector(_local8);
};
_local1 = SwimToTarget(_local6, (SwimVelocity_num * 2));
FramesUntilAIStateUpdate_num = _local1;
SetListenForClick(true);
} else {
StartMilling();
};
}
public function ProcessFishBite(_arg1:Event){
var _local2:Coral;
var _local3:*;
var _local4:Vector;
var _local5:*;
_local3 = myGameState.ReefCorals_array;
_local5 = (_local3.length - 1);
while (_local5 >= 0) {
_local2 = _local3[_local5];
if (_local2.Alive_bool){
if ((FacingDirection_str == "RIGHT")){
_local4 = myParticle.pos.subtractVector(MouthOffsetRight_vector);
} else {
_local4 = myParticle.pos.subtractVector(MouthOffsetLeft_vector);
};
if (_local2.my_mc.coral_grafix_mc.coral_hit_shape_mc.hitTestPoint(_local4.x, _local4.y)){
_local2.DamageCoral(BITE_DAMAGE);
TriggerSound("FX_FISH_MUNCH");
};
} else {
trace("trying to bite bad coral:", _local2);
};
_local5--;
};
}
override public function setListeners(){
my_mc.addEventListener("FISH_BITE", this.ProcessFishBite);
}
}
}//package com.trickysheep.coral.world.floaties.enemies
Section 30
//EelChomperFish (com.trickysheep.coral.world.floaties.enemies.EelChomperFish)
package com.trickysheep.coral.world.floaties.enemies {
public class EelChomperFish extends ChomperFish {
public function EelChomperFish():void{
SwimThrust_num = 25;
SwimVelocity_num = 0.08;
SwimDirection_str = "RIGHT";
BITE_DAMAGE = 50;
setMouthOffset(70, 11);
}
}
}//package com.trickysheep.coral.world.floaties.enemies
Section 31
//FattyGulperFish (com.trickysheep.coral.world.floaties.enemies.FattyGulperFish)
package com.trickysheep.coral.world.floaties.enemies {
import com.trickysheep.coral.world.floaties.*;
public class FattyGulperFish extends GulperFish {
private var TimesClickedInARow_num:Number;
public function FattyGulperFish():void{
SwimThrust_num = 15;
SwimVelocity_num = 0.08;
SwimDirection_str = "RIGHT";
EatingCollectedPoisonPlankton_bool = true;
TimesClickedInARow_num = 0;
setMouthOffset(61, -23);
}
override protected function doAIUpdate(){
if (AIState_str == "IDLE"){
if (IsOnscreen(75)){
if (Math.random() < 0.3){
StartMilling();
} else {
if (Math.random() < 0.6){
StartGulping();
} else {
StartSucking();
};
};
} else {
if (((IsFacingInward()) && (IsOnscreenVert(50)))){
StartGulping();
} else {
StartMilling();
FramesUntilAIStateUpdate_num = (30 + (Math.random() * 20));
};
};
} else {
if (AIState_str == "MILLING"){
if (Math.random() < 0.4){
StartMilling();
} else {
StartIdle();
FramesUntilAIStateUpdate_num = (40 + (Math.random() * 40));
};
} else {
if (AIState_str == "GULPING"){
StartIdle();
} else {
if (AIState_str == "SUCKING"){
StartIdle();
} else {
if (AIState_str == "KNOCKED"){
StartIdle();
TimesClickedInARow_num = 0;
} else {
if (AIState_str == "POISONED"){
RunAway();
} else {
if (AIState_str == "RUNNING_AWAY"){
Clear();
};
};
};
};
};
};
};
}
override public function PlanktonEaten(_arg1:Plankton){
if (_arg1.IsPoison_bool){
StartPoisoned();
} else {
if (AIState_str == "GULPING"){
TriggerSound("FX_FISH_GULP_DEEP");
} else {
if (((!((AIState_str == "GULPING"))) && (!((AIState_str == "SUCKING"))))){
TriggerSound("FX_FISH_GULP_DEEP");
my_mc.gotoAndPlay("eat");
};
};
};
}
override public function StartKnock():void{
var _local1:*;
var _local2:*;
var _local3:*;
TimesClickedInARow_num++;
if (TimesClickedInARow_num > 5){
RunAway();
} else {
AIState_str = "KNOCKED";
AIActive_bool = true;
FramesUntilAIStateUpdate_num = 40;
EatingPlankton_bool = false;
_local1 = (SwimVelocity_num * 120);
if ((FacingDirection_str == "RIGHT")){
_local2 = -(_local1);
} else {
_local2 = _local1;
};
_local3 = ((Math.random() * _local1) - (_local1 / 2));
myParticle.stopConstantVelocity();
myParticle.stopThrust();
myParticle.Push(_local2, _local3);
my_mc.gotoAndPlay("knocked");
SetListenForClick(true);
TriggerEnemyHitEvent();
};
}
}
}//package com.trickysheep.coral.world.floaties.enemies
Section 32
//Fish (com.trickysheep.coral.world.floaties.enemies.Fish)
package com.trickysheep.coral.world.floaties.enemies {
import flash.events.*;
import com.trickysheep.util.geometery.*;
import com.trickysheep.coral.world.floaties.*;
public class Fish extends Enemy {
public var MouthOffsetRight_vector:Vector;
public var MouthOffsetLeft_vector:Vector;
public var IsClickable_bool:Boolean;// = true
public var SMACK_POINTS:Number;// = 500
public var MouthOffset_y_num:Number;
public var SWIM_ANIMATION:String;
public var RUN_ANIMATION:String;
public var APPROACH_ANIMATION:String;
public var SwimDirection_str:String;
public var CurrentSwimAnim_str:String;
public var IDLE_ANIMATION:String;
public var MouthOffset_x_num:Number;
public var SwimThrust_num:Number;
public var SwimVelocity_num:Number;
public function Fish():void{
IsClickable_bool = true;
SMACK_POINTS = 500;
super();
IDLE_ANIMATION = "swim";
SWIM_ANIMATION = "swim";
RUN_ANIMATION = "run";
APPROACH_ANIMATION = "swim";
}
public function TurnAroundComplete(){
my_mc.gotoAndPlay(CurrentSwimAnim_str);
FlipFacingDirection();
Draw();
}
public function StartSwimmingInDirection(_arg1:Vector, _arg2:Number){
var _local3:Vector;
var _local4:Vector;
_local3 = _arg1.unit();
_local4 = _local3.multScalar(_arg2);
myParticle.setConstantVelocity(_local4.x, _local4.y);
if ((((FacingDirection_str == "RIGHT")) && ((_local4.x < 0)))){
TurnAround();
} else {
if ((((FacingDirection_str == "LEFT")) && ((_local4.x > 0)))){
TurnAround();
} else {
my_mc.gotoAndPlay(CurrentSwimAnim_str);
};
};
}
function StartPoisoned():void{
AIState_str = "POISONED";
AIActive_bool = true;
EatingPlankton_bool = false;
myParticle.stopConstantVelocity();
myParticle.stopThrust();
my_mc.gotoAndPlay("poisoned");
TriggerSound("FX_FISH_POISONED");
FramesUntilAIStateUpdate_num = 20;
SetListenForClick(false);
}
public function StartIdle():void{
AIState_str = "IDLE";
AIActive_bool = true;
myParticle.stopConstantVelocity();
myParticle.stopThrust();
FramesUntilAIStateUpdate_num = (30 + (Math.random() * 10));
CurrentSwimAnim_str = IDLE_ANIMATION;
my_mc.gotoAndPlay(CurrentSwimAnim_str);
SetListenForClick(true);
}
public function SetListenForClick(_arg1:Boolean){
if (IsClickable_bool){
ClearListeners();
if (_arg1){
my_mc.clickarea_mc.addEventListener(MouseEvent.MOUSE_DOWN, this.FishClicked);
my_mc.clickarea_mc.buttonMode = true;
} else {
my_mc.clickarea_mc.buttonMode = false;
};
};
}
public function MillToMiddle():void{
var _local1:Vector;
var _local2:*;
AIState_str = "MILLING";
AIActive_bool = true;
_local1 = new Vector(350, myParticle.pos.y, 0);
_local2 = SwimToTarget(_local1, SwimVelocity_num);
FramesUntilAIStateUpdate_num = (_local2 + (Math.random() * 20));
SetListenForClick(true);
}
override public function Draw():void{
if (FacingDirection_str == "LEFT"){
my_mc.scaleX = -1;
} else {
my_mc.scaleX = 1;
};
my_mc.clickarea_mc.alpha = 0;
my_mc.x = myParticle.pos.x;
my_mc.y = myParticle.pos.y;
}
public function TurnAroundAnimationFinished(_arg1:Event){
my_mc.removeEventListener("ANIM_DONE", this.TurnAroundAnimationFinished);
TurnAroundComplete();
}
public function setMouthOffset(_arg1, _arg2){
MouthOffset_x_num = (0 - _arg1);
MouthOffset_y_num = (0 - _arg2);
MouthOffsetRight_vector = new Vector(MouthOffset_x_num, MouthOffset_y_num, 0);
MouthOffsetLeft_vector = new Vector(-(MouthOffset_x_num), MouthOffset_y_num, 0);
}
public function ActivateAI():void{
SwimDirection_str = FacingDirection_str;
FramesUntilAIStateUpdate_num = 0;
StartIdle();
}
public function Hit():void{
TriggerScoring("FISH_SMACK", SMACK_POINTS);
TriggerSound("FX_FISH_SMACK_BIG");
StartKnock();
}
protected function FishClicked(_arg1:Event){
TriggerClickedEvent();
}
protected function ClearListeners(){
my_mc.clickarea_mc.removeEventListener(MouseEvent.MOUSE_DOWN, this.FishClicked);
}
override public function PlanktonEaten(_arg1:Plankton){
if (_arg1.IsPoison_bool){
StartPoisoned();
} else {
TriggerSound("FX_FISH_GULP");
my_mc.gotoAndPlay("eat");
};
}
public function StartKnock():void{
var _local1:*;
var _local2:*;
var _local3:*;
AIState_str = "KNOCKED";
AIActive_bool = true;
FramesUntilAIStateUpdate_num = 30;
EatingPlankton_bool = false;
_local1 = (SwimVelocity_num * 100);
if ((FacingDirection_str == "RIGHT")){
_local2 = -(_local1);
} else {
_local2 = _local1;
};
_local3 = ((Math.random() * _local1) - (_local1 / 2));
myParticle.stopConstantVelocity();
myParticle.stopThrust();
myParticle.Push(_local2, _local3);
my_mc.gotoAndPlay("knocked");
SetListenForClick(false);
TriggerEnemyHitEvent();
}
public function SwimToTarget(_arg1:Vector, _arg2:Number):Number{
var _local3:Number;
var _local4:Vector;
var _local5:Number;
_local4 = _arg1.subtractVector(myParticle.pos);
_local5 = _local4.len();
StartSwimmingInDirection(_local4, _arg2);
_local3 = ((Math.ceil((_local5 / _arg2)) / 30) * 0.95);
return (_local3);
}
public function StartMilling():void{
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
AIState_str = "MILLING";
AIActive_bool = true;
_local1 = myParticle.pos;
_local2 = Math.random();
_local3 = (1 - _local2);
_local4 = 1;
_local5 = 1;
if (_local1.x < 350){
if (_local1.x < -50){
_local4 = 1;
};
if (Math.random() < 0.85){
_local4 = 1;
} else {
_local4 = -1;
};
} else {
if (_local1.x > 750){
_local4 = -1;
};
if (Math.random() < 0.85){
_local4 = -1;
} else {
_local4 = 1;
};
};
if (_local1.y < 250){
if (_local1.y < -50){
_local5 = 1;
} else {
if (Math.random() < 0.85){
_local5 = 1;
} else {
_local5 = -1;
};
};
} else {
if (_local1.y > 550){
_local5 = -1;
} else {
if (Math.random() < 0.85){
_local5 = -1;
} else {
_local5 = 1;
};
};
};
if (_local2 < _local3){
_local6 = (SwimVelocity_num / 2);
} else {
_local6 = SwimVelocity_num;
};
FramesUntilAIStateUpdate_num = (60 + (Math.random() * 30));
_local2 = (_local2 * _local4);
_local3 = (_local3 * _local5);
CurrentSwimAnim_str = "swim";
StartSwimmingInDirection(new Vector(_local2, _local3, 0), _local6);
SetListenForClick(true);
}
public function TurnAround(){
my_mc.addEventListener("ANIM_DONE", this.TurnAroundAnimationFinished);
my_mc.gotoAndPlay("turnaround");
TriggerSound("FX_WOOSH_SOFT");
}
public function ChangeSwimDirection(){
if (SwimDirection_str == "RIGHT"){
SwimDirection_str = "LEFT";
} else {
SwimDirection_str = "RIGHT";
};
}
public function RunAway(){
AIState_str = "RUNNING_AWAY";
AIActive_bool = true;
EatingPlankton_bool = false;
CurrentSwimAnim_str = "run";
TurnAround();
if ((FacingDirection_str == "RIGHT")){
StartSwimmingInDirection(new Vector(-1, 0, 0), (SwimVelocity_num * 3.5));
} else {
StartSwimmingInDirection(new Vector(1, 0, 0), (SwimVelocity_num * 3.5));
};
SetListenForClick(false);
TriggerSound("FX_FISH_RUSH");
FramesUntilAIStateUpdate_num = (120 + (Math.random() * 40));
}
}
}//package com.trickysheep.coral.world.floaties.enemies
Section 33
//GulperFish (com.trickysheep.coral.world.floaties.enemies.GulperFish)
package com.trickysheep.coral.world.floaties.enemies {
import com.trickysheep.util.geometery.*;
import com.trickysheep.coral.world.floaties.*;
public class GulperFish extends Fish {
public var myPlanktonManager:PlanktonManager;
public var KnockedWhileGulping_bool;
public function GulperFish():void{
}
public function StartGulping():void{
var _local1:Vector;
AIState_str = "GULPING";
AIActive_bool = true;
EatingPlankton_bool = true;
myParticle.stopConstantVelocity();
if ((FacingDirection_str == "RIGHT")){
_local1 = new Vector(1, 0, 0);
} else {
_local1 = new Vector(-1, 0, 0);
};
StartSwimmingInDirection(_local1, (SwimVelocity_num * 3));
myParticle.stopThrust();
my_mc.gotoAndPlay("gulp");
FramesUntilAIStateUpdate_num = 40;
SetListenForClick(true);
}
private function SuckPlankton(){
var _local1:Plankton;
var _local2:*;
var _local3:Array;
var _local4:Vector;
var _local5:Vector;
var _local6:*;
_local2 = myPlanktonManager.PLANKTON_THRUST;
_local3 = myPlanktonManager.Floaty_array;
if ((FacingDirection_str == "RIGHT")){
_local4 = myParticle.pos.subtractVector(MouthOffsetRight_vector);
} else {
_local4 = myParticle.pos.subtractVector(MouthOffsetLeft_vector);
};
for (_local6 in _local3) {
_local1 = _local3[_local6];
if (!_local1.IsPoison_bool){
_local5 = _local4.subtractVector(_local1.myParticle.pos);
if (_local5.len() < 180){
_local1.myParticle.stopConstantVelocity();
_local1.myParticle.stopThrust();
_local5.normalize();
_local5 = _local5.multScalar(15);
_local1.myParticle.Push(_local5.x, _local5.y);
if (_local1.mode_str == "COLLECTED"){
_local1.setMode("IDLE");
};
};
};
};
}
override public function Draw():void{
super.Draw();
try {
my_mc.hitarea_mc.visible = false;
} catch(e:Error) {
};
}
override public function clearListeners(){
}
override protected function doAIUpdate(){
if (AIState_str == "IDLE"){
if (IsOnscreen(50)){
if (Math.random() < 0.3){
StartMilling();
} else {
StartGulping();
};
} else {
if (((IsFacingInward()) && (IsOnscreenVert(50)))){
StartGulping();
} else {
StartMilling();
FramesUntilAIStateUpdate_num = (30 + (Math.random() * 20));
};
};
} else {
if (AIState_str == "MILLING"){
if (Math.random() < 0.25){
StartMilling();
} else {
StartIdle();
FramesUntilAIStateUpdate_num = (40 + (Math.random() * 40));
};
} else {
if (AIState_str == "GULPING"){
StartIdle();
} else {
if (AIState_str == "SUCKING"){
StartIdle();
} else {
if (AIState_str == "POISONED"){
RunAway();
FramesUntilAIStateUpdate_num = (240 + (Math.random() * 40));
} else {
if (AIState_str == "KNOCKED"){
RunAway();
} else {
if (AIState_str == "RUNNING_AWAY"){
Clear();
};
};
};
};
};
};
};
}
override public function PlanktonEaten(_arg1:Plankton){
if (_arg1.IsPoison_bool){
StartPoisoned();
} else {
if (AIState_str == "GULPING"){
TriggerSound("FX_FISH_GULP");
} else {
if (((!((AIState_str == "GULPING"))) && (!((AIState_str == "SUCKING"))))){
TriggerSound("FX_FISH_MUNCH");
my_mc.gotoAndPlay("eat");
};
};
};
}
function StartSucking():void{
AIState_str = "SUCKING";
AIActive_bool = true;
EatingPlankton_bool = true;
myParticle.stopConstantVelocity();
myParticle.stopThrust();
my_mc.gotoAndPlay("suck");
TriggerSound("FX_FISH_INHALE");
FramesUntilAIStateUpdate_num = 80;
SetListenForClick(true);
SuckPlankton();
}
override public function RunAway(){
var _local1:*;
_local1 = SwimVelocity_num;
SwimVelocity_num = (SwimVelocity_num * 2);
super.RunAway();
SwimVelocity_num = _local1;
}
override public function setListeners(){
}
}
}//package com.trickysheep.coral.world.floaties.enemies
Section 34
//LilGulperFish (com.trickysheep.coral.world.floaties.enemies.LilGulperFish)
package com.trickysheep.coral.world.floaties.enemies {
public class LilGulperFish extends GulperFish {
public function LilGulperFish():void{
SwimThrust_num = 15;
SwimVelocity_num = 0.11;
SwimDirection_str = "RIGHT";
setMouthOffset(61, -23);
}
}
}//package com.trickysheep.coral.world.floaties.enemies
Section 35
//MegamouthGulperFish (com.trickysheep.coral.world.floaties.enemies.MegamouthGulperFish)
package com.trickysheep.coral.world.floaties.enemies {
import com.trickysheep.util.geometery.*;
public class MegamouthGulperFish extends GulperFish {
public function MegamouthGulperFish():void{
SwimThrust_num = 15;
SwimVelocity_num = 0.06;
SwimDirection_str = "RIGHT";
setMouthOffset(61, -23);
}
override public function StartGulping():void{
var _local1:Vector;
var _local2:*;
AIState_str = "GULPING";
AIActive_bool = true;
EatingPlankton_bool = true;
myParticle.stopConstantVelocity();
_local1 = new Vector(my_mc.stage.mouseX, my_mc.stage.mouseY, 0);
if ((((FacingDirection_str == "RIGHT")) && ((my_mc.stage.mouseX > myParticle.pos.x)))){
_local2 = SwimToTarget(_local1, (SwimVelocity_num * 4));
_local2 = (_local2 * 0.75);
my_mc.gotoAndPlay("gulp");
} else {
if ((((FacingDirection_str == "LEFT")) && ((my_mc.stage.mouseX < myParticle.pos.x)))){
_local2 = SwimToTarget(_local1, (SwimVelocity_num * 4));
_local2 = (_local2 * 0.75);
my_mc.gotoAndPlay("gulp");
} else {
EatingPlankton_bool = false;
_local2 = SwimToTarget(_local1, (SwimVelocity_num * 2));
_local2 = (_local2 * 0.75);
};
};
myParticle.stopThrust();
FramesUntilAIStateUpdate_num = _local2;
SetListenForClick(true);
}
override protected function doAIUpdate(){
if (AIState_str == "IDLE"){
if (IsOnscreen(50)){
if (Math.random() < 0.2){
StartMilling();
FramesUntilAIStateUpdate_num = (50 + (Math.random() * 160));
} else {
StartGulping();
};
} else {
if (((IsFacingInward()) && (IsOnscreenVert(50)))){
StartGulping();
} else {
StartMilling();
FramesUntilAIStateUpdate_num = (30 + (Math.random() * 20));
};
};
} else {
if (AIState_str == "MILLING"){
if (Math.random() < 0.15){
StartMilling();
} else {
StartIdle();
FramesUntilAIStateUpdate_num = (30 + (Math.random() * 40));
};
} else {
if (AIState_str == "GULPING"){
if (Math.random() < 0.5){
StartGulping();
} else {
StartIdle();
FramesUntilAIStateUpdate_num = (30 + (Math.random() * 20));
};
} else {
if (AIState_str == "KNOCKED"){
RunAway();
} else {
if (AIState_str == "RUNNING_AWAY"){
Clear();
};
};
};
};
};
}
}
}//package com.trickysheep.coral.world.floaties.enemies
Section 36
//MuncherFish (com.trickysheep.coral.world.floaties.enemies.MuncherFish)
package com.trickysheep.coral.world.floaties.enemies {
import flash.events.*;
import com.trickysheep.coral.world.*;
import com.trickysheep.util.geometery.*;
import com.trickysheep.coral.world.floaties.*;
public class MuncherFish extends Fish {
public var CurrentTarget_floaty:Floaty;
public var MunchTarget_str:String;// = "POLYP"
public var BITE_DAMAGE:Number;// = 40
public var KnockedWhileMunching_bool;
public function MuncherFish():void{
BITE_DAMAGE = 40;
MunchTarget_str = "POLYP";
super();
}
function StartMunchApproach():void{
var _local1:Number;
var _local2:Vector;
AIState_str = "APPROACH_MUNCH_TARGET";
AIActive_bool = true;
trace("StartMunchApproach");
if (MunchTarget_str == "POLYP"){
CurrentTarget_floaty = FindTargetPolyp();
} else {
if (MunchTarget_str == "EGG"){
CurrentTarget_floaty = FindTargetTargetEgg();
};
};
trace("CurrentTarget_floaty", CurrentTarget_floaty);
if (CurrentTarget_floaty != null){
_local1 = 0;
if (CurrentTarget_floaty.myParticle.pos.x > myParticle.pos.x){
_local2 = CurrentTarget_floaty.myParticle.pos.addVector(MouthOffsetRight_vector);
} else {
_local2 = CurrentTarget_floaty.myParticle.pos.addVector(MouthOffsetLeft_vector);
};
if (MunchTarget_str == "EGG"){
_local2 = _local2.addVector(new Vector(0, 40, 0));
};
CurrentSwimAnim_str = APPROACH_ANIMATION;
_local1 = SwimToTarget(_local2, (SwimVelocity_num * 3));
FramesUntilAIStateUpdate_num = _local1;
SetListenForClick(true);
} else {
StartIdle();
};
}
override public function Draw():void{
super.Draw();
my_mc.hitarea_mc.visible = false;
}
override public function clearListeners(){
my_mc.removeEventListener("FISH_BITE", this.ProcessFishBite);
}
override public function Hit():void{
if (AIState_str == "MUNCHING"){
KnockedWhileMunching_bool = true;
} else {
KnockedWhileMunching_bool = false;
};
super.Hit();
}
override protected function doAIUpdate(){
if (AIState_str == "IDLE"){
if (IsOnscreen(20)){
if (Math.random() < 0.1){
StartMilling();
} else {
StartMunchApproach();
};
} else {
StartMilling();
};
} else {
if (AIState_str == "MILLING"){
if (Math.random() < 0.15){
StartMilling();
} else {
StartIdle();
FramesUntilAIStateUpdate_num = (40 + (Math.random() * 40));
};
} else {
if (AIState_str == "APPROACH_MUNCH_TARGET"){
if (Math.random() < 0.05){
StartIdle();
} else {
StartMunching();
};
} else {
if (AIState_str == "MUNCHING"){
if (Math.random() < 0.65){
StartIdle();
} else {
RunAway();
};
} else {
if (AIState_str == "KNOCKED"){
RunAway();
} else {
if (AIState_str == "POISONED"){
RunAway();
} else {
if (AIState_str == "RUNNING_AWAY"){
Clear();
};
};
};
};
};
};
};
}
function StartMunching():void{
AIState_str = "MUNCHING";
AIActive_bool = true;
myParticle.stopConstantVelocity();
myParticle.stopThrust();
my_mc.gotoAndPlay("munch");
FramesUntilAIStateUpdate_num = 90;
TriggerSound("FX_WOOSH_3");
SetListenForClick(true);
}
public function ProcessFishBite(_arg1:Event){
var _local2:Polyp;
var _local3:*;
var _local4:Vector;
var _local5:Boolean;
var _local6:*;
_local3 = myGameState.ReefPolyps_array;
_local5 = false;
_local6 = (_local3.length - 1);
while (_local6 >= 0) {
_local2 = _local3[_local6];
if (_local2.Alive_bool){
if ((FacingDirection_str == "RIGHT")){
_local4 = myParticle.pos.subtractVector(MouthOffsetRight_vector);
} else {
_local4 = myParticle.pos.subtractVector(MouthOffsetLeft_vector);
};
if (_local2.my_mc.hitTestPoint(_local4.x, _local4.y)){
_local2.PolypDied();
_local5 = true;
TriggerSound("FX_SLURP");
};
} else {
trace("trying to bite bad polyp:", _local2);
};
_local6--;
};
}
override public function setListeners(){
my_mc.addEventListener("FISH_BITE", this.ProcessFishBite);
}
}
}//package com.trickysheep.coral.world.floaties.enemies
Section 37
//OctoMuncherFish (com.trickysheep.coral.world.floaties.enemies.OctoMuncherFish)
package com.trickysheep.coral.world.floaties.enemies {
import flash.events.*;
import com.trickysheep.util.geometery.*;
import com.trickysheep.coral.world.floaties.*;
public class OctoMuncherFish extends MuncherFish {
private var IsListeningForMunch_bool:Boolean;
public function OctoMuncherFish():void{
SwimThrust_num = 20;
SwimVelocity_num = 0.1;
SwimDirection_str = "RIGHT";
MunchTarget_str = "EGG";
setMouthOffset(0, 0);
IDLE_ANIMATION = "idle";
IsListeningForMunch_bool = false;
}
public function SuckAnimFinished(_arg1:Event){
StopSucking();
}
private function SuckerEnteredFrame(_arg1:Event){
TestForEggMunch();
}
override public function Hit():void{
StopSucking();
super.Hit();
}
private function TestForEggMunch(){
var _local1:Egg;
var _local2:*;
var _local3:Vector;
var _local4:Boolean;
var _local5:*;
_local2 = myGameState.ReefEggs_array;
_local4 = false;
_local5 = (_local2.length - 1);
while (_local5 >= 0) {
_local1 = _local2[_local5];
if (!_local1.MarkedForDelete_bool){
if ((FacingDirection_str == "RIGHT")){
_local3 = myParticle.pos.subtractVector(MouthOffsetRight_vector);
} else {
_local3 = myParticle.pos.subtractVector(MouthOffsetLeft_vector);
};
if (_local1.my_mc.hitTestPoint(_local3.x, _local3.y)){
_local1.Clear();
_local4 = true;
TriggerSound("FX_SLURP");
};
};
_local5--;
};
}
private function SuckEggs(){
var _local1:*;
var _local2:Egg;
var _local3:*;
var _local4:Vector;
var _local5:Vector;
var _local6:*;
_local1 = myGameState.ReefEggs_array;
_local3 = 6;
if ((FacingDirection_str == "RIGHT")){
_local4 = myParticle.pos.subtractVector(MouthOffsetRight_vector);
} else {
_local4 = myParticle.pos.subtractVector(MouthOffsetLeft_vector);
};
for (_local6 in _local1) {
_local2 = _local1[_local6];
_local5 = _local4.subtractVector(_local2.myParticle.pos);
if (_local5.len() < 180){
_local5.normalize();
_local5 = _local5.multScalar(15);
_local2.myParticle.Push(_local5.x, _local5.y);
if (_local2.HitGround_bool){
_local2.my_mc.gotoAndStop("on");
_local2.StartFalling();
};
};
};
my_mc.addEventListener(Event.ENTER_FRAME, this.SuckerEnteredFrame);
my_mc.addEventListener("ANIM_DONE", this.SuckAnimFinished);
}
private function StopSucking(){
my_mc.removeEventListener("ANIM_DONE", this.SuckAnimFinished);
my_mc.removeEventListener(Event.ENTER_FRAME, this.SuckerEnteredFrame);
}
override public function ProcessFishBite(_arg1:Event){
SuckEggs();
}
override public function RunAway(){
AIState_str = "RUNNING_AWAY";
AIActive_bool = true;
EatingPlankton_bool = false;
CurrentSwimAnim_str = "run";
TurnAround();
if ((FacingDirection_str == "RIGHT")){
StartSwimmingInDirection(new Vector(-0.4, -1, 0), (SwimVelocity_num * 3));
} else {
StartSwimmingInDirection(new Vector(0.4, -1, 0), (SwimVelocity_num * 3));
};
SetListenForClick(false);
TriggerSound("FX_FISH_RUSH");
FramesUntilAIStateUpdate_num = (100 + (Math.random() * 60));
}
}
}//package com.trickysheep.coral.world.floaties.enemies
Section 38
//ParrotChomperFish (com.trickysheep.coral.world.floaties.enemies.ParrotChomperFish)
package com.trickysheep.coral.world.floaties.enemies {
import com.trickysheep.util.geometery.*;
public class ParrotChomperFish extends ChomperFish {
public function ParrotChomperFish():void{
SwimThrust_num = 15;
SwimVelocity_num = 0.09;
SwimDirection_str = "RIGHT";
BITE_DAMAGE = 110;
setMouthOffset(40, 11);
}
override public function StartChomping():void{
AIState_str = "CHOMPING";
AIActive_bool = true;
EatingPlankton_bool = false;
myParticle.stopThrust();
CurrentSwimAnim_str = "chomp";
if ((FacingDirection_str == "RIGHT")){
StartSwimmingInDirection(new Vector(1, 0, 0), (SwimVelocity_num * 0.5));
} else {
StartSwimmingInDirection(new Vector(-1, 0, 0), (SwimVelocity_num * 0.5));
};
FramesUntilAIStateUpdate_num = 90;
SetListenForClick(true);
}
}
}//package com.trickysheep.coral.world.floaties.enemies
Section 39
//PoisonFish (com.trickysheep.coral.world.floaties.enemies.PoisonFish)
package com.trickysheep.coral.world.floaties.enemies {
import flash.events.*;
import com.trickysheep.coral.world.*;
import com.trickysheep.coral.world.floaties.*;
public class PoisonFish extends Fish {
public var myPlanktonManager:PlanktonManager;
public function PoisonFish():void{
}
public function ProcessFishPoison(_arg1:Event){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local2 = 18;
_local3 = 0;
TriggerSound("FX_EXCRETE");
if (FacingDirection_str == "LEFT"){
_local2 = (_local2 * -1);
};
_local4 = (myParticle.pos.x + _local2);
_local5 = (myParticle.pos.y + _local3);
TriggerDropPoisonEvent((_local4 + _local2), (_local5 + _local3));
}
private function TriggerDropPoisonEvent(_arg1, _arg2):void{
this.dispatchEvent(new FloatyEvent("PoisonDrop", _arg1, _arg2));
}
override public function Draw():void{
super.Draw();
try {
my_mc.hitarea_mc.visible = false;
} catch(e:Error) {
};
}
override public function clearListeners(){
my_mc.removeEventListener("FISH_POISON", this.ProcessFishPoison);
}
override protected function doAIUpdate(){
if (AIState_str == "IDLE"){
if (IsOnscreen(50)){
if (Math.random() < 0.3){
StartMilling();
} else {
DropPoison();
};
} else {
MillToMiddle();
};
} else {
if (AIState_str == "MILLING"){
if (Math.random() < 0.25){
StartMilling();
} else {
if (Math.random() < 0.5){
DropPoison();
} else {
StartIdle();
FramesUntilAIStateUpdate_num = (40 + (Math.random() * 40));
};
};
} else {
if (AIState_str == "DROPPING_POISON"){
StartMilling();
} else {
if (AIState_str == "KNOCKED"){
RunAway();
} else {
if (AIState_str == "RUNNING_AWAY"){
Clear();
};
};
};
};
};
}
public function DropPoison():void{
AIState_str = "DROPPING_POISON";
AIActive_bool = true;
EatingPlankton_bool = false;
my_mc.gotoAndPlay("belch");
FramesUntilAIStateUpdate_num = 60;
SetListenForClick(true);
}
override public function RunAway(){
var _local1:*;
_local1 = SwimVelocity_num;
SwimVelocity_num = (SwimVelocity_num * 2);
super.RunAway();
SwimVelocity_num = _local1;
}
override public function setListeners(){
my_mc.addEventListener("FISH_POISON", this.ProcessFishPoison);
}
}
}//package com.trickysheep.coral.world.floaties.enemies
Section 40
//SquidMuncherFish (com.trickysheep.coral.world.floaties.enemies.SquidMuncherFish)
package com.trickysheep.coral.world.floaties.enemies {
import com.trickysheep.util.geometery.*;
public class SquidMuncherFish extends MuncherFish {
public function SquidMuncherFish():void{
SwimThrust_num = 15;
SwimVelocity_num = 0.09;
SwimDirection_str = "RIGHT";
MunchTarget_str = "POLYP";
setMouthOffset(0, 0);
}
override public function RunAway(){
AIState_str = "RUNNING_AWAY";
AIActive_bool = true;
EatingPlankton_bool = false;
CurrentSwimAnim_str = "run";
TurnAround();
if ((FacingDirection_str == "RIGHT")){
StartSwimmingInDirection(new Vector(-0.2, 1, 0), (SwimVelocity_num * 3.5));
} else {
StartSwimmingInDirection(new Vector(0.2, 1, 0), (SwimVelocity_num * 3.5));
};
SetListenForClick(false);
TriggerSound("FX_FISH_RUSH");
FramesUntilAIStateUpdate_num = (120 + (Math.random() * 40));
}
}
}//package com.trickysheep.coral.world.floaties.enemies
Section 41
//TinyPoisonFish (com.trickysheep.coral.world.floaties.enemies.TinyPoisonFish)
package com.trickysheep.coral.world.floaties.enemies {
public class TinyPoisonFish extends PoisonFish {
public function TinyPoisonFish():void{
SwimThrust_num = 20;
SwimVelocity_num = 0.11;
SwimDirection_str = "RIGHT";
setMouthOffset(23, 0);
}
}
}//package com.trickysheep.coral.world.floaties.enemies
Section 42
//Coral (com.trickysheep.coral.world.floaties.Coral)
package com.trickysheep.coral.world.floaties {
import flash.events.*;
import com.trickysheep.coral.world.*;
public class Coral extends Floaty {
public var Color_num:Number;
public var MaxHealth_num:Number;// = 100
public var Size_str:String;
public var Alive_bool:Boolean;
public var Type_str:String;
public var FacingRight_bool:Boolean;
public var HasCoralFish_bool:Boolean;
public var myCoralFish:CoralFish;
public var ID_num:Number;
public var CurrentHealth_num:Number;
public var HealthPercent_num:Number;
public var IsDamaged_bool:Boolean;
public function Coral():void{
MaxHealth_num = 100;
super();
CurrentHealth_num = MaxHealth_num;
HealthPercent_num = 1;
IsDamaged_bool = false;
Alive_bool = true;
HasCoralFish_bool = false;
FacingRight_bool = true;
}
private function CalculateHealthPercentage(){
HealthPercent_num = (CurrentHealth_num / MaxHealth_num);
}
public function HealCoral(_arg1:Number):void{
if (((Alive_bool) && (IsDamaged_bool))){
CurrentHealth_num = (CurrentHealth_num + _arg1);
if (CurrentHealth_num >= MaxHealth_num){
CurrentHealth_num = CurrentHealth_num;
IsDamaged_bool = false;
};
CalculateHealthPercentage();
Draw();
};
}
public function InitCoralFishLayers():void{
}
private function CoralDied():void{
Alive_bool = false;
my_mc.addEventListener("ANIM_DONE", this.CoralDieAnimationFinished);
my_mc.gotoAndPlay("die");
this.dispatchEvent(new FloatyEvent("CoralDied"));
}
public function CoralDieAnimationFinished(_arg1:Event){
my_mc.removeEventListener("ANIM_DONE", this.CoralDieAnimationFinished);
if (HasCoralFish_bool){
myCoralFish.RunOffScreen();
} else {
TriggerCoralReadyToDelete();
};
}
public function TriggerCoralReadyToDelete(){
this.dispatchEvent(new FloatyEvent("CoralReadyToDelete"));
}
override public function Draw():void{
if (my_mc.coral_grafix_mc.coral_with_color_mc.currentFrame != ID_num){
my_mc.coral_grafix_mc.coral_with_color_mc.gotoAndStop(ID_num);
};
if (my_mc.coral_grafix_mc.coral_hit_shape_mc.currentFrame != ID_num){
my_mc.coral_grafix_mc.coral_hit_shape_mc.gotoAndStop(ID_num);
};
my_mc.coral_grafix_mc.coral_hit_shape_mc.visible = false;
my_mc.coral_grafix_mc.coral_with_color_mc.alpha = HealthPercent_num;
if (FacingRight_bool){
my_mc.scaleX = 1;
} else {
my_mc.scaleX = -1;
};
my_mc.x = myParticle.pos.x;
my_mc.y = myParticle.pos.y;
}
public function DamageCoral(_arg1:Number):void{
if (Alive_bool){
IsDamaged_bool = true;
CurrentHealth_num = (CurrentHealth_num - _arg1);
if (CurrentHealth_num <= 0){
HealthPercent_num = 0;
CoralDied();
} else {
CalculateHealthPercentage();
Draw();
my_mc.gotoAndPlay("hit");
};
};
}
public function setCoralFish(_arg1:CoralFish):void{
HasCoralFish_bool = true;
myCoralFish = _arg1;
}
override public function clearListeners(){
my_mc.removeEventListener("ANIM_DONE", this.CoralDieAnimationFinished);
}
}
}//package com.trickysheep.coral.world.floaties
Section 43
//CoralFish (com.trickysheep.coral.world.floaties.CoralFish)
package com.trickysheep.coral.world.floaties {
import flash.display.*;
import com.trickysheep.util.geometery.*;
import com.trickysheep.coral.world.floaties.enemies.*;
public class CoralFish extends Fish {
public var myHomeCoral:Coral;
public var ID_num:Number;
public var FrontLayer_mc:MovieClip;
public var BackLayer_mc:MovieClip;
private var InFrontOfCoral_bool:Boolean;
public var mode_str:String;
public function CoralFish():void{
mode_str = "INIT";
FacingDirection_str = "RIGHT";
InFrontOfCoral_bool = true;
SwimThrust_num = 5;
SwimVelocity_num = 0.07;
SwimDirection_str = "RIGHT";
MAX_SPEED = 10;
MASS = 6;
IsClickable_bool = false;
}
public function Activate(){
Moving_bool = true;
AIActive_bool = true;
}
public function EnteredCoral():void{
myParticle.stopConstantVelocity();
myParticle.stopThrust();
ChangeSwimDirection();
StartIdle();
}
public function setHomeCoral(_arg1:Coral):void{
myHomeCoral = _arg1;
FrontLayer_mc = myHomeCoral.my_mc.coral_fish_front_layer_mc;
BackLayer_mc = myHomeCoral.my_mc.coral_fish_back_layer_mc;
}
override public function Draw():void{
if (my_mc.coral_fish_gfx_mc.currentFrame != ID_num){
my_mc.coral_fish_gfx_mc.gotoAndStop(ID_num);
};
if (FacingDirection_str == "LEFT"){
my_mc.scaleX = -1;
} else {
my_mc.scaleX = 1;
};
my_mc.x = myParticle.pos.x;
my_mc.y = myParticle.pos.y;
}
public function Deactivate(){
Moving_bool = false;
AIActive_bool = false;
}
override protected function doAIUpdate(){
var _local1:Number;
_local1 = 90;
if (AIState_str == "ENTERING"){
if (myParticle.pos.x > -120){
EnteredCoral();
} else {
_local1 = 5;
};
} else {
if (AIState_str == "SWIMMING"){
if ((((((SwimDirection_str == "LEFT")) && ((myParticle.pos.x < 0)))) || ((((SwimDirection_str == "RIGHT")) && ((myParticle.pos.x > 0)))))){
ChangeSwimDirection();
StartIdle();
_local1 = (30 + (Math.random() * 40));
} else {
StartIdle();
_local1 = (30 + (Math.random() * 40));
};
} else {
if (AIState_str == "IDLE"){
StartSwim();
_local1 = (60 + (Math.random() * 40));
};
};
};
FramesUntilAIStateUpdate_num = _local1;
}
public function RunOffScreen():void{
var _local1:*;
mode_str = "RUNNING";
AIActive_bool = false;
_local1 = 30;
if (FacingDirection_str == "LEFT"){
myParticle.setConstantVelocity(-(_local1), 0);
} else {
myParticle.setConstantVelocity(_local1, 0);
};
}
public function Enter():void{
myParticle.setConstantVelocity((MAX_SPEED / 2), 0);
AIState_str = "ENTERING";
AIActive_bool = true;
FramesUntilAIStateUpdate_num = 5;
}
public function IsInFrontOfCoral():Boolean{
return (InFrontOfCoral_bool);
}
public function StartSwim():void{
var _local1:*;
AIState_str = "SWIMMING";
AIActive_bool = true;
_local1 = (Math.random() * 0.1);
if ((((Math.random() < 0.5)) && ((myParticle.pos.y < -50)))){
_local1 = (_local1 * 1);
} else {
_local1 = (_local1 * -1);
};
if (SwimDirection_str == "RIGHT"){
StartSwimmingInDirection(new Vector(1, _local1, 0), SwimVelocity_num);
} else {
StartSwimmingInDirection(new Vector(-1, _local1, 0), SwimVelocity_num);
};
}
}
}//package com.trickysheep.coral.world.floaties
Section 44
//CoralFishManager (com.trickysheep.coral.world.floaties.CoralFishManager)
package com.trickysheep.coral.world.floaties {
import flash.events.*;
import com.trickysheep.coral.world.*;
import com.trickysheep.coral.*;
import com.trickysheep.coral.world.floaties.enemies.*;
public class CoralFishManager extends FloatyManager {
private var TYPES_OF_FISH;// = 14
private var FISH_PER_CORAL;// = 0.34
public function CoralFishManager():void{
FISH_PER_CORAL = 0.34;
TYPES_OF_FISH = 14;
super();
}
public function CheckIfTimeForNewFish(_arg1:GameState){
var _local2:*;
var _local3:*;
var _local4:Coral;
var _local5:*;
_local2 = Math.floor((_arg1.ReefCorals_array.length * FISH_PER_CORAL));
_local3 = Floaty_array.length;
if (_local2 > _local3){
_local5 = 0;
while (_local5 < _arg1.ReefCorals_array.length) {
_local4 = _arg1.ReefCorals_array[_local5];
if (!_local4.HasCoralFish_bool){
CreateCoralFish(_local4);
break;
};
_local5++;
};
};
}
override protected function RemoveAllEventListeners(_arg1:Floaty){
_arg1.clearListeners();
_arg1.removeEventListener(FloatyEvent.FLOATY_EVENT, this.CoralFishEventHandler);
_arg1.my_mc.removeEventListener(Event.ENTER_FRAME, this.NewCoralFishEnteredFrame);
}
public function ActivateAll(){
var _local1:*;
_local1 = 0;
while (_local1 < Floaty_array.length) {
Floaty_array[_local1].Activate();
_local1++;
};
}
private function CoralFishEventHandler(_arg1:FloatyEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "FishReadyToDelete"){
};
}
override public function DeleteFloatyMC(_arg1:Floaty){
var _local2:CoralFish;
_local2 = CoralFish(_arg1);
if (_local2.IsInFrontOfCoral()){
_local2.FrontLayer_mc.removeChild(_local2.my_mc);
} else {
_local2.BackLayer_mc.removeChild(_local2.my_mc);
};
}
public function CreateCoralFish(_arg1:Coral){
var _local2:CoralFish;
var _local3:Particle;
_local2 = new CoralFish();
_local2.setFacingDirection("RIGHT");
_local2.setHomeCoral(_arg1);
_local2.ID_num = Math.ceil((Math.random() * TYPES_OF_FISH));
if (GameSettings.getInstance().getHolidayModeOn()){
_local2.ID_num = (_local2.ID_num + 40);
};
_local3 = new Particle();
_local3.setPosition(-750, (-35 - (Math.random() * 30)));
_local3.setMass(_local2.MASS);
_local3.setMaxSpeed(_local2.MAX_SPEED);
_local2.setParticle(_local3);
Floaty_array.push(_local2);
_arg1.setCoralFish(_local2);
InitCoralFish(_local2);
}
private function NewCoralFishEnteredFrame(_arg1:Event){
var _local2:*;
_arg1.target.visible = true;
_arg1.target.removeEventListener(Event.ENTER_FRAME, this.NewCoralFishEnteredFrame);
_local2 = _arg1.target.CoralFish_Parent;
_local2.Draw();
}
override protected function InitFloatyLayer(){
FloatyLayer_mc = World_mc.coral_layer_mc;
}
public function InitFromGameState(_arg1:GameState){
}
public function CheckForOffscreen():void{
var _local1:CoralFish;
var _local2:Coral;
var _local3:*;
var _local4:*;
var _local5:*;
for (_local5 in Floaty_array) {
_local1 = Floaty_array[_local5];
if (_local1.mode_str == "RUNNING"){
_local2 = _local1.myHomeCoral;
_local3 = (_local1.myParticle.pos.x + _local2.myParticle.pos.x);
_local4 = (_local1.myParticle.pos.y + _local2.myParticle.pos.y);
if (!IsOnScreen(_local3, _local4, 20)){
_local2.TriggerCoralReadyToDelete();
RemoveFloaty(_local1);
};
};
};
}
public function InitCoralFish(_arg1:CoralFish):void{
var _local2:Particle;
var _local3:*;
_local2 = _arg1.myParticle;
_local3 = new CoralFishMC();
if (_arg1.myHomeCoral.FacingRight_bool){
_arg1.FrontLayer_mc.scaleX = 1;
_arg1.BackLayer_mc.scaleX = 1;
} else {
_arg1.FrontLayer_mc.scaleX = -1;
_arg1.BackLayer_mc.scaleX = -1;
};
if (_arg1.IsInFrontOfCoral()){
_arg1.FrontLayer_mc.addChild(_local3);
} else {
_arg1.BackLayer_mc.addChild(_local3);
};
_local3.visible = false;
_local3.CoralFish_Parent = _arg1;
_local3.addEventListener(Event.ENTER_FRAME, this.NewCoralFishEnteredFrame);
_arg1.addEventListener(FloatyEvent.FLOATY_EVENT, this.CoralFishEventHandler);
_arg1.setMC(_local3);
_arg1.Enter();
}
public function DeactivateAll(){
var _local1:*;
_local1 = 0;
while (_local1 < Floaty_array.length) {
Floaty_array[_local1].Deactivate();
_local1++;
};
}
}
}//package com.trickysheep.coral.world.floaties
Section 45
//CoralManager (com.trickysheep.coral.world.floaties.CoralManager)
package com.trickysheep.coral.world.floaties {
import flash.events.*;
import com.trickysheep.coral.world.*;
import com.trickysheep.coral.*;
public class CoralManager extends FloatyManager {
private var CoralHealRate_num:Number;// = 0.25
public function CoralManager():void{
CoralHealRate_num = 0.25;
super();
}
override protected function RemoveAllEventListeners(_arg1:Floaty){
_arg1.clearListeners();
_arg1.removeEventListener(FloatyEvent.FLOATY_EVENT, this.CoralEventHandler);
_arg1.my_mc.removeEventListener(Event.ENTER_FRAME, this.NewCoralEnteredFrame);
_arg1.my_mc.removeEventListener(Event.ENTER_FRAME, this.GrowCoralEnteredFrame);
_arg1.my_mc.removeEventListener(Event.ENTER_FRAME, this.TryToPlayGrowAnim);
}
private function CoralEventHandler(_arg1:FloatyEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "CoralDied"){
this.dispatchEvent(new FloatyEvent("CoralDied", _arg1.target));
} else {
if (_local2 == "CoralReadyToDelete"){
RemoveFloaty(Coral(_arg1.target));
};
};
}
public function HealCorals():void{
var _local1:*;
_local1 = (Floaty_array.length - 1);
while (_local1 >= 0) {
if (Floaty_array[_local1].IsDamaged_bool){
Floaty_array[_local1].HealCoral(CoralHealRate_num);
};
_local1--;
};
}
private function GrowCoralEnteredFrame(_arg1:Event){
var _local2:*;
_local2 = _arg1.target.Coral_Parent;
_local2.my_mc.coral_grafix_mc.Coral_Parent = _local2;
_local2.my_mc.coral_grafix_mc.addEventListener(Event.ENTER_FRAME, this.GrowCoralGraphixEnteredFrame);
_local2.InitCoralFishLayers();
_arg1.target.removeEventListener(Event.ENTER_FRAME, this.GrowCoralEnteredFrame);
}
public function TriggerCoralLayerNeedsDepthFix(){
this.dispatchEvent(new FloatyEvent("CoralLayerNeedsDepthFix"));
}
private function TryToPlayGrowAnim(_arg1:Event){
var PolypParent:Polyp;
var event = _arg1;
try {
event.target.gotoAndPlay("grow");
event.target.visible = true;
PolypParent = event.target.Polyp_Parent;
PolypToCoralGrowComplete(event.target.Coral_Parent, PolypParent);
event.target.removeEventListener(Event.ENTER_FRAME, this.TryToPlayGrowAnim);
} catch(e:Error) {
};
}
private function GrowCoralGraphixEnteredFrame(_arg1:Event){
var _local2:*;
_local2 = _arg1.target.Coral_Parent;
_local2.Draw();
_local2.my_mc.addEventListener(Event.ENTER_FRAME, this.TryToPlayGrowAnim);
_arg1.target.removeEventListener(Event.ENTER_FRAME, this.GrowCoralGraphixEnteredFrame);
}
public function InitCoral(_arg1:Coral):void{
var _local2:Particle;
var _local3:CoralMC;
_local2 = _arg1.myParticle;
_local2.setMass(15);
_local2.setMaxSpeed(2);
_local3 = new CoralMC();
FloatyLayer_mc.addChild(_local3);
_local3.visible = false;
_local3.Coral_Parent = _arg1;
_local3.addEventListener(Event.ENTER_FRAME, this.NewCoralEnteredFrame);
_arg1.addEventListener(FloatyEvent.FLOATY_EVENT, this.CoralEventHandler);
_arg1.setMC(_local3);
TriggerCoralLayerNeedsDepthFix();
}
public function AddCoralFromPolyp(_arg1:Polyp):void{
var _local2:Coral;
var _local3:Particle;
var _local4:CoralMC;
_local2 = new Coral();
_local2.Type_str = _arg1.CoralType_str;
_local2.ID_num = _arg1.CoralID_num;
_local2.FacingRight_bool = _arg1.CoralFacingRight_bool;
_local2.Size_str = _arg1.Size_str;
_local3 = _local2.myParticle;
_local3.setPosition(_arg1.myParticle.pos.x, _arg1.myParticle.pos.y);
_local3.setMass(15);
_local3.setMaxSpeed(2);
_local4 = new CoralMC();
FloatyLayer_mc.addChild(_local4);
_local4.visible = false;
_local4.Coral_Parent = _local2;
_local4.Polyp_Parent = _arg1;
Floaty_array.push(_local2);
_local4.addEventListener(Event.ENTER_FRAME, this.GrowCoralEnteredFrame);
_local2.addEventListener(FloatyEvent.FLOATY_EVENT, this.CoralEventHandler);
_local2.setMC(_local4);
_arg1.Clear();
TriggerCoralLayerNeedsDepthFix();
}
override protected function InitFloatyLayer(){
FloatyLayer_mc = World_mc.coral_layer_mc;
FloatyLayer_mc.mouseEnabled = false;
FloatyLayer_mc.mouseChildren = false;
}
public function InitFromGameState(_arg1:GameState){
Floaty_array = new Array();
}
private function NewCoralEnteredFrame(_arg1:Event){
var _local2:*;
_arg1.target.visible = true;
_arg1.target.removeEventListener(Event.ENTER_FRAME, this.NewCoralEnteredFrame);
_local2 = _arg1.target.Coral_Parent;
_arg1.target.mouseEnabled = false;
_arg1.target.mouseChildren = false;
_local2.Draw();
}
private function PolypToCoralGrowComplete(_arg1:Coral, _arg2:Polyp):void{
this.dispatchEvent(new FloatyEvent("PolypToCoralGrowComplete", _arg1, _arg2));
}
public function getLivingCorals():Array{
var _local1:Array;
var _local2:*;
_local1 = new Array();
_local2 = 0;
while (_local2 < Floaty_array.length) {
if (Floaty_array[_local2].Alive_bool){
_local1.push(Floaty_array[_local2]);
};
_local2++;
};
return (_local1);
}
public function getLivingCoralCount():Number{
var _local1:*;
var _local2:*;
_local1 = 0;
_local2 = 0;
while (_local2 < Floaty_array.length) {
if (Floaty_array[_local2].Alive_bool){
_local1++;
};
_local2++;
};
return (_local1);
}
public function TestCoralHit():void{
Floaty_array[0].DamageCoral(25);
}
}
}//package com.trickysheep.coral.world.floaties
Section 46
//CoralPopulation (com.trickysheep.coral.world.floaties.CoralPopulation)
package com.trickysheep.coral.world.floaties {
public class CoralPopulation {
public var WeightedValue_num:Number;
public var ID_num:Number;
public var TieBreaker_num:Number;
public var Type_str:String;
public var Count_num:Number;
public function CoralPopulation(_arg1:Number, _arg2:Number, _arg3:String){
ID_num = _arg1;
Count_num = _arg2;
Type_str = _arg3;
CalculateWeightedValue();
}
private function CalculateWeightedValue(){
var _local1:*;
WeightedValue_num = 0;
if (Type_str == "RARE"){
_local1 = 100;
};
if (Type_str == "SPECIAL"){
_local1 = 50;
};
if (Type_str == "COMMON"){
_local1 = 30;
};
WeightedValue_num = ((Count_num + 1) * _local1);
TieBreaker_num = Math.random();
}
public function toString():String{
return (((((((("\nID: " + ID_num) + " Count_num: ") + Count_num) + " Type_str: ") + Type_str) + " WeightedValue_num: ") + WeightedValue_num));
}
}
}//package com.trickysheep.coral.world.floaties
Section 47
//Egg (com.trickysheep.coral.world.floaties.Egg)
package com.trickysheep.coral.world.floaties {
import flash.events.*;
import com.trickysheep.coral.world.*;
import com.trickysheep.coral.*;
import flash.utils.*;
public class Egg extends Floaty {
public var MASS;// = 1
public var Color_num:Number;
public var myFallSpeed_num:Number;
public var Size_str:String;
private var EGG_ON_GROUND_TIME_OUT:Number;// = 5000
private var EggOnGroundTimer:Timer;
public var HitGround_bool:Boolean;
public var IsOnScreen_bool:Boolean;
public var myPolyp:Polyp;
public var MAX_SPEED;// = 10
public function Egg():void{
MAX_SPEED = 10;
MASS = 1;
EGG_ON_GROUND_TIME_OUT = 5000;
super();
myPolyp = new Polyp();
HitGround_bool = false;
IsOnScreen_bool = false;
Size_str = "SMALL";
EggOnGroundTimer = new Timer(EGG_ON_GROUND_TIME_OUT);
EggOnGroundTimer.addEventListener(TimerEvent.TIMER, this.EggOnGroundTimerHandler);
}
private function EggClicked(_arg1:Event){
my_mc.stop();
this.dispatchEvent(new FloatyEvent("EggClicked"));
EggOnGroundTimer.stop();
}
public function Activate():void{
my_mc.clickarea_mc.buttonMode = true;
my_mc.clickarea_mc.addEventListener(MouseEvent.MOUSE_DOWN, this.EggClicked);
}
public function PlayCollectedAnim():void{
Clear();
}
public function Deactivate():void{
my_mc.clickarea_mc.buttonMode = false;
my_mc.clickarea_mc.removeEventListener(MouseEvent.MOUSE_DOWN, this.EggClicked);
}
public function EggOnGroundTimerHandler(_arg1:TimerEvent):void{
EggOnGroundTimer.stop();
my_mc.addEventListener("ANIM_DONE", this.EggTimeOutAnimFinished);
my_mc.gotoAndPlay("about_to_disappear");
}
public function HitGround():void{
myParticle.stopConstantVelocity();
myParticle.AffectedByExternalForces_bool = false;
HitGround_bool = true;
my_mc.gotoAndPlay("hit_ground");
EggOnGroundTimer.start();
}
override public function Draw():void{
if (my_mc.egg_graphics_mc.currentFrame != (Color_num + 1)){
my_mc.egg_graphics_mc.gotoAndStop((Color_num + 1));
};
try {
if (GameSettings.getInstance().getColorBlindMode()){
if (my_mc.egg_graphics_mc.symbols_mc.currentFrame != (Color_num + 1)){
my_mc.egg_graphics_mc.symbols_mc.gotoAndStop((Color_num + 1));
};
my_mc.egg_graphics_mc.symbols_mc.visible = true;
} else {
my_mc.egg_graphics_mc.symbols_mc.visible = false;
};
} catch(e:Error) {
};
my_mc.clickarea_mc.alpha = 0;
my_mc.x = myParticle.pos.x;
my_mc.y = myParticle.pos.y;
}
public function StartFalling():void{
myParticle.setConstantVelocity(0, myFallSpeed_num);
myParticle.AffectedByExternalForces_bool = true;
HitGround_bool = false;
}
public function EggTimeOutAnimFinished(_arg1:Event){
my_mc.removeEventListener("ANIM_DONE", this.EggTimeOutAnimFinished);
Clear();
}
override public function clearListeners(){
EggOnGroundTimer.stop();
EggOnGroundTimer.removeEventListener(TimerEvent.TIMER, this.EggOnGroundTimerHandler);
my_mc.clickarea_mc.removeEventListener(MouseEvent.MOUSE_DOWN, this.EggClicked);
my_mc.removeEventListener("ANIM_DONE", this.EggTimeOutAnimFinished);
}
}
}//package com.trickysheep.coral.world.floaties
Section 48
//EggManager (com.trickysheep.coral.world.floaties.EggManager)
package com.trickysheep.coral.world.floaties {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.world.*;
import com.trickysheep.coral.*;
public class EggManager extends FloatyManager {
public var EGG_FALL_SPEED_MAX:Number;// = 0.1
public var EggsSpawning_bool:Boolean;
public var PolypPlacementInProgress_bool:Boolean;
public var DraggablePolyp_mc:MovieClip;
public var EggRespawnRandomnessWindow_num:Number;// = 60
public var PlacingPolyp_bool:Boolean;
public var PolypSmallColorMC_array:Array;
public var MaxEggs_num:Number;// = 2
public var EggPolyp:Polyp;
public var OffscreenMargin_num:Number;// = 10
public var EggRespawnRate_num:Number;
public var myGameState:GameState;
public var PolypLargeColorMC_array:Array;
public var EGG_MASS_MIN:Number;// = 0.3
public var EGG_MASS_MAX:Number;// = 2
public var EggToPlace:Egg;
public var POLYP_PLANKTON_NEEDED_SMALL:int;// = 1
public var FramesUntilNextSpawn_num;
public var EggSpawning_bool:Boolean;
public var PolypMediumColorMC_array:Array;
public var POLYP_PLANKTON_NEEDED_MEDIUM:int;// = 3
private var Dragging_bool:Boolean;
public var DraggableEgg_mc:MovieClip;
public var POLYP_PLANKTON_NEEDED_LARGE:int;// = 5
public var EGG_FALL_SPEED_MIN:Number;// = 0.04
public function EggManager():void{
var _local1:*;
EggRespawnRandomnessWindow_num = 60;
MaxEggs_num = 2;
OffscreenMargin_num = 10;
EGG_MASS_MIN = 0.3;
EGG_MASS_MAX = 2;
EGG_FALL_SPEED_MIN = 0.04;
EGG_FALL_SPEED_MAX = 0.1;
POLYP_PLANKTON_NEEDED_SMALL = 1;
POLYP_PLANKTON_NEEDED_MEDIUM = 3;
POLYP_PLANKTON_NEEDED_LARGE = 5;
super();
PlacingPolyp_bool = true;
PolypPlacementInProgress_bool = false;
PolypSmallColorMC_array = new Array();
PolypMediumColorMC_array = new Array();
PolypLargeColorMC_array = new Array();
_local1 = 0;
while (_local1 < 7) {
PolypSmallColorMC_array[_local1] = new PolypSmallMC();
PolypMediumColorMC_array[_local1] = new PolypMediumMC();
PolypLargeColorMC_array[_local1] = new PolypLargeMC();
_local1++;
};
HideColorPolyps();
DraggablePolyp_mc = PolypSmallColorMC_array[0];
}
public function StartPolypPlacement(_arg1:Egg){
EggToPlace = _arg1;
EggPolyp = EggToPlace.myPolyp;
EggPolyp.FacingRight_bool = ((Math.random())<0.5) ? true : false;
EggPolyp.CoralFacingRight_bool = EggPolyp.FacingRight_bool;
HideColorPolyps();
switch (EggToPlace.Size_str){
case "SMALL":
DraggablePolyp_mc = PolypSmallColorMC_array[_arg1.myPolyp.Color_num];
break;
case "MEDIUM":
DraggablePolyp_mc = PolypMediumColorMC_array[_arg1.myPolyp.Color_num];
break;
case "LARGE":
DraggablePolyp_mc = PolypLargeColorMC_array[_arg1.myPolyp.Color_num];
break;
};
DrawDraggablePolyp();
StartDragging();
}
private function IsSpotOverGoo(_arg1:Number, _arg2:Number):Boolean{
var _local3:Boolean;
var _local4:Array;
var _local5:MovieClip;
var _local6:*;
if (!myGameState.CurrentReef.HasGoo_bool){
return (false);
};
_local3 = false;
_local4 = myGameState.CurrentReef.getUncleanGooArray();
_local6 = 0;
while (_local6 < _local4.length) {
_local5 = _local4[_local6];
_local3 = _local5.no_grow_area_mc.hitTestPoint(_arg1, _arg2, true);
if (_local3){
break;
};
_local6++;
};
return (_local3);
}
private function DrawDraggablePolyp(){
if (EggPolyp.FacingRight_bool){
DraggablePolyp_mc.scaleX = 1;
} else {
DraggablePolyp_mc.scaleX = -1;
};
DraggablePolyp_mc.SetTentacleColor(DraggablePolyp_mc.tentacles_mc);
}
private function DragMouseRelease(_arg1:Event){
StopDragging();
}
override public function ClearAll(){
var _local1:*;
_local1 = 0;
while (_local1 < Floaty_array.length) {
if (Floaty_array[_local1].IsOnScreen_bool){
Floaty_array[_local1].Clear();
} else {
Floaty_array[_local1].clearListeners();
Floaty_array[_local1].MarkedForDelete_bool = true;
DeleteFloatyMC(Floaty_array[_local1]);
};
_local1++;
};
Floaty_array = new Array();
}
private function OverLeftSideBuildArea():Boolean{
var _local1:*;
var _local2:Boolean;
_local1 = myGameState.CurrentReef.my_mc.buildarea_mc.buildarea_left_mc;
_local2 = _local1.hitTestPoint(DraggablePolyp_mc.x, DraggablePolyp_mc.y, true);
return (_local2);
}
private function NewEggEnteredFrame(_arg1:Event){
var _local2:*;
_arg1.target.visible = true;
_arg1.target.removeEventListener(Event.ENTER_FRAME, this.NewEggEnteredFrame);
_local2 = _arg1.target.Egg_Parent;
_local2.IsOnScreen_bool = true;
_local2.Draw();
_local2.Activate();
_local2.my_mc.gotoAndPlay("in");
}
private function DragUpdate(_arg1:Event){
var _local2:*;
var _local3:*;
_local2 = World_mc.stage.mouseX;
_local3 = World_mc.stage.mouseY;
DraggableEgg_mc.x = _local2;
DraggableEgg_mc.y = _local3;
DraggableEgg_mc.visible = true;
DraggablePolyp_mc.x = _local2;
DraggablePolyp_mc.y = _local3;
DraggablePolyp_mc.visible = true;
if (PolypSpotIsBuildable()){
DraggablePolyp_mc.visible = true;
DraggableEgg_mc.visible = false;
if (OverLeftSideBuildArea()){
if (EggPolyp.FacingRight_bool){
EggPolyp.FacingRight_bool = false;
EggPolyp.CoralFacingRight_bool = false;
DrawDraggablePolyp();
};
} else {
if (!EggPolyp.FacingRight_bool){
EggPolyp.FacingRight_bool = true;
EggPolyp.CoralFacingRight_bool = true;
DrawDraggablePolyp();
};
};
if (IsSpotClear(DraggablePolyp_mc.x, DraggablePolyp_mc.y)){
DraggablePolyp_mc.alpha = 1;
} else {
DraggablePolyp_mc.alpha = 0.4;
};
} else {
DraggableEgg_mc.visible = true;
DraggablePolyp_mc.visible = false;
};
}
private function IsSpotClear(_arg1:Number, _arg2:Number):Boolean{
if (!IsSpotOverPolyp(_arg1, _arg2)){
if (!IsSpotOverCoral(_arg1, _arg2)){
if (!IsSpotOverGoo(_arg1, _arg2)){
return (true);
};
};
};
return (false);
}
public function CheckForHitGround(_arg1:Reef):void{
var _local2:Egg;
var _local3:Boolean;
var _local4:*;
_local4 = (Floaty_array.length - 1);
while (_local4 >= 0) {
_local2 = Floaty_array[_local4];
if (((!(_local2.HitGround_bool)) && (!(_local2.MarkedForDelete_bool)))){
_local3 = _arg1.TestGroundHit(_local2.myParticle.pos.x, _local2.myParticle.pos.y);
if (_local3){
_local2.HitGround();
};
};
_local4--;
};
}
public function HideColorPolyps(){
var _local1:*;
_local1 = 0;
while (_local1 < 7) {
PolypSmallColorMC_array[_local1].visible = false;
PolypMediumColorMC_array[_local1].visible = false;
PolypLargeColorMC_array[_local1].visible = false;
_local1++;
};
}
override protected function InitFloatyLayer(){
var _local1:*;
var _local2:*;
FloatyLayer_mc = World_mc.egg_layer_mc;
if (!FloatyLayer_mc.contains(DraggablePolyp_mc)){
FloatyLayer_mc.addChild(DraggablePolyp_mc);
_local1 = 0;
while (_local1 < PolypSmallColorMC_array.length) {
_local2 = new Polyp();
_local2.Color_num = _local1;
PolypSmallColorMC_array[_local1].Polyp_Parent = _local2;
PolypMediumColorMC_array[_local1].Polyp_Parent = _local2;
PolypLargeColorMC_array[_local1].Polyp_Parent = _local2;
FloatyLayer_mc.addChild(PolypSmallColorMC_array[_local1]);
FloatyLayer_mc.addChild(PolypMediumColorMC_array[_local1]);
FloatyLayer_mc.addChild(PolypLargeColorMC_array[_local1]);
PolypSmallColorMC_array[_local1].visible = false;
PolypMediumColorMC_array[_local1].visible = false;
PolypLargeColorMC_array[_local1].visible = false;
PolypSmallColorMC_array[_local1].hitarea_mc.visible = false;
PolypMediumColorMC_array[_local1].hitarea_mc.visible = false;
PolypLargeColorMC_array[_local1].hitarea_mc.visible = false;
_local1++;
};
};
}
public function CheckForEggSpawn():void{
if (EggsSpawning_bool){
FramesUntilNextSpawn_num--;
if (FramesUntilNextSpawn_num < 0){
SpawnEgg();
};
};
}
private function PolypPlaced(){
EggPolyp.myParticle.pos.x = DraggablePolyp_mc.x;
EggPolyp.myParticle.pos.y = DraggablePolyp_mc.y;
PolypPlacementInProgress_bool = true;
this.dispatchEvent(new FloatyEvent("PolypPlacedInWorld", EggPolyp));
}
public function CreatePolyp():Polyp{
var _local1:*;
_local1 = new Polyp();
_local1.Size_str = ChooseNextSizeToSeed();
if (_local1.Size_str == "SMALL"){
_local1.PlanktonNeeded_num = POLYP_PLANKTON_NEEDED_SMALL;
} else {
if (_local1.Size_str == "MEDIUM"){
_local1.PlanktonNeeded_num = POLYP_PLANKTON_NEEDED_MEDIUM;
} else {
if (_local1.Size_str == "LARGE"){
_local1.PlanktonNeeded_num = POLYP_PLANKTON_NEEDED_LARGE;
};
};
};
_local1.Color_num = ChooseNextColorToSeed();
_local1.CoralID_num = ChooseNextCoralToSeed(_local1.Size_str, _local1.Color_num);
return (_local1);
}
public function ChooseNextSizeToSeed():String{
var _local1:String;
var _local2:Number;
var _local3:*;
var _local4:*;
var _local5:*;
_local2 = Math.random();
_local3 = myGameState.CurrentLevel.EggSizeSmallRatio_num;
_local4 = myGameState.CurrentLevel.EggSizeMediumRatio_num;
_local5 = myGameState.CurrentLevel.EggSizeLargeRatio_num;
if (_local2 <= _local3){
_local1 = "SMALL";
} else {
if (_local2 <= (_local3 + _local4)){
_local1 = "MEDIUM";
} else {
_local1 = "LARGE";
};
};
return (_local1);
}
override protected function RemoveAllEventListeners(_arg1:Floaty){
_arg1.clearListeners();
_arg1.removeEventListener(FloatyEvent.FLOATY_EVENT, this.EggEventHandler);
_arg1.my_mc.removeEventListener(Event.ENTER_FRAME, this.NewEggEnteredFrame);
}
private function StopDragging(){
Dragging_bool = false;
DraggablePolyp_mc.visible = false;
World_mc.stage.removeEventListener(MouseEvent.MOUSE_UP, this.DragMouseRelease);
World_mc.removeEventListener(Event.ENTER_FRAME, this.DragUpdate);
if (PolypSpotIsValid()){
DraggablePolyp_mc.visible = true;
PolypPlaced();
TriggerSound("FX_POLYP_STUCK");
} else {
EggToPlace.myParticle.pos.x = World_mc.stage.mouseX;
EggToPlace.myParticle.pos.y = World_mc.stage.mouseY;
EggToPlace.myParticle.old_pos.x = World_mc.stage.mouseX;
EggToPlace.myParticle.old_pos.y = World_mc.stage.mouseY;
EggToPlace.StartFalling();
EggToPlace.my_mc.visible = true;
EggToPlace.my_mc.gotoAndPlay("in");
EggToPlace.Moving_bool = true;
};
}
public function ClearEgg(_arg1:Egg){
_arg1.Clear();
}
private function IsSpotOverPolyp(_arg1:Number, _arg2:Number):Boolean{
var _local3:Boolean;
var _local4:Array;
var _local5:MovieClip;
var _local6:*;
_local3 = false;
_local4 = myGameState.ReefPolyps_array;
_local6 = 0;
while (_local6 < _local4.length) {
_local5 = _local4[_local6].my_mc;
_local3 = _local5.hitTestPoint(_arg1, _arg2, true);
if (_local3){
break;
};
_local6++;
};
return (_local3);
}
public function ChooseNextColorToSeed():Number{
var _local1:*;
var _local2:*;
var _local3:*;
_local1 = myGameState.CurrentLevel.AvailableEggColors_array;
_local2 = Math.floor((Math.random() * _local1.length));
_local3 = _local1[_local2];
return (_local3);
}
public function SpawnEgg(){
var _local1:*;
if ((Floaty_array.length + myGameState.ReefPolyps_array.length) < MaxEggs_num){
_local1 = ((Math.random() * 600) + 50);
CreateEggDrop(_local1, -10);
FramesUntilNextSpawn_num = (EggRespawnRate_num + (((Math.random() * EggRespawnRandomnessWindow_num) * 2) - EggRespawnRandomnessWindow_num));
};
}
private function IsSpotOverCoral(_arg1:Number, _arg2:Number):Boolean{
var _local3:Boolean;
var _local4:Array;
var _local5:MovieClip;
var _local6:*;
_local3 = false;
_local4 = myGameState.ReefCorals_array;
_local6 = 0;
while (_local6 < _local4.length) {
_local5 = _local4[_local6].my_mc.coral_grafix_mc.coral_hit_shape_mc;
_local3 = _local5.hitTestPoint(_arg1, _arg2, true);
if (_local3){
break;
};
_local6++;
};
return (_local3);
}
public function InitEgg(_arg1:Egg):void{
var _local2:Particle;
var _local3:Number;
var _local4:*;
_local2 = _arg1.myParticle;
_local3 = ((Math.random() * (EGG_MASS_MAX - EGG_MASS_MIN)) + EGG_MASS_MIN);
_local2.setMass(_local3);
_local2.setMaxSpeed(_arg1.MAX_SPEED);
if (_arg1.Size_str == "SMALL"){
_local4 = new EggSmallMC();
} else {
if (_arg1.Size_str == "MEDIUM"){
_local4 = new EggMediumMC();
} else {
if (_arg1.Size_str == "LARGE"){
_local4 = new EggLargeMC();
};
};
};
FloatyLayer_mc.addChild(_local4);
_local4.visible = false;
_local4.Egg_Parent = _arg1;
_arg1.setMC(_local4);
_local4.addEventListener(Event.ENTER_FRAME, this.NewEggEnteredFrame);
_arg1.addEventListener(FloatyEvent.FLOATY_EVENT, this.EggEventHandler);
}
private function PolypSpotIsBuildable():Boolean{
var _local1:*;
var _local2:Boolean;
_local1 = myGameState.CurrentReef.my_mc.buildarea_mc;
_local2 = _local1.hitTestPoint(DraggablePolyp_mc.x, DraggablePolyp_mc.y, true);
return (_local2);
}
private function StartDragging(){
Dragging_bool = true;
EggToPlace.Moving_bool = false;
DraggableEgg_mc = EggToPlace.my_mc;
TriggerSound("FX_POLYP_GRABBED");
World_mc.stage.addEventListener(MouseEvent.MOUSE_UP, this.DragMouseRelease);
World_mc.addEventListener(Event.ENTER_FRAME, this.DragUpdate);
}
public function StopSpawning(){
EggsSpawning_bool = false;
}
public function PolypPlacementFinished(){
PolypPlacementInProgress_bool = false;
DraggablePolyp_mc.visible = false;
RemoveFloaty(EggToPlace);
myGameState.TotalEggsPlantedForLevel_num++;
}
private function EggEventHandler(_arg1:FloatyEvent){
var _local2:*;
var _local3:*;
var _local4:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
_local4 = _arg1.target;
if (_local2 == "EggClicked"){
if (!Dragging_bool){
StartPolypPlacement(_local4);
};
} else {
if (_local2 == "BonusCollected"){
_local4.Deactivate();
_local4.PlayCollectedAnim();
this.dispatchEvent(new FloatyEvent("BonusCollected", _local4));
} else {
if (_local2 == "ReadyToDelete"){
RemoveFloaty(Floaty(_arg1.target));
};
};
};
}
public function CreateEggDrop(_arg1:Number, _arg2:Number):Egg{
var _local3:*;
var _local4:Egg;
if (Floaty_array.length < MaxEggs_num){
_local3 = 0;
_local4 = new Egg();
_local4.myPolyp = CreatePolyp();
_local4.Color_num = _local4.myPolyp.Color_num;
_local4.Size_str = _local4.myPolyp.Size_str;
_local4.setPosition(_arg1, _arg2);
_local4.myFallSpeed_num = ((Math.random() * (EGG_FALL_SPEED_MAX - EGG_FALL_SPEED_MIN)) + EGG_FALL_SPEED_MIN);
_local4.StartFalling();
myGameState.TotalEggsFallenForLevel_num++;
InitEgg(_local4);
Floaty_array.push(_local4);
return (_local4);
};
return (null);
}
public function CheckForOffscreen():void{
var _local1:*;
var _local2:Egg;
var _local3:*;
_local1 = 40;
_local3 = (Floaty_array.length - 1);
while (_local3 >= 0) {
_local2 = Floaty_array[_local3];
if (((!(_local2.MarkedForDelete_bool)) && (_local2.IsOnScreen_bool))){
if (!IsOnScreen(_local2.myParticle.pos.x, _local2.myParticle.pos.y, _local1)){
ClearEgg(_local2);
};
};
_local3--;
};
}
public function InitFromGameState(_arg1:GameState){
var _local2:*;
_local2 = 0;
while (_local2 < Floaty_array.length) {
DeleteFloatyMC(Floaty_array[_local2]);
_local2++;
};
Floaty_array = new Array();
_local2 = 0;
while (_local2 < Floaty_array.length) {
InitEgg(Floaty_array[_local2]);
_local2++;
};
fixDepths();
}
public function StartSpawning(_arg1:Number, _arg2:Number){
MaxEggs_num = _arg1;
EggsSpawning_bool = true;
EggRespawnRate_num = _arg2;
FramesUntilNextSpawn_num = EggRespawnRate_num;
}
private function PolypSpotIsValid():Boolean{
if (PolypSpotIsBuildable()){
if (IsSpotClear(DraggablePolyp_mc.x, DraggablePolyp_mc.y)){
return (true);
};
};
return (false);
}
public function getCurrentEggs():Array{
return (Floaty_array);
}
public function ChooseNextCoralToSeed(_arg1:String, _arg2:Number):Number{
var _local3:*;
var _local4:Array;
var _local5:Number;
var _local6:*;
var _local7:Coral;
var _local8:Polyp;
var _local9:Egg;
var _local10:Array;
var _local11:*;
var _local12:CoralPopulation;
var _local13:*;
_local3 = new Array();
if (_arg1 == "SMALL"){
_local4 = myGameState.CurrentLevel.CoralSeeds_Small_array;
if (GameSettings.getInstance().getHolidayModeOn()){
_local4 = _local4.concat(new Array(105, 106));
};
} else {
if (_arg1 == "MEDIUM"){
_local4 = myGameState.CurrentLevel.CoralSeeds_Medium_array;
if (GameSettings.getInstance().getHolidayModeOn()){
_local4 = _local4.concat(new Array(107, 108));
};
} else {
if (_arg1 == "LARGE"){
_local4 = myGameState.CurrentLevel.CoralSeeds_Large_array;
if (GameSettings.getInstance().getHolidayModeOn()){
_local4 = _local4.concat(new Array(109, 110));
};
};
};
};
_local6 = 0;
while (_local6 < _local4.length) {
_local5 = _local4[_local6];
_local3[_local5] = 0;
_local6++;
};
_local6 = 0;
while (_local6 < myGameState.ReefCorals_array.length) {
_local7 = myGameState.ReefCorals_array[_local6];
if (_local3[_local7.ID_num] != null){
var _local14 = _local3;
var _local15 = _local7.ID_num;
var _local16 = (_local14[_local15] + 1);
_local14[_local15] = _local16;
};
_local6++;
};
_local6 = 0;
while (_local6 < myGameState.ReefPolyps_array.length) {
_local8 = myGameState.ReefPolyps_array[_local6];
if (_local3[_local8.CoralID_num] != null){
_local14 = _local3;
_local15 = _local8.CoralID_num;
_local16 = (_local14[_local15] + 1);
_local14[_local15] = _local16;
};
_local6++;
};
_local6 = 0;
while (_local6 < Floaty_array.length) {
_local9 = Floaty_array[_local6];
if (_local3[_local9.myPolyp.CoralID_num] != null){
_local14 = _local3;
_local15 = _local9.myPolyp.CoralID_num;
_local16 = (_local14[_local15] + 1);
_local14[_local15] = _local16;
};
_local6++;
};
_local10 = new Array();
for (_local11 in _local3) {
_local13 = new CoralPopulation(_local11, _local3[_local11], "COMMON");
_local10.push(_local13);
};
_local10.sort(sortOnWeight);
_local12 = _local10[0];
return (_local12.ID_num);
}
function sortOnWeight(_arg1:CoralPopulation, _arg2:CoralPopulation):Number{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
_local3 = _arg1.WeightedValue_num;
_local4 = _arg2.WeightedValue_num;
_local5 = _arg1.TieBreaker_num;
_local6 = _arg2.TieBreaker_num;
if (_local3 > _local4){
return (1);
};
if (_local3 < _local4){
return (-1);
};
if (_local5 > _local6){
return (1);
};
if (_local5 < _local6){
return (-1);
};
return (0);
}
}
}//package com.trickysheep.coral.world.floaties
Section 49
//Enemy (com.trickysheep.coral.world.floaties.Enemy)
package com.trickysheep.coral.world.floaties {
import com.trickysheep.coral.world.*;
import com.trickysheep.coral.*;
public class Enemy extends Floaty {
public var MASS;// = 10
public var FacingDirection_str:String;
public var MAX_SPEED;// = 10
public var myGameState:GameState;
public function Enemy():void{
MAX_SPEED = 10;
MASS = 10;
super();
FacingDirection_str = "RIGHT";
}
public function setListeners(){
}
public function IsFacingInward():Boolean{
if ((((myParticle.pos.x < 350)) && ((FacingDirection_str == "RIGHT")))){
return (true);
};
if ((((myParticle.pos.x > 350)) && ((FacingDirection_str == "LEFT")))){
return (true);
};
return (false);
}
public function setFacingDirection(_arg1:String):void{
FacingDirection_str = _arg1;
}
public function FindTargetTargetEgg():Floaty{
var _local1:*;
var _local2:*;
var _local3:Egg;
var _local4:*;
_local1 = myGameState.ReefEggs_array;
_local2 = _local1.length;
if (_local2 > 0){
_local4 = Math.floor((Math.random() * _local2));
_local3 = _local1[_local4];
};
return (_local3);
}
protected function TriggerEnemyHitEvent():void{
this.dispatchEvent(new FloatyEvent("EnemyHit"));
}
public function FindTargetPolyp():Floaty{
var _local1:*;
var _local2:*;
var _local3:Polyp;
var _local4:*;
_local1 = myGameState.ReefPolyps_array;
_local2 = _local1.length;
if (_local2 > 0){
_local4 = Math.floor((Math.random() * _local2));
_local3 = _local1[_local4];
};
return (_local3);
}
protected function TriggerClickedEvent():void{
this.dispatchEvent(new FloatyEvent("EnemyClicked"));
}
public function FlipFacingDirection(){
if (FacingDirection_str == "RIGHT"){
FacingDirection_str = "LEFT";
} else {
FacingDirection_str = "RIGHT";
};
}
}
}//package com.trickysheep.coral.world.floaties
Section 50
//EnemyManager (com.trickysheep.coral.world.floaties.EnemyManager)
package com.trickysheep.coral.world.floaties {
import flash.events.*;
import com.trickysheep.coral.world.*;
import com.trickysheep.coral.sound.*;
import com.trickysheep.coral.*;
import com.trickysheep.coral.world.floaties.enemies.*;
public class EnemyManager extends FloatyManager {
public var EnemiesToSpawn_array:Array;
public var EnemiesSpawning_bool:Boolean;
public var FramesUntilNextSpawnCheck_num:Number;
private var ENEMIES_PER_CORAL;// = 0.34
public var myPlanktonManager:PlanktonManager;
public var myGameState:GameState;
public function EnemyManager():void{
ENEMIES_PER_CORAL = 0.34;
super();
}
override protected function RemoveAllEventListeners(_arg1:Floaty){
_arg1.clearListeners();
_arg1.removeEventListener(FloatyEvent.FLOATY_EVENT, this.EnemyEventHandler);
_arg1.removeEventListener(FXEvent.SOUND_TRIGGER, this.FXEventHandler);
_arg1.my_mc.removeEventListener(Event.ENTER_FRAME, this.NewEnemyEnteredFrame);
}
public function CheckEnemySpawnStatusForLevel(_arg1:Number){
var _local2:*;
var _local3:Boolean;
var _local4:String;
var _local5:uint;
var _local6:uint;
var _local7:uint;
var _local8:Number;
var _local9:*;
var _local10:*;
var _local11:Array;
var _local12:Number;
_local2 = (myGameState.CurrentLevelHealth_int / myGameState.CurrentLevel.HealthRequired_num);
_local5 = Floaty_array.length;
_local8 = Math.random();
if (_arg1 == 0){
if (_local2 < 0.3){
_local6 = 0;
} else {
if (_local2 < 0.45){
_local6 = 1;
} else {
if (_local2 < 0.6){
_local6 = 2;
} else {
if (_local2 < 1){
_local6 = 3;
};
};
};
};
if (_local5 < _local6){
if (_local8 < 0.25){
SpawnEnemy("gf_l");
};
};
} else {
if (_arg1 == 1){
if (_local2 < 0.15){
_local6 = 0;
} else {
if (_local2 < 1){
_local6 = 1;
};
};
if (_local5 < _local6){
if (_local8 < 0.25){
SpawnEnemy("gf_m");
};
};
} else {
if (_arg1 == 2){
if (_local2 < 0.05){
_local6 = 0;
} else {
if (_local2 < 1){
_local6 = 1;
};
};
if (_local5 < _local6){
if (_local8 < 0.25){
SpawnEnemy("cf_e");
};
};
} else {
if (_arg1 == 3){
if (_local2 < 0.05){
_local6 = 0;
} else {
if (_local2 < 0.2){
_local6 = 1;
} else {
if (_local2 < 0.6){
_local6 = 2;
} else {
if (_local2 < 1){
_local6 = 3;
};
};
};
};
if (_local5 < _local6){
if (_local8 < 0.25){
if (_local5 == 0){
SpawnEnemy("pf_t");
} else {
if (_local5 == 1){
SpawnEnemy("mf_o");
} else {
SpawnEnemy("pf_t");
};
};
};
};
} else {
if (_arg1 == 4){
if (_local2 < 0){
_local6 = 0;
} else {
if (_local2 < 0.5){
_local6 = 1;
} else {
if (_local2 < 1){
_local6 = 2;
};
};
};
if (_local5 < _local6){
if (_local8 < 0.25){
SpawnEnemy("mf_s");
};
};
} else {
if (_arg1 == 5){
if (_local2 < 0){
_local6 = 0;
} else {
if (_local2 < 1){
_local6 = 1;
};
};
if (_local5 < _local6){
if (_local8 < 0.25){
SpawnEnemy("gf_f");
};
};
} else {
if (_arg1 == 6){
if (_local2 < 0.55){
_local6 = 1;
} else {
if (_local2 < 1){
_local6 = 2;
};
};
if (_local5 < _local6){
if (_local5 == 0){
SpawnEnemy("boss");
} else {
if (_local8 < 0.25){
SpawnEnemy("cf_p");
};
};
};
} else {
if (_arg1 == 99){
_local9 = myGameState.ReefCorals_array.length;
_local10 = 0;
if (_local9 < 5){
_local10 = 0;
} else {
if (_local9 < 10){
_local10 = 1;
} else {
if (_local9 < 15){
_local10 = 2;
} else {
if (_local9 < 30){
_local10 = 3;
} else {
if (_local9 < 45){
_local10 = 4;
} else {
_local10 = 5;
};
};
};
};
};
if (_local5 < _local10){
_local11 = new Array("gf_f", "gf_l", "gf_m", "pf_t", "cf_p", "cf_e", "mf_o", "mf_s");
_local12 = Math.floor((Math.random() * _local11.length));
SpawnEnemy(_local11[_local12]);
};
};
};
};
};
};
};
};
};
}
public function CheckForEnemySpawn(){
if (EnemiesSpawning_bool){
FramesUntilNextSpawnCheck_num--;
if (FramesUntilNextSpawnCheck_num < 0){
CheckEnemySpawnStatusForLevel(myGameState.CurrentStage_num);
FramesUntilNextSpawnCheck_num = 30;
};
};
}
public function PositionEnemyOffscreen(_arg1:Enemy, _arg2:String){
if (_arg2 == "RIGHT"){
_arg1.setPosition(795, (80 + (Math.random() * 200)));
_arg1.setFacingDirection("LEFT");
} else {
if (_arg2 == "LEFT"){
_arg1.setPosition(-95, (80 + (Math.random() * 200)));
_arg1.setFacingDirection("RIGHT");
} else {
if (_arg2 == "TOP"){
_arg1.setPosition((100 + (Math.random() * 500)), -95);
_arg1.setFacingDirection("RIGHT");
} else {
if (_arg2 == "BOTTOM"){
_arg1.setPosition((100 + (Math.random() * 500)), 595);
_arg1.setFacingDirection("RIGHT");
} else {
if (_arg2 == "FIXED"){
_arg1.setPosition(0, 0);
_arg1.setFacingDirection("LEFT");
};
};
};
};
};
}
public function InitEnemy(_arg1:Enemy):void{
var _local2:Particle;
var _local3:*;
_local2 = _arg1.myParticle;
_local2.setMass(_arg1.MASS);
_local2.setMaxSpeed(_arg1.MAX_SPEED);
if ((_arg1 is ParrotChomperFish)){
_local3 = new ParrotChomperFishMC();
} else {
if ((_arg1 is EelChomperFish)){
_local3 = new EelChomperFishMC();
} else {
if ((_arg1 is OctoMuncherFish)){
_local3 = new OctoMuncherFishMC();
} else {
if ((_arg1 is TinyPoisonFish)){
_local3 = new TinyPoisonFishMC();
} else {
if ((_arg1 is SquidMuncherFish)){
_local3 = new SquidMuncherFishMC();
} else {
if ((_arg1 is FattyGulperFish)){
_local3 = new FattyGulperFishMC();
} else {
if ((_arg1 is LilGulperFish)){
_local3 = new LilGulperFishMC();
} else {
if ((_arg1 is MegamouthGulperFish)){
_local3 = new MegamouthGulperFishMC();
} else {
if ((_arg1 is Boss)){
_local3 = new BossMC();
};
};
};
};
};
};
};
};
};
if ((_arg1 is Boss)){
myGameState.CurrentReef.my_mc.boss_layer_mc.addChild(_local3);
} else {
FloatyLayer_mc.addChild(_local3);
};
_local3.visible = false;
_local3.Enemy_Parent = _arg1;
_local3.addEventListener(Event.ENTER_FRAME, this.NewEnemyEnteredFrame);
_arg1.addEventListener(FloatyEvent.FLOATY_EVENT, this.EnemyEventHandler);
_arg1.addEventListener(FXEvent.SOUND_TRIGGER, this.FXEventHandler);
_arg1.setMC(_local3);
_arg1.setListeners();
}
public function SpawnNextEnemy(){
var _local1:*;
_local1 = EnemiesToSpawn_array.shift();
SpawnEnemy(_local1);
if (EnemiesToSpawn_array.length == 0){
EnemiesSpawning_bool = false;
};
}
private function NewEnemyEnteredFrame(_arg1:Event){
var _local2:*;
_arg1.target.visible = true;
_arg1.target.removeEventListener(Event.ENTER_FRAME, this.NewEnemyEnteredFrame);
_local2 = _arg1.target.Enemy_Parent;
_local2.ActivateAI();
_local2.Draw();
}
public function StopSpawning(){
EnemiesSpawning_bool = false;
}
private function EnemyEventHandler(_arg1:FloatyEvent){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "PoisonDrop"){
_local4 = _local3[0];
_local5 = _local3[1];
if (IsOnScreen(_local4, _local5, 0)){
this.dispatchEvent(new FloatyEvent(_arg1.command, _arg1.command_data));
};
} else {
if (_local2 == "FishReadyToDelete"){
RemoveFloaty(Floaty(_arg1.target));
} else {
if (_local2 == "EnemyHit"){
this.dispatchEvent(new FloatyEvent("EnemyHit", _arg1.target));
} else {
if (_local2 == "EnemyClicked"){
this.dispatchEvent(new FloatyEvent("EnemyClicked", _arg1.target));
} else {
if (_local2 == "PoisonShot"){
this.dispatchEvent(new FloatyEvent("PoisonShot", _arg1.command_data));
} else {
if (_local2 == "ReadyToDelete"){
RemoveFloaty(Floaty(_arg1.target));
} else {
if (_local2 == "SCORING"){
this.dispatchEvent(new FloatyEvent("SCORING", _local3[0], _local3[1]));
} else {
this.dispatchEvent(new FloatyEvent(_local2, _local3));
};
};
};
};
};
};
};
}
override public function RemoveFloaty(_arg1:Floaty){
var _local2:Enemy;
_local2 = Enemy(_arg1);
_local2.clearListeners();
super.RemoveFloaty(_arg1);
}
override protected function InitFloatyLayer(){
FloatyLayer_mc = World_mc.enemy_layer_mc;
}
public function InitFromGameState(_arg1:GameState){
Floaty_array = new Array();
EnemiesToSpawn_array = _arg1.CurrentLevel.Enemies_array;
if (EnemiesToSpawn_array.length > 0){
EnemiesSpawning_bool = true;
} else {
EnemiesSpawning_bool = false;
};
}
public function StartSpawning(){
EnemiesSpawning_bool = true;
FramesUntilNextSpawnCheck_num = 0;
}
public function SpawnEnemy(_arg1:String){
var _local2:*;
var _local3:Enemy;
var _local4:String;
var _local5:*;
var _local6:*;
var _local7:*;
trace("SPAWN ENEMY", _arg1);
_local2 = _arg1;
if (Math.random() < 0.5){
_local4 = "LEFT";
} else {
_local4 = "RIGHT";
};
if (_local2 == "gf_f"){
_local3 = new FattyGulperFish();
_local5 = FattyGulperFish(_local3);
_local5.myPlanktonManager = myPlanktonManager;
} else {
if (_local2 == "gf_l"){
_local3 = new LilGulperFish();
_local6 = LilGulperFish(_local3);
_local6.myPlanktonManager = myPlanktonManager;
} else {
if (_local2 == "gf_m"){
_local3 = new MegamouthGulperFish();
_local7 = MegamouthGulperFish(_local3);
_local7.myPlanktonManager = myPlanktonManager;
} else {
if (_local2 == "pf_t"){
_local3 = new TinyPoisonFish();
} else {
if (_local2 == "cf_p"){
_local3 = new ParrotChomperFish();
} else {
if (_local2 == "cf_e"){
_local3 = new EelChomperFish();
_local4 = "LEFT";
} else {
if (_local2 == "mf_o"){
_local3 = new OctoMuncherFish();
_local4 = "TOP";
} else {
if (_local2 == "mf_s"){
_local3 = new SquidMuncherFish();
_local4 = "BOTTOM";
} else {
if (_local2 == "boss"){
_local3 = new Boss();
_local4 = "FIXED";
};
};
};
};
};
};
};
};
};
PositionEnemyOffscreen(_local3, _local4);
Floaty_array.push(_local3);
_local3.myGameState = myGameState;
InitEnemy(_local3);
fixDepths();
}
}
}//package com.trickysheep.coral.world.floaties
Section 51
//Plankton (com.trickysheep.coral.world.floaties.Plankton)
package com.trickysheep.coral.world.floaties {
import flash.events.*;
import com.trickysheep.coral.world.*;
public class Plankton extends Floaty {
public var Color_num:Number;
private var IdleAlpha_num:Number;// = 0.5
public var FloatThrust_num:Number;
public var mode_str:String;
public var IsPoison_bool:Boolean;
public var MovementVelocity_x:Number;// = 0
public var MovementVelocity_y:Number;// = 0
public var ID_num:Number;
public var Stoppable_bool:Boolean;// = false
private var CollectedAlpha_num:Number;// = 0.9
public function Plankton():void{
IdleAlpha_num = 0.5;
CollectedAlpha_num = 0.9;
Stoppable_bool = false;
MovementVelocity_x = 0;
MovementVelocity_y = 0;
super();
IsPoison_bool = false;
MarkedForDelete_bool = false;
}
private function PlanktonClicked(_arg1:Event){
StopSwimming();
this.dispatchEvent(new FloatyEvent("PlanktonClicked"));
}
private function PlanktonCollected(_arg1:Event){
StopSwimming();
_arg1.target.removeEventListener(MouseEvent.MOUSE_OVER, this.PlanktonCollected);
this.dispatchEvent(new FloatyEvent("PlanktonCollected"));
}
public function StopSwimming():void{
myParticle.stopConstantVelocity();
}
public function setMode(_arg1:String):void{
clearListeners();
mode_str = _arg1;
switch (_arg1){
case "IDLE":
my_mc.buttonMode = true;
my_mc.mouseEnabled = true;
my_mc.addEventListener(MouseEvent.MOUSE_DOWN, this.PlanktonClicked);
my_mc.alpha = IdleAlpha_num;
myParticle.stopThrust();
break;
case "COLLECTABLE":
my_mc.buttonMode = false;
my_mc.mouseEnabled = true;
my_mc.addEventListener(MouseEvent.MOUSE_OVER, this.PlanktonCollected);
my_mc.alpha = IdleAlpha_num;
break;
case "COLLECTED":
my_mc.buttonMode = false;
my_mc.mouseEnabled = false;
my_mc.alpha = CollectedAlpha_num;
break;
};
}
public function StartSwimming(_arg1:String, _arg2:Number):void{
var _local3:*;
var _local4:*;
if (_arg1 == "DOWN"){
myParticle.setConstantVelocity(0, _arg2);
} else {
if (_arg1 == "UP"){
myParticle.setConstantVelocity(0, -(_arg2));
} else {
if (_arg1 == "LEFT"){
myParticle.setConstantVelocity(-(_arg2), 0);
} else {
if (_arg1 == "RIGHT"){
myParticle.setConstantVelocity(_arg2, 0);
} else {
if (_arg1 == "RANDOM"){
_local3 = ((Math.random() * 2) - 1);
_local4 = ((Math.random() * 2) - 1);
myParticle.setConstantVelocity((_arg2 * _local3), (_arg2 * _local4));
};
};
};
};
};
}
public function SetToPoison():void{
var _local1:*;
var _local2:*;
IsPoison_bool = true;
ID_num = 7;
IdleAlpha_num = 0.75;
myParticle.setMass(2.25);
_local1 = 0.08;
_local2 = 0.14;
FloatThrust_num = ((Math.random() * (_local2 - _local1)) + _local1);
}
override public function Draw():void{
if (my_mc.plankton_graphics_mc.currentFrame != ID_num){
my_mc.plankton_graphics_mc.gotoAndStop(ID_num);
};
my_mc.x = myParticle.pos.x;
my_mc.y = myParticle.pos.y;
if (IsPoison_bool){
my_mc.rotation = 0;
};
}
public function Eaten():void{
Clear();
}
override public function clearListeners(){
my_mc.removeEventListener(MouseEvent.MOUSE_DOWN, this.PlanktonClicked);
my_mc.removeEventListener(MouseEvent.MOUSE_OVER, this.PlanktonCollected);
}
}
}//package com.trickysheep.coral.world.floaties
Section 52
//PlanktonManager (com.trickysheep.coral.world.floaties.PlanktonManager)
package com.trickysheep.coral.world.floaties {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.world.*;
import com.trickysheep.coral.*;
import com.trickysheep.util.geometery.*;
public class PlanktonManager extends FloatyManager {
private var AvailableColors_array:Array;
public var CollectingPlankton_bool:Boolean;
public var PoisonPlanktonSpawning_bool:Boolean;
public var MaxPoison_num:Number;// = 10
public var PLANKTON_MASS_MIN:Number;// = 4
private var AvailableColorsCount_int:int;
public var PLANKTON_MASS_MAX:Number;// = 6
public var PlanktonSpawning_bool:Boolean;
public var MaxPlankton_num:Number;// = 35
public var OffscreenMargin_num:Number;// = 10
public var PoisonPlanktonStart_x_num:Number;
public var myGameState:GameState;
public var PoisonPlanktonRespawnRandomnessWindow_num:Number;// = 45
public var PLANKTON_TOP_SPEED_MIN:Number;// = 9
public var PLANKTON_TOP_SPEED_MAX:Number;// = 13
public var PLANKTON_THRUST:Number;// = 6
public var PlanktonRespawnRandomnessWindow_num:Number;// = 10
public var PoisonPlanktonRespawnRate_num:Number;
public var FramesUntilNextSpawn_num;
public var POISON_RISE_SPEED:Number;// = -0.04
public var FramesUntilNextPoisonSpawn_num;
public var PlanktonRespawnRate_num:Number;
public var PoisonPlanktonStart_y_num:Number;
public function PlanktonManager():void{
PlanktonRespawnRandomnessWindow_num = 10;
PoisonPlanktonRespawnRandomnessWindow_num = 45;
MaxPlankton_num = 35;
MaxPoison_num = 10;
OffscreenMargin_num = 10;
POISON_RISE_SPEED = -0.04;
PLANKTON_MASS_MIN = 4;
PLANKTON_MASS_MAX = 6;
PLANKTON_TOP_SPEED_MIN = 9;
PLANKTON_TOP_SPEED_MAX = 13;
PLANKTON_THRUST = 6;
super();
AvailableColors_array = new Array();
CollectingPlankton_bool = false;
}
public function CheckForPlanktonSpawn():void{
if (PlanktonSpawning_bool){
FramesUntilNextSpawn_num--;
if (FramesUntilNextSpawn_num < 0){
SpawnPlankton();
};
};
if (PoisonPlanktonSpawning_bool){
FramesUntilNextPoisonSpawn_num--;
if (FramesUntilNextPoisonSpawn_num < 0){
SpawnPoisonPlankton();
};
};
}
public function SpawnPoisonPlankton(){
var _local1:Plankton;
if (Floaty_array.length < (MaxPlankton_num + MaxPoison_num)){
_local1 = CreatePlankton();
if (_local1 != null){
_local1.SetToPoison();
_local1.setPosition(PoisonPlanktonStart_x_num, PoisonPlanktonStart_y_num);
MovePoisonPlanktonWithLevelVelocity(_local1);
};
};
FramesUntilNextPoisonSpawn_num = (PoisonPlanktonRespawnRate_num + (((Math.random() * PoisonPlanktonRespawnRandomnessWindow_num) * 2) - PoisonPlanktonRespawnRandomnessWindow_num));
}
private function StopCollectionMode(){
var _local1:Plankton;
var _local2:*;
CollectingPlankton_bool = false;
for (_local2 in Floaty_array) {
_local1 = Floaty_array[_local2];
if (_local1.mode_str == "COLLECTED"){
if (!_local1.Stoppable_bool){
_local1.myParticle.setConstantVelocity(_local1.MovementVelocity_x, _local1.MovementVelocity_y);
};
};
_local1.setMode("IDLE");
};
World_mc.stage.removeEventListener(MouseEvent.MOUSE_UP, this.mouseReleaseHandler);
}
private function NewPlanktonEnteredFrame(_arg1:Event){
var _local2:*;
_arg1.target.visible = true;
_arg1.target.removeEventListener(Event.ENTER_FRAME, this.NewPlanktonEnteredFrame);
_local2 = _arg1.target.Plankton_Parent;
_local2.Draw();
if (_local2.MarkedForDelete_bool){
_arg1.target.gotoAndPlay("out");
} else {
_arg1.target.gotoAndPlay("in");
};
if (CollectingPlankton_bool){
_local2.setMode("COLLECTABLE");
} else {
_local2.setMode("IDLE");
};
}
public function SpawnPlankton(){
var _local1:Plankton;
if (Floaty_array.length < MaxPlankton_num){
_local1 = CreatePlankton();
};
FramesUntilNextSpawn_num = (PlanktonRespawnRate_num + (((Math.random() * PlanktonRespawnRandomnessWindow_num) * 2) - PlanktonRespawnRandomnessWindow_num));
}
private function MovePlanktonInLevelVelocity(_arg1:Plankton){
if (myGameState.CurrentLevel.PlanktonStartsMoving_bool){
MovePlanktonInVelocity(_arg1, myGameState.CurrentLevel.PlanktonVelocity_x_min, myGameState.CurrentLevel.PlanktonVelocity_x_max, myGameState.CurrentLevel.PlanktonVelocity_y_min, myGameState.CurrentLevel.PlanktonVelocity_y_max);
};
}
private function StartCollectionMode(){
var _local1:*;
var _local2:*;
CollectingPlankton_bool = true;
for (_local1 in Floaty_array) {
_local2 = Floaty_array[_local1];
if (_local2.mode_str != "COLLECTED"){
_local2.setMode("COLLECTABLE");
};
};
World_mc.stage.addEventListener(MouseEvent.MOUSE_UP, mouseReleaseHandler);
}
public function UpdateCollectedPlanktonTarget():void{
var _local1:Plankton;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local2 = World_mc.mouseX;
_local3 = World_mc.mouseY;
_local4 = PLANKTON_THRUST;
for (_local5 in Floaty_array) {
_local1 = Floaty_array[_local5];
if (_local1.mode_str == "COLLECTED"){
_local1.myParticle.startThrustTowards(new Vector(_local2, _local3, 0), _local4);
};
};
}
private function mouseReleaseHandler(_arg1:Event){
if (CollectingPlankton_bool){
StopCollectionMode();
TriggerChainEnded();
};
}
private function MovePoisonPlanktonWithLevelVelocity(_arg1:Plankton){
var _local2:*;
_local2 = ((Math.random() * 0.02) + -0.01);
_arg1.myParticle.setConstantVelocity(_local2, POISON_RISE_SPEED);
}
public function CreatePoisonDrop(_arg1:Number, _arg2:Number){
var _local3:Plankton;
_local3 = CreatePlankton();
if (_local3 != null){
_local3.SetToPoison();
_local3.setPosition(_arg1, _arg2);
_local3.StartSwimming("DOWN", 0.03);
_local3.myParticle.Push(0, -4);
};
}
public function StartSpawningPoison(_arg1:Number, _arg2:Number, _arg3:Number){
PoisonPlanktonSpawning_bool = true;
PoisonPlanktonRespawnRate_num = _arg1;
FramesUntilNextPoisonSpawn_num = 0;
PoisonPlanktonStart_x_num = _arg2;
PoisonPlanktonStart_y_num = _arg3;
}
override protected function InitFloatyLayer(){
FloatyLayer_mc = World_mc.plankton_layer_mc;
}
public function ClearAllNonPoison(){
var _local1:Array;
var _local2:*;
_local1 = new Array();
for (_local2 in Floaty_array) {
if (Floaty_array[_local2].IsPoison_bool){
_local1.push(Floaty_array[_local2]);
} else {
Floaty_array[_local2].Clear();
};
};
Floaty_array = _local1;
}
private function PlanktonCollected(_arg1:Plankton){
var _local2:*;
_arg1.setMode("COLLECTED");
if (_arg1.IsPoison_bool){
_local2 = "FX_PLANKTON_PICKUP_POISON";
} else {
_local2 = ("FX_PLANKTON_" + _arg1.ID_num);
};
TriggerSound(_local2);
}
public function CreateCustomPlankton(_arg1:Array, _arg2:MovieClip, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Plankton{
var _local7:Plankton;
_local7 = CreatePlanktonInSpawnArea(_arg1, _arg1.length, _arg2);
trace("CreateCustomPlankton", _arg1[0]);
MovePlanktonInVelocity(_local7, _arg3, _arg4, _arg5, _arg6);
return (_local7);
}
override protected function RemoveAllEventListeners(_arg1:Floaty){
_arg1.clearListeners();
_arg1.removeEventListener(FloatyEvent.FLOATY_EVENT, this.PlanktonEventHandler);
_arg1.my_mc.removeEventListener(Event.ENTER_FRAME, this.NewPlanktonEnteredFrame);
}
private function MovePlanktonInVelocity(_arg1:Plankton, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number){
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
_local6 = _arg2;
_local7 = _arg3;
_local8 = _arg4;
_local9 = _arg5;
_local10 = ((Math.random() * (_local7 - _local6)) + _local6);
_local11 = ((Math.random() * (_local9 - _local8)) + _local8);
_arg1.MovementVelocity_x = _local10;
_arg1.MovementVelocity_y = _local11;
_arg1.myParticle.setConstantVelocity(_arg1.MovementVelocity_x, _arg1.MovementVelocity_y);
}
public function PlanktonEaten(_arg1:Plankton){
_arg1.Eaten();
}
private function PlanktonEventHandler(_arg1:FloatyEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "PlanktonClicked"){
PlanktonCollected(Plankton(_arg1.target));
StartCollectionMode();
} else {
if (_local2 == "PlanktonCollected"){
PlanktonCollected(Plankton(_arg1.target));
} else {
if (_local2 == "ReadyToDelete"){
DeleteFloatyMC(Plankton(_arg1.target));
};
};
};
}
public function CheckForPolypCollisions(_arg1:Array):void{
CheckForFloatyCollisions(_arg1);
}
public function StopSpawning(){
PlanktonSpawning_bool = false;
PoisonPlanktonSpawning_bool = false;
}
public function CreatePlanktonInSpawnArea(_arg1:Array, _arg2:Number, _arg3:MovieClip):Plankton{
var _local4:Plankton;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:Boolean;
var _local9:*;
var _local10:Particle;
var _local11:PlanktonMC;
_local4 = new Plankton();
_local5 = Math.floor((Math.random() * _arg2));
_local4.Color_num = _arg1[_local5];
_local4.ID_num = (((_local4.Color_num * 2) + 1) + Math.floor((Math.random() * 2)));
_local8 = false;
_local9 = _arg3;
while (!(_local8)) {
_local6 = (Math.random() * 700);
_local7 = (Math.random() * 500);
_local8 = _local9.hitTestPoint(_local6, _local7, true);
};
_local10 = new Particle();
_local10.setPosition(_local6, _local7);
_local10.setMass(((Math.random() * (PLANKTON_MASS_MAX - PLANKTON_MASS_MIN)) + PLANKTON_MASS_MIN));
_local10.setMaxSpeed(((Math.random() * (PLANKTON_TOP_SPEED_MAX - PLANKTON_TOP_SPEED_MIN)) + PLANKTON_TOP_SPEED_MIN));
_local4.setParticle(_local10);
_local4.mode_str = "INIT";
_local11 = new PlanktonMC();
FloatyLayer_mc.addChild(_local11);
_local11.visible = false;
_local11.rotation = (Math.floor((Math.random() * 4)) * 90);
_local11.Plankton_Parent = _local4;
_local4.setMC(_local11);
_local11.addEventListener(Event.ENTER_FRAME, this.NewPlanktonEnteredFrame);
_local4.addEventListener(FloatyEvent.FLOATY_EVENT, this.PlanktonEventHandler);
Floaty_array.push(_local4);
return (_local4);
}
public function CheckForOffscreen():void{
var _local1:Plankton;
var _local2:*;
_local2 = (Floaty_array.length - 1);
while (_local2 >= 0) {
_local1 = Floaty_array[_local2];
if (_local1.mode_str != "COLLECTED"){
if (!IsOnScreen(_local1.myParticle.pos.x, _local1.myParticle.pos.y, OffscreenMargin_num)){
ClearPlankton(_local1);
};
};
_local2--;
};
}
public function CheckForFloatyCollisions(_arg1:Array):void{
var thisPlankton:Plankton;
var thisFloaty:Floaty;
var Eaten_array:Array;
var SomethingEaten_bool:Boolean;
var RemainingPlankton_array:Array;
var EatThisPlankton_bool:Boolean;
var plankton_index:*;
var floaty_index:*;
var in_floaty_array = _arg1;
Eaten_array = new Array();
SomethingEaten_bool = false;
RemainingPlankton_array = new Array();
try {
for (plankton_index in Floaty_array) {
thisPlankton = Floaty_array[plankton_index];
if (((!((thisPlankton.mode_str == "INIT"))) && (!(thisPlankton.MarkedForDelete_bool)))){
for (floaty_index in in_floaty_array) {
thisFloaty = in_floaty_array[floaty_index];
EatThisPlankton_bool = false;
if (thisFloaty.EatingPlankton_bool){
if (thisPlankton.IsPoison_bool){
if (thisFloaty.EatingAllPoisonPlankton_bool){
EatThisPlankton_bool = true;
} else {
if (thisFloaty.EatingCollectedPoisonPlankton_bool){
if (thisPlankton.mode_str == "COLLECTED"){
EatThisPlankton_bool = true;
};
};
};
} else {
EatThisPlankton_bool = true;
};
};
if (EatThisPlankton_bool){
if (thisFloaty.my_mc.hitarea_mc.hitTestPoint(thisPlankton.my_mc.x, thisPlankton.my_mc.y, true)){
SomethingEaten_bool = true;
thisFloaty.PlanktonEaten(thisPlankton);
Eaten_array[plankton_index] = true;
};
};
};
};
};
} catch(e:Error) {
trace("HUH?", Floaty_array.length, plankton_index, thisPlankton);
};
for (plankton_index in Floaty_array) {
if (Eaten_array[plankton_index]){
PlanktonEaten(Floaty_array[plankton_index]);
} else {
RemainingPlankton_array.push(Floaty_array[plankton_index]);
};
};
Floaty_array = RemainingPlankton_array;
}
public function StartSpawning(_arg1:Number){
AvailableColors_array = myGameState.CurrentLevel.AvailablePlanktonColors_array;
AvailableColorsCount_int = AvailableColors_array.length;
PlanktonSpawning_bool = true;
PlanktonRespawnRate_num = _arg1;
FramesUntilNextSpawn_num = 0;
}
public function ResumeSpawning(){
PlanktonSpawning_bool = true;
PoisonPlanktonSpawning_bool = true;
}
public function CreatePlankton():Plankton{
var _local1:Plankton;
_local1 = CreatePlanktonInSpawnArea(AvailableColors_array, AvailableColorsCount_int, myGameState.CurrentReef.my_mc.spawn_area_mc);
MovePlanktonInLevelVelocity(_local1);
return (_local1);
}
public function ClearPlankton(_arg1:Plankton){
var _local2:*;
_arg1.Clear();
_local2 = Floaty_array.indexOf(_arg1);
Floaty_array.splice(_local2, 1);
}
}
}//package com.trickysheep.coral.world.floaties
Section 53
//Polyp (com.trickysheep.coral.world.floaties.Polyp)
package com.trickysheep.coral.world.floaties {
import flash.events.*;
import com.trickysheep.coral.world.*;
import flash.geom.*;
public class Polyp extends Floaty {
public var Color_num:Number;
public var LastPlanktonColorEaten_num:Number;
public var Size_str:String;
public var mode_str:String;
public var CoralID_num:Number;
public var PlanktonNeeded_num:Number;
public var Alive_bool:Boolean;
public var FacingRight_bool:Boolean;
public var CoralType_str:String;
public var CoralFacingRight_bool:Boolean;
public var ID_num:Number;
public var Poisoned_bool:Boolean;
public var PlanktonEaten_num:Number;
public function Polyp():void{
PlanktonEaten_num = 0;
PlanktonNeeded_num = 50;
EatingPlankton_bool = true;
EatingAllPoisonPlankton_bool = true;
EatingCollectedPoisonPlankton_bool = true;
Alive_bool = true;
CoralFacingRight_bool = true;
FacingRight_bool = true;
Size_str = "SMALL";
}
public function IsColorYummy(_arg1:Number):Boolean{
var _local2:Boolean;
if (_arg1 == Color_num){
return (true);
};
if (Color_num == 6){
return (true);
};
if (Color_num == 3){
if (_arg1 == 2){
return (false);
};
return (true);
} else {
if (Color_num == 4){
if (_arg1 == 0){
return (false);
};
return (true);
} else {
if (Color_num == 5){
if (_arg1 == 1){
return (false);
};
return (true);
};
};
};
return (_local2);
}
private function PolypFull():void{
Alive_bool = false;
EatingPlankton_bool = false;
my_mc.gotoAndStop("closed");
this.dispatchEvent(new FloatyEvent("PolypFull"));
}
public function PolypDied():void{
Alive_bool = false;
Clear();
this.dispatchEvent(new FloatyEvent("PolypDied"));
}
override public function PlanktonEaten(_arg1:Plankton){
LastPlanktonColorEaten_num = _arg1.Color_num;
if (!Poisoned_bool){
if (_arg1.IsPoison_bool){
PlanktonEaten_num = 0;
Poisoned_bool = true;
TriggerSound("FX_POLYP_POISONED");
TriggerScoring("CHAIN_ENDED", null);
TriggerScoring("POLYP_DIED", Size_str);
PolypDied();
} else {
if (IsColorYummy(_arg1.Color_num)){
my_mc.gotoAndPlay("eat");
PlanktonEaten_num++;
if (_arg1.mode_str == "COLLECTED"){
TriggerScoring("PLANKTON_COLLECTED", null);
};
if (PlanktonEaten_num >= PlanktonNeeded_num){
if (Color_num == 6){
TriggerScoring("EASY_POLYP_FINISHED", Size_str);
} else {
TriggerScoring("HARD_POLYP_FINISHED", Size_str);
};
PolypFull();
UpdateColor();
if (Size_str == "SMALL"){
TriggerSound("FX_POLYP_GROW_SMALL");
};
if (Size_str == "MEDIUM"){
TriggerSound("FX_POLYP_GROW_MEDIUM");
};
if (Size_str == "LARGE"){
TriggerSound("FX_POLYP_GROW_LARGE");
};
} else {
TriggerSound("FX_POLYP_EAT_RIGHT");
};
} else {
PlanktonEaten_num = 0;
Poisoned_bool = true;
TriggerSound("FX_POLYP_EAT_WRONG");
TriggerScoring("CHAIN_ENDED", null);
my_mc.addEventListener("ANIM_DONE", this.PoisonAnimationFinished);
my_mc.gotoAndPlay("poisoned");
};
};
};
}
override public function Draw():void{
my_mc.hitarea_mc.visible = false;
if (FacingRight_bool){
my_mc.scaleX = 1;
} else {
my_mc.scaleX = -1;
};
my_mc.x = myParticle.pos.x;
my_mc.y = myParticle.pos.y;
if (((Alive_bool) && (!(MarkedForDelete_bool)))){
UpdateColor();
};
}
public function PoisonAnimationFinished(_arg1:Event){
my_mc.removeEventListener("ANIM_DONE", this.PoisonAnimationFinished);
EatingPlankton_bool = true;
Poisoned_bool = false;
}
override public function clearListeners(){
my_mc.removeEventListener("ANIM_DONE", this.PoisonAnimationFinished);
}
public function UpdateColor(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:ColorTransform;
_local1 = (PlanktonEaten_num / PlanktonNeeded_num);
_local6 = 0.4;
_local5 = _local1;
_local2 = 1;
_local3 = 1;
_local4 = 1;
switch (LastPlanktonColorEaten_num){
case 0:
_local2 = (_local2 + (_local5 * _local6));
break;
case 1:
_local2 = (_local2 + (_local5 * _local6));
_local3 = (_local3 + (_local5 * _local6));
break;
case 2:
_local2 = (_local2 - (_local5 * 0.1));
_local4 = (_local4 + (_local5 * _local6));
break;
};
_local7 = new ColorTransform(_local2, _local3, _local4, 1, 0, 0, 0, 0);
my_mc.polyp_body_mc.transform.colorTransform = _local7;
}
}
}//package com.trickysheep.coral.world.floaties
Section 54
//PolypManager (com.trickysheep.coral.world.floaties.PolypManager)
package com.trickysheep.coral.world.floaties {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.world.*;
import com.trickysheep.coral.sound.*;
import com.trickysheep.coral.*;
public class PolypManager extends FloatyManager {
public function PolypManager():void{
}
public function TriggerCoralLayerNeedsDepthFix(){
this.dispatchEvent(new FloatyEvent("CoralLayerNeedsDepthFix"));
}
override protected function RemoveAllEventListeners(_arg1:Floaty){
_arg1.clearListeners();
_arg1.removeEventListener(FloatyEvent.FLOATY_EVENT, this.PolypEventHandler);
_arg1.removeEventListener(FXEvent.SOUND_TRIGGER, this.FXEventHandler);
_arg1.my_mc.removeEventListener(Event.ENTER_FRAME, this.NewPolypEnteredFrame);
}
public function getLivingPolyps():Array{
var _local1:Array;
var _local2:*;
_local1 = new Array();
_local2 = 0;
while (_local2 < Floaty_array.length) {
if (Floaty_array[_local2].Alive_bool){
_local1.push(Floaty_array[_local2]);
};
_local2++;
};
return (_local1);
}
private function NewPolypTentaclesEnteredFrame(_arg1:Event){
_arg1.target.removeEventListener(Event.ENTER_FRAME, this.NewPolypTentaclesEnteredFrame);
_arg1.target.parent.addEventListener("TENTACLES_READY", this.TentaclesReady);
}
private function PolypEventHandler(_arg1:FloatyEvent){
var _local2:*;
var _local3:*;
var _local4:Polyp;
var _local5:Boolean;
var _local6:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "PolypFull"){
_local4 = Polyp(_arg1.target);
PolypFull(_local4);
_local5 = true;
_local6 = 0;
while (_local6 < Floaty_array.length) {
if (Floaty_array[_local6].PlanktonEaten_num < Floaty_array[_local6].PlanktonNeeded_num){
_local5 = false;
break;
};
_local6++;
};
if (_local5){
AllPolypsFull();
};
} else {
if (_local2 == "ReadyToDelete"){
RemoveFloaty(Floaty(_arg1.target));
} else {
if (_local2 == "PolypDied"){
this.dispatchEvent(new FloatyEvent("PolypDied", _arg1.target));
} else {
if (_local2 == "SCORING"){
this.dispatchEvent(new FloatyEvent("SCORING", _local3[0], _local3[1]));
};
};
};
};
}
private function NewPolypEnteredFrame(_arg1:Event){
_arg1.target.removeEventListener(Event.ENTER_FRAME, this.NewPolypEnteredFrame);
_arg1.target.tentacles_mc.addEventListener(Event.ENTER_FRAME, this.NewPolypTentaclesEnteredFrame);
}
public function InitPolyp(_arg1:Polyp):void{
var _local2:Particle;
var _local3:MovieClip;
_local2 = _arg1.myParticle;
_local2.setMass(15);
_local2.setMaxSpeed(2);
_arg1.EatingPlankton_bool = false;
switch (_arg1.Size_str){
case "SMALL":
_local3 = new PolypSmallMC();
break;
case "MEDIUM":
_local3 = new PolypMediumMC();
break;
case "LARGE":
_local3 = new PolypLargeMC();
break;
};
FloatyLayer_mc.addChild(_local3);
_local3.visible = false;
_local3.Polyp_Parent = _arg1;
_local3.addEventListener(Event.ENTER_FRAME, this.NewPolypEnteredFrame);
_arg1.addEventListener(FloatyEvent.FLOATY_EVENT, this.PolypEventHandler);
_arg1.addEventListener(FXEvent.SOUND_TRIGGER, this.FXEventHandler);
_arg1.setMC(_local3);
TriggerCoralLayerNeedsDepthFix();
}
private function AllPolypsFull():void{
this.dispatchEvent(new FloatyEvent("AllPolypsFull"));
}
private function TentaclesReady(_arg1:Event){
var _local2:*;
_arg1.target.removeEventListener("TENTACLES_READY", this.TentaclesReady);
_local2 = _arg1.target["Polyp_Parent"];
_local2.Draw();
_local2.my_mc.gotoAndPlay("open");
_arg1.target.visible = true;
TriggerNewPolypCreatedFromEgg();
_local2.EatingPlankton_bool = true;
}
override protected function InitFloatyLayer(){
FloatyLayer_mc = World_mc.coral_layer_mc;
}
public function InitFromGameState(_arg1:GameState){
Floaty_array = new Array();
}
public function TriggerNewPolypCreatedFromEgg(){
this.dispatchEvent(new FloatyEvent("NewPolypCreatedFromEgg"));
}
private function PolypFull(_arg1:Polyp):void{
this.dispatchEvent(new FloatyEvent("PolypFull", _arg1));
}
}
}//package com.trickysheep.coral.world.floaties
Section 55
//Floaty (com.trickysheep.coral.world.Floaty)
package com.trickysheep.coral.world {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.sound.*;
import com.trickysheep.coral.world.floaties.*;
public class Floaty extends EventDispatcher {
public var EatingAllPoisonPlankton_bool:Boolean;
public var FramesUntilAIStateUpdate_num:Number;// = -1
public var my_mc:MovieClip;
public var Moving_bool:Boolean;
public var FramesBetweenAIUpdates_num:Number;// = 30
public var EatingPlankton_bool:Boolean;
public var AIActive_bool:Boolean;
public var myParticle:Particle;
public var AIState_str:String;
public var EatingCollectedPoisonPlankton_bool:Boolean;
public var MarkedForDelete_bool;// = false
public function Floaty():void{
FramesUntilAIStateUpdate_num = -1;
FramesBetweenAIUpdates_num = 30;
MarkedForDelete_bool = false;
super();
Moving_bool = true;
myParticle = new Particle();
EatingPlankton_bool = false;
EatingAllPoisonPlankton_bool = false;
EatingCollectedPoisonPlankton_bool = false;
}
public function setParticle(_arg1:Particle){
myParticle = _arg1;
}
public function TriggerPlanktonEaten(_arg1:Plankton){
this.dispatchEvent(new FloatyEvent("PLANKTON_EATEN", _arg1));
}
protected function doAIUpdate(){
trace("WARNING: doAIUpdate() not overriden");
}
public function TriggerScoring(_arg1:String, _arg2){
this.dispatchEvent(new FloatyEvent("SCORING", _arg1, _arg2));
}
public function setPosition(_arg1, _arg2){
myParticle.setPosition(_arg1, _arg2);
}
public function Clear():void{
clearListeners();
MarkedForDelete_bool = true;
my_mc.addEventListener("ANIM_DONE", this.ClearAnimationFinished);
my_mc.gotoAndPlay("out");
}
public function RotateBasedOnThrust(){
var _local1:*;
_local1 = myParticle.getThrustAngle();
my_mc.rotation = _local1;
}
public function PlanktonEaten(_arg1:Plankton){
TriggerPlanktonEaten(_arg1);
}
public function IsOnscreenVert(_arg1:Number):Boolean{
if ((((myParticle.pos.y > -(_arg1))) && ((myParticle.pos.y < (500 + _arg1))))){
return (true);
};
return (false);
}
public function TriggerSound(_arg1){
this.dispatchEvent(new FXEvent("PLAY_FX", _arg1));
}
public function UpdateAI(){
if (AIActive_bool){
FramesUntilAIStateUpdate_num--;
if (FramesUntilAIStateUpdate_num <= 0){
FramesUntilAIStateUpdate_num = FramesBetweenAIUpdates_num;
doAIUpdate();
};
};
}
public function Draw():void{
my_mc.x = myParticle.pos.x;
my_mc.y = myParticle.pos.y;
}
private function ClearAnimationFinished(_arg1:Event){
my_mc.removeEventListener("ANIM_DONE", this.ClearAnimationFinished);
this.dispatchEvent(new FloatyEvent("ReadyToDelete"));
}
public function clearListeners(){
trace("ERROR: FLOATY DOES NOT CLEAR LISTENERS ", this);
}
public function IsOnscreen(_arg1:Number):Boolean{
if ((((((myParticle.pos.x > -(_arg1))) && ((myParticle.pos.x < (700 + _arg1))))) && (IsOnscreenVert(_arg1)))){
return (true);
};
return (false);
}
public function setMC(_arg1:MovieClip){
my_mc = _arg1;
}
}
}//package com.trickysheep.coral.world
Section 56
//FloatyEvent (com.trickysheep.coral.world.FloatyEvent)
package com.trickysheep.coral.world {
import flash.events.*;
public class FloatyEvent extends Event {
public var command:String;
public var command_data;
public static const FLOATY_EVENT:String = "FLOATY_EVENT";
public function FloatyEvent(_arg1:String, ... _args){
super(FLOATY_EVENT);
this.command = _arg1;
if (_args.length == 1){
command_data = _args[0];
} else {
if (_args.length > 1){
command_data = _args;
};
};
}
}
}//package com.trickysheep.coral.world
Section 57
//FloatyManager (com.trickysheep.coral.world.FloatyManager)
package com.trickysheep.coral.world {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.sound.*;
public class FloatyManager extends EventDispatcher {
public var World_mc:MovieClip;
public var Floaty_array:Array;
public var FloatyLayer_mc:MovieClip;
public function FloatyManager():void{
Floaty_array = new Array();
}
public function fixDepths(... _args){
var _local2:Floaty;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
_local4 = new Array();
for (_local5 in _args) {
_local4 = _local4.concat(_args[_local5]);
};
_local6 = Floaty_array.concat(_local4);
_local6.sort(sortOnY);
for (_local7 in _local6) {
_local2 = _local6[_local7];
_local3 = _local2.my_mc.parent;
if (_local7 < _local3.numChildren){
_local3.setChildIndex(_local2.my_mc, _local7);
};
};
}
public function FXEventHandler(_arg1:FXEvent):void{
this.dispatchEvent(new FXEvent(_arg1.command, _arg1.command_data));
}
public function getMovingParticles():Array{
var _local1:*;
var _local2:Floaty;
var _local3:*;
_local1 = new Array();
for (_local3 in Floaty_array) {
_local2 = Floaty_array[_local3];
if (_local2.Moving_bool){
_local1.push(_local2.myParticle);
};
};
return (_local1);
}
public function ClearAll(){
var _local1:*;
_local1 = 0;
while (_local1 < Floaty_array.length) {
Floaty_array[_local1].Clear();
_local1++;
};
Floaty_array = new Array();
}
public function CheckForAIUpdate():void{
var _local1:*;
_local1 = (Floaty_array.length - 1);
while (_local1 >= 0) {
Floaty_array[_local1].UpdateAI();
_local1--;
};
}
protected function RemoveAllEventListeners(_arg1:Floaty){
_arg1.clearListeners();
trace("ERROR: EVENT LISTENER REMOVAL NOT IMPLEMENTED");
}
private function sortOnY(_arg1:Floaty, _arg2:Floaty):Number{
var _local3:Number;
var _local4:Number;
_local3 = _arg1.myParticle.pos.y;
_local4 = _arg2.myParticle.pos.y;
if (_local3 > _local4){
return (1);
};
if (_local3 < _local4){
return (-1);
};
return (0);
}
public function RemoveAll(){
var _local1:*;
_local1 = (Floaty_array.length - 1);
while (_local1 >= 0) {
RemoveFloaty(Floaty_array[_local1]);
_local1--;
};
Floaty_array = new Array();
}
protected function InitFloatyLayer(){
trace("WARNING: InitFloatyLayer not set");
}
public function DeleteFloatyMC(_arg1:Floaty){
var FloatyParent_mc:*;
var in_floaty = _arg1;
try {
FloatyParent_mc = in_floaty.my_mc.parent;
FloatyParent_mc.removeChild(in_floaty.my_mc);
} catch(e:Error) {
trace("ERROR...", "COULD NOT DELETE FLOATY MC:", in_floaty);
};
}
public function setWorldMC(_arg1:MovieClip){
World_mc = _arg1;
InitFloatyLayer();
}
public function RemoveFloaty(_arg1:Floaty){
var _local2:*;
var _local3:*;
RemoveAllEventListeners(_arg1);
DeleteFloatyMC(_arg1);
_local2 = Floaty_array.length;
_local3 = Floaty_array.indexOf(_arg1);
Floaty_array.splice(_local3, 1);
}
public function IsOnScreen(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
_local4 = (0 - _arg3);
_local5 = (700 + _arg3);
_local6 = (0 - _arg3);
_local7 = (500 + _arg3);
if ((((((((_arg1 < _local4)) || ((_arg1 > _local5)))) || ((_arg2 < _local6)))) || ((_arg2 > _local7)))){
return (false);
};
return (true);
}
public function TriggerSound(_arg1){
this.dispatchEvent(new FXEvent("PLAY_FX", _arg1));
}
public function TriggerChainEnded(){
this.dispatchEvent(new FloatyEvent("SCORING", "CHAIN_ENDED", null));
}
public function TriggerScoring(_arg1:String, _arg2){
this.dispatchEvent(new FloatyEvent("SCORING", _arg1, _arg2));
}
public function DrawMovedParticles():void{
var _local1:Floaty;
var _local2:*;
for (_local2 in Floaty_array) {
_local1 = Floaty_array[_local2];
if (((_local1.Moving_bool) && (!(_local1.MarkedForDelete_bool)))){
_local1.Draw();
};
};
}
}
}//package com.trickysheep.coral.world
Section 58
//GameEndingManager (com.trickysheep.coral.world.GameEndingManager)
package com.trickysheep.coral.world {
import flash.events.*;
import flash.display.*;
public class GameEndingManager extends EventDispatcher {
public var World_mc:MovieClip;
private var ReefStartY_num:Number;
public var EndingIsShowing_bool:Boolean;
private var ReefStartX_num:Number;
public var EndingAnimation_mc:MovieClip;
private var CameraStartY_num:Number;
private var CameraStartX_num:Number;
public var myReefManager:ReefManager;
public function GameEndingManager():void{
EndingIsShowing_bool = false;
}
public function StartEnding(){
EndingAnimation_mc = World_mc.reef_layer_mc.ending_movie_mc;
EndingAnimation_mc.addEventListener("ANIM_DONE", this.AnimationDoneHandler);
EndingAnimation_mc.addEventListener("GOTO_MENU", this.AnimationDoneHandler);
EndingAnimation_mc.addEventListener("FIREWORKS_START", this.FireWorksStartHandler);
EndingAnimation_mc.addEventListener(GameWorldEvent.GAMEWORLD_EVENT, this.EndingEventHandler);
World_mc.letterbox_mc.gotoAndPlay("close");
EndingAnimation_mc.visible = true;
EndingAnimation_mc.gotoAndPlay("start");
EndingIsShowing_bool = true;
StartFollowCamera();
}
private function FireWorksStartHandler(_arg1:Event){
TriggerFireWorksStartEvent();
}
private function TriggerFireWorksStartEvent():void{
this.dispatchEvent(new GameWorldEvent("FireWorksStartEvent"));
}
private function TriggerGameEndingFinishedEvent():void{
this.dispatchEvent(new GameWorldEvent("GameEndingFinished"));
}
public function ClearListeners(){
EndingAnimation_mc.removeEventListener("ANIM_DONE", this.AnimationDoneHandler);
EndingAnimation_mc.removeEventListener("GOTO_MENU", this.AnimationDoneHandler);
EndingAnimation_mc.removeEventListener("FIREWORKS_START", this.FireWorksStartHandler);
EndingAnimation_mc.removeEventListener(GameWorldEvent.GAMEWORLD_EVENT, this.EndingEventHandler);
}
private function EndingFinished(){
ClearListeners();
TriggerGameEndingFinishedEvent();
}
private function FollowPosition(_arg1:Event){
var _local2:*;
var _local3:*;
_local2 = (CameraStartX_num - EndingAnimation_mc.camera_target_mc.x);
_local3 = (CameraStartY_num - EndingAnimation_mc.camera_target_mc.y);
myReefManager.GoToXYPosition(EndingAnimation_mc.camera_target_mc.x, EndingAnimation_mc.camera_target_mc.y);
}
public function setWorldMC(_arg1:MovieClip){
World_mc = _arg1;
}
public function StartFollowCamera(){
ReefStartX_num = World_mc.reef_layer_mc.x;
ReefStartY_num = World_mc.reef_layer_mc.y;
CameraStartX_num = EndingAnimation_mc.camera_target_mc.x;
CameraStartY_num = EndingAnimation_mc.camera_target_mc.y;
EndingAnimation_mc.addEventListener(Event.ENTER_FRAME, this.FollowPosition);
}
private function AnimationDoneHandler(_arg1:Event){
trace("AnimationDoneHandler");
StopFollowCamera();
EndingFinished();
}
private function EndingEventHandler(_arg1:GameWorldEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "EGG_EXPLODE"){
this.dispatchEvent(new GameWorldEvent("DoEggSplosion", _local3[0], _local3[1], _local3[2]));
};
}
public function StopEnding(){
EndingAnimation_mc = World_mc.reef_layer_mc.ending_movie_mc;
ClearListeners();
World_mc.letterbox_mc.gotoAndPlay("open");
EndingAnimation_mc.visible = false;
EndingAnimation_mc.stop();
EndingIsShowing_bool = false;
StopFollowCamera();
}
public function StopFollowCamera(){
EndingAnimation_mc.removeEventListener(Event.ENTER_FRAME, this.FollowPosition);
}
}
}//package com.trickysheep.coral.world
Section 59
//GameIntroManager (com.trickysheep.coral.world.GameIntroManager)
package com.trickysheep.coral.world {
import flash.events.*;
import flash.display.*;
public class GameIntroManager extends EventDispatcher {
public var World_mc:MovieClip;
public var IntroAnimation_mc:MovieClip;
public var IntroIsShowing_bool:Boolean;
public var myReefManager:ReefManager;
public function GameIntroManager():void{
IntroIsShowing_bool = false;
}
public function ClearListeners(){
IntroAnimation_mc.removeEventListener("ANIM_DONE", this.AnimationDoneHandler);
IntroAnimation_mc.removeEventListener(GameWorldEvent.GAMEWORLD_EVENT, this.IntroEventHandler);
}
public function StartIntro(){
IntroAnimation_mc = World_mc.reef_layer_mc.intro_movie_mc;
IntroAnimation_mc.addEventListener("ANIM_DONE", this.AnimationDoneHandler);
IntroAnimation_mc.addEventListener(GameWorldEvent.GAMEWORLD_EVENT, this.IntroEventHandler);
World_mc.letterbox_mc.gotoAndPlay("close");
IntroAnimation_mc.visible = true;
IntroAnimation_mc.gotoAndPlay("start");
IntroIsShowing_bool = true;
}
public function SkipIntro(){
StopIntro();
TriggerGameIntroFinishedEvent();
}
private function PanCameraTo(_arg1, _arg2, _arg3){
myReefManager.StartPanToXY(_arg1, _arg2, _arg3);
}
private function IntroFinished(){
ClearListeners();
TriggerGameIntroFinishedEvent();
}
public function setWorldMC(_arg1:MovieClip){
World_mc = _arg1;
}
private function TriggerGameIntroFinishedEvent():void{
this.dispatchEvent(new GameWorldEvent("GameIntroFinished"));
}
public function StopIntro(){
ClearListeners();
IntroAnimation_mc.stop();
}
private function AnimationDoneHandler(_arg1:Event){
IntroFinished();
}
public function HideIntro(){
IntroAnimation_mc.visible = false;
IntroIsShowing_bool = false;
World_mc.letterbox_mc.gotoAndPlay("open");
}
private function IntroEventHandler(_arg1:GameWorldEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "CAMERA_PAN"){
PanCameraTo(_local3[0], _local3[1], _local3[2]);
} else {
if (_local2 == "EGG_EXPLODE"){
this.dispatchEvent(new GameWorldEvent("DoEggSplosion", _local3[0], _local3[1], _local3[2]));
} else {
if (_local2 == "MUSIC_CHANGE"){
this.dispatchEvent(new GameWorldEvent("MUSIC_CHANGE", _local3[0], _local3[1], _local3[2]));
} else {
if (_local2 == "CLEAR_EGGS"){
this.dispatchEvent(new GameWorldEvent("DoClearEggs"));
};
};
};
};
}
}
}//package com.trickysheep.coral.world
Section 60
//GameWorldEvent (com.trickysheep.coral.world.GameWorldEvent)
package com.trickysheep.coral.world {
import flash.events.*;
public class GameWorldEvent extends Event {
public var command:String;
public var command_data;
public static const GAMEWORLD_EVENT:String = "GAMEWORLD_EVENT";
public function GameWorldEvent(_arg1:String, ... _args){
super(GAMEWORLD_EVENT);
this.command = _arg1;
if (_args.length == 1){
command_data = _args[0];
} else {
if (_args.length > 1){
command_data = _args;
};
};
}
}
}//package com.trickysheep.coral.world
Section 61
//GameWorldManager (com.trickysheep.coral.world.GameWorldManager)
package com.trickysheep.coral.world {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.sound.*;
import com.trickysheep.coral.*;
import com.trickysheep.util.geometery.*;
import com.trickysheep.coral.world.floaties.*;
import flash.utils.*;
import com.trickysheep.coral.world.floaties.enemies.*;
public class GameWorldManager extends EventDispatcher {
public var myCoralManager:CoralManager;
private var SMALL_POLYP_HEALTH_BONUS;// = 5
public var myCoralFishManager:CoralFishManager;
public var myParticleSystem:ParticleSystem;
public var myLevelEndingManager:LevelEndingManager;
private var WaterCurrentChangeXCountdown_num:Number;
private var LARGE_POLYP_HEALTH_BONUS;// = 15
public var myGameEndingManager:GameEndingManager;
public var myPlanktonManager:PlanktonManager;
public var myGameState:GameState;
public var myGameIntroManager:GameIntroManager;
private var WaterCurrentChangeYFrames_num:Number;// = 80
private var WaterCurrent_vector:Vector;
public var myReefManager:ReefManager;
public var myEggManager:EggManager;
public var myPolypManager:PolypManager;
private var MEDIUM_POLYP_HEALTH_BONUS;// = 10
private var MaxCurrentForce_x;// = 0.08
public var myEnemyManager:EnemyManager;
private var WaterCurrentChangeXFrames_num:Number;// = 50
private var MaxCurrentForce_y;// = 0.05
private var LevelEndAnimationTimer:Timer;
private var CannonGrown_bool:Boolean;
private var WaterCurrentChangeYCountdown_num:Number;
public function GameWorldManager():void{
WaterCurrentChangeXFrames_num = 50;
WaterCurrentChangeYFrames_num = 80;
MaxCurrentForce_x = 0.08;
MaxCurrentForce_y = 0.05;
SMALL_POLYP_HEALTH_BONUS = 5;
MEDIUM_POLYP_HEALTH_BONUS = 10;
LARGE_POLYP_HEALTH_BONUS = 15;
super();
myParticleSystem = new ParticleSystem();
myPlanktonManager = new PlanktonManager();
myPlanktonManager.addEventListener(FloatyEvent.FLOATY_EVENT, this.PlanktonManagerEventHandler);
myPlanktonManager.addEventListener(FXEvent.SOUND_TRIGGER, this.FXEventHandler);
myCoralManager = new CoralManager();
myCoralManager.addEventListener(FloatyEvent.FLOATY_EVENT, this.CoralManagerEventHandler);
myPolypManager = new PolypManager();
myPolypManager.addEventListener(FloatyEvent.FLOATY_EVENT, this.PolypManagerEventHandler);
myPolypManager.addEventListener(FXEvent.SOUND_TRIGGER, this.FXEventHandler);
myEnemyManager = new EnemyManager();
myEnemyManager.myPlanktonManager = myPlanktonManager;
myEnemyManager.addEventListener(FloatyEvent.FLOATY_EVENT, this.EnemyManagerEventHandler);
myEnemyManager.addEventListener(FXEvent.SOUND_TRIGGER, this.FXEventHandler);
myEggManager = new EggManager();
myEggManager.addEventListener(FloatyEvent.FLOATY_EVENT, this.EggManagerEventHandler);
myEggManager.addEventListener(FXEvent.SOUND_TRIGGER, this.FXEventHandler);
myReefManager = new ReefManager();
myReefManager.addEventListener(GameWorldEvent.GAMEWORLD_EVENT, this.ReefManagerEventHandler);
myReefManager.addEventListener(FXEvent.SOUND_TRIGGER, this.FXEventHandler);
myCoralFishManager = new CoralFishManager();
myCoralFishManager.addEventListener(GameWorldEvent.GAMEWORLD_EVENT, this.CoralFishManagerEventHandler);
myCoralFishManager.addEventListener(FXEvent.SOUND_TRIGGER, this.FXEventHandler);
myGameIntroManager = new GameIntroManager();
myGameIntroManager.myReefManager = myReefManager;
myGameIntroManager.addEventListener(GameWorldEvent.GAMEWORLD_EVENT, this.GameIntroManagerEventHandler);
myLevelEndingManager = new LevelEndingManager();
myLevelEndingManager.myReefManager = myReefManager;
myLevelEndingManager.addEventListener(GameWorldEvent.GAMEWORLD_EVENT, this.LevelEndingManagerEventHandler);
myGameEndingManager = new GameEndingManager();
myGameEndingManager.myReefManager = myReefManager;
myGameEndingManager.addEventListener(GameWorldEvent.GAMEWORLD_EVENT, this.GameEndingManagerEventHandler);
WaterCurrentChangeXCountdown_num = 0;
WaterCurrentChangeYCountdown_num = 0;
WaterCurrent_vector = new Vector(0, 0, 0);
}
private function GrowPolypIntoCoral(_arg1:Polyp){
if (_arg1.Size_str == "SMALL"){
myGameState.CurrentLevelHealth_int = (myGameState.CurrentLevelHealth_int + SMALL_POLYP_HEALTH_BONUS);
} else {
if (_arg1.Size_str == "MEDIUM"){
myGameState.CurrentLevelHealth_int = (myGameState.CurrentLevelHealth_int + MEDIUM_POLYP_HEALTH_BONUS);
} else {
if (_arg1.Size_str == "LARGE"){
myGameState.CurrentLevelHealth_int = (myGameState.CurrentLevelHealth_int + LARGE_POLYP_HEALTH_BONUS);
};
};
};
if (myGameState.CurrentStage_num < 6){
if (myGameState.CurrentLevelHealth_int >= myGameState.CurrentLevel.HealthRequired_num){
if (!CannonGrown_bool){
_arg1.CoralType_str = "CANNON";
_arg1.CoralID_num = 65;
_arg1.CoralFacingRight_bool = true;
CannonGrown_bool = true;
};
};
};
myCoralManager.AddCoralFromPolyp(_arg1);
}
private function LevelEndingManagerEventHandler(_arg1:GameWorldEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "LevelEndingFinished"){
CompleteLevelCleanUp();
TriggerLevelEndingDoneEvent();
} else {
if (_local2 == "EnemiesScaredOff"){
doLevelEndingAction("EnemiesScaredOff", _local3);
} else {
if (_local2 == "PoisonSuckedIn"){
doLevelEndingAction("PoisonSuckedIn", _local3);
} else {
if (_local2 == "BarrelPlugged"){
doLevelEndingAction("BarrelPlugged", _local3);
} else {
if (_local2 == "BossCannonFired"){
doLevelEndingAction("BossCannonFired", _local3);
};
};
};
};
};
}
private function GameEndingManagerEventHandler(_arg1:GameWorldEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "GameEndingFinished"){
GameEndingFinished();
} else {
if (_local2 == "DoEggSplosion"){
EggSplosion(_local3[0], _local3[1], _local3[2]);
} else {
if (_local2 == "FireWorksStartEvent"){
TriggerFireWorksStartEvent();
};
};
};
}
public function BonusCollected(_arg1:Egg){
}
private function GameIntroFinished():void{
TriggerGameIntroDoneEvent();
}
private function PlanktonManagerEventHandler(_arg1:FloatyEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "SCORING"){
HandleScoreEvent(_local3[0], _local3[1]);
};
}
private function EnemyManagerEventHandler(_arg1:FloatyEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "PoisonDrop"){
myPlanktonManager.CreatePoisonDrop(_local3[0], _local3[1]);
} else {
if (_local2 == "EnemyClicked"){
if ((_local3 is Fish)){
_local3.Hit();
};
} else {
if (_local2 == "EnemyHit"){
} else {
if (_local2 == "PoisonShot"){
ShootPoisonAtTarget(_local3[0], _local3[1]);
} else {
if (_local2 == "PoisonLeakStop"){
myPlanktonManager.PoisonPlanktonSpawning_bool = false;
} else {
if (_local2 == "PoisonLeakResume"){
myPlanktonManager.PoisonPlanktonSpawning_bool = true;
} else {
if (_local2 == "PoisonRelease"){
ReleasePoison(_local3);
} else {
if (_local2 == "GooSplat"){
GooSplat();
} else {
if (_local2 == "BossExplode"){
myReefManager.CurrentReef.DeleteAllGoo();
} else {
if (_local2 == "BossDead"){
myLevelEndingManager.TriggerLevelEndingFinished();
} else {
if (_local2 == "SCORING"){
HandleScoreEvent(_local3[0], _local3[1]);
};
};
};
};
};
};
};
};
};
};
};
}
public function PrepWorldForLevelEnd(){
var _local1:*;
var _local2:Array;
var _local3:Boolean;
var _local4:Coral;
var _local5:*;
var _local6:Coral;
myPolypManager.ClearAll();
_local1 = (myPolypManager.Floaty_array.length - 1);
while (_local1 >= 0) {
_local1--;
};
myEggManager.StopSpawning();
myEggManager.ClearAll();
myPlanktonManager.PlanktonSpawning_bool = false;
myPlanktonManager.ClearAllNonPoison();
_local2 = myPlanktonManager.Floaty_array;
myEnemyManager.StopSpawning();
_local3 = false;
_local1 = 0;
while (_local1 < myEnemyManager.Floaty_array.length) {
_local5 = myEnemyManager.Floaty_array[_local1];
if ((_local5 is Boss)){
_local5.GetReadyForCannon();
} else {
if (myEnemyManager.Floaty_array[_local1].IsOnscreen(75)){
_local5.StartIdle();
_local5.AIActive_bool = false;
_local5.SetListenForClick(false);
_local5.EatingPlankton_bool = false;
if (_local5.FacingDirection_str == "RIGHT"){
_local5.TurnAround();
};
_local3 = true;
} else {
myEnemyManager.Floaty_array[_local1].Clear();
};
};
_local1++;
};
_local1 = 0;
while (_local1 < myGameState.ReefCorals_array.length) {
_local6 = myGameState.ReefCorals_array[_local1];
if (_local6.Type_str == "CANNON"){
_local4 = _local6;
break;
};
_local1++;
};
PlayEndOfLevelAnimation(_local3, _local2, _local4);
}
private function CheckForCaveMonsterEmerge(){
var _local1:*;
var _local2:*;
_local1 = myReefManager.CurrentReef.my_mc.cavedude_mc;
if (myGameState.CurrentLevelWon_bool){
_local1.gotoAndPlay("emerge");
};
_local2 = (myGameState.CurrentLevelHealth_int / myGameState.CurrentLevel.HealthRequired_num);
if (_local2 > 0.25){
if (_local1.arm_1_emerge_mc.currentFrame == 1){
_local1.arm_1_emerge_mc.gotoAndPlay("in");
};
};
if (_local2 > 0.45){
if (_local1.arm_2_emerge_mc.currentFrame == 1){
_local1.arm_2_emerge_mc.gotoAndPlay("in");
};
};
if (_local2 > 0.7){
if (_local1.arm_3_emerge_mc.currentFrame == 1){
_local1.arm_3_emerge_mc.gotoAndPlay("in");
};
};
if (_local2 > 0.8){
if (_local1.currentFrame == 1){
_local1.gotoAndPlay("in");
};
};
}
public function PlayEndOfLevelAnimation(_arg1, _arg2, _arg3){
myLevelEndingManager.Start(_arg1, _arg2, _arg3);
}
private function PolypDied(_arg1:Polyp){
myGameState.ReefPolyps_array = myPolypManager.getLivingPolyps();
}
public function ProcessUserInput():void{
if (myPlanktonManager.CollectingPlankton_bool){
myPlanktonManager.UpdateCollectedPlanktonTarget();
};
}
public function AddPolypToWorld(_arg1:Polyp){
var _local2:*;
var _local3:*;
_local2 = new Polyp();
_local2.PlanktonNeeded_num = _arg1.PlanktonNeeded_num;
_local2.FacingRight_bool = _arg1.FacingRight_bool;
_local2.Size_str = _arg1.Size_str;
_local2.Color_num = _arg1.Color_num;
_local2.CoralType_str = _arg1.CoralType_str;
_local2.CoralID_num = _arg1.CoralID_num;
_local2.CoralFacingRight_bool = _arg1.CoralFacingRight_bool;
_local2.setPosition(_arg1.myParticle.pos.x, _arg1.myParticle.pos.y);
myPolypManager.Floaty_array.push(_local2);
myPolypManager.InitPolyp(_local2);
myGameState.ReefPolyps_array = myPolypManager.getLivingPolyps();
if ((((myGameState.CurrentStage_num == 0)) && (!(myPlanktonManager.PlanktonSpawning_bool)))){
_local3 = 30;
myPlanktonManager.StartSpawning(_local3);
myEggManager.StartSpawning((myGameState.CurrentLevel.MaxEggsActive_num + 2), myGameState.CurrentLevel.EggSpawnRate_num);
};
HandleScoreEvent("POLYP_STUCK", _local2.Size_str);
}
public function InitializeWorldForLevelStart(_arg1:GameState){
var _local2:*;
var _local3:*;
myGameState = _arg1;
myPlanktonManager.myGameState = myGameState;
myPolypManager.InitFromGameState(myGameState);
myCoralManager.InitFromGameState(myGameState);
myCoralManager.InitFromGameState(myGameState);
myEnemyManager.InitFromGameState(myGameState);
myEggManager.InitFromGameState(myGameState);
myLevelEndingManager.myGameState = myGameState;
myReefManager.SetCurrentReef(myGameState.CurrentStage.ReefID_num);
myGameState.CurrentReef = myReefManager.CurrentReef;
myEggManager.myGameState = myGameState;
myEnemyManager.myGameState = myGameState;
CannonGrown_bool = false;
if (myGameState.CurrentStage_num == 6){
myEnemyManager.CheckEnemySpawnStatusForLevel(myGameState.CurrentStage_num);
myReefManager.CurrentReef.DeleteAllGoo();
};
if (myGameState.CurrentStage_num == 2){
myReefManager.CurrentReef.my_mc.cavedude_mc.gotoAndStop("off");
myReefManager.CurrentReef.my_mc.cavedude_mc.arm_1_emerge_mc.gotoAndStop("off");
myReefManager.CurrentReef.my_mc.cavedude_mc.arm_2_emerge_mc.gotoAndStop("off");
myReefManager.CurrentReef.my_mc.cavedude_mc.arm_3_emerge_mc.gotoAndStop("off");
};
GotoNextReefPosition();
}
public function FXEventHandler(_arg1:FXEvent):void{
this.dispatchEvent(new FXEvent(_arg1.command, _arg1.command_data));
}
public function TriggerSound(_arg1){
this.dispatchEvent(new FXEvent("PLAY_FX", _arg1));
}
private function PolypToCoralGrowComplete(_arg1:Coral, _arg2:Polyp){
myGameState.ReefPolyps_array = myPolypManager.getLivingPolyps();
myGameState.ReefCorals_array = myCoralManager.getLivingCorals();
myGameState.LivingCorals_num = myCoralManager.getLivingCoralCount();
myCoralFishManager.CheckIfTimeForNewFish(myGameState);
if (myGameState.CurrentLevelHealth_int >= myGameState.CurrentLevel.HealthRequired_num){
myGameState.CurrentLevelHealth_int = myGameState.CurrentLevel.HealthRequired_num;
LevelWon();
};
if (myGameState.CurrentStage_num == 2){
CheckForCaveMonsterEmerge();
};
}
private function EggSplosion(_arg1:Boolean, _arg2:Number, _arg3:Number){
var _local4:Vector;
var _local5:Egg;
var _local6:*;
var _local7:*;
var _local8:*;
myEggManager.MaxEggs_num = 60;
myGameState.CurrentLevel.EggSizeSmallRatio_num = 1;
if (_arg1){
myGameState.CurrentLevel.AvailableEggColors_array = new Array(0, 1, 2, 3, 4, 5, 6);
} else {
myGameState.CurrentLevel.AvailableEggColors_array = new Array(6);
};
_local6 = 0;
while (_local6 < 18) {
_local5 = myEggManager.CreateEggDrop(_arg2, _arg3);
if (_local5 != null){
_local7 = ((Math.random() * 2) - 1);
_local8 = ((Math.random() * 1.5) - 0.75);
_local4 = new Vector(_local7, _local8, 0);
_local4.normalize();
_local4 = _local4.multScalar((5 + (Math.random() * 20)));
_local5.myParticle.max_speed = 99;
_local5.myParticle.Push(_local4.x, _local4.y);
};
_local6++;
};
}
private function TriggerLevelEndingDoneEvent(){
this.dispatchEvent(new GameWorldEvent("LevelEndingDone"));
}
private function GameEndingFinished():void{
myLevelEndingManager.StopFollowCurrentPosition();
TriggerGameEndingDoneEvent();
}
public function PlanktonEatenByEnvironment(_arg1:Plankton){
var _local2:*;
var _local3:*;
if (myGameState.CurrentStage_num == 4){
trace("You ate:", _arg1);
trace("VOLCANO SPAWN");
_local2 = new Array();
if (_arg1.Color_num == 2){
_local2.push(1);
} else {
if (_arg1.Color_num == 1){
_local2.push(0);
} else {
_local2.push(0);
};
};
_local3 = myReefManager.CurrentReef.my_mc.special_spawn_area_mc;
myPlanktonManager.CreateCustomPlankton(_local2, _local3, -0.01, 0.01, -0.05, -0.02);
};
}
private function TriggerGameIntroDoneEvent(){
this.dispatchEvent(new GameWorldEvent("GameIntroDone"));
}
public function SaveCoralAsPermanent(){
var _local1:*;
var _local2:Coral;
_local1 = 0;
while (_local1 < myGameState.ReefCorals_array.length) {
_local2 = myGameState.ReefCorals_array[_local1];
myGameState.PermanentCorals_array.push(_local2);
myReefManager.MoveMC_to_PermanentLayer(_local2.my_mc);
_local1++;
};
myCoralManager.fixDepths();
myGameState.ReefCorals_array = new Array();
myCoralManager.Floaty_array = new Array();
}
public function StartGameIntro():void{
myReefManager.PrepReefsForIntro();
myGameIntroManager.StartIntro();
}
private function FixCoralLayerNeedsDepth():void{
myCoralManager.fixDepths(myPolypManager.Floaty_array);
}
private function EggManagerEventHandler(_arg1:FloatyEvent){
var _local2:*;
var _local3:*;
var _local4:Egg;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "EggClicked"){
if ((_local3 is Egg)){
_local3.Collected();
};
} else {
if (_local2 == "BonusCollected"){
_local4 = Egg(_local3);
BonusCollected(_local4);
} else {
if (_local2 == "PolypPlacedInWorld"){
AddPolypToWorld(_local3);
};
};
};
}
public function StopGameEnding():void{
myGameEndingManager.StopEnding();
myLevelEndingManager.HideLevelEndingAnimation();
}
private function HandleScoreEvent(_arg1:String, _arg2){
var _local3:int;
_local3 = 0;
if ((_arg1 == "EASY_POLYP_FINISHED")){
if (_arg2 == "SMALL"){
_local3 = 500;
} else {
if (_arg2 == "MEDIUM"){
_local3 = 2000;
} else {
if (_arg2 == "LARGE"){
_local3 = 5000;
};
};
};
myGameState.AddToScore(_local3);
myGameState.TotalCoralForLevel_num++;
} else {
if ((_arg1 == "HARD_POLYP_FINISHED")){
if (_arg2 == "SMALL"){
_local3 = 800;
} else {
if (_arg2 == "MEDIUM"){
_local3 = 3500;
} else {
if (_arg2 == "LARGE"){
_local3 = 8000;
};
};
};
myGameState.AddToScore(_local3);
myGameState.TotalCoralForLevel_num++;
} else {
if ((((_arg1 == "POLYP_STUCK")) || ((_arg1 == "POLYP_DIED")))){
if (_arg2 == "SMALL"){
_local3 = 100;
} else {
if (_arg2 == "MEDIUM"){
_local3 = 300;
} else {
if (_arg2 == "LARGE"){
_local3 = 900;
};
};
};
_local3 = (_local3 * ((_arg1)=="POLYP_DIED") ? -1 : 1);
myGameState.AddToScore(_local3);
} else {
if (_arg1 == "PLANKTON_COLLECTED"){
myGameState.AddToPlanktonCombo();
myGameState.TotalPlanktonForLevel_num++;
} else {
if (_arg1 == "CHAIN_ENDED"){
myGameState.EndCombo();
} else {
if (_arg1 == "FISH_SMACK"){
myGameState.AddToScore(_arg2);
} else {
if (_arg1 == "GOO_CLEAR"){
myGameState.AddToScore(_arg2);
};
};
};
};
};
};
};
}
private function LevelWon(){
myGameState.CalculateEndOfLevelScore();
PrepWorldForLevelEnd();
}
public function GotoNextReefPosition(){
myLevelEndingManager.StartFollowCurrentPosition();
myReefManager.StartPanToReef(myGameState.CurrentReef, myGameState.CurrentStage.ReefScrollFrames_num);
}
private function CoralDied(_arg1:Coral){
myGameState.LivingCorals_num = myCoralManager.getLivingCoralCount();
myGameState.ReefCorals_array = myCoralManager.getLivingCorals();
if (_arg1.Size_str == "SMALL"){
myGameState.CurrentLevelHealth_int = (myGameState.CurrentLevelHealth_int - SMALL_POLYP_HEALTH_BONUS);
} else {
if (_arg1.Size_str == "MEDIUM"){
myGameState.CurrentLevelHealth_int = (myGameState.CurrentLevelHealth_int - MEDIUM_POLYP_HEALTH_BONUS);
} else {
if (_arg1.Size_str == "LARGE"){
myGameState.CurrentLevelHealth_int = (myGameState.CurrentLevelHealth_int - LARGE_POLYP_HEALTH_BONUS);
};
};
};
}
private function doLevelEndingAction(_arg1:String, _arg2:Object){
var _local3:*;
var _local4:Plankton;
var _local5:*;
var _local6:Array;
var _local7:Vector;
var _local8:Vector;
var _local9:*;
var _local10:*;
var _local11:Vector;
var _local12:Vector;
trace("doLevelEndingAction", _arg1, _arg2);
if (_arg1 == "EnemiesScaredOff"){
_local3 = 0;
while (_local3 < myEnemyManager.Floaty_array.length) {
if (myEnemyManager.Floaty_array[_local3].IsOnscreen(75)){
if (!(myEnemyManager.Floaty_array[_local3] is Boss)){
myEnemyManager.Floaty_array[_local3].FacingDirection_str = "LEFT";
myEnemyManager.Floaty_array[_local3].SwimVelocity_num = (myEnemyManager.Floaty_array[_local3].SwimVelocity_num * 3);
myEnemyManager.Floaty_array[_local3].RunAway();
};
} else {
myEnemyManager.Floaty_array[_local3].Clear();
};
_local3++;
};
} else {
if (_arg1 == "PoisonSuckedIn"){
_local5 = myPlanktonManager.PLANKTON_THRUST;
_local6 = myPlanktonManager.Floaty_array;
_local7 = new Vector(200, 200, 0);
_local9 = 0.5;
for (_local10 in _local6) {
_local4 = _local6[_local10];
_local8 = _local4.myParticle.pos.subtractVector(_local7);
_local11 = _local8.unit();
_local12 = _local11.multScalar(_local9);
_local4.myParticle.setConstantVelocity(_local12.x, _local12.y);
};
} else {
if (_arg1 == "BarrelPlugged"){
myPlanktonManager.StopSpawning();
myReefManager.CurrentReef.my_mc.star_sticker_mc.gotoAndStop("on");
} else {
if (_arg1 == "BossCannonFired"){
_local3 = 0;
while (_local3 < myEnemyManager.Floaty_array.length) {
if ((myEnemyManager.Floaty_array[_local3] is Boss)){
myEnemyManager.Floaty_array[_local3].CannonFired();
};
_local3++;
};
};
};
};
};
}
private function TriggerLevelWonEvent(){
this.dispatchEvent(new GameWorldEvent("LevelWon"));
}
public function CompleteLevelCleanUp(){
myPlanktonManager.ClearAll();
SaveCoralAsPermanent();
if (myGameState.CurrentStage_num < 6){
myEnemyManager.ClearAll();
};
myEggManager.ClearAll();
TriggerLevelWonEvent();
}
public function StartGameEnding():void{
myCoralFishManager.Floaty_array = myCoralFishManager.Floaty_array.concat(myGameState.PermanentCoralFish_array);
myGameState.PermanentCoralFish_array = new Array();
myCoralFishManager.ActivateAll();
myLevelEndingManager.StartFollowCurrentPosition();
myGameEndingManager.StartEnding();
}
public function ResetWorld(){
var _local1:*;
trace("RESETING WORLD", myEnemyManager.Floaty_array.length);
myPlanktonManager.StopSpawning();
myEggManager.StopSpawning();
myEnemyManager.StopSpawning();
myPlanktonManager.RemoveAll();
myPolypManager.RemoveAll();
myCoralManager.RemoveAll();
myEggManager.RemoveAll();
myCoralFishManager.RemoveAll();
myEnemyManager.RemoveAll();
myLevelEndingManager.HideLevelEndingAnimation();
myCoralManager.Floaty_array = myGameState.PermanentCorals_array;
_local1 = myCoralManager.FloatyLayer_mc;
myCoralManager.FloatyLayer_mc = myReefManager.PermanentCoralsLayer_mc;
myCoralManager.RemoveAll();
myCoralManager.FloatyLayer_mc = _local1;
myGameState.PermanentCorals_array = new Array();
myCoralFishManager.Floaty_array = myGameState.PermanentCoralFish_array;
_local1 = myCoralFishManager.FloatyLayer_mc;
myCoralFishManager.FloatyLayer_mc = myReefManager.PermanentCoralsLayer_mc;
myCoralFishManager.RemoveAll();
myCoralFishManager.FloatyLayer_mc = _local1;
myGameState.PermanentCoralFish_array = new Array();
}
public function InitializeWorldForGameStart(){
myReefManager.Init();
GotoMenuSpot();
}
public function GotoMenuSpot(){
myReefManager.GoToReefPosition(0);
}
private function TriggerFireWorksStartEvent(){
this.dispatchEvent(new GameWorldEvent("FireWorksStart"));
}
private function ShootPoisonAtTarget(_arg1:Vector, _arg2:Vector){
var _local3:Vector;
var _local4:*;
var _local5:Vector;
var _local6:*;
var _local7:Plankton;
_local3 = _arg2.subtractVector(_arg1);
_local3.normalize();
_local4 = 0.45;
_local5 = _local3.multScalar(_local4);
_local6 = myReefManager.CurrentReef.my_mc.special_spawn_area_mc;
_local7 = myPlanktonManager.CreateCustomPlankton(new Array(0, 1, 2), _local6, _local5.x, _local5.x, _local5.y, _local5.y);
_local7.SetToPoison();
_local7.Stoppable_bool = true;
}
public function SkipGameIntro():void{
myGameIntroManager.SkipIntro();
}
private function GameIntroManagerEventHandler(_arg1:GameWorldEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "GameIntroFinished"){
GameIntroFinished();
} else {
if (_local2 == "DoEggSplosion"){
EggSplosion(_local3[0], _local3[1], _local3[2]);
} else {
if (_local2 == "MUSIC_CHANGE"){
this.dispatchEvent(new GameWorldEvent("MUSIC_CHANGE", _local3[0], _local3[1], _local3[2]));
} else {
if (_local2 == "DoClearEggs"){
myEggManager.ClearAll();
};
};
};
};
}
public function getRandomDirection(){
var _local1:*;
_local1 = (Math.random() * 2);
if (_local1 < 1){
return (-1);
};
return (1);
}
private function TriggerGameEndingDoneEvent(){
this.dispatchEvent(new GameWorldEvent("GameEndingDone"));
}
public function ReefButtonClicked(_arg1:Number){
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:Vector;
var _local7:Array;
var _local8:int;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:Vector;
if (myGameState.CurrentStage_num == 5){
_local2 = 0.18;
_local3 = 0.24;
_local4 = -0.5;
_local5 = 0.5;
_local7 = new Array();
if (_arg1 == 0){
_local4 = -0.45;
_local5 = 0.45;
_local6 = new Vector(0.1, -1, 0);
_local7.push(0);
} else {
if (_arg1 == 1){
_local4 = -0.6;
_local5 = 0.6;
_local6 = new Vector(0.35, -1, 0);
_local7.push(2);
} else {
if (_arg1 == 2){
_local4 = -0.3;
_local5 = 0.3;
_local6 = new Vector(-0.45, -1, 0);
_local7.push(1);
};
};
};
_local8 = (Math.random() * 2);
_local9 = ("FX_PLANKTON_" + (((_local7[0] * 2) + 1) + _local8));
TriggerSound(_local9);
TriggerSound("FX_SOFT_DROP");
myReefManager.CurrentReef.my_mc[(("clam_" + _arg1) + "_mc")].gotoAndPlay("shoot");
_local10 = myReefManager.CurrentReef.my_mc.special_spawn_area_mc[(("reef_6_clam_spawn_area_" + _arg1) + "_mc")];
_local11 = ((Math.random() * (_local5 - _local4)) + _local4);
_local12 = ((Math.random() * (_local5 - _local4)) + _local4);
_local6 = _local6.addVector(new Vector(_local11, _local12, 0));
_local13 = ((Math.random() * (_local3 - _local2)) + _local2);
_local14 = _local6.multScalar(_local13);
myPlanktonManager.CreateCustomPlankton(_local7, _local10, _local14.x, _local14.x, _local14.y, _local14.y);
};
}
private function ReefManagerEventHandler(_arg1:GameWorldEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "PanToReefFinished"){
LevelInitComplete();
} else {
if (_local2 == "PlanktonEatenByEnvironment"){
PlanktonEatenByEnvironment(_arg1.command_data);
} else {
if (_local2 == "ReefButtonClicked"){
ReefButtonClicked(_local3);
} else {
if (_local2 == "SCORING"){
HandleScoreEvent(_local3[0], _local3[1]);
};
};
};
};
}
private function CoralManagerEventHandler(_arg1:FloatyEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "PolypToCoralGrowComplete"){
PolypToCoralGrowComplete(_local3[0], _local3[1]);
} else {
if (_local2 == "CoralDied"){
CoralDied(_local3);
} else {
if (_local2 == "CoralLayerNeedsDepthFix"){
FixCoralLayerNeedsDepth();
};
};
};
}
private function CoralFishManagerEventHandler(_arg1:FloatyEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
}
private function ReleasePoison(_arg1:MovieClip){
var _local2:Number;
var _local3:Plankton;
trace("ReleasePoison", _arg1);
_local2 = myPlanktonManager.POISON_RISE_SPEED;
_local3 = myPlanktonManager.CreateCustomPlankton(new Array(0, 1, 2), _arg1, 0, 0, _local2, _local2);
_local3.SetToPoison();
}
public function PanCameraToXY(_arg1, _arg2, _arg3){
}
public function Step():void{
var _local1:Array;
var _local2:*;
myPlanktonManager.CheckForPlanktonSpawn();
myEnemyManager.CheckForEnemySpawn();
UpdateWaterCurrent();
myCoralManager.HealCorals();
myEggManager.CheckForEggSpawn();
myGameState.ReefEggs_array = myEggManager.getCurrentEggs();
myPlanktonManager.CheckForAIUpdate();
myEnemyManager.CheckForAIUpdate();
myCoralFishManager.CheckForAIUpdate();
_local1 = myPlanktonManager.getMovingParticles();
_local1 = _local1.concat(myEnemyManager.getMovingParticles());
_local1 = _local1.concat(myEggManager.getMovingParticles());
_local1 = _local1.concat(myCoralFishManager.getMovingParticles());
myParticleSystem.setExternalForces(WaterCurrent_vector);
myParticleSystem.TimeStep(_local1);
myPlanktonManager.DrawMovedParticles();
myPolypManager.DrawMovedParticles();
myEnemyManager.DrawMovedParticles();
myEggManager.DrawMovedParticles();
myCoralFishManager.DrawMovedParticles();
myPlanktonManager.CheckForOffscreen();
_local2 = myPolypManager.Floaty_array.concat(myEnemyManager.Floaty_array);
if (myReefManager.CurrentReef.HasEnvironmentMouth_bool){
_local2.push(myReefManager.CurrentReef.EnvironmentMouth_floaty);
};
myPlanktonManager.CheckForFloatyCollisions(_local2);
myCoralFishManager.CheckForOffscreen();
myEggManager.CheckForOffscreen();
if (myReefManager.CurrentReef.HasGround_bool){
myEggManager.CheckForHitGround(myReefManager.CurrentReef);
};
}
public function LevelInitComplete(){
myLevelEndingManager.StopFollowCurrentPosition();
this.dispatchEvent(new GameWorldEvent("LEVEL_INIT_COMPLETE"));
}
private function UpdateWaterCurrent(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
WaterCurrentChangeXCountdown_num--;
WaterCurrentChangeYCountdown_num--;
if (WaterCurrentChangeXCountdown_num < 0){
if (getRandomDirection() > 0){
_local2 = (Math.random() * MaxCurrentForce_x);
_local1 = ((Math.random() * (WaterCurrentChangeXFrames_num - 30)) + 30);
} else {
_local2 = 0;
_local1 = 20;
};
_local3 = (_local2 * getRandomDirection());
WaterCurrentChangeXCountdown_num = _local1;
WaterCurrent_vector = new Vector(_local3, WaterCurrent_vector.y, 0);
};
if (WaterCurrentChangeYCountdown_num < 0){
if (getRandomDirection() > 0){
_local2 = (Math.random() * MaxCurrentForce_y);
_local1 = ((Math.random() * (WaterCurrentChangeYFrames_num - 30)) + 30);
} else {
_local2 = 0;
_local1 = 20;
};
_local4 = (_local2 * getRandomDirection());
WaterCurrentChangeYCountdown_num = _local1;
WaterCurrent_vector = new Vector(WaterCurrent_vector.x, _local4, 0);
};
}
public function setWorldMC(_arg1:MovieClip){
myPlanktonManager.setWorldMC(_arg1);
myPolypManager.setWorldMC(_arg1);
myCoralManager.setWorldMC(_arg1);
myReefManager.setWorldMC(_arg1);
myEnemyManager.setWorldMC(_arg1);
myEggManager.setWorldMC(_arg1);
myCoralFishManager.setWorldMC(_arg1);
myGameIntroManager.setWorldMC(_arg1);
myLevelEndingManager.setWorldMC(_arg1);
myGameEndingManager.setWorldMC(_arg1);
}
private function PolypManagerEventHandler(_arg1:FloatyEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "AllPolypsFull"){
} else {
if (_local2 == "PolypFull"){
GrowPolypIntoCoral(_local3);
} else {
if (_local2 == "PolypDied"){
PolypDied(_local3);
} else {
if (_local2 == "PolypToCoralGrowComplete"){
PolypToCoralGrowComplete(_local3[0], _local3[1]);
} else {
if (_local2 == "CoralLayerNeedsDepthFix"){
FixCoralLayerNeedsDepth();
} else {
if (_local2 == "NewPolypCreatedFromEgg"){
myEggManager.PolypPlacementFinished();
} else {
if (_local2 == "SCORING"){
HandleScoreEvent(_local3[0], _local3[1]);
};
};
};
};
};
};
};
}
private function GooSplat(){
myReefManager.CurrentReef.CreateGooInSpawnArea(myGameState.ReefCorals_array, myGameState.ReefPolyps_array, myEggManager);
}
public function StartCurrentLevel(){
var _local1:*;
if (myGameIntroManager.IntroIsShowing_bool){
myGameIntroManager.HideIntro();
};
if (myGameState.CurrentLevel.PlanktonSpawnRate_num > 0){
myPlanktonManager.StartSpawning(myGameState.CurrentLevel.PlanktonSpawnRate_num);
};
if (myGameState.CurrentLevel.PoisonPlanktonSpawnRate_num > 0){
myPlanktonManager.StartSpawningPoison(myGameState.CurrentLevel.PoisonPlanktonSpawnRate_num, myGameState.CurrentLevel.PoisonPlanktonStart_x_num, myGameState.CurrentLevel.PoisonPlanktonStart_y_num);
};
myEnemyManager.StartSpawning();
myEggManager.StartSpawning(myGameState.CurrentLevel.MaxEggsActive_num, myGameState.CurrentLevel.EggSpawnRate_num);
myCoralFishManager.DeactivateAll();
_local1 = 0;
while (_local1 < myCoralFishManager.Floaty_array.length) {
myGameState.PermanentCoralFish_array.push(myCoralFishManager.Floaty_array[_local1]);
_local1++;
};
myCoralFishManager.Floaty_array = new Array();
myReefManager.CurrentReef.StartReefPlaying();
}
}
}//package com.trickysheep.coral.world
Section 62
//LevelEndingManager (com.trickysheep.coral.world.LevelEndingManager)
package com.trickysheep.coral.world {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.*;
import com.trickysheep.coral.world.floaties.*;
import flash.utils.*;
public class LevelEndingManager extends EventDispatcher {
private var Poison_array:Array;
public var World_mc:MovieClip;
public var LevelEndingAnimation_mc:MovieClip;
public var CannonCoral:Coral;
private var NextAnimationStep_str:String;
private var EnemiesOnScreen_bool:Boolean;
public var AllAnimations_array:Array;
public var myReefManager:ReefManager;
private var AnimTriggerTimer:Timer;
private var FollowOffsetX_num:Number;
private var FollowOffsetY_num:Number;
private var LevelEndingTimer:Timer;
public var myGameState:GameState;
public function LevelEndingManager():void{
AllAnimations_array = new Array();
AnimTriggerTimer = new Timer(1000);
AnimTriggerTimer.addEventListener(TimerEvent.TIMER, this.AnimTriggerTimerHandler);
}
public function PlayAnim(_arg1:MovieClip, _arg2:int, _arg3:int){
_arg1.x = _arg2;
_arg1.y = _arg3;
_arg1.gotoAndPlay("on");
_arg1.visible = true;
}
public function HideLevelEndingAnimation(){
var _local1:*;
World_mc.reef_ending_layer_mc.visible = false;
World_mc.reef_ending_layer_mc.x = 0;
World_mc.reef_ending_layer_mc.y = 0;
for (_local1 in AllAnimations_array) {
if (AllAnimations_array[_local1] != null){
AllAnimations_array[_local1].gotoAndStop("off");
AllAnimations_array[_local1].visible = false;
};
};
myReefManager.removeEventListener(GameWorldEvent.GAMEWORLD_EVENT, this.ReefManagerEventHandler);
AnimTriggerTimer.stop();
}
public function doPufferAnim(){
var _local1:Number;
if (Poison_array.length > 0){
ShowPufferSuck();
_local1 = 2.5;
} else {
ShowPufferDoNothing();
_local1 = 2;
};
NextAnimationStep_str = "GOTH";
StartTimer(_local1);
}
public function ShowPufferDoNothing(){
var _local1:*;
_local1 = AllAnimations_array["puffer_do_nothing"];
PlayAnim(_local1, -200, -50);
}
public function ShowGothFireBossCannon(){
var _local1:*;
_local1 = AllAnimations_array["goth_cannon_fire"];
_local1.addEventListener("FIRE_CANNON", this.BossEndingFireCannon);
PlayAnim(_local1, 275, 471);
}
private function FollowPosition(){
World_mc.reef_ending_layer_mc.x = (World_mc.reef_layer_mc.x + FollowOffsetX_num);
World_mc.reef_ending_layer_mc.y = (World_mc.reef_layer_mc.y + FollowOffsetY_num);
}
public function BossEndingFireCannon(_arg1:Event){
_arg1.target.removeEventListener("FIRE_CANNON", this.BossEndingFireCannon);
this.dispatchEvent(new GameWorldEvent("BossCannonFired"));
}
private function StartTimer(_arg1:Number){
AnimTriggerTimer.delay = (_arg1 * 1000);
AnimTriggerTimer.start();
}
public function TriggerLevelEndingFinished():void{
this.dispatchEvent(new GameWorldEvent("LevelEndingFinished"));
}
public function ShowLionRoar(){
var _local1:*;
_local1 = AllAnimations_array["lion_roar"];
_local1.addEventListener("LION_ROAR", this.LionRoarHandler);
PlayAnim(_local1, -230, -290);
}
public function ShowGothDoNothing(){
var _local1:*;
_local1 = AllAnimations_array["goth_do_nothing"];
PlayAnim(_local1, 0, 0);
}
public function AnimTriggerTimerHandler(_arg1:TimerEvent):void{
AnimTriggerTimer.stop();
NextAnim();
}
public function StartFollowCurrentPosition(){
FollowOffsetX_num = (World_mc.reef_ending_layer_mc.x - World_mc.reef_layer_mc.x);
FollowOffsetY_num = (World_mc.reef_ending_layer_mc.y - World_mc.reef_layer_mc.y);
myReefManager.addEventListener(GameWorldEvent.GAMEWORLD_EVENT, this.ReefManagerEventHandler);
}
public function ShowCrabDoNothing(){
var _local1:*;
var _local2:*;
var _local3:*;
_local1 = AllAnimations_array["crab_do_nothing"];
if (myGameState.CurrentStage_num == 0){
_local2 = 364;
_local3 = 389;
} else {
if (myGameState.CurrentStage_num == 1){
_local2 = 201;
_local3 = 461;
} else {
if (myGameState.CurrentStage_num == 3){
_local2 = 505;
_local3 = 394;
} else {
if (myGameState.CurrentStage_num == 4){
_local2 = 261;
_local3 = 466;
};
};
};
};
PlayAnim(_local1, _local2, _local3);
}
public function PufferPoisonHandler(_arg1:Event){
_arg1.target.removeEventListener("POISON_CLEAR", this.PufferPoisonHandler);
this.dispatchEvent(new GameWorldEvent("PoisonSuckedIn"));
}
public function doCrabAnim(){
var _local1:Number;
if (myGameState.CurrentLevel.PoisonPlanktonSpawnRate_num > 0){
ShowCrabPlugBarrel();
_local1 = 3.5;
} else {
ShowCrabDoNothing();
_local1 = 1.5;
};
NextAnimationStep_str = "PUFFER";
StartTimer(_local1);
}
public function doGothAnim(){
var _local1:Number;
NextAnimationStep_str = "DONE";
if (myGameState.CurrentStage_num < 6){
ShowGothFireCannon();
} else {
ShowGothFireBossCannon();
};
}
public function ShowCrabPlugBarrel(){
var _local1:*;
var _local2:*;
var _local3:*;
_local1 = myGameState.CurrentLevel.PoisonPlanktonStart_x_num;
_local2 = myGameState.CurrentLevel.PoisonPlanktonStart_y_num;
_local3 = AllAnimations_array["crab_plug_poison"];
_local3.addEventListener("POISON_STOPPED", this.CrabPlugHandler);
PlayAnim(_local3, _local1, _local2);
}
public function Start(_arg1:Boolean, _arg2:Array, _arg3:Coral){
EnemiesOnScreen_bool = _arg1;
Poison_array = _arg2;
CannonCoral = _arg3;
World_mc.reef_ending_layer_mc.x = 0;
World_mc.reef_ending_layer_mc.y = 0;
World_mc.reef_ending_layer_mc.visible = true;
NextAnimationStep_str = "LION";
NextAnim();
}
public function NextAnim(){
switch (NextAnimationStep_str){
case "LION":
doLionAnim();
break;
case "PUFFER":
doPufferAnim();
break;
case "CRAB":
doCrabAnim();
break;
case "GOTH":
doGothAnim();
break;
case "DONE":
TriggerLevelEndingFinished();
break;
};
}
public function LevelEndingGothDone(_arg1:Event){
var _local2:*;
_arg1.target.removeEventListener("ANIM_DONE", this.LevelEndingGothDone);
NextAnimationStep_str = "DONE";
_local2 = 2;
StartTimer(_local2);
}
public function CrabPlugHandler(_arg1:Event){
_arg1.target.removeEventListener("POISON_STOPPED", this.CrabPlugHandler);
this.dispatchEvent(new GameWorldEvent("BarrelPlugged"));
}
public function StopFollowCurrentPosition(){
myReefManager.removeEventListener(GameWorldEvent.GAMEWORLD_EVENT, this.ReefManagerEventHandler);
HideLevelEndingAnimation();
}
private function ReefManagerEventHandler(_arg1:GameWorldEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "ReefDrawUpdate"){
FollowPosition();
};
}
public function ShowGothFireCannon(){
var _local1:*;
_local1 = AllAnimations_array["goth_cannon_fire"];
_local1.addEventListener("FIRE_CANNON", this.LevelEndingFireCannon);
_local1.addEventListener("ANIM_DONE", this.LevelEndingGothDone);
PlayAnim(_local1, CannonCoral.my_mc.x, CannonCoral.my_mc.y);
}
public function ShowPufferSuck(){
var _local1:*;
_local1 = AllAnimations_array["puffer_get_poison"];
_local1.addEventListener("POISON_CLEAR", this.PufferPoisonHandler);
PlayAnim(_local1, 200, 200);
}
public function LevelEndingFireCannon(_arg1:Event){
_arg1.target.removeEventListener("FIRE_CANNON", this.LevelEndingFireCannon);
CannonCoral.my_mc.coral_grafix_mc.coral_with_color_mc.canon_mc.gotoAndPlay("press_button");
}
public function LionRoarHandler(_arg1:Event){
this.removeEventListener("LION_ROAR", this.LionRoarHandler);
this.dispatchEvent(new GameWorldEvent("EnemiesScaredOff"));
}
public function ShowLionDoNothing(){
var _local1:*;
_local1 = AllAnimations_array["lion_do_nothing"];
PlayAnim(_local1, -100, -290);
}
public function InitMCs(){
AllAnimations_array["goth_cannon_fire"] = World_mc.reef_ending_layer_mc.goth_cannon_mc;
AllAnimations_array["goth_do_nothing"] = World_mc.reef_ending_layer_mc.goth_none_mc;
AllAnimations_array["lion_roar"] = World_mc.reef_ending_layer_mc.lion_roar_mc;
AllAnimations_array["lion_do_nothing"] = World_mc.reef_ending_layer_mc.lion_none_mc;
AllAnimations_array["crab_plug_poison"] = World_mc.reef_ending_layer_mc.crab_goto_poison_mc;
AllAnimations_array["crab_do_nothing"] = World_mc.reef_ending_layer_mc.crab_none_mc;
AllAnimations_array["puffer_get_poison"] = World_mc.reef_ending_layer_mc.puffer_poison_clear_mc;
AllAnimations_array["puffer_do_nothing"] = World_mc.reef_ending_layer_mc.puffer_none_mc;
}
public function setWorldMC(_arg1:MovieClip){
World_mc = _arg1;
InitMCs();
}
public function doLionAnim(){
var _local1:Number;
if (EnemiesOnScreen_bool){
ShowLionRoar();
_local1 = 3;
} else {
ShowLionDoNothing();
_local1 = 2;
};
NextAnimationStep_str = "CRAB";
StartTimer(_local1);
}
}
}//package com.trickysheep.coral.world
Section 63
//Particle (com.trickysheep.coral.world.Particle)
package com.trickysheep.coral.world {
import com.trickysheep.util.geometery.*;
public class Particle {
public var acc:Vector;
public var AffectedByExternalForces_bool:Boolean;
public var pos:Vector;
public var push:Vector;
public var thrust:Vector;
public var mass_inv:Number;
public var constant_velocity:Vector;
public var max_speed:Number;
public var mass:Number;
public var old_pos:Vector;
public function Particle():void{
pos = new Vector(0, 0, 0);
old_pos = new Vector(0, 0, 0);
thrust = new Vector(0, 0, 0);
acc = new Vector(0, 0, 0);
constant_velocity = new Vector(0, 0, 0);
push = new Vector(0, 0, 0);
mass = 1;
mass_inv = 1;
max_speed = 1;
AffectedByExternalForces_bool = true;
}
public function stopConstantVelocity():void{
constant_velocity = new Vector(0, 0, 0);
}
public function setMaxSpeed(_arg1:Number):void{
max_speed = _arg1;
}
public function stopThrust():void{
thrust = new Vector(0, 0, 0);
}
public function setThrust(_arg1, _arg2):void{
thrust = new Vector(_arg1, _arg2, 0);
}
public function startThrustTowards(_arg1:Vector, _arg2:Number):void{
var _local3:Vector;
var _local4:Vector;
_local3 = _arg1.subtractVector(pos);
_local4 = _local3.unit();
thrust = _local4.multScalar(_arg2);
}
public function setConstantVelocity(_arg1, _arg2):void{
constant_velocity = new Vector(_arg1, _arg2, 0);
}
public function getThrustAngle():Number{
return (thrust.getRotationAngle());
}
public function setPosition(_arg1:Number, _arg2:Number):void{
pos = new Vector(_arg1, _arg2, 0);
old_pos = new Vector(_arg1, _arg2, 0);
}
public function setMass(_arg1:Number):void{
mass = _arg1;
mass_inv = (1 / _arg1);
}
public function Push(_arg1, _arg2){
push = new Vector(_arg1, _arg2, 0);
}
}
}//package com.trickysheep.coral.world
Section 64
//ParticleSystem (com.trickysheep.coral.world.ParticleSystem)
package com.trickysheep.coral.world {
import com.trickysheep.util.geometery.*;
public class ParticleSystem {
public var TotalExternalForces_vector:Vector;
public var Particles_array:Array;
public var friction;// = 0.06
public function ParticleSystem():void{
friction = 0.06;
super();
}
private function SatisfyConstraints():void{
var _local1:Particle;
var _local2:*;
var _local3:*;
var _local4:Vector;
var _local5:*;
var _local6:Number;
var _local7:*;
_local7 = (Particles_array.length - 1);
while (_local7 >= 0) {
_local1 = Particles_array[_local7];
_local2 = _local1.pos;
_local3 = _local1.old_pos;
_local4 = _local2.subtractVector(_local3);
_local5 = _local4.len();
if (_local5 > _local1.max_speed){
_local6 = (_local1.max_speed / _local5);
_local4 = _local4.multScalar(_local6);
_local1.pos = _local3.addVector(_local4);
};
_local7--;
};
}
private function AccumulateForces():void{
var _local1:Vector;
var _local2:Particle;
var _local3:*;
_local1 = new Vector(0, 0, 0);
_local3 = (Particles_array.length - 1);
while (_local3 >= 0) {
_local2 = Particles_array[_local3];
_local1 = _local2.thrust;
if (_local2.AffectedByExternalForces_bool){
_local1 = _local1.addVector(TotalExternalForces_vector);
};
_local2.acc = _local1.multScalar(_local2.mass_inv);
_local3--;
};
}
public function setExternalForces(_arg1:Vector):void{
TotalExternalForces_vector = _arg1;
}
public function TimeStep(_arg1:Array):void{
Particles_array = _arg1;
AccumulateForces();
VerletIntegration();
SatisfyConstraints();
}
private function VerletIntegration():void{
var _local1:Vector;
var _local2:Vector;
var _local3:Vector;
var _local4:Vector;
var _local5:Particle;
var _local6:*;
var _local7:*;
var _local8:Vector;
var _local9:*;
var _local10:*;
_local9 = 1;
_local10 = (Particles_array.length - 1);
while (_local10 >= 0) {
_local5 = Particles_array[_local10];
_local6 = _local5.pos;
_local7 = _local5.old_pos;
_local8 = _local5.acc;
_local1 = _local6.clone();
_local1 = _local1.subtractVector(_local5.push);
_local5.push = new Vector(0, 0, 0);
_local6 = _local6.addVector(_local5.constant_velocity);
_local2 = _local8.multScalar((_local9 * _local9));
_local3 = _local6.multScalar((2 - friction)).subtractVector(_local7.multScalar((1 - friction)));
_local4 = _local3.addVector(_local2);
_local5.pos = _local4;
_local5.old_pos = _local1;
_local10--;
};
}
}
}//package com.trickysheep.coral.world
Section 65
//Reef (com.trickysheep.coral.world.Reef)
package com.trickysheep.coral.world {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.sound.*;
import com.trickysheep.coral.world.floaties.*;
public class Reef extends EventDispatcher {
public var HasButtons_bool:Boolean;
public var GroundStartY_num:Number;
public var my_mc:MovieClip;
public var HasEnvironmentMouth_bool:Boolean;
public var GooShadowsReady_bool:Boolean;
public var ButtonCount_num:Number;
public var EnvironmentMouth_floaty:Floaty;
public var HasGoo_bool:Boolean;
public var HasGround_bool:Boolean;
public var GooCleanupMode_bool:Boolean;
public var NextGooID_num:Number;// = 0
public var ID_num:Number;
public var HideStuffForIntro_bool:Boolean;
public function Reef():void{
NextGooID_num = 0;
super();
HasGround_bool = true;
GooCleanupMode_bool = false;
GooShadowsReady_bool = false;
HideStuffForIntro_bool = false;
}
private function MouthEventHandler(_arg1:FloatyEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "PLANKTON_EATEN"){
my_mc.reef_mouth_mc.gotoAndPlay("eat");
TriggerSound("FX_SIZZLE");
this.dispatchEvent(new GameWorldEvent("PlanktonEatenByEnvironment", _arg1.command_data));
};
}
public function InitGooShadows(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:Number;
if (HasGoo_bool){
_local1 = 0;
while (_local1 < my_mc.goo_layer_mc.numChildren) {
_local2 = my_mc.goo_layer_mc.getChildAt(_local1);
if (!_local2.HasBeenInit_bool){
NextGooID_num++;
_local2.HasBeenInit_bool = true;
_local3 = new GooHiliteMC();
my_mc.goo_hilite_layer_mc.addChild(_local3);
_local2.GooID_num = NextGooID_num;
_local3.GooID_num = NextGooID_num;
_local3.x = _local2.x;
_local3.y = _local2.y;
_local4 = _local2.transform.matrix;
_local3.transform.matrix = _local4;
if ((_local2 is GooBlob_1_MC)){
_local5 = 1;
} else {
if ((_local2 is GooBlob_2_MC)){
_local5 = 2;
} else {
if ((_local2 is GooBlob_3_MC)){
_local5 = 3;
} else {
if ((_local2 is GooBlob_4_MC)){
_local5 = 4;
} else {
if ((_local2 is GooBlob_5_MC)){
_local5 = 5;
} else {
if ((_local2 is GooBlob_6_MC)){
_local5 = 6;
} else {
if ((_local2 is GooBlob_7_MC)){
_local5 = 7;
} else {
if ((_local2 is GooBlob_8_MC)){
_local5 = 8;
} else {
if ((_local2 is GooBlob_9_MC)){
_local5 = 9;
} else {
if ((_local2 is GooBlob_10_MC)){
_local5 = 10;
} else {
if ((_local2 is GooBlob_11_MC)){
_local5 = 11;
} else {
if ((_local2 is GooBlob_12_MC)){
_local5 = 12;
} else {
if ((_local2 is GooBlob_13_MC)){
_local5 = 13;
} else {
if ((_local2 is GooBlob_14_MC)){
_local5 = 14;
} else {
if ((_local2 is GooBlob_15_MC)){
_local5 = 15;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
_local2.goo_frames_mc.gotoAndStop((_local5 + 1));
_local3.gotoAndStop(_local5);
_local2.hitarea_mc.alpha = 0;
_local2.no_grow_area_mc.visible = false;
};
_local1++;
};
};
GooShadowsReady_bool = true;
}
private function CleanGoo(_arg1:MovieClip){
var _local2:*;
_arg1.Clear = true;
SetGooListenForClick(_arg1, false);
_arg1.gotoAndPlay("out");
_local2 = getGooHilite(_arg1.GooID_num);
if (_arg1.BossGoo){
my_mc.goo_hilite_layer_mc.removeChild(_local2);
_arg1.addEventListener("ANIM_DONE", this.GooDieAnimationFinished);
} else {
_local2.visible = false;
};
if (ID_num != 7){
TriggerScoring("GOO_CLEAR", 500);
};
TriggerSound("FX_SLURP2");
}
private function GooDraggedOver(_arg1:Event){
if (GooCleanupMode_bool){
CleanGoo(_arg1.target.parent);
};
}
public function TriggerScoring(_arg1:String, _arg2){
this.dispatchEvent(new GameWorldEvent("SCORING", _arg1, _arg2));
}
public function CreateGooInSpawnArea(_arg1:Array, _arg2:Array, _arg3:EggManager){
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:Boolean;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
_local4 = my_mc.goo_layer_mc.numChildren;
_local5 = 25;
if (_local4 < _local5){
_local8 = false;
_local9 = my_mc.goo_spawn_area_mc;
while (!(_local8)) {
_local6 = (Math.random() * 700);
_local7 = (Math.random() * 500);
_local8 = _local9.hitTestPoint(_local6, _local7, true);
};
_local10 = 7;
_local11 = Math.ceil((Math.random() * _local10));
if (_local11 == 1){
_local12 = new GooBlob_1_MC();
} else {
if (_local11 == 2){
_local12 = new GooBlob_3_MC();
} else {
if (_local11 == 3){
_local12 = new GooBlob_4_MC();
} else {
if (_local11 == 4){
_local12 = new GooBlob_5_MC();
} else {
if (_local11 == 5){
_local12 = new GooBlob_6_MC();
} else {
if (_local11 == 6){
_local12 = new GooBlob_10_MC();
} else {
if (_local11 == 7){
_local12 = new GooBlob_11_MC();
};
};
};
};
};
};
};
my_mc.goo_layer_mc.addChild(_local12);
_local12.x = _local6;
_local12.y = _local7;
_local13 = int((Math.random() * 4));
_local12.rotation = (90 * _local13);
_local12.BossGoo = true;
InitGooShadows();
_local12.gotoAndStop("on");
_local12.visible = true;
SetGooListenForClick(_local12, true);
};
}
public function ClearGooListeners(_arg1:MovieClip){
_arg1.hitarea_mc.removeEventListener(MouseEvent.MOUSE_DOWN, this.GooClicked);
_arg1.hitarea_mc.removeEventListener(MouseEvent.MOUSE_OVER, this.GooDraggedOver);
_arg1.removeEventListener("ANIM_DONE", this.GooDieAnimationFinished);
}
public function getUncleanGooArray():Array{
var _local1:Array;
var _local2:*;
var _local3:*;
_local1 = new Array();
if (HasGoo_bool){
_local2 = 0;
while (_local2 < my_mc.goo_layer_mc.numChildren) {
_local3 = my_mc.goo_layer_mc.getChildAt(_local2);
if (!_local3.Clear){
_local1.push(_local3);
};
_local2++;
};
};
return (_local1);
}
private function StartGooWipe(){
GooCleanupMode_bool = true;
my_mc.stage.addEventListener(MouseEvent.MOUSE_UP, mouseReleaseHandler);
}
private function mouseReleaseHandler(_arg1:Event){
if (GooCleanupMode_bool){
StopGooWipe();
};
}
public function StartReefPlaying(){
try {
my_mc.boss_intro_mc.gotoAndPlay("start");
} catch(e:Error) {
};
}
public function SetButtonListenForClick(_arg1:MovieClip, _arg2:Boolean){
_arg1.removeEventListener(MouseEvent.MOUSE_DOWN, this.ButtonClicked);
if (_arg2){
_arg1.addEventListener(MouseEvent.MOUSE_DOWN, this.ButtonClicked);
_arg1.buttonMode = true;
} else {
_arg1.buttonMode = false;
};
}
public function TriggerSound(_arg1){
this.dispatchEvent(new FXEvent("PLAY_FX", _arg1));
}
public function getGooHilite(_arg1):MovieClip{
var _local2:*;
var _local3:*;
_local2 = 0;
while (_local2 < my_mc.goo_hilite_layer_mc.numChildren) {
_local3 = my_mc.goo_hilite_layer_mc.getChildAt(_local2);
if (_local3.GooID_num == _arg1){
return (_local3);
};
_local2++;
};
return (null);
}
public function Draw():void{
var i:*;
var thisButton_mc:*;
var thisGoo_mc:*;
var myGooHilite:*;
my_mc.buildarea_mc.visible = false;
if (HasGround_bool){
my_mc.ground_area_mc.visible = false;
GroundStartY_num = my_mc.ground_area_mc.y;
};
my_mc.spawn_area_mc.visible = false;
try {
my_mc.star_sticker_mc.gotoAndStop("off");
} catch(e:Error) {
};
if (HasEnvironmentMouth_bool){
my_mc.reef_mouth_mc.hitarea_mc.visible = false;
EnvironmentMouth_floaty = new Floaty();
EnvironmentMouth_floaty.my_mc = my_mc.reef_mouth_mc;
EnvironmentMouth_floaty.EatingPlankton_bool = true;
EnvironmentMouth_floaty.addEventListener(FloatyEvent.FLOATY_EVENT, this.MouthEventHandler);
};
if (HasButtons_bool){
i = 0;
while (i < ButtonCount_num) {
thisButton_mc = my_mc[(("reef_button_" + i) + "_mc")];
thisButton_mc.ButtonID = i;
SetButtonListenForClick(thisButton_mc, true);
i = (i + 1);
};
};
if (HasGoo_bool){
if (!GooShadowsReady_bool){
InitGooShadows();
};
i = 0;
while (i < my_mc.goo_layer_mc.numChildren) {
thisGoo_mc = my_mc.goo_layer_mc.getChildAt(i);
thisGoo_mc.Clear = false;
myGooHilite = getGooHilite(thisGoo_mc.GooID_num);
if (HideStuffForIntro_bool){
thisGoo_mc.visible = false;
myGooHilite.visible = false;
SetGooListenForClick(thisGoo_mc, false);
} else {
thisGoo_mc.gotoAndStop("on");
thisGoo_mc.visible = true;
myGooHilite.visible = true;
SetGooListenForClick(thisGoo_mc, true);
};
i = (i + 1);
};
my_mc.goo_hilite_layer_mc.mouseEnabled = false;
my_mc.goo_hilite_layer_mc.mouseChildren = false;
};
try {
if (HideStuffForIntro_bool){
my_mc.boss_intro_mc.gotoAndStop("off");
my_mc.boss_intro_mc.visible = false;
} else {
my_mc.boss_intro_mc.gotoAndStop("on");
my_mc.boss_intro_mc.visible = true;
};
} catch(e:Error) {
};
try {
my_mc.special_spawn_area_mc.visible = false;
} catch(e:Error) {
};
my_mc.visible = true;
}
public function DeleteAllGoo(){
while (my_mc.goo_layer_mc.numChildren > 0) {
ClearGooListeners(my_mc.goo_layer_mc.getChildAt(0));
my_mc.goo_layer_mc.removeChildAt(0);
};
while (my_mc.goo_hilite_layer_mc.numChildren > 0) {
my_mc.goo_hilite_layer_mc.removeChildAt(0);
};
}
public function SetGooListenForClick(_arg1:MovieClip, _arg2:Boolean){
ClearGooListeners(_arg1);
_arg1.hitarea_mc.alpha = 0;
if (_arg2){
_arg1.hitarea_mc.addEventListener(MouseEvent.MOUSE_DOWN, this.GooClicked);
_arg1.hitarea_mc.addEventListener(MouseEvent.MOUSE_OVER, this.GooDraggedOver);
_arg1.hitarea_mc.buttonMode = true;
_arg1.mouseEnabled = false;
_arg1.goo_frames_mc.mouseEnabled = false;
_arg1.goo_frames_mc.mouseChildren = false;
_arg1.no_grow_area_mc.mouseEnabled = false;
_arg1.no_grow_area_mc.mouseChildren = false;
} else {
_arg1.hitarea_mc.buttonMode = false;
_arg1.mouseEnabled = false;
};
}
protected function GooClicked(_arg1:Event){
CleanGoo(_arg1.target.parent);
StartGooWipe();
}
private function StopGooWipe(){
GooCleanupMode_bool = false;
my_mc.stage.removeEventListener(MouseEvent.MOUSE_UP, mouseReleaseHandler);
}
protected function ButtonClicked(_arg1:Event){
this.dispatchEvent(new GameWorldEvent("ReefButtonClicked", _arg1.target.ButtonID));
}
public function setMC(_arg1:MovieClip){
my_mc = _arg1;
}
public function TestGroundHit(_arg1:Number, _arg2:Number):Boolean{
var _local3:Boolean;
_local3 = false;
if (_arg2 > GroundStartY_num){
_local3 = my_mc.ground_area_mc.hitTestPoint(_arg1, _arg2);
};
return (_local3);
}
public function GooDieAnimationFinished(_arg1:Event){
var _local2:*;
my_mc.removeEventListener("ANIM_DONE", this.GooDieAnimationFinished);
_local2 = _arg1.target;
ClearGooListeners(_local2);
my_mc.goo_layer_mc.removeChild(_local2);
}
}
}//package com.trickysheep.coral.world
Section 66
//ReefManager (com.trickysheep.coral.world.ReefManager)
package com.trickysheep.coral.world {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.sound.*;
import com.trickysheep.coral.*;
import fl.transitions.*;
import fl.transitions.easing.*;
public class ReefManager extends EventDispatcher {
public var PanTargetForeground_x:Number;
public var PanTargetForeground_y:Number;
public var CurrentReef:Reef;
public var Background_2_mc:MovieClip;
private var Foreground_Start_x_num:Number;
private var Background_water_Start_x_num:Number;
private var Pan_Foreground_y_Tween:Tween;
private var Pan_Background_water_y_Tween:Tween;
public var PanTargetBackground_2_x:Number;
public var PanTargetBackground_2_y:Number;
public var Pan_Reef_x_Tween:Tween;
private var Background_1_Start_y_num:Number;
private var Background_2_Start_x_num:Number;
public var PanTargetBackground_water_y:Number;
public var TotalReefs_num:Number;// = 7
public var PanTargetBackground_water_x:Number;
public var PanTargetBackground_1_x:Number;
public var PanTargetBackground_1_y:Number;
private var ReefMCStart_y_num:Number;
public var Pan_Reef_y_Tween:Tween;
public var World_mc:MovieClip;
private var Pan_Background_1_x_Tween:Tween;
public var Background_water_mc:MovieClip;
private var parallax_1_depth;// = 2
public var ReefLayer_mc:MovieClip;
private var Pan_Background_2_x_Tween:Tween;
private var Foreground_Start_y_num:Number;
private var Background_water_Start_y_num:Number;
public var Background_1_mc:MovieClip;
private var Background_1_Start_x_num:Number;
private var Background_2_Start_y_num:Number;
private var foreground_depth;// = 0.5
private var Pan_Background_1_y_Tween:Tween;
private var Pan_Background_2_y_Tween:Tween;
public var Reefs_array:Array;
private var parallax_2_depth;// = 3
public var PanTarget_x:Number;
private var Pan_Foreground_x_Tween:Tween;
private var Pan_Background_water_x_Tween:Tween;
public var PanTarget_y:Number;
public var Foreground_mc:MovieClip;
private var parallax_water_depth;// = 8
private var ReefMCStart_x_num:Number;
private var parallax_water_depth_y_hack;// = -2.8
public var PermanentCoralsLayer_mc:MovieClip;
public function ReefManager():void{
TotalReefs_num = 7;
foreground_depth = 0.5;
parallax_1_depth = 2;
parallax_2_depth = 3;
parallax_water_depth = 8;
parallax_water_depth_y_hack = -2.8;
super();
Reefs_array = new Array();
}
public function TriggerReefDrawUpdateEvent():void{
this.dispatchEvent(new GameWorldEvent("ReefDrawUpdate"));
}
public function StartPanToReef(_arg1:Reef, _arg2:Number){
StartPanToXY(_arg1.my_mc.x, _arg1.my_mc.y, _arg2);
Pan_Reef_x_Tween.addEventListener(TweenEvent.MOTION_FINISH, this.PanTweenFinished);
}
private function NewReefEnteredFrame(_arg1:Event){
var _local2:*;
_arg1.target.removeEventListener(Event.ENTER_FRAME, this.NewReefEnteredFrame);
_local2 = _arg1.target.Reef_Parent;
_local2.Draw();
}
private function TweenMotionChangeHandler(_arg1:TweenEvent){
TriggerReefDrawUpdateEvent();
}
public function GoToXYPosition(_arg1, _arg2){
SetPanTargetsXY(_arg1, _arg2);
ReefLayer_mc.x = PanTarget_x;
ReefLayer_mc.y = PanTarget_y;
Background_1_mc.x = PanTargetBackground_1_x;
Background_1_mc.y = PanTargetBackground_1_y;
Background_2_mc.x = PanTargetBackground_2_x;
Background_2_mc.y = PanTargetBackground_2_y;
Background_water_mc.x = PanTargetBackground_water_x;
Background_water_mc.y = PanTargetBackground_water_y;
Foreground_mc.x = PanTargetForeground_x;
Foreground_mc.y = PanTargetForeground_y;
TriggerReefDrawUpdateEvent();
}
private function TriggerPanToReefFinishedEvent():void{
this.dispatchEvent(new GameWorldEvent("PanToReefFinished"));
}
public function Init(){
var _local1:*;
_local1 = 0;
while (_local1 <= TotalReefs_num) {
Reefs_array[_local1] = InitReef(_local1);
_local1++;
};
Reefs_array[99] = InitReef(99);
}
public function FXEventHandler(_arg1:FXEvent):void{
this.dispatchEvent(new FXEvent(_arg1.command, _arg1.command_data));
}
public function StartPanToXY(_arg1:Number, _arg2:Number, _arg3:Number){
var _local4:*;
SetPanTargetsXY(_arg1, _arg2);
_local4 = _arg3;
Pan_Reef_x_Tween = new Tween(ReefLayer_mc, "x", Regular.easeInOut, ReefLayer_mc.x, PanTarget_x, _local4);
Pan_Reef_y_Tween = new Tween(ReefLayer_mc, "y", Regular.easeInOut, ReefLayer_mc.y, PanTarget_y, _local4);
Pan_Reef_x_Tween.addEventListener(TweenEvent.MOTION_CHANGE, this.TweenMotionChangeHandler);
Pan_Reef_y_Tween.addEventListener(TweenEvent.MOTION_CHANGE, this.TweenMotionChangeHandler);
Pan_Background_1_x_Tween = new Tween(Background_1_mc, "x", Regular.easeInOut, Background_1_mc.x, PanTargetBackground_1_x, _local4);
Pan_Background_1_y_Tween = new Tween(Background_1_mc, "y", Regular.easeInOut, Background_1_mc.y, PanTargetBackground_1_y, _local4);
Pan_Background_2_x_Tween = new Tween(Background_2_mc, "x", Regular.easeInOut, Background_2_mc.x, PanTargetBackground_2_x, _local4);
Pan_Background_2_y_Tween = new Tween(Background_2_mc, "y", Regular.easeInOut, Background_2_mc.y, PanTargetBackground_2_y, _local4);
Pan_Background_water_x_Tween = new Tween(Background_water_mc, "x", Regular.easeInOut, Background_water_mc.x, PanTargetBackground_water_x, _local4);
Pan_Background_water_y_Tween = new Tween(Background_water_mc, "y", Regular.easeInOut, Background_water_mc.y, PanTargetBackground_water_y, _local4);
Pan_Foreground_x_Tween = new Tween(Foreground_mc, "x", Regular.easeInOut, Foreground_mc.x, PanTargetForeground_x, _local4);
Pan_Foreground_y_Tween = new Tween(Foreground_mc, "y", Regular.easeInOut, Foreground_mc.y, PanTargetForeground_y, _local4);
}
public function TriggerSound(_arg1){
this.dispatchEvent(new FXEvent("PLAY_FX", _arg1));
}
public function InitReef(_arg1:Number):Reef{
var _local2:Reef;
var _local3:*;
_local2 = new Reef();
_local2.ID_num = _arg1;
if (_arg1 == 2){
_local2.HasGoo_bool = true;
} else {
if (_arg1 == 5){
_local2.HasGround_bool = false;
_local2.HasEnvironmentMouth_bool = true;
} else {
if (_arg1 == 6){
_local2.HasButtons_bool = true;
_local2.ButtonCount_num = 3;
_local2.HasGoo_bool = true;
} else {
if (_arg1 == 7){
_local2.HasGround_bool = false;
_local2.HasGoo_bool = true;
} else {
_local2.HasGround_bool = true;
};
};
};
};
_local3 = ReefLayer_mc.getChildByName((("reef_" + _arg1) + "_mc"));
_local3.Reef_Parent = _local2;
_local3.visible = false;
_local2.setMC(_local3);
_local3.addEventListener(Event.ENTER_FRAME, this.NewReefEnteredFrame);
_local2.addEventListener(GameWorldEvent.GAMEWORLD_EVENT, this.ReefEventHandler);
_local2.addEventListener(FXEvent.SOUND_TRIGGER, this.FXEventHandler);
return (_local2);
}
public function PanTweenFinished(_arg1:TweenEvent){
Pan_Reef_x_Tween.removeEventListener(TweenEvent.MOTION_FINISH, this.PanTweenFinished);
Pan_Reef_x_Tween.removeEventListener(TweenEvent.MOTION_CHANGE, this.TweenMotionChangeHandler);
Pan_Reef_y_Tween.removeEventListener(TweenEvent.MOTION_CHANGE, this.TweenMotionChangeHandler);
TriggerPanToReefFinishedEvent();
}
public function SetCurrentReef(_arg1:Number){
CurrentReef = Reefs_array[_arg1];
CurrentReef.HideStuffForIntro_bool = false;
if (GameSettings.getInstance().getHolidayModeOn()){
ReefLayer_mc.holiday_stuff_mc.visible = true;
ReefLayer_mc.holiday_stuff_mc.gotoAndStop("on");
} else {
ReefLayer_mc.holiday_stuff_mc.visible = false;
ReefLayer_mc.holiday_stuff_mc.gotoAndStop("off");
};
CurrentReef.Draw();
}
public function PrepReefsForGameStart(){
var _local1:*;
_local1 = 0;
while (_local1 <= TotalReefs_num) {
Reefs_array[_local1].Draw();
_local1++;
};
}
private function SetPanTargets(_arg1:Reef){
SetPanTargetsXY(_arg1.my_mc.x, _arg1.my_mc.y);
}
private function ReefEventHandler(_arg1:GameWorldEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "PlanktonEatenByEnvironment"){
this.dispatchEvent(new GameWorldEvent("PlanktonEatenByEnvironment", _arg1.command_data));
} else {
if (_local2 == "ReefButtonClicked"){
this.dispatchEvent(new GameWorldEvent("ReefButtonClicked", _local3));
} else {
if (_local2 == "SCORING"){
this.dispatchEvent(new GameWorldEvent("SCORING", _local3[0], _local3[1]));
};
};
};
}
public function MoveMC_to_PermanentLayer(_arg1:MovieClip){
var _local2:*;
_local2 = _arg1;
PermanentCoralsLayer_mc.addChild(_local2);
_local2.x = (_local2.x - ReefLayer_mc.x);
_local2.y = (_local2.y - ReefLayer_mc.y);
}
public function GoToReefPosition(_arg1){
var _local2:Reef;
_local2 = Reefs_array[_arg1];
GoToXYPosition(_local2.my_mc.x, _local2.my_mc.y);
}
public function GoToStartPosition(){
ReefLayer_mc.x = ReefMCStart_x_num;
ReefLayer_mc.y = ReefMCStart_y_num;
Background_1_mc.x = Background_1_Start_x_num;
Background_1_mc.y = Background_1_Start_y_num;
Background_2_mc.x = Background_2_Start_x_num;
Background_2_mc.y = Background_2_Start_y_num;
Background_water_mc.x = Background_water_Start_x_num;
Background_water_mc.y = Background_water_Start_y_num;
Foreground_mc.x = Foreground_Start_x_num;
Foreground_mc.y = Foreground_Start_y_num;
}
public function PrepReefsForIntro(){
var _local1:*;
_local1 = 0;
while (_local1 <= TotalReefs_num) {
Reefs_array[_local1].HideStuffForIntro_bool = true;
Reefs_array[_local1].Draw();
_local1++;
};
}
private function SetPanTargetsXY(_arg1, _arg2){
PanTarget_x = (ReefMCStart_x_num - _arg1);
PanTarget_y = (ReefMCStart_y_num - _arg2);
PanTargetBackground_1_x = (Background_1_Start_x_num + (PanTarget_x / parallax_1_depth));
PanTargetBackground_1_y = (Background_1_Start_y_num + (PanTarget_y / parallax_1_depth));
PanTargetBackground_2_x = (Background_2_Start_x_num + (PanTarget_x / parallax_2_depth));
PanTargetBackground_2_y = (Background_2_Start_y_num + (PanTarget_y / parallax_2_depth));
PanTargetBackground_water_x = (Background_water_Start_x_num + (PanTarget_x / parallax_water_depth));
PanTargetBackground_water_y = (Background_water_Start_y_num + (PanTarget_y / (parallax_water_depth + parallax_water_depth_y_hack)));
PanTargetForeground_x = (Foreground_Start_x_num + (PanTarget_x / foreground_depth));
PanTargetForeground_y = (Foreground_Start_y_num + (PanTarget_y / foreground_depth));
}
public function setWorldMC(_arg1:MovieClip){
World_mc = _arg1;
PermanentCoralsLayer_mc = World_mc.reef_layer_mc.permanent_corals_layer_mc;
ReefLayer_mc = World_mc.reef_layer_mc;
ReefMCStart_x_num = ReefLayer_mc.x;
ReefMCStart_y_num = ReefLayer_mc.y;
Background_1_mc = World_mc.background_1_mc;
Background_1_Start_x_num = Background_1_mc.x;
Background_1_Start_y_num = Background_1_mc.y;
Background_2_mc = World_mc.background_2_mc;
Background_2_Start_x_num = Background_2_mc.x;
Background_2_Start_y_num = Background_2_mc.y;
Background_water_mc = World_mc.background_water_mc;
Background_water_Start_x_num = Background_water_mc.x;
Background_water_Start_y_num = Background_water_mc.y;
Foreground_mc = World_mc.foreground_mc;
Foreground_Start_x_num = Background_2_mc.x;
Foreground_Start_y_num = Background_2_mc.y;
}
}
}//package com.trickysheep.coral.world
Section 67
//GameSettings (com.trickysheep.coral.GameSettings)
package com.trickysheep.coral {
public class GameSettings {
private var MusicOn_bool:Boolean;// = true
private var TrickysheepLink_str:String;// = "http://www.trickysheep.com/?gamereferral=kaleidoscopereef"
private var StatsLink_str:String;// = "http://www.trickysheep.com/functions/init/"
private var GameSiteLink_str:String;// = "http://www.kaleidoscopereef.com/?gamereferral=kaleidoscopereef"
private var KongregateLink_str:String;// = "http://kongregate.com/?gamereferral=kaleidoscopereef"
private var KongregateGameLink_str:String;// = "http://www.kongregate.com/games/Trickysheep/kaleidoscope-reef/?gamereferral=kaleidoscopereef"
private var AquariumUnlocked_bool:Boolean;// = false
private var AquariumModeEnabled_bool:Boolean;// = true
private var LevelSelectUnlocked_bool:Boolean;// = false
private var HolidayModeOn_bool:Boolean;// = false
private var ColorBlindMode_bool:Boolean;// = false
private var SoundOn_bool:Boolean;// = true
private var ConnectedToKongregate_bool:Boolean;// = false
private var TermsLink_str:String;// = "http://www.trickysheep.com/terms?gamereferral=kaleidoscopereef"
private var HolidayModeAvailable_bool:Boolean;// = false
private static var allowInstantiation:Boolean;
private static var instance:GameSettings;
public function GameSettings():void{
ColorBlindMode_bool = false;
MusicOn_bool = true;
SoundOn_bool = true;
AquariumModeEnabled_bool = true;
ConnectedToKongregate_bool = false;
KongregateLink_str = "http://kongregate.com/?gamereferral=kaleidoscopereef";
KongregateGameLink_str = "http://www.kongregate.com/games/Trickysheep/kaleidoscope-reef/?gamereferral=kaleidoscopereef";
TrickysheepLink_str = "http://www.trickysheep.com/?gamereferral=kaleidoscopereef";
GameSiteLink_str = "http://www.kaleidoscopereef.com/?gamereferral=kaleidoscopereef";
TermsLink_str = "http://www.trickysheep.com/terms?gamereferral=kaleidoscopereef";
StatsLink_str = "http://www.trickysheep.com/functions/init/";
AquariumUnlocked_bool = false;
LevelSelectUnlocked_bool = false;
HolidayModeAvailable_bool = false;
HolidayModeOn_bool = false;
super();
if (!allowInstantiation){
throw (new Error("Error: Instantiation failed: Use GameSettings.getInstance() instead of new."));
};
}
public function getStatsLink():String{
return (StatsLink_str);
}
public function setSoundOn(_arg1:Boolean){
SoundOn_bool = _arg1;
}
public function getSoundOn():Boolean{
return (SoundOn_bool);
}
public function getAquariumModeEnabled():Boolean{
return (AquariumModeEnabled_bool);
}
public function setHolidayModeOn(_arg1:Boolean){
HolidayModeOn_bool = _arg1;
}
public function setAquariumModeEnabled(_arg1:Boolean){
AquariumModeEnabled_bool = _arg1;
}
public function setMusicOn(_arg1:Boolean){
MusicOn_bool = _arg1;
}
public function setConnectedToKongregate(_arg1:Boolean){
ConnectedToKongregate_bool = _arg1;
}
public function getConnectedToKongregate():Boolean{
return (ConnectedToKongregate_bool);
}
public function getHolidayModeOn():Boolean{
return (HolidayModeOn_bool);
}
public function getMusicOn():Boolean{
return (MusicOn_bool);
}
public function getAquariumUnlocked():Boolean{
return (AquariumUnlocked_bool);
}
public function setAquariumUnlocked(_arg1:Boolean){
AquariumUnlocked_bool = _arg1;
}
public function toggleSoundOn(){
SoundOn_bool = !(SoundOn_bool);
}
public function setLevelSelectUnlocked(_arg1:Boolean){
LevelSelectUnlocked_bool = _arg1;
}
public function getHolidayModeAvailable():Boolean{
return (HolidayModeAvailable_bool);
}
public function toggleColorBlindMode(){
ColorBlindMode_bool = !(ColorBlindMode_bool);
}
public function getKongregateLink():String{
return (KongregateLink_str);
}
public function getLevelSelectUnlocked():Boolean{
return (LevelSelectUnlocked_bool);
}
public function getGameSiteLink():String{
return (GameSiteLink_str);
}
public function getColorBlindMode():Boolean{
return (ColorBlindMode_bool);
}
public function toggleMusicOn(){
MusicOn_bool = !(MusicOn_bool);
}
public function getTrickysheepLink():String{
return (TrickysheepLink_str);
}
public function getTermsLink():String{
return (TermsLink_str);
}
public function getKongregateGameLink():String{
return (KongregateGameLink_str);
}
public function setColorBlindMode(_arg1:Boolean){
ColorBlindMode_bool = _arg1;
}
public function setHolidayModeAvailable(_arg1:Boolean){
HolidayModeAvailable_bool = _arg1;
}
public static function getInstance():GameSettings{
if (instance == null){
allowInstantiation = true;
instance = new (GameSettings);
allowInstantiation = false;
};
return (instance);
}
}
}//package com.trickysheep.coral
Section 68
//GameState (com.trickysheep.coral.GameState)
package com.trickysheep.coral {
import com.trickysheep.coral.stages.*;
import com.trickysheep.coral.world.*;
import flash.utils.*;
public class GameState {
public var ComboCount_int:int;
public var BestComboCount_int:int;
public var TotalScore_int:int;
public var LevelTimeInSecs_num:Number;
public var CurrentReef:Reef;
public var ReefCorals_array:Array;
public var LastComboUpdate_int:int;
public var TotalCoralForLevel_num:Number;
public var TotalPlanktonForLevel_num:Number;
public var ComboGoing_bool:Boolean;
public var CurrentStage:GameStage;
public var CurrentLevelHealth_int:int;
public var CurrentLevel:Level;
public var TotalInGameTime_num:Number;
public var LevelTimeEnded_num:Number;
public var BetweenLevels_bool:Boolean;
public var LevelTimeStarted_num:Number;
public var TotalEggsPlantedForLevel_num:Number;
public var ReefEggs_array:Array;
public var ReefPolyps_array:Array;
public var CurrentLevelWon_bool:Boolean;
public var BetweenLevelsInfo_str:String;
public var GameTimeStarted_num:Number;
public var LivingCorals_num:Number;
public var PermanentCoralFish_array:Array;
public var TotalTimePaused_num:Number;
public var PermanentCorals_array:Array;
public var CurrentStage_num:Number;
public var TotalPlanktonForGame_num:Number;
public var CurrentLevel_num:Number;
public var TotalCoralForGame_num:Number;
public var ComboScore_int:int;
public var TotalEggsFallenForLevel_num:Number;
public function GameState():void{
Init();
}
public function CalculateEndOfLevelScore(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
EndCombo();
BetweenLevels_bool = true;
LevelTimeEnded_num = getTimer();
LevelTimeInSecs_num = int((((LevelTimeEnded_num - LevelTimeStarted_num) - TotalTimePaused_num) / 1000));
_local1 = int((LevelTimeInSecs_num / 60));
_local2 = (LevelTimeInSecs_num % 60);
_local3 = (_local1 + ":");
if (_local2 < 10){
_local3 = (_local3 + "0");
};
_local3 = (_local3 + _local2);
TotalInGameTime_num = (TotalInGameTime_num + ((LevelTimeEnded_num - LevelTimeStarted_num) - TotalTimePaused_num));
_local4 = CurrentLevel.TimePar_num;
_local5 = 0;
_local6 = (LevelTimeInSecs_num - _local4);
_local7 = (_local6 / _local4);
if (_local6 < 0){
_local5 = 300000;
} else {
if (_local7 < 0.1){
_local5 = 100000;
} else {
if (_local7 < 0.2){
_local5 = 60000;
} else {
if (_local7 < 0.3){
_local5 = 40000;
} else {
_local5 = 0;
};
};
};
};
_local8 = 0;
_local8 = ((10000 * (CurrentStage_num + 1)) + (CurrentStage_num * 5000));
TotalPlanktonForGame_num = (TotalPlanktonForGame_num + TotalPlanktonForLevel_num);
TotalCoralForGame_num = (TotalCoralForGame_num + TotalCoralForLevel_num);
_local9 = (TotalEggsPlantedForLevel_num / TotalEggsFallenForLevel_num);
_local10 = 0;
if (_local9 > 0.95){
_local10 = 90000;
} else {
if (_local9 > 0.9){
_local10 = 70000;
} else {
if (_local9 > 0.8){
_local10 = 30000;
} else {
_local10 = 0;
};
};
};
BetweenLevelsInfo_str = ("+" + NumberToCommaString(_local8));
BetweenLevelsInfo_str = (BetweenLevelsInfo_str + ("\nT " + _local3));
if (_local5 > 0){
BetweenLevelsInfo_str = (BetweenLevelsInfo_str + ("\n T B +" + NumberToCommaString(_local5)));
};
if (_local10 > 0){
BetweenLevelsInfo_str = (BetweenLevelsInfo_str + ("\n P B +" + NumberToCommaString(_local10)));
};
AddToScore(_local5);
AddToScore(_local8);
}
public function getCurrentLevelString():String{
var _local1:String;
_local1 = ("Reef " + getCurrentStageString());
_local1 = (_local1 + ((("\nDay " + (CurrentLevel_num + 1)) + " of ") + CurrentStage.Levels_array.length));
return (_local1);
}
public function EndCombo(){
ComboGoing_bool = false;
}
public function StartNewStage(_arg1:GameStage):void{
CurrentStage = _arg1;
CurrentLevel = null;
ReefCorals_array = new Array();
ReefPolyps_array = new Array();
ReefEggs_array = new Array();
LivingCorals_num = 0;
CurrentLevelHealth_int = 0;
TotalPlanktonForLevel_num = 0;
TotalCoralForLevel_num = 0;
TotalEggsPlantedForLevel_num = 0;
TotalEggsFallenForLevel_num = 0;
BetweenLevels_bool = false;
LevelTimeStarted_num = getTimer();
}
public function StartNewLevel(_arg1:Level):void{
CurrentLevel = _arg1;
CurrentLevelHealth_int = 0;
CurrentLevelWon_bool = false;
}
public function AddToScore(_arg1){
TotalScore_int = (TotalScore_int + _arg1);
}
public function Init():void{
GameTimeStarted_num = 0;
LevelTimeStarted_num = 0;
LevelTimeEnded_num = 0;
TotalInGameTime_num = 0;
LevelTimeInSecs_num = 0;
TotalTimePaused_num = 0;
CurrentStage_num = 0;
CurrentStage = null;
CurrentLevel_num = 0;
CurrentLevel = null;
TotalPlanktonForGame_num = 0;
TotalPlanktonForLevel_num = 0;
TotalCoralForLevel_num = 0;
TotalCoralForGame_num = 0;
TotalEggsFallenForLevel_num = 0;
TotalEggsPlantedForLevel_num = 0;
CurrentLevelHealth_int = 0;
CurrentLevelWon_bool = false;
CurrentReef = null;
ReefPolyps_array = new Array();
ReefCorals_array = new Array();
ReefEggs_array = new Array();
PermanentCorals_array = new Array();
PermanentCoralFish_array = new Array();
LivingCorals_num = 0;
TotalScore_int = 0;
ComboScore_int = 0;
ComboCount_int = 0;
BestComboCount_int = 0;
LastComboUpdate_int = 0;
ComboGoing_bool = false;
BetweenLevels_bool = false;
BetweenLevelsInfo_str = "";
}
public function Clone():GameState{
var _local1:GameState;
_local1 = new GameState();
_local1.GameTimeStarted_num = GameTimeStarted_num;
_local1.LevelTimeStarted_num = LevelTimeStarted_num;
_local1.LevelTimeEnded_num = LevelTimeEnded_num;
_local1.TotalInGameTime_num = TotalInGameTime_num;
_local1.TotalTimePaused_num = TotalTimePaused_num;
_local1.LevelTimeInSecs_num = LevelTimeInSecs_num;
_local1.CurrentStage_num = CurrentStage_num;
_local1.CurrentStage = CurrentStage;
_local1.CurrentLevel_num = CurrentLevel_num;
_local1.CurrentLevel = CurrentLevel;
_local1.TotalPlanktonForGame_num = TotalPlanktonForGame_num;
_local1.TotalPlanktonForLevel_num = TotalPlanktonForLevel_num;
_local1.TotalCoralForGame_num = TotalCoralForGame_num;
_local1.TotalEggsFallenForLevel_num = TotalEggsFallenForLevel_num;
_local1.TotalEggsPlantedForLevel_num = TotalEggsPlantedForLevel_num;
_local1.CurrentLevelWon_bool = CurrentLevelWon_bool;
_local1.CurrentReef = CurrentReef;
_local1.ReefPolyps_array = ReefPolyps_array.concat();
_local1.ReefCorals_array = ReefCorals_array.concat();
_local1.ReefEggs_array = ReefEggs_array.concat();
_local1.PermanentCorals_array = PermanentCorals_array.concat();
_local1.PermanentCoralFish_array = PermanentCoralFish_array.concat();
_local1.LivingCorals_num = LivingCorals_num;
_local1.CurrentLevelHealth_int = CurrentLevelHealth_int;
return (_local1);
}
public function getScoreInfoString():String{
var _local1:String;
var _local2:*;
var _local3:*;
_local1 = "";
if (ComboGoing_bool){
if (ComboCount_int > 1){
_local1 = (ComboCount_int + "x C");
};
} else {
if (ComboCount_int > 1){
_local2 = (getTimer() - LastComboUpdate_int);
if (_local2 < 4000){
_local1 = ((ComboCount_int + "x C! +") + NumberToCommaString(ComboScore_int));
};
};
};
if (BetweenLevels_bool){
_local3 = (getTimer() - LevelTimeEnded_num);
if (_local3 < 8000){
if (_local1 != ""){
_local1 = (_local1 + "\n");
};
_local1 = (_local1 + BetweenLevelsInfo_str);
};
};
return (_local1);
}
public function AddToPlanktonCombo(){
var _local1:*;
if (!ComboGoing_bool){
ComboCount_int = 0;
ComboScore_int = 0;
ComboGoing_bool = true;
};
ComboCount_int++;
if (ComboCount_int > BestComboCount_int){
BestComboCount_int = ComboCount_int;
};
_local1 = (500 + (100 * ComboCount_int));
ComboScore_int = (ComboScore_int + _local1);
AddToScore(_local1);
LastComboUpdate_int = getTimer();
}
public function NumberToCommaString(_arg1:Number):String{
var _local2:*;
var _local3:*;
var _local4:int;
var _local5:*;
_local2 = _arg1.toString();
_local4 = 1;
if (_local2.indexOf(".") == -1){
_local3 = "";
_local2 = _local2.split("");
} else {
_local3 = _local2.substr(_local2.indexOf("."), _local2.length);
_local2 = _local2.substr(0, _local2.indexOf(".")).split("");
};
_local5 = (_local2.length - 1);
while (_local5 >= 0) {
_local3 = (_local2[_local5] + _local3);
var _temp1 = _local4;
_local4 = (_local4 + 1);
if (_temp1 == 3){
_local4 = 1;
_local3 = (((((isNaN(_local2[0])) && ((_local5 > 1)))) || (((!(isNaN(_local2[0]))) && ((_local5 >= 1)))))) ? ("," + _local3) : _local3;
};
_local5--;
};
return (_local3);
}
public function getCurrentStageString():String{
var _local1:Number;
_local1 = (CurrentStage_num + 1);
return (_local1.toString());
}
public function getScoreStatsArray():Array{
var _local1:Array;
var _local2:Number;
var _local3:*;
_local1 = new Array();
_local2 = (CurrentStage_num + 1);
_local1.push({name:("TimeToWin" + _local2), value:LevelTimeInSecs_num});
if (_local2 == 7){
TotalInGameTime_num;
_local3 = int((TotalInGameTime_num / 1000));
_local1.push({name:"GameWon", value:1});
_local1.push({name:"TimeToWinGame", value:TotalInGameTime_num});
};
_local1.push({name:"TotalScore", value:TotalScore_int});
_local1.push({name:"PlanktonEaten", value:TotalPlanktonForLevel_num});
_local1.push({name:"CoralsGrown", value:TotalCoralForLevel_num});
_local1.push({name:"BestChain", value:BestComboCount_int});
return (_local1);
}
}
}//package com.trickysheep.coral
Section 69
//TheCoralGame (com.trickysheep.coral.TheCoralGame)
package com.trickysheep.coral {
import flash.events.*;
import flash.display.*;
import com.trickysheep.util.*;
import com.trickysheep.coral.stages.*;
import com.trickysheep.coral.world.*;
import com.trickysheep.coral.GUI.*;
import com.trickysheep.coral.sound.*;
import com.kongregate.as3.client.events.*;
import com.kongregate.as3.client.*;
import flash.net.*;
import flash.utils.*;
public class TheCoralGame {
private var World_mc:MovieClip;
private var GameStages_array:Array;
private var Interface_mc:MovieClip;
private var TOO_SLOW_TARGET_FPS;// = 32
private var previousGameState:GameState;
private var myGameWorldManager:GameWorldManager;
private var PauseTimeStart_num:Number;
private var myStage:Stage;
private var Aquarium_GameStage:GameStage;
private var FPSTestCoundown;
private var STARTING_FPS;
private var mySharedObject:SharedObject;
private var TOO_FAST_TARGET_FPS;// = 30
private var FPS_monitor:FPS;
private var mySoundManager:SoundManager;
private var myGUIController:GUIController;
private var myKongregateAPI:KongregateAPI;
private var myGameState:GameState;
private var InitTimer:Timer;
public function TheCoralGame(_arg1:Stage):void{
var _local2:*;
var _local3:Date;
var _local4:String;
TOO_FAST_TARGET_FPS = 30;
TOO_SLOW_TARGET_FPS = 32;
super();
SendDebugMessage("TheCoralGame");
myStage = _arg1;
myGameState = new GameState();
myGUIController = new GUIController();
myGUIController.setGameState(myGameState);
myGUIController.addEventListener(GUIEvent.GUI_ACTION, this.GUIEventHandler);
myGameWorldManager = new GameWorldManager();
myGameWorldManager.addEventListener(GameWorldEvent.GAMEWORLD_EVENT, this.GameWorldEventHandler);
myGameWorldManager.addEventListener(FXEvent.SOUND_TRIGGER, this.FXEventHandler);
myKongregateAPI = new KongregateAPI();
myKongregateAPI.addEventListener(KongregateEvent.COMPLETE, KongregateServicesLoadedHandler);
myStage.addChild(myKongregateAPI);
GameSettings.getInstance().setConnectedToKongregate(false);
TestForKongregateSite();
_local2 = false;
if (_local2){
GameSettings.getInstance().setConnectedToKongregate(true);
GameSettings.getInstance().setHolidayModeAvailable(true);
GameSettings.getInstance().setHolidayModeOn(true);
};
_local3 = new Date();
if ((((_local3.getMonth() == 11)) || ((((_local3.getMonth() == 0)) && ((_local3.getDate() < 8)))))){
GameSettings.getInstance().setHolidayModeAvailable(true);
};
InitFrameRate();
InitGameStages();
GameSettings.getInstance().setColorBlindMode(false);
mySoundManager = new SoundManager();
mySoundManager.Init();
LoadSharedObjects();
CallHome();
_local4 = ("TheCoralGameReady?k=" + GameSettings.getInstance().getConnectedToKongregate());
_local4 = (_local4 + ("&h=" + GameSettings.getInstance().getHolidayModeAvailable()));
_local4 = (_local4 + ("&a=" + GameSettings.getInstance().getAquariumUnlocked()));
SendDebugMessage(_local4);
}
private function PrepareLevelStart(_arg1:Level){
previousGameState = myGameState.Clone();
myGameState.StartNewLevel(_arg1);
myGameWorldManager.InitializeWorldForLevelStart(myGameState);
ChangeBGM(_arg1.BGMCode_str, 4, 8);
}
private function LoadSharedObjects(){
var AquariumUnlocked_bool:Boolean;
AquariumUnlocked_bool = false;
try {
mySharedObject = SharedObject.getLocal("kaleidoscope-reef");
if (mySharedObject != null){
if (mySharedObject.size == 0){
mySharedObject.data.AquariumUnlocked = false;
};
GameSettings.getInstance().setAquariumUnlocked(mySharedObject.data.AquariumUnlocked);
SendDebugMessage("FoundOldSharedObject");
} else {
trace("ERROR WITH SO");
SendDebugMessage("NoSharedObject!!!");
};
} catch(e:Error) {
SendDebugMessage("ErrorLoadingSharedObject!!!");
};
}
private function GameIntroFinished():void{
myGameState.Init();
myGameState.CurrentStage_num = -1;
StartNextStage();
}
private function CallHomeHandler(_arg1:Event):void{
trace(("CallHomeHandler: " + _arg1));
}
private function LevelWon():void{
myGameState.CurrentLevelWon_bool = true;
SumbitScoresToServer();
myGUIController.ShowLevelWonScreen();
}
function KongregateServicesLoadedHandler(_arg1:KongregateEvent):void{
trace("Kongregate services are now available");
myKongregateAPI.addEventListener(KongregateEvent.COMPLETE, KongregateServicesLoadedHandler);
}
private function InitTimerHandler(_arg1:TimerEvent):void{
SendDebugMessage("InitTimerHandler");
if (AllElementsLoaded()){
SendDebugMessage("AllElementsLoaded");
myGameWorldManager.InitializeWorldForGameStart();
_arg1.target.stop();
StartCoralGame();
};
}
private function GameEndingFinished():void{
myGameWorldManager.StopGameEnding();
myStage.quality = StageQuality.LOW;
QuitGame();
}
public function GUIEventHandler(_arg1:GUIEvent){
switch (_arg1.command){
case "PlayNewGame":
StartNewGame();
break;
case "PlayAquarium":
StartAquarium();
break;
case "GameIntroSkipped":
GameIntroSkipped();
break;
case "GotoMainMenu":
GotoMainMenu();
break;
case "StageIntroDone":
StartNextLevel();
break;
case "LevelIntroDone":
StartGame();
break;
case "DEBUG_GameWon":
LevelWon();
break;
case "DEBUG_GameLost":
LevelLost();
break;
case "DEBUG_Test":
break;
case "QuitGame":
QuitGame();
break;
case "StartNextLevel":
StartNextLevel();
break;
case "RetryLevel":
RetryCurrentLevel();
break;
case "SkipToStage":
SkipToStage(_arg1.command_data);
break;
case "PauseGame":
PauseGame(true);
break;
case "UnPauseGame":
PauseGame(false);
break;
case "GameEndingDone":
GameEndingFinished();
break;
case "TurnSoundOn":
GameSettings.getInstance().setSoundOn(true);
mySoundManager.UpdateSoundSettings();
break;
case "TurnSoundOff":
GameSettings.getInstance().setSoundOn(false);
mySoundManager.UpdateSoundSettings();
break;
case "TurnMusicOn":
GameSettings.getInstance().setMusicOn(true);
mySoundManager.RestartMusic();
break;
case "TurnMusicOff":
GameSettings.getInstance().setMusicOn(false);
mySoundManager.StopMusic();
break;
case "ButtonClicked":
mySoundManager.PlaySound("FX_CLICK");
break;
};
}
private function InitFrameRate(){
STARTING_FPS = myStage.frameRate;
FPSTestCoundown = TOO_FAST_TARGET_FPS;
}
public function InitGameStages(){
var _local1:GameStage;
var _local2:Level;
GameStages_array = new Array();
_local1 = new GameStage();
_local1.ReefID_num = 1;
_local1.ReefScrollFrames_num = 60;
GameStages_array.push(_local1);
_local2 = new Level();
_local2.BGMCode_str = "BGM_LIVELY";
_local2.HealthRequired_num = 85;
_local2.setTimePar(55);
_local2.setPlankton(0, 0);
_local2.setPlanktonColors(0, 1, 2);
_local2.setEggs(1, 90);
_local2.setEggSizeDistribution(1, 0, 0);
_local2.setEggColors(6);
_local2.setSmallCorals(1, 2, 4, 5, 8, 9, 28, 37, 38, 42, 45, 58, 59, 61, 62, 89, 93, 93);
_local2.setMediumCorals(10);
_local2.setLargeCorals(29);
_local1.AddLevel(_local2);
_local1 = new GameStage();
_local1.ReefID_num = 2;
GameStages_array.push(_local1);
_local2 = new Level();
_local2.BGMCode_str = "BGM_SPARSE";
_local2.HealthRequired_num = 120;
_local2.setTimePar(69);
_local2.setPlankton(0, 20);
_local2.setPlanktonColors(0, 1, 2);
_local2.setEggs(5, 90);
_local2.setEggSizeDistribution(0.45, 0.55, 0);
_local2.setEggColors(6);
_local2.setPlanktonMovement(-0.05, -0.03, -0.05, 0.03);
_local2.setSmallCorals(3, 9, 28, 39, 40, 45, 63, 92);
_local2.setMediumCorals(10, 11, 20, 24, 25, 27, 36, 54, 60, 64, 68, 71, 72, 75, 77, 80, 96);
_local2.setLargeCorals();
_local1.AddLevel(_local2);
_local1 = new GameStage();
_local1.ReefID_num = 3;
GameStages_array.push(_local1);
_local2 = new Level();
_local2.BGMCode_str = "BGM_DEEP";
_local2.HealthRequired_num = 120;
_local2.setTimePar(106);
_local2.setPlankton(0, 15);
_local2.setPlanktonColors(0, 1, 2);
_local2.setEggs(5, 90);
_local2.setEggSizeDistribution(0.6, 0.4, 0);
_local2.setEggColors(1, 6);
_local2.setPoisonPlankton(80, 405, 400);
_local2.setSmallCorals(1, 4, 31, 37, 42, 58, 59, 89, 90, 91, 94);
_local2.setMediumCorals(12, 20, 21, 22, 23, 36, 41, 47, 57, 69, 71, 76);
_local2.setLargeCorals();
_local1.AddLevel(_local2);
_local1 = new GameStage();
_local1.ReefID_num = 4;
GameStages_array.push(_local1);
_local2 = new Level();
_local2.BGMCode_str = "BGM_MYSTERIOUS";
_local2.HealthRequired_num = 200;
_local2.setTimePar(112);
_local2.setEggSizeDistribution(0.4, 0.4, 0.2);
_local2.setEggColors(2, 5, 6);
_local2.setEggs(8, 90);
_local2.setPlankton(0, 30);
_local2.setPlanktonColors(2);
_local2.setPlanktonMovement(-0.005, 0.005, 0.05, 0.03);
_local2.setSmallCorals(4, 5, 6, 8, 9, 38, 62, 63, 90, 93);
_local2.setMediumCorals(23, 24, 25, 47, 57, 76, 77, 79, 85, 88, 97);
_local2.setLargeCorals(30, 67, 81, 87, 100, 101);
_local1.AddLevel(_local2);
_local1 = new GameStage();
_local1.ReefID_num = 5;
GameStages_array.push(_local1);
_local2 = new Level();
_local2.BGMCode_str = "BGM_VOLCANO";
_local2.HealthRequired_num = 140;
_local2.setTimePar(135);
_local2.setEggSizeDistribution(0.2, 0.5, 0.3);
_local2.setEggColors(0, 1, 3);
_local2.setEggs(7, 90);
_local2.setPlankton(0, 30);
_local2.setPlanktonColors(2);
_local2.setSmallCorals(1, 28, 40, 61, 82, 91, 92);
_local2.setMediumCorals(10, 27, 36, 41, 46, 60, 68, 70, 72, 74, 78, 95, 96, 98);
_local2.setLargeCorals(33, 55, 66, 73, 83, 99, 103);
_local1.AddLevel(_local2);
_local1 = new GameStage();
_local1.ReefID_num = 6;
GameStages_array.push(_local1);
_local2 = new Level();
_local2.BGMCode_str = "BGM_SPARSE";
_local2.HealthRequired_num = 130;
_local2.setTimePar(90);
_local2.setEggSizeDistribution(0.3, 0.7, 0);
_local2.setEggColors(3, 4, 5);
_local2.setEggs(5, 90);
_local2.setPlankton(0, 999);
_local2.setPlanktonColors(0, 1, 2);
_local2.setPoisonPlankton(85, 450, 445);
_local2.setSmallCorals(2, 40, 59, 89, 90, 91, 92, 94);
_local2.setMediumCorals(84, 10, 11, 46, 64, 68, 69, 71, 72, 75, 77, 80, 85);
_local2.setLargeCorals();
_local1.AddLevel(_local2);
_local1 = new GameStage();
_local1.ReefID_num = 7;
GameStages_array.push(_local1);
_local2 = new Level();
_local2.BGMCode_str = "BGM_DARK";
_local2.HealthRequired_num = 130;
_local2.setTimePar(170);
_local2.setEggSizeDistribution(0.2, 0.5, 0.3);
_local2.setEggColors(0, 1, 2);
_local2.setEggs(8, 90);
_local2.setPlankton(0, 15);
_local2.setPlanktonColors(0, 1, 2);
_local2.setPoisonPlankton(95, 581, 337);
_local2.setPlanktonMovement(-0.005, 0.005, -0.02, -0.005);
_local2.setSmallCorals(37, 42, 43, 61, 62, 63, 93);
_local2.setMediumCorals(20, 23, 24, 27, 41, 54, 57, 60, 70, 71, 72, 76, 96, 98);
_local2.setLargeCorals(29, 30, 33, 55, 56, 66, 67, 86, 102);
_local1.AddLevel(_local2);
_local1 = new GameStage();
_local1.ReefID_num = 99;
Aquarium_GameStage = _local1;
_local2 = new Level();
_local2.BGMCode_str = "BGM_LIVELY";
_local2.HealthRequired_num = 99999999;
_local2.setTimePar(30);
_local2.setEggSizeDistribution(0.3, 0.3, 0.7);
_local2.setEggColors(0, 1, 2, 3, 4, 5, 6);
_local2.setEggs(7, 105);
_local2.setPlankton(0, 20);
_local2.setPlanktonColors(0, 1, 2);
_local2.setPlanktonMovement(-0.04, -0.02, -0.02, 0.02);
_local2.setSmallCorals(1, 2, 3, 4, 5, 6, 8, 9, 28, 31, 37, 38, 39, 40, 42, 43, 45, 58, 59, 61, 62, 63, 82, 89, 90, 91, 92, 93, 94);
_local2.setMediumCorals(10, 11, 20, 21, 22, 23, 24, 25, 27, 36, 41, 46, 47, 54, 57, 60, 64, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 85, 88, 95, 96, 97, 98);
_local2.setLargeCorals(12, 29, 30, 33, 55, 56, 66, 67, 73, 81, 83, 84, 86, 87, 99, 100, 101, 102, 103);
_local1.AddLevel(_local2);
}
private function StartNewGame():void{
myGameState.Init();
myGameState.CurrentStage_num = -1;
myGameState.GameTimeStarted_num = getTimer();
World_mc.reef_layer_mc.aquarium_gfx_mc.visible = false;
World_mc.reef_layer_mc.reef_gfx_mc.visible = true;
StartGameIntro();
}
private function StartCoralGame():void{
SendDebugMessage("StartCoralGame");
World_mc.curtains_mc.gotoAndPlay("open");
GotoMainMenu();
}
private function QuitGame():void{
StopGame();
myGameWorldManager.ResetWorld();
GotoMainMenu();
}
private function SkipToStage(_arg1:Number):void{
myGameState.Init();
myGameState.CurrentStage_num = (_arg1 - 2);
myGameState.GameTimeStarted_num = getTimer();
World_mc.reef_layer_mc.aquarium_gfx_mc.visible = false;
World_mc.reef_layer_mc.reef_gfx_mc.visible = true;
StartNextStage();
}
private function LevelLost():void{
LevelComplete();
myGameState.CurrentLevelWon_bool = false;
myGUIController.ShowLevelLostScreen();
}
private function SendDebugMessage(_arg1:String){
var DebugReporting_bool:Boolean;
var loader:URLLoader;
var DebugMessageURL_str:*;
var request:URLRequest;
var in_message_str = _arg1;
trace(("Sending Debug Message: " + in_message_str));
DebugReporting_bool = false;
if (DebugReporting_bool){
loader = new URLLoader();
configureListeners(loader);
DebugMessageURL_str = ((GameSettings.getInstance().getStatsLink() + "?debug=") + escape(in_message_str));
try {
request = new URLRequest(DebugMessageURL_str);
loader.load(request);
} catch(error:Error) {
trace("Unable to load requested document.");
};
};
}
private function GameWon():void{
trace("HERE: GameWon");
myGUIController.ShowGameWonScreen();
mySoundManager.StartBGMLoop("BGM_ENDING", 4, 6);
myGameWorldManager.StartGameEnding();
GameSettings.getInstance().setAquariumUnlocked(true);
SaveSharedObject();
}
private function SumbitScoresToServer():void{
var _local1:Array;
var _local2:*;
_local1 = myGameState.getScoreStatsArray();
myKongregateAPI.stats.submitArray(_local1);
_local2 = myGameState.TotalScore_int;
trace(("Submitting score:" + _local2));
myKongregateAPI.scores.submit(_local2);
}
private function StartNextLevel():void{
var _local1:Level;
myGameState.CurrentLevel_num++;
if (myGameState.CurrentLevel_num >= myGameState.CurrentStage.getLevelCount()){
StartNextStage();
} else {
_local1 = myGameState.CurrentStage.Levels_array[myGameState.CurrentLevel_num];
PrepareLevelStart(_local1);
};
}
public function Init(){
SendDebugMessage("Init");
InitTimer = new Timer(200, 0);
InitTimer.addEventListener("timer", this.InitTimerHandler);
InitTimer.start();
}
public function setFPSMonitor(_arg1:FPS):void{
FPS_monitor = _arg1;
}
private function StartAquarium():void{
myGameState.Init();
myGameState.GameTimeStarted_num = getTimer();
World_mc.reef_layer_mc.aquarium_gfx_mc.visible = true;
World_mc.reef_layer_mc.reef_gfx_mc.visible = false;
StartAquariumStage();
}
private function FireWorksStarted():void{
}
private function StopGame():void{
myStage.removeEventListener(Event.ENTER_FRAME, game_loop);
}
private function AllElementsLoaded():Boolean{
var _local1:*;
_local1 = true;
if (World_mc == null){
_local1 = false;
trace("NO WORLD", World_mc);
} else {
if (World_mc.curtains_mc == null){
_local1 = false;
trace("NO CURTAINS", World_mc.curtains_mc);
};
};
return (_local1);
}
private function StartPolypPlanting():void{
myGUIController.ShowPolypPlantingScreen();
}
private function SaveSharedObject(){
var flushStatus:String;
mySharedObject.data.AquariumUnlocked = GameSettings.getInstance().getAquariumUnlocked();
flushStatus = null;
try {
flushStatus = mySharedObject.flush();
SendDebugMessage("SharedObject Saved");
} catch(error:Error) {
trace("Error...Could not write SharedObject to disk\n");
SendDebugMessage("ErrorSavingSharedObject!!!");
};
}
private function LevelComplete():void{
}
public function GameWorldEventHandler(_arg1:GameWorldEvent){
var _local2:*;
_local2 = _arg1.command_data;
switch (_arg1.command){
case "LEVEL_INIT_COMPLETE":
StartLevel();
break;
case "LevelWon":
LevelWon();
break;
case "LevelEndingDone":
LevelEndingDone();
break;
case "GameIntroDone":
GameIntroFinished();
break;
case "FireWorksStart":
FireWorksStarted();
break;
case "GameEndingDone":
GameEndingFinished();
break;
case "MUSIC_CHANGE":
ChangeBGM(_local2[0], _local2[1], _local2[2]);
break;
};
}
private function StartNextStage():void{
var _local1:GameStage;
myGameState.CurrentStage_num++;
myGameState.CurrentLevel_num = -1;
if (myGameState.CurrentStage_num >= GameStages_array.length){
GameWon();
} else {
_local1 = GameStages_array[myGameState.CurrentStage_num];
myGameState.StartNewStage(_local1);
myGUIController.ShowStageStartScreen();
};
}
public function setInterfaceMC(_arg1:MovieClip){
myGUIController.setInterfaceMC(_arg1);
_arg1.mouseEnabled = false;
}
public function game_loop(_arg1:Event):void{
CheckFrameRate();
myGameWorldManager.ProcessUserInput();
myGameWorldManager.Step();
myGUIController.UpdateInterface();
}
private function RetryCurrentLevel():void{
var _local1:Level;
myGameState = previousGameState.Clone();
myGUIController.setGameState(myGameState);
_local1 = GameStages_array[myGameState.CurrentStage_num].Levels_array[myGameState.CurrentLevel_num];
PrepareLevelStart(_local1);
}
private function StartAquariumStage():void{
var _local1:GameStage;
myGameState.CurrentStage_num = 99;
myGameState.CurrentLevel_num = -1;
_local1 = Aquarium_GameStage;
myGameState.StartNewStage(_local1);
myGUIController.ShowStageStartScreen();
}
private function TestForKongregateSite(){
var _local1:String;
var _local2:Number;
var _local3:Number;
var _local4:String;
var _local5:Number;
var _local6:Number;
var _local7:String;
_local1 = myStage.loaderInfo.url;
_local2 = (_local1.indexOf("://") + 3);
_local3 = _local1.indexOf("/", _local2);
_local4 = _local1.substring(_local2, _local3);
_local5 = (_local4.lastIndexOf(".") - 1);
_local6 = (_local4.lastIndexOf(".", _local5) + 1);
_local7 = _local4.substring(_local6, _local4.length);
if ((_local7 == "kongregate.com")){
GameSettings.getInstance().setConnectedToKongregate(true);
} else {
GameSettings.getInstance().setConnectedToKongregate(false);
};
}
private function FXEventHandler(_arg1:FXEvent):void{
var _local2:*;
var _local3:*;
_local2 = _arg1.command;
_local3 = _arg1.command_data;
if (_local2 == "PLAY_FX"){
mySoundManager.PlaySound(_local3);
};
}
private function GotoMainMenu():void{
World_mc.letterbox_mc.gotoAndStop("opened");
try {
if (GameSettings.getInstance().getConnectedToKongregate()){
if (GameSettings.getInstance().getAquariumUnlocked()){
myKongregateAPI.stats.submit("GameWon", 1);
SendDebugMessage("SubmitBadge");
};
};
} catch(e:Error) {
SendDebugMessage("ErrorWithSubmitBadge");
};
myGameWorldManager.GotoMenuSpot();
mySoundManager.StopLoopCycle();
mySoundManager.StartBGMLoop("BGM_MAIN_MELODY", 4, 4);
myGUIController.ShowMainMenuScreen();
}
private function LevelEndingDone():void{
LevelComplete();
StartNextLevel();
}
private function GameIntroSkipped():void{
myGameState.Init();
myGameState.CurrentStage_num = -1;
myGameWorldManager.SkipGameIntro();
}
private function ChangeBGM(_arg1:String, _arg2:Number, _arg3:Number){
mySoundManager.StartBGMLoop(_arg1, _arg2, _arg3);
}
private function StartLevel(){
StartGame();
}
private function StartGame():void{
myStage.addEventListener(Event.ENTER_FRAME, game_loop);
myGameWorldManager.StartCurrentLevel();
myGUIController.ShowGameScreen();
}
public function CheckFrameRate(){
var _local1:*;
FPSTestCoundown--;
if (FPSTestCoundown < 0){
_local1 = FPS_monitor.lastFPS;
if (_local1 > TOO_FAST_TARGET_FPS){
myStage.frameRate = (myStage.frameRate - 1);
} else {
if (_local1 < TOO_SLOW_TARGET_FPS){
myStage.frameRate = TOO_SLOW_TARGET_FPS;
};
};
FPSTestCoundown = TOO_FAST_TARGET_FPS;
};
}
public function setWorldMC(_arg1:MovieClip){
myGameWorldManager.setWorldMC(_arg1);
World_mc = _arg1;
}
private function PauseGame(_arg1:Boolean):void{
var _local2:*;
if (_arg1){
PauseTimeStart_num = getTimer();
myStage.removeEventListener(Event.ENTER_FRAME, game_loop);
} else {
_local2 = getTimer();
myGameState.TotalTimePaused_num = (myGameState.TotalTimePaused_num + (_local2 - PauseTimeStart_num));
myStage.addEventListener(Event.ENTER_FRAME, game_loop);
};
}
private function configureListeners(_arg1:IEventDispatcher):void{
_arg1.addEventListener(Event.COMPLETE, CallHomeHandler);
_arg1.addEventListener(SecurityErrorEvent.SECURITY_ERROR, CallHomeHandler);
_arg1.addEventListener(HTTPStatusEvent.HTTP_STATUS, CallHomeHandler);
_arg1.addEventListener(IOErrorEvent.IO_ERROR, CallHomeHandler);
}
private function CallHome(){
var loader:URLLoader;
var StatsURL_str:*;
var request:URLRequest;
loader = new URLLoader();
configureListeners(loader);
StatsURL_str = ((GameSettings.getInstance().getStatsLink() + "?u=") + escape(myStage.loaderInfo.url));
try {
trace(("CONNECTING TO " + StatsURL_str));
request = new URLRequest(StatsURL_str);
loader.load(request);
} catch(error:Error) {
trace("Unable to load requested document.");
};
}
private function StartGameIntro():void{
myGUIController.ShowGameIntroScreen();
myGameWorldManager.StartGameIntro();
}
}
}//package com.trickysheep.coral
Section 70
//Vector (com.trickysheep.util.geometery.Vector)
package com.trickysheep.util.geometery {
public class Vector {
public var x:Number;
public var y:Number;
public function Vector(_arg1:Number, _arg2:Number, _arg3:Number=0){
x = _arg1;
y = _arg2;
}
public function cross(_arg1:Vector):Vector{
return (new Vector(0, 0));
}
public function negate():Vector{
return (new Vector(-(x), -(y)));
}
public function vmin(_arg1:Vector){
return (new Vector(Math.min(_arg1.x, x), Math.min(_arg1.y, y)));
}
public function addVector(_arg1:Vector):Vector{
return (new Vector((x + _arg1.x), (y + _arg1.y)));
}
public function divideScalar(_arg1:Number):Vector{
var _local2:Number;
_local2 = (1 / _arg1);
return (new Vector((x * _local2), (y * _local2)));
}
public function getRotationAngle():Number{
var _local1:*;
var _local2:*;
_local1 = Math.acos((-(y) / len()));
_local2 = ((_local1 * 180) / Math.PI);
if (x < 0){
_local2 = (360 - _local2);
};
return (_local2);
}
public function dot(_arg1:Vector):Number{
return (((x * _arg1.x) + (y * _arg1.y)));
}
public function unit():Vector{
return (this.divideScalar(this.len()));
}
public function toString():String{
var _local1:String;
_local1 = "";
_local1 = (_local1 + ((("x:" + this.x) + " y:") + this.y));
return (_local1);
}
public function normalize():void{
var _local1:*;
_local1 = this.len();
x = (x / _local1);
y = (y / _local1);
}
public function vmax(_arg1:Vector){
return (new Vector(Math.max(_arg1.x, x), Math.max(_arg1.y, y)));
}
public function nearlyEquals(_arg1:Vector, _arg2:Number){
return ((((Math.abs((x - _arg1.x)) < _arg2)) && ((Math.abs((y - _arg1.y)) < _arg2))));
}
public function len():Number{
return (Math.sqrt(((x * x) + (y * y))));
}
public function subtractVector(_arg1:Vector):Vector{
return (new Vector((x - _arg1.x), (y - _arg1.y)));
}
public function multScalar(_arg1:Number):Vector{
return (new Vector((x * _arg1), (y * _arg1)));
}
public function clone():Vector{
return (new Vector(x, y));
}
public function equals(_arg1:Vector):Boolean{
return ((((x == _arg1.x)) && ((y == _arg1.y))));
}
}
}//package com.trickysheep.util.geometery
Section 71
//FPS (com.trickysheep.util.FPS)
package com.trickysheep.util {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.text.*;
public class FPS extends Sprite {
private var counter:uint;
private var counterDisplay:TextField;
public var DisplayFPS_bool:Boolean;// = false
public var lastFPS:Number;
public function FPS(){
var _local1:Timer;
DisplayFPS_bool = false;
super();
counter = 0;
if (DisplayFPS_bool){
counterDisplay = new TextField();
counterDisplay.selectable = false;
counterDisplay.width = 55;
counterDisplay.height = 20;
counterDisplay.textColor = 0xFFFFFF;
addChild(counterDisplay);
counterDisplay.x = ((700 / 2) - counterDisplay.width);
counterDisplay.y = (520 - counterDisplay.height);
};
addEventListener(Event.ENTER_FRAME, onEnterFrameEvent);
_local1 = new Timer(1000, 0);
_local1.addEventListener("timer", onTimerEvent);
_local1.start();
}
private function onEnterFrameEvent(_arg1:Event):void{
counter++;
}
private function onTimerEvent(_arg1:Event):void{
lastFPS = counter;
if (DisplayFPS_bool){
counterDisplay.text = ("FPS : " + lastFPS.toFixed(1));
};
counter = 0;
}
}
}//package com.trickysheep.util
Section 72
//HandChar (com.trickysheep.util.HandChar)
package com.trickysheep.util {
public class HandChar {
public var Frame_num:Number;
public var Char_str:String;
public var Width_num:Number;
public function HandChar(_arg1:String, _arg2:Number, _arg3:Number):void{
Char_str = _arg1;
Frame_num = _arg2;
Width_num = _arg3;
}
}
}//package com.trickysheep.util
Section 73
//HandFace (com.trickysheep.util.HandFace)
package com.trickysheep.util {
import flash.display.*;
public class HandFace {
private var MAX_CHARS:Number;// = 17
private var HandTextFieldsContent_array:Array;
private var HandTextFields_array:Array;
private var Fonts_array:Array;
private var HandTextFieldsFont_array:Array;
private static var allowInstantiation:Boolean;
private static var instance:HandFace;
public function HandFace():void{
MAX_CHARS = 17;
super();
if (!allowInstantiation){
throw (new Error("Error: Instantiation failed: Use HandFace.getInstance() instead of new."));
};
Fonts_array = new Array();
Fonts_array["SCORE"] = new Object();
Fonts_array["SCORE"].Chars_array = new Array();
Fonts_array["INFO"] = new Object();
Fonts_array["INFO"].Chars_array = new Array();
HandTextFields_array = new Array();
HandTextFieldsContent_array = new Array();
HandTextFieldsFont_array = new Array();
InitFont();
}
public function CreateHandTextField(_arg1:String, _arg2:MovieClip, _arg3:String="SCORE"){
var _local4:MovieClip;
var _local5:MovieClip;
var _local6:*;
trace("CreateHandTextField", _arg2, _arg1);
HandTextFields_array[_arg1] = _arg2;
HandTextFieldsFont_array[_arg1] = _arg3;
_local4 = HandTextFields_array[_arg1];
_local6 = 0;
while (_local6 < MAX_CHARS) {
if (_arg3 == "SCORE"){
_local5 = new ScoreFontChar();
} else {
if (_arg3 == "INFO"){
_local5 = new InfoFontChar();
};
};
_local4.addChild(_local5);
_local6++;
};
}
public function SetHandTextFieldContents(_arg1:String, _arg2:String=""){
var _local3:*;
var _local4:MovieClip;
var _local5:MovieClip;
var _local6:Array;
var _local7:HandChar;
var _local8:Number;
var _local9:*;
if (_arg2 == null){
_arg2 = "";
};
if (HandTextFieldsContent_array[_arg1] != _arg2){
_local3 = Fonts_array[HandTextFieldsFont_array[_arg1]];
HandTextFieldsContent_array[_arg1] = _arg2;
_local4 = HandTextFields_array[_arg1];
_local6 = _arg2.split("");
_local8 = 0;
_local9 = 0;
while (_local9 < _local4.numChildren) {
_local5 = MovieClip(_local4.getChildAt(_local9));
_local7 = _local3.FontLookUp_array[_local6[_local9]];
if (_local7 != null){
_local5.gotoAndStop(_local7.Frame_num);
_local5.x = _local8;
_local8 = (_local5.x + _local7.Width_num);
_local5.visible = true;
} else {
_local5.visible = false;
};
_local9++;
};
};
}
private function InitFont(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
_local1 = 1;
_local2 = new Array();
var _temp1 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar(" ", _temp1, 9));
var _temp2 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("1", _temp2, 9));
var _temp3 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("2", _temp3, 10));
var _temp4 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("3", _temp4, 11));
var _temp5 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("4", _temp5, 12));
var _temp6 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("5", _temp6, 10));
var _temp7 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("6", _temp7, 11));
var _temp8 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("7", _temp8, 10));
var _temp9 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("8", _temp9, 11));
var _temp10 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("9", _temp10, 11));
var _temp11 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("0", _temp11, 10));
var _temp12 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar(",", _temp12, 5));
var _temp13 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar(":", _temp13, 5));
var _temp14 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("+", _temp14, 10));
var _temp15 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("x", _temp15, 13));
var _temp16 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("!", _temp16, 6));
var _temp17 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("C", _temp17, 64));
var _temp18 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("T", _temp18, 13));
var _temp19 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("B", _temp19, 59));
var _temp20 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("P", _temp20, 15));
Fonts_array["SCORE"].Chars_array = _local2;
_local3 = new Array();
for (_local4 in _local2) {
_local6 = _local2[_local4];
_local3[_local6.Char_str] = _local6;
};
Fonts_array["SCORE"].FontLookUp_array = _local3;
_local1 = 1;
_local2 = new Array();
var _temp21 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar(" ", _temp21, 7));
var _temp22 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("1", _temp22, 7));
var _temp23 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("2", _temp23, 8));
var _temp24 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("3", _temp24, 8));
var _temp25 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("4", _temp25, 9));
var _temp26 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("5", _temp26, 8));
var _temp27 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("6", _temp27, 8));
var _temp28 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("7", _temp28, 8));
var _temp29 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("8", _temp29, 8));
var _temp30 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("9", _temp30, 8));
var _temp31 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("0", _temp31, 8));
var _temp32 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar(",", _temp32, 3));
var _temp33 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar(":", _temp33, 3));
var _temp34 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("+", _temp34, 8));
var _temp35 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("x", _temp35, 9));
var _temp36 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("!", _temp36, 6));
var _temp37 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("C", _temp37, 48));
var _temp38 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("T", _temp38, 9));
var _temp39 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("B", _temp39, 44));
var _temp40 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("P", _temp40, 9));
var _temp41 = _local1;
_local1 = (_local1 + 1);
_local2.push(new HandChar("E", _temp41, 75));
Fonts_array["INFO"].Chars_array = _local2;
_local5 = new Array();
for (_local4 in _local2) {
_local6 = _local2[_local4];
_local5[_local6.Char_str] = _local6;
};
Fonts_array["INFO"].FontLookUp_array = _local5;
}
public static function getInstance():HandFace{
if (instance == null){
allowInstantiation = true;
instance = new (HandFace);
allowInstantiation = false;
};
return (instance);
}
}
}//package com.trickysheep.util
Section 74
//MCBobber (com.trickysheep.util.MCBobber)
package com.trickysheep.util {
public class MCBobber {
private var MoveDeltaMin_num:Number;// = 0
private var MoveDeltaMax_num:Number;// = 1
private var StrayMaxDefault_num:Number;// = 3
private static var allowInstantiation:Boolean;
private static var instance:MCBobber;
public function MCBobber():void{
MoveDeltaMin_num = 0;
MoveDeltaMax_num = 1;
StrayMaxDefault_num = 3;
super();
if (!allowInstantiation){
throw (new Error("Error: Instantiation failed: Use GameSettings.getInstance() instead of new."));
};
}
public function BobMC(_arg1, _arg2:Number=-1){
var _local3:Number;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
if (_arg1.current_x_dir == undefined){
_arg1.current_x_dir = -1;
_arg1.OriginalX_num = _arg1.x;
};
if (_arg1.current_y_dir == undefined){
_arg1.current_y_dir = -1;
_arg1.OriginalY_num = _arg1.y;
};
if (_arg2 == -1){
_local3 = StrayMaxDefault_num;
} else {
_local3 = _arg2;
};
_local4 = (Math.random() < 0.2);
_local5 = (Math.random() < 0.2);
if (_local4){
_arg1.current_x_dir = (_arg1.current_x_dir * -1);
};
if (_local5){
_arg1.current_y_dir = (_arg1.current_y_dir * -1);
};
_local6 = (((MoveDeltaMax_num - MoveDeltaMin_num) * Math.random()) + MoveDeltaMin_num);
_local7 = (((MoveDeltaMax_num - MoveDeltaMin_num) * Math.random()) + MoveDeltaMin_num);
_arg1.x = (_arg1.x + (_local6 * _arg1.current_x_dir));
_arg1.y = (_arg1.y + (_local7 * _arg1.current_y_dir));
if (_arg1.x < (_arg1.OriginalX_num - _local3)){
_arg1.x = (_arg1.OriginalX_num - _local3);
} else {
if (_arg1.x > (_arg1.OriginalX_num + _local3)){
_arg1.x = (_arg1.OriginalX_num + _local3);
};
};
if (_arg1.y < (_arg1.OriginalY_num - _local3)){
_arg1.y = (_arg1.OriginalY_num - _local3);
} else {
if (_arg1.y > (_arg1.OriginalY_num + _local3)){
_arg1.y = (_arg1.OriginalY_num + _local3);
};
};
}
public static function getInstance():MCBobber{
if (instance == null){
allowInstantiation = true;
instance = new (MCBobber);
allowInstantiation = false;
};
return (instance);
}
}
}//package com.trickysheep.util
Section 75
//Regular (fl.transitions.easing.Regular)
package fl.transitions.easing {
public class Regular {
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((_arg3 * _arg1) * _arg1) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2));
};
--_arg1;
return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2));
}
}
}//package fl.transitions.easing
Section 76
//Tween (fl.transitions.Tween)
package fl.transitions {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Tween extends EventDispatcher {
private var _position:Number;// = NAN
public var prevTime:Number;// = NAN
public var prevPos:Number;// = NAN
public var isPlaying:Boolean;// = false
public var begin:Number;// = NAN
private var _fps:Number;// = NAN
private var _time:Number;// = NAN
public var change:Number;// = NAN
private var _finish:Number;// = NAN
public var looping:Boolean;// = false
private var _intervalID:uint;// = 0
public var func:Function;
private var _timer:Timer;// = null
private var _startTime:Number;// = NAN
public var prop:String;// = ""
private var _duration:Number;// = NAN
public var obj:Object;// = null
public var useSeconds:Boolean;// = false
protected static var _mc:MovieClip = new MovieClip();
public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){
isPlaying = false;
obj = null;
prop = "";
func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
};
begin = NaN;
change = NaN;
useSeconds = false;
prevTime = NaN;
prevPos = NaN;
looping = false;
_duration = NaN;
_time = NaN;
_fps = NaN;
_position = NaN;
_startTime = NaN;
_intervalID = 0;
_finish = NaN;
_timer = null;
super();
if (!arguments.length){
return;
};
this.obj = _arg1;
this.prop = _arg2;
this.begin = _arg4;
this.position = _arg4;
this.duration = _arg6;
this.useSeconds = _arg7;
if ((_arg3 is Function)){
this.func = _arg3;
};
this.finish = _arg5;
this._timer = new Timer(100);
this.start();
}
public function continueTo(_arg1:Number, _arg2:Number):void{
this.begin = this.position;
this.finish = _arg1;
if (!isNaN(_arg2)){
this.duration = _arg2;
};
this.start();
}
public function stop():void{
this.stopEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position));
}
private function fixTime():void{
if (this.useSeconds){
this._startTime = (getTimer() - (this._time * 1000));
};
}
public function set FPS(_arg1:Number):void{
var _local2:Boolean;
_local2 = this.isPlaying;
this.stopEnterFrame();
this._fps = _arg1;
if (_local2){
this.startEnterFrame();
};
}
public function get finish():Number{
return ((this.begin + this.change));
}
public function get duration():Number{
return (this._duration);
}
protected function startEnterFrame():void{
var _local1:Number;
if (isNaN(this._fps)){
_mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true);
} else {
_local1 = (1000 / this._fps);
this._timer.delay = _local1;
this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true);
this._timer.start();
};
this.isPlaying = true;
}
public function set time(_arg1:Number):void{
this.prevTime = this._time;
if (_arg1 > this.duration){
if (this.looping){
this.rewind((_arg1 - this._duration));
this.update();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position));
} else {
if (this.useSeconds){
this._time = this._duration;
this.update();
};
this.stop();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position));
};
} else {
if (_arg1 < 0){
this.rewind();
this.update();
} else {
this._time = _arg1;
this.update();
};
};
}
protected function stopEnterFrame():void{
if (isNaN(this._fps)){
_mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame);
} else {
this._timer.stop();
};
this.isPlaying = false;
}
public function getPosition(_arg1:Number=NaN):Number{
if (isNaN(_arg1)){
_arg1 = this._time;
};
return (this.func(_arg1, this.begin, this.change, this._duration));
}
public function set finish(_arg1:Number):void{
this.change = (_arg1 - this.begin);
}
public function set duration(_arg1:Number):void{
this._duration = ((_arg1)<=0) ? Infinity : _arg1;
}
public function setPosition(_arg1:Number):void{
this.prevPos = this._position;
if (this.prop.length){
this.obj[this.prop] = (this._position = _arg1);
};
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position));
}
public function resume():void{
this.fixTime();
this.startEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position));
}
public function fforward():void{
this.time = this._duration;
this.fixTime();
}
protected function onEnterFrame(_arg1:Event):void{
this.nextFrame();
}
public function get position():Number{
return (this.getPosition(this._time));
}
public function yoyo():void{
this.continueTo(this.begin, this.time);
}
public function nextFrame():void{
if (this.useSeconds){
this.time = ((getTimer() - this._startTime) / 1000);
} else {
this.time = (this._time + 1);
};
}
protected function timerHandler(_arg1:TimerEvent):void{
this.nextFrame();
_arg1.updateAfterEvent();
}
public function get FPS():Number{
return (this._fps);
}
public function rewind(_arg1:Number=0):void{
this._time = _arg1;
this.fixTime();
this.update();
}
public function set position(_arg1:Number):void{
this.setPosition(_arg1);
}
public function get time():Number{
return (this._time);
}
private function update():void{
this.setPosition(this.getPosition(this._time));
}
public function start():void{
this.rewind();
this.startEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position));
}
public function prevFrame():void{
if (!this.useSeconds){
this.time = (this._time - 1);
};
}
}
}//package fl.transitions
Section 77
//TweenEvent (fl.transitions.TweenEvent)
package fl.transitions {
import flash.events.*;
public class TweenEvent extends Event {
public var time:Number;// = NAN
public var position:Number;// = NAN
public static const MOTION_START:String = "motionStart";
public static const MOTION_STOP:String = "motionStop";
public static const MOTION_LOOP:String = "motionLoop";
public static const MOTION_CHANGE:String = "motionChange";
public static const MOTION_FINISH:String = "motionFinish";
public static const MOTION_RESUME:String = "motionResume";
public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){
time = NaN;
position = NaN;
super(_arg1, _arg4, _arg5);
this.time = _arg2;
this.position = _arg3;
}
override public function clone():Event{
return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable));
}
}
}//package fl.transitions
Section 78
//aquarium_button_mc_337 (KaleidoscopeReef_fla.aquarium_button_mc_337)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class aquarium_button_mc_337 extends MovieClip {
public var hittarget_mc:MovieClip;
public function aquarium_button_mc_337(){
addFrameScript(0, frame1, 22, frame23);
}
function frame1(){
stop();
}
function frame23(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 79
//arm_1_emerge_mc_213 (KaleidoscopeReef_fla.arm_1_emerge_mc_213)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class arm_1_emerge_mc_213 extends MovieClip {
public function arm_1_emerge_mc_213(){
addFrameScript(0, frame1, 32, frame33);
}
function frame1(){
stop();
}
function frame33(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 80
//arm_2_emerge_mc_214 (KaleidoscopeReef_fla.arm_2_emerge_mc_214)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class arm_2_emerge_mc_214 extends MovieClip {
public function arm_2_emerge_mc_214(){
addFrameScript(0, frame1, 32, frame33);
}
function frame1(){
stop();
}
function frame33(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 81
//arm_3_emerge_mc_215 (KaleidoscopeReef_fla.arm_3_emerge_mc_215)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class arm_3_emerge_mc_215 extends MovieClip {
public function arm_3_emerge_mc_215(){
addFrameScript(0, frame1, 32, frame33);
}
function frame1(){
stop();
}
function frame33(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 82
//black_bar_305 (KaleidoscopeReef_fla.black_bar_305)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.*;
import flash.net.*;
public dynamic class black_bar_305 extends MovieClip {
public var tricky_btn:SimpleButton;
public var tricky_logo_mc:MovieClip;
public function black_bar_305(){
addFrameScript(0, frame1);
}
public function rollIN(_arg1:Event){
tricky_logo_mc.gotoAndStop("on");
}
function frame1(){
tricky_btn.addEventListener(MouseEvent.CLICK, this.gotoLink);
tricky_btn.addEventListener(MouseEvent.MOUSE_OVER, this.rollIN);
tricky_btn.addEventListener(MouseEvent.MOUSE_OUT, this.rollOUT);
}
public function rollOUT(_arg1:Event){
tricky_logo_mc.gotoAndStop("off");
}
public function gotoLink(_arg1:Event){
var _local2:URLRequest;
_local2 = new URLRequest(GameSettings.getInstance().getTrickysheepLink());
navigateToURL(_local2, "_blank");
}
}
}//package KaleidoscopeReef_fla
Section 83
//boss_animations_mc_101 (KaleidoscopeReef_fla.boss_animations_mc_101)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
public dynamic class boss_animations_mc_101 extends MovieClip {
public var belch_spawn_area_mc:MovieClip;
public function boss_animations_mc_101(){
addFrameScript(0x0100, frame257, 294, frame295, 302, frame303, 310, frame311, 353, frame354, 402, frame403, 403, frame404, 404, frame405, 406, frame407, 408, frame409, 410, frame411, 412, frame413, 414, frame415, 440, frame441, 493, frame494, 559, frame560, 591, frame592, 713, frame714, 834, frame835);
}
function frame311(){
this.dispatchEvent(new Event("BELCH_RELEASE"));
}
function frame714(){
this.dispatchEvent(new Event("BOSS_EXPLODE"));
}
function frame835(){
this.dispatchEvent(new Event("BOSS_DEAD"));
stop();
}
function frame560(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame441(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame295(){
this.dispatchEvent(new Event("BELCH_RELEASE"));
}
function frame592(){
gotoAndPlay("wait_for_cannon");
}
function frame354(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame405(){
this.dispatchEvent(new Event("GOO_RELEASE"));
}
function frame409(){
this.dispatchEvent(new Event("GOO_RELEASE"));
}
function frame403(){
this.dispatchEvent(new Event("GOO_RELEASE"));
}
function frame407(){
this.dispatchEvent(new Event("GOO_RELEASE"));
}
function frame404(){
this.dispatchEvent(new Event("GOO_RELEASE"));
}
function frame494(){
this.dispatchEvent(new Event("POISON_SHOT"));
}
function frame413(){
this.dispatchEvent(new Event("GOO_RELEASE"));
}
function frame257(){
gotoAndPlay("idle");
}
function frame415(){
this.dispatchEvent(new Event("GOO_RELEASE"));
}
function frame411(){
this.dispatchEvent(new Event("GOO_RELEASE"));
}
function frame303(){
this.dispatchEvent(new Event("BELCH_RELEASE"));
}
}
}//package KaleidoscopeReef_fla
Section 84
//boss_blink_loop_mc_103 (KaleidoscopeReef_fla.boss_blink_loop_mc_103)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class boss_blink_loop_mc_103 extends MovieClip {
public function boss_blink_loop_mc_103(){
addFrameScript(0, frame1, 7, frame8);
}
function frame1(){
if (Math.random() < 0.45){
this.gotoAndPlay("blink");
} else {
stop();
};
}
function frame8(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 85
//boss_outro_mc_279 (KaleidoscopeReef_fla.boss_outro_mc_279)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class boss_outro_mc_279 extends MovieClip {
public function boss_outro_mc_279(){
addFrameScript(0, frame1, 0xFF, frame256);
}
function frame1(){
stop();
}
function frame256(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 86
//boss_reef_2_intro_mc_197 (KaleidoscopeReef_fla.boss_reef_2_intro_mc_197)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class boss_reef_2_intro_mc_197 extends MovieClip {
public function boss_reef_2_intro_mc_197(){
addFrameScript(1, frame2, 5, frame6, 115, frame116);
}
function frame6(){
stop();
}
function frame2(){
stop();
}
function frame116(){
gotoAndStop("off");
}
}
}//package KaleidoscopeReef_fla
Section 87
//bubble_pop_mc_106 (KaleidoscopeReef_fla.bubble_pop_mc_106)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class bubble_pop_mc_106 extends MovieClip {
public function bubble_pop_mc_106(){
addFrameScript(1, frame2, 44, frame45);
}
function frame2(){
stop();
}
function frame45(){
gotoAndStop("off");
}
}
}//package KaleidoscopeReef_fla
Section 88
//bubbles_idle_loop_mc_105 (KaleidoscopeReef_fla.bubbles_idle_loop_mc_105)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class bubbles_idle_loop_mc_105 extends MovieClip {
public var BubbleCount_num;
public var bubble_mc:MovieClip;
public var bubble_1:MovieClip;
public var bubble_2:MovieClip;
public var bubble_6:MovieClip;
public var bubble_4:MovieClip;
public var bubble_3:MovieClip;
public var rand_id;
public var bubble_5:MovieClip;
public function bubbles_idle_loop_mc_105(){
addFrameScript(5, frame6);
}
function frame6(){
if (Math.random() < 0.3){
BubbleCount_num = this.numChildren;
rand_id = Math.floor((Math.random() * BubbleCount_num));
bubble_mc = MovieClip(this.getChildAt(rand_id));
if (bubble_mc.currentFrame == 2){
bubble_mc.gotoAndPlay("pop");
};
};
}
}
}//package KaleidoscopeReef_fla
Section 89
//camera_window_mc_283 (KaleidoscopeReef_fla.camera_window_mc_283)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class camera_window_mc_283 extends MovieClip {
public function camera_window_mc_283(){
addFrameScript(1, frame2);
}
function frame2(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 90
//canon_mc_163 (KaleidoscopeReef_fla.canon_mc_163)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
public dynamic class canon_mc_163 extends MovieClip {
public function canon_mc_163(){
addFrameScript(0, frame1, 108, frame109);
}
function frame1(){
stop();
}
function frame109(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package KaleidoscopeReef_fla
Section 91
//cave_dude_mc_216 (KaleidoscopeReef_fla.cave_dude_mc_216)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.*;
public dynamic class cave_dude_mc_216 extends MovieClip {
public var cave_monster_smile_mc:MovieClip;
public var cave_dude_xmas_hat_mc:MovieClip;
public var cave_dude_btn:SimpleButton;
public function cave_dude_mc_216(){
addFrameScript(0, frame1, 132, frame133, 171, frame172);
}
function frame172(){
stop();
}
function frame1(){
if (GameSettings.getInstance().getHolidayModeOn()){
cave_dude_xmas_hat_mc.visible = true;
} else {
cave_dude_xmas_hat_mc.visible = false;
};
}
function frame133(){
cave_dude_btn.addEventListener(MouseEvent.CLICK, this.DudeClicked);
}
public function DudeClicked(_arg1){
cave_monster_smile_mc.gotoAndPlay("clicked");
}
}
}//package KaleidoscopeReef_fla
Section 92
//cave_monster_smile_mc_218 (KaleidoscopeReef_fla.cave_monster_smile_mc_218)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class cave_monster_smile_mc_218 extends MovieClip {
public var looped;
public function cave_monster_smile_mc_218(){
addFrameScript(0, frame1, 1, frame2, 35, frame36, 92, frame93);
}
function frame93(){
looped = 0;
gotoAndPlay("loop");
}
function frame1(){
looped = 0;
}
function frame2(){
looped++;
}
function frame36(){
if (looped < 90){
gotoAndPlay("loop");
} else {
stop();
};
}
}
}//package KaleidoscopeReef_fla
Section 93
//cavedude_idle_blink_219 (KaleidoscopeReef_fla.cavedude_idle_blink_219)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class cavedude_idle_blink_219 extends MovieClip {
public function cavedude_idle_blink_219(){
addFrameScript(0, frame1, 11, frame12);
}
function frame12(){
stop();
}
function frame1(){
if (Math.random() < 0.2){
this.gotoAndPlay("blink");
} else {
stop();
};
}
}
}//package KaleidoscopeReef_fla
Section 94
//cavedude_mc_212 (KaleidoscopeReef_fla.cavedude_mc_212)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class cavedude_mc_212 extends MovieClip {
public var arm_3_emerge_mc:MovieClip;
public var arm_2_emerge_mc:MovieClip;
public var arm_1_emerge_mc:MovieClip;
public function cavedude_mc_212(){
addFrameScript(0, frame1, 170, frame171);
}
function frame171(){
stop();
}
function frame1(){
arm_1_emerge_mc.gotoAndStop("off");
arm_2_emerge_mc.gotoAndStop("off");
arm_3_emerge_mc.gotoAndStop("off");
stop();
}
}
}//package KaleidoscopeReef_fla
Section 95
//check_box_mc_318 (KaleidoscopeReef_fla.check_box_mc_318)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class check_box_mc_318 extends MovieClip {
public function check_box_mc_318(){
addFrameScript(0, frame1, 4, frame5);
}
function frame1(){
stop();
}
function frame5(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 96
//clam_0_mc_237 (KaleidoscopeReef_fla.clam_0_mc_237)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class clam_0_mc_237 extends MovieClip {
public function clam_0_mc_237(){
addFrameScript(0, frame1, 9, frame10, 25, frame26);
}
function frame10(){
gotoAndPlay("idle");
}
function frame1(){
stop();
}
function frame26(){
gotoAndPlay("idle");
}
}
}//package KaleidoscopeReef_fla
Section 97
//clam_1_mc_236 (KaleidoscopeReef_fla.clam_1_mc_236)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class clam_1_mc_236 extends MovieClip {
public function clam_1_mc_236(){
addFrameScript(0, frame1, 9, frame10, 25, frame26);
}
function frame10(){
gotoAndPlay("idle");
}
function frame1(){
stop();
}
function frame26(){
gotoAndPlay("idle");
}
}
}//package KaleidoscopeReef_fla
Section 98
//clam_2_mc_238 (KaleidoscopeReef_fla.clam_2_mc_238)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class clam_2_mc_238 extends MovieClip {
public function clam_2_mc_238(){
addFrameScript(0, frame1, 9, frame10, 25, frame26);
}
function frame10(){
gotoAndPlay("idle");
}
function frame1(){
stop();
}
function frame26(){
gotoAndPlay("idle");
}
}
}//package KaleidoscopeReef_fla
Section 99
//continue_button_mc_263 (KaleidoscopeReef_fla.continue_button_mc_263)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class continue_button_mc_263 extends MovieClip {
public var hittarget_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 100
//coral_fish_gfx_mc_29 (KaleidoscopeReef_fla.coral_fish_gfx_mc_29)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class coral_fish_gfx_mc_29 extends MovieClip {
public function coral_fish_gfx_mc_29(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 101
//coral_fish_gfx_simple_mc_7 (KaleidoscopeReef_fla.coral_fish_gfx_simple_mc_7)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class coral_fish_gfx_simple_mc_7 extends MovieClip {
public function coral_fish_gfx_simple_mc_7(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 102
//coral_grafix_mc_161 (KaleidoscopeReef_fla.coral_grafix_mc_161)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class coral_grafix_mc_161 extends MovieClip {
public var coral_hit_shape_mc:MovieClip;
public var coral_with_color_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 103
//coral_grafix_simple_mc_3 (KaleidoscopeReef_fla.coral_grafix_simple_mc_3)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class coral_grafix_simple_mc_3 extends MovieClip {
public var coral_with_color_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 104
//coral_mc_2 (KaleidoscopeReef_fla.coral_mc_2)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class coral_mc_2 extends MovieClip {
public var coral_grafix_mc:MovieClip;
public function coral_mc_2(){
addFrameScript(0, frame1, 11, frame12);
}
function frame12(){
stop();
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 105
//coral_meter_mc_322 (KaleidoscopeReef_fla.coral_meter_mc_322)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class coral_meter_mc_322 extends MovieClip {
public var coral_meter_bar_mc:MovieClip;
public function coral_meter_mc_322(){
addFrameScript(0, frame1, 15, frame16, 27, frame28);
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame28(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 106
//coral_rush_on_mc_6 (KaleidoscopeReef_fla.coral_rush_on_mc_6)
package KaleidoscopeReef_fla {
import flash.display.*;
import com.trickysheep.util.*;
public dynamic class coral_rush_on_mc_6 extends MovieClip {
public var coral_fish_gfx_mc:MovieClip;
public function coral_rush_on_mc_6(){
addFrameScript(0, frame1, 34, frame35, 44, frame45);
}
function frame1(){
stop();
}
function frame35(){
MCBobber.getInstance().BobMC(coral_fish_gfx_mc, 10);
}
function frame45(){
gotoAndPlay("bob_around");
}
}
}//package KaleidoscopeReef_fla
Section 107
//coral_simple_grow_mccopy_5 (KaleidoscopeReef_fla.coral_simple_grow_mccopy_5)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class coral_simple_grow_mccopy_5 extends MovieClip {
public var coral_grafix_mc:MovieClip;
public function coral_simple_grow_mccopy_5(){
addFrameScript(0, frame1, 11, frame12);
}
function frame12(){
stop();
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 108
//coral_with_color_mc_162 (KaleidoscopeReef_fla.coral_with_color_mc_162)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class coral_with_color_mc_162 extends MovieClip {
public var canon_mc:MovieClip;
public function coral_with_color_mc_162(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 109
//coral_with_color_simple_mc_4 (KaleidoscopeReef_fla.coral_with_color_simple_mc_4)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class coral_with_color_simple_mc_4 extends MovieClip {
public function coral_with_color_simple_mc_4(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 110
//cover_mc_304 (KaleidoscopeReef_fla.cover_mc_304)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class cover_mc_304 extends MovieClip {
public function cover_mc_304(){
addFrameScript(0, frame1, 22, frame23);
}
function frame1(){
stop();
}
function frame23(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 111
//crab_blink_mc_270 (KaleidoscopeReef_fla.crab_blink_mc_270)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class crab_blink_mc_270 extends MovieClip {
public function crab_blink_mc_270(){
addFrameScript(0, frame1, 9, frame10);
}
function frame10(){
stop();
}
function frame1(){
if (Math.random() < 0.33){
this.gotoAndPlay("blink");
} else {
stop();
};
}
}
}//package KaleidoscopeReef_fla
Section 112
//crab_goto_poison_mc_296 (KaleidoscopeReef_fla.crab_goto_poison_mc_296)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
public dynamic class crab_goto_poison_mc_296 extends MovieClip {
public function crab_goto_poison_mc_296(){
addFrameScript(1, frame2, 100, frame101, 174, frame175);
}
function frame175(){
stop();
}
function frame2(){
stop();
}
function frame101(){
this.dispatchEvent(new Event("POISON_STOPPED"));
}
}
}//package KaleidoscopeReef_fla
Section 113
//crab_none_mc_297 (KaleidoscopeReef_fla.crab_none_mc_297)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
public dynamic class crab_none_mc_297 extends MovieClip {
public function crab_none_mc_297(){
addFrameScript(1, frame2, 84, frame85, 113, frame114);
}
function frame85(){
this.dispatchEvent(new Event("POISON_STOPPED"));
}
function frame2(){
stop();
}
function frame114(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 114
//credits_mc_275 (KaleidoscopeReef_fla.credits_mc_275)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class credits_mc_275 extends MovieClip {
public var CurrentCredit_num;
public var link_btn:SimpleButton;
public var TotalCredits_num;
public var all_credits_mc:MovieClip;
public var aquarium_message_mc:MovieClip;
public function credits_mc_275(){
addFrameScript(0, frame1, 29, frame30, 55, frame56, 93, frame94, 123, frame124, 246, frame247, 258, frame259);
}
public function NextCredit(){
CurrentCredit_num++;
if (CurrentCredit_num <= TotalCredits_num){
all_credits_mc.gotoAndStop(CurrentCredit_num);
gotoAndPlay("loop");
} else {
gotoAndPlay("done");
};
}
function frame94(){
try {
this.parent["continue_button_mc"].visible = true;
this.parent["more_games_at_button_mc"].visible = true;
} catch(e) {
};
}
function frame1(){
TotalCredits_num = all_credits_mc.totalFrames;
CurrentCredit_num = 0;
stage.quality = StageQuality.HIGH;
}
function frame30(){
if (GameSettings.getInstance().getAquariumUnlocked()){
aquarium_message_mc.visible = true;
} else {
aquarium_message_mc.visible = false;
};
}
function frame124(){
NextCredit();
}
function frame247(){
NextCredit();
stop();
}
function frame259(){
try {
this.parent["boss_outro_mc"].gotoAndPlay("start");
} catch(e) {
};
stop();
}
function frame56(){
link_btn.addEventListener(MouseEvent.CLICK, this.gotoLink);
}
public function gotoLink(_arg1:Event){
var _local2:URLRequest;
_local2 = new URLRequest(GameSettings.getInstance().getGameSiteLink());
navigateToURL(_local2, "_blank");
}
}
}//package KaleidoscopeReef_fla
Section 115
//debug_buttons_mc_336 (KaleidoscopeReef_fla.debug_buttons_mc_336)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class debug_buttons_mc_336 extends MovieClip {
public var area_5_btn_mc:MovieClip;
public var area_6_btn_mc:MovieClip;
public var area_4_btn_mc:MovieClip;
public var area_3_btn_mc:MovieClip;
public var area_2_btn_mc:MovieClip;
public var area_1_btn_mc:MovieClip;
public var area_7_btn_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 116
//eel_blink_mc_27 (KaleidoscopeReef_fla.eel_blink_mc_27)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class eel_blink_mc_27 extends MovieClip {
public function eel_blink_mc_27(){
addFrameScript(0, frame1, 7, frame8);
}
function frame1(){
if (Math.random() < 0.2){
this.gotoAndPlay("blink");
} else {
stop();
};
}
function frame8(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 117
//egg_graphics_l_mc_90 (KaleidoscopeReef_fla.egg_graphics_l_mc_90)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class egg_graphics_l_mc_90 extends MovieClip {
public var symbols_mc:MovieClip;
public function egg_graphics_l_mc_90(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 118
//egg_graphics_m_mc_94 (KaleidoscopeReef_fla.egg_graphics_m_mc_94)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class egg_graphics_m_mc_94 extends MovieClip {
public var symbols_mc:MovieClip;
public function egg_graphics_m_mc_94(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 119
//egg_graphics_s_mc_98 (KaleidoscopeReef_fla.egg_graphics_s_mc_98)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class egg_graphics_s_mc_98 extends MovieClip {
public var symbols_mc:MovieClip;
public function egg_graphics_s_mc_98(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 120
//egg_shoot_n_burst_280 (KaleidoscopeReef_fla.egg_shoot_n_burst_280)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class egg_shoot_n_burst_280 extends MovieClip {
public function egg_shoot_n_burst_280(){
addFrameScript(0, frame1, 32, frame33);
}
function frame1(){
stop();
}
function frame33(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 121
//ending_movie_mc_259 (KaleidoscopeReef_fla.ending_movie_mc_259)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.world.*;
import com.trickysheep.coral.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class ending_movie_mc_259 extends MovieClip {
public var boss_outro_mc:MovieClip;
public var burst_1_mc:MovieClip;
public var continue_button_mc:MovieClip;
public var canon_mc:MovieClip;
public var source_x;
public var camera_target_mc:MovieClip;
public var source_y;
public var egg_splode_layer_mc:MovieClip;
public var more_games_at_button_mc:MovieClip;
public var egg_shoot_n_burst_mc:MovieClip;
public function ending_movie_mc_259(){
addFrameScript(0, frame1, 1, frame2, 9, frame10, 10, frame11, 26, frame27, 1124, frame1125, 1140, frame1141, 1142, frame1143, 1167, frame1168, 1198, frame1199, 1219, frame1220);
}
function frame1220(){
stop();
}
public function MoreGamesAtClick(_arg1:Event){
var _local2:URLRequest;
_local2 = new URLRequest(GameSettings.getInstance().getKongregateLink());
navigateToURL(_local2, "_blank");
}
function frame1199(){
gotoAndPlay("random_fireworks");
}
function frame1125(){
source_x = (burst_1_mc.x - camera_target_mc.x);
source_y = (burst_1_mc.y - camera_target_mc.y);
this.dispatchEvent(new GameWorldEvent("EGG_EXPLODE", true, source_x, source_y));
}
function frame1(){
continue_button_mc.hittarget_mc.buttonMode = true;
continue_button_mc.hittarget_mc.alpha = 0;
continue_button_mc.hittarget_mc.addEventListener(MouseEvent.CLICK, this.QuitClickedClick);
continue_button_mc.visible = false;
more_games_at_button_mc.hittarget_mc.buttonMode = true;
more_games_at_button_mc.hittarget_mc.alpha = 0;
more_games_at_button_mc.hittarget_mc.addEventListener(MouseEvent.CLICK, this.MoreGamesAtClick);
more_games_at_button_mc.visible = false;
}
function frame2(){
continue_button_mc.visible = false;
stop();
}
function frame27(){
}
function frame1141(){
this.dispatchEvent(new Event("FIREWORKS_START"));
}
function frame11(){
}
function frame10(){
continue_button_mc.visible = false;
more_games_at_button_mc.visible = false;
}
public function QuitClickedClick(_arg1:Event){
trace("QuitClickedClick");
this.dispatchEvent(new Event("GOTO_MENU"));
}
function frame1143(){
egg_shoot_n_burst_mc.x = ((100 + (Math.random() * 500)) + camera_target_mc.x);
egg_shoot_n_burst_mc.y = ((50 + (Math.random() * 300)) + camera_target_mc.y);
egg_shoot_n_burst_mc.gotoAndPlay("fire");
}
function frame1168(){
source_x = (egg_shoot_n_burst_mc.x - camera_target_mc.x);
source_y = (egg_shoot_n_burst_mc.y - camera_target_mc.y);
this.dispatchEvent(new GameWorldEvent("EGG_EXPLODE", true, source_x, source_y));
}
}
}//package KaleidoscopeReef_fla
Section 122
//fatty_blink_mc_32 (KaleidoscopeReef_fla.fatty_blink_mc_32)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class fatty_blink_mc_32 extends MovieClip {
public function fatty_blink_mc_32(){
addFrameScript(0, frame1, 7, frame8);
}
function frame1(){
if (Math.random() < 0.2){
this.gotoAndPlay("blink");
} else {
stop();
};
}
function frame8(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 123
//focusing_eyes_mc_109 (KaleidoscopeReef_fla.focusing_eyes_mc_109)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class focusing_eyes_mc_109 extends MovieClip {
public var deltaY_num;
public function focusing_eyes_mc_109(){
addFrameScript(0, frame1);
}
function frame1(){
deltaY_num = this.parent.parent["boss_animations_mc"].LookInDirection_num;
trace("I will look in dir", deltaY_num);
if (deltaY_num < -112.6){
gotoAndStop("a");
} else {
if (deltaY_num < -31.6){
gotoAndStop("b");
} else {
if (deltaY_num < 67.5){
gotoAndStop("c");
} else {
if (deltaY_num < 177){
gotoAndStop("d");
} else {
gotoAndStop("e");
};
};
};
};
stop();
}
}
}//package KaleidoscopeReef_fla
Section 124
//game_assets_mc_22 (KaleidoscopeReef_fla.game_assets_mc_22)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class game_assets_mc_22 extends MovieClip {
public function game_assets_mc_22(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 125
//game_intro_screen_mc_332 (KaleidoscopeReef_fla.game_intro_screen_mc_332)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class game_intro_screen_mc_332 extends MovieClip {
public var skip_btn_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 126
//game_over_screen_mc_311 (KaleidoscopeReef_fla.game_over_screen_mc_311)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class game_over_screen_mc_311 extends MovieClip {
public var quit_btn_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 127
//generic_button_mc_314 (KaleidoscopeReef_fla.generic_button_mc_314)
package KaleidoscopeReef_fla {
import flash.display.*;
import flash.text.*;
public dynamic class generic_button_mc_314 extends MovieClip {
public var label_txt:TextField;
public var hittarget_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 128
//goo_frames_mc_127 (KaleidoscopeReef_fla.goo_frames_mc_127)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class goo_frames_mc_127 extends MovieClip {
public function goo_frames_mc_127(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 129
//goo_layer_mc_196 (KaleidoscopeReef_fla.goo_layer_mc_196)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class goo_layer_mc_196 extends MovieClip {
public var sludge02:GooBlob_2_MC;
public var sludge03:GooBlob_3_MC;
public var sludge05:GooBlob_5_MC;
public var sludge08:GooBlob_7_MC;
public var sludge06:GooBlob_6_MC;
public var sludge04:GooBlob_4_MC;
public var sludge14:GooBlob_14_MC;
public var sludge16:GooBlob_9_MC;
public var sludge10:GooBlob_10_MC;
public var sludge11:GooBlob_11_MC;
public var sludge12:GooBlob_12_MC;
public var sludge15:GooBlob_15_MC;
public var sludge13:GooBlob_13_MC;
public var sludge01:GooBlob_1_MC;
}
}//package KaleidoscopeReef_fla
Section 130
//goth_blink_16 (KaleidoscopeReef_fla.goth_blink_16)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class goth_blink_16 extends MovieClip {
public function goth_blink_16(){
addFrameScript(0, frame1, 7, frame8);
}
function frame1(){
if (Math.random() < 0.3){
this.gotoAndPlay("blink");
} else {
stop();
};
}
function frame8(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 131
//goth_goto_cannon_mc_206 (KaleidoscopeReef_fla.goth_goto_cannon_mc_206)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
public dynamic class goth_goto_cannon_mc_206 extends MovieClip {
public function goth_goto_cannon_mc_206(){
addFrameScript(1, frame2, 96, frame97, 183, frame184);
}
function frame97(){
this.dispatchEvent(new Event("FIRE_CANNON"));
}
function frame2(){
stop();
}
function frame184(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package KaleidoscopeReef_fla
Section 132
//goth_none_mc_300 (KaleidoscopeReef_fla.goth_none_mc_300)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class goth_none_mc_300 extends MovieClip {
public var char_swim_mc:MovieClip;
public function goth_none_mc_300(){
addFrameScript(1, frame2, 69, frame70);
}
function frame70(){
stop();
}
function frame2(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 133
//goth_swim_14 (KaleidoscopeReef_fla.goth_swim_14)
package KaleidoscopeReef_fla {
import flash.display.*;
import com.trickysheep.util.*;
public dynamic class goth_swim_14 extends MovieClip {
public var char_swim_mc:MovieClip;
public function goth_swim_14(){
addFrameScript(13, frame14, 34, frame35, 53, frame54);
}
function frame14(){
MCBobber.getInstance().BobMC(char_swim_mc);
}
function frame35(){
MCBobber.getInstance().BobMC(char_swim_mc);
}
function frame54(){
MCBobber.getInstance().BobMC(char_swim_mc);
}
}
}//package KaleidoscopeReef_fla
Section 134
//holiday_button_mc_338 (KaleidoscopeReef_fla.holiday_button_mc_338)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class holiday_button_mc_338 extends MovieClip {
public var hittarget_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 135
//Holiday_stuff_mc_189 (KaleidoscopeReef_fla.Holiday_stuff_mc_189)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class Holiday_stuff_mc_189 extends MovieClip {
public function Holiday_stuff_mc_189(){
addFrameScript(1, frame2, 6, frame7);
}
function frame7(){
stop();
}
function frame2(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 136
//in_game_screen_mc_315 (KaleidoscopeReef_fla.in_game_screen_mc_315)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class in_game_screen_mc_315 extends MovieClip {
public var InfoTextTarget_3_mc:MovieClip;
public var InfoTextTarget_0_mc:MovieClip;
public var pause_menu_mc:MovieClip;
public var ScoreTextTarget_mc:MovieClip;
public var InfoTextTarget_1_mc:MovieClip;
public var InfoTextTarget_4_mc:MovieClip;
public var pause_menu_btn_mc:MovieClip;
public var coral_meter_mc:MovieClip;
public var quit_confirm_mc:MovieClip;
public var InfoTextTarget_2_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 137
//interface_mc_310 (KaleidoscopeReef_fla.interface_mc_310)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class interface_mc_310 extends MovieClip {
public var game_over:MovieClip;
public var stage_intro:MovieClip;
public var main_menu:MovieClip;
public var plant_polyp:MovieClip;
public var level_over:MovieClip;
public var in_game:MovieClip;
public var game_intro:MovieClip;
public var level_intro:MovieClip;
public function interface_mc_310(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 138
//intro_movie_mc_281 (KaleidoscopeReef_fla.intro_movie_mc_281)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.world.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class intro_movie_mc_281 extends MovieClip {
public var camera_pos_boat:MovieClip;
public var canon_mc:MovieClip;
public var camera_pos_3:MovieClip;
public var camera_pos_1:MovieClip;
public var camera_pos_eggplosion:MovieClip;
public var camera_pos_reef_left:MovieClip;
public var camera_pos_2_boat:MovieClip;
public var char_swim_mc:MovieClip;
public var camera_pos_volcano:MovieClip;
public var ReefStart_mc;
public var camera_pos_trench:MovieClip;
public function intro_movie_mc_281(){
addFrameScript(1, frame2, 9, frame10, 10, frame11, 230, frame231, 371, frame372, 449, frame450, 635, frame636, 642, frame643, 649, frame650, 656, frame657, 663, frame664, 670, frame671, 677, frame678, 699, frame700, 701, frame702, 865, frame866, 1149, frame1150, 1155, frame1156, 1161, frame1162, 1166, frame1167, 1171, frame1172, 1176, frame1177, 1182, frame1183, 1208, frame1209, 1355, frame1356, 1546, frame1547, 1630, frame1631, 1838, frame1839, 1935, frame1936, 1944, frame1945, 2007, frame2008, 2018, frame2019, 2047, frame2048, 2083, frame2084, 2147, frame2148);
}
function frame2019(){
}
function frame657(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_reef_left.x, (camera_pos_reef_left.y + 10), 5));
}
function frame1183(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_1.x, camera_pos_1.y, 5));
}
function frame702(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_trench.x, camera_pos_trench.y, 150));
}
function frame671(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_reef_left.x, (camera_pos_reef_left.y + 10), 5));
}
function frame678(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_reef_left.x, camera_pos_reef_left.y, 20));
}
function frame2148(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame1356(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_2_boat.x, camera_pos_2_boat.y, 120));
}
function frame1177(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_1.x, (camera_pos_1.y + 10), 5));
}
function frame2048(){
}
function frame1631(){
this.dispatchEvent(new GameWorldEvent("MUSIC_CHANGE", "BGM_MAIN_MELODY", 4, 3));
}
function frame10(){
}
function frame866(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_1.x, camera_pos_1.y, 60));
}
function frame1936(){
}
function frame231(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_1.x, camera_pos_1.y, 90));
}
function frame2(){
stop();
}
function frame1945(){
}
function frame11(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_3.x, camera_pos_3.y, 75));
}
function frame2084(){
ReefStart_mc = this.parent.getChildByName("reef_1_mc");
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", ReefStart_mc.x, ReefStart_mc.y, 60));
}
function frame1547(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_1.x, camera_pos_1.y, 90));
}
function frame450(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_reef_left.x, camera_pos_reef_left.y, 60));
}
function frame643(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_reef_left.x, (camera_pos_reef_left.y + 10), 5));
}
function frame636(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_reef_left.x, (camera_pos_reef_left.y - 10), 5));
}
function frame1839(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_reef_left.x, camera_pos_reef_left.y, 90));
}
function frame1156(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_1.x, (camera_pos_1.y + 10), 5));
}
function frame372(){
this.dispatchEvent(new GameWorldEvent("MUSIC_CHANGE", "BGM_DARK", 2, 4));
}
function frame2008(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_eggplosion.x, camera_pos_eggplosion.y, 30));
}
function frame1162(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_1.x, (camera_pos_1.y - 10), 5));
}
function frame1150(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_1.x, (camera_pos_1.y - 10), 5));
}
function frame1167(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_1.x, (camera_pos_1.y + 10), 5));
}
function frame1209(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_volcano.x, camera_pos_volcano.y, 120));
}
function frame650(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_reef_left.x, (camera_pos_reef_left.y - 10), 5));
}
function frame1172(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_1.x, (camera_pos_1.y - 10), 5));
}
function frame700(){
}
function frame664(){
this.dispatchEvent(new GameWorldEvent("CAMERA_PAN", camera_pos_reef_left.x, (camera_pos_reef_left.y - 10), 5));
}
}
}//package KaleidoscopeReef_fla
Section 139
//Kongintro30fps_167 (KaleidoscopeReef_fla.Kongintro30fps_167)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class Kongintro30fps_167 extends MovieClip {
public function Kongintro30fps_167(){
addFrameScript(179, frame180);
}
function frame180(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 140
//Kongregate_mc_306 (KaleidoscopeReef_fla.Kongregate_mc_306)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Kongregate_mc_306 extends MovieClip {
public var on_start;
public var len;
public var out_start;
public var kong_btn:SimpleButton;
public var in_start;
public var end;
public function Kongregate_mc_306(){
addFrameScript(0, frame1, 1, frame2, 19, frame20, 37, frame38);
}
function frame1(){
in_start = 6;
on_start = 20;
out_start = 24;
end = 38;
len = (end - out_start);
kong_btn.addEventListener(MouseEvent.CLICK, this.gotoLink);
kong_btn.addEventListener(MouseEvent.MOUSE_OVER, this.rollIN);
kong_btn.addEventListener(MouseEvent.MOUSE_OUT, this.rollOUT);
}
public function rollIN(_arg1:Event){
gotoAndPlay("in");
}
function frame20(){
stop();
}
function frame2(){
stop();
}
public function rollOUT(_arg1:Event){
var _local2:*;
var _local3:*;
_local2 = _arg1.target.parent.currentFrame;
trace(("now " + _local2));
trace(("in_start " + _arg1.target.parent.in_start));
trace(("len " + _arg1.target.parent.len));
if (_local2 < _arg1.target.parent.in_start){
gotoAndStop("off");
} else {
_local3 = (((_arg1.target.parent.in_start + _arg1.target.parent.len) - _local2) + _arg1.target.parent.out_start);
_arg1.target.parent.gotoAndPlay(_local3);
trace(("play " + _local3));
};
}
function frame38(){
gotoAndStop("off");
}
public function gotoLink(_arg1:Event){
var _local2:URLRequest;
_local2 = new URLRequest(GameSettings.getInstance().getKongregateLink());
navigateToURL(_local2, "_blank");
}
}
}//package KaleidoscopeReef_fla
Section 141
//letterbox_mc_303 (KaleidoscopeReef_fla.letterbox_mc_303)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class letterbox_mc_303 extends MovieClip {
public function letterbox_mc_303(){
addFrameScript(0, frame1, 23, frame24, 48, frame49);
}
function frame1(){
stop();
}
function frame24(){
stop();
}
function frame49(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 142
//level_intro_mc_330 (KaleidoscopeReef_fla.level_intro_mc_330)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public dynamic class level_intro_mc_330 extends MovieClip {
public var message_txt:TextField;
public function level_intro_mc_330(){
addFrameScript(0, frame1, 9, frame10, 13, frame14);
}
function frame10(){
this.dispatchEvent(new Event("ANIM_DONE"));
gotoAndStop("on");
}
function frame14(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 143
//level_intro_screen_mccopy_329 (KaleidoscopeReef_fla.level_intro_screen_mccopy_329)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class level_intro_screen_mccopy_329 extends MovieClip {
public var level_intro_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 144
//level_over_screen_mc_313 (KaleidoscopeReef_fla.level_over_screen_mc_313)
package KaleidoscopeReef_fla {
import flash.display.*;
import flash.text.*;
public dynamic class level_over_screen_mc_313 extends MovieClip {
public var try_again_btn_mc:MovieClip;
public var next_btn_mc:MovieClip;
public var message_txt:TextField;
public var quit_btn_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 145
//lil_blink_mc_39 (KaleidoscopeReef_fla.lil_blink_mc_39)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class lil_blink_mc_39 extends MovieClip {
public function lil_blink_mc_39(){
addFrameScript(0, frame1, 5, frame6);
}
function frame6(){
stop();
}
function frame1(){
if (Math.random() < 0.2){
this.gotoAndPlay("blink");
} else {
stop();
};
}
}
}//package KaleidoscopeReef_fla
Section 146
//lion_blink_266 (KaleidoscopeReef_fla.lion_blink_266)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class lion_blink_266 extends MovieClip {
public function lion_blink_266(){
addFrameScript(0, frame1, 25, frame26);
}
function frame1(){
if (Math.random() < 0.2){
this.gotoAndPlay("blink");
} else {
stop();
};
}
function frame26(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 147
//lion_idle_blink_13 (KaleidoscopeReef_fla.lion_idle_blink_13)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class lion_idle_blink_13 extends MovieClip {
public function lion_idle_blink_13(){
addFrameScript(0, frame1, 25, frame26);
}
function frame1(){
if (Math.random() < 0.2){
this.gotoAndPlay("blink");
} else {
stop();
};
}
function frame26(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 148
//lion_idle_mc_11 (KaleidoscopeReef_fla.lion_idle_mc_11)
package KaleidoscopeReef_fla {
import flash.display.*;
import com.trickysheep.util.*;
public dynamic class lion_idle_mc_11 extends MovieClip {
public var char_swim_mc:MovieClip;
public function lion_idle_mc_11(){
addFrameScript(0, frame1, 40, frame41);
}
function frame1(){
MCBobber.getInstance().BobMC(char_swim_mc);
}
function frame41(){
MCBobber.getInstance().BobMC(char_swim_mc);
}
}
}//package KaleidoscopeReef_fla
Section 149
//lion_none_mc_299 (KaleidoscopeReef_fla.lion_none_mc_299)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class lion_none_mc_299 extends MovieClip {
public function lion_none_mc_299(){
addFrameScript(1, frame2, 116, frame117);
}
function frame2(){
stop();
}
function frame117(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 150
//lion_roar_mc_298 (KaleidoscopeReef_fla.lion_roar_mc_298)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
public dynamic class lion_roar_mc_298 extends MovieClip {
public function lion_roar_mc_298(){
addFrameScript(1, frame2, 55, frame56, 159, frame160);
}
function frame160(){
stop();
}
function frame2(){
stop();
}
function frame56(){
this.dispatchEvent(new Event("LION_ROAR"));
}
}
}//package KaleidoscopeReef_fla
Section 151
//lion_swim_mc_264 (KaleidoscopeReef_fla.lion_swim_mc_264)
package KaleidoscopeReef_fla {
import flash.display.*;
import com.trickysheep.util.*;
public dynamic class lion_swim_mc_264 extends MovieClip {
public var char_swim_mc:MovieClip;
public function lion_swim_mc_264(){
addFrameScript(0, frame1, 26, frame27);
}
function frame1(){
MCBobber.getInstance().BobMC(char_swim_mc);
}
function frame27(){
MCBobber.getInstance().BobMC(char_swim_mc);
}
}
}//package KaleidoscopeReef_fla
Section 152
//main_menu_screen_mc_334 (KaleidoscopeReef_fla.main_menu_screen_mc_334)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class main_menu_screen_mc_334 extends MovieClip {
public var holiday_btn_mc:MovieClip;
public var visit_for_more_mc:MovieClip;
public var debug_buttons_mc:MovieClip;
public var aquarium_btn_mc:MovieClip;
public var link_btn:SimpleButton;
public var terms_btn:SimpleButton;
public var secret_btn_mc:MovieClip;
public var play_btn_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 153
//MainTimeline (KaleidoscopeReef_fla.MainTimeline)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import com.trickysheep.util.*;
import com.trickysheep.coral.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var tricky_btn:SimpleButton;
public var interface_mc:MovieClip;
public var world_mc:MovieClip;
public var myFPSMonitor:FPS;
public var black_bar_mc:MovieClip;
public var SkipPreloader_bool:Boolean;
public var kong_btn:SimpleButton;
public var percentLoaded:int;
public var current_mode_str:String;
public var bytes_txt:TextField;
public var myGame:TheCoralGame;
public var loaderStarted:Boolean;
public var preloader_mc:MovieClip;
public function MainTimeline(){
addFrameScript(0, frame1, 2, frame3, 65, frame66, 66, frame67, 83, frame84, 165, frame166, 178, frame179, 339, frame340, 342, frame343);
}
function frame67(){
stage.quality = StageQuality.HIGH;
}
function frame84(){
tricky_btn.addEventListener(MouseEvent.CLICK, this.gotoLink);
}
function frame166(){
tricky_btn.removeEventListener(MouseEvent.CLICK, this.gotoLink);
}
public function gotoLink(_arg1:Event){
var _local2:URLRequest;
if (_arg1.target.name == "tricky_btn"){
_local2 = new URLRequest(GameSettings.getInstance().getTrickysheepLink());
} else {
_local2 = new URLRequest(GameSettings.getInstance().getKongregateLink());
};
navigateToURL(_local2, "_blank");
}
public function doGameStart():void{
trace("doGameStart");
if (currentFrame == 3){
this.removeEventListener("enterFrame", onEnterFrame);
this.gotoAndPlay("preload_out");
};
}
function frame3(){
stop();
}
function frame340(){
kong_btn.removeEventListener(MouseEvent.CLICK, this.gotoLink);
}
function frame1(){
stop();
SkipPreloader_bool = false;
stage.quality = StageQuality.HIGH;
current_mode_str = "LOADING";
loaderStarted = false;
this.addEventListener("enterFrame", onEnterFrame);
}
function frame343(){
stage.quality = StageQuality.LOW;
myFPSMonitor = new FPS();
myFPSMonitor.name = "fps2_mc";
addChild(myFPSMonitor);
myGame = new TheCoralGame(stage);
myGame.setFPSMonitor(myFPSMonitor);
myGame.setWorldMC(world_mc);
myGame.setInterfaceMC(interface_mc);
myGame.Init();
stop();
MochiBot.track(this, "c67985bc");
}
public function loadingProgress(_arg1:Event):void{
trace("loadingProgress", percentLoaded);
UpdateDisplay();
}
public function loadingComplete(_arg1:Event){
trace("loadingComplete");
this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, loadingProgress);
this.loaderInfo.removeEventListener(Event.COMPLETE, loadingComplete);
finishPreload();
}
function frame179(){
kong_btn.addEventListener(MouseEvent.CLICK, this.gotoLink);
}
public function UpdateDisplay(){
var _local1:*;
_local1 = (this.loaderInfo.bytesLoaded / this.loaderInfo.bytesTotal);
this.preloader_mc.UpdatePreloader(_local1);
bytes_txt.text = (((Math.round((this.loaderInfo.bytesLoaded / 0x0400)) + " / ") + Math.round((this.loaderInfo.bytesTotal / 0x0400))) + "K");
}
public function onEnterFrame(_arg1:Event){
if (current_mode_str == "LOADING"){
doLoadScreen();
} else {
if (this.preloader_mc.ANIM_COMPLETE){
doGameStart();
} else {
UpdateDisplay();
};
};
}
public function doLoadScreen():void{
if (!loaderStarted){
if (this.loaderInfo.bytesLoaded == this.loaderInfo.bytesTotal){
finishPreload();
} else {
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, loadingProgress);
this.loaderInfo.addEventListener(Event.COMPLETE, loadingComplete);
};
};
}
function frame66(){
if (SkipPreloader_bool){
gotoAndPlay(1, "Game");
} else {
nextScene();
};
}
public function finishPreload():void{
this.play();
current_mode_str = "GAME START";
UpdateDisplay();
}
}
}//package KaleidoscopeReef_fla
Section 154
//megamouth_blink_mc_43 (KaleidoscopeReef_fla.megamouth_blink_mc_43)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class megamouth_blink_mc_43 extends MovieClip {
public function megamouth_blink_mc_43(){
addFrameScript(0, frame1, 7, frame8);
}
function frame1(){
if (Math.random() < 0.2){
this.gotoAndPlay("blink");
} else {
stop();
};
}
function frame8(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 155
//more_games_at_button_mc_262 (KaleidoscopeReef_fla.more_games_at_button_mc_262)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class more_games_at_button_mc_262 extends MovieClip {
public var hittarget_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 156
//music_assets_mc_21 (KaleidoscopeReef_fla.music_assets_mc_21)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class music_assets_mc_21 extends MovieClip {
public function music_assets_mc_21(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 157
//octo_blink_mc_47 (KaleidoscopeReef_fla.octo_blink_mc_47)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class octo_blink_mc_47 extends MovieClip {
public function octo_blink_mc_47(){
addFrameScript(0, frame1, 7, frame8);
}
function frame1(){
if (Math.random() < 0.2){
this.gotoAndPlay("blink");
} else {
stop();
};
}
function frame8(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 158
//pause_menu_mc_317 (KaleidoscopeReef_fla.pause_menu_mc_317)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class pause_menu_mc_317 extends MovieClip {
public var music_toggle_btn_mc:MovieClip;
public var symbols_btn_mc:MovieClip;
public var quit_btn_mc:MovieClip;
public var symbols_example_mc:MovieClip;
public var music_check_box_mc:MovieClip;
public var sound_toggle_btn_mc:MovieClip;
public var symbols_check_box_mc:MovieClip;
public var sound_check_box_mc:MovieClip;
public var continue_btn_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 159
//plankton_graphics_mc_53 (KaleidoscopeReef_fla.plankton_graphics_mc_53)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class plankton_graphics_mc_53 extends MovieClip {
public function plankton_graphics_mc_53(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 160
//plant_polyp_screen_mc_326 (KaleidoscopeReef_fla.plant_polyp_screen_mc_326)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class plant_polyp_screen_mc_326 extends MovieClip {
public var polyp_bag_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 161
//play_button_mc_335 (KaleidoscopeReef_fla.play_button_mc_335)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class play_button_mc_335 extends MovieClip {
public var hittarget_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 162
//polyp_bag_mc_327 (KaleidoscopeReef_fla.polyp_bag_mc_327)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
public dynamic class polyp_bag_mc_327 extends MovieClip {
public var polyps_in_bag_layer_mc:MovieClip;
public function polyp_bag_mc_327(){
addFrameScript(0, frame1, 21, frame22, 31, frame32);
}
function frame1(){
stop();
}
function frame22(){
this.dispatchEvent(new Event("ANIM_DONE"));
gotoAndStop("on");
}
function frame32(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package KaleidoscopeReef_fla
Section 163
//polyp_body_m_mc_56 (KaleidoscopeReef_fla.polyp_body_m_mc_56)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class polyp_body_m_mc_56 extends MovieClip {
public var symbol_mc:MovieClip;
public function polyp_body_m_mc_56(){
addFrameScript(0, frame1, 63, frame64, 94, frame95);
}
function frame64(){
gotoAndPlay("on");
}
function frame95(){
gotoAndPlay("on");
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 164
//polyp_body_m_mc_67 (KaleidoscopeReef_fla.polyp_body_m_mc_67)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class polyp_body_m_mc_67 extends MovieClip {
public var symbol_mc:MovieClip;
public function polyp_body_m_mc_67(){
addFrameScript(0, frame1, 63, frame64, 94, frame95, 104, frame105);
}
function frame64(){
gotoAndPlay("on");
}
function frame95(){
gotoAndPlay("on");
}
function frame105(){
stop();
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 165
//polyp_body_s_mc_77 (KaleidoscopeReef_fla.polyp_body_s_mc_77)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class polyp_body_s_mc_77 extends MovieClip {
public var symbol_mc:MovieClip;
public function polyp_body_s_mc_77(){
addFrameScript(0, frame1, 63, frame64, 98, frame99);
}
function frame64(){
gotoAndPlay("on");
}
function frame1(){
stop();
}
function frame99(){
gotoAndPlay("on");
}
}
}//package KaleidoscopeReef_fla
Section 166
//polyp_frame_m_1_mc_65 (KaleidoscopeReef_fla.polyp_frame_m_1_mc_65)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_m_1_mc_65 extends MovieClip {
public var myObject;
public function polyp_frame_m_1_mc_65(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 167
//polyp_frame_m_1_mc_75 (KaleidoscopeReef_fla.polyp_frame_m_1_mc_75)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_m_1_mc_75 extends MovieClip {
public var myObject;
public function polyp_frame_m_1_mc_75(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 168
//polyp_frame_m_2_mc_63 (KaleidoscopeReef_fla.polyp_frame_m_2_mc_63)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_m_2_mc_63 extends MovieClip {
public var myObject;
public function polyp_frame_m_2_mc_63(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 169
//polyp_frame_m_2_mc_73 (KaleidoscopeReef_fla.polyp_frame_m_2_mc_73)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_m_2_mc_73 extends MovieClip {
public var myObject;
public function polyp_frame_m_2_mc_73(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 170
//polyp_frame_m_3_mc_58 (KaleidoscopeReef_fla.polyp_frame_m_3_mc_58)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_m_3_mc_58 extends MovieClip {
public var myObject;
public function polyp_frame_m_3_mc_58(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 171
//polyp_frame_m_3_mc_69 (KaleidoscopeReef_fla.polyp_frame_m_3_mc_69)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_m_3_mc_69 extends MovieClip {
public var myObject;
public function polyp_frame_m_3_mc_69(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 172
//polyp_frame_m_4_mc_60 (KaleidoscopeReef_fla.polyp_frame_m_4_mc_60)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_m_4_mc_60 extends MovieClip {
public var myObject;
public function polyp_frame_m_4_mc_60(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 173
//polyp_frame_m_4_mc_70 (KaleidoscopeReef_fla.polyp_frame_m_4_mc_70)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_m_4_mc_70 extends MovieClip {
public var myObject;
public function polyp_frame_m_4_mc_70(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 174
//polyp_frame_m_5_mc_64 (KaleidoscopeReef_fla.polyp_frame_m_5_mc_64)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_m_5_mc_64 extends MovieClip {
public var myObject;
public function polyp_frame_m_5_mc_64(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 175
//polyp_frame_m_5_mc_74 (KaleidoscopeReef_fla.polyp_frame_m_5_mc_74)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_m_5_mc_74 extends MovieClip {
public var myObject;
public function polyp_frame_m_5_mc_74(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 176
//polyp_frame_m_6_mc_62 (KaleidoscopeReef_fla.polyp_frame_m_6_mc_62)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_m_6_mc_62 extends MovieClip {
public var myObject;
public function polyp_frame_m_6_mc_62(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 177
//polyp_frame_m_6_mc_72 (KaleidoscopeReef_fla.polyp_frame_m_6_mc_72)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_m_6_mc_72 extends MovieClip {
public var myObject;
public function polyp_frame_m_6_mc_72(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 178
//polyp_frame_m_7_mc_61 (KaleidoscopeReef_fla.polyp_frame_m_7_mc_61)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_m_7_mc_61 extends MovieClip {
public var myObject;
public function polyp_frame_m_7_mc_61(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 179
//polyp_frame_m_7_mc_71 (KaleidoscopeReef_fla.polyp_frame_m_7_mc_71)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_m_7_mc_71 extends MovieClip {
public var myObject;
public function polyp_frame_m_7_mc_71(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 180
//polyp_frame_s_1_mc_85 (KaleidoscopeReef_fla.polyp_frame_s_1_mc_85)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_s_1_mc_85 extends MovieClip {
public var myObject;
public function polyp_frame_s_1_mc_85(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 181
//polyp_frame_s_2_mc_83 (KaleidoscopeReef_fla.polyp_frame_s_2_mc_83)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_s_2_mc_83 extends MovieClip {
public var myObject;
public function polyp_frame_s_2_mc_83(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 182
//polyp_frame_s_3_mc_79 (KaleidoscopeReef_fla.polyp_frame_s_3_mc_79)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_s_3_mc_79 extends MovieClip {
public var myObject;
public function polyp_frame_s_3_mc_79(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 183
//polyp_frame_s_4_mc_80 (KaleidoscopeReef_fla.polyp_frame_s_4_mc_80)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_s_4_mc_80 extends MovieClip {
public var myObject;
public function polyp_frame_s_4_mc_80(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 184
//polyp_frame_s_5_mc_84 (KaleidoscopeReef_fla.polyp_frame_s_5_mc_84)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_s_5_mc_84 extends MovieClip {
public var myObject;
public function polyp_frame_s_5_mc_84(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 185
//polyp_frame_s_6_mc_82 (KaleidoscopeReef_fla.polyp_frame_s_6_mc_82)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_s_6_mc_82 extends MovieClip {
public var myObject;
public function polyp_frame_s_6_mc_82(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 186
//polyp_frame_s_7_mc_81 (KaleidoscopeReef_fla.polyp_frame_s_7_mc_81)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class polyp_frame_s_7_mc_81 extends MovieClip {
public var myObject;
public function polyp_frame_s_7_mc_81(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
myObject = parent;
myObject.SetTentacleColor(this);
}
}
}//package KaleidoscopeReef_fla
Section 187
//polyp_symbols_l_mc_57 (KaleidoscopeReef_fla.polyp_symbols_l_mc_57)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class polyp_symbols_l_mc_57 extends MovieClip {
public function polyp_symbols_l_mc_57(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 188
//polyp_symbols_m_mc_68 (KaleidoscopeReef_fla.polyp_symbols_m_mc_68)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class polyp_symbols_m_mc_68 extends MovieClip {
public function polyp_symbols_m_mc_68(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 189
//polyp_symbols_s_mc_78 (KaleidoscopeReef_fla.polyp_symbols_s_mc_78)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class polyp_symbols_s_mc_78 extends MovieClip {
public function polyp_symbols_s_mc_78(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 190
//preloader_movie_mc_1 (KaleidoscopeReef_fla.preloader_movie_mc_1)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class preloader_movie_mc_1 extends MovieClip {
public var coral_7_mc:MovieClip;
public var coralfish_4_mc:MovieClip;
public var CoralGrown_array;
public var coral_2_mc:MovieClip;
public var coral_5_mc:MovieClip;
public var coralfish_2_mc:MovieClip;
public var CoralOrder_array;
public var coral_8_mc:MovieClip;
public var coral_3_mc:MovieClip;
public var crab_hammering_mc:MovieClip;
public var coralfish_3_mc:MovieClip;
public var coral_6_mc:MovieClip;
public var coral_9_mc:MovieClip;
public var coral_1_mc:MovieClip;
public var coral_4_mc:MovieClip;
public var coralfish_1_mc:MovieClip;
public var parentMC;
public function preloader_movie_mc_1(){
addFrameScript(0, frame1, 9, frame10, 96, frame97, 104, frame105, 115, frame116, 125, frame126, 184, frame185);
}
function frame10(){
parentMC = MovieClip(this.parent);
if (parentMC.SkipPreloader_bool){
gotoAndPlay("end");
};
}
function frame105(){
coralfish_4_mc.coral_fish_gfx_mc.gotoAndStop(5);
coralfish_4_mc.gotoAndPlay("in");
}
function frame97(){
coralfish_2_mc.coral_fish_gfx_mc.gotoAndStop(4);
coralfish_2_mc.gotoAndPlay("in");
}
function frame185(){
this.ANIM_COMPLETE = true;
stop();
}
function frame116(){
coralfish_1_mc.coral_fish_gfx_mc.gotoAndStop(8);
coralfish_1_mc.gotoAndPlay("in");
}
function frame1(){
this.ANIM_COMPLETE = false;
this.LOADING_COMPLETE = false;
CoralOrder_array = new Array(7, 2, 8, 3, 1, 4, 5, 9, 6);
CoralGrown_array = new Array();
stop();
}
function frame126(){
coralfish_3_mc.coral_fish_gfx_mc.gotoAndStop(3);
coralfish_3_mc.gotoAndPlay("in");
}
public function UpdatePreloader(_arg1:Number){
var _local2:Number;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
if (!this.LOADING_COMPLETE){
_local2 = _arg1;
_local3 = 140;
_local4 = 6;
_local5 = -1.6;
_local6 = Math.ceil(((_local2 * (_local4 - _local3)) + _local3));
_local7 = this.crab_hammering_mc.y;
if (_local7 > _local6){
this.crab_hammering_mc.y = (this.crab_hammering_mc.y + _local5);
} else {
if (_local7 <= _local6){
this.crab_hammering_mc.y = _local6;
};
};
_local8 = (1 - ((_local4 - _local7) / (_local4 - _local3)));
_local9 = int((_local8 * CoralOrder_array.length));
_local10 = 0;
while (_local10 < _local9) {
if (CoralGrown_array[_local10] != true){
_local11 = CoralOrder_array[_local10];
this[(("coral_" + _local11) + "_mc")].coral_grafix_mc.coral_with_color_mc.gotoAndStop(_local11);
this[(("coral_" + _local11) + "_mc")].gotoAndPlay("grow");
CoralGrown_array[_local10] = true;
};
_local10++;
};
if (CoralGrown_array[(CoralOrder_array.length - 1)]){
this.LOADING_COMPLETE = true;
this.gotoAndPlay("out");
};
};
}
}
}//package KaleidoscopeReef_fla
Section 191
//puffer_blink_mc_10 (KaleidoscopeReef_fla.puffer_blink_mc_10)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class puffer_blink_mc_10 extends MovieClip {
public function puffer_blink_mc_10(){
addFrameScript(0, frame1, 6, frame7);
}
function frame7(){
stop();
}
function frame1(){
if (Math.random() < 0.33){
this.gotoAndPlay("blink");
} else {
stop();
};
}
}
}//package KaleidoscopeReef_fla
Section 192
//puffer_full_mc_272 (KaleidoscopeReef_fla.puffer_full_mc_272)
package KaleidoscopeReef_fla {
import flash.display.*;
import com.trickysheep.util.*;
public dynamic class puffer_full_mc_272 extends MovieClip {
public var char_swim_mc:MovieClip;
public function puffer_full_mc_272(){
addFrameScript(3, frame4);
}
function frame4(){
MCBobber.getInstance().BobMC(char_swim_mc);
}
}
}//package KaleidoscopeReef_fla
Section 193
//puffer_none_mc_301 (KaleidoscopeReef_fla.puffer_none_mc_301)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class puffer_none_mc_301 extends MovieClip {
public function puffer_none_mc_301(){
addFrameScript(1, frame2, 53, frame54);
}
function frame2(){
stop();
}
function frame54(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 194
//puffer_poison_clear_mc_302 (KaleidoscopeReef_fla.puffer_poison_clear_mc_302)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
public dynamic class puffer_poison_clear_mc_302 extends MovieClip {
public function puffer_poison_clear_mc_302(){
addFrameScript(1, frame2, 84, frame85, 159, frame160);
}
function frame160(){
stop();
}
function frame85(){
this.dispatchEvent(new Event("POISON_CLEAR"));
}
function frame2(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 195
//puffer_swim_8 (KaleidoscopeReef_fla.puffer_swim_8)
package KaleidoscopeReef_fla {
import flash.display.*;
import com.trickysheep.util.*;
public dynamic class puffer_swim_8 extends MovieClip {
public var char_swim_mc:MovieClip;
public function puffer_swim_8(){
addFrameScript(3, frame4, 39, frame40);
}
function frame4(){
MCBobber.getInstance().BobMC(char_swim_mc);
}
function frame40(){
MCBobber.getInstance().BobMC(char_swim_mc);
}
}
}//package KaleidoscopeReef_fla
Section 196
//quit_button_2_mc_312 (KaleidoscopeReef_fla.quit_button_2_mc_312)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class quit_button_2_mc_312 extends MovieClip {
public var hittarget_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 197
//quit_button_mc_316 (KaleidoscopeReef_fla.quit_button_mc_316)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class quit_button_mc_316 extends MovieClip {
public var hittarget_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 198
//quit_confirm_mc_321 (KaleidoscopeReef_fla.quit_confirm_mc_321)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class quit_confirm_mc_321 extends MovieClip {
public var no_quit_btn_mc:MovieClip;
public var yes_quit_btn_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 199
//ray_flat_swim_268 (KaleidoscopeReef_fla.ray_flat_swim_268)
package KaleidoscopeReef_fla {
import flash.display.*;
import com.trickysheep.util.*;
public dynamic class ray_flat_swim_268 extends MovieClip {
public var char_swim_mc:MovieClip;
public function ray_flat_swim_268(){
addFrameScript(4, frame5);
}
function frame5(){
MCBobber.getInstance().BobMC(char_swim_mc);
}
}
}//package KaleidoscopeReef_fla
Section 200
//ray_idle_blink_19 (KaleidoscopeReef_fla.ray_idle_blink_19)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class ray_idle_blink_19 extends MovieClip {
public function ray_idle_blink_19(){
addFrameScript(0, frame1, 11, frame12);
}
function frame12(){
stop();
}
function frame1(){
if (Math.random() < 0.3){
this.gotoAndPlay("blink");
} else {
stop();
};
}
}
}//package KaleidoscopeReef_fla
Section 201
//reef_0_mc_191 (KaleidoscopeReef_fla.reef_0_mc_191)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
public dynamic class reef_0_mc_191 extends MovieClip {
public var buildarea_mc:MovieClip;
public var ground_area_mc:MovieClip;
public var spawn_area_mc:MovieClip;
public function reef_0_mc_191(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
this.dispatchEvent(new Event("MC_LOADED"));
}
}
}//package KaleidoscopeReef_fla
Section 202
//reef_1_ending_mc_205 (KaleidoscopeReef_fla.reef_1_ending_mc_205)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class reef_1_ending_mc_205 extends MovieClip {
public var fire_cannon_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 203
//reef_1_mc_200 (KaleidoscopeReef_fla.reef_1_mc_200)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
public dynamic class reef_1_mc_200 extends MovieClip {
public var reef_ending_mc:MovieClip;
public var buildarea_mc:MovieClip;
public var ground_area_mc:MovieClip;
public var spawn_area_mc:MovieClip;
public function reef_1_mc_200(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
this.dispatchEvent(new Event("MC_LOADED"));
}
}
}//package KaleidoscopeReef_fla
Section 204
//reef_1a_buildarea_mc_202 (KaleidoscopeReef_fla.reef_1a_buildarea_mc_202)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class reef_1a_buildarea_mc_202 extends MovieClip {
public var buildarea_left_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 205
//reef_2_buildarea_mc_198 (KaleidoscopeReef_fla.reef_2_buildarea_mc_198)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class reef_2_buildarea_mc_198 extends MovieClip {
public var buildarea_left_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 206
//reef_2_mc_194 (KaleidoscopeReef_fla.reef_2_mc_194)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
public dynamic class reef_2_mc_194 extends MovieClip {
public var goo_layer_mc:MovieClip;
public var buildarea_mc:MovieClip;
public var goo_shadows_layer_mc:MovieClip;
public var goo_hilite_layer_mc:MovieClip;
public var spawn_area_mc:MovieClip;
public var ground_area_mc:MovieClip;
public var boss_intro_mc:MovieClip;
public function reef_2_mc_194(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
this.dispatchEvent(new Event("MC_LOADED"));
}
}
}//package KaleidoscopeReef_fla
Section 207
//reef_3_buildarea_mc_208 (KaleidoscopeReef_fla.reef_3_buildarea_mc_208)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class reef_3_buildarea_mc_208 extends MovieClip {
public var buildarea_left_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 208
//reef_3_mc_207 (KaleidoscopeReef_fla.reef_3_mc_207)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
public dynamic class reef_3_mc_207 extends MovieClip {
public var buildarea_mc:MovieClip;
public var ground_area_mc:MovieClip;
public var spawn_area_mc:MovieClip;
public var star_sticker_mc:MovieClip;
public var cavedude_mc:MovieClip;
public function reef_3_mc_207(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
this.dispatchEvent(new Event("MC_LOADED"));
}
}
}//package KaleidoscopeReef_fla
Section 209
//reef_4_buildarea_mc_243 (KaleidoscopeReef_fla.reef_4_buildarea_mc_243)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class reef_4_buildarea_mc_243 extends MovieClip {
public var buildarea_left_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 210
//reef_4_mc_242 (KaleidoscopeReef_fla.reef_4_mc_242)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
public dynamic class reef_4_mc_242 extends MovieClip {
public var buildarea_mc:MovieClip;
public var ground_area_mc:MovieClip;
public var spawn_area_mc:MovieClip;
public function reef_4_mc_242(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
this.dispatchEvent(new Event("MC_LOADED"));
}
}
}//package KaleidoscopeReef_fla
Section 211
//reef_5_buildarea_mc_223 (KaleidoscopeReef_fla.reef_5_buildarea_mc_223)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class reef_5_buildarea_mc_223 extends MovieClip {
public var buildarea_left_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 212
//reef_5_mc_222 (KaleidoscopeReef_fla.reef_5_mc_222)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
public dynamic class reef_5_mc_222 extends MovieClip {
public var volcano_glow_mc:MovieClip;
public var buildarea_mc:MovieClip;
public var special_spawn_area_mc:MovieClip;
public var spawn_area_mc:MovieClip;
public var reef_mouth_mc:MovieClip;
public function reef_5_mc_222(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
this.dispatchEvent(new Event("MC_LOADED"));
}
}
}//package KaleidoscopeReef_fla
Section 213
//reef_5_mouth_mc_226 (KaleidoscopeReef_fla.reef_5_mouth_mc_226)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class reef_5_mouth_mc_226 extends MovieClip {
public var hitarea_mc:MovieClip;
public function reef_5_mouth_mc_226(){
addFrameScript(3, frame4, 37, frame38);
}
function frame4(){
stop();
}
function frame38(){
gotoAndPlay("off");
}
}
}//package KaleidoscopeReef_fla
Section 214
//reef_6_buildarea_mc_233 (KaleidoscopeReef_fla.reef_6_buildarea_mc_233)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class reef_6_buildarea_mc_233 extends MovieClip {
public var buildarea_left_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 215
//reef_6_goo_layer_mc_232 (KaleidoscopeReef_fla.reef_6_goo_layer_mc_232)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class reef_6_goo_layer_mc_232 extends MovieClip {
public var sludge02:GooBlob_2_MC;
public var sludge03:GooBlob_3_MC;
public var sludge05:GooBlob_5_MC;
public var sludge08:GooBlob_7_MC;
public var sludge06:GooBlob_6_MC;
public var sludge04:GooBlob_4_MC;
public var sludge14:GooBlob_14_MC;
public var sludge16:GooBlob_9_MC;
public var sludge10:GooBlob_10_MC;
public var sludge11:GooBlob_11_MC;
public var sludge12:GooBlob_12_MC;
public var sludge01:GooBlob_1_MC;
public var sludge13:GooBlob_13_MC;
}
}//package KaleidoscopeReef_fla
Section 216
//reef_6_mc_230 (KaleidoscopeReef_fla.reef_6_mc_230)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
public dynamic class reef_6_mc_230 extends MovieClip {
public var reef_button_2_mc:MovieClip;
public var goo_layer_mc:MovieClip;
public var clam_1_mc:MovieClip;
public var reef_button_0_mc:MovieClip;
public var buildarea_mc:MovieClip;
public var clam_2_mc:MovieClip;
public var reef_button_1_mc:MovieClip;
public var clam_0_mc:MovieClip;
public var special_spawn_area_mc:MovieClip;
public var goo_hilite_layer_mc:MovieClip;
public var ground_area_mc:MovieClip;
public var spawn_area_mc:MovieClip;
public var star_sticker_mc:MovieClip;
public function reef_6_mc_230(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
this.dispatchEvent(new Event("MC_LOADED"));
}
}
}//package KaleidoscopeReef_fla
Section 217
//reef_6_special_spawn_area_mc_239 (KaleidoscopeReef_fla.reef_6_special_spawn_area_mc_239)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class reef_6_special_spawn_area_mc_239 extends MovieClip {
public var reef_6_clam_spawn_area_1_mc:MovieClip;
public var reef_6_clam_spawn_area_2_mc:MovieClip;
public var reef_6_clam_spawn_area_0_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 218
//reef_7_buildarea_mc_248 (KaleidoscopeReef_fla.reef_7_buildarea_mc_248)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class reef_7_buildarea_mc_248 extends MovieClip {
public var buildarea_left_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 219
//reef_7_mc_246 (KaleidoscopeReef_fla.reef_7_mc_246)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
public dynamic class reef_7_mc_246 extends MovieClip {
public var goo_layer_mc:MovieClip;
public var goo_spawn_area_mc:MovieClip;
public var buildarea_mc:MovieClip;
public var special_spawn_area_mc:MovieClip;
public var goo_hilite_layer_mc:MovieClip;
public var spawn_area_mc:MovieClip;
public var boss_layer_mc:MovieClip;
public var star_sticker_mc:MovieClip;
public function reef_7_mc_246(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
this.dispatchEvent(new Event("MC_LOADED"));
}
}
}//package KaleidoscopeReef_fla
Section 220
//reef_aquarium_buildarea_mc_255 (KaleidoscopeReef_fla.reef_aquarium_buildarea_mc_255)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class reef_aquarium_buildarea_mc_255 extends MovieClip {
public var buildarea_left_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 221
//reef_aquarium_mc_254 (KaleidoscopeReef_fla.reef_aquarium_mc_254)
package KaleidoscopeReef_fla {
import flash.events.*;
import flash.display.*;
public dynamic class reef_aquarium_mc_254 extends MovieClip {
public var buildarea_mc:MovieClip;
public var ground_area_mc:MovieClip;
public var spawn_area_mc:MovieClip;
public function reef_aquarium_mc_254(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
this.dispatchEvent(new Event("MC_LOADED"));
}
}
}//package KaleidoscopeReef_fla
Section 222
//reef_ending_layer_mc_295 (KaleidoscopeReef_fla.reef_ending_layer_mc_295)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class reef_ending_layer_mc_295 extends MovieClip {
public var goth_cannon_mc:MovieClip;
public var goth_none_mc:MovieClip;
public var lion_roar_mc:MovieClip;
public var crab_none_mc:MovieClip;
public var crab_goto_poison_mc:MovieClip;
public var puffer_none_mc:MovieClip;
public var puffer_poison_clear_mc:MovieClip;
public var lion_none_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 223
//reef_layer_mc_187 (KaleidoscopeReef_fla.reef_layer_mc_187)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class reef_layer_mc_187 extends MovieClip {
public var reef_2_mc:MovieClip;
public var aquarium_gfx_mc:MovieClip;
public var reef_5_mc:MovieClip;
public var ending_movie_mc:MovieClip;
public var reef_99_mc:MovieClip;
public var reef_0_mc:MovieClip;
public var reef_3_mc:MovieClip;
public var intro_movie_mc:MovieClip;
public var reef_6_mc:MovieClip;
public var reef_gfx_mc:MovieClip;
public var reef_1_mc:MovieClip;
public var reef_4_mc:MovieClip;
public var holiday_stuff_mc:MovieClip;
public var reef_7_mc:MovieClip;
public var permanent_corals_layer_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 224
//skip_button_mc_333 (KaleidoscopeReef_fla.skip_button_mc_333)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class skip_button_mc_333 extends MovieClip {
public var hittarget_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 225
//squid_blink_mc_49 (KaleidoscopeReef_fla.squid_blink_mc_49)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class squid_blink_mc_49 extends MovieClip {
public function squid_blink_mc_49(){
addFrameScript(0, frame1, 7, frame8);
}
function frame1(){
if (Math.random() < 0.2){
this.gotoAndPlay("blink");
} else {
stop();
};
}
function frame8(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 226
//star_sticker_mc_211 (KaleidoscopeReef_fla.star_sticker_mc_211)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class star_sticker_mc_211 extends MovieClip {
public function star_sticker_mc_211(){
addFrameScript(0, frame1, 2, frame3, 7, frame8);
}
function frame3(){
stop();
}
function frame1(){
stop();
}
function frame8(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 227
//symbols_example_mc_319 (KaleidoscopeReef_fla.symbols_example_mc_319)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class symbols_example_mc_319 extends MovieClip {
public var symbol_mc:MovieClip;
public function symbols_example_mc_319(){
addFrameScript(0, frame1, 4, frame5);
}
function frame1(){
stop();
}
function frame5(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 228
//symbols_on_egg_l_mc_91 (KaleidoscopeReef_fla.symbols_on_egg_l_mc_91)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class symbols_on_egg_l_mc_91 extends MovieClip {
public function symbols_on_egg_l_mc_91(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 229
//symbols_on_egg_m_mc_95 (KaleidoscopeReef_fla.symbols_on_egg_m_mc_95)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class symbols_on_egg_m_mc_95 extends MovieClip {
public function symbols_on_egg_m_mc_95(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 230
//symbols_on_egg_s_mc_99 (KaleidoscopeReef_fla.symbols_on_egg_s_mc_99)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class symbols_on_egg_s_mc_99 extends MovieClip {
public function symbols_on_egg_s_mc_99(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 231
//tricky_logo_mc_309 (KaleidoscopeReef_fla.tricky_logo_mc_309)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class tricky_logo_mc_309 extends MovieClip {
public function tricky_logo_mc_309(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package KaleidoscopeReef_fla
Section 232
//volcano_glow_mc_225 (KaleidoscopeReef_fla.volcano_glow_mc_225)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class volcano_glow_mc_225 extends MovieClip {
public function volcano_glow_mc_225(){
addFrameScript(259, frame260);
}
function frame260(){
gotoAndPlay("idle");
}
}
}//package KaleidoscopeReef_fla
Section 233
//world_mc_181 (KaleidoscopeReef_fla.world_mc_181)
package KaleidoscopeReef_fla {
import flash.display.*;
public dynamic class world_mc_181 extends MovieClip {
public var drag_item_under_layer_mc:MovieClip;
public var drag_item_over_layer_mc:MovieClip;
public var plankton_layer_mc:MovieClip;
public var enemy_layer_mc:MovieClip;
public var reef_layer_mc:MovieClip;
public var letterbox_mc:MovieClip;
public var reef_ending_layer_mc:MovieClip;
public var background_2_mc:MovieClip;
public var egg_layer_mc:MovieClip;
public var foreground_mc:MovieClip;
public var crabby_layer_mc:MovieClip;
public var curtains_mc:MovieClip;
public var coral_layer_mc:MovieClip;
public var background_water_mc:MovieClip;
public var background_1_mc:MovieClip;
public var polyp_layer_mc:MovieClip;
}
}//package KaleidoscopeReef_fla
Section 234
//HitTest (ws.tink.display.HitTest)
package ws.tink.display {
import flash.display.*;
import flash.geom.*;
public class HitTest {
protected static function getDrawMatrix(_arg1:DisplayObject, _arg2:Rectangle, _arg3:Number):Matrix{
var _local4:Point;
var _local5:Matrix;
var _local6:Matrix;
_local6 = _arg1.root.transform.concatenatedMatrix;
_local4 = _arg1.localToGlobal(new Point());
_local5 = _arg1.transform.concatenatedMatrix;
_local5.tx = (_local4.x - _arg2.x);
_local5.ty = (_local4.y - _arg2.y);
_local5.a = (_local5.a / _local6.a);
_local5.d = (_local5.d / _local6.d);
if (_arg3 != 1){
_local5.scale(_arg3, _arg3);
};
return (_local5);
}
public static function complexHitTestObject(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Number=1):Boolean{
return (!((complexIntersectionRectangle(_arg1, _arg2, _arg3).width == 0)));
}
public static function complexIntersectionRectangle(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Number=1):Rectangle{
var _local4:Rectangle;
var _local5:BitmapData;
var _local6:Rectangle;
if (_arg3 <= 0){
throw (new Error("ArgumentError: Error #5001: Invalid value for accuracy", 5001));
};
if (!_arg1.hitTestObject(_arg2)){
return (new Rectangle());
};
_local4 = intersectionRectangle(_arg1, _arg2);
if (((((_local4.width * _arg3) < 1)) || (((_local4.height * _arg3) < 1)))){
return (new Rectangle());
};
_local5 = new BitmapData((_local4.width * _arg3), (_local4.height * _arg3), false, 0);
_local5.draw(_arg1, HitTest.getDrawMatrix(_arg1, _local4, _arg3), new ColorTransform(1, 1, 1, 1, 0xFF, -255, -255, 0xFF));
_local5.draw(_arg2, HitTest.getDrawMatrix(_arg2, _local4, _arg3), new ColorTransform(1, 1, 1, 1, 0xFF, 0xFF, 0xFF, 0xFF), BlendMode.DIFFERENCE);
_local6 = _local5.getColorBoundsRect(4294967295, 4278255615);
_local5.dispose();
if (_arg3 != 1){
_local6.x = (_local6.x / _arg3);
_local6.y = (_local6.y / _arg3);
_local6.width = (_local6.width / _arg3);
_local6.height = (_local6.height / _arg3);
};
_local6.x = (_local6.x + _local4.x);
_local6.y = (_local6.y + _local4.y);
return (_local6);
}
public static function intersectionRectangle(_arg1:DisplayObject, _arg2:DisplayObject):Rectangle{
var _local3:Rectangle;
var _local4:Rectangle;
var _local5:Rectangle;
if (((((!(_arg1.root)) || (!(_arg2.root)))) || (!(_arg1.hitTestObject(_arg2))))){
return (new Rectangle());
};
_local3 = _arg1.getBounds(_arg1.root);
_local4 = _arg2.getBounds(_arg2.root);
_local5 = new Rectangle();
_local5.x = Math.max(_local3.x, _local4.x);
_local5.y = Math.max(_local3.y, _local4.y);
_local5.width = Math.min(((_local3.x + _local3.width) - _local5.x), ((_local4.x + _local4.width) - _local5.x));
_local5.height = Math.min(((_local3.y + _local3.height) - _local5.y), ((_local4.y + _local4.height) - _local5.y));
return (_local5);
}
}
}//package ws.tink.display
Section 235
//BGM_DARK (BGM_DARK)
package {
import flash.media.*;
public dynamic class BGM_DARK extends Sound {
}
}//package
Section 236
//BGM_DEEP (BGM_DEEP)
package {
import flash.media.*;
public dynamic class BGM_DEEP extends Sound {
}
}//package
Section 237
//BGM_ENDING (BGM_ENDING)
package {
import flash.media.*;
public dynamic class BGM_ENDING extends Sound {
}
}//package
Section 238
//BGM_LIVELY (BGM_LIVELY)
package {
import flash.media.*;
public dynamic class BGM_LIVELY extends Sound {
}
}//package
Section 239
//BGM_MAIN_MELODY (BGM_MAIN_MELODY)
package {
import flash.media.*;
public dynamic class BGM_MAIN_MELODY extends Sound {
}
}//package
Section 240
//BGM_MYSTERIOUS (BGM_MYSTERIOUS)
package {
import flash.media.*;
public dynamic class BGM_MYSTERIOUS extends Sound {
}
}//package
Section 241
//BGM_SPARSE (BGM_SPARSE)
package {
import flash.media.*;
public dynamic class BGM_SPARSE extends Sound {
}
}//package
Section 242
//BGM_VOLCANO (BGM_VOLCANO)
package {
import flash.media.*;
public dynamic class BGM_VOLCANO extends Sound {
}
}//package
Section 243
//BossMC (BossMC)
package {
import flash.display.*;
public dynamic class BossMC extends MovieClip {
public var boss_animations_mc:MovieClip;
}
}//package
Section 244
//CoralFishMC (CoralFishMC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class CoralFishMC extends MovieClip {
public var coral_fish_gfx_mc:MovieClip;
public function CoralFishMC(){
addFrameScript(0, frame1, 20, frame21, 26, frame27, 31, frame32);
}
function frame1(){
stop();
}
function frame21(){
stop();
}
function frame27(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame32(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 245
//CoralMC (CoralMC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class CoralMC extends MovieClip {
public var coral_fish_front_layer_mc:MovieClip;
public var coral_fish_back_layer_mc:MovieClip;
public var coral_grafix_mc:MovieClip;
public function CoralMC(){
addFrameScript(0, frame1, 19, frame20, 30, frame31, 60, frame61);
}
function frame1(){
stop();
}
function frame20(){
stop();
}
function frame31(){
gotoAndStop("off");
}
function frame61(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 246
//EelChomperFishMC (EelChomperFishMC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class EelChomperFishMC extends MovieClip {
public var clickarea_mc:MovieClip;
public var blink_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function EelChomperFishMC(){
addFrameScript(0, frame1, 94, frame95, 104, frame105, 121, frame122, 168, frame169, 212, frame213, 233, frame234, 252, frame253, 261, frame262, 266, frame267);
}
function frame169(){
stop();
}
function frame95(){
gotoAndPlay("swim");
}
function frame213(){
this.dispatchEvent(new Event("FISH_BITE"));
}
function frame105(){
gotoAndPlay("run");
}
function frame1(){
stop();
}
function frame234(){
this.dispatchEvent(new Event("FISH_BITE"));
}
function frame122(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame253(){
this.dispatchEvent(new Event("FISH_BITE"));
}
function frame262(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame267(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 247
//EggLargeMC (EggLargeMC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class EggLargeMC extends MovieClip {
public var clickarea_mc:MovieClip;
public var egg_graphics_mc:MovieClip;
public function EggLargeMC(){
addFrameScript(0, frame1, 15, frame16, 23, frame24, 59, frame60, 104, frame105);
}
function frame105(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame24(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame60(){
stop();
}
}
}//package
Section 248
//EggMediumMC (EggMediumMC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class EggMediumMC extends MovieClip {
public var clickarea_mc:MovieClip;
public var egg_graphics_mc:MovieClip;
public function EggMediumMC(){
addFrameScript(0, frame1, 15, frame16, 23, frame24, 59, frame60, 104, frame105);
}
function frame105(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame24(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame60(){
stop();
}
}
}//package
Section 249
//EggSmallMC (EggSmallMC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class EggSmallMC extends MovieClip {
public var clickarea_mc:MovieClip;
public var egg_graphics_mc:MovieClip;
public function EggSmallMC(){
addFrameScript(0, frame1, 15, frame16, 23, frame24, 59, frame60, 104, frame105);
}
function frame105(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame24(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame60(){
stop();
}
}
}//package
Section 250
//FattyGulperFishMC (FattyGulperFishMC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class FattyGulperFishMC extends MovieClip {
public var clickarea_mc:MovieClip;
public var blink_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function FattyGulperFishMC(){
addFrameScript(0, frame1, 63, frame64, 77, frame78, 105, frame106, 119, frame120, 136, frame137, 143, frame144, 164, frame165, 169, frame170, 177, frame178);
}
function frame144(){
gotoAndPlay("swim");
}
function frame64(){
gotoAndPlay("swim");
}
function frame78(){
gotoAndPlay("run");
}
function frame165(){
gotoAndPlay("gulp");
}
function frame170(){
stop();
}
function frame178(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame106(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame1(){
stop();
}
function frame120(){
stop();
}
function frame137(){
stop();
}
}
}//package
Section 251
//FX_CLICK (FX_CLICK)
package {
import flash.media.*;
public dynamic class FX_CLICK extends Sound {
}
}//package
Section 252
//FX_EXCRETE (FX_EXCRETE)
package {
import flash.media.*;
public dynamic class FX_EXCRETE extends Sound {
}
}//package
Section 253
//FX_FISH_GULP (FX_FISH_GULP)
package {
import flash.media.*;
public dynamic class FX_FISH_GULP extends Sound {
}
}//package
Section 254
//FX_FISH_GULP_DEEP (FX_FISH_GULP_DEEP)
package {
import flash.media.*;
public dynamic class FX_FISH_GULP_DEEP extends Sound {
}
}//package
Section 255
//FX_FISH_INHALE (FX_FISH_INHALE)
package {
import flash.media.*;
public dynamic class FX_FISH_INHALE extends Sound {
}
}//package
Section 256
//FX_FISH_MUNCH (FX_FISH_MUNCH)
package {
import flash.media.*;
public dynamic class FX_FISH_MUNCH extends Sound {
}
}//package
Section 257
//FX_FISH_POISONED (FX_FISH_POISONED)
package {
import flash.media.*;
public dynamic class FX_FISH_POISONED extends Sound {
}
}//package
Section 258
//FX_FISH_RUSH (FX_FISH_RUSH)
package {
import flash.media.*;
public dynamic class FX_FISH_RUSH extends Sound {
}
}//package
Section 259
//FX_FISH_SMACK_BIG (FX_FISH_SMACK_BIG)
package {
import flash.media.*;
public dynamic class FX_FISH_SMACK_BIG extends Sound {
}
}//package
Section 260
//FX_FISH_SMACK_SMALL (FX_FISH_SMACK_SMALL)
package {
import flash.media.*;
public dynamic class FX_FISH_SMACK_SMALL extends Sound {
}
}//package
Section 261
//FX_PLANKTON_PICKUP_0 (FX_PLANKTON_PICKUP_0)
package {
import flash.media.*;
public dynamic class FX_PLANKTON_PICKUP_0 extends Sound {
}
}//package
Section 262
//FX_PLANKTON_PICKUP_0b (FX_PLANKTON_PICKUP_0b)
package {
import flash.media.*;
public dynamic class FX_PLANKTON_PICKUP_0b extends Sound {
}
}//package
Section 263
//FX_PLANKTON_PICKUP_1 (FX_PLANKTON_PICKUP_1)
package {
import flash.media.*;
public dynamic class FX_PLANKTON_PICKUP_1 extends Sound {
}
}//package
Section 264
//FX_PLANKTON_PICKUP_1b (FX_PLANKTON_PICKUP_1b)
package {
import flash.media.*;
public dynamic class FX_PLANKTON_PICKUP_1b extends Sound {
}
}//package
Section 265
//FX_PLANKTON_PICKUP_2 (FX_PLANKTON_PICKUP_2)
package {
import flash.media.*;
public dynamic class FX_PLANKTON_PICKUP_2 extends Sound {
}
}//package
Section 266
//FX_PLANKTON_PICKUP_2b (FX_PLANKTON_PICKUP_2b)
package {
import flash.media.*;
public dynamic class FX_PLANKTON_PICKUP_2b extends Sound {
}
}//package
Section 267
//FX_PLANKTON_PICKUP_POISON (FX_PLANKTON_PICKUP_POISON)
package {
import flash.media.*;
public dynamic class FX_PLANKTON_PICKUP_POISON extends Sound {
}
}//package
Section 268
//FX_POLYP_EAT_RIGHT (FX_POLYP_EAT_RIGHT)
package {
import flash.media.*;
public dynamic class FX_POLYP_EAT_RIGHT extends Sound {
}
}//package
Section 269
//FX_POLYP_EAT_WRONG (FX_POLYP_EAT_WRONG)
package {
import flash.media.*;
public dynamic class FX_POLYP_EAT_WRONG extends Sound {
}
}//package
Section 270
//FX_POLYP_GRABBED (FX_POLYP_GRABBED)
package {
import flash.media.*;
public dynamic class FX_POLYP_GRABBED extends Sound {
}
}//package
Section 271
//FX_POLYP_GROW_LARGE (FX_POLYP_GROW_LARGE)
package {
import flash.media.*;
public dynamic class FX_POLYP_GROW_LARGE extends Sound {
}
}//package
Section 272
//FX_POLYP_GROW_MEDIUM (FX_POLYP_GROW_MEDIUM)
package {
import flash.media.*;
public dynamic class FX_POLYP_GROW_MEDIUM extends Sound {
}
}//package
Section 273
//FX_POLYP_GROW_SMALL (FX_POLYP_GROW_SMALL)
package {
import flash.media.*;
public dynamic class FX_POLYP_GROW_SMALL extends Sound {
}
}//package
Section 274
//FX_POLYP_POISONED (FX_POLYP_POISONED)
package {
import flash.media.*;
public dynamic class FX_POLYP_POISONED extends Sound {
}
}//package
Section 275
//FX_POLYP_STUCK (FX_POLYP_STUCK)
package {
import flash.media.*;
public dynamic class FX_POLYP_STUCK extends Sound {
}
}//package
Section 276
//FX_SIZZLE (FX_SIZZLE)
package {
import flash.media.*;
public dynamic class FX_SIZZLE extends Sound {
}
}//package
Section 277
//FX_SLURP (FX_SLURP)
package {
import flash.media.*;
public dynamic class FX_SLURP extends Sound {
}
}//package
Section 278
//FX_SLURP2 (FX_SLURP2)
package {
import flash.media.*;
public dynamic class FX_SLURP2 extends Sound {
}
}//package
Section 279
//FX_SOFT_DROP (FX_SOFT_DROP)
package {
import flash.media.*;
public dynamic class FX_SOFT_DROP extends Sound {
}
}//package
Section 280
//FX_WOOSH_3 (FX_WOOSH_3)
package {
import flash.media.*;
public dynamic class FX_WOOSH_3 extends Sound {
}
}//package
Section 281
//FX_WOOSH_SOFT (FX_WOOSH_SOFT)
package {
import flash.media.*;
public dynamic class FX_WOOSH_SOFT extends Sound {
}
}//package
Section 282
//GooBlob_1_MC (GooBlob_1_MC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class GooBlob_1_MC extends MovieClip {
public var goo_frames_mc:MovieClip;
public var no_grow_area_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function GooBlob_1_MC(){
addFrameScript(1, frame2, 10, frame11);
}
function frame2(){
stop();
}
function frame11(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 283
//GooBlob_10_MC (GooBlob_10_MC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class GooBlob_10_MC extends MovieClip {
public var goo_frames_mc:MovieClip;
public var no_grow_area_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function GooBlob_10_MC(){
addFrameScript(1, frame2, 10, frame11);
}
function frame2(){
stop();
}
function frame11(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 284
//GooBlob_11_MC (GooBlob_11_MC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class GooBlob_11_MC extends MovieClip {
public var goo_frames_mc:MovieClip;
public var no_grow_area_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function GooBlob_11_MC(){
addFrameScript(1, frame2, 10, frame11);
}
function frame2(){
stop();
}
function frame11(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 285
//GooBlob_12_MC (GooBlob_12_MC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class GooBlob_12_MC extends MovieClip {
public var goo_frames_mc:MovieClip;
public var no_grow_area_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function GooBlob_12_MC(){
addFrameScript(1, frame2, 10, frame11);
}
function frame2(){
stop();
}
function frame11(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 286
//GooBlob_13_MC (GooBlob_13_MC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class GooBlob_13_MC extends MovieClip {
public var goo_frames_mc:MovieClip;
public var no_grow_area_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function GooBlob_13_MC(){
addFrameScript(1, frame2, 10, frame11);
}
function frame2(){
stop();
}
function frame11(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 287
//GooBlob_14_MC (GooBlob_14_MC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class GooBlob_14_MC extends MovieClip {
public var goo_frames_mc:MovieClip;
public var no_grow_area_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function GooBlob_14_MC(){
addFrameScript(1, frame2, 10, frame11);
}
function frame2(){
stop();
}
function frame11(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 288
//GooBlob_15_MC (GooBlob_15_MC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class GooBlob_15_MC extends MovieClip {
public var goo_frames_mc:MovieClip;
public var no_grow_area_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function GooBlob_15_MC(){
addFrameScript(1, frame2, 10, frame11);
}
function frame2(){
stop();
}
function frame11(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 289
//GooBlob_2_MC (GooBlob_2_MC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class GooBlob_2_MC extends MovieClip {
public var goo_frames_mc:MovieClip;
public var no_grow_area_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function GooBlob_2_MC(){
addFrameScript(1, frame2, 10, frame11);
}
function frame2(){
stop();
}
function frame11(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 290
//GooBlob_3_MC (GooBlob_3_MC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class GooBlob_3_MC extends MovieClip {
public var goo_frames_mc:MovieClip;
public var no_grow_area_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function GooBlob_3_MC(){
addFrameScript(1, frame2, 10, frame11);
}
function frame2(){
stop();
}
function frame11(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 291
//GooBlob_4_MC (GooBlob_4_MC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class GooBlob_4_MC extends MovieClip {
public var goo_frames_mc:MovieClip;
public var no_grow_area_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function GooBlob_4_MC(){
addFrameScript(1, frame2, 10, frame11);
}
function frame2(){
stop();
}
function frame11(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 292
//GooBlob_5_MC (GooBlob_5_MC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class GooBlob_5_MC extends MovieClip {
public var goo_frames_mc:MovieClip;
public var no_grow_area_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function GooBlob_5_MC(){
addFrameScript(1, frame2, 10, frame11);
}
function frame2(){
stop();
}
function frame11(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 293
//GooBlob_6_MC (GooBlob_6_MC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class GooBlob_6_MC extends MovieClip {
public var goo_frames_mc:MovieClip;
public var no_grow_area_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function GooBlob_6_MC(){
addFrameScript(1, frame2, 10, frame11);
}
function frame2(){
stop();
}
function frame11(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 294
//GooBlob_7_MC (GooBlob_7_MC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class GooBlob_7_MC extends MovieClip {
public var goo_frames_mc:MovieClip;
public var no_grow_area_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function GooBlob_7_MC(){
addFrameScript(1, frame2, 10, frame11);
}
function frame2(){
stop();
}
function frame11(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 295
//GooBlob_8_MC (GooBlob_8_MC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class GooBlob_8_MC extends MovieClip {
public var goo_frames_mc:MovieClip;
public var no_grow_area_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function GooBlob_8_MC(){
addFrameScript(1, frame2, 10, frame11);
}
function frame2(){
stop();
}
function frame11(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 296
//GooBlob_9_MC (GooBlob_9_MC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class GooBlob_9_MC extends MovieClip {
public var goo_frames_mc:MovieClip;
public var no_grow_area_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function GooBlob_9_MC(){
addFrameScript(1, frame2, 10, frame11);
}
function frame2(){
stop();
}
function frame11(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 297
//GooHiliteMC (GooHiliteMC)
package {
import flash.display.*;
public dynamic class GooHiliteMC extends MovieClip {
public function GooHiliteMC(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 298
//InfoFontChar (InfoFontChar)
package {
import flash.display.*;
public dynamic class InfoFontChar extends MovieClip {
public function InfoFontChar(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 299
//LilGulperFishMC (LilGulperFishMC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class LilGulperFishMC extends MovieClip {
public var clickarea_mc:MovieClip;
public var blink_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function LilGulperFishMC(){
addFrameScript(0, frame1, 36, frame37, 50, frame51, 63, frame64, 78, frame79, 99, frame100, 111, frame112, 119, frame120);
}
function frame64(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame79(){
stop();
}
function frame1(){
stop();
}
function frame100(){
gotoAndPlay("gulp");
}
function frame37(){
gotoAndPlay("swim");
}
function frame112(){
gotoAndPlay("swim");
}
function frame120(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame51(){
gotoAndPlay("run");
}
}
}//package
Section 300
//MegamouthGulperFishMC (MegamouthGulperFishMC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class MegamouthGulperFishMC extends MovieClip {
public var clickarea_mc:MovieClip;
public var blink_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function MegamouthGulperFishMC(){
addFrameScript(0, frame1, 36, frame37, 50, frame51, 64, frame65, 83, frame84, 89, frame90, 110, frame111, 122, frame123);
}
function frame65(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame84(){
stop();
}
function frame90(){
gotoAndPlay("swim");
}
function frame1(){
stop();
}
function frame111(){
stop();
}
function frame37(){
gotoAndPlay("swim");
}
function frame123(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame51(){
gotoAndPlay("run");
}
}
}//package
Section 301
//MochiBot (MochiBot)
package {
import flash.display.*;
import flash.net.*;
import flash.system.*;
public dynamic class MochiBot extends Sprite {
public static function track(_arg1:Sprite, _arg2:String):MochiBot{
var _local3:MochiBot;
var _local4:String;
var _local5:URLVariables;
var _local6:String;
var _local7:URLRequest;
var _local8:Loader;
if (Security.sandboxType == "localWithFile"){
return (null);
};
_local3 = new (MochiBot);
_arg1.addChild(_local3);
Security.allowDomain("*");
Security.allowInsecureDomain("*");
_local4 = "http://core.mochibot.com/my/core.swf";
_local5 = new URLVariables();
_local5["sb"] = Security.sandboxType;
_local5["v"] = Capabilities.version;
_local5["swfid"] = _arg2;
_local5["mv"] = "8";
_local5["fv"] = "9";
_local6 = _local3.root.loaderInfo.loaderURL;
if (_local6.indexOf("http") == 0){
_local5["url"] = _local6;
} else {
_local5["url"] = "local";
};
_local7 = new URLRequest(_local4);
_local7.contentType = "application/x-www-form-urlencoded";
_local7.method = URLRequestMethod.POST;
_local7.data = _local5;
_local8 = new Loader();
_local3.addChild(_local8);
_local8.load(_local7);
return (_local3);
}
}
}//package
Section 302
//OctoMuncherFishMC (OctoMuncherFishMC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class OctoMuncherFishMC extends MovieClip {
public var clickarea_mc:MovieClip;
public var blink_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function OctoMuncherFishMC(){
addFrameScript(0, frame1, 54, frame55, 99, frame100, 109, frame110, 122, frame123, 162, frame163, 190, frame191, 213, frame214, 218, frame219);
}
function frame163(){
stop();
}
function frame214(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame1(){
stop();
}
function frame100(){
gotoAndPlay("swim");
}
function frame110(){
gotoAndPlay("run");
}
function frame219(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame191(){
this.dispatchEvent(new Event("FISH_BITE"));
}
function frame123(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame55(){
gotoAndPlay("idle");
}
}
}//package
Section 303
//ParrotChomperFishMC (ParrotChomperFishMC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class ParrotChomperFishMC extends MovieClip {
public var clickarea_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function ParrotChomperFishMC(){
addFrameScript(0, frame1, 48, frame49, 58, frame59, 68, frame69, 115, frame116, 140, frame141, 150, frame151, 160, frame161, 170, frame171, 178, frame179, 183, frame184);
}
function frame151(){
this.dispatchEvent(new Event("FISH_BITE"));
}
function frame161(){
this.dispatchEvent(new Event("FISH_BITE"));
}
function frame171(){
this.dispatchEvent(new Event("FISH_BITE"));
}
function frame1(){
stop();
}
function frame179(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame116(){
stop();
}
function frame184(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame49(){
gotoAndPlay("swim");
}
function frame59(){
gotoAndPlay("run");
}
function frame141(){
this.dispatchEvent(new Event("FISH_BITE"));
}
function frame69(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 304
//PlanktonMC (PlanktonMC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class PlanktonMC extends MovieClip {
public var plankton_graphics_mc:MovieClip;
public function PlanktonMC(){
addFrameScript(0, frame1, 12, frame13, 20, frame21);
}
function frame1(){
stop();
}
function frame13(){
gotoAndStop("on");
}
function frame21(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 305
//PolypLargeMC (PolypLargeMC)
package {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.*;
import flash.geom.*;
import com.trickysheep.coral.world.floaties.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class PolypLargeMC extends MovieClip {
public var polyp_body_mc:MovieClip;
public var tentacles_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function PolypLargeMC(){
addFrameScript(0, frame1, 82, frame83, 95, frame96, 119, frame120, 120, frame121, 130, frame131);
}
function frame1(){
stop();
}
function frame96(){
gotoAndPlay("open");
}
function frame83(){
gotoAndPlay("open");
}
function frame120(){
this.dispatchEvent(new Event("ANIM_DONE"));
gotoAndPlay("open");
}
function frame121(){
polyp_body_mc.gotoAndPlay("die");
}
function frame131(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
public function SetTentacleColor(_arg1){
var myPolyp:*;
var in_mc = _arg1;
try {
myPolyp = Polyp(this["Polyp_Parent"]);
if (in_mc.currentFrame != (myPolyp.Color_num + 1)){
in_mc.gotoAndStop((myPolyp.Color_num + 1));
};
if (GameSettings.getInstance().getColorBlindMode()){
if (this.polyp_body_mc.symbol_mc.currentFrame != (myPolyp.Color_num + 1)){
this.polyp_body_mc.symbol_mc.gotoAndStop((myPolyp.Color_num + 1));
};
this.polyp_body_mc.symbol_mc.visible = true;
} else {
this.polyp_body_mc.symbol_mc.visible = false;
};
this.dispatchEvent(new Event("TENTACLES_READY"));
} catch(e:Error) {
};
}
}
}//package
Section 306
//PolypMediumMC (PolypMediumMC)
package {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.*;
import flash.geom.*;
import com.trickysheep.coral.world.floaties.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class PolypMediumMC extends MovieClip {
public var polyp_body_mc:MovieClip;
public var tentacles_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function PolypMediumMC(){
addFrameScript(0, frame1, 82, frame83, 95, frame96, 119, frame120, 120, frame121, 130, frame131);
}
function frame1(){
stop();
}
function frame96(){
gotoAndPlay("open");
}
function frame83(){
gotoAndPlay("open");
}
function frame120(){
this.dispatchEvent(new Event("ANIM_DONE"));
gotoAndPlay("open");
}
function frame121(){
polyp_body_mc.gotoAndPlay("die");
}
function frame131(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
public function SetTentacleColor(_arg1){
var myPolyp:*;
var in_mc = _arg1;
try {
myPolyp = Polyp(this["Polyp_Parent"]);
if (in_mc.currentFrame != (myPolyp.Color_num + 1)){
in_mc.gotoAndStop((myPolyp.Color_num + 1));
};
if (GameSettings.getInstance().getColorBlindMode()){
if (this.polyp_body_mc.symbol_mc.currentFrame != (myPolyp.Color_num + 1)){
this.polyp_body_mc.symbol_mc.gotoAndStop((myPolyp.Color_num + 1));
};
this.polyp_body_mc.symbol_mc.visible = true;
} else {
this.polyp_body_mc.symbol_mc.visible = false;
};
this.dispatchEvent(new Event("TENTACLES_READY"));
} catch(e:Error) {
};
}
}
}//package
Section 307
//PolypSmallMC (PolypSmallMC)
package {
import flash.events.*;
import flash.display.*;
import com.trickysheep.coral.*;
import flash.geom.*;
import com.trickysheep.coral.world.floaties.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.system.*;
import flash.text.*;
import flash.errors.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class PolypSmallMC extends MovieClip {
public var polyp_body_mc:MovieClip;
public var tentacles_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function PolypSmallMC(){
addFrameScript(0, frame1, 83, frame84, 96, frame97, 120, frame121, 121, frame122, 131, frame132);
}
function frame84(){
gotoAndPlay("open");
}
function frame97(){
gotoAndPlay("open");
}
function frame1(){
stop();
}
function frame122(){
polyp_body_mc.gotoAndPlay("die");
}
function frame121(){
this.dispatchEvent(new Event("ANIM_DONE"));
gotoAndPlay("open");
}
function frame132(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
public function SetTentacleColor(_arg1){
var myPolyp:*;
var in_mc = _arg1;
try {
myPolyp = Polyp(this["Polyp_Parent"]);
if (in_mc.currentFrame != (myPolyp.Color_num + 1)){
in_mc.gotoAndStop((myPolyp.Color_num + 1));
};
if (GameSettings.getInstance().getColorBlindMode()){
if (this.polyp_body_mc.symbol_mc.currentFrame != (myPolyp.Color_num + 1)){
this.polyp_body_mc.symbol_mc.gotoAndStop((myPolyp.Color_num + 1));
};
this.polyp_body_mc.symbol_mc.visible = true;
} else {
this.polyp_body_mc.symbol_mc.visible = false;
};
this.dispatchEvent(new Event("TENTACLES_READY"));
} catch(e:Error) {
};
}
}
}//package
Section 308
//ReefMC (ReefMC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class ReefMC extends MovieClip {
public var ground_area_mc:MovieClip;
public function ReefMC(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
this.dispatchEvent(new Event("MC_LOADED"));
}
}
}//package
Section 309
//ScoreFontChar (ScoreFontChar)
package {
import flash.display.*;
public dynamic class ScoreFontChar extends MovieClip {
public function ScoreFontChar(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 310
//SquidMuncherFishMC (SquidMuncherFishMC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class SquidMuncherFishMC extends MovieClip {
public var clickarea_mc:MovieClip;
public var blink_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function SquidMuncherFishMC(){
addFrameScript(0, frame1, 32, frame33, 42, frame43, 55, frame56, 102, frame103, 158, frame159, 180, frame181, 185, frame186);
}
function frame159(){
this.dispatchEvent(new Event("FISH_BITE"));
}
function frame181(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame186(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame1(){
stop();
}
function frame103(){
stop();
}
function frame43(){
gotoAndPlay("run");
}
function frame33(){
gotoAndPlay("swim");
}
function frame56(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
}
}//package
Section 311
//TinyPoisonFishMC (TinyPoisonFishMC)
package {
import flash.events.*;
import flash.display.*;
public dynamic class TinyPoisonFishMC extends MovieClip {
public var clickarea_mc:MovieClip;
public var hitarea_mc:MovieClip;
public function TinyPoisonFishMC(){
addFrameScript(0, frame1, 48, frame49, 58, frame59, 64, frame65, 93, frame94, 104, frame105, 134, frame135, 151, frame152, 156, frame157);
}
function frame152(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame65(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame157(){
this.dispatchEvent(new Event("ANIM_DONE"));
stop();
}
function frame94(){
stop();
}
function frame105(){
this.dispatchEvent(new Event("FISH_POISON"));
}
function frame1(){
stop();
}
function frame49(){
gotoAndPlay("swim");
}
function frame135(){
this.dispatchEvent(new Event("FISH_POISON"));
}
function frame59(){
gotoAndPlay("run");
}
}
}//package