Section 1
//RadixSort (com.midasplayer.algorithm.RadixSort)
package com.midasplayer.algorithm {
public class RadixSort {
private const _q0:Array;
private const _q1:Array;
private var _maxElements:int;
private var _data:Array;
private var _np0:Array;
private var _np1:Array;
public function RadixSort(_arg1:int=-1){
_q0 = new Array(0x0100);
_q1 = new Array(0x0100);
super();
_maxElements = _arg1;
if (_maxElements == -1){
return;
};
_np0 = new Array((_maxElements + 1));
_np1 = new Array((_maxElements + 1));
_data = new Array(_maxElements);
}
public function sort16bit(_arg1:Array, _arg2:Function):Array{
var _local3:int;
var _local7:int;
_local3 = _arg1.length;
var _local4:Array = new Array(_local3);
if (_maxElements == -1){
_np0 = new Array((_local3 + 1));
_np1 = new Array((_local3 + 1));
_data = new Array(_local3);
};
var _local5:int;
var _local6:int;
var _local8:int;
while (_local8 < 0x0100) {
_q0[_local8] = 0;
var _temp1 = _local8;
_local8 = (_local8 + 1);
var _local10 = _temp1;
_q1[_local10] = 0;
};
while (_local5 < _local3) {
_local7 = ((_data[_local5] = _arg2(_arg1[_local5])) & 0xFF);
_np0[int((_local5 + 1))] = _q0[_local7];
var _temp2 = _local7;
_local5 = (_local5 + 1);
_q0[_temp2] = int(_local5);
};
_local5 = 0x0100;
while (_local5--) {
_local6 = _q0[_local5];
while (_local6) {
_local7 = ((_data[int((_local6 - 1))] & 0xFF00) >> 8);
_np1[_local6] = _q1[_local7];
_local6 = _np0[(_q1[_local7] = _local6)];
};
};
_local5 = 0;
_local7 = 0;
var _local9:int;
while (_local5 < 0x0100) {
var _temp3 = _local5;
_local5 = (_local5 + 1);
_local6 = _q1[int(_temp3)];
while (_local6) {
var _temp4 = _local9;
_local9 = (_local9 + 1);
_local10 = _temp4;
_local4[_local10] = _arg1[int((_local6 - 1))];
_local6 = _np1[_local6];
};
};
return (_local4);
}
}
}//package com.midasplayer.algorithm
Section 2
//Debug (com.midasplayer.debug.Debug)
package com.midasplayer.debug {
public class Debug {
private static var s_assertHandler:IAssertHandler = null;
public static function setAssertHandler(_arg1:IAssertHandler):void{
s_assertHandler = _arg1;
}
public static function assert(_arg1:Boolean, _arg2:String):void{
var condition = _arg1;
var message = _arg2;
if (condition){
return;
};
if (s_assertHandler != null){
s_assertHandler.assert(message);
return;
};
try {
throw (new Error("StackTrace"));
} catch(e:Error) {
trace(((("Assertion failed: " + message) + "\n") + e.getStackTrace()));
};
}
}
}//package com.midasplayer.debug
Section 3
//IAssertHandler (com.midasplayer.debug.IAssertHandler)
package com.midasplayer.debug {
public interface IAssertHandler {
function assert(_arg1:String):void;
}
}//package com.midasplayer.debug
Section 4
//DebugGameComm (com.midasplayer.game.comm.DebugGameComm)
package com.midasplayer.game.comm {
import com.midasplayer.debug.*;
public class DebugGameComm implements IGameComm {
private var _state:int;// = 0
private var _gameData:String;
private var _playDatas:Array;
public static const Started:int = 1;
public static const Quited:int = 3;
public static const Ended:int = 2;
public static const NotStarted:int = 0;
public function DebugGameComm(_arg1:String){
_playDatas = new Array();
super();
_gameData = _arg1;
}
public function gameQuit():void{
Debug.assert((_state == Ended), "Trying to quit the game before it has been ended.");
_state = Quited;
}
public function gameStart():void{
Debug.assert((_state == NotStarted), "Trying to start the game when it's already started.");
_state = Started;
}
public function get state():int{
return (_state);
}
public function get playDatas():Array{
return (_playDatas);
}
public function gameEnd(_arg1:uint):void{
Debug.assert((_state == Started), "Trying to end a game that is not in the started state.");
_state = Ended;
}
public function getGameData():String{
return (_gameData);
}
public function addPlayData(_arg1:String):void{
Debug.assert(!((_state == NotStarted)), "Trying to add playdata before the game has been started.");
Debug.assert(!((_arg1 == null)), "Trying to add a playdata that is null.");
_playDatas.push(_arg1);
}
}
}//package com.midasplayer.game.comm
Section 5
//GameComm (com.midasplayer.game.comm.GameComm)
package com.midasplayer.game.comm {
import com.midasplayer.debug.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
public class GameComm implements IGameComm {
private var _state:int;// = 0
private static const _Quitted:int = 3;
private static const _Started:int = 1;
private static const _Ended:int = 2;
private static const _NotStarted:int = 0;
public function gameQuit():void{
Debug.assert((_state == _Ended), "Quitting the game before it has been ended.");
setTimeout(_quit, 2000);
_state = _Quitted;
}
private function _quit():void{
fscommand("gameQuit", "");
}
public function gameStart():void{
Debug.assert((_state == _NotStarted), "Trying to start the game when it's already started.");
fscommand("gameStart", "");
_state = _Started;
}
public function gameEnd(_arg1:uint):void{
Debug.assert((_state == _Started), "Trying to end a game that is not in the started state.");
fscommand("gameEnd", ("" + _arg1));
_state = _Ended;
}
public function getGameData():String{
var _local1:Object = ExternalInterface.call("getGameData");
if (_local1 == null){
throw (new Error("The getGameData external interface call returned null."));
};
if (_local1.success == false){
throw (new Error("The getGameData returned object is not success."));
};
if (_local1.message == null){
throw (new Error("The GameData returned object has a null message."));
};
return (_local1.message);
}
public function addPlayData(_arg1:String):void{
Debug.assert(!((_state == _NotStarted)), "Trying to add playdata before the game has been started.");
ExternalInterface.call("playData", _arg1);
}
public static function isAvailable():Boolean{
return (ExternalInterface.available);
}
}
}//package com.midasplayer.game.comm
Section 6
//GameDataParser (com.midasplayer.game.comm.GameDataParser)
package com.midasplayer.game.comm {
import com.midasplayer.debug.*;
public class GameDataParser {
private var _seed:int;// = 0
private var _textElements:XMLList;
private var _gameData:XML;
public function GameDataParser(_arg1:String){
Debug.assert(!((_arg1 == null)), "Could not parse the game data, the xml parameter is null.");
_gameData = new XML(_arg1);
Debug.assert((_gameData.length() == 1), "The game data XML should only have 1 root child.");
_seed = parseInt(_gameData.attribute("randomseed"));
Debug.assert(!((_seed == 0)), "The game data randomseed attribute is 0, this may result in complete randomness.");
_textElements = _gameData.child("text");
}
public function getText(_arg1:String):String{
var texts:XMLList;
var id = _arg1;
texts = _textElements.(@id == id);
Debug.assert((texts.length() == 1), (("Could not find the text element (or found more than 1) with attribute id '" + id) + "' in the game data."));
return (texts.text());
}
public function getElementTextAsInt(_arg1:String):int{
var _local2:XMLList;
_local2 = _getOneElement(_arg1);
var _local3:Number = parseInt(_local2.text());
Debug.assert(!(isNaN(_local3)), ((("Could not parse a game data property as int '" + _arg1) + "' value: ") + _local2.text()));
return (int(_local3));
}
private function _getOneElement(_arg1:String):XMLList{
var _local2:XMLList = _gameData.child(_arg1);
Debug.assert((_local2.length() == 1), (("Could not find the element (or found more than 1) with the name '" + _arg1) + "' in the game data."));
return (_local2);
}
public function getElementTextAsBool(_arg1:String):Boolean{
var _local2:String = getElementTextAsString(_arg1).toLowerCase();
Debug.assert((((((((_local2 == "0")) || ((_local2 == "1")))) || ((_local2 == "false")))) || ((_local2 == "true"))), ((("Could not parse a boolean, the value should be 'true', 'false', '0' or '1'. Element: " + _arg1) + ", value: ") + _local2));
return ((((_local2 == "true")) || ((_local2 == "1"))));
}
public function get randomSeed():int{
return (_seed);
}
public function getElementTextAsString(_arg1:String):String{
return (_getOneElement(_arg1).text());
}
}
}//package com.midasplayer.game.comm
Section 7
//IGameComm (com.midasplayer.game.comm.IGameComm)
package com.midasplayer.game.comm {
public interface IGameComm {
function gameStart():void;
function gameQuit():void;
function getGameData():String;
function gameEnd(_arg1:uint):void;
function addPlayData(_arg1:String):void;
}
}//package com.midasplayer.game.comm
Section 8
//IPlayData (com.midasplayer.game.comm.IPlayData)
package com.midasplayer.game.comm {
public interface IPlayData {
function toPlayData():String;
function getTick():int;
function execute():void;
}
}//package com.midasplayer.game.comm
Section 9
//Engine (com.midasplayer.game.engine.Engine)
package com.midasplayer.game.engine {
import com.midasplayer.util.state.*;
import com.midasplayer.timing.*;
import com.midasplayer.game.timer.*;
import com.midasplayer.game.comm.*;
import com.midasplayer.debug.*;
import flash.display.*;
public class Engine extends Sprite implements IRenderable, ITickable, IAutomataHook, IGameTimerHook {
private const _eventSink:EventSink;
private var _gameOverTimer:IGameTimer;
private var _engineTimer:IGameTimer;
private var _gameView:IRenderable;
private var _automata:IAutomata;
private var _first:Boolean;// = true
private var _gameOverView:IRenderable;
private var _introView:IRenderable;
private var _gameOver:IRunnable;
private var _gameCommunicator:IGameComm;
private var _game:IGame;
private var _introTimer:IGameTimer;
private var _intro:IRunnable;
private var _gameTimer:IGameTimer;
private var _timerFactory:IGameTimerFactory;
private static const _Intro2Game:Event = new Event(0);
private static const _Game2GameOver:Event = new Event(1);
private static const _GameOver2Quit:Event = new Event(2);
public function Engine(_arg1:IRunnable, _arg2:IRenderable, _arg3:IGame, _arg4:IRenderable, _arg5:IRunnable, _arg6:IRenderable, _arg7:IGameTimerFactory, _arg8:IGameComm):void{
_eventSink = new EventSink();
super();
Debug.assert(!((_arg1 == null)), "The intro is null.");
Debug.assert(!((_arg2 == null)), "The intro game view is null.");
Debug.assert(!((_arg3 == null)), "The game is null.");
Debug.assert(!((_arg4 == null)), "The game view is null.");
Debug.assert(!((_arg5 == null)), "The game over is null.");
Debug.assert(!((_arg6 == null)), "The game over view is null.");
Debug.assert(!((_arg7 == null)), "The timer factory is null.");
Debug.assert(!((_arg8 == null)), "The game communicator is null.");
_intro = _arg1;
_introView = _arg2;
_game = _arg3;
_gameView = _arg4;
_gameOver = _arg5;
_gameOverView = _arg6;
_gameCommunicator = _arg8;
_timerFactory = _arg7;
_automata = new Automata(_eventSink, _intro, this);
_automata.addEdge(_intro, _Intro2Game, _game);
_automata.addEdge(_game, _Game2GameOver, _gameOver);
_automata.addEdge(_gameOver, _GameOver2Quit, null);
}
private function _onStopEngine():void{
onStopEngine();
_gameCommunicator.gameQuit();
}
protected function onStopGameOver():void{
}
private function _onStartGameOver():void{
onStartGameOver();
_gameOverTimer = _timerFactory.create(_gameOver);
}
protected function onRunEngine():void{
}
private function _updateStates():void{
var _local1:IState = _automata.getState();
if ((((_local1 == _intro)) && (_intro.isDone()))){
_eventSink.set(_Intro2Game);
} else {
if ((((_local1 == _game)) && (_game.isDone()))){
_eventSink.set(_Game2GameOver);
} else {
if ((((_local1 == _gameOver)) && (_gameOver.isDone()))){
_eventSink.set(_GameOver2Quit);
};
};
};
}
protected function onStopGame():void{
}
protected function onPreTickGame(_arg1:int):void{
}
public function render(_arg1:int, _arg2:Number):void{
}
public function onLeave(_arg1:IState):void{
if (_arg1 == _intro){
_onStopIntro();
} else {
if (_arg1 == _game){
_onStopGame();
} else {
if (_arg1 == _gameOver){
_onStopGameOver();
};
};
};
if (_arg1 == null){
_onStopEngine();
};
}
protected function onRunIntro():void{
}
protected function onStopEngine():void{
}
public function tick(_arg1:int):void{
}
private function _onStopGameOver():void{
onStopGameOver();
}
private function _onStartGame():void{
_gameCommunicator.gameStart();
onStartGame();
_gameTimer = _timerFactory.create(_game, this);
}
protected function onRunGameOver():void{
}
private function _onStopIntro():void{
onStopIntro();
}
protected function onRunGame():void{
}
private function _onRunGame():void{
onRunGame();
_gameTimer.step();
_gameView.render(_gameTimer.getTick(), _gameTimer.getAlpha());
}
public function onEnter(_arg1:IState):void{
if (_arg1 == _intro){
_onStartIntro();
} else {
if (_arg1 == _game){
_onStartGame();
} else {
if (_arg1 == _gameOver){
_onStartGameOver();
};
};
};
}
private function _onRunGameOver():void{
onRunGameOver();
_gameOverTimer.step();
_gameOverView.render(_gameOverTimer.getTick(), _gameOverTimer.getAlpha());
}
private function _onRunIntro():void{
onRunIntro();
_introTimer.step();
_introView.render(_introTimer.getTick(), _introTimer.getAlpha());
}
private function _onStartIntro():void{
onStartIntro();
_introTimer = _timerFactory.create(_intro);
}
public function update():void{
if (_first){
_onStartEngine();
_first = false;
} else {
Debug.assert(!((_automata.getState() == null)), "Running the engine after the automata has terminated.");
};
_updateStates();
_automata.update();
_onRunEngine();
var _local1:IState = _automata.getState();
if (_local1 == null){
_onStopEngine();
return;
};
if (_local1 == _intro){
_onRunIntro();
} else {
if (_local1 == _game){
_onRunGame();
} else {
if (_local1 == _gameOver){
_onRunGameOver();
} else {
Debug.assert(false, "Encountered an unknown game state.");
};
};
};
}
private function _onStopGame():void{
onStopGame();
_gameCommunicator.gameEnd(_game.getFinalScore());
}
private function _onRunEngine():void{
onRunEngine();
_engineTimer.step();
render(_engineTimer.getTick(), _engineTimer.getAlpha());
}
protected function onStartGameOver():void{
}
protected function onStartGame():void{
}
public function getState():IState{
return (_automata.getState());
}
public function postTick(_arg1:int):void{
onPostTickGame(_arg1);
}
public function preTick(_arg1:int):void{
onPreTickGame(_arg1);
}
protected function onStartEngine():void{
}
private function _onStartEngine():void{
onStartEngine();
_engineTimer = _timerFactory.create(this);
}
protected function onStartIntro():void{
}
protected function onStopIntro():void{
}
protected function onPostTickGame(_arg1:int):void{
}
}
}//package com.midasplayer.game.engine
Section 10
//IGame (com.midasplayer.game.engine.IGame)
package com.midasplayer.game.engine {
public interface IGame extends IRunnable {
function getFinalScore():int;
}
}//package com.midasplayer.game.engine
Section 11
//IPlayDataRecorder (com.midasplayer.game.engine.IPlayDataRecorder)
package com.midasplayer.game.engine {
import com.midasplayer.game.comm.*;
public interface IPlayDataRecorder {
function add(_arg1:IPlayData):void;
function toPlayDataXml():String;
}
}//package com.midasplayer.game.engine
Section 12
//IRunnable (com.midasplayer.game.engine.IRunnable)
package com.midasplayer.game.engine {
import com.midasplayer.util.state.*;
import com.midasplayer.timing.*;
public interface IRunnable extends ITickable, IState {
function isDone():Boolean;
}
}//package com.midasplayer.game.engine
Section 13
//PlayDataRecorder (com.midasplayer.game.engine.PlayDataRecorder)
package com.midasplayer.game.engine {
import com.midasplayer.game.comm.*;
import com.midasplayer.debug.*;
public class PlayDataRecorder implements IPlayDataRecorder {
private var _communicator:IGameComm;
private var _playDatas:Array;
public function PlayDataRecorder(_arg1:IGameComm){
_playDatas = new Array();
super();
_communicator = _arg1;
}
public function toPlayDataXml():String{
var _local3:IPlayData;
var _local1 = (((("<client action=\"gameover\" slotId=\"57788732\" playId=\"0\" request=\"3\" magic=\"813666108\">\n" + "<gameover time=\"2009-05-29 11:40:16\" lastplaydataid=\"") + _playDatas.length) + "\">\n") + "<result><![CDATA[100845]]></result>\n");
var _local2 = 1;
for each (_local3 in _playDatas) {
_local1 = (_local1 + ((((" <entry id=\"" + _local2) + "\" time=\"2009-05-24 01:34:00\"><![CDATA[") + _local3.toPlayData()) + "]]></entry>\n"));
_local2++;
};
_local1 = (_local1 + ((((((("</gameover>\n" + "<process total=\"1\" method=\"1\">\n") + " <p time=\"2009-05-29 11:36:03\" action=\"error\" code=\"107\" pid=\"0\" />\n") + "</process>\n") + "<focus total=\"1\">\n") + " <switch time=\"2009-05-29 11:36:03\" pid=\"5768\" title=\"King.com (jk.dev.midasplayer.com) - Microsoft Internet Explorer\" process=\"C:\Program\Internet Explorer\iexplore.exe\" />\n") + "</focus>\n") + "</client>\n"));
return (_local1);
}
public function add(_arg1:IPlayData):void{
Debug.assert(!((_arg1 == null)), "Trying to add a null play data.");
_playDatas.push(_arg1);
_communicator.addPlayData((_arg1.toPlayData() + "\n"));
}
}
}//package com.midasplayer.game.engine
Section 14
//GameTimer (com.midasplayer.game.timer.GameTimer)
package com.midasplayer.game.timer {
import com.midasplayer.timing.*;
import com.midasplayer.time.*;
import com.midasplayer.debug.*;
public class GameTimer implements IGameTimer {
private var _tickInterval:int;// = 0
private var _timer:ITimer;
private var _maxTicks:int;// = 0
private var _hook:IGameTimerHook;
private var _internalTick:int;// = 0
private var _tick:int;// = 0
private var _tickable:ITickable;
public function GameTimer(_arg1:ITimer, _arg2:ITickable, _arg3:int, _arg4:int, _arg5:IGameTimerHook=null){
_timer = _arg1;
_tickable = _arg2;
_tickInterval = _arg3;
_maxTicks = _arg4;
_hook = _arg5;
}
public function getTime():Number{
return ((_tick + getAlpha()));
}
public function getAlpha():Number{
return (Math.min(((_timer.getTime() / _tickInterval) - _internalTick), 1));
}
public function reset():void{
var _local1:uint = _timer.getTime();
if (_local1 < _tickInterval){
return;
};
_internalTick = ((_local1 / _tickInterval) - 1);
}
public function getTick():int{
return (_tick);
}
public function step():void{
var _local1:uint = _timer.getTime();
if (_local1 < (_internalTick * _tickInterval)){
Debug.assert(false, ((("The time has decreased since last step call: " + _local1) + " < ") + (_internalTick * _tickInterval)));
};
var _local2:uint = (_local1 - (_internalTick * _tickInterval));
if (_local2 < _tickInterval){
return;
};
var _local3:uint = (_tick + _maxTicks);
while ((((_local2 >= _tickInterval)) && ((_tick < _local3)))) {
_tick++;
_internalTick++;
_local2 = (_local2 - _tickInterval);
if (_hook != null){
_hook.preTick(_tick);
};
_tickable.tick(_tick);
if (_hook != null){
_hook.postTick(_tick);
};
};
}
}
}//package com.midasplayer.game.timer
Section 15
//GameTimerFactory (com.midasplayer.game.timer.GameTimerFactory)
package com.midasplayer.game.timer {
import com.midasplayer.timing.*;
import com.midasplayer.time.*;
public class GameTimerFactory implements IGameTimerFactory {
private var _tickInterval:int;// = 0
private var _timer:ITimer;
private var _maxTicks:int;// = 0
public function GameTimerFactory(_arg1:ITimer, _arg2:int, _arg3:int){
_timer = _arg1;
_tickInterval = _arg2;
_maxTicks = _arg3;
}
public function create(_arg1:ITickable, _arg2:IGameTimerHook=null):IGameTimer{
var _local3:IGameTimer = new GameTimer(_timer, _arg1, _tickInterval, _maxTicks, _arg2);
_local3.reset();
return (_local3);
}
}
}//package com.midasplayer.game.timer
Section 16
//IGameTimer (com.midasplayer.game.timer.IGameTimer)
package com.midasplayer.game.timer {
public interface IGameTimer {
function getTime():Number;
function getAlpha():Number;
function getTick():int;
function step():void;
function reset():void;
}
}//package com.midasplayer.game.timer
Section 17
//IGameTimerFactory (com.midasplayer.game.timer.IGameTimerFactory)
package com.midasplayer.game.timer {
import com.midasplayer.timing.*;
public interface IGameTimerFactory {
function create(_arg1:ITickable, _arg2:IGameTimerHook=null):IGameTimer;
}
}//package com.midasplayer.game.timer
Section 18
//IGameTimerHook (com.midasplayer.game.timer.IGameTimerHook)
package com.midasplayer.game.timer {
public interface IGameTimerHook {
function preTick(_arg1:int):void;
function postTick(_arg1:int):void;
}
}//package com.midasplayer.game.timer
Section 19
//BitmapNumber (com.midasplayer.jeweldefence.bitmaprender.BitmapNumber)
package com.midasplayer.jeweldefence.bitmaprender {
public class BitmapNumber {
private var bitmapRenderSequence:BitmapRenderSequence;
public function BitmapNumber(_arg1:BitmapRenderSequence){
this.bitmapRenderSequence = _arg1;
}
public function renderCentre(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int):void{
var _local10:int;
var _local11:int;
var _local6:int = (Math.log(_arg1) * Math.LOG10E);
var _local7:int = -(int((((_local6 + 1) * _arg4) / 2)));
var _local8:int = -(int((_arg5 / 2)));
var _local9:int;
while (_local6 >= 0) {
_local10 = Math.pow(10, _local6);
if (_arg1 > 0){
_local11 = int((_arg1 / _local10));
} else {
_local11 = 0;
};
_arg1 = (_arg1 - (_local11 * _local10));
bitmapRenderSequence.render(_local11, ((_arg2 + (_local9 * _arg4)) + _local7), (_arg3 + _local8));
_local6--;
_local9++;
};
}
public function renderTimeTopLeft(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int):void{
var _local6:int = (_arg1 / _arg2);
var _local7:int = (_local6 / 60);
_local6 = (_local6 - (_local7 * 60));
renderTopLeft(_local7, _arg3, _arg4, _arg5, 1);
bitmapRenderSequence.render(10, (_arg3 + (1 * _arg5)), _arg4);
renderTopLeft(_local6, (_arg3 + (2 * _arg5)), _arg4, _arg5, 2);
}
public function renderTopLeft(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int=0):void{
var _local8:int;
var _local9:int;
var _local10:int;
var _local11:int;
var _local6:int;
var _local7:int = (Math.log(_arg1) * Math.LOG10E);
if ((_local7 + 1) < _arg5){
_local11 = (_arg5 - (_local7 + 1));
_local6 = (_local11 * _arg4);
_local8 = 0;
while (_local8 < _local11) {
bitmapRenderSequence.render(0, (_arg2 + (_local8 * _arg4)), _arg3);
_local8++;
};
};
_local8 = 0;
while (_local7 >= 0) {
_local10 = Math.pow(10, _local7);
if (_arg1 > 0){
_local9 = int((_arg1 / _local10));
} else {
_local9 = 0;
};
_arg1 = (_arg1 - (_local9 * _local10));
bitmapRenderSequence.render(_local9, ((_arg2 + (_local8 * _arg4)) + _local6), _arg3);
_local7--;
_local8++;
};
}
}
}//package com.midasplayer.jeweldefence.bitmaprender
Section 20
//BitmapRender (com.midasplayer.jeweldefence.bitmaprender.BitmapRender)
package com.midasplayer.jeweldefence.bitmaprender {
import flash.display.*;
import flash.geom.*;
public class BitmapRender {
private var _bgBitmap:Bitmap;
public var bgBitmapData:BitmapData;
public function BitmapRender(_arg1:int, _arg2:int, _arg3:Sprite):void{
bgBitmapData = new BitmapData(_arg1, _arg2, false, 0);
_bgBitmap = new Bitmap(bgBitmapData);
_arg3.addChild(_bgBitmap);
}
public function lock():void{
bgBitmapData.lock();
}
public function unlock():void{
bgBitmapData.unlock();
}
public function clearBackground(_arg1:int):void{
bgBitmapData.fillRect(new Rectangle(0, 0, bgBitmapData.rect.width, bgBitmapData.rect.height), _arg1);
}
}
}//package com.midasplayer.jeweldefence.bitmaprender
Section 21
//BitmapRenderObject (com.midasplayer.jeweldefence.bitmaprender.BitmapRenderObject)
package com.midasplayer.jeweldefence.bitmaprender {
import flash.display.*;
import flash.geom.*;
public class BitmapRenderObject {
private var _matrix:Matrix;
private var _positionPoint:Point;
private var _bitmapData:BitmapData;
private var _bitmapRender:BitmapRender;
public function BitmapRenderObject(_arg1:BitmapRender, _arg2:BitmapData){
_positionPoint = new Point();
_matrix = new Matrix();
super();
_bitmapRender = _arg1;
_bitmapData = _arg2;
}
public function draw(_arg1:Number, _arg2:Number, _arg3:Number=0, _arg4:Number=1):void{
_matrix.identity();
_matrix.translate((-(_bitmapData.width) / 2), (-(_bitmapData.height) / 2));
_matrix.rotate(_arg3);
_matrix.scale(_arg4, _arg4);
_matrix.translate(_arg1, _arg2);
_bitmapRender.bgBitmapData.draw(_bitmapData, _matrix);
}
public function renderMiddle(_arg1:Number, _arg2:Number):void{
_positionPoint.x = (_arg1 - (_bitmapData.width / 2));
_positionPoint.y = (_arg2 - (_bitmapData.height / 2));
_bitmapRender.bgBitmapData.copyPixels(_bitmapData, _bitmapData.rect, _positionPoint);
}
public function getWidth():int{
return (_bitmapData.width);
}
public function drawSmooth(_arg1:Number, _arg2:Number, _arg3:Number=0, _arg4:Number=1):void{
_matrix.identity();
_matrix.translate((-(_bitmapData.width) / 2), (-(_bitmapData.height) / 2));
_matrix.rotate(_arg3);
_matrix.scale(_arg4, _arg4);
_matrix.translate(_arg1, _arg2);
_bitmapRender.bgBitmapData.draw(_bitmapData, _matrix, null, null, null, true);
}
public function render(_arg1:Number, _arg2:Number):void{
_positionPoint.x = _arg1;
_positionPoint.y = _arg2;
_bitmapRender.bgBitmapData.copyPixels(_bitmapData, _bitmapData.rect, _positionPoint);
}
public function renderRect(_arg1:Number, _arg2:Number, _arg3:Rectangle):void{
_positionPoint.x = _arg1;
_positionPoint.y = _arg2;
_bitmapRender.bgBitmapData.copyPixels(_bitmapData, _arg3, _positionPoint);
}
public function getHeight():int{
return (_bitmapData.height);
}
}
}//package com.midasplayer.jeweldefence.bitmaprender
Section 22
//BitmapRenderSequence (com.midasplayer.jeweldefence.bitmaprender.BitmapRenderSequence)
package com.midasplayer.jeweldefence.bitmaprender {
import com.midasplayer.debug.*;
import flash.display.*;
public class BitmapRenderSequence {
private var _bitmapRenderObjects:Array;
public function BitmapRenderSequence(_arg1:BitmapRender, _arg2:Array):void{
var _local3:BitmapData;
var _local4:BitmapRenderObject;
_bitmapRenderObjects = new Array();
super();
Debug.assert((_arg2.length > 0), "bitmapData is empty");
for each (_local3 in _arg2) {
_local4 = new BitmapRenderObject(_arg1, _local3);
_bitmapRenderObjects.push(_local4);
};
}
public function drawSmooth(_arg1:int, _arg2:Number, _arg3:Number, _arg4:Number=0, _arg5:Number=1):void{
_bitmapRenderObjects[_arg1].drawSmooth(_arg2, _arg3, _arg4, _arg5);
}
public function draw(_arg1:int, _arg2:Number, _arg3:Number, _arg4:Number=0, _arg5:Number=1):void{
_bitmapRenderObjects[_arg1].draw(_arg2, _arg3, _arg4, _arg5);
}
public function render(_arg1:int, _arg2:Number, _arg3:Number):void{
_bitmapRenderObjects[_arg1].render(_arg2, _arg3);
}
public function renderMiddle(_arg1:int, _arg2:Number, _arg3:Number):void{
_bitmapRenderObjects[_arg1].renderMiddle(_arg2, _arg3);
}
public function getLength():int{
return (_bitmapRenderObjects.length);
}
}
}//package com.midasplayer.jeweldefence.bitmaprender
Section 23
//BackgroundView (com.midasplayer.jeweldefence.puzzle.BackgroundView)
package com.midasplayer.jeweldefence.puzzle {
import com.midasplayer.jeweldefence.*;
import flash.display.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class BackgroundView implements IBitmapRenderable {
private var _bitmapRenderObject:BitmapRenderObject;
private var _property:PuzzleGameProperty;
private static const s_bitmapData:BitmapData = new background(0, 0);
public function BackgroundView(_arg1:BitmapRender, _arg2:PuzzleGameProperty){
_property = _arg2;
_bitmapRenderObject = new BitmapRenderObject(_arg1, s_bitmapData);
}
public function isRemovable():Boolean{
return (_property.removable);
}
public function render(_arg1:int, _arg2:Number):void{
_bitmapRenderObject.render((_property.pos.x - 32), (_property.pos.y - 36));
}
public function getDepth():int{
return (RenderDepths.PUZZLE_BACKROUND);
}
}
}//package com.midasplayer.jeweldefence.puzzle
Section 24
//Board (com.midasplayer.jeweldefence.puzzle.Board)
package com.midasplayer.jeweldefence.puzzle {
import com.midasplayer.timing.*;
import com.midasplayer.debug.*;
import com.midasplayer.math.*;
public class Board implements ITickable {
private var _previousFallingBricks:Boolean;// = false
private var _colors:int;// = 4
private var _score:int;// = 0
private var _clickLockCounter:int;// = 0
private var _columns:int;
private var _playfieldColumns:int;// = 6
private var _brickChosenColRow:Vec2;// = null
private var _horizontalOffset:int;
private var _rows:int;
private var _brickReleasedColRow:Vec2;// = null
private var _playfieldRows:int;// = 6
private var _fallingBricks:Boolean;// = false
private var _verticalOffset:int;
private var _matchingBricks:Boolean;// = false
private var _lockedBricks:Boolean;// = false
private var _chainCounter:int;// = 0
private var _brickFactory:IBrickFactory;
private var _random:MtRandom;
private var _noMoreMoves:Boolean;// = false
private var _bricks:Array;
private var _matchedBricksPerColor:Array;
private var _playfieldStartRow:int;
public static const MATCHLOCKTICKTIME:int = 8;
public static const SWITCH_LOCK_TICK_TIME:int = 5;
public static const MIN_MATCH:int = 3;
public static const MAX_COLORS:int = 6;
public static const MIN_COLORS:int = 4;
public function Board(_arg1:int, _arg2:int, _arg3:MtRandom, _arg4:int, _arg5:int, _arg6:int, _arg7:IBrickFactory){
_matchedBricksPerColor = new Array(_colors);
super();
_random = _arg3;
_colors = Math.min(Math.max(_arg4, MIN_COLORS), MAX_COLORS);
_playfieldColumns = _arg5;
_playfieldRows = _arg6;
_brickFactory = _arg7;
_columns = _playfieldColumns;
_rows = (2 * _playfieldRows);
_playfieldStartRow = (_rows / 2);
_horizontalOffset = _arg1;
_verticalOffset = (_arg2 - (_playfieldStartRow * BrickProperty.HEIGHT));
_bricks = new Array(_rows);
var _local8:int;
while (_local8 < _bricks.length) {
_bricks[_local8] = new Array(_columns);
_local8++;
};
_setup();
var _local9:int;
while (_local9 < _matchedBricksPerColor.length) {
_matchedBricksPerColor[_local9] = 0;
_local9++;
};
}
private function _matchDown(_arg1:int, _arg2:int, _arg3:Array):void{
if ((((((((_arg1 >= _columns)) || ((_arg2 >= _rows)))) || ((_arg1 < 0)))) || ((_arg2 < 0)))){
return;
};
var _local4:Brick = _bricks[_arg2][_arg1];
if (_local4 == null){
return;
};
if (_local4.isFalling()){
return;
};
if (_local4.isMarked()){
return;
};
if (_local4.isLocked()){
return;
};
_arg3.push(new Vec2(_arg1, _arg2));
if ((_arg2 + 1) >= _rows){
return;
};
var _local5:Brick = _bricks[(_arg2 + 1)][_arg1];
if (_local5 == null){
return;
};
if ((_local4.getColor() == _local5.getColor())){
_matchDown(_arg1, (_arg2 + 1), _arg3);
};
}
private function _switchRight(_arg1:int, _arg2:int):void{
if ((_arg1 + 1) >= _columns){
return;
};
var _local3:Brick = _bricks[_arg2][_arg1];
var _local4:Brick = _bricks[_arg2][(_arg1 + 1)];
if (((!(_local3)) || (!(_local4)))){
return;
};
_bricks[_arg2][_arg1] = _local4;
_bricks[_arg2][(_arg1 + 1)] = _local3;
}
private function _busyTest():void{
var _local1:Array;
var _local2:Brick;
_previousFallingBricks = _fallingBricks;
_fallingBricks = false;
_matchingBricks = false;
_lockedBricks = false;
for each (_local1 in _bricks) {
for each (_local2 in _local1) {
if (!_local2){
} else {
if (_local2.isFalling()){
_fallingBricks = true;
};
if (_local2.isMarked()){
_matchingBricks = true;
};
if (_local2.isLocked()){
_lockedBricks = true;
};
};
};
};
}
private function _setup():void{
var _local2:int;
var _local3:*;
var _local4:*;
var _local1:int = (_rows - 1);
while (_local1 >= _playfieldStartRow) {
_local2 = (_columns - 1);
while (_local2 >= 0) {
_createBrick(_local2, _local1);
_local2--;
};
_local1--;
};
do {
_local1 = (_rows - 1);
while (_local1 >= _playfieldStartRow) {
_local2 = (_columns - 1);
while (_local2 >= 0) {
do {
_bricks[_local1][_local2].remove();
_createBrick(_local2, _local1);
_local3 = new Array();
_matchRight(_local2, _local1, _local3);
_local4 = new Array();
_matchDown(_local2, _local1, _local4);
} while ((((_local3.length > (MIN_MATCH - 1))) || ((_local4.length > (MIN_MATCH - 1)))));
_local2--;
};
_local1--;
};
} while (!(possibleToMove()));
}
private function _switchDown(_arg1:int, _arg2:int):void{
if ((_arg2 + 1) >= _rows){
return;
};
var _local3:Brick = _bricks[_arg2][_arg1];
var _local4:Brick = _bricks[(_arg2 + 1)][_arg1];
if (((!(_local3)) || (!(_local4)))){
return;
};
_bricks[_arg2][_arg1] = _local4;
_bricks[(_arg2 + 1)][_arg1] = _local3;
}
private function _calcPositions():void{
var _local2:int;
var _local3:int;
var _local4:int;
var _local1:int = (_rows - 1);
while (_local1 >= 0) {
_local2 = (_columns - 1);
while (_local2 >= 0) {
_local3 = (((_local1 * BrickProperty.WIDTH) + _verticalOffset) + int((BrickProperty.WIDTH / 2)));
_local4 = (((_local2 * BrickProperty.HEIGHT) + _horizontalOffset) + int((BrickProperty.HEIGHT / 2)));
if (_bricks[_local1][_local2]){
_bricks[_local1][_local2].setPos(new Vec2(_local4, _local3));
};
_local2--;
};
_local1--;
};
}
public function debugSetBoard(_arg1:Array):void{
var _local3:int;
var _local2:int = (_rows - 1);
while (_local2 >= _playfieldStartRow) {
_local3 = (_columns - 1);
while (_local3 >= 0) {
_bricks[_local2][_local3].remove();
_debugCreateBrick(_local3, _local2, _arg1[(_local2 - _playfieldStartRow)][_local3]);
_local3--;
};
_local2--;
};
}
private function possibleToSwitch(_arg1:Vec2, _arg2:Vec2):Boolean{
_switch(_arg1, _arg2);
var _local3:Boolean = ((_testMatch(_arg1.x, _arg1.y)) || (_testMatch(_arg2.x, _arg2.y)));
_switch(_arg1, _arg2);
return (_local3);
}
public function turnOffHighlight():void{
var _local1:Array;
var _local2:Brick;
for each (_local1 in _bricks) {
for each (_local2 in _local1) {
if (_local2 != null){
_local2.showMarker(false);
};
};
};
}
public function tick(_arg1:int):void{
var _local3:Array;
var _local4:Brick;
var _local2:Array = _match();
_countAndScore(_local2);
_lockAndMarkBricks(_local2);
_removeBricks();
_refill();
_fall();
_chosenBrickTest();
_calcPositions();
for each (_local3 in _bricks) {
for each (_local4 in _local3) {
if (_local4){
_local4.tick(_arg1);
};
};
};
_busyTest();
if (((((((((((_arg1 % 10) == 0)) && (!(_noMoreMoves)))) && (!(_previousFallingBricks)))) && (!(_fallingBricks)))) && (!(_matchingBricks)))){
_noMoreMoves = !(possibleToMove());
};
_clickLockCounter--;
}
public function getBrickColRow(_arg1:Vec2):Vec2{
var _local2:int = int(((_arg1.x - _horizontalOffset) / BrickProperty.WIDTH));
var _local3:int = int(((_arg1.y - _verticalOffset) / BrickProperty.HEIGHT));
if ((((((((_local2 < 0)) || ((_local2 >= _columns)))) || ((_local3 < _playfieldStartRow)))) || ((_local3 >= _rows)))){
return (null);
};
if (_bricks[_local3][_local2] == null){
return (null);
};
if (_bricks[_local3][_local2].isFalling()){
return (null);
};
if (_bricks[_local3][_local2].isLocked()){
return (null);
};
if (_bricks[_local3][_local2].isMarked()){
return (null);
};
return (new Vec2(_local2, _local3));
}
public function clicked(_arg1:Vec2):void{
var _local4:Boolean;
var _local5:int;
var _local6:Brick;
var _local7:Brick;
if (_clickLockCounter > 0){
return;
};
if (_brickChosenColRow == null){
_brickChosenColRow = getBrickColRow(_arg1);
if (_brickChosenColRow){
_bricks[_brickChosenColRow.y][_brickChosenColRow.x].showMarker(true);
};
} else {
if (_brickReleasedColRow == null){
_brickReleasedColRow = getBrickColRow(_arg1);
if (_brickReleasedColRow != null){
if (!brickAdjacentBrick(_brickChosenColRow, _brickReleasedColRow)){
_bricks[_brickChosenColRow.y][_brickChosenColRow.x].showMarker(false);
_brickChosenColRow = _brickReleasedColRow;
_brickReleasedColRow = null;
_bricks[_brickChosenColRow.y][_brickChosenColRow.x].showMarker(true);
};
};
};
};
if (!((_brickChosenColRow) && (_brickReleasedColRow))){
return;
};
_bricks[_brickChosenColRow.y][_brickChosenColRow.x].showMarker(false);
var _local2:Brick = _bricks[_brickChosenColRow.y][_brickChosenColRow.x];
var _local3:Brick = _bricks[_brickReleasedColRow.y][_brickReleasedColRow.x];
if (((((((((((((brickAdjacentBrick(_brickChosenColRow, _brickReleasedColRow)) && (!(_local2.isLocked())))) && (!(_local2.isMarked())))) && (!(_local2.isFalling())))) && (!(_local3.isLocked())))) && (!(_local3.isMarked())))) && (!(_local3.isFalling())))){
_local4 = possibleToSwitch(_brickChosenColRow, _brickReleasedColRow);
_local5 = SWITCH_LOCK_TICK_TIME;
if (!_local4){
_local5 = (_local5 * 2);
};
_local6 = _bricks[_brickChosenColRow.y][_brickChosenColRow.x];
_local7 = _bricks[_brickReleasedColRow.y][_brickReleasedColRow.x];
_local6.animate(_local6.getPos(), _local7.getPos(), _local4);
_local6.lock(_local5);
_local7.animate(_local7.getPos(), _local6.getPos(), _local4);
_local7.lock(_local5);
if (_local4){
_switch(_brickChosenColRow, _brickReleasedColRow);
};
_clickLockCounter = _local5;
};
_brickChosenColRow = null;
_brickReleasedColRow = null;
}
private function _countAndScore(_arg1:Array):void{
var _local2:Array;
var _local3:int;
var _local4:int;
var _local5:Vec2;
var _local6:Brick;
if (_arg1.length == 0){
if (((((!(_fallingBricks)) && (!(_previousFallingBricks)))) && (!(_matchingBricks)))){
_chainCounter = 0;
};
return;
};
for each (_local2 in _arg1) {
_local3 = _local2.length;
_local4 = ((_local3 - 2) + _chainCounter);
_score = (_score + _local4);
for each (_local5 in _local2) {
_local6 = _bricks[_local5.y][_local5.x];
var _local11 = _matchedBricksPerColor;
var _local12 = _local6.getColor();
var _local13 = (_local11[_local12] + 1);
_local11[_local12] = _local13;
};
};
_chainCounter++;
}
private function _debugCreateBrick(_arg1:int, _arg2:int, _arg3:int):void{
var _local4:int = (((_arg2 * BrickProperty.HEIGHT) + _verticalOffset) + int((BrickProperty.HEIGHT / 2)));
var _local5:int = (((_arg1 * BrickProperty.WIDTH) + _horizontalOffset) + int((BrickProperty.WIDTH / 2)));
_bricks[_arg2][_arg1] = _brickFactory.create(new Vec2(_local5, _local4), _arg3);
}
public function noMoreMoves():Boolean{
return (_noMoreMoves);
}
private function possibleToMove():Boolean{
var _local3:int;
var _local1:Boolean;
var _local2:int = _playfieldStartRow;
while (_local2 < _rows) {
_local3 = 0;
while (_local3 < _columns) {
if (_testMatch(_local3, _local2)){
_local1 = true;
};
_switchRight(_local3, _local2);
if (_testMatch(_local3, _local2)){
_local1 = true;
};
if (_testMatch((_local3 + 1), _local2)){
_local1 = true;
};
_switchRight(_local3, _local2);
_switchDown(_local3, _local2);
if (_testMatch(_local3, _local2)){
_local1 = true;
};
if (_testMatch(_local3, (_local2 + 1))){
_local1 = true;
};
_switchDown(_local3, _local2);
if (_local1){
return (true);
};
_local3++;
};
_local2++;
};
return (false);
}
public function isBusy():Boolean{
return (((((((_previousFallingBricks) || (_fallingBricks))) || (_matchingBricks))) || (_lockedBricks)));
}
private function _match():Array{
var _local3:int;
var _local4:Array;
var _local1:Array = new Array();
var _local2:int = _playfieldStartRow;
while (_local2 < _rows) {
_local3 = 0;
while (_local3 < _columns) {
_local4 = new Array();
_matchRight(_local3, _local2, _local4);
if (_local4.length >= MIN_MATCH){
_local1.push(_local4);
_local3 = (_local3 + (_local4.length - 1));
};
_local3++;
};
_local2++;
};
_local3 = 0;
while (_local3 < _columns) {
_local2 = 0;
while (_local2 < _rows) {
_local4 = new Array();
_matchDown(_local3, _local2, _local4);
if (_local4.length >= MIN_MATCH){
_local1.push(_local4);
_local2 = (_local2 + (_local4.length - 1));
};
_local2++;
};
_local3++;
};
return (_local1);
}
public function cleanUp():void{
var _local1:Array;
var _local2:Brick;
for each (_local1 in _bricks) {
for each (_local2 in _local1) {
if (_local2){
_local2.remove();
};
};
};
}
private function _lockAndMarkBricks(_arg1:Array):void{
var _local2:Array;
var _local3:Vec2;
if (_arg1.length == 0){
return;
};
for each (_local2 in _arg1) {
for each (_local3 in _local2) {
if (_bricks[_local3.y][_local3.x]){
_bricks[_local3.y][_local3.x].lock(MATCHLOCKTICKTIME);
_bricks[_local3.y][_local3.x].mark();
_bricks[_local3.y][_local3.x].startFade();
};
};
};
}
private function _switch(_arg1:Vec2, _arg2:Vec2):void{
var _local3:Brick = _bricks[_arg1.y][_arg1.x];
var _local4:Brick = _bricks[_arg2.y][_arg2.x];
_bricks[_arg1.y][_arg1.x] = _local4;
_bricks[_arg2.y][_arg2.x] = _local3;
}
private function _testMatch(_arg1:int, _arg2:int):Boolean{
var _local5:Array;
var _local3:int = (_arg1 - MIN_MATCH);
while (_local3 <= (_arg1 + 1)) {
_local5 = new Array();
_matchRight(_local3, _arg2, _local5);
if (_local5.length >= MIN_MATCH){
return (true);
};
_local3++;
};
var _local4:int = (_arg2 - MIN_MATCH);
while (_local4 <= (_arg2 + 1)) {
_local5 = new Array();
_matchDown(_arg1, _local4, _local5);
if (_local5.length >= MIN_MATCH){
return (true);
};
_local4++;
};
return (false);
}
private function _removeBricks():void{
var _local2:int;
var _local3:Brick;
var _local1:int = _playfieldStartRow;
while (_local1 < _rows) {
_local2 = 0;
while (_local2 < _columns) {
_local3 = _bricks[_local1][_local2];
if (!_local3){
} else {
if (((_local3.isMarked()) && (!(_local3.isLocked())))){
_bricks[_local1][_local2].remove();
_bricks[_local1][_local2] = null;
if (((((!((_brickChosenColRow == null))) && ((_brickChosenColRow.x == _local2)))) && ((_brickChosenColRow.y == _local1)))){
_brickChosenColRow = null;
};
};
};
_local2++;
};
_local1++;
};
}
private function _fall():void{
var _local2:int;
var _local3:Brick;
var _local4:Brick;
var _local1:int;
while (_local1 < _columns) {
_local2 = (_rows - 2);
for (;_local2 >= 0;_local2--) {
_local3 = _bricks[_local2][_local1];
if (_local3 == null){
} else {
_local4 = _bricks[(_local2 + 1)][_local1];
if (!_local3.isFalling()){
if ((((((_local4 == null)) || (_local4.isFalling()))) && (!(_local3.isLocked())))){
_local3.startFall();
};
};
if (_local3.isFalling()){
_local3.fall();
};
if (((_local4) && ((_local3.getOffset() > _local4.getOffset())))){
_local3.setOffset(_local4.getOffset());
_local3.setMovement(_local4.getMovement());
};
if (_local3.getOffset() >= Brick.MAX_OFFSET){
_local3.setOffset((_local3.getOffset() - Brick.MAX_OFFSET));
_bricks[(_local2 + 1)][_local1] = _local3;
_bricks[_local2][_local1] = null;
if ((_local2 + 1) == (_rows - 1)){
if (_local3.isFalling()){
_local3.stopFall();
};
continue;
};
_local4 = _bricks[(_local2 + 2)][_local1];
if (((_local4) && ((_local3.getOffset() > _local4.getOffset())))){
_local3.setOffset(_local4.getOffset());
_local3.setMovement(_local4.getMovement());
};
};
if (!_local4){
} else {
if (!_local3.isFalling()){
} else {
if ((((_local3.getOffset() == 0)) && (!(_local4.isFalling())))){
_local3.stopFall();
};
};
};
};
};
_local1++;
};
}
public function getScore():int{
return (_score);
}
private function brickAdjacentBrick(_arg1:Vec2, _arg2:Vec2):Boolean{
var _local3:Brick = _bricks[_arg1.y][_arg1.x];
var _local4:Brick = _bricks[_arg2.y][_arg2.x];
if ((((_local3 == null)) || ((_local4 == null)))){
return (false);
};
var _local5:int = Math.abs((_arg1.x - _arg2.x));
var _local6:int = Math.abs((_arg1.y - _arg2.y));
return ((((((_local5 == 1)) && ((_local6 == 0)))) || ((((_local5 == 0)) && ((_local6 == 1))))));
}
public function getMatchedBricks(_arg1:int):int{
Debug.assert((((_arg1 < _colors)) && ((_arg1 >= 0))), "Index outside array");
return (_matchedBricksPerColor[_arg1]);
}
private function _chosenBrickTest():void{
var _local1:Brick;
if (_brickChosenColRow){
_local1 = _bricks[_brickChosenColRow.y][_brickChosenColRow.x];
if (((_local1) && (_local1.isFalling()))){
_brickChosenColRow = null;
_local1.showMarker(false);
};
};
}
private function _refill():void{
var _local3:int;
var _local1:Array = new Array(_columns);
var _local2:int;
while (_local2 < _columns) {
_local1[_local2] = 0;
_local3 = 0;
while (_local3 < _rows) {
if (_bricks[_local3][_local2] == null){
var _local4 = _local1;
var _local5 = _local2;
var _local6 = (_local4[_local5] + 1);
_local4[_local5] = _local6;
};
_local3++;
};
_local1[_local2] = (_local1[_local2] - (_rows / 2));
_local2++;
};
_local2 = 0;
while (_local2 < _columns) {
_local3 = (_playfieldStartRow - 1);
while (_local3 >= 0) {
if (_local1[_local2] == 0){
break;
};
if (_bricks[_local3][_local2] == null){
_createBrick(_local2, _local3);
_local4 = _local1;
_local5 = _local2;
_local6 = (_local4[_local5] - 1);
_local4[_local5] = _local6;
};
_local3--;
};
_local2++;
};
}
private function _createBrick(_arg1:int, _arg2:int):void{
var _local3:int = (((_arg2 * BrickProperty.HEIGHT) + _verticalOffset) + int((BrickProperty.HEIGHT / 2)));
var _local4:int = (((_arg1 * BrickProperty.WIDTH) + _horizontalOffset) + int((BrickProperty.WIDTH / 2)));
_bricks[_arg2][_arg1] = _brickFactory.create(new Vec2(_local4, _local3), _random.nextInt(_colors));
}
public function toString():String{
var _local3:int;
var _local1:String = new String();
var _local2:int;
while (_local2 < _bricks.length) {
_local3 = 0;
while (_local3 < _bricks[_local2].length) {
if (_bricks[_local2][_local3] != null){
_local1 = (_local1 + _bricks[_local2][_local3].getColor());
} else {
_local1 = (_local1 + "-");
};
_local3++;
};
_local1 = (_local1 + "\n");
_local2++;
};
return (_local1);
}
public function chosenBrick():Vec2{
return (_brickChosenColRow);
}
public function getMatchedBricksAllColors():int{
var _local2:int;
var _local1:int;
for each (_local2 in _matchedBricksPerColor) {
_local1 = (_local1 + _local2);
};
return (_local1);
}
private function _matchRight(_arg1:int, _arg2:int, _arg3:Array):void{
if ((((((((_arg1 >= _columns)) || ((_arg2 >= _rows)))) || ((_arg1 < 0)))) || ((_arg2 < 0)))){
return;
};
var _local4:Brick = _bricks[_arg2][_arg1];
if (_local4 == null){
return;
};
if (_local4.isFalling()){
return;
};
if (_local4.isMarked()){
return;
};
if (_local4.isLocked()){
return;
};
_arg3.push(new Vec2(_arg1, _arg2));
if ((_arg1 + 1) >= _columns){
return;
};
var _local5:Brick = _bricks[_arg2][(_arg1 + 1)];
if (_local5 == null){
return;
};
if ((_local4.getColor() == _local5.getColor())){
_matchRight((_arg1 + 1), _arg2, _arg3);
};
}
public function highlightTargetColor(_arg1:int):void{
var _local2:Array;
var _local3:Brick;
for each (_local2 in _bricks) {
for each (_local3 in _local2) {
if (((_local3) && ((_local3.getColor() == _arg1)))){
_local3.showMarker(true);
};
};
};
}
}
}//package com.midasplayer.jeweldefence.puzzle
Section 25
//Brick (com.midasplayer.jeweldefence.puzzle.Brick)
package com.midasplayer.jeweldefence.puzzle {
import com.midasplayer.timing.*;
import com.midasplayer.math.*;
public class Brick implements ITickable {
private var _falling:Boolean;// = false
private var _lock:int;// = 0
private var _marked:Boolean;// = false
private var _offset:Number;// = 0
private var _brickProperty:BrickProperty;
private var _verticalMovement:Number;
public static const MAX_OFFSET:Number = BrickProperty.HEIGHT;
public function Brick(_arg1:BrickProperty){
_brickProperty = _arg1;
}
public function remove():void{
showMarker(false);
_brickProperty.removable = true;
}
public function getOffset():Number{
return (_offset);
}
public function isFalling():Boolean{
return (_falling);
}
public function mark():void{
_marked = true;
}
public function setPos(_arg1:Vec2):void{
_brickProperty.lastPos.copy(_brickProperty.pos);
_brickProperty.pos.copy(_arg1);
_brickProperty.pos.y = (_brickProperty.pos.y + _offset);
}
public function isLocked():Boolean{
return ((_lock > 0));
}
public function setOffset(_arg1:Number):void{
_offset = _arg1;
}
public function showMarker(_arg1:Boolean):void{
_brickProperty.showMarker = _arg1;
}
public function getPos():Vec2{
return (_brickProperty.pos);
}
public function animate(_arg1:Vec2, _arg2:Vec2, _arg3:Boolean):void{
_brickProperty.startAnimation = true;
_brickProperty.animationStartPos.copy(_arg1);
_brickProperty.animationEndPos.copy(_arg2);
_brickProperty.animationTypeNormal = _arg3;
}
public function tick(_arg1:int):void{
_lock = Math.max((_lock - 1), 0);
}
public function getMovement():Number{
return (_verticalMovement);
}
public function lock(_arg1:int):void{
_lock = _arg1;
}
public function stopFall():void{
_offset = 0;
_falling = false;
}
public function getColor():int{
return (_brickProperty.color);
}
public function setMovement(_arg1:Number):void{
_verticalMovement = _arg1;
}
public function isMarked():Boolean{
return (_marked);
}
public function fall():void{
_verticalMovement = Math.min((_verticalMovement + _brickProperty.acceleration), _brickProperty.maxSpeed);
_offset = (_offset + _verticalMovement);
}
public function startFall():void{
_offset = 0;
_verticalMovement = _brickProperty.startMovement;
_falling = true;
}
public function startFade():void{
_brickProperty.fade = true;
}
}
}//package com.midasplayer.jeweldefence.puzzle
Section 26
//BrickFactory (com.midasplayer.jeweldefence.puzzle.BrickFactory)
package com.midasplayer.jeweldefence.puzzle {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class BrickFactory implements IBrickFactory {
private var _bitmapRender:BitmapRender;
private var _topPos:int;
private var _renderEngine:RenderEngine;
private var _soundManager:SoundManager;
public function BrickFactory(_arg1:RenderEngine, _arg2:BitmapRender, _arg3:int, _arg4:SoundManager){
_renderEngine = _arg1;
_bitmapRender = _arg2;
_topPos = _arg3;
_soundManager = _arg4;
}
public function create(_arg1:Vec2, _arg2:int):Brick{
var _local3:BrickProperty = new BrickProperty(_arg1, _arg2);
_renderEngine.add(new BrickView(_local3, _bitmapRender, _topPos, _soundManager));
return (new Brick(_local3));
}
}
}//package com.midasplayer.jeweldefence.puzzle
Section 27
//BrickProperty (com.midasplayer.jeweldefence.puzzle.BrickProperty)
package com.midasplayer.jeweldefence.puzzle {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
public class BrickProperty extends Property {
public var acceleration:Number;// = 8
public var color:int;// = 0
public var animationTypeNormal:Boolean;// = false
public var startAnimation:Boolean;// = false
public var maxSpeed:Number;// = 32
public var startMovement:Number;// = 2
public var animationStartPos:Vec2;
public var showMarker:Boolean;// = false
public var fade:Boolean;// = false
public var animationEndPos:Vec2;
public var lastPos:Vec2;
public static const WIDTH:int = 32;
public static const HEIGHT:int = 32;
public function BrickProperty(_arg1:Vec2, _arg2:int){
animationStartPos = new Vec2();
animationEndPos = new Vec2();
lastPos = new Vec2();
super(_arg1);
this.color = _arg2;
}
}
}//package com.midasplayer.jeweldefence.puzzle
Section 28
//BrickView (com.midasplayer.jeweldefence.puzzle.BrickView)
package com.midasplayer.jeweldefence.puzzle {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class BrickView implements IBitmapRenderable {
private var _animationTick:Number;// = 0
private var _markerBRO:BitmapRenderObject;
private var _animationPos:Vec2;
private var _oldTime:Number;// = 0
private var _brickRenderSequence:BitmapRenderSequence;
private var _animationMovement:Vec2;
private var _animationEndPos:Vec2;
private var _animate:Boolean;// = false
private var _brickAnimSequence:AnimSequence;
private var _animateBack:Boolean;// = false
private var _playFieldTop:int;
private var _brickProperty:BrickProperty;
private var _soundManager:SoundManager;
private static const emptyBitmapData:BitmapData = new BitmapData(1, 1, true, 0);
private static const markerBitmapData:BitmapData = new marker(0, 0);
private static const egg1BricksBitmapData:Array = new Array(new egg_01_01(0, 0), new egg_01_02(0, 0), new egg_01_03(0, 0), new egg_01_04(0, 0), emptyBitmapData);
private static const egg2BricksBitmapData:Array = new Array(new egg_02_01(0, 0), new egg_02_02(0, 0), new egg_02_03(0, 0), new egg_02_04(0, 0), emptyBitmapData);
private static const egg3BricksBitmapData:Array = new Array(new egg_03_01(0, 0), new egg_03_02(0, 0), new egg_03_03(0, 0), new egg_03_04(0, 0), emptyBitmapData);
private static const egg4BricksBitmapData:Array = new Array(new egg_04_01(0, 0), new egg_04_02(0, 0), new egg_04_03(0, 0), new egg_04_04(0, 0), emptyBitmapData);
private static const egg5BricksBitmapData:Array = new Array(new egg_05_01(0, 0), new egg_05_02(0, 0), new egg_05_03(0, 0), new egg_05_04(0, 0), emptyBitmapData);
private static const egg6BricksBitmapData:Array = new Array(new egg_06_01(0, 0), new egg_06_02(0, 0), new egg_06_03(0, 0), new egg_06_04(0, 0), emptyBitmapData);
public function BrickView(_arg1:BrickProperty, _arg2:BitmapRender, _arg3:int, _arg4:SoundManager){
_animationPos = new Vec2();
_animationEndPos = new Vec2();
_animationMovement = new Vec2();
super();
_brickProperty = _arg1;
_playFieldTop = _arg3;
_soundManager = _arg4;
_markerBRO = new BitmapRenderObject(_arg2, markerBitmapData);
switch (_brickProperty.color){
case 0:
_brickRenderSequence = new BitmapRenderSequence(_arg2, egg3BricksBitmapData);
_brickAnimSequence = new AnimSequence(_brickRenderSequence);
break;
case 1:
_brickRenderSequence = new BitmapRenderSequence(_arg2, egg1BricksBitmapData);
_brickAnimSequence = new AnimSequence(_brickRenderSequence);
break;
case 2:
_brickRenderSequence = new BitmapRenderSequence(_arg2, egg2BricksBitmapData);
_brickAnimSequence = new AnimSequence(_brickRenderSequence);
break;
case 3:
_brickRenderSequence = new BitmapRenderSequence(_arg2, egg4BricksBitmapData);
_brickAnimSequence = new AnimSequence(_brickRenderSequence);
break;
case 4:
_brickRenderSequence = new BitmapRenderSequence(_arg2, egg5BricksBitmapData);
_brickAnimSequence = new AnimSequence(_brickRenderSequence);
break;
case 5:
_brickRenderSequence = new BitmapRenderSequence(_arg2, egg6BricksBitmapData);
_brickAnimSequence = new AnimSequence(_brickRenderSequence);
};
_brickAnimSequence.setSpeed(0.6);
_brickAnimSequence.play();
}
public function isRemovable():Boolean{
return (_brickProperty.removable);
}
public function getDepth():int{
return (RenderDepths.PUZZLE_BRICKS);
}
public function render(_arg1:int, _arg2:Number):void{
var _local3:Vec2;
var _local5:int;
if (_brickProperty.pos.y < _playFieldTop){
return;
};
if (_brickProperty.fade){
_brickAnimSequence.setPosition(_brickProperty.pos.add(new Vec2(-11, -14)));
_brickAnimSequence.render((_arg1 + _arg2));
return;
};
if (_brickProperty.startAnimation){
_brickProperty.startAnimation = false;
_local5 = Board.SWITCH_LOCK_TICK_TIME;
if (!_brickProperty.animationTypeNormal){
_local5 = int((_local5 / 2));
_animateBack = true;
_soundManager.getFromClass(negative_switch_1s).play(SoundVars.SOUND_VOLUME);
};
_setupAnimation(_brickProperty.animationStartPos, _brickProperty.animationEndPos, _local5, _arg1, _arg2);
_animate = true;
};
if (_animate){
if (_driveAnimation(_arg1, _arg2)){
_animate = false;
if (_animateBack){
_animateBack = false;
_setupAnimation(_brickProperty.animationEndPos, _brickProperty.animationStartPos, Board.SWITCH_LOCK_TICK_TIME, _arg1, _arg2);
_animate = true;
};
};
_brickRenderSequence.renderMiddle(0, _animationPos.x, _animationPos.y);
return;
};
if (_brickProperty.showMarker){
_markerBRO.renderMiddle(_brickProperty.pos.x, _brickProperty.pos.y);
};
_local3 = _brickProperty.lastPos;
var _local4:Vec2 = _local3.add(_brickProperty.pos.sub(_local3).scale(_arg2));
_brickRenderSequence.renderMiddle(0, _local4.x, _local4.y);
}
private function _setupAnimation(_arg1:Vec2, _arg2:Vec2, _arg3:int, _arg4:int, _arg5:Number):void{
_animationTick = _arg3;
_animationPos.copy(_arg1);
_animationEndPos.copy(_arg2);
var _local6:Vec2 = _arg2.sub(_arg1);
_animationMovement = _local6.scale((1 / _arg3));
_oldTime = (_arg4 + _arg5);
}
private function _driveAnimation(_arg1:int, _arg2:Number):Boolean{
var _local3:Number = (_arg1 + _arg2);
var _local4:Number = (_local3 - _oldTime);
_oldTime = _local3;
var _local5:Vec2 = _animationMovement.clone();
_local5.scaleSelf(_local4);
_animationPos.addSelf(_local5);
if ((_animationTick = (_animationTick - _local4)) > 0){
return (false);
};
_animationPos.copy(_animationEndPos);
return (true);
}
}
}//package com.midasplayer.jeweldefence.puzzle
Section 29
//FrameView (com.midasplayer.jeweldefence.puzzle.FrameView)
package com.midasplayer.jeweldefence.puzzle {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import flash.geom.*;
public class FrameView implements IBitmapRenderable {
private var _frameAnimSeq:AnimSequence;
private var _star2BRO:BitmapRenderObject;
private var _symbolsBitmapRenderSequence:BitmapRenderSequence;
private var _barBitmapRenderObjects:Array;
private var _star2Pos:Vec2;
private var _lastMatchedBricksAllColors:int;// = 0
private var _startFrameAnimation:Boolean;// = true
private var _star1Pos:Vec2;
private var _star1BRO:BitmapRenderObject;
private var _lastMatchedBricks:int;// = 0
private var _oldTick:Number;// = 0
private var _barRect:Rectangle;
private var _barAlpha:Number;// = 0
private var _glow:AnimSequence;
private var _property:PuzzleGameProperty;
private var _soundManager:SoundManager;
private static const s_barsBitmapData:Array = new Array(new switcherbar_apple(0, 0), new switcherbar_bee(0, 0), new switcherbar_fish(0, 0), new switcherbar_pig(0, 0));
private static const s_symbolsBitmapData:Array = new Array(new symbol_apple(0, 0), new symbol_bee(0, 0), new symbol_fish(0, 0), new symbol_pig(0, 0));
private static const s_framesBitmapData:Array = new Array(new background_frame(0, 0), new switcher_full_1(0, 0), new switcher_full_2(0, 0), new switcher_full_3(0, 0), new switcher_full_4(0, 0), new switcher_full_5(0, 0));
private static const s_star1BitmapData:BitmapData = new one_level_star(0, 0);
private static const s_star2BitmapData:BitmapData = new second_level_star(0, 0);
private static const s_glow:Array = new Array(new glow1(0, 0), new glow2(0, 0), new glow3(0, 0), new glow4(0, 0), new glow5(0, 0), new glow6(0, 0), new glow8(0, 0), new glow9(0, 0), new glow10(0, 0), new glow11(0, 0), new glow12(0, 0), new glow13(0, 0), new glow14(0, 0), new glow15(0, 0), new glow16(0, 0), new glow17(0, 0), new glow18(0, 0), new glow19(0, 0), new glow20(0, 0), new glow21(0, 0), new glow22(0, 0), new glow23(0, 0), new glow24(0, 0));
public static const BAR_SPEED:Number = (0.8 * (JewelDefenceEngine.s_tickInterval / 1000));
public function FrameView(_arg1:BitmapRender, _arg2:PuzzleGameProperty, _arg3:SoundManager){
_barBitmapRenderObjects = new Array();
super();
_property = _arg2;
_soundManager = _arg3;
_frameAnimSeq = new AnimSequence(new BitmapRenderSequence(_arg1, s_framesBitmapData));
_frameAnimSeq.setPosition(new Vec2((_property.pos.x - 32), (_property.pos.y - 36)));
_frameAnimSeq.setSpeed(0.6);
_barBitmapRenderObjects.push(new BitmapRenderObject(_arg1, s_barsBitmapData[0]));
_barBitmapRenderObjects.push(new BitmapRenderObject(_arg1, s_barsBitmapData[1]));
_barBitmapRenderObjects.push(new BitmapRenderObject(_arg1, s_barsBitmapData[2]));
_barBitmapRenderObjects.push(new BitmapRenderObject(_arg1, s_barsBitmapData[3]));
_star1BRO = new BitmapRenderObject(_arg1, s_star1BitmapData);
_star2BRO = new BitmapRenderObject(_arg1, s_star2BitmapData);
_barRect = new Rectangle(0, 0, _barBitmapRenderObjects[_property.targetColor].getWidth(), _barBitmapRenderObjects[_property.targetColor].getHeight());
var _local4:int = ((_property.activationLevel1 / _property.activationLevel3) * s_barsBitmapData[0].width);
_star1Pos = new Vec2(((((_property.pos.x - 32) + 57) - 2) + _local4), ((_property.pos.y - 36) + 246));
var _local5:int = ((_property.activationLevel2 / _property.activationLevel3) * s_barsBitmapData[0].width);
_star2Pos = new Vec2(((((_property.pos.x - 32) + 57) - 2) + _local5), ((_property.pos.y - 36) + 246));
_symbolsBitmapRenderSequence = new BitmapRenderSequence(_arg1, s_symbolsBitmapData);
_glow = new AnimSequence(new BitmapRenderSequence(_arg1, s_glow));
_glow.playLoop();
}
public function isRemovable():Boolean{
return (_property.removable);
}
public function render(_arg1:int, _arg2:Number):void{
if (((_property.targetReached) && (_startFrameAnimation))){
_frameAnimSeq.play();
_startFrameAnimation = false;
};
_frameAnimSeq.render((_arg1 + _arg2));
var _local3:Number = Math.min((_property.matchedBricks / _property.activationLevel3), 1);
_barAlpha = Math.min((_barAlpha + (BAR_SPEED * ((_arg1 + _arg2) - _oldTick))), _local3);
_barRect.width = (_barAlpha * _barBitmapRenderObjects[_property.targetColor].getWidth());
_barBitmapRenderObjects[_property.targetColor].renderRect(((_property.pos.x - 32) + 57), ((_property.pos.y - 36) + 247), _barRect);
_star1BRO.render(_star1Pos.x, _star1Pos.y);
_star2BRO.render(_star2Pos.x, _star2Pos.y);
_glow.setPosition(new Vec2((_property.pos.x - 19), ((_property.pos.y - 55) + 234)));
_glow.render((_arg1 + _arg2));
_symbolsBitmapRenderSequence.render(_property.targetColor, ((_property.pos.x - 32) + 32), ((_property.pos.y - 36) + 234));
if (_property.matchedBricks != _lastMatchedBricks){
_soundManager.getFromClass(matching_combo_1s).play(SoundVars.SOUND_VOLUME);
} else {
if (_property.matchedBricksAllColors != _lastMatchedBricksAllColors){
_soundManager.getFromClass(standard_combo).play(SoundVars.SOUND_VOLUME);
};
};
_lastMatchedBricks = _property.matchedBricks;
_lastMatchedBricksAllColors = _property.matchedBricksAllColors;
_oldTick = (_arg1 + _arg2);
}
public function getDepth():int{
return (RenderDepths.PUZZLE_FRAME);
}
}
}//package com.midasplayer.jeweldefence.puzzle
Section 30
//IBrickFactory (com.midasplayer.jeweldefence.puzzle.IBrickFactory)
package com.midasplayer.jeweldefence.puzzle {
import com.midasplayer.math.*;
public interface IBrickFactory {
function create(_arg1:Vec2, _arg2:int):Brick;
}
}//package com.midasplayer.jeweldefence.puzzle
Section 31
//PuzzleGame (com.midasplayer.jeweldefence.puzzle.PuzzleGame)
package com.midasplayer.jeweldefence.puzzle {
import com.midasplayer.game.engine.*;
import com.midasplayer.timing.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.verify.*;
public class PuzzleGame implements ITickable {
private var _input:Input;
private var _finished:Boolean;// = false
private var _board:Board;
private var _firstTick:Boolean;// = true
private var _introTickCounter:int;// = 0
private var _property:PuzzleGameProperty;
private var _playDataRecorder:IPlayDataRecorder;
public static const INTRO_TICKS:int = 15;
public static const INTRO_TURN_ON_HIGHLIGHT_TICK_TIME:int = 5;
public static var s_columns:int = 6;
public static var s_rows:int = 6;
public static var s_colors:int = 4;
public function PuzzleGame(_arg1:Input, _arg2:MtRandom, _arg3:PuzzleGameProperty, _arg4:BrickFactory, _arg5:IPlayDataRecorder){
_input = _arg1;
_property = _arg3;
_board = new Board(_property.pos.x, _property.pos.y, _arg2, s_colors, s_columns, s_rows, _arg4);
_playDataRecorder = _arg5;
}
private function _handleInput(_arg1:int):void{
if (_introTickCounter < INTRO_TICKS){
return;
};
if (((_firstTick) || (_property.targetReached))){
return;
};
if (_input.mouseIsPressed()){
_board.clicked(_input.getPressPosition());
} else {
if (_mouseDrag()){
_board.clicked(_input.getMousePosition());
_playDataRecorder.add(new MousePositionPlayData(_input, _arg1, _input.getMousePosition()));
};
};
}
public function cleanUp():void{
_board.cleanUp();
_property.removable = true;
}
public function getScore():int{
return (_board.getScore());
}
public function getMatchedBricks():int{
return (_board.getMatchedBricks(_property.targetColor));
}
public function noMoreMoves():Boolean{
return (_board.noMoreMoves());
}
private function _intro():Boolean{
if (++_introTickCounter <= INTRO_TICKS){
if (_introTickCounter == INTRO_TURN_ON_HIGHLIGHT_TICK_TIME){
_board.highlightTargetColor(_property.targetColor);
};
if (_introTickCounter == INTRO_TICKS){
_board.turnOffHighlight();
return (false);
};
return (true);
};
return (false);
}
public function tick(_arg1:int):void{
_handleInput(_arg1);
_board.tick(_arg1);
if (_intro()){
return;
};
if (!_property.targetReached){
_property.targetReached = (((_board.getMatchedBricks(_property.targetColor) >= _property.activationLevel1)) || (_board.noMoreMoves()));
} else {
if (!_board.isBusy()){
_finished = true;
};
};
_property.matchedBricks = getMatchedBricks();
_property.matchedBricksAllColors = _board.getMatchedBricksAllColors();
_firstTick = false;
}
public function targetIsReached():Boolean{
return (_property.targetReached);
}
private function _mouseDrag():Boolean{
if (!_input.mouseIsDown()){
return (false);
};
if (!_input.hasMousePosition()){
return (false);
};
var _local1:Vec2 = _board.chosenBrick();
var _local2:Vec2 = _board.getBrickColRow(_input.getMousePosition());
if (((!(_local1)) || (!(_local2)))){
return (false);
};
return (((!((_local2.x == _local1.x))) || (!((_local2.y == _local1.y)))));
}
public function isFinished():Boolean{
return (_finished);
}
}
}//package com.midasplayer.jeweldefence.puzzle
Section 32
//PuzzleGameFactory (com.midasplayer.jeweldefence.puzzle.PuzzleGameFactory)
package com.midasplayer.jeweldefence.puzzle {
import com.midasplayer.game.engine.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class PuzzleGameFactory {
private var _random:MtRandom;
private var _bitmapRender:BitmapRender;
private var _soundManager:SoundManager;
private var _input:Input;
private var _renderEngine:RenderEngine;
private var _playDataRecorder:IPlayDataRecorder;
public function PuzzleGameFactory(_arg1:RenderEngine, _arg2:BitmapRender, _arg3:Input, _arg4:MtRandom, _arg5:IPlayDataRecorder, _arg6:SoundManager){
_renderEngine = _arg1;
_bitmapRender = _arg2;
_input = _arg3;
_random = _arg4;
_playDataRecorder = _arg5;
_soundManager = _arg6;
}
public function create(_arg1:PuzzleGameProperty):PuzzleGame{
_renderEngine.add(new BackgroundView(_bitmapRender, _arg1));
_renderEngine.add(new FrameView(_bitmapRender, _arg1, _soundManager));
return (new PuzzleGame(_input, _random, _arg1, new BrickFactory(_renderEngine, _bitmapRender, _arg1.pos.y, _soundManager), _playDataRecorder));
}
}
}//package com.midasplayer.jeweldefence.puzzle
Section 33
//PuzzleGameProperty (com.midasplayer.jeweldefence.puzzle.PuzzleGameProperty)
package com.midasplayer.jeweldefence.puzzle {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
public class PuzzleGameProperty extends Property {
public var targetReached:Boolean;// = false
public var activationLevel1:int;
public var activationLevel2:int;
public var activationLevel3:int;
public var targetColor:int;
public var matchedBricks:int;// = 0
public var matchedBricksAllColors:int;// = 0
public function PuzzleGameProperty(_arg1:Vec2, _arg2:int, _arg3:int, _arg4:int, _arg5:int){
super(_arg1);
this.targetColor = _arg2;
this.activationLevel1 = _arg3;
this.activationLevel2 = _arg4;
this.activationLevel3 = _arg5;
}
}
}//package com.midasplayer.jeweldefence.puzzle
Section 34
//BossEnemy1Property (com.midasplayer.jeweldefence.towerdefence.enemy.BossEnemy1Property)
package com.midasplayer.jeweldefence.towerdefence.enemy {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class BossEnemy1Property extends EnemyProperty {
public static var s_money:int = 200;
public static var s_health:Number = 2800;
public static var s_speed:Number = 20;
public static var s_score:int = 1000;
public function BossEnemy1Property(_arg1:Vec2){
super(_arg1, s_speed, s_health, s_money, s_score, new DiscCollisionBody(new Vec2(5, 0), 8));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.enemy
Section 35
//BossEnemy2Property (com.midasplayer.jeweldefence.towerdefence.enemy.BossEnemy2Property)
package com.midasplayer.jeweldefence.towerdefence.enemy {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class BossEnemy2Property extends EnemyProperty {
public static var s_money:int = 250;
public static var s_health:Number = 1700;
public static var s_speed:Number = 40;
public static var s_score:int = 1000;
public function BossEnemy2Property(_arg1:Vec2){
super(_arg1, s_speed, s_health, s_money, s_score, new DiscCollisionBody(new Vec2(5, 0), 8));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.enemy
Section 36
//EasyEnemy1Property (com.midasplayer.jeweldefence.towerdefence.enemy.EasyEnemy1Property)
package com.midasplayer.jeweldefence.towerdefence.enemy {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class EasyEnemy1Property extends EnemyProperty {
public static var s_money:int = 12;
public static var s_health:Number = 30;
public static var s_speed:Number = 14;
public static var s_score:int = 100;
public function EasyEnemy1Property(_arg1:Vec2){
super(_arg1, s_speed, s_health, s_money, s_score, new DiscCollisionBody(new Vec2(5, -3), 8));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.enemy
Section 37
//EasyEnemy2Property (com.midasplayer.jeweldefence.towerdefence.enemy.EasyEnemy2Property)
package com.midasplayer.jeweldefence.towerdefence.enemy {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class EasyEnemy2Property extends EnemyProperty {
public static var s_money:int = 12;
public static var s_health:Number = 20;
public static var s_speed:Number = 25;
public static var s_score:int = 100;
public function EasyEnemy2Property(_arg1:Vec2){
super(_arg1, s_speed, s_health, s_money, s_score, new DiscCollisionBody(new Vec2(5, -3), 8));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.enemy
Section 38
//EasyEnemy3Property (com.midasplayer.jeweldefence.towerdefence.enemy.EasyEnemy3Property)
package com.midasplayer.jeweldefence.towerdefence.enemy {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class EasyEnemy3Property extends EnemyProperty {
public static var s_money:int = 12;
public static var s_health:Number = 18;
public static var s_speed:Number = 40;
public static var s_score:int = 100;
public function EasyEnemy3Property(_arg1:Vec2){
super(_arg1, s_speed, s_health, s_money, s_score, new DiscCollisionBody(new Vec2(5, -3), 8));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.enemy
Section 39
//Enemy (com.midasplayer.jeweldefence.towerdefence.enemy.Enemy)
package com.midasplayer.jeweldefence.towerdefence.enemy {
import com.midasplayer.debug.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.weapon.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class Enemy implements IEntity {
private const _worldBody:ICollisionBody;
private var _path:Path;
private var _property:EnemyProperty;
private var _slowTick:int;
private var _slowDuration:Number;
public function Enemy(_arg1:EnemyProperty, _arg2:Path){
_worldBody = new DiscCollisionBody(new Vec2(), 0);
super();
_property = _arg1;
_path = _arg2;
_property.collisionBody.transformTo(_worldBody, _property.pos, null);
_slowDuration = ((SlowProperty.s_slowDuration * 1000) / JewelDefenceEngine.s_tickInterval);
}
public function getProperty():Property{
return (_property);
}
public function getWorldCollisionBody():ICollisionBody{
return (_worldBody);
}
public function tick(_arg1:int):void{
_property.lastPos = _property.pos;
_property.travelDistance = (_property.travelDistance + (_property.speed * _property.slowMul));
_property.pos = _path.getPos(_property.travelDistance);
if (++_slowTick >= _slowDuration){
_property.slowMul = 1;
};
if (_property.travelDistance > _path.getTotalDistance()){
_property.reachedGoal = true;
};
_property.collisionBody.transformTo(_worldBody, _property.pos, null);
}
public function onCollide(_arg1:Property):void{
var _local3:EnemyGoalProperty;
var _local4:SlowProperty;
Debug.assert((((_arg1 is WeaponProperty)) || ((_arg1 is EnemyGoalProperty))), "An enemy collided with another type than weapon or enemy goal.");
if ((_arg1 is EnemyGoalProperty)){
_local3 = (_arg1 as EnemyGoalProperty);
if (_local3.lives > 0){
_property.removable = true;
_property.goalCrash = true;
};
return;
};
_property.isHit = true;
if ((_arg1 is SlowProperty)){
_local4 = (_arg1 as SlowProperty);
_property.slowMul = _local4.slowMul;
_slowTick = 0;
_property.hitDirection.copy(_local4.shootDir);
return;
};
var _local2:WeaponProperty = (_arg1 as WeaponProperty);
_property.health = (_property.health - _local2.damage);
_property.removable = (_property.health <= 0);
_property.hitDirection.copy(_local2.shootDir);
}
}
}//package com.midasplayer.jeweldefence.towerdefence.enemy
Section 40
//EnemyFactory (com.midasplayer.jeweldefence.towerdefence.enemy.EnemyFactory)
package com.midasplayer.jeweldefence.towerdefence.enemy {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import com.midasplayer.jeweldefence.towerdefence.*;
public class EnemyFactory implements IEnemyFactory {
private var _sound:SoundManager;
private var _bitmapRender:BitmapRender;
private var _renderEngine:RenderEngine;
public function EnemyFactory(_arg1:RenderEngine, _arg2:BitmapRender, _arg3:SoundManager){
_renderEngine = _arg1;
_bitmapRender = _arg2;
_sound = _arg3;
}
public function create(_arg1:EnemyProperty, _arg2:Path):Enemy{
_renderEngine.add(new EnemyView(_bitmapRender, _arg1, _sound));
return (new Enemy(_arg1, _arg2));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.enemy
Section 41
//EnemyProperty (com.midasplayer.jeweldefence.towerdefence.enemy.EnemyProperty)
package com.midasplayer.jeweldefence.towerdefence.enemy {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class EnemyProperty extends CollisionProperty {
public var money:int;
public var slowMul:Number;// = 1
public var reachedGoal:Boolean;// = false
public var isHit:Boolean;// = false
public var speed:Number;
public var score:int;
public var goalCrash:Boolean;// = false
public var health:Number;
private var _lastPos:Vec2;
public var hitDirection:Vec2;
public var travelDistance:Number;
private static var s_speedMul:Number = 1;
private static var s_healthMul:Number = 0.9;
public function EnemyProperty(_arg1:Vec2, _arg2:Number, _arg3:Number, _arg4:int, _arg5:int, _arg6:ICollisionBody, _arg7:Number=0){
hitDirection = new Vec2();
_lastPos = new Vec2();
super(_arg1, _arg6);
lastPos = _arg1;
this.speed = ((_arg2 * s_speedMul) * (JewelDefenceEngine.s_tickInterval / 1000));
this.health = (_arg3 * s_healthMul);
this.money = _arg4;
this.score = _arg5;
this.travelDistance = _arg7;
}
public function clone():EnemyProperty{
var _local1:EnemyProperty = new EnemyProperty(pos, speed, health, money, score, collisionBody, travelDistance);
_local1.speed = speed;
_local1.health = health;
_local1.slowMul = slowMul;
_local1.reachedGoal = reachedGoal;
return (_local1);
}
public function get lastPos():Vec2{
return (_lastPos);
}
public function set lastPos(_arg1:Vec2):void{
_lastPos.copy(_arg1);
}
}
}//package com.midasplayer.jeweldefence.towerdefence.enemy
Section 42
//EnemyView (com.midasplayer.jeweldefence.towerdefence.enemy.EnemyView)
package com.midasplayer.jeweldefence.towerdefence.enemy {
import com.midasplayer.debug.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import flash.geom.*;
public class EnemyView implements IBitmapRenderable {
private const _barRect:Rectangle;
private const _renderOffset:Vec2;
private var _hitAnimationOffset:Vec2;
private var _soundClasses:Array;
private var _dieSounds:Sounds;
private var _hitDirection:Vec2;
private var _animSeq:AnimSequence;
private var _hitShakeAnimation:Boolean;// = false
private var _bar:BitmapRenderObject;
private var _pos:Vec2;
private var _hitAnimation:Boolean;// = false
private var _dieSeq:AnimSequence;
private var _maxHealth:Number;
private var _removable:Boolean;// = false
private var _hitAnimationStartTime:Number;
private var _property:EnemyProperty;
private var _barFrame:BitmapRenderObject;
private var _soundManager:SoundManager;
private var _hitSounds:Sounds;
private static const chikenHawk6:BitmapData = new chicken_hawk06(0, 0);
private static const _barBitmapData:BitmapData = new healthbar_bar(0, 0);
private static const chikenHawk5:BitmapData = new chicken_hawk05(0, 0);
private static const chikenHawk7:BitmapData = new chicken_hawk07(0, 0);
private static const _catDie:Array = new Array(new cat_die1(0, 0), new cat_die2(0, 0), new cat_die3(0, 0), new cat_die4(0, 0), new cat_die5(0, 0), new cat_die6(0, 0));
private static const _mouseDie:Array = new Array(new mouse_die_1(0, 0), new mouse_die_2(0, 0), new mouse_die_3(0, 0), new mouse_die_4(0, 0), new mouse_die_5(0, 0), new mouse_die_6(0, 0));
public static const HIT_ANIMATION_TIME:Number = 6;
private static const _barFrameBitmapData:BitmapData = new healthbar_frame(0, 0);
private static const cat1:BitmapData = new cat01(0, 0);
private static const cat2:BitmapData = new cat02(0, 0);
private static const cat3:BitmapData = new cat03(0, 0);
private static const cat4:BitmapData = new cat04(0, 0);
private static const raven1:BitmapData = new raven_01(0, 0);
private static const raven3:BitmapData = new raven_03(0, 0);
private static const raven4:BitmapData = new raven_04(0, 0);
private static const raven5:BitmapData = new raven_05(0, 0);
private static const _woldboars:Array = new Array(woldboar1, woldboar1, woldboar2, woldboar3, woldboar4, woldboar5, woldboar6, woldboar7, woldboar8, woldboar8, woldboar7, woldboar6, woldboar5, woldboar4, woldboar3, woldboar2);
private static const raven2:BitmapData = new raven_02(0, 0);
private static const _chickenDie:Array = new Array(new chicken_hawk_die_1(0, 0), new chicken_hawk_die_2(0, 0), new chicken_hawk_die_3(0, 0), new chicken_hawk_die_4(0, 0), new chicken_hawk_die_5(0, 0), new chicken_hawk_die_6(0, 0));
private static const chef1:BitmapData = new chef_01(0, 0);
private static const mouse1:BitmapData = new mouse_01(0, 0);
private static const mouse2:BitmapData = new mouse_02(0, 0);
private static const mouse3:BitmapData = new mouse_03(0, 0);
private static const mouse4:BitmapData = new mouse_04(0, 0);
private static const chef6:BitmapData = new chef_06(0, 0);
private static const chef7:BitmapData = new chef_07(0, 0);
private static const chef2:BitmapData = new chef_02(0, 0);
private static const chef3:BitmapData = new chef_03(0, 0);
private static const chef4:BitmapData = new chef_04(0, 0);
private static const _badgers:Array = new Array(badger1, badger1, badger2, badger3, badger4, badger5, badger5, badger4, badger3, badger2);
private static const chef5:BitmapData = new chef_05(0, 0);
private static const fox1:BitmapData = new fox01(0, 0);
private static const fox2:BitmapData = new fox02(0, 0);
private static const fox3:BitmapData = new fox03(0, 0);
private static const fox4:BitmapData = new fox04(0, 0);
private static const fox5:BitmapData = new fox05(0, 0);
private static const _foxDie:Array = new Array(new fox_die_1(0, 0), new fox_die_2(0, 0), new fox_die_3(0, 0), new fox_die_4(0, 0), new fox_die_5(0, 0), new fox_die_6(0, 0));
private static const _badgerDie:Array = new Array(new badger_die_1(0, 0), new badger_die_2(0, 0), new badger_die_3(0, 0), new badger_die_4(0, 0), new badger_die_5(0, 0), new badger_die_6(0, 0));
private static const _catSounds:Array = new Array(cat_1s, cat_2s, cat_3s, cat_4s);
private static const _cats:Array = new Array(cat1, cat1, cat2, cat3, cat4, cat4, cat3, cat2);
private static const _snakes:Array = new Array(snake1, snake1, snake2, snake3, snake4, snake5, snake5, snake4, snake3, snake2);
private static const woldboar2:BitmapData = new wildboar_02(0, 0);
private static const woldboar4:BitmapData = new wildboar_04(0, 0);
private static const woldboar5:BitmapData = new wildboar_05(0, 0);
private static const woldboar6:BitmapData = new wildboar_06(0, 0);
private static const woldboar7:BitmapData = new wildboar_07(0, 0);
private static const woldboar1:BitmapData = new wildboar_01(0, 0);
private static const _badgerSounds:Array = new Array(badger_1s, badger_2s, badger_3s);
private static const woldboar3:BitmapData = new wildboar_03(0, 0);
public static const HIT_ANIMATION_MOVE_DIST:Number = 5;
private static const _chefs:Array = new Array(chef1, chef1, chef2, chef3, chef4, chef5, chef6, chef7, chef7, chef6, chef5, chef4, chef3, chef2);
private static const woldboar8:BitmapData = new wildboar_08(0, 0);
private static const _foxs:Array = new Array(fox1, fox1, fox2, fox3, fox4, fox5, fox5, fox4, fox3, fox2);
private static const _foxSounds:Array = new Array(fox_1s, fox_2s, fox_3s);
private static const dog1:BitmapData = new dog01(0, 0);
private static const dog2:BitmapData = new dog02(0, 0);
private static const racoon1:BitmapData = new racoon_01(0, 0);
private static const dog4:BitmapData = new dog04(0, 0);
private static const racoon3:BitmapData = new racoon_03(0, 0);
private static const racoon4:BitmapData = new racoon_04(0, 0);
private static const _snakeSounds:Array = new Array(snake_1s, snake_2s, snake_3s);
private static const dog3:BitmapData = new dog03(0, 0);
private static const racoon2:BitmapData = new racoon_02(0, 0);
private static const dog5:BitmapData = new dog05(0, 0);
private static const _racoons:Array = new Array(racoon1, racoon1, racoon2, racoon3, racoon4, racoon4, racoon3, racoon2);
private static const _ravens:Array = new Array(raven1, raven1, raven2, raven3, raven4, raven5, raven5, raven4, raven3, raven2);
private static const _snakeDie:Array = new Array(new snake_die_1(0, 0), new snake_die_2(0, 0), new snake_die_3(0, 0), new snake_die_4(0, 0), new snake_die_5(0, 0), new snake_die_6(0, 0));
private static const _chefSounds:Array = new Array(chef_1s, chef_2s, chef_3s, chef_4s, chef_5s, chef_6s);
private static const _dieSoundClasses:Array = new Array(enemy_defeated_1s, enemy_defeated_2s, enemy_defeated_3s, enemy_defeated_4s, enemy_defeated_5s, enemy_defeated_6s, enemy_defeated_7s, enemy_defeated_8s);
private static const _mouseSounds:Array = new Array(mouse_1s, mouse_2s, mouse_3s);
private static const _chickenSounds:Array = new Array(falcon_1s, falcon_2s, falcon_3s, falcon_4s);
private static const _dogSounds:Array = new Array(bulldog_1s, bulldog_2s, bulldog_3s, bulldog_4s);
private static const _dogs:Array = new Array(dog1, dog1, dog2, dog3, dog4, dog5, dog5, dog4, dog3, dog2);
private static const _wildboarDie:Array = new Array(new wildboar_die_1(0, 0), new wildboar_die_2(0, 0), new wildboar_die_3(0, 0), new wildboar_die_4(0, 0), new wildboar_die_5(0, 0), new wildboar_die_6(0, 0), new wildboar_die_7(0, 0), new wildboar_die_8(0, 0), new wildboar_die_9(0, 0));
private static const _chefDie:Array = new Array(new chef_die_1(0, 0), new chef_die_2(0, 0), new chef_die_3(0, 0), new chef_die_4(0, 0), new chef_die_5(0, 0), new chef_die_6(0, 0), new chef_die_7(0, 0), new chef_die_8(0, 0), new chef_die_9(0, 0));
public static const HALF_HIT_ANIMATION_TIME:Number = 3;
private static const _racoonDie:Array = new Array(new racoon_die_1(0, 0), new racoon_die_2(0, 0), new racoon_die_3(0, 0), new racoon_die_4(0, 0), new racoon_die_5(0, 0), new racoon_die_6(0, 0));
private static const _ravenDie:Array = new Array(new raven_die_1(0, 0), new raven_die_2(0, 0), new raven_die_3(0, 0), new raven_die_4(0, 0), new raven_die_5(0, 0), new raven_die_6(0, 0));
private static const _chickenHawks:Array = new Array(chikenHawk1, chikenHawk1, chikenHawk2, chikenHawk3, chikenHawk4, chikenHawk5, chikenHawk6, chikenHawk7, chikenHawk7, chikenHawk6, chikenHawk5, chikenHawk4, chikenHawk3, chikenHawk2);
private static const _wildBoarSounds:Array = new Array(hog_1s, hog_2s, hog_3s, hog_4s);
private static const _ravenSounds:Array = new Array(crow_1s, crow_2s, crow_3s, crow_4s);
private static const _racoonSounds:Array = new Array(racoon_1s, racoon_2s, racoon_3s, racoon_4s, racoon_5s);
private static const _dogDie:Array = new Array(new dog_die_1(0, 0), new dog_die_2(0, 0), new dog_die_3(0, 0), new dog_die_4(0, 0), new dog_die_5(0, 0), new dog_die_6(0, 0));
private static const _mice:Array = new Array(mouse1, mouse1, mouse2, mouse3, mouse4, mouse4, mouse3, mouse2);
private static const badger1:BitmapData = new badger01(0, 0);
private static const badger2:BitmapData = new badger02(0, 0);
private static const badger3:BitmapData = new badger03(0, 0);
private static const badger4:BitmapData = new badger04(0, 0);
private static const badger5:BitmapData = new badger05(0, 0);
private static const snake2:BitmapData = new snake02(0, 0);
private static const chikenHawk1:BitmapData = new chicken_hawk01(0, 0);
private static const chikenHawk2:BitmapData = new chicken_hawk02(0, 0);
private static const chikenHawk3:BitmapData = new chicken_hawk03(0, 0);
private static const chikenHawk4:BitmapData = new chicken_hawk04(0, 0);
private static const snake1:BitmapData = new snake01(0, 0);
private static const snake3:BitmapData = new snake03(0, 0);
private static const snake4:BitmapData = new snake04(0, 0);
private static const snake5:BitmapData = new snake05(0, 0);
public function EnemyView(_arg1:BitmapRender, _arg2:EnemyProperty, _arg3:SoundManager){
_barRect = new Rectangle(0, 0, _barBitmapData.width, _barBitmapData.height);
_renderOffset = new Vec2(-16, -16);
_hitAnimationOffset = new Vec2();
_hitDirection = new Vec2();
_pos = new Vec2();
super();
_property = _arg2;
_maxHealth = _property.health;
_soundManager = _arg3;
_init(_arg1);
}
public function isRemovable():Boolean{
return (_removable);
}
public function render(_arg1:int, _arg2:Number):void{
var _local4:Number;
var _local5:Number;
_pos.copy(_property.pos);
if (!_property.removable){
_pos.subSelf(_property.lastPos);
_pos.scaleSelf(_arg2);
_pos.addSelf(_property.lastPos);
};
_pos.addSelf(_renderOffset);
if (_property.isHit){
if ((((_property.hitDirection.x == 0)) && ((_property.hitDirection.y == 0)))){
_hitShakeAnimation = true;
} else {
_hitDirection.copy(_property.hitDirection);
_hitAnimation = true;
_hitAnimationStartTime = (_arg1 + _arg2);
};
_property.isHit = false;
if (_property.health > 0){
_hitSounds.play(SoundVars.SOUND_VOLUME);
} else {
_dieSounds.play(SoundVars.SOUND_VOLUME);
};
};
if (_hitShakeAnimation){
_hitAnimationOffset.x = (int((Math.random() * 8)) - 4);
_hitAnimationOffset.y = (int((Math.random() * 6)) - 3);
_hitShakeAnimation = false;
} else {
if (_hitAnimation){
_local4 = ((_arg1 + _arg2) - _hitAnimationStartTime);
if (_local4 < HALF_HIT_ANIMATION_TIME){
_local5 = (_local4 / HALF_HIT_ANIMATION_TIME);
} else {
_local5 = (1 - ((_local4 - HALF_HIT_ANIMATION_TIME) / HALF_HIT_ANIMATION_TIME));
};
_hitAnimationOffset.copy(_hitDirection);
_hitAnimationOffset.scaleSelf((HIT_ANIMATION_MOVE_DIST * _local5));
if (_local4 >= HIT_ANIMATION_TIME){
_hitAnimation = false;
_hitAnimationOffset.x = 0;
_hitAnimationOffset.y = 0;
};
} else {
_hitAnimationOffset.x = 0;
_hitAnimationOffset.y = 0;
};
};
if (((_property.removable) && (!(_dieSeq.isPlaying())))){
_dieSeq.setPosition(_pos);
_dieSeq.play();
};
if (_dieSeq.isPlaying()){
_dieSeq.render((_arg1 + _arg2));
if (!_dieSeq.isPlaying()){
_removable = true;
};
} else {
_animSeq.setPosition(_pos.add(_hitAnimationOffset));
_animSeq.render((_arg1 + _arg2));
};
_barFrame.render((_pos.x + 8), (_pos.y - 4));
var _local3:Number = (_property.health / _maxHealth);
_barRect.width = int((_barBitmapData.width * _local3));
_bar.renderRect((_pos.x + 9), (_pos.y - 3), _barRect);
}
public function getDepth():int{
return ((RenderDepths.ENEMY + _property.pos.y));
}
private function _init(_arg1:BitmapRender):void{
if ((_property is EasyEnemy1Property)){
_animSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _mice));
_dieSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _mouseDie));
_soundClasses = _mouseSounds;
_renderOffset.x = -15;
_renderOffset.y = -24;
} else {
if ((_property is EasyEnemy2Property)){
_animSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _cats));
_dieSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _catDie));
_soundClasses = _catSounds;
_renderOffset.x = -20;
_renderOffset.y = -24;
} else {
if ((_property is EasyEnemy3Property)){
_animSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _ravens));
_dieSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _ravenDie));
_soundClasses = _ravenSounds;
_renderOffset.x = -21;
_renderOffset.y = -20;
} else {
if ((_property is NormalEnemy1Property)){
_animSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _racoons));
_dieSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _racoonDie));
_soundClasses = _racoonSounds;
_renderOffset.x = -19;
_renderOffset.y = -23;
} else {
if ((_property is NormalEnemy2Property)){
_animSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _foxs));
_dieSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _foxDie));
_soundClasses = _foxSounds;
_renderOffset.x = -17;
_renderOffset.y = -23;
} else {
if ((_property is NormalEnemy3Property)){
_animSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _snakes));
_dieSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _snakeDie));
_soundClasses = _snakeSounds;
_renderOffset.x = -21;
_renderOffset.y = -23;
} else {
if ((_property is HardEnemy1Property)){
_animSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _badgers));
_dieSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _badgerDie));
_soundClasses = _badgerSounds;
_renderOffset.x = -17;
_renderOffset.y = -23;
} else {
if ((_property is HardEnemy2Property)){
_animSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _dogs));
_dieSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _dogDie));
_soundClasses = _dogSounds;
_renderOffset.x = -16;
_renderOffset.y = -23;
} else {
if ((_property is HardEnemy3Property)){
_animSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _chickenHawks));
_dieSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _chickenDie));
_soundClasses = _chickenSounds;
_renderOffset.x = -22;
_renderOffset.y = -26;
} else {
if ((_property is BossEnemy1Property)){
_animSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _chefs));
_dieSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _chefDie));
_soundClasses = _chefSounds;
_renderOffset.x = -14;
_renderOffset.y = -52;
} else {
if ((_property is BossEnemy2Property)){
_animSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _woldboars));
_dieSeq = new AnimSequence(new BitmapRenderSequence(_arg1, _wildboarDie));
_soundClasses = _wildBoarSounds;
_renderOffset.x = -16;
_renderOffset.y = -40;
} else {
Debug.assert(false, "An unkown enemy property type was encountered in enemy view.");
};
};
};
};
};
};
};
};
};
};
};
_renderOffset.x = (_renderOffset.x + 5);
_animSeq.setSpeed(0.6);
_animSeq.playLoop();
_bar = new BitmapRenderObject(_arg1, _barBitmapData);
_barFrame = new BitmapRenderObject(_arg1, _barFrameBitmapData);
_hitSounds = new Sounds(_soundClasses, _soundManager, 0.05);
_dieSounds = new Sounds(_dieSoundClasses, _soundManager, 0.2);
}
}
}//package com.midasplayer.jeweldefence.towerdefence.enemy
Section 43
//HardEnemy1Property (com.midasplayer.jeweldefence.towerdefence.enemy.HardEnemy1Property)
package com.midasplayer.jeweldefence.towerdefence.enemy {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class HardEnemy1Property extends EnemyProperty {
public static var s_money:int = 40;
public static var s_health:Number = 60;
public static var s_speed:Number = 40;
public static var s_score:int = 300;
public function HardEnemy1Property(_arg1:Vec2){
super(_arg1, s_speed, s_health, s_money, s_score, new DiscCollisionBody(new Vec2(5, 0), 8));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.enemy
Section 44
//HardEnemy2Property (com.midasplayer.jeweldefence.towerdefence.enemy.HardEnemy2Property)
package com.midasplayer.jeweldefence.towerdefence.enemy {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class HardEnemy2Property extends EnemyProperty {
public static var s_money:int = 40;
public static var s_health:Number = 150;
public static var s_speed:Number = 20;
public static var s_score:int = 300;
public function HardEnemy2Property(_arg1:Vec2){
super(_arg1, s_speed, s_health, s_money, s_score, new DiscCollisionBody(new Vec2(5, 0), 8));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.enemy
Section 45
//HardEnemy3Property (com.midasplayer.jeweldefence.towerdefence.enemy.HardEnemy3Property)
package com.midasplayer.jeweldefence.towerdefence.enemy {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class HardEnemy3Property extends EnemyProperty {
public static var s_money:int = 40;
public static var s_health:Number = 85;
public static var s_speed:Number = 40;
public static var s_score:int = 300;
public function HardEnemy3Property(_arg1:Vec2){
super(_arg1, s_speed, s_health, s_money, s_score, new DiscCollisionBody(new Vec2(5, 0), 8));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.enemy
Section 46
//IEnemyFactory (com.midasplayer.jeweldefence.towerdefence.enemy.IEnemyFactory)
package com.midasplayer.jeweldefence.towerdefence.enemy {
import com.midasplayer.jeweldefence.towerdefence.*;
public interface IEnemyFactory {
function create(_arg1:EnemyProperty, _arg2:Path):Enemy;
}
}//package com.midasplayer.jeweldefence.towerdefence.enemy
Section 47
//NormalEnemy1Property (com.midasplayer.jeweldefence.towerdefence.enemy.NormalEnemy1Property)
package com.midasplayer.jeweldefence.towerdefence.enemy {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class NormalEnemy1Property extends EnemyProperty {
public static var s_money:int = 23;
public static var s_health:Number = 45;
public static var s_speed:Number = 32;
public static var s_score:int = 200;
public function NormalEnemy1Property(_arg1:Vec2){
super(_arg1, s_speed, s_health, s_money, s_score, new DiscCollisionBody(new Vec2(5, 0), 8));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.enemy
Section 48
//NormalEnemy2Property (com.midasplayer.jeweldefence.towerdefence.enemy.NormalEnemy2Property)
package com.midasplayer.jeweldefence.towerdefence.enemy {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class NormalEnemy2Property extends EnemyProperty {
public static var s_money:int = 23;
public static var s_health:Number = 35;
public static var s_speed:Number = 50;
public static var s_score:int = 200;
public function NormalEnemy2Property(_arg1:Vec2){
super(_arg1, s_speed, s_health, s_money, s_score, new DiscCollisionBody(new Vec2(5, 0), 8));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.enemy
Section 49
//NormalEnemy3Property (com.midasplayer.jeweldefence.towerdefence.enemy.NormalEnemy3Property)
package com.midasplayer.jeweldefence.towerdefence.enemy {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class NormalEnemy3Property extends EnemyProperty {
public static var s_money:int = 23;
public static var s_health:Number = 105;
public static var s_speed:Number = 20;
public static var s_score:int = 200;
public function NormalEnemy3Property(_arg1:Vec2){
super(_arg1, s_speed, s_health, s_money, s_score, new DiscCollisionBody(new Vec2(5, 0), 8));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.enemy
Section 50
//DiscCollisionBody (com.midasplayer.jeweldefence.towerdefence.physics.DiscCollisionBody)
package com.midasplayer.jeweldefence.towerdefence.physics {
import com.midasplayer.math.*;
public class DiscCollisionBody implements ICollisionBody {
private var _radius:Number;
private var _center:Vec2;
public function DiscCollisionBody(_arg1:Vec2, _arg2:Number){
_center = _arg1;
_radius = _arg2;
}
public function transformTo(_arg1:ICollisionBody, _arg2:Vec2, _arg3:Vec2):void{
var _local4:DiscCollisionBody = (_arg1 as DiscCollisionBody);
_local4._center.copy(_center);
_local4._center.addSelf(_arg2);
_local4._radius = _radius;
}
public function getRadius():Number{
return (_radius);
}
public function getCenter():Vec2{
return (_center);
}
public function transform(_arg1:Vec2, _arg2:Vec2):ICollisionBody{
return (new DiscCollisionBody(_center.add(_arg1), _radius));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.physics
Section 51
//ICollisionBody (com.midasplayer.jeweldefence.towerdefence.physics.ICollisionBody)
package com.midasplayer.jeweldefence.towerdefence.physics {
import com.midasplayer.math.*;
public interface ICollisionBody {
function transform(_arg1:Vec2, _arg2:Vec2):ICollisionBody;
function transformTo(_arg1:ICollisionBody, _arg2:Vec2, _arg3:Vec2):void;
}
}//package com.midasplayer.jeweldefence.towerdefence.physics
Section 52
//LineCollisionBody (com.midasplayer.jeweldefence.towerdefence.physics.LineCollisionBody)
package com.midasplayer.jeweldefence.towerdefence.physics {
import com.midasplayer.debug.*;
import com.midasplayer.math.*;
public class LineCollisionBody implements ICollisionBody {
private var _line:Line;
public function LineCollisionBody(_arg1:Vec2, _arg2:Vec2){
_line = new Line(_arg1, _arg2);
}
public function getLine():Line{
return (_line);
}
public function transform(_arg1:Vec2, _arg2:Vec2):ICollisionBody{
var _local3:Number;
var _local4:Vec2;
_local3 = _line.dir.length;
_local4 = _line.p1.add(_arg1);
var _local5:Vec2 = _local4.add(_arg2.scale(_local3));
return (new LineCollisionBody(_local4, _local5));
}
public function transformTo(_arg1:ICollisionBody, _arg2:Vec2, _arg3:Vec2):void{
Debug.assert(false, "Not implemented.");
}
}
}//package com.midasplayer.jeweldefence.towerdefence.physics
Section 53
//Physics (com.midasplayer.jeweldefence.towerdefence.physics.Physics)
package com.midasplayer.jeweldefence.towerdefence.physics {
import com.midasplayer.debug.*;
import com.midasplayer.math.*;
public class Physics {
private function _discVsLine(_arg1:DiscCollisionBody, _arg2:LineCollisionBody):Boolean{
var _local3:Line = _arg2.getLine();
return (_local3.circleIntersects(_arg1.getCenter(), _arg1.getRadius()));
}
public function collides(_arg1:ICollisionBody, _arg2:ICollisionBody):Boolean{
if ((((_arg1 is DiscCollisionBody)) && ((_arg2 is DiscCollisionBody)))){
return (_discVsDisc((_arg1 as DiscCollisionBody), (_arg2 as DiscCollisionBody)));
};
if ((((_arg1 is DiscCollisionBody)) && ((_arg2 is LineCollisionBody)))){
return (_discVsLine((_arg1 as DiscCollisionBody), (_arg2 as LineCollisionBody)));
};
if ((((_arg1 is LineCollisionBody)) && ((_arg2 is DiscCollisionBody)))){
return (_discVsLine((_arg2 as DiscCollisionBody), (_arg1 as LineCollisionBody)));
};
Debug.assert(false, "The physics collide method has not implemented collision between two types of collision bodies.");
return (false);
}
private function _discVsDisc(_arg1:DiscCollisionBody, _arg2:DiscCollisionBody):Boolean{
var _local3:Number = _arg1.getCenter().distanceSqr(_arg2.getCenter());
var _local4:Number = (_arg1.getRadius() + _arg2.getRadius());
return ((_local3 < (_local4 * _local4)));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.physics
Section 54
//IShopTowerFactory (com.midasplayer.jeweldefence.towerdefence.shop.IShopTowerFactory)
package com.midasplayer.jeweldefence.towerdefence.shop {
import com.midasplayer.jeweldefence.towerdefence.tower.*;
public interface IShopTowerFactory {
function create(_arg1:TowerProperty, _arg2:ShopVars):ShopTower;
}
}//package com.midasplayer.jeweldefence.towerdefence.shop
Section 55
//Shop (com.midasplayer.jeweldefence.towerdefence.shop.Shop)
package com.midasplayer.jeweldefence.towerdefence.shop {
import com.midasplayer.timing.*;
import com.midasplayer.debug.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.tower.*;
public class Shop implements ITickable {
private var _shopVars:ShopVars;
private var _inputEnabled:Boolean;// = true
private var _towers:EntityCollection;
private var _input:Input;
private var _obstacleMap:ObstacleMap;
public function Shop(_arg1:Input, _arg2:IShopTowerFactory, _arg3:EntityCollection, _arg4:ObstacleMap, _arg5:ShopVars){
_input = _arg1;
_towers = _arg3;
_obstacleMap = _arg4;
_shopVars = _arg5;
}
public function disableInput():void{
_inputEnabled = false;
}
public function enableInput():void{
_inputEnabled = true;
}
public function getMoney():int{
return (_shopVars.money);
}
private function _drop():void{
var _local1:TowerProperty = (_shopVars.dragTower.getProperty() as TowerProperty);
Debug.assert((_shopVars.money >= _local1.cost), "Can't afford a tower that has begun draggin.");
_towers.add(_shopVars.dragTower);
_shopVars.money = (_shopVars.money - _local1.cost);
_shopVars.dragTower = null;
}
private function _tryDrag():void{
var _local2:ShopTower;
var _local1:Vec2 = _input.getPressPosition();
for each (_local2 in _shopVars.shopTowers) {
if (_local2.hitTest(_local1)){
if (_shopVars.money < _local2.getProperty().cost){
return;
};
_shopVars.dragTower = _local2.createTower(_local1);
return;
};
};
}
public function tick(_arg1:int):void{
if (!_inputEnabled){
return;
};
if ((((_shopVars.dragTower == null)) && (_input.mouseIsPressed()))){
_shopVars.dropped = false;
_tryDrag();
return;
};
if (_shopVars.dragTower == null){
return;
};
var _local2:Vec2 = (_input.mouseIsPressed()) ? _input.getPressPosition() : _input.getMousePosition();
var _local3:TowerProperty = (_shopVars.dragTower.getProperty() as TowerProperty);
_local3.pos.copy(_local2);
_shopVars.canDrop = _obstacleMap.isAreaFree(_shopVars.dragTower.getWorldCollisionBody());
if (!_input.mouseIsPressed()){
return;
};
if (_shopVars.canDrop){
_drop();
_shopVars.dropped = true;
} else {
if (!_obstacleMap.isOnMap(_shopVars.dragTower.getWorldCollisionBody())){
_shopVars.dragTower.getProperty().removable = true;
_shopVars.dragTower = null;
};
};
}
public function addMoney(_arg1:int):void{
_shopVars.money = (_shopVars.money + _arg1);
}
}
}//package com.midasplayer.jeweldefence.towerdefence.shop
Section 56
//ShopTower (com.midasplayer.jeweldefence.towerdefence.shop.ShopTower)
package com.midasplayer.jeweldefence.towerdefence.shop {
import com.midasplayer.debug.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.tower.*;
public class ShopTower {
private var _towerFactory:ITowerFactory;
private var _property:TowerProperty;
public function ShopTower(_arg1:TowerProperty, _arg2:ITowerFactory){
_property = _arg1;
_towerFactory = _arg2;
}
public function hitTest(_arg1:Vec2):Boolean{
return ((((((((_arg1.x >= _property.pos.x)) && ((_arg1.x <= (_property.pos.x + 55))))) && ((_arg1.y >= _property.pos.y)))) && ((_arg1.y <= (_property.pos.y + 84)))));
}
public function getProperty():TowerProperty{
return (_property);
}
public function createTower(_arg1:Vec2):IEntity{
if ((_property is FireTowerProperty)){
return (_towerFactory.create(new FireTowerProperty(_arg1, 1), false));
};
if ((_property is MissileTowerProperty)){
return (_towerFactory.create(new MissileTowerProperty(_arg1, 1), false));
};
if ((_property is LightningTowerProperty)){
return (_towerFactory.create(new LightningTowerProperty(_arg1, 1), false));
};
if ((_property is SlowTowerProperty)){
return (_towerFactory.create(new SlowTowerProperty(_arg1, 1), false));
};
Debug.assert(false, "Trying to create an unknown tower from shop.");
return (null);
}
}
}//package com.midasplayer.jeweldefence.towerdefence.shop
Section 57
//ShopTowerFactory (com.midasplayer.jeweldefence.towerdefence.shop.ShopTowerFactory)
package com.midasplayer.jeweldefence.towerdefence.shop {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import com.midasplayer.jeweldefence.towerdefence.tower.*;
public class ShopTowerFactory implements IShopTowerFactory {
private var _towerFactory:ITowerFactory;
private var _bitmapRender:BitmapRender;
private var _renderEngine:RenderEngine;
private var _soundManager:SoundManager;
public function ShopTowerFactory(_arg1:RenderEngine, _arg2:BitmapRender, _arg3:ITowerFactory, _arg4:SoundManager){
_renderEngine = _arg1;
_bitmapRender = _arg2;
_towerFactory = _arg3;
_soundManager = _arg4;
}
public function create(_arg1:TowerProperty, _arg2:ShopVars):ShopTower{
_renderEngine.add(new ShopTowerView(_bitmapRender, _arg1, _arg2, _soundManager));
return (new ShopTower(_arg1, _towerFactory));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.shop
Section 58
//ShopTowerView (com.midasplayer.jeweldefence.towerdefence.shop.ShopTowerView)
package com.midasplayer.jeweldefence.towerdefence.shop {
import com.midasplayer.debug.*;
import com.midasplayer.jeweldefence.*;
import flash.display.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import com.midasplayer.jeweldefence.towerdefence.tower.*;
import com.midasplayer.jeweldefence.towerdefence.weapon.*;
import flash.geom.*;
public class ShopTowerView implements IBitmapRenderable {
private var _shopVars:ShopVars;
private var _grayBRO:BitmapRenderObject;
private var _bitmapNumber:BitmapNumber;
private var _bar1:BitmapRenderObject;
private var _property:TowerProperty;
private var _bar1RenderRect:Rectangle;
private var _bar2:BitmapRenderObject;
private var _bar2RenderRect:Rectangle;
private static const grayPigBitmapData:BitmapData = new shop_pig_grey(0, 0);
private static const numberBitmapData:Array = new Array(new numbers_shop_0(0, 0), new numbers_shop_1(0, 0), new numbers_shop_2(0, 0), new numbers_shop_3(0, 0), new numbers_shop_4(0, 0), new numbers_shop_5(0, 0), new numbers_shop_6(0, 0), new numbers_shop_7(0, 0), new numbers_shop_8(0, 0), new numbers_shop_9(0, 0));
public static const MAX_DAMAGE:Number = 12;
private static const grayFishleBitmapData:BitmapData = new shop_fish_grey(0, 0);
public static const MAX_FIRE_RATE:Number = 50;
private static const grayAppleBitmapData:BitmapData = new shop_apple_grey(0, 0);
private static const grayBeeBitmapData:BitmapData = new shop_bee_grey(0, 0);
private static const bar1BitmapData:BitmapData = new BitmapData(50, 4, false, 16568838);
private static const bar2BitmapData:BitmapData = new BitmapData(50, 4, false, 4116699);
public function ShopTowerView(_arg1:BitmapRender, _arg2:TowerProperty, _arg3:ShopVars, _arg4:SoundManager){
var _local7:Number;
var _local9:Number;
super();
_property = _arg2;
_shopVars = _arg3;
_bitmapNumber = new BitmapNumber(new BitmapRenderSequence(_arg1, numberBitmapData));
if ((_property is FireTowerProperty)){
_grayBRO = new BitmapRenderObject(_arg1, grayAppleBitmapData);
} else {
if ((_property is MissileTowerProperty)){
_grayBRO = new BitmapRenderObject(_arg1, grayBeeBitmapData);
} else {
if ((_property is LightningTowerProperty)){
_grayBRO = new BitmapRenderObject(_arg1, grayFishleBitmapData);
} else {
if ((_property is SlowTowerProperty)){
_grayBRO = new BitmapRenderObject(_arg1, grayPigBitmapData);
};
};
};
};
var _local5:Number = ((LightningProperty.s_timeToLive * 1000) / JewelDefenceEngine.s_tickInterval);
(LightningTowerProperty.s_damage1 * _local5);
var _local6:Number = _property.damage;
if ((_property is LightningTowerProperty)){
_local6 = (_local6 * _local5);
};
_local7 = (_local6 / MAX_DAMAGE);
var _local8:Number = int((bar1BitmapData.width * _local7));
Debug.assert((_local7 <= 1), "maxDamage value maybe to low");
_bar1RenderRect = new Rectangle(0, 0, _local8, bar1BitmapData.height);
_bar1 = new BitmapRenderObject(_arg1, bar1BitmapData);
_local9 = (1 - (_property.fireRate / MAX_FIRE_RATE));
var _local10:Number = int((bar2BitmapData.width * _local9));
Debug.assert((_local9 <= 1), "maxFireRate value maybe to low");
_bar2RenderRect = new Rectangle(0, 0, _local10, bar1BitmapData.height);
_bar2 = new BitmapRenderObject(_arg1, bar2BitmapData);
}
public function isRemovable():Boolean{
return (false);
}
public function render(_arg1:int, _arg2:Number):void{
if (_shopVars.money < _property.cost){
_grayBRO.render(_property.pos.x, _property.pos.y);
};
_bar1.renderRect((_property.pos.x + 3), (_property.pos.y + 56), _bar1RenderRect);
_bar2.renderRect((_property.pos.x + 3), (_property.pos.y + 61), _bar2RenderRect);
_bitmapNumber.renderTopLeft(_property.minActivationCost, (_property.pos.x + 15), (_property.pos.y + 71), 6);
_bitmapNumber.renderTopLeft(_property.cost, (_property.pos.x + 33), (_property.pos.y + 71), 6);
}
public function getDepth():int{
return (RenderDepths.SHOP_TOWER);
}
}
}//package com.midasplayer.jeweldefence.towerdefence.shop
Section 59
//ShopVars (com.midasplayer.jeweldefence.towerdefence.shop.ShopVars)
package com.midasplayer.jeweldefence.towerdefence.shop {
import com.midasplayer.jeweldefence.towerdefence.*;
public class ShopVars {
public var money:int;
public var dropped:Boolean;// = false
public var dragTower:IEntity;// = null
public var canDrop:Boolean;// = false
public var shopTowers:Array;
public static var s_initialMoney:int = 500;
public function ShopVars(_arg1:Array){
money = s_initialMoney;
super();
this.shopTowers = _arg1;
}
}
}//package com.midasplayer.jeweldefence.towerdefence.shop
Section 60
//ShopView (com.midasplayer.jeweldefence.towerdefence.shop.ShopView)
package com.midasplayer.jeweldefence.towerdefence.shop {
import com.midasplayer.game.comm.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import com.midasplayer.jeweldefence.towerdefence.tower.*;
import com.midasplayer.jeweldefence.towerdefence.weapon.*;
import flash.utils.*;
public class ShopView implements IBitmapRenderable {
private const _infos:Dictionary;
private const _coinAnims:Array;
private var _bitmapRender:BitmapRender;
private var _input:Input;
private var _goldNumbers:BitmapNumber;
private var _lastMoney:int;// = 0
private var _shopVars:ShopVars;
private var _rightBackground:BitmapRenderObject;
private var _leftBackground:BitmapRenderObject;
private var _soundManager:SoundManager;
private static const _coinInData:Array = new Array(new coin_incoming_6(0, 0), new coin_incoming_7(0, 0), new coin_incoming_8(0, 0), new coin_incoming_9(0, 0), new coin_incoming_10(0, 0), new coin_incoming_11(0, 0), new coin_incoming_12(0, 0), new coin_incoming_13(0, 0), new coin_incoming_14(0, 0), new coin_incoming_15(0, 0), new coin_incoming_16(0, 0), new coin_incoming_17(0, 0), new coin_incoming_18(0, 0), new coin_incoming_19(0, 0), new coin_incoming_20(0, 0), new coin_incoming_21(0, 0), new coin_incoming_22(0, 0));
private static const s_goldNumbersData:Array = new Array(new numbers_gold_0(0, 0), new numbers_gold_1(0, 0), new numbers_gold_2(0, 0), new numbers_gold_3(0, 0), new numbers_gold_4(0, 0), new numbers_gold_5(0, 0), new numbers_gold_6(0, 0), new numbers_gold_7(0, 0), new numbers_gold_8(0, 0), new numbers_gold_9(0, 0));
private static const _coinOutData:Array = new Array(new coin_outgoing_1(0, 0), new coin_outgoing_2(0, 0), new coin_outgoing_3(0, 0), new coin_outgoing_4(0, 0), new coin_outgoing_5(0, 0), new coin_outgoing_6(0, 0), new coin_outgoing_7(0, 0), new coin_outgoing_8(0, 0), new coin_outgoing_9(0, 0), new coin_outgoing_10(0, 0), new coin_outgoing_11(0, 0), new coin_outgoing_12(0, 0), new coin_outgoing_13(0, 0), new coin_outgoing_14(0, 0), new coin_outgoing_15(0, 0), new coin_outgoing_16(0, 0));
public function ShopView(_arg1:BitmapRender, _arg2:ShopVars, _arg3:Input, _arg4:GameDataParser, _arg5:SoundManager){
_infos = new Dictionary();
_coinAnims = new Array();
super();
_bitmapRender = _arg1;
_shopVars = _arg2;
_input = _arg3;
_soundManager = _arg5;
_goldNumbers = new BitmapNumber(new BitmapRenderSequence(_arg1, s_goldNumbersData));
var _local6:String = _arg4.getText("shop_damage");
var _local7:String = _arg4.getText("shop_speed");
var _local8:String = _arg4.getText("shop_cost");
_infos[FireTowerProperty] = _createInfoRenderObject(_arg1, _arg4.getText("shop_fireTowerInfoHeader"), _arg4.getText("shop_fireTowerInfoText"), _local6, _local7, _local8, new FireTowerProperty(new Vec2(), 0));
_infos[MissileTowerProperty] = _createInfoRenderObject(_arg1, _arg4.getText("shop_missileTowerInfoHeader"), _arg4.getText("shop_missileTowerInfoText"), _local6, _local7, _local8, new MissileTowerProperty(new Vec2(), 0));
_infos[LightningTowerProperty] = _createInfoRenderObject(_arg1, _arg4.getText("shop_lightningTowerInfoHeader"), _arg4.getText("shop_lightningTowerInfoText"), _local6, _local7, _local8, new LightningTowerProperty(new Vec2(), 0));
_infos[SlowTowerProperty] = _createInfoRenderObject(_arg1, _arg4.getText("shop_slowTowerInfoHeader"), _arg4.getText("shop_slowTowerInfoText"), _local6, _local7, _local8, new SlowTowerProperty(new Vec2(), 0));
_lastMoney = _shopVars.money;
_leftBackground = new BitmapRenderObject(_arg1, new background_left(0, 0));
_rightBackground = new BitmapRenderObject(_arg1, new background_right(0, 0));
}
public function getDepth():int{
return (RenderDepths.SHOP);
}
public function isRemovable():Boolean{
return (false);
}
public function render(_arg1:int, _arg2:Number):void{
var _local5:ShopTower;
var _local6:TowerProperty;
var _local7:Class;
var _local8:BitmapRenderObject;
_leftBackground.render(0, 0);
_rightBackground.render(640, 0);
_goldNumbers.renderCentre(_shopVars.money, 700, 48, 19, 10);
var _local3:Vec2 = _input.getMousePosition();
var _local4:Array = _shopVars.shopTowers;
for each (_local5 in _local4) {
if (_local5.hitTest(_local3)){
_local6 = _local5.getProperty();
_local7 = (getDefinitionByName(getQualifiedClassName(_local6)) as Class);
_local8 = _infos[_local7];
_local8.render(645, 290);
break;
};
};
_renderCoin(_arg1, _arg2);
}
private function _renderCoin(_arg1:int, _arg2:Number):void{
var _local4:AnimSequence;
var _local5:AnimSequence;
if (_lastMoney != _shopVars.money){
if (_lastMoney > _shopVars.money){
_local4 = new AnimSequence(new BitmapRenderSequence(_bitmapRender, _coinOutData));
_local4.setPosition(new Vec2(685, 8));
_soundManager.getFromClass(place_tower_1s).play(SoundVars.SOUND_VOLUME);
} else {
_local4 = new AnimSequence(new BitmapRenderSequence(_bitmapRender, _coinInData));
_local4.setPosition(new Vec2(685, 0));
};
_local4.play();
_coinAnims.push(_local4);
_lastMoney = _shopVars.money;
};
var _local3:int;
while (_local3 < _coinAnims.length) {
_local5 = _coinAnims[_local3];
_local5.render((_arg1 + _arg2));
if (_local5.isPlaying()){
} else {
if (_local3 == (_coinAnims.length - 1)){
_coinAnims.pop();
} else {
var _temp1 = _local3;
_local3 = (_local3 - 1);
var _local6 = _temp1;
_coinAnims[_local6] = _coinAnims.pop();
};
};
_local3++;
};
}
private function _createInfoRenderObject(_arg1:BitmapRender, _arg2:String, _arg3:String, _arg4:String, _arg5:String, _arg6:String, _arg7:TowerProperty):BitmapRenderObject{
var _local13:Number;
var _local8:MovieClip = new ShopInfoTexts();
_local8.header_txt.text = _arg2;
_local8.info_txt.text = _arg3;
_local8.damage_txt.text = _arg4;
_local8.speed_txt.text = _arg5;
_local8.cost_txt.text = _arg6;
var _local9:Number = _arg7.damage;
if ((_arg7 is LightningTowerProperty)){
_local13 = ((LightningProperty.s_timeToLive * 1000) / JewelDefenceEngine.s_tickInterval);
_local9 = (_local9 * _local13);
};
var _local10:Number = int(((100 * _local9) / ShopTowerView.MAX_DAMAGE));
_local8.damage.text = _local10.toString();
var _local11:Number = int((100 * (1 - (_arg7.fireRate / ShopTowerView.MAX_FIRE_RATE))));
_local8.speed.text = _local11.toString();
_local8.cost.text = _arg7.cost;
var _local12:BitmapData = new BitmapData(_local8.width, _local8.height, true, 0);
_local12.draw(_local8);
return (new BitmapRenderObject(_arg1, _local12));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.shop
Section 61
//AimTower (com.midasplayer.jeweldefence.towerdefence.tower.AimTower)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.debug.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.weapon.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
import com.midasplayer.jeweldefence.towerdefence.enemy.*;
public class AimTower extends Tower {
protected const _physics:Physics;
protected var _path:Path;
protected var _lastFire:int;// = -1000000
protected var _enemyCollection:EntityCollection;
protected var _weaponFactory:WeaponFactory;
private var _property:TowerProperty;
public function AimTower(_arg1:TowerProperty, _arg2:WeaponFactory, _arg3:EntityCollection, _arg4:IEntityAdder, _arg5:Path){
_physics = new Physics();
super(_arg4);
_property = _arg1;
_enemyCollection = _arg3;
_weaponFactory = _arg2;
_path = _arg5;
}
protected function _findFireSolution(_arg1:AimProperty, _arg2:EnemyProperty):Vec2{
var _local7:Enemy;
var _local8:DiscCollisionBody;
var _local14:Vec2;
var _local15:Vec2;
var _local16:Number;
var _local17:int;
var _local18:AimProperty;
var _local19:IEntity;
var _local20:IEntity;
var _local21:int;
var _local3:Number = _arg2.travelDistance;
var _local4:Number = _arg2.speed;
var _local5:Number = _arg1.speed;
var _local6:Vec2 = _arg1.pos;
_local7 = new Enemy(_arg2.clone(), _path);
_local8 = (_local7.getWorldCollisionBody() as DiscCollisionBody);
var _local9:Vec2 = _local8.getCenter().clone();
var _local10:Vec2 = new Vec2(-1000, -1000);
var _local11:Number = ((_local8.getRadius() * _local8.getRadius()) * 4);
var _local12:int;
var _local13:int;
while (_local13 < 60) {
_local14 = _local8.getCenter();
if (_local14.distanceSqr(_local10) < _local11){
_local7.tick(_local13);
} else {
_local10.copy(_local14);
_local15 = _local14.sub(_local6);
_local16 = _local15.length;
Debug.assert((_local16 > 1E-6), "The distance from a fire start pos to an enemy is to short.");
_local15.normalizeSelf();
_local17 = ((_local16 + 64) / _local5);
_local18 = _arg1.clone();
_local18.shootAt = _local14;
_local19 = _weaponFactory.create(_local18, _arg2, false);
_local20 = new Enemy(_arg2.clone(), _path);
_local21 = 0;
while (_local21 < _local17) {
if (_local18.removable){
break;
};
if (_physics.collides(_local20.getWorldCollisionBody(), _local19.getWorldCollisionBody())){
return (_local14);
};
_local19.tick(_local21);
_local20.tick(_local21);
_local21++;
};
_local7.tick(_local13);
};
_local13++;
};
return (_local9);
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 62
//FireTower (com.midasplayer.jeweldefence.towerdefence.tower.FireTower)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.weapon.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
import com.midasplayer.jeweldefence.towerdefence.enemy.*;
public class FireTower extends AimTower implements IEntity {
private var _property:FireTowerProperty;
public function FireTower(_arg1:FireTowerProperty, _arg2:WeaponFactory, _arg3:EntityCollection, _arg4:IEntityAdder, _arg5:Path){
super(_arg1, _arg2, _arg3, _arg4, _arg5);
_property = _arg1;
}
public function getProperty():Property{
return (_property);
}
public function tick(_arg1:int):void{
if (!_property.active){
return;
};
if ((_arg1 - _lastFire) < _property.fireRate){
return;
};
var _local2:Array = _enemyCollection.getWithin(_property.pos, _property.range);
if (_local2.length == 0){
return;
};
var _local3:EnemyProperty = _getClosestToGoal(_local2);
var _local4:FireProperty = new FireProperty(_property.pos, _property.damage, new Vec2());
_local4.shootAt = _findFireSolution(_local4, _local3);
_weaponAdder.add(_weaponFactory.create(_local4, _local3, true));
_lastFire = _arg1;
}
public function getWorldCollisionBody():ICollisionBody{
return (_property.collisionBody.transform(_property.pos, null));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 63
//FireTowerProperty (com.midasplayer.jeweldefence.towerdefence.tower.FireTowerProperty)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class FireTowerProperty extends TowerProperty {
public static var s_activationLevel3:int = 9;
public static var s_damage1:Number = 3;
public static var s_damage2:Number = 4;
public static var s_damage3:Number = 7;
public static var s_cost:int = 100;
public static var s_range1:Number = 64;
public static var s_range2:Number = 96;
public static var s_range3:Number = 128;
public static var s_fireRate1:Number = 0.75;
public static var s_fireRate3:Number = 0.5;
public static var s_activationLevel1:int = 6;
public static var s_fireRate2:Number = 0.65;
public static var s_activationLevel2:int = 7;
public function FireTowerProperty(_arg1:Vec2, _arg2:int){
var _local3:Number = ((_arg2 >= s_activationLevel3)) ? s_damage3 : ((_arg2 >= s_activationLevel2)) ? s_damage2 : s_damage1;
var _local4:Number = ((_arg2 >= s_activationLevel3)) ? s_fireRate3 : ((_arg2 >= s_activationLevel2)) ? s_fireRate2 : s_fireRate1;
var _local5:Number = ((_arg2 >= s_activationLevel3)) ? s_range3 : ((_arg2 >= s_activationLevel2)) ? s_range2 : s_range1;
var _local6:int = ((_arg2 >= s_activationLevel3)) ? 3 : ((_arg2 >= s_activationLevel2)) ? 2 : 1;
super(_arg1, _local3, _local4, _local5, s_cost, s_activationLevel1, _local6, new DiscCollisionBody(new Vec2(0, 16), 16));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 64
//FireTowerView (com.midasplayer.jeweldefence.towerdefence.tower.FireTowerView)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.jeweldefence.*;
import flash.display.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class FireTowerView implements IBitmapRenderable {
private var _tower:BitmapRenderObject;
private var _property:FireTowerProperty;
private static const s_towerLevel1:BitmapData = new fire_level_1(0, 0);
private static const s_towerLevel2:BitmapData = new fire_level_2(0, 0);
private static const s_towerLevel3:BitmapData = new fire_level_3(0, 0);
public function FireTowerView(_arg1:BitmapRender, _arg2:FireTowerProperty){
_property = _arg2;
if (_property.level == 3){
_tower = new BitmapRenderObject(_arg1, s_towerLevel3);
} else {
if (_property.level == 2){
_tower = new BitmapRenderObject(_arg1, s_towerLevel2);
} else {
_tower = new BitmapRenderObject(_arg1, s_towerLevel1);
};
};
}
public function isRemovable():Boolean{
return (_property.removable);
}
public function render(_arg1:int, _arg2:Number):void{
if (_property.removable){
return;
};
_tower.renderMiddle(_property.pos.x, _property.pos.y);
}
public function getDepth():int{
return ((RenderDepths.TOWER + _property.pos.y));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 65
//ITowerFactory (com.midasplayer.jeweldefence.towerdefence.tower.ITowerFactory)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.jeweldefence.towerdefence.*;
public interface ITowerFactory {
function create(_arg1:TowerProperty, _arg2:Boolean):IEntity;
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 66
//LightningTower (com.midasplayer.jeweldefence.towerdefence.tower.LightningTower)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.weapon.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
import com.midasplayer.jeweldefence.towerdefence.enemy.*;
public class LightningTower extends Tower implements IEntity {
private var _enemyCollection:EntityCollection;
private var _weaponFactory:WeaponFactory;
private var _property:LightningTowerProperty;
public function LightningTower(_arg1:LightningTowerProperty, _arg2:WeaponFactory, _arg3:EntityCollection, _arg4:IEntityAdder){
super(_arg4);
_property = _arg1;
_weaponFactory = _arg2;
_enemyCollection = _arg3;
}
public function getProperty():Property{
return (_property);
}
public function tick(_arg1:int):void{
if (!_property.active){
return;
};
if ((_arg1 - _property.lastFireTick) < _property.fireRate){
return;
};
_property.dir = null;
var _local2:Array = _enemyCollection.getWithin(_property.pos, _property.range);
if (_local2.length == 0){
return;
};
var _local3:EnemyProperty = _getClosestToGoal(_local2);
_property.dir = _local3.pos.sub(_property.pos);
_weaponAdder.add(_weaponFactory.create(new LightningProperty(_property.pos, _property.damage, _property.range), _local3, true));
_property.lastFireTick = _arg1;
}
public function getWorldCollisionBody():ICollisionBody{
return (_property.collisionBody.transform(_property.pos, null));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 67
//LightningTowerProperty (com.midasplayer.jeweldefence.towerdefence.tower.LightningTowerProperty)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class LightningTowerProperty extends TowerProperty {
public var lastFireTick:int;// = -1000000
public var dir:Vec2;// = null
public static var s_activationLevel3:int = 12;
public static var s_damage1:Number = 0.5;
public static var s_damage2:Number = 0.7;
public static var s_damage3:Number = 0.9;
public static var s_cost:int = 100;
public static var s_range1:Number = 80;
public static var s_range2:Number = 112;
public static var s_range3:Number = 144;
public static var s_fireRate1:Number = 1.8;
public static var s_fireRate3:Number = 1.2;
public static var s_activationLevel1:int = 9;
public static var s_fireRate2:Number = 1.6;
public static var s_activationLevel2:int = 10;
public function LightningTowerProperty(_arg1:Vec2, _arg2:int){
var _local3:Number = ((_arg2 >= s_activationLevel3)) ? s_damage3 : ((_arg2 >= s_activationLevel2)) ? s_damage2 : s_damage1;
var _local4:Number = ((_arg2 >= s_activationLevel3)) ? s_fireRate3 : ((_arg2 >= s_activationLevel2)) ? s_fireRate2 : s_fireRate1;
var _local5:Number = ((_arg2 >= s_activationLevel3)) ? s_range3 : ((_arg2 >= s_activationLevel2)) ? s_range2 : s_range1;
var _local6:int = ((_arg2 >= s_activationLevel3)) ? 3 : ((_arg2 >= s_activationLevel2)) ? 2 : 1;
super(_arg1, _local3, _local4, _local5, s_cost, s_activationLevel1, _local6, new DiscCollisionBody(new Vec2(0, 0), 16));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 68
//LightningTowerView (com.midasplayer.jeweldefence.towerdefence.tower.LightningTowerView)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.debug.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import com.midasplayer.jeweldefence.towerdefence.weapon.*;
public class LightningTowerView implements IBitmapRenderable {
private const _open:Array;
private const _closed:Array;
private var _down:BitmapRenderObject;
private var _diveAnim:AnimSequence;
private var _property:LightningTowerProperty;
private var _riseAnim:AnimSequence;
private var _decorationsBRSeq:BitmapRenderSequence;
private var _state:int;// = 0
private static const _DOWN:int = 0;
private static const _openData:Array = new Array(fishTower6, fishTower8, fishTower10, fishTower12, fishTower14, fishTower16, fishTower2, fishTower4);
private static const _waterDecorations:Array = new Array(fishTowerWaterDecorationLevel2, fishTowerWaterDecorationLevel3);
private static const _diveData:Array = new Array(fishTowerRising4, fishTowerRising3, fishTowerRising2);
private static const fishTowerWaterDecorationLevel2:BitmapData = new water_level2_icon(0, 0);
private static const fishTowerWaterDecorationLevel3:BitmapData = new water_level3_icon(0, 0);
private static const _RISE:int = 1;
private static const _renderOffset:Vec2 = new Vec2(-20, 0);
private static const _UP:int = 3;
private static const fishTower1:BitmapData = new fish_tower_01_level_1(0, 0);
private static const fishTower2:BitmapData = new fish_tower_02_level_1(0, 0);
private static const fishTower3:BitmapData = new fish_tower_03_level_1(0, 0);
private static const fishTower4:BitmapData = new fish_tower_04_level_1(0, 0);
private static const fishTower5:BitmapData = new fish_tower_05_level_1(0, 0);
private static const fishTower6:BitmapData = new fish_tower_06_level_1(0, 0);
private static const fishTower7:BitmapData = new fish_tower_07_level_1(0, 0);
private static const fishTower8:BitmapData = new fish_tower_08_level_1(0, 0);
private static const fishTower9:BitmapData = new fish_tower_09_level_1(0, 0);
private static const _DIVE:int = 2;
private static const _closedData:Array = new Array(fishTower5, fishTower7, fishTower9, fishTower11, fishTower13, fishTower15, fishTower1, fishTower3);
private static const fishTowerRising1:BitmapData = new fish_tower_rising_01_level_1(0, 0);
private static const fishTowerRising2:BitmapData = new fish_tower_rising_02_level_1(0, 0);
private static const fishTowerRising3:BitmapData = new fish_tower_rising_03_level_1(0, 0);
private static const fishTowerRising4:BitmapData = new fish_tower_rising_04_level_1(0, 0);
private static const fishTower10:BitmapData = new fish_tower_10_level_1(0, 0);
private static const fishTower11:BitmapData = new fish_tower_11_level_1(0, 0);
private static const fishTower12:BitmapData = new fish_tower_12_level_1(0, 0);
private static const _2PI:Number = 6.28318530717959;
private static const fishTower15:BitmapData = new fish_tower_15_level_1(0, 0);
private static const fishTower16:BitmapData = new fish_tower_16_level_1(0, 0);
private static const _riseData:Array = new Array(fishTowerRising2, fishTowerRising3, fishTowerRising4);
private static const fishTower13:BitmapData = new fish_tower_13_level_1(0, 0);
private static const fishTower14:BitmapData = new fish_tower_14_level_1(0, 0);
private static const _slice1:Vec2 = new Vec2(0, -1).rotate((-(_2PI) / 16));
public function LightningTowerView(_arg1:BitmapRender, _arg2:LightningTowerProperty){
var _local3:BitmapData;
var _local4:BitmapData;
_closed = new Array();
_open = new Array();
super();
Debug.assert((_arg2 is LightningTowerProperty), "Expected lightning tower property.");
_property = _arg2;
for each (_local3 in _closedData) {
_closed.push(new BitmapRenderObject(_arg1, _local3));
};
for each (_local4 in _openData) {
_open.push(new BitmapRenderObject(_arg1, _local4));
};
_down = new BitmapRenderObject(_arg1, fishTowerRising1);
_riseAnim = new AnimSequence(new BitmapRenderSequence(_arg1, _riseData));
_diveAnim = new AnimSequence(new BitmapRenderSequence(_arg1, _diveData));
_riseAnim.setSpeed(1.7);
_decorationsBRSeq = new BitmapRenderSequence(_arg1, _waterDecorations);
}
public function isRemovable():Boolean{
return (_property.removable);
}
public function render(_arg1:int, _arg2:Number):void{
var _local4:Number;
var _local5:int;
var _local6:int;
if ((((_state == _DOWN)) && (!((_property.dir == null))))){
_diveAnim.stop();
_riseAnim.play();
_state = _RISE;
} else {
if ((((_state == _UP)) && ((_property.dir == null)))){
_riseAnim.stop();
_diveAnim.play();
_state = _DIVE;
};
};
var _local3:Vec2 = _property.pos.add(new Vec2(-24, -20));
if (_state == _DOWN){
_down.render(_local3.x, _local3.y);
} else {
if (_state == _RISE){
_riseAnim.setPosition(_local3);
_riseAnim.render((_arg1 + _arg2));
if (!_riseAnim.isPlaying()){
_state = _UP;
};
} else {
if (_state == _DIVE){
_diveAnim.setPosition(_local3);
_diveAnim.render((_arg1 + _arg2));
if (!_diveAnim.isPlaying()){
_state = _DOWN;
};
} else {
if (_state == _UP){
Debug.assert((_closed.length == _open.length), "Open mouth and closed should have same number of frames.");
_local4 = (_slice1.cwRadiansBetween(_property.dir) / _2PI);
_local5 = (_closed.length * _local4);
Debug.assert((_local5 < _closed.length), "Lightning tower bitmap index out of bounds.");
_local6 = (LightningProperty.s_timeToLive * (1000 / JewelDefenceEngine.s_tickInterval));
if (_arg1 < (_property.lastFireTick + _local6)){
_open[_local5].render(_local3.x, _local3.y);
} else {
_closed[_local5].render(_local3.x, _local3.y);
};
};
};
};
};
if (_property.level == 2){
_decorationsBRSeq.render(0, _local3.x, _local3.y);
} else {
if (_property.level == 3){
_decorationsBRSeq.render(1, _local3.x, _local3.y);
};
};
}
public function getDepth():int{
return ((RenderDepths.TOWER + _property.pos.y));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 69
//MissileTower (com.midasplayer.jeweldefence.towerdefence.tower.MissileTower)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.weapon.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
import com.midasplayer.jeweldefence.towerdefence.enemy.*;
public class MissileTower extends Tower implements IEntity {
private var _enemyCollection:EntityCollection;
private var _weaponFactory:WeaponFactory;
private var _property:MissileTowerProperty;
private var _lastFire:int;// = -1000000
public function MissileTower(_arg1:MissileTowerProperty, _arg2:WeaponFactory, _arg3:EntityCollection, _arg4:IEntityAdder){
super(_arg4);
_property = _arg1;
_weaponFactory = _arg2;
_enemyCollection = _arg3;
}
public function getProperty():Property{
return (_property);
}
public function tick(_arg1:int):void{
if (!_property.active){
return;
};
if ((_arg1 - _lastFire) < _property.fireRate){
return;
};
var _local2:Array = _enemyCollection.getWithin(_property.pos, _property.range);
if (_local2.length == 0){
return;
};
var _local3:EnemyProperty = _getClosestToGoal(_local2);
_weaponAdder.add(_weaponFactory.create(new MissileProperty(_property.pos, _property.damage), _local3, true));
_lastFire = _arg1;
}
public function getWorldCollisionBody():ICollisionBody{
return (_property.collisionBody.transform(_property.pos, null));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 70
//MissileTowerProperty (com.midasplayer.jeweldefence.towerdefence.tower.MissileTowerProperty)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class MissileTowerProperty extends TowerProperty {
public static var s_activationLevel3:int = 12;
public static var s_damage1:Number = 9;
public static var s_damage2:Number = 14;
public static var s_damage3:Number = 19;
public static var s_cost:int = 200;
public static var s_range1:Number = 80;
public static var s_range2:Number = 112;
public static var s_range3:Number = 144;
public static var s_fireRate1:Number = 1.1;
public static var s_fireRate3:Number = 0.85;
public static var s_activationLevel1:int = 9;
public static var s_fireRate2:Number = 0.95;
public static var s_activationLevel2:int = 10;
public function MissileTowerProperty(_arg1:Vec2, _arg2:int){
var _local3:Number = ((_arg2 >= s_activationLevel3)) ? s_damage3 : ((_arg2 >= s_activationLevel2)) ? s_damage2 : s_damage1;
var _local4:Number = ((_arg2 >= s_activationLevel3)) ? s_fireRate3 : ((_arg2 >= s_activationLevel2)) ? s_fireRate2 : s_fireRate1;
var _local5:Number = ((_arg2 >= s_activationLevel3)) ? s_range3 : ((_arg2 >= s_activationLevel2)) ? s_range2 : s_range1;
var _local6:int = ((_arg2 >= s_activationLevel3)) ? 3 : ((_arg2 >= s_activationLevel2)) ? 2 : 1;
super(_arg1, _local3, _local4, _local5, s_cost, s_activationLevel1, _local6, new DiscCollisionBody(new Vec2(0, 16), 16));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 71
//MissileTowerView (com.midasplayer.jeweldefence.towerdefence.tower.MissileTowerView)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.jeweldefence.*;
import flash.display.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class MissileTowerView implements IBitmapRenderable {
private var _tower:BitmapRenderObject;
private var _property:MissileTowerProperty;
private static const s_towerLevel1:BitmapData = new missile_level_1(0, 0);
private static const s_towerLevel2:BitmapData = new missile_level_2(0, 0);
private static const s_towerLevel3:BitmapData = new missile_level_3(0, 0);
public function MissileTowerView(_arg1:BitmapRender, _arg2:MissileTowerProperty){
_property = _arg2;
if (_property.level == 3){
_tower = new BitmapRenderObject(_arg1, s_towerLevel3);
} else {
if (_property.level == 2){
_tower = new BitmapRenderObject(_arg1, s_towerLevel2);
} else {
_tower = new BitmapRenderObject(_arg1, s_towerLevel1);
};
};
}
public function isRemovable():Boolean{
return (_property.removable);
}
public function render(_arg1:int, _arg2:Number):void{
if (_property.removable){
return;
};
_tower.renderMiddle(_property.pos.x, _property.pos.y);
}
public function getDepth():int{
return ((RenderDepths.TOWER + _property.pos.y));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 72
//RangeView (com.midasplayer.jeweldefence.towerdefence.tower.RangeView)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.shop.*;
import flash.utils.*;
public class RangeView implements IBitmapRenderable {
private const _greenDiscs:Dictionary;
private const _redDiscs:Dictionary;
private var _shopVars:ShopVars;
private var _soundManager:SoundManager;
private var _towers:EntityCollection;
private var _input:Input;
public function RangeView(_arg1:BitmapRender, _arg2:EntityCollection, _arg3:ShopVars, _arg4:Input, _arg5:SoundManager){
_greenDiscs = new Dictionary();
_redDiscs = new Dictionary();
super();
_towers = _arg2;
_shopVars = _arg3;
_input = _arg4;
_soundManager = _arg5;
_addDiscs(_arg1, FireTowerProperty.s_range1);
_addDiscs(_arg1, FireTowerProperty.s_range2);
_addDiscs(_arg1, FireTowerProperty.s_range3);
_addDiscs(_arg1, MissileTowerProperty.s_range1);
_addDiscs(_arg1, MissileTowerProperty.s_range2);
_addDiscs(_arg1, MissileTowerProperty.s_range3);
_addDiscs(_arg1, LightningTowerProperty.s_range1);
_addDiscs(_arg1, LightningTowerProperty.s_range2);
_addDiscs(_arg1, LightningTowerProperty.s_range3);
_addDiscs(_arg1, SlowTowerProperty.s_range1);
_addDiscs(_arg1, SlowTowerProperty.s_range2);
_addDiscs(_arg1, SlowTowerProperty.s_range3);
}
private function _createDisc(_arg1:BitmapRender, _arg2:Number, _arg3:int):BitmapRenderObject{
var _local4:Sprite = new Sprite();
_local4.graphics.beginFill(_arg3, 0.25);
_local4.graphics.drawCircle(_arg2, _arg2, _arg2);
_local4.graphics.endFill();
var _local5:BitmapData = new BitmapData((_arg2 * 2), (_arg2 * 2), true, 0);
_local5.draw(_local4);
return (new BitmapRenderObject(_arg1, _local5));
}
public function isRemovable():Boolean{
return (false);
}
public function getDepth():int{
return (RenderDepths.RANGE);
}
public function render(_arg1:int, _arg2:Number):void{
var _local4:IEntity;
var _local5:TowerProperty;
var _local6:int;
var _local7:BitmapRenderObject;
var _local8:Vec2;
var _local9:TowerProperty;
var _local10:BitmapRenderObject;
if (_shopVars.dragTower != null){
_local5 = (_shopVars.dragTower.getProperty() as TowerProperty);
_local6 = _local5.range;
_local7 = (_shopVars.canDrop) ? _greenDiscs[_local6] : _redDiscs[_local6];
_local7.renderMiddle(_local5.pos.x, _local5.pos.y);
if (((_input.mouseIsPressed()) && (!(_shopVars.canDrop)))){
_soundManager.getFromClass(negative_placement_1s).play(SoundVars.SOUND_VOLUME);
};
return;
};
var _local3:Array = _towers.getEntities();
for each (_local4 in _local3) {
_local8 = _local4.getProperty().pos;
if (_input.getMousePosition().sub(_local8).lengthSqr > (16 * 16)){
} else {
_local9 = (_local4.getProperty() as TowerProperty);
_local10 = _greenDiscs[_local9.range];
_local10.renderMiddle(_local9.pos.x, _local9.pos.y);
return;
};
};
}
private function _addDiscs(_arg1:BitmapRender, _arg2:Number):void{
_greenDiscs[_arg2] = _createDisc(_arg1, _arg2, 11531272);
_redDiscs[_arg2] = _createDisc(_arg1, _arg2, 0xFF0000);
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 73
//SlowTower (com.midasplayer.jeweldefence.towerdefence.tower.SlowTower)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.debug.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.weapon.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
import com.midasplayer.jeweldefence.towerdefence.enemy.*;
import com.midasplayer.algorithm.*;
public class SlowTower extends AimTower implements IEntity {
private var _sorter:RadixSort;
private var _property:SlowTowerProperty;
public function SlowTower(_arg1:SlowTowerProperty, _arg2:WeaponFactory, _arg3:EntityCollection, _arg4:IEntityAdder, _arg5:Path){
_sorter = new RadixSort();
super(_arg1, _arg2, _arg3, _arg4, _arg5);
_property = _arg1;
}
private function _sortEnemies(_arg1:EnemyProperty):int{
Debug.assert((_arg1.travelDistance < 0xFFFF), "An enemies travel distance is too great.");
if (_arg1.slowMul < 1){
return (0xFFFF);
};
return ((0xFFFF - _arg1.travelDistance));
}
public function getProperty():Property{
return (_property);
}
public function tick(_arg1:int):void{
var _local4:EnemyProperty;
var _local5:SlowProperty;
_property.fire = false;
if (!_property.active){
return;
};
if ((_arg1 - _lastFire) < _property.fireRate){
return;
};
var _local2:Array = _enemyCollection.getWithin(_property.pos, _property.range);
if (_local2.length == 0){
return;
};
_local2 = _sorter.sort16bit(_local2, _sortEnemies);
var _local3:EnemyProperty = _local2[0];
for each (_local4 in _local2) {
if (_local4.slowMul == 1){
_local3 = _local4;
break;
};
};
_local5 = new SlowProperty(_property.pos, _property.slowMul, new Vec2());
_local5.shootAt = _findFireSolution(_local5, _local3);
_weaponAdder.add(_weaponFactory.create(_local5, _local3, true));
_property.fire = true;
_lastFire = _arg1;
}
public function getWorldCollisionBody():ICollisionBody{
return (_property.collisionBody.transform(_property.pos, null));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 74
//SlowTowerProperty (com.midasplayer.jeweldefence.towerdefence.tower.SlowTowerProperty)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class SlowTowerProperty extends TowerProperty {
public var slowMul:Number;
public var fire:Boolean;// = false
public static var s_slow1:Number = 0.75;
public static var s_slow2:Number = 0.65;
public static var s_slow3:Number = 0.55;
public static var s_activationLevel3:int = 12;
public static var s_cost:int = 75;
public static var s_range1:Number = 64;
public static var s_range2:Number = 96;
public static var s_fireRate1:Number = 1.6;
public static var s_fireRate2:Number = 1.4;
public static var s_fireRate3:Number = 1.2;
public static var s_activationLevel1:int = 9;
public static var s_activationLevel2:int = 10;
public static var s_range3:Number = 128;
public function SlowTowerProperty(_arg1:Vec2, _arg2:int){
slowMul = ((_arg2 >= s_activationLevel3)) ? s_slow3 : ((_arg2 >= s_activationLevel2)) ? s_slow2 : s_slow1;
var _local3:Number = ((_arg2 >= s_activationLevel3)) ? s_fireRate3 : ((_arg2 >= s_activationLevel2)) ? s_fireRate2 : s_fireRate1;
var _local4:Number = ((_arg2 >= s_activationLevel3)) ? s_range3 : ((_arg2 >= s_activationLevel2)) ? s_range2 : s_range1;
var _local5:int = ((_arg2 >= s_activationLevel3)) ? 3 : ((_arg2 >= s_activationLevel2)) ? 2 : 1;
super(_arg1, 0, _local3, _local4, s_cost, s_activationLevel1, _local5, new DiscCollisionBody(new Vec2(0, 0), 16));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 75
//SlowTowerView (com.midasplayer.jeweldefence.towerdefence.tower.SlowTowerView)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class SlowTowerView implements IBitmapRenderable {
private var _animSeqLevel3:AnimSequence;
private var _animSeqLevel2:AnimSequence;
private var _animSeqLevel1Start:AnimSequence;
private var _animSeqLevel2Start:AnimSequence;
private var _animSeqLevel3Start:AnimSequence;
private var _animSeq:AnimSequence;
private var _property:SlowTowerProperty;
private var _animSeqLevel1:AnimSequence;
private static const s_level2StartBitmaps:Array = new Array(pigLevel2_3);
private static const s_level2Bitmaps:Array = new Array(pigLevel2_2, pigLevel2_1, pigLevel2_2, pigLevel2_3, pigLevel2_4, pigLevel2_5, pigLevel2_4, pigLevel2_3);
private static const pigLevel1_1:BitmapData = new pig_level_1_01(0, 0);
private static const pigLevel2_1:BitmapData = new pig_level_2_01(0, 0);
private static const pigLevel3_1:BitmapData = new pig_level3_01(0, 0);
private static const pigLevel1_4:BitmapData = new pig_level_1_04(0, 0);
private static const pigLevel1_5:BitmapData = new pig_level_1_05(0, 0);
private static const pigLevel2_5:BitmapData = new pig_level_2_05(0, 0);
private static const pigLevel3_5:BitmapData = new pig_level3_05(0, 0);
private static const pigLevel1_2:BitmapData = new pig_level_1_02(0, 0);
private static const pigLevel1_3:BitmapData = new pig_level_1_03(0, 0);
private static const pigLevel2_3:BitmapData = new pig_level_2_03(0, 0);
private static const pigLevel2_4:BitmapData = new pig_level_2_04(0, 0);
private static const pigLevel3_4:BitmapData = new pig_level3_04(0, 0);
private static const pigLevel3_2:BitmapData = new pig_level3_02(0, 0);
private static const s_level3Bitmaps:Array = new Array(pigLevel3_2, pigLevel3_1, pigLevel3_2, pigLevel3_3, pigLevel3_4, pigLevel3_5, pigLevel3_4, pigLevel3_3);
private static const s_level1Bitmaps:Array = new Array(pigLevel1_2, pigLevel1_1, pigLevel1_2, pigLevel1_3, pigLevel1_4, pigLevel1_5, pigLevel1_4, pigLevel1_3);
private static const pigLevel3_3:BitmapData = new pig_level3_03(0, 0);
private static const s_level1StartBitmaps:Array = new Array(pigLevel1_3);
private static const pigLevel2_2:BitmapData = new pig_level_2_02(0, 0);
private static const s_level3StartBitmaps:Array = new Array(pigLevel3_3);
public function SlowTowerView(_arg1:BitmapRender, _arg2:SlowTowerProperty){
_property = _arg2;
_animSeqLevel1Start = new AnimSequence(new BitmapRenderSequence(_arg1, s_level1StartBitmaps));
_animSeqLevel1 = new AnimSequence(new BitmapRenderSequence(_arg1, s_level1Bitmaps));
_animSeqLevel1.setSpeed(0.6);
_animSeqLevel2Start = new AnimSequence(new BitmapRenderSequence(_arg1, s_level2StartBitmaps));
_animSeqLevel2 = new AnimSequence(new BitmapRenderSequence(_arg1, s_level2Bitmaps));
_animSeqLevel2.setSpeed(0.6);
_animSeqLevel3Start = new AnimSequence(new BitmapRenderSequence(_arg1, s_level3StartBitmaps));
_animSeqLevel3 = new AnimSequence(new BitmapRenderSequence(_arg1, s_level3Bitmaps));
_animSeqLevel3.setSpeed(0.6);
if (_property.level == 3){
_animSeq = _animSeqLevel3Start;
} else {
if (_property.level == 2){
_animSeq = _animSeqLevel2Start;
} else {
_animSeq = _animSeqLevel1Start;
};
};
}
public function getDepth():int{
return ((RenderDepths.TOWER + _property.pos.y));
}
public function isRemovable():Boolean{
return (_property.removable);
}
public function render(_arg1:int, _arg2:Number):void{
if (_property.removable){
return;
};
if (_property.fire){
if (_property.level == 3){
_animSeq = _animSeqLevel3;
} else {
if (_property.level == 2){
_animSeq = _animSeqLevel2;
} else {
_animSeq = _animSeqLevel1;
};
};
_animSeq.play();
};
var _local3:Vec2 = _property.pos.add(new Vec2(-22, -19));
_animSeq.setPosition(_local3);
_animSeq.render((_arg1 + _arg2));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 76
//Tower (com.midasplayer.jeweldefence.towerdefence.tower.Tower)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.enemy.*;
public class Tower {
protected var _weaponAdder:IEntityAdder;
public function Tower(_arg1:IEntityAdder){
_weaponAdder = _arg1;
}
protected function _getClosestToGoal(_arg1:Array):EnemyProperty{
var _local4:EnemyProperty;
var _local2:EnemyProperty;
var _local3:Number = -1000000;
for each (_local4 in _arg1) {
if (_local4.travelDistance < _local3){
} else {
_local2 = _local4;
_local3 = _local4.travelDistance;
};
};
return (_local2);
}
public function onCollide(_arg1:Property):void{
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 77
//TowerFactory (com.midasplayer.jeweldefence.towerdefence.tower.TowerFactory)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.debug.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.weapon.*;
public class TowerFactory implements ITowerFactory {
private var _bitmapRender:BitmapRender;
private var _enemyCollection:EntityCollection;
private var _path:Path;
private var _weaponFactory:WeaponFactory;
private var _renderEngine:RenderEngine;
private var _weaponCollection:EntityCollection;
private var _soundManager:SoundManager;
public function TowerFactory(_arg1:RenderEngine, _arg2:BitmapRender, _arg3:WeaponFactory, _arg4:EntityCollection, _arg5:EntityCollection, _arg6:Path, _arg7:SoundManager){
_renderEngine = _arg1;
_bitmapRender = _arg2;
_weaponFactory = _arg3;
_enemyCollection = _arg4;
_weaponCollection = _arg5;
_path = _arg6;
_soundManager = _arg7;
}
public function create(_arg1:TowerProperty, _arg2:Boolean):IEntity{
if (_arg2){
_renderEngine.add(new UpgradeView(_bitmapRender, _arg1.level, _arg1.pos, _soundManager));
} else {
_soundManager.getFromClass(select_tower_1s).play(SoundVars.SOUND_VOLUME);
};
if ((_arg1 is FireTowerProperty)){
_renderEngine.add(new FireTowerView(_bitmapRender, (_arg1 as FireTowerProperty)));
return (new FireTower((_arg1 as FireTowerProperty), _weaponFactory, _enemyCollection, _weaponCollection, _path));
};
if ((_arg1 is MissileTowerProperty)){
_renderEngine.add(new MissileTowerView(_bitmapRender, (_arg1 as MissileTowerProperty)));
return (new MissileTower((_arg1 as MissileTowerProperty), _weaponFactory, _enemyCollection, _weaponCollection));
};
if ((_arg1 is LightningTowerProperty)){
_renderEngine.add(new LightningTowerView(_bitmapRender, (_arg1 as LightningTowerProperty)));
return (new LightningTower((_arg1 as LightningTowerProperty), _weaponFactory, _enemyCollection, _weaponCollection));
};
if ((_arg1 is SlowTowerProperty)){
_renderEngine.add(new SlowTowerView(_bitmapRender, (_arg1 as SlowTowerProperty)));
return (new SlowTower((_arg1 as SlowTowerProperty), _weaponFactory, _enemyCollection, _weaponCollection, _path));
};
Debug.assert(false, "An unkown tower type was encountered in the tower factory.");
return (null);
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 78
//TowerProperty (com.midasplayer.jeweldefence.towerdefence.tower.TowerProperty)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class TowerProperty extends CollisionProperty {
public var level:int;
public var active:Boolean;// = false
public var cost:int;
public var damage:Number;
public var minActivationCost:int;
public var fireRate:Number;
public var range:Number;
private static var s_rangeMul:Number = 1;
private static var s_damageMul:Number = 1;
private static var s_fireRateMul:Number = 1;
private static var s_costMul:Number = 1;
public function TowerProperty(_arg1:Vec2, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:int, _arg6:int, _arg7:int, _arg8:ICollisionBody){
super(_arg1, _arg8);
this.damage = (_arg2 * s_damageMul);
this.fireRate = ((_arg3 * s_fireRateMul) * (1000 / JewelDefenceEngine.s_tickInterval));
this.range = (_arg4 * s_rangeMul);
this.cost = (_arg5 * s_costMul);
this.minActivationCost = _arg6;
this.level = _arg7;
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 79
//UpgradeView (com.midasplayer.jeweldefence.towerdefence.tower.UpgradeView)
package com.midasplayer.jeweldefence.towerdefence.tower {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class UpgradeView implements IBitmapRenderable {
private var _anim:AnimSequence;
private static const _animationData1:Array = new Array(new tower_loading_1(0, 0), new tower_loading_2(0, 0), new tower_loading_3(0, 0), new tower_loading_4(0, 0), new tower_loading_5(0, 0), new tower_loading_6(0, 0), new tower_loading_7(0, 0), new tower_loading_8(0, 0), new tower_loading_9(0, 0), new tower_loading_10(0, 0), new tower_loading_11(0, 0), new tower_loading_11_1(0, 0), new tower_loading_11_2(0, 0), new tower_loading_11_3(0, 0), new tower_loading_11_4(0, 0), new tower_loading_11_5(0, 0), new tower_loading_11_6(0, 0));
private static const _animationData2:Array = new Array(new tower_loading_1(0, 0), new tower_loading_2(0, 0), new tower_loading_3(0, 0), new tower_loading_4(0, 0), new tower_loading_5(0, 0), new tower_loading_6(0, 0), new tower_loading_7(0, 0), new tower_loading_8(0, 0), new tower_loading_9(0, 0), new tower_loading_10(0, 0), new tower_loading_11(0, 0), new tower_loading_12(0, 0), new tower_loading_13(0, 0), new tower_loading_14(0, 0), new tower_loading_15(0, 0), new tower_loading_16(0, 0), new tower_loading_17(0, 0), new tower_loading_18(0, 0), new tower_loading_18_1(0, 0), new tower_loading_18_2(0, 0), new tower_loading_18_3(0, 0), new tower_loading_18_4(0, 0), new tower_loading_18_5(0, 0), new tower_loading_18_6(0, 0));
private static const _animationData3:Array = new Array(new tower_loading_1(0, 0), new tower_loading_2(0, 0), new tower_loading_3(0, 0), new tower_loading_4(0, 0), new tower_loading_5(0, 0), new tower_loading_6(0, 0), new tower_loading_7(0, 0), new tower_loading_8(0, 0), new tower_loading_9(0, 0), new tower_loading_10(0, 0), new tower_loading_11(0, 0), new tower_loading_12(0, 0), new tower_loading_13(0, 0), new tower_loading_14(0, 0), new tower_loading_15(0, 0), new tower_loading_16(0, 0), new tower_loading_17(0, 0), new tower_loading_18(0, 0), new tower_loading_19(0, 0), new tower_loading_20(0, 0), new tower_loading_21(0, 0), new tower_loading_22(0, 0), new tower_loading_23(0, 0), new tower_loading_23_1(0, 0), new tower_loading_23_2(0, 0), new tower_loading_23_3(0, 0), new tower_loading_23_4(0, 0), new tower_loading_23_5(0, 0), new tower_loading_23_6(0, 0));
private static const _soundClasses:Array = new Array(towers_activated1_1s, towers_activated2_1s, towers_activated3_1s);
public function UpgradeView(_arg1:BitmapRender, _arg2:int, _arg3:Vec2, _arg4:SoundManager){
if (_arg2 == 1){
_anim = new AnimSequence(new BitmapRenderSequence(_arg1, _animationData1));
_anim.setSpeed(0.7);
_arg4.getFromClass(_soundClasses[0]).play(SoundVars.SOUND_VOLUME);
} else {
if (_arg2 == 2){
_anim = new AnimSequence(new BitmapRenderSequence(_arg1, _animationData2));
_anim.setSpeed(0.8);
_arg4.getFromClass(_soundClasses[1]).play(SoundVars.SOUND_VOLUME);
} else {
_anim = new AnimSequence(new BitmapRenderSequence(_arg1, _animationData3));
_arg4.getFromClass(_soundClasses[2]).play(SoundVars.SOUND_VOLUME);
};
};
_anim.play();
var _local5:BitmapData = _animationData1[0];
_anim.setPosition(_arg3.add(new Vec2((-(_local5.width) * 0.5), (-(_local5.height) * 0.5))));
}
public function isRemovable():Boolean{
return (!(_anim.isPlaying()));
}
public function render(_arg1:int, _arg2:Number):void{
_anim.render((_arg1 + _arg2));
}
public function getDepth():int{
return (RenderDepths.TOWER_UPGRADE);
}
}
}//package com.midasplayer.jeweldefence.towerdefence.tower
Section 80
//AimProperty (com.midasplayer.jeweldefence.towerdefence.weapon.AimProperty)
package com.midasplayer.jeweldefence.towerdefence.weapon {
import com.midasplayer.debug.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class AimProperty extends WeaponProperty {
public var shootAt:Vec2;
public function AimProperty(_arg1:Vec2, _arg2:Number, _arg3:Number, _arg4:ICollisionBody, _arg5:Vec2){
super(_arg1, _arg2, _arg3, _arg4);
this.shootAt = _arg5.clone();
}
public function clone():AimProperty{
Debug.assert(false, "Should not close AimProperty, override it.");
return (null);
}
}
}//package com.midasplayer.jeweldefence.towerdefence.weapon
Section 81
//Fire (com.midasplayer.jeweldefence.towerdefence.weapon.Fire)
package com.midasplayer.jeweldefence.towerdefence.weapon {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class Fire extends Weapon implements IEntity {
private const _dir:Vec2;
private const _worldBody:ICollisionBody;
private var _property:FireProperty;
public function Fire(_arg1:FireProperty){
_worldBody = new DiscCollisionBody(new Vec2(), 0);
_dir = new Vec2();
super();
_property = _arg1;
_property.collisionBody.transformTo(_worldBody, _property.pos, null);
}
public function getProperty():Property{
return (_property);
}
public function getWorldCollisionBody():ICollisionBody{
return (_worldBody);
}
public function tick(_arg1:int):void{
_property.lastPos = _property.pos;
_dir.copy(_property.shootAt);
_dir.subSelf(_property.pos);
var _local2:Number = _dir.length;
if (_local2 < 1E-10){
_property.removable = true;
return;
};
_dir.normalizeSelf();
_property.shootDir.copy(_dir);
_dir.scaleSelf(Math.min(_property.speed, _local2));
_property.pos.addSelf(_dir);
_property.collisionBody.transformTo(_worldBody, _property.pos, null);
}
public function onCollide(_arg1:Property):void{
_property.removable = true;
}
}
}//package com.midasplayer.jeweldefence.towerdefence.weapon
Section 82
//FireProperty (com.midasplayer.jeweldefence.towerdefence.weapon.FireProperty)
package com.midasplayer.jeweldefence.towerdefence.weapon {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class FireProperty extends AimProperty {
public static var s_speed:Number = 150;
public function FireProperty(_arg1:Vec2, _arg2:Number, _arg3:Vec2){
super(_arg1, _arg2, s_speed, new DiscCollisionBody(new Vec2(), 5), _arg3);
}
override public function clone():AimProperty{
return (new FireProperty(pos, damage, shootAt));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.weapon
Section 83
//FireView (com.midasplayer.jeweldefence.towerdefence.weapon.FireView)
package com.midasplayer.jeweldefence.towerdefence.weapon {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class FireView implements IBitmapRenderable {
private var _weapon:BitmapRenderObject;
private var _property:WeaponProperty;
private static const s_weapon:BitmapData = new fire_apple(0, 0);
private static const _soundClasses:Array = new Array(tower_shoot_apple_1s, tower_shoot_apple_2s, tower_shoot_apple_3s);
public function FireView(_arg1:BitmapRender, _arg2:WeaponProperty, _arg3:SoundManager){
_property = _arg2;
_weapon = new BitmapRenderObject(_arg1, s_weapon);
var _local4:Sounds = new Sounds(_soundClasses, _arg3, 0.8);
_local4.play((0.1 * SoundVars.SOUND_VOLUME));
}
public function isRemovable():Boolean{
return (_property.removable);
}
public function render(_arg1:int, _arg2:Number):void{
var _local3:Vec2 = _property.lastPos;
var _local4:Vec2 = _property.pos;
var _local5:Vec2 = _local3.add(_local4.sub(_local3).scale(_arg2));
_weapon.renderMiddle(_local5.x, _local5.y);
}
public function getDepth():int{
return (RenderDepths.WEAPON);
}
}
}//package com.midasplayer.jeweldefence.towerdefence.weapon
Section 84
//IWeaponFactory (com.midasplayer.jeweldefence.towerdefence.weapon.IWeaponFactory)
package com.midasplayer.jeweldefence.towerdefence.weapon {
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.enemy.*;
public interface IWeaponFactory {
function create(_arg1:WeaponProperty, _arg2:EnemyProperty, _arg3:Boolean):IEntity;
}
}//package com.midasplayer.jeweldefence.towerdefence.weapon
Section 85
//Lightning (com.midasplayer.jeweldefence.towerdefence.weapon.Lightning)
package com.midasplayer.jeweldefence.towerdefence.weapon {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
import com.midasplayer.jeweldefence.towerdefence.enemy.*;
public class Lightning extends Weapon implements IEntity {
private var _startTick:int;// = -1
private var _property:LightningProperty;
private var _enemyProperty:EnemyProperty;
public function Lightning(_arg1:LightningProperty, _arg2:EnemyProperty){
_property = _arg1;
_enemyProperty = _arg2;
}
public function getProperty():Property{
return (_property);
}
public function getWorldCollisionBody():ICollisionBody{
return (_property.collisionBody.transform(_property.pos, _property.dir));
}
public function tick(_arg1:int):void{
if (_startTick == -1){
_startTick = _arg1;
};
_property.dir = _enemyProperty.pos.sub(_property.pos).normalize();
if ((_arg1 - _startTick) >= _property.timeLeftToLive){
_property.removable = true;
};
}
public function onCollide(_arg1:Property):void{
}
}
}//package com.midasplayer.jeweldefence.towerdefence.weapon
Section 86
//LightningProperty (com.midasplayer.jeweldefence.towerdefence.weapon.LightningProperty)
package com.midasplayer.jeweldefence.towerdefence.weapon {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class LightningProperty extends WeaponProperty {
public var dir:Vec2;
public var timeLeftToLive:Number;
public var range:Number;
public static var s_timeToLive:Number = 0.5;
public function LightningProperty(_arg1:Vec2, _arg2:Number, _arg3:Number){
timeLeftToLive = (s_timeToLive * (1000 / JewelDefenceEngine.s_tickInterval));
super(_arg1, _arg2, 0, new LineCollisionBody(new Vec2(), new Vec2(0, -(_arg3))));
this.range = _arg3;
}
}
}//package com.midasplayer.jeweldefence.towerdefence.weapon
Section 87
//LightningView (com.midasplayer.jeweldefence.towerdefence.weapon.LightningView)
package com.midasplayer.jeweldefence.towerdefence.weapon {
import com.midasplayer.debug.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import flash.geom.*;
public class LightningView implements IBitmapRenderable {
private var oldTick:int;// = -1
private var _property:LightningProperty;
private var _bitmapData:BitmapData;
private var _weapon:BitmapRenderObject;
private static const _drops:Array = new Array();
private static const _soundClasses:Array = new Array(tower_shoot_water_1s, tower_shoot_water_2s);
private static const _dropData:BitmapData = new waterdrop_bigger1(0, 0);
public function LightningView(_arg1:BitmapRender, _arg2:LightningProperty, _arg3:SoundManager){
var _local5:int;
var _local6:int;
var _local7:Matrix;
var _local8:BitmapData;
super();
_property = _arg2;
if (_drops.length == 0){
_local5 = Math.sqrt(((_dropData.width * _dropData.width) + (_dropData.height * _dropData.height)));
_local6 = 0;
while (_local6 < 360) {
_local7 = new Matrix();
_local7.translate((-(_dropData.width) * 0.5), (-(_dropData.height) * 0.5));
_local7.rotate(((_local6 * Math.PI) / 180));
_local7.translate((_local5 * 0.5), (_local5 * 0.5));
_local8 = new BitmapData(_local5, _local5, true, 0);
_local8.draw(_dropData, _local7);
_drops.push(_local8);
_local6 = (_local6 + 10);
};
};
_bitmapData = new BitmapData((_property.range * 2), (_property.range * 2));
_weapon = new BitmapRenderObject(_arg1, _bitmapData);
var _local4:Sounds = new Sounds(_soundClasses, _arg3);
_local4.play((0.5 * SoundVars.SOUND_VOLUME));
}
public function isRemovable():Boolean{
return (_property.removable);
}
public function render(_arg1:int, _arg2:Number):void{
if (_arg1 != oldTick){
createDropBitmap();
};
oldTick = _arg1;
_weapon.renderMiddle((_property.pos.x - 3), (_property.pos.y - 7));
}
private function createDropBitmap():void{
var _local1:Vec2;
var _local2:Vec2;
var _local3:Number;
var _local4:int;
var _local5:BitmapData;
_bitmapData.lock();
_bitmapData.fillRect(new Rectangle(0, 0, _bitmapData.width, _bitmapData.height), 0);
_local1 = _property.dir;
Debug.assert((_local1.lengthSqr > 0), "The dir of a lightning is not set.");
_local2 = new Vec2(0, -1);
_local3 = (_local2.cwRadiansBetween(_local1) / (2 * Math.PI));
_local4 = (_drops.length * _local3);
Debug.assert((_local4 < _drops.length), "Drop index is out of bounds.");
_local5 = _drops[_local4];
var _local6:Vec2 = new Vec2((_bitmapData.width * 0.5), (_bitmapData.height * 0.5));
var _local7:Point = new Point();
var _local8:Vec2 = new Vec2();
var _local9 = 20;
while (_local9 < _property.range) {
_local8.copy(_local1);
_local8.scaleSelf(_local9);
_local8.x = (_local8.x + ((Math.random() * 13) - 7));
_local8.y = (_local8.y + ((Math.random() * 13) - 7));
_local8.addSelf(_local6);
_local7.x = _local8.x;
_local7.y = _local8.y;
_bitmapData.copyPixels(_local5, _local5.rect, _local7, null, null, true);
_local9 = (_local9 + 11);
};
_bitmapData.unlock();
}
public function getDepth():int{
return (RenderDepths.WEAPON);
}
}
}//package com.midasplayer.jeweldefence.towerdefence.weapon
Section 88
//Missile (com.midasplayer.jeweldefence.towerdefence.weapon.Missile)
package com.midasplayer.jeweldefence.towerdefence.weapon {
import com.midasplayer.debug.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
import com.midasplayer.jeweldefence.towerdefence.enemy.*;
public class Missile extends Weapon implements IEntity {
private const _dir:Vec2;
private const _worldBody:ICollisionBody;
private var _property:WeaponProperty;
private var _enemyProperty:EnemyProperty;
public function Missile(_arg1:WeaponProperty, _arg2:EnemyProperty){
_worldBody = new DiscCollisionBody(new Vec2(), 0);
_dir = new Vec2();
super();
Debug.assert(!((_arg1 == null)), "Missile weapon property is null");
Debug.assert(!((_arg2 == null)), "Missile enemy property is null");
_property = _arg1;
_enemyProperty = _arg2;
_property.collisionBody.transformTo(_worldBody, _property.pos, null);
}
public function getProperty():Property{
return (_property);
}
public function getWorldCollisionBody():ICollisionBody{
return (_worldBody);
}
public function tick(_arg1:int):void{
_property.lastPos = _property.pos;
_dir.copy(_enemyProperty.pos);
_dir.subSelf(_property.pos);
var _local2:Number = _dir.length;
if (_local2 < 1E-10){
_property.removable = true;
return;
};
_dir.normalizeSelf();
_property.shootDir.copy(_dir);
_dir.scaleSelf(Math.min(_property.speed, _local2));
_property.pos.addSelf(_dir);
_property.collisionBody.transformTo(_worldBody, _property.pos, null);
}
public function onCollide(_arg1:Property):void{
_property.removable = true;
}
}
}//package com.midasplayer.jeweldefence.towerdefence.weapon
Section 89
//MissileProperty (com.midasplayer.jeweldefence.towerdefence.weapon.MissileProperty)
package com.midasplayer.jeweldefence.towerdefence.weapon {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class MissileProperty extends WeaponProperty {
public static var s_speed:Number = 80;
public function MissileProperty(_arg1:Vec2, _arg2:Number){
super(_arg1, _arg2, s_speed, new DiscCollisionBody(new Vec2(), 5));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.weapon
Section 90
//MissileView (com.midasplayer.jeweldefence.towerdefence.weapon.MissileView)
package com.midasplayer.jeweldefence.towerdefence.weapon {
import com.midasplayer.debug.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import flash.geom.*;
public class MissileView implements IBitmapRenderable {
private const _tmp:Vec2;
private var _property:WeaponProperty;
private static const _bees:Array = new Array();
private static const _soundClasses:Array = new Array(tower_shoot_bees_1s, tower_shoot_bees_2s);
private static const _up:Vec2 = new Vec2(0, -1);
private static const beeData:BitmapData = new bee(0, 0);
public function MissileView(_arg1:BitmapRender, _arg2:WeaponProperty, _arg3:SoundManager){
_tmp = new Vec2();
super();
_property = _arg2;
_initGraphics(_arg1);
var _local4:Sounds = new Sounds(_soundClasses, _arg3, 0.8);
_local4.play((0.2 * SoundVars.SOUND_VOLUME));
}
public function isRemovable():Boolean{
return (_property.removable);
}
public function render(_arg1:int, _arg2:Number):void{
var _local3:Vec2 = _property.lastPos;
_tmp.copy(_property.pos);
_tmp.subSelf(_local3);
var _local4:int = ((_bees.length * _up.cwRadiansBetween(_tmp)) / (2 * Math.PI));
Debug.assert((_local4 < _bees.length), "Bee index is out of bounds.");
_tmp.scaleSelf(_arg2);
_tmp.addSelf(_local3);
_bees[_local4].renderMiddle(_tmp.x, _tmp.y);
}
private function _initGraphics(_arg1:BitmapRender):void{
var _local3:Matrix;
var _local4:BitmapData;
if (_bees.length > 0){
return;
};
var _local2:int;
while (_local2 < 360) {
_local3 = new Matrix();
_local3.translate((-(beeData.width) * 0.5), (-(beeData.height) * 0.5));
_local3.rotate(((_local2 * Math.PI) / 180));
_local3.translate((beeData.width * 0.5), (beeData.height * 0.5));
_local4 = new BitmapData(beeData.width, beeData.height, true, 0);
_local4.draw(beeData, _local3);
_bees.push(new BitmapRenderObject(_arg1, _local4));
_local2 = (_local2 + 10);
};
}
public function getDepth():int{
return (RenderDepths.WEAPON);
}
}
}//package com.midasplayer.jeweldefence.towerdefence.weapon
Section 91
//Slow (com.midasplayer.jeweldefence.towerdefence.weapon.Slow)
package com.midasplayer.jeweldefence.towerdefence.weapon {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class Slow extends Weapon implements IEntity {
private var _property:SlowProperty;
public function Slow(_arg1:SlowProperty){
_property = _arg1;
}
public function getProperty():Property{
return (_property);
}
public function tick(_arg1:int):void{
var _local2:Vec2;
_property.lastPos = _property.pos;
_local2 = _property.shootAt.sub(_property.pos);
var _local3:Number = _local2.length;
if (_local3 < 1E-10){
_property.removable = true;
return;
};
_local2.normalizeSelf();
_property.shootDir.copy(_local2);
_property.pos.addSelf(_local2.scale(Math.min(_property.speed, _local3)));
}
public function onCollide(_arg1:Property):void{
_property.removable = true;
}
public function getWorldCollisionBody():ICollisionBody{
return (_property.collisionBody.transform(_property.pos, null));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.weapon
Section 92
//SlowProperty (com.midasplayer.jeweldefence.towerdefence.weapon.SlowProperty)
package com.midasplayer.jeweldefence.towerdefence.weapon {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class SlowProperty extends AimProperty {
public var slowMul:Number;
public static var s_slowDuration:Number = 2.5;
public static var s_speed:Number = 150;
public function SlowProperty(_arg1:Vec2, _arg2:Number, _arg3:Vec2){
super(_arg1, 0, s_speed, new DiscCollisionBody(new Vec2(), 5), _arg3);
this.slowMul = _arg2;
}
override public function clone():AimProperty{
return (new SlowProperty(pos, slowMul, shootAt));
}
}
}//package com.midasplayer.jeweldefence.towerdefence.weapon
Section 93
//SlowView (com.midasplayer.jeweldefence.towerdefence.weapon.SlowView)
package com.midasplayer.jeweldefence.towerdefence.weapon {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class SlowView implements IBitmapRenderable {
private var _weapon:BitmapRenderObject;
private var _property:WeaponProperty;
private static const _soundClasses:Array = new Array(tower_shoot_mudpig_1s, tower_shoot_mudpig_2s);
private static const s_bullet:BitmapData = new pig_attack(0, 0);
public function SlowView(_arg1:BitmapRender, _arg2:WeaponProperty, _arg3:SoundManager){
_property = _arg2;
_weapon = new BitmapRenderObject(_arg1, s_bullet);
var _local4:Sounds = new Sounds(_soundClasses, _arg3);
_local4.play((0.5 * SoundVars.SOUND_VOLUME));
}
public function isRemovable():Boolean{
return (_property.removable);
}
public function render(_arg1:int, _arg2:Number):void{
var _local3:Vec2 = _property.lastPos;
var _local4:Vec2 = _property.pos;
var _local5:Vec2 = _local3.add(_local4.sub(_local3).scale(_arg2));
_weapon.renderMiddle(_local5.x, _local5.y);
}
public function getDepth():int{
return (RenderDepths.WEAPON);
}
}
}//package com.midasplayer.jeweldefence.towerdefence.weapon
Section 94
//Weapon (com.midasplayer.jeweldefence.towerdefence.weapon.Weapon)
package com.midasplayer.jeweldefence.towerdefence.weapon {
public class Weapon {
}
}//package com.midasplayer.jeweldefence.towerdefence.weapon
Section 95
//WeaponFactory (com.midasplayer.jeweldefence.towerdefence.weapon.WeaponFactory)
package com.midasplayer.jeweldefence.towerdefence.weapon {
import com.midasplayer.debug.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.enemy.*;
public class WeaponFactory implements IWeaponFactory {
private var _bitmapRender:BitmapRender;
private var _renderEngine:RenderEngine;
private var _soundManager:SoundManager;
public function WeaponFactory(_arg1:RenderEngine, _arg2:BitmapRender, _arg3:SoundManager){
_renderEngine = _arg1;
_bitmapRender = _arg2;
_soundManager = _arg3;
}
public function create(_arg1:WeaponProperty, _arg2:EnemyProperty, _arg3:Boolean):IEntity{
if ((_arg1 is FireProperty)){
if (_arg3){
_renderEngine.add(new FireView(_bitmapRender, _arg1, _soundManager));
};
return (new Fire((_arg1 as FireProperty)));
};
if ((_arg1 is MissileProperty)){
if (_arg3){
_renderEngine.add(new MissileView(_bitmapRender, _arg1, _soundManager));
};
return (new Missile(_arg1, _arg2));
};
if ((_arg1 is LightningProperty)){
if (_arg3){
_renderEngine.add(new LightningView(_bitmapRender, (_arg1 as LightningProperty), _soundManager));
};
return (new Lightning((_arg1 as LightningProperty), _arg2));
};
if ((_arg1 is SlowProperty)){
if (_arg3){
_renderEngine.add(new SlowView(_bitmapRender, _arg1, _soundManager));
};
return (new Slow((_arg1 as SlowProperty)));
};
Debug.assert(false, "Trying to create an unknown weapon.");
return (null);
}
}
}//package com.midasplayer.jeweldefence.towerdefence.weapon
Section 96
//WeaponProperty (com.midasplayer.jeweldefence.towerdefence.weapon.WeaponProperty)
package com.midasplayer.jeweldefence.towerdefence.weapon {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class WeaponProperty extends CollisionProperty {
private var _lastPos:Vec2;
public var speed:Number;
public var shootDir:Vec2;
public var damage:Number;
private static var s_speedMul:Number = 1;
private static var s_damageMul:Number = 1;
public function WeaponProperty(_arg1:Vec2, _arg2:Number, _arg3:Number, _arg4:ICollisionBody){
shootDir = new Vec2();
_lastPos = new Vec2();
super(_arg1, _arg4);
lastPos = _arg1;
this.damage = (_arg2 * s_damageMul);
this.speed = ((_arg3 * s_speedMul) * (JewelDefenceEngine.s_tickInterval / 1000));
}
public function get lastPos():Vec2{
return (_lastPos);
}
public function set lastPos(_arg1:Vec2):void{
_lastPos.copy(_arg1);
}
}
}//package com.midasplayer.jeweldefence.towerdefence.weapon
Section 97
//CollisionProperty (com.midasplayer.jeweldefence.towerdefence.CollisionProperty)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class CollisionProperty extends Property {
public var collisionBody:ICollisionBody;
public function CollisionProperty(_arg1:Vec2, _arg2:ICollisionBody){
super(_arg1);
this.collisionBody = _arg2;
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 98
//DebugView (com.midasplayer.jeweldefence.towerdefence.DebugView)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.debug.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class DebugView implements IBitmapRenderable {
private var _renderObject:BitmapRenderObject;
private var _property:CollisionProperty;
public static var enabled:Boolean = false;
public function DebugView(_arg1:BitmapRender, _arg2:CollisionProperty){
var _local3:DiscCollisionBody;
super();
_property = _arg2;
_local3 = (_arg2.collisionBody as DiscCollisionBody);
Debug.assert(!((_local3 == null)), "Can only debug render disc bodies so far.");
var _local4:Number = _local3.getRadius();
var _local5:Sprite = new Sprite();
_local5.graphics.lineStyle(1, 0);
_local5.graphics.beginFill(0, 0);
_local5.graphics.drawCircle(_local4, _local4, _local4);
_local5.graphics.endFill();
var _local6:BitmapData = new BitmapData((_local3.getRadius() * 2), (_local3.getRadius() * 2), true, 0);
_local6.draw(_local5);
_renderObject = new BitmapRenderObject(_arg1, _local6);
}
public function isRemovable():Boolean{
return (_property.removable);
}
public function render(_arg1:int, _arg2:Number):void{
var _local3:DiscCollisionBody;
_local3 = (_property.collisionBody.transform(_property.pos, null) as DiscCollisionBody);
var _local4:Vec2 = _local3.getCenter();
_renderObject.renderMiddle(_local4.x, _local4.y);
}
public function getDepth():int{
return (RenderDepths.DEBUG);
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 99
//Decoration (com.midasplayer.jeweldefence.towerdefence.Decoration)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.math.*;
public class Decoration {
private var _pos:Vec2;
private var _type:int;
public static const BIRKE:int = 8;
public static const BUSH1:int = 3;
public static const BUSH2:int = 4;
public static const BUSH3:int = 5;
public static const STONE1:int = 0;
public static const STONE2:int = 1;
public static const STONE3:int = 2;
public static const SPRUCE:int = 6;
public static const MAX_TYPES:int = 9;
public static const MUSHROOM:int = 7;
public function Decoration(_arg1:Vec2, _arg2:int){
_pos = _arg1;
_type = _arg2;
}
public function getType():int{
return (_type);
}
public function getPos():Vec2{
return (_pos);
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 100
//EnemyGoal (com.midasplayer.jeweldefence.towerdefence.EnemyGoal)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class EnemyGoal implements IEntity {
private const _worldBody:ICollisionBody;
private var _property:EnemyGoalProperty;
public function EnemyGoal(_arg1:EnemyGoalProperty){
_worldBody = new DiscCollisionBody(new Vec2(), 0);
super();
_property = _arg1;
_property.collisionBody.transformTo(_worldBody, _property.pos, null);
}
public function gameFinished():void{
_property.gameFinished = true;
}
public function getWorldCollisionBody():ICollisionBody{
return (_worldBody);
}
public function getProperty():Property{
return (_property);
}
public function getLivesLeft():int{
return (_property.lives);
}
public function tick(_arg1:int):void{
}
public function onCollide(_arg1:Property):void{
if (_property.lives > 0){
_property.lives--;
_property.nrKilled++;
};
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 101
//EnemyGoalLifeView (com.midasplayer.jeweldefence.towerdefence.EnemyGoalLifeView)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class EnemyGoalLifeView implements IBitmapRenderable {
private var _sounds:Sounds;
private var _animSeq:AnimSequence;
private var _animationStarted:Boolean;// = false
private static const bitmaps:Array = new Array(new egg_1(0, 0), new egg_2(0, 0), new egg_3(0, 0), new egg_4(0, 0), new egg_5(0, 0), new egg_6(0, 0), new egg_7(0, 0));
private static const _eggSoundClasses:Array = new Array(egg_break_1s, egg_break_2s);
public function EnemyGoalLifeView(_arg1:BitmapRender, _arg2:Vec2, _arg3:SoundManager){
_animSeq = new AnimSequence(new BitmapRenderSequence(_arg1, bitmaps));
_animSeq.setSpeed(0.6);
_animSeq.setPosition(_arg2);
_sounds = new Sounds(_eggSoundClasses, _arg3);
}
public function startAnimation():void{
_animSeq.play();
_animationStarted = true;
_sounds.play(SoundVars.SOUND_VOLUME);
}
public function animationHasStarted():Boolean{
return (_animationStarted);
}
public function isRemovable():Boolean{
return (((_animationStarted) && (!(_animSeq.isPlaying()))));
}
public function getDepth():int{
return (RenderDepths.ENEMY_GOAL_LIVES);
}
public function render(_arg1:int, _arg2:Number):void{
_animSeq.render((_arg1 + _arg2));
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 102
//EnemyGoalProperty (com.midasplayer.jeweldefence.towerdefence.EnemyGoalProperty)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class EnemyGoalProperty extends CollisionProperty {
public var nrKilled:int;// = 0
public var gameFinished:Boolean;// = false
public var lives:int;// = 3
public function EnemyGoalProperty(_arg1:Vec2){
super(_arg1, new DiscCollisionBody(new Vec2(64, 0), 20));
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 103
//EnemyGoalRainbowView (com.midasplayer.jeweldefence.towerdefence.EnemyGoalRainbowView)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class EnemyGoalRainbowView implements IBitmapRenderable {
private var _animSeq:AnimSequence;
private static const bitmaps:Array = new Array(new rainbow_01(0, 0), new rainbow_02(0, 0), new rainbow_03(0, 0), new rainbow_04(0, 0), new rainbow_05(0, 0), new rainbow_06(0, 0), new rainbow_07(0, 0), new rainbow_08(0, 0), new rainbow_09(0, 0), new rainbow_10(0, 0), new rainbow_11(0, 0), new rainbow_12(0, 0), new rainbow_13(0, 0), new rainbow_14(0, 0), new rainbow_15(0, 0), new rainbow_16(0, 0), new rainbow_17(0, 0), new rainbow_18(0, 0), new rainbow_19(0, 0), new rainbow_20(0, 0), new rainbow_21(0, 0));
public function EnemyGoalRainbowView(_arg1:BitmapRender, _arg2:Vec2){
_animSeq = new AnimSequence(new BitmapRenderSequence(_arg1, bitmaps));
_animSeq.setSpeed(0.6);
_animSeq.setPosition(_arg2);
}
public function isRemovable():Boolean{
return (false);
}
public function startAnimation():void{
_animSeq.play();
}
public function render(_arg1:int, _arg2:Number):void{
_animSeq.render((_arg1 + _arg2));
}
public function getDepth():int{
return (RenderDepths.ENEMY_GOAL_RAINBOW);
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 104
//EnemyGoalView (com.midasplayer.jeweldefence.towerdefence.EnemyGoalView)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class EnemyGoalView implements IBitmapRenderable {
private const lifeViews:Array;
private var _rainbowCreated:Boolean;// = false
private var _bitmapRender:BitmapRender;
private var _backgroundBRO:BitmapRenderObject;
private var _property:EnemyGoalProperty;
private var _renderEngine:RenderEngine;
private static const _background:BitmapData = new home(0, 0);
public function EnemyGoalView(_arg1:RenderEngine, _arg2:BitmapRender, _arg3:EnemyGoalProperty, _arg4:SoundManager){
lifeViews = new Array();
super();
_bitmapRender = _arg2;
_renderEngine = _arg1;
_property = _arg3;
_backgroundBRO = new BitmapRenderObject(_arg2, _background);
var _local5:EnemyGoalLifeView = new EnemyGoalLifeView(_arg2, new Vec2((_property.pos.x + 24), (_property.pos.y - 27)), _arg4);
lifeViews.push(_local5);
_arg1.add(_local5);
_local5 = new EnemyGoalLifeView(_arg2, new Vec2((_property.pos.x + 39), (_property.pos.y - 22)), _arg4);
lifeViews.push(_local5);
_arg1.add(_local5);
_local5 = new EnemyGoalLifeView(_arg2, new Vec2((_property.pos.x + 54), (_property.pos.y - 25)), _arg4);
lifeViews.push(_local5);
_arg1.add(_local5);
}
public function isRemovable():Boolean{
return (false);
}
public function render(_arg1:int, _arg2:Number):void{
var _local3:EnemyGoalLifeView;
var _local4:EnemyGoalRainbowView;
if (((_property.gameFinished) && (!(_rainbowCreated)))){
_rainbowCreated = true;
_local4 = new EnemyGoalRainbowView(_bitmapRender, new Vec2((_property.pos.x + 26), ((_property.pos.y - 15) - 27)));
_local4.startAnimation();
_renderEngine.add(_local4);
};
_backgroundBRO.render(_property.pos.x, (_property.pos.y - 27));
if (_property.nrKilled <= 0){
return;
};
for each (_local3 in lifeViews) {
if (!_local3.animationHasStarted()){
_local3.startAnimation();
_property.nrKilled--;
};
if (_property.nrKilled == 0){
break;
};
};
}
public function getDepth():int{
return (RenderDepths.ENEMY_GOAL);
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 105
//EntityCollection (com.midasplayer.jeweldefence.towerdefence.EntityCollection)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
public class EntityCollection implements IEntityAdder {
private const _entities:Array;
public function EntityCollection(){
_entities = new Array();
super();
}
public function getWithin(_arg1:Vec2, _arg2:Number):Array{
var _local5:IEntity;
var _local6:Property;
var _local3:Array = new Array();
var _local4:Number = (_arg2 * _arg2);
for each (_local5 in _entities) {
_local6 = _local5.getProperty();
if (_local6.pos.sub(_arg1).lengthSqr < _local4){
_local3.push(_local6);
};
};
return (_local3);
}
public function remove():void{
var _local2:IEntity;
var _local3:Property;
var _local1:int;
while (_local1 < _entities.length) {
_local2 = _entities[_local1];
_local3 = _local2.getProperty();
if (!_local3.removable){
} else {
if (_local1 == (_entities.length - 1)){
_entities.pop();
} else {
var _temp1 = _local1;
_local1 = (_local1 - 1);
var _local4 = _temp1;
_entities[_local4] = _entities.pop();
};
};
_local1++;
};
}
public function get length():int{
return (_entities.length);
}
public function getEntities():Array{
return (_entities);
}
public function add(_arg1:IEntity):void{
_entities.push(_arg1);
}
public function tick(_arg1:int):void{
var _local2:IEntity;
for each (_local2 in _entities) {
_local2.tick(_arg1);
};
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 106
//IEntity (com.midasplayer.jeweldefence.towerdefence.IEntity)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.timing.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public interface IEntity extends ITickable {
function getWorldCollisionBody():ICollisionBody;
function getProperty():Property;
function onCollide(_arg1:Property):void;
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 107
//IEntityAdder (com.midasplayer.jeweldefence.towerdefence.IEntityAdder)
package com.midasplayer.jeweldefence.towerdefence {
public interface IEntityAdder {
function add(_arg1:IEntity):void;
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 108
//MapDecorator (com.midasplayer.jeweldefence.towerdefence.MapDecorator)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class MapDecorator {
private var _random:MtRandom;
private var _mapSize:Vec2;
public function MapDecorator(_arg1:MtRandom, _arg2:Vec2){
_random = _arg1;
_mapSize = _arg2;
}
public function generate(_arg1:ObstacleMap):Array{
var _local4:Vec2;
var _local5:DiscCollisionBody;
var _local6:int;
var _local2:Array = new Array();
var _local3:int;
while (_local3 < 40) {
_local4 = new Vec2(_random.nextInt(_mapSize.y), _random.nextInt(_mapSize.y));
_local5 = new DiscCollisionBody(_local4, 60);
if (!_arg1.isAreaFree(_local5)){
} else {
_local6 = _random.nextInt(Decoration.MAX_TYPES);
_local2.push(new Decoration(_local4, _local6));
if (_local6 == Decoration.BIRKE){
_arg1.add(new DiscCollisionBody(_local4, 25));
} else {
_arg1.add(new DiscCollisionBody(_local4, 15));
};
};
_local3++;
};
return (_local2);
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 109
//ObstacleMap (com.midasplayer.jeweldefence.towerdefence.ObstacleMap)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.debug.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
public class ObstacleMap {
private var _maxSize:Vec2;
private var _physics:Physics;
private var _towers:EntityCollection;
private var _offset:Vec2;
private var _map:Array;
public function ObstacleMap(_arg1:Path, _arg2:EntityCollection, _arg3:Vec2, _arg4:Vec2){
var _local6:PathTile;
_map = new Array();
_physics = new Physics();
super();
_towers = _arg2;
_offset = _arg3;
_maxSize = _arg3.add(_arg4);
var _local5:Array = _arg1.getTiles();
for each (_local6 in _local5) {
add(new DiscCollisionBody(_local6.pos, (PathTile.SIZE * 0.5)));
};
}
public function add(_arg1:ICollisionBody):void{
_map.push(_arg1);
}
public function isAreaFree(_arg1:ICollisionBody):Boolean{
var _local2:ICollisionBody;
var _local3:Array;
var _local4:IEntity;
if (!isOnMap(_arg1)){
return (false);
};
for each (_local2 in _map) {
if (_physics.collides(_arg1, _local2)){
return (false);
};
};
_local3 = _towers.getEntities();
for each (_local4 in _local3) {
if (_physics.collides(_local4.getWorldCollisionBody(), _arg1)){
return (false);
};
};
return (true);
}
public function isOnMap(_arg1:ICollisionBody):Boolean{
var _local2:DiscCollisionBody;
Debug.assert((_arg1 is DiscCollisionBody), "isOnMap can only test discs.");
_local2 = (_arg1 as DiscCollisionBody);
var _local3:Vec2 = _local2.getCenter();
var _local4:Number = _local2.getRadius();
return (((((((((_local3.x - _local4) >= _offset.x)) && (((_local3.x + _local4) <= _maxSize.x)))) && (((_local3.y - _local4) >= _offset.y)))) && (((_local3.y + _local4) <= _maxSize.y))));
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 110
//Path (com.midasplayer.jeweldefence.towerdefence.Path)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.debug.*;
import com.midasplayer.math.*;
public class Path {
private const _tiles:Array;
private var _gridSize:Number;
public function Path(_arg1:Array, _arg2:Vec2, _arg3:int){
var _local4:Vec2;
var _local5:int;
var _local6:Vec2;
var _local7:Vec2;
_tiles = new Array();
super();
Debug.assert((_arg1.length > 0), "Tried to create an empty path.");
_gridSize = _arg3;
for each (_local4 in _arg1) {
_local4.scaleSelf(_arg3);
_local4.addSelf(_arg2);
};
_local5 = 0;
while (_local5 < (_arg1.length - 1)) {
_local6 = _arg1[_local5];
_local7 = _arg1[(_local5 + 1)].sub(_local6);
_tiles.push(new PathTile(_local6, _local7));
_local5++;
};
_tiles.push(new PathTile(_arg1[(_arg1.length - 1)], new Vec2(_arg3, 0)));
}
public function getTotalDistance():int{
return ((_tiles.length * _gridSize));
}
public function getPos(_arg1:Number):Vec2{
var _local2:Number;
var _local3:Number;
var _local4:int;
var _local5:Number;
var _local6:PathTile;
Debug.assert((_tiles.length > 0), "Trying to get a position from an empty path.");
Debug.assert((_arg1 >= 0), "A path distance is negative.");
_local2 = (_tiles.length * _gridSize);
_local3 = ((_tiles.length * _arg1) / _local2);
_local4 = Math.min((_tiles.length - 1), int(_local3));
_local5 = (_local3 - _local4);
_local6 = _tiles[_local4];
var _local7:Vec2 = _local6.dir.scale(_local5);
_local7.addSelf(_local6.pos);
return (_local7);
}
public function getTiles():Array{
return (_tiles);
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 111
//PathGenerator (com.midasplayer.jeweldefence.towerdefence.PathGenerator)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.debug.*;
import com.midasplayer.math.*;
public class PathGenerator {
private const _dirs:Array;
private var _random:MtRandom;
private var _path:Array;
private var _grid:Array;
private static var _minSegment:int = 3;
private static var _height:int = 13;
private static var _width:int = 16;
private static var _maxLength:int = 60;
private static var _maxSegment:int = 7;
private static var _minLength:int = 50;
public function PathGenerator(_arg1:MtRandom){
_dirs = [new Vec2(1, 0), new Vec2(0, 1), new Vec2(-1, 0), new Vec2(0, -1)];
super();
_random = _arg1;
}
private function _getShuffledDirs():Array{
var _local3:int;
var _local4:Vec2;
var _local1:Array = _dirs.concat([]);
var _local2:int = _local1.length;
while (_local2 > 1) {
_local3 = _random.nextInt(_local2);
_local4 = _local1[_local3];
_local1[_local3] = _local1[(_local2 - 1)];
_local1[(_local2 - 1)] = _local4;
_local2--;
};
return (_local1);
}
private function _mark(_arg1:Vec2, _arg2:Vec2, _arg3:int, _arg4:int):void{
var _local6:Vec2;
var _local5 = 1;
while (_local5 <= _arg3) {
_local6 = _arg1.add(_arg2.scale(_local5));
_grid[_local6.x][_local6.y] = _arg4;
_local5++;
};
}
private function _intersects(_arg1:Vec2, _arg2:Vec2, _arg3:int):Boolean{
var _local5:Vec2;
var _local4 = 1;
while (_local4 <= _arg3) {
_local5 = _arg1.add(_arg2.scale(_local4));
if (_grid[_local5.x][_local5.y] == 1){
return (true);
};
_local4++;
};
return (false);
}
private function _generate(_arg1:Vec2, _arg2:int):Boolean{
var _local3:int;
var _local7:Vec2;
var _local8:Vec2;
var _local9:Boolean;
var _local10:int;
var _local11:int;
if (_arg2 == 0){
return (false);
};
_local3 = _rndBetween(_minSegment, _maxSegment);
var _local4:int = Math.max((_arg2 - _local3), 0);
var _local5:Array = _getShuffledDirs();
var _local6:int;
for (;_local6 < _local5.length;_local6++) {
_local7 = _local5[_local6];
_local8 = _arg1.add(_local7.scale(_local3));
_local9 = false;
if (_local8.x >= _width){
if (_local4 > _maxSegment){
continue;
};
_local3 = ((_width - 1) - _arg1.x);
_local8.x = (_width - 1);
_local9 = true;
} else {
if ((((((_local8.x < 0)) || ((_local8.y < 0)))) || ((_local8.y >= _height)))){
continue;
};
};
Debug.assert((((_local8.x >= 0)) && ((_local8.x < _width))), "Next pos x in path generation is out of bounds.");
Debug.assert((((_local8.y >= 0)) && ((_local8.y < _height))), "Next pos x in path generation is out of bounds.");
_local10 = ((_width - 1) - _local8.x);
if (_local4 < _local10){
} else {
if (_intersects(_arg1, _local7, _local3)){
} else {
_mark(_arg1, _local7, _local3, 1);
if (((_local9) || (_generate(_local8, _local4)))){
_local11 = _local3;
while (_local11 > 0) {
_path.unshift(_arg1.add(_local7.scale(_local11)));
_local11--;
};
return (true);
} else {
_mark(_arg1, _local7, _local3, 0);
};
};
};
};
return (false);
}
public function generate(_arg1:Vec2, _arg2:int):Path{
var _local3:int;
var _local4:Vec2;
Debug.assert((_minLength >= _width), "The path generator min length should at least be the width.");
Debug.assert((_maxSegment <= _minLength), "Segments should be shorter or equal to a min path.");
_local3 = _rndBetween(_minLength, _maxLength);
_local4 = new Vec2(0, int(_random.nextInt(_height)));
_grid = _createMatrix();
_path = new Array();
_grid[_local4.x][_local4.y] = 1;
var _local5:Boolean = _generate(_local4, _local3);
Debug.assert(_local5, "Couldn't generate a path.");
_path.unshift(_local4);
return (new Path(_path, _arg1, _arg2));
}
private function _createMatrix():Array{
var _local1:Array = new Array();
var _local2:int;
while (_local2 < _width) {
_local1.push(new Array(_height));
_local2++;
};
return (_local1);
}
private function _rndBetween(_arg1:int, _arg2:int):int{
if (_arg1 == _arg2){
return (_arg1);
};
var _local3:int = (_arg1 + _random.nextInt((_arg2 - _arg1)));
Debug.assert((((_local3 >= _arg1)) && ((_local3 <= _arg2))), "A path random number is out of bounds.");
return (_local3);
}
public static function get width():int{
return (_width);
}
public static function get height():int{
return (_height);
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 112
//PathStartArrowView (com.midasplayer.jeweldefence.towerdefence.PathStartArrowView)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class PathStartArrowView implements IBitmapRenderable {
private var _gameGuiVars:GameGuiVars;
private var _animSeq:AnimSequence;
private var _removable:Boolean;// = false
private static const bitmaps:Array = new Array(new startingarrow_1(0, 0), new startingarrow_2(0, 0), new startingarrow_3(0, 0), new startingarrow_4(0, 0), new startingarrow_5(0, 0), new startingarrow_6(0, 0), new startingarrow_7(0, 0), new startingarrow_8(0, 0), new startingarrow_9(0, 0), new startingarrow_10(0, 0), new startingarrow_11(0, 0), new startingarrow_12(0, 0), new startingarrow_13(0, 0), new startingarrow_14(0, 0), new startingarrow_15(0, 0), new startingarrow_16(0, 0), new startingarrow_17(0, 0), new startingarrow_18(0, 0), new startingarrow_19(0, 0), new startingarrow_20(0, 0), new startingarrow_21(0, 0), new startingarrow_22(0, 0), new startingarrow_23(0, 0));
public function PathStartArrowView(_arg1:BitmapRender, _arg2:Vec2, _arg3:GameGuiVars){
_gameGuiVars = _arg3;
_animSeq = new AnimSequence(new BitmapRenderSequence(_arg1, bitmaps));
_animSeq.setPosition(_arg2);
_animSeq.setSpeed(1);
_animSeq.playLoop();
}
public function isRemovable():Boolean{
return (_removable);
}
public function getDepth():int{
return (RenderDepths.PATH_START_ARROW);
}
public function render(_arg1:int, _arg2:Number):void{
if (_gameGuiVars.waveNr == 1){
_removable = true;
return;
};
_animSeq.render((_arg1 + _arg2));
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 113
//PathTile (com.midasplayer.jeweldefence.towerdefence.PathTile)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.math.*;
public class PathTile {
private var _pos:Vec2;
private var _dir:Vec2;
public static const SIZE:int = 32;
public function PathTile(_arg1:Vec2, _arg2:Vec2){
_pos = _arg1;
_dir = _arg2;
}
public function get pos():Vec2{
return (_pos);
}
public function get dir():Vec2{
return (_dir);
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 114
//ScorePopupFactory (com.midasplayer.jeweldefence.towerdefence.ScorePopupFactory)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class ScorePopupFactory {
private var _bitmapRender:BitmapRender;
private var _renderEngine:RenderEngine;
public function ScorePopupFactory(_arg1:RenderEngine, _arg2:BitmapRender){
_renderEngine = _arg1;
_bitmapRender = _arg2;
}
public function create(_arg1:Vec2, _arg2:int):void{
_renderEngine.add(new ScorePopupView(_bitmapRender, _arg1, _arg2));
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 115
//ScorePopupView (com.midasplayer.jeweldefence.towerdefence.ScorePopupView)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class ScorePopupView implements IBitmapRenderable {
private var _tickCounter:int;// = 0
private var _backgroundOffset:Vec2;
private var _remove:Boolean;// = false
private var _moveTime:Number;
private var _startTime:Number;// = -1
private var _pos:Vec2;
private var _bitmapNumber:BitmapNumber;
private var _score:int;// = 0
private var _backgroundAnim:AnimSequence;
private static const _numberData:Array = new Array(new numbers_scorepop_0(0, 0), new numbers_scorepop_1(0, 0), new numbers_scorepop_2(0, 0), new numbers_scorepop_3(0, 0), new numbers_scorepop_4(0, 0), new numbers_scorepop_5(0, 0), new numbers_scorepop_6(0, 0), new numbers_scorepop_7(0, 0), new numbers_scorepop_8(0, 0), new numbers_scorepop_9(0, 0));
private static const _backgroundData3:Array = new Array(new scorepop_3numbers_trans_1(0, 0), new scorepop_3numbers_trans_2(0, 0), new scorepop_3numbers_trans_3(0, 0), new scorepop_3numbers_trans_4(0, 0));
private static const _backgroundData4:Array = new Array(new scorepop_4numbers_trans_1(0, 0), new scorepop_4numbers_trans_2(0, 0), new scorepop_4numbers_trans_3(0, 0), new scorepop_4numbers_trans_4(0, 0));
public function ScorePopupView(_arg1:BitmapRender, _arg2:Vec2, _arg3:int){
_pos = new Vec2();
super();
_pos.copy(_arg2);
_score = _arg3;
if (_score < 1000){
_backgroundAnim = new AnimSequence(new BitmapRenderSequence(_arg1, _backgroundData3));
_backgroundOffset = new Vec2(-22, -40);
} else {
_backgroundAnim = new AnimSequence(new BitmapRenderSequence(_arg1, _backgroundData4));
_backgroundOffset = new Vec2(-26, -42);
};
_bitmapNumber = new BitmapNumber(new BitmapRenderSequence(_arg1, _numberData));
_backgroundAnim.play();
_moveTime = (1000 / JewelDefenceEngine.s_tickInterval);
_backgroundAnim.setSpeed((20 / _moveTime));
}
public function isRemovable():Boolean{
return (_remove);
}
public function getDepth():int{
return (RenderDepths.TOWER_DEFENCE_SCORE_POPUP);
}
public function render(_arg1:int, _arg2:Number):void{
var _local3:Number = (_arg1 + _arg2);
if (_startTime == -1){
_startTime = _local3;
};
_backgroundAnim.setPosition(_pos.add(_backgroundOffset));
_backgroundAnim.render(_local3);
_bitmapNumber.renderCentre(_score, _pos.x, (_pos.y - 25), 10, 20);
if ((_local3 - _startTime) < _moveTime){
_pos.y = (_pos.y - 0.4);
} else {
_remove = true;
};
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 116
//TowerDefenceGame (com.midasplayer.jeweldefence.towerdefence.TowerDefenceGame)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.timing.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.tower.*;
import com.midasplayer.jeweldefence.towerdefence.weapon.*;
import com.midasplayer.jeweldefence.towerdefence.physics.*;
import com.midasplayer.jeweldefence.towerdefence.shop.*;
import com.midasplayer.jeweldefence.towerdefence.enemy.*;
public class TowerDefenceGame implements ITickable {
private const _physics:Physics;
private var _enemyGoal:EnemyGoal;
private var _shop:Shop;
private var _weapons:EntityCollection;
private var _score:int;// = 0
private var _waveGenerator:WaveGenerator;
private var _scoreVars:ScoreVars;
private var _towerFactory:ITowerFactory;
private var _enemies:EntityCollection;
private var _towers:EntityCollection;
private var _scorePopupFactory:ScorePopupFactory;
private var _enemyReachedGoal:Boolean;// = false
private var _disabled:Boolean;// = false
public function TowerDefenceGame(_arg1:MtRandom, _arg2:Input, _arg3:EntityCollection, _arg4:EntityCollection, _arg5:EntityCollection, _arg6:ITowerFactory, _arg7:IWeaponFactory, _arg8:EnemyGoal, _arg9:Shop, _arg10:ScorePopupFactory, _arg11:Path, _arg12:WaveGenerator, _arg13:ScoreVars){
_physics = new Physics();
super();
_enemies = _arg3;
_weapons = _arg4;
_towers = _arg5;
_towerFactory = _arg6;
_scorePopupFactory = _arg10;
_enemyGoal = _arg8;
_shop = _arg9;
_waveGenerator = _arg12;
_scoreVars = _arg13;
}
public function disableInput():void{
_shop.disableInput();
}
public function enableInput():void{
_shop.enableInput();
}
public function getMoney():int{
return (_shop.getMoney());
}
public function hasEnemiesLeft():Boolean{
return (((!(_waveGenerator.lastEnemyGenerated())) || ((_enemies.length > 0))));
}
public function activateTower(_arg1:int):void{
var _local3:IEntity;
var _local4:TowerProperty;
var _local5:TowerProperty;
var _local6:IEntity;
var _local2:Array = _towers.getEntities();
for each (_local3 in _local2) {
_local4 = (_local3.getProperty() as TowerProperty);
if (_local4.active){
} else {
if ((_local4 is FireTowerProperty)){
_local5 = new FireTowerProperty(_local4.pos, _arg1);
} else {
if ((_local4 is MissileTowerProperty)){
_local5 = new MissileTowerProperty(_local4.pos, _arg1);
} else {
if ((_local4 is LightningTowerProperty)){
_local5 = new LightningTowerProperty(_local4.pos, _arg1);
} else {
if ((_local4 is SlowTowerProperty)){
_local5 = new SlowTowerProperty(_local4.pos, _arg1);
};
};
};
};
_local5.active = true;
_local6 = _towerFactory.create(_local5, true);
_towers.add(_local6);
_local4.removable = true;
if (_local5.level == 1){
_score = (_score + 100);
} else {
if (_local5.level == 2){
_score = (_score + 250);
} else {
_score = (_score + 500);
};
};
if ((_local4 is FireTowerProperty)){
var _local9 = _scoreVars.builtFire;
var _local10 = (_local5.level - 1);
var _local11 = (_local9[_local10] + 1);
_local9[_local10] = _local11;
} else {
if ((_local4 is MissileTowerProperty)){
_local9 = _scoreVars.builtMissile;
_local10 = (_local5.level - 1);
_local11 = (_local9[_local10] + 1);
_local9[_local10] = _local11;
} else {
if ((_local4 is LightningTowerProperty)){
_local9 = _scoreVars.builtLightning;
_local10 = (_local5.level - 1);
_local11 = (_local9[_local10] + 1);
_local9[_local10] = _local11;
} else {
if ((_local4 is SlowTowerProperty)){
_local9 = _scoreVars.builtSlow;
_local10 = (_local5.level - 1);
_local11 = (_local9[_local10] + 1);
_local9[_local10] = _local11;
};
};
};
};
return;
};
};
}
public function removeALife():void{
_enemyGoal.onCollide(null);
}
public function getScore():int{
return (_score);
}
public function getInactiveTowerProperty():TowerProperty{
var _local2:IEntity;
var _local3:TowerProperty;
var _local1:Array = _towers.getEntities();
for each (_local2 in _local1) {
_local3 = (_local2.getProperty() as TowerProperty);
if (!_local3.active){
return (_local3);
};
};
return (null);
}
public function disable():void{
_disabled = true;
}
private function _checkCollisions():void{
var _local3:IEntity;
var _local4:IEntity;
var _local1:Array = _enemies.getEntities();
var _local2:Array = _weapons.getEntities();
for each (_local3 in _local2) {
for each (_local4 in _local1) {
if (!_physics.collides(_local3.getWorldCollisionBody(), _local4.getWorldCollisionBody())){
} else {
_local3.onCollide(_local4.getProperty());
if (!_disabled){
_local4.onCollide(_local3.getProperty());
};
if (!(_local3 is Lightning)){
break;
};
};
};
};
if (_disabled){
return;
};
for each (_local4 in _local1) {
if (!_physics.collides(_enemyGoal.getWorldCollisionBody(), _local4.getWorldCollisionBody())){
} else {
_local4.onCollide(_enemyGoal.getProperty());
_enemyGoal.onCollide(_local4.getProperty());
};
};
}
private function _checkEnemies():void{
var _local2:IEntity;
var _local3:EnemyProperty;
var _local1:Array = _enemies.getEntities();
for each (_local2 in _local1) {
_local3 = (_local2.getProperty() as EnemyProperty);
if (((_local3.removable) && (!(_local3.goalCrash)))){
_shop.addMoney(_local3.money);
_score = (_score + _local3.score);
_scorePopupFactory.create(_local3.pos, _local3.score);
} else {
if (((!(_enemyReachedGoal)) && (_local3.reachedGoal))){
_enemyReachedGoal = true;
};
};
};
}
public function tick(_arg1:int):void{
_towers.remove();
_enemies.remove();
_weapons.remove();
_towers.tick(_arg1);
_waveGenerator.tick(_arg1);
_enemies.tick(_arg1);
_weapons.tick(_arg1);
_shop.tick(_arg1);
_checkCollisions();
_checkEnemies();
if (!hasEnemiesLeft()){
_enemyGoal.gameFinished();
};
}
public function hasFailed():Boolean{
return ((getLivesLeft() == 0));
}
public function getLivesLeft():int{
return (_enemyGoal.getLivesLeft());
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 117
//WaveGenerator (com.midasplayer.jeweldefence.towerdefence.WaveGenerator)
package com.midasplayer.jeweldefence.towerdefence {
import com.midasplayer.timing.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.enemy.*;
public class WaveGenerator implements ITickable {
private var _enemyFactory:IEnemyFactory;
private var _waveTickTime:int;// = 0
private var _waveNr:int;// = 0
private var _path:Path;
private var _waveNrEnemies:int;// = 0
private var _waveCreatedEnemies:int;// = 0
private var _difficultyEasy:Boolean;// = false
private var _nextWaveStartTickTime:int;// = 0
private var _random:MtRandom;
private var _enemies:EntityCollection;
private var _spawnInterval:int;// = 0
private var _gameGuiVars:GameGuiVars;
private var _enemyVariants:Array;
private var _tick:int;// = 0
private var _currectWaveStartTickTime:int;// = 0
public static var s_easyStartTime:int = 40;
public static var s_bossStartTime:int = 175;
public static var s_bossNrEnemies:int = 1;
public static var s_bossSpawnInterval:Number = 1;
public static var s_hardNrEnemies:int = 20;
public static var s_normalSpawnInterval:Number = 1;
public static var s_normalNrEnemies:int = 20;
public static var s_easySpawnInterval:Number = 1;
public static var s_easyNrEnemies:int = 30;
public static var s_normalStartTime:int = 85;
public static var s_hardSpawnInterval:Number = 1;
public static var s_hardStartTime:int = 130;
public function WaveGenerator(_arg1:EntityCollection, _arg2:Path, _arg3:MtRandom, _arg4:IEnemyFactory, _arg5:GameGuiVars, _arg6:Boolean){
_enemyVariants = new Array(4);
super();
_enemies = _arg1;
_path = _arg2;
_random = _arg3;
_enemyFactory = _arg4;
_gameGuiVars = _arg5;
_difficultyEasy = _arg6;
var _local7:int;
while (_local7 < 3) {
if (_difficultyEasy){
_enemyVariants[_local7] = _random.nextInt(2);
} else {
_enemyVariants[_local7] = _random.nextInt(3);
};
_local7++;
};
_enemyVariants[3] = (_difficultyEasy) ? 0 : _random.nextInt(2);
_gameGuiVars.enemyVariants = _enemyVariants;
initWave();
}
public function getWaveNr():int{
return (_waveNr);
}
public function lastEnemyGenerated():Boolean{
return ((((_waveCreatedEnemies == _waveNrEnemies)) && ((_waveNr == 4))));
}
public function tick(_arg1:int):void{
if ((((_waveTickTime == ((_waveCreatedEnemies + 1) * _spawnInterval))) && ((_waveCreatedEnemies < _waveNrEnemies)))){
createEnemy();
};
if (_tick == _nextWaveStartTickTime){
_waveNr++;
_gameGuiVars.waveNr = _waveNr;
initWave();
_currectWaveStartTickTime = _arg1;
};
_tick++;
_waveTickTime++;
}
private function initWave():void{
switch (_waveNr){
case 0:
_nextWaveStartTickTime = int(((s_easyStartTime * 1000) / JewelDefenceEngine.s_tickInterval));
_waveNrEnemies = 0;
_spawnInterval = 0;
break;
case 1:
_nextWaveStartTickTime = int(((s_normalStartTime * 1000) / JewelDefenceEngine.s_tickInterval));
_waveNrEnemies = s_easyNrEnemies;
_spawnInterval = int(((s_easySpawnInterval * 1000) / JewelDefenceEngine.s_tickInterval));
break;
case 2:
_nextWaveStartTickTime = int(((s_hardStartTime * 1000) / JewelDefenceEngine.s_tickInterval));
_waveNrEnemies = s_normalNrEnemies;
_spawnInterval = int(((s_normalSpawnInterval * 1000) / JewelDefenceEngine.s_tickInterval));
break;
case 3:
_nextWaveStartTickTime = int(((s_bossStartTime * 1000) / JewelDefenceEngine.s_tickInterval));
_waveNrEnemies = s_hardNrEnemies;
_spawnInterval = int(((s_hardSpawnInterval * 1000) / JewelDefenceEngine.s_tickInterval));
break;
case 4:
_nextWaveStartTickTime = -1;
_waveNrEnemies = s_bossNrEnemies;
_spawnInterval = int(((s_bossSpawnInterval * 1000) / JewelDefenceEngine.s_tickInterval));
break;
};
_waveCreatedEnemies = 0;
_waveTickTime = 0;
}
private function createEnemy():void{
var _local1:PathTile = _path.getTiles()[0];
var _local2:int = _enemyVariants[(_waveNr - 1)];
if (_waveNr == 1){
if (_local2 == 0){
_enemies.add(_enemyFactory.create(new EasyEnemy1Property(_local1.pos), _path));
} else {
if (_local2 == 1){
_enemies.add(_enemyFactory.create(new EasyEnemy2Property(_local1.pos), _path));
} else {
if (_local2 == 2){
_enemies.add(_enemyFactory.create(new EasyEnemy3Property(_local1.pos), _path));
};
};
};
} else {
if (_waveNr == 2){
if (_local2 == 0){
_enemies.add(_enemyFactory.create(new NormalEnemy1Property(_local1.pos), _path));
} else {
if (_local2 == 1){
_enemies.add(_enemyFactory.create(new NormalEnemy2Property(_local1.pos), _path));
} else {
if (_local2 == 2){
_enemies.add(_enemyFactory.create(new NormalEnemy3Property(_local1.pos), _path));
};
};
};
} else {
if (_waveNr == 3){
if (_local2 == 0){
_enemies.add(_enemyFactory.create(new HardEnemy1Property(_local1.pos), _path));
} else {
if (_local2 == 1){
_enemies.add(_enemyFactory.create(new HardEnemy2Property(_local1.pos), _path));
} else {
if (_local2 == 2){
_enemies.add(_enemyFactory.create(new HardEnemy3Property(_local1.pos), _path));
};
};
};
} else {
if (_waveNr == 4){
if (_local2 == 0){
_enemies.add(_enemyFactory.create(new BossEnemy1Property(_local1.pos), _path));
} else {
if (_local2 == 1){
_enemies.add(_enemyFactory.create(new BossEnemy2Property(_local1.pos), _path));
};
};
};
};
};
};
_waveCreatedEnemies++;
}
}
}//package com.midasplayer.jeweldefence.towerdefence
Section 118
//LastTickPlayData (com.midasplayer.jeweldefence.verify.LastTickPlayData)
package com.midasplayer.jeweldefence.verify {
import com.midasplayer.game.comm.*;
public class LastTickPlayData implements IPlayData {
private var _musicOn:Boolean;// = true
private var _soundOn:Boolean;// = true
private var _fps:int;
private var _finalScore:uint;
private var _tick:uint;
public function LastTickPlayData(_arg1:int, _arg2:int, _arg3:Boolean, _arg4:Boolean, _arg5:int){
_tick = _arg1;
_finalScore = _arg2;
_musicOn = _arg3;
_soundOn = _arg4;
_fps = _arg5;
}
public function toPlayData():String{
return (((((((((((PlayDataConstants.LastTick + ",") + _tick) + ",") + _finalScore) + ",") + int(_musicOn)) + ",") + int(_soundOn)) + ",") + _fps));
}
public function getTick():int{
return (_tick);
}
public function execute():void{
}
}
}//package com.midasplayer.jeweldefence.verify
Section 119
//MousePositionPlayData (com.midasplayer.jeweldefence.verify.MousePositionPlayData)
package com.midasplayer.jeweldefence.verify {
import com.midasplayer.game.comm.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
public class MousePositionPlayData implements IPlayData {
private var _tick:int;
private var _input:Input;
private var _pos:Vec2;
public function MousePositionPlayData(_arg1:Input, _arg2:int, _arg3:Vec2){
_input = _arg1;
_tick = _arg2;
_pos = _arg3.clone();
}
public function toPlayData():String{
return (((((((PlayDataConstants.MousePosition + ",") + _tick) + ",") + _pos.x) + ",") + _pos.y));
}
public function getTick():int{
return (_tick);
}
public function execute():void{
_input.setMousePosition(_pos);
}
}
}//package com.midasplayer.jeweldefence.verify
Section 120
//MousePressPlayData (com.midasplayer.jeweldefence.verify.MousePressPlayData)
package com.midasplayer.jeweldefence.verify {
import com.midasplayer.game.comm.*;
import com.midasplayer.debug.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
public class MousePressPlayData implements IPlayData {
private var _input:Input;
private var _pos:Vec2;
private var _tick:int;
public function MousePressPlayData(_arg1:Input, _arg2:int, _arg3:Vec2){
_input = _arg1;
_tick = _arg2;
_pos = _arg3.clone();
Debug.assert((_pos.x == int(_pos.x)), "Mouse x position is not even.");
Debug.assert((_pos.y == int(_pos.y)), "Mouse y position is not even.");
}
public function toPlayData():String{
return (((((((PlayDataConstants.MousePress + ",") + _tick) + ",") + _pos.x) + ",") + _pos.y));
}
public function execute():void{
_input.setMousePressed(_pos);
}
public function getTick():int{
return (_tick);
}
}
}//package com.midasplayer.jeweldefence.verify
Section 121
//MouseReleasePlayData (com.midasplayer.jeweldefence.verify.MouseReleasePlayData)
package com.midasplayer.jeweldefence.verify {
import com.midasplayer.game.comm.*;
import com.midasplayer.debug.*;
import com.midasplayer.jeweldefence.*;
import com.midasplayer.math.*;
public class MouseReleasePlayData implements IPlayData {
private var _input:Input;
private var _pos:Vec2;
private var _tick:int;
public function MouseReleasePlayData(_arg1:Input, _arg2:int, _arg3:Vec2){
_input = _arg1;
_tick = _arg2;
_pos = _arg3.clone();
Debug.assert((_pos.x == int(_pos.x)), "Mouse x position is not even.");
Debug.assert((_pos.y == int(_pos.y)), "Mouse y position is not even.");
}
public function toPlayData():String{
return (((((((PlayDataConstants.MouseRelease + ",") + _tick) + ",") + _pos.x) + ",") + _pos.y));
}
public function execute():void{
_input.setMouseReleased(_pos);
}
public function getTick():int{
return (_tick);
}
}
}//package com.midasplayer.jeweldefence.verify
Section 122
//PlayDataConstants (com.midasplayer.jeweldefence.verify.PlayDataConstants)
package com.midasplayer.jeweldefence.verify {
public class PlayDataConstants {
public static const MouseRelease:int = 2;
public static const Log:int = 0;
public static const MousePosition:int = 3;
public static const LastTick:int = 4;
public static const MousePress:int = 1;
}
}//package com.midasplayer.jeweldefence.verify
Section 123
//RemoteAssertHandler (com.midasplayer.jeweldefence.verify.RemoteAssertHandler)
package com.midasplayer.jeweldefence.verify {
import com.midasplayer.game.comm.*;
import com.midasplayer.debug.*;
public class RemoteAssertHandler implements IAssertHandler {
private const _maxAsserts:uint = 100;
private var _communicator:IGameComm;// = null
private var _sentAsserts:uint;// = 0
public function RemoteAssertHandler(_arg1:IGameComm){
_communicator = _arg1;
}
public function assert(_arg1:String):void{
if (_sentAsserts > _maxAsserts){
return;
};
_sentAsserts++;
_arg1 = _arg1.replace(",", "_");
_communicator.addPlayData(((PlayDataConstants.Log + ",") + _arg1));
}
}
}//package com.midasplayer.jeweldefence.verify
Section 124
//AnimSequence (com.midasplayer.jeweldefence.AnimSequence)
package com.midasplayer.jeweldefence {
import com.midasplayer.debug.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class AnimSequence {
private var _loop:Boolean;
private var _speed:Number;// = 1
private var _pos:Vec2;
private var _frameNumber:Number;// = 0
private var _animationStart:Boolean;// = false
private var _bitmapRenderSequence:BitmapRenderSequence;
private var _time:Number;
private var _playing:Boolean;// = false
private var _frame:int;// = 0
private var _lastFrame:int;
public function AnimSequence(_arg1:BitmapRenderSequence){
_pos = new Vec2();
super();
_bitmapRenderSequence = _arg1;
_lastFrame = (_bitmapRenderSequence.getLength() - 1);
}
public function stop():void{
_playing = false;
}
public function setSpeed(_arg1:Number):void{
_speed = _arg1;
}
public function getSpeed():Number{
return (_speed);
}
public function render(_arg1:Number):void{
var _local2:Number;
if (_playing){
if (_animationStart){
_animationStart = false;
_frameNumber = 0;
_local2 = 0;
} else {
_local2 = (_arg1 - _time);
};
_time = _arg1;
_frameNumber = (_frameNumber + (_local2 * _speed));
_frame = int(_frameNumber);
if (_frame > _lastFrame){
if (_loop){
_frameNumber = (_frameNumber % (_lastFrame + 1));
_frame = int(_frameNumber);
} else {
_playing = false;
_frameNumber = _lastFrame;
_frame = _lastFrame;
};
};
};
Debug.assert((((_frame >= 0)) && ((_frame <= _lastFrame))), "animFrame out of bounds");
_bitmapRenderSequence.render(_frame, _pos.x, _pos.y);
}
public function isPlaying():Boolean{
return (_playing);
}
public function setPosition(_arg1:Vec2):void{
_pos.copy(_arg1);
}
public function play():void{
_playing = true;
_loop = false;
_animationStart = true;
}
public function getFrame():int{
return (_frame);
}
public function playLoop():void{
_playing = true;
_loop = true;
_animationStart = true;
}
}
}//package com.midasplayer.jeweldefence
Section 125
//Background (com.midasplayer.jeweldefence.Background)
package com.midasplayer.jeweldefence {
import com.midasplayer.game.comm.*;
import com.midasplayer.debug.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import flash.geom.*;
public class Background implements IBitmapRenderable {
private var _bitmapRenderObject:BitmapRenderObject;
private static const _DOWN:int = 8;
private static const _bush1:BitmapData = new bush1(0, 0);
private static const _bush2:BitmapData = new bush2(0, 0);
private static const _bush3:BitmapData = new bush3(0, 0);
private static const _stone3:BitmapData = new stone3(0, 0);
private static const _stone1:BitmapData = new stone1(0, 0);
private static const _stone2:BitmapData = new stone2(0, 0);
private static const _UP:int = 4;
private static const _spruce:BitmapData = new spruce(0, 0);
private static const _LEFT:int = 1;
private static const _birke:BitmapData = new birke(0, 0);
private static const _mushroom:BitmapData = new mushroom(0, 0);
private static const _RIGHT:int = 2;
public function Background(_arg1:BitmapRender, _arg2:Path, _arg3:Array, _arg4:int, _arg5:GameDataParser){
var _local9:PathTile;
var _local10:Decoration;
var _local11:MovieClip;
var _local12:MovieClip;
var _local13:BitmapData;
var _local14:Vec2;
var _local15:BitmapData;
super();
var _local6:BitmapData = new background_middle(0, 0);
var _local7:Array = _arg2.getTiles();
var _local8:Vec2 = new Vec2(1, 0);
for each (_local9 in _local7) {
_local13 = _createTile(_getDir(_local8), _getDir(_local9.dir));
_local6.copyPixels(_local13, _local13.rect, new Point((_local9.pos.x - (PathTile.SIZE * 0.5)), (_local9.pos.y - (PathTile.SIZE * 0.5))));
_local8 = _local9.dir;
};
for each (_local10 in _arg3) {
_local14 = _local10.getPos();
_local15 = _createDecoration(_local10.getType());
_local6.copyPixels(_local15, _local15.rect, new Point((_local14.x - (_local15.width * 0.5)), (_local14.y - (_local15.height * 0.5))));
};
_local11 = new ScoreText();
_local11.textField.text = _arg5.getText("game_score").toUpperCase();
_local6.draw(_local11, new Matrix(1, 0, 0, 1, 14, 3));
_local12 = new TimeText();
_local12.textField.text = _arg5.getText("game_time").toLowerCase();
_local6.draw(_local12, new Matrix(1, 0, 0, 1, 458, 6));
_bitmapRenderObject = new BitmapRenderObject(_arg1, _local6);
}
public function isRemovable():Boolean{
return (false);
}
public function render(_arg1:int, _arg2:Number):void{
_bitmapRenderObject.render(5, 0);
}
private function _createTile(_arg1:int, _arg2:int):BitmapData{
if (_arg1 == _arg2){
if ((((_arg2 == _LEFT)) || ((_arg2 == _RIGHT)))){
return (((Math.random() > 0.5)) ? new PathLeft(0, 0) : new PathRight(0, 0));
};
if ((((_arg2 == _UP)) || (_DOWN))){
return (((Math.random() > 0.5)) ? new PathUp(0, 0) : new PathDown(0, 0));
};
Debug.assert(false, "Undefined path directions.");
};
if (_arg1 == _RIGHT){
return (((_arg2 == _UP)) ? new PathDownLeft(0, 0) : new PathDownRight(0, 0));
};
if (_arg1 == _LEFT){
return (((_arg2 == _UP)) ? new PathLeftUp(0, 0) : new PathUpRight(0, 0));
};
if (_arg1 == _UP){
return (((_arg2 == _LEFT)) ? new PathDownRight(0, 0) : new PathUpRight(0, 0));
};
if (_arg1 == _DOWN){
return (((_arg2 == _LEFT)) ? new PathDownLeft(0, 0) : new PathLeftUp(0, 0));
};
Debug.assert(false, "Undefined path directions.");
return (null);
}
private function _createDecoration(_arg1:int):BitmapData{
if (_arg1 == Decoration.STONE1){
return (_stone1);
};
if (_arg1 == Decoration.STONE2){
return (_stone2);
};
if (_arg1 == Decoration.STONE3){
return (_stone3);
};
if (_arg1 == Decoration.BUSH1){
return (_bush1);
};
if (_arg1 == Decoration.BUSH2){
return (_bush2);
};
if (_arg1 == Decoration.BUSH3){
return (_bush3);
};
if (_arg1 == Decoration.SPRUCE){
return (_spruce);
};
if (_arg1 == Decoration.MUSHROOM){
return (_mushroom);
};
if (_arg1 == Decoration.BIRKE){
return (_birke);
};
Debug.assert(false, "An unknown decoration type was found.");
return (null);
}
public function getDepth():int{
return (RenderDepths.BACKGROUND);
}
private function _getDir(_arg1:Vec2):int{
if (_arg1.x > 0){
return (_RIGHT);
};
if (_arg1.x < 0){
return (_LEFT);
};
if (_arg1.y > 0){
return (_DOWN);
};
if (_arg1.y < 0){
return (_UP);
};
Debug.assert(false, "A path tile direction is not set.");
return (-1);
}
}
}//package com.midasplayer.jeweldefence
Section 126
//ButtonVars (com.midasplayer.jeweldefence.ButtonVars)
package com.midasplayer.jeweldefence {
public class ButtonVars {
public var musicOn:Boolean;// = false
public var soundOn:Boolean;// = false
}
}//package com.midasplayer.jeweldefence
Section 127
//Game (com.midasplayer.jeweldefence.Game)
package com.midasplayer.jeweldefence {
import com.midasplayer.game.engine.*;
import com.midasplayer.debug.*;
import com.midasplayer.math.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.puzzle.*;
import com.midasplayer.jeweldefence.towerdefence.tower.*;
import com.midasplayer.jeweldefence.verify.*;
public class Game implements IGame {
private var _lockTime:int;// = 0
private var _input:Input;
private var _lock:Boolean;// = false
private var _oldPuzzleGameScore:int;// = 0
private var _scoreVars:ScoreVars;
private var _done:Boolean;// = false
private var _puzzleGameFactory:PuzzleGameFactory;
private var _buttonVars:ButtonVars;
private var _towerDefence:TowerDefenceGame;
private var _puzzleGameEndDelayCounter:int;// = 0
private var _puzzleGame:PuzzleGame;
private var _gameGuiVars:GameGuiVars;
private var _isShortGame:Boolean;
private var _playDataRecorder:IPlayDataRecorder;
private static const TICK_END_DELAY_OPENGAME:int = 100;
public static const LIFE_BONUS_3_LEFT:int = 3000;
private static const PUZZLE_GAME_END_DELAY:int = 20;
private static const BONUS_PER_SECOND:int = 5;
public static const LIFE_BONUS_2_LEFT:int = 1500;
public static const LIFE_BONUS_1_LEFT:int = 500;
private static const TICK_END_DELAY:int = 50;
private static const BONUS_PER_MONEY:int = 4;
private static const _gameTimeShortGame:int = 110;
public static var gameTime:int = 315;
public function Game(_arg1:TowerDefenceGame, _arg2:Input, _arg3:GameGuiVars, _arg4:PuzzleGameFactory, _arg5:IPlayDataRecorder, _arg6:ButtonVars, _arg7:ScoreVars, _arg8:Boolean){
_towerDefence = _arg1;
_input = _arg2;
_gameGuiVars = _arg3;
_puzzleGameFactory = _arg4;
_playDataRecorder = _arg5;
_buttonVars = _arg6;
_scoreVars = _arg7;
_isShortGame = _arg8;
}
private function _tryToFinishPuzzleGame():void{
if (!_puzzleGame.targetIsReached()){
return;
};
_puzzleGameEndDelayCounter++;
if (!_puzzleGame.isFinished()){
return;
};
if (_puzzleGameEndDelayCounter <= PUZZLE_GAME_END_DELAY){
return;
};
var _local1:int = (_puzzleGame.noMoreMoves()) ? int.MAX_VALUE : _puzzleGame.getMatchedBricks();
_towerDefence.activateTower(_local1);
_towerDefence.enableInput();
_oldPuzzleGameScore = 0;
_puzzleGame.cleanUp();
_puzzleGame = null;
}
private function _tryToStartNewPuzzleGame():void{
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:int;
if (_puzzleGame){
return;
};
var _local1:TowerProperty = _towerDefence.getInactiveTowerProperty();
if (!_local1){
return;
};
if ((_local1 is FireTowerProperty)){
_local2 = 0;
_local3 = FireTowerProperty.s_activationLevel1;
_local4 = FireTowerProperty.s_activationLevel1;
_local5 = FireTowerProperty.s_activationLevel2;
_local6 = FireTowerProperty.s_activationLevel3;
} else {
if ((_local1 is MissileTowerProperty)){
_local2 = 1;
_local3 = MissileTowerProperty.s_activationLevel1;
_local4 = MissileTowerProperty.s_activationLevel1;
_local5 = MissileTowerProperty.s_activationLevel2;
_local6 = MissileTowerProperty.s_activationLevel3;
} else {
if ((_local1 is LightningTowerProperty)){
_local2 = 2;
_local3 = LightningTowerProperty.s_activationLevel1;
_local4 = LightningTowerProperty.s_activationLevel1;
_local5 = LightningTowerProperty.s_activationLevel2;
_local6 = LightningTowerProperty.s_activationLevel3;
} else {
_local2 = 3;
_local3 = SlowTowerProperty.s_activationLevel1;
_local4 = SlowTowerProperty.s_activationLevel1;
_local5 = SlowTowerProperty.s_activationLevel2;
_local6 = SlowTowerProperty.s_activationLevel3;
};
};
};
_puzzleGame = _puzzleGameFactory.create(new PuzzleGameProperty(new Vec2(226, 190), _local2, _local4, _local5, _local6));
_puzzleGameEndDelayCounter = 0;
_towerDefence.disableInput();
}
public function isLocked():Boolean{
return (_lock);
}
public function enter():void{
}
private function _userQuit():Boolean{
if (!_input.mouseIsPressed()){
return (false);
};
var _local1:Vec2 = _input.getPressPosition();
return ((((((((_local1.x >= 730)) && ((_local1.x <= (730 + 19))))) && ((_local1.y >= 574)))) && ((_local1.y <= (574 + 23)))));
}
public function isDone():Boolean{
return (_done);
}
public function tick(_arg1:int):void{
var _local3:int;
var _local4:Number;
var _local5:int;
if (_done){
return;
};
Debug.assert(!(_done), "Trying to tick game when it's done.");
_gameGuiVars.timeAlpha = Math.min((_arg1 / ((gameTime * 1000) / JewelDefenceEngine.s_tickInterval)), 1);
if (_lock){
if (_isShortGame){
_done = (((_lockTime++ >= TICK_END_DELAY_OPENGAME)) || ((((_lockTime > 25)) && (_input.mouseIsPressed()))));
} else {
_done = (_lockTime++ >= TICK_END_DELAY);
};
_input.reset();
_towerDefence.tick(_arg1);
return;
};
if (((_input.mouseIsPressed()) && (_input.mouseIsReleased()))){
if (_input.getPressOrder() < _input.getReleaseOrder()){
_playDataRecorder.add(new MousePressPlayData(null, _arg1, _input.getPressPosition()));
_playDataRecorder.add(new MouseReleasePlayData(null, _arg1, _input.getReleasePosition()));
} else {
_playDataRecorder.add(new MouseReleasePlayData(null, _arg1, _input.getReleasePosition()));
_playDataRecorder.add(new MousePressPlayData(null, _arg1, _input.getPressPosition()));
};
} else {
if (_input.mouseIsPressed()){
_playDataRecorder.add(new MousePressPlayData(null, _arg1, _input.getPressPosition()));
};
if (_input.mouseIsReleased()){
_playDataRecorder.add(new MouseReleasePlayData(null, _arg1, _input.getReleasePosition()));
};
};
_towerDefence.tick(_arg1);
_tryToStartNewPuzzleGame();
if (_puzzleGame){
_puzzleGame.tick(_arg1);
_scoreVars.puzzleGameScore = ((_scoreVars.puzzleGameScore + _puzzleGame.getScore()) - _oldPuzzleGameScore);
_oldPuzzleGameScore = _puzzleGame.getScore();
_tryToFinishPuzzleGame();
};
_scoreVars.towerDefenceScore = _towerDefence.getScore();
if (((_isShortGame) && ((_arg1 >= ((_gameTimeShortGame * 1000) / JewelDefenceEngine.s_tickInterval))))){
_gameGuiVars.showRegisterSign = true;
if (_puzzleGame != null){
_puzzleGame.cleanUp();
_puzzleGame = null;
};
_lock = true;
return;
};
var _local2 = (_arg1 >= ((gameTime * 1000) / JewelDefenceEngine.s_tickInterval));
if (((((((_userQuit()) || (!(_towerDefence.hasEnemiesLeft())))) || (_towerDefence.hasFailed()))) || (_local2))){
if (_puzzleGame != null){
_puzzleGame.cleanUp();
_puzzleGame = null;
};
_towerDefence.disable();
_local3 = _towerDefence.getLivesLeft();
if (((((_local2) && (_towerDefence.hasEnemiesLeft()))) && ((_local3 > 0)))){
_local3--;
_towerDefence.removeALife();
if (_local3 == 2){
_scoreVars.lifeBonus = LIFE_BONUS_2_LEFT;
} else {
if (_local3 == 1){
_scoreVars.lifeBonus = LIFE_BONUS_1_LEFT;
};
};
_scoreVars.livesLeft = _local3;
} else {
if (((!(_towerDefence.hasEnemiesLeft())) && ((_local3 > 0)))){
_scoreVars.timeBonus = ((gameTime - ((_arg1 * JewelDefenceEngine.s_tickInterval) / 1000)) * BONUS_PER_SECOND);
_scoreVars.moneyBonus = (_towerDefence.getMoney() * BONUS_PER_MONEY);
if (_local3 == 3){
_scoreVars.lifeBonus = LIFE_BONUS_3_LEFT;
} else {
if (_local3 == 2){
_scoreVars.lifeBonus = LIFE_BONUS_2_LEFT;
} else {
if (_local3 == 1){
_scoreVars.lifeBonus = LIFE_BONUS_1_LEFT;
};
};
};
_scoreVars.livesLeft = _local3;
};
};
_local4 = ((_arg1 * JewelDefenceEngine.s_tickInterval) / 1000);
_local5 = int((_gameGuiVars.renderCalls / _local4));
_playDataRecorder.add(new LastTickPlayData(_arg1, getFinalScore(), _buttonVars.musicOn, _buttonVars.soundOn, _local5));
if (_userQuit()){
_done = true;
_scoreVars.forcedEnd = true;
} else {
_lock = true;
};
};
}
public function getFinalScore():int{
return (_scoreVars.getTotalScore());
}
public function leave():void{
}
public function getGameGuiVars():GameGuiVars{
return (_gameGuiVars);
}
}
}//package com.midasplayer.jeweldefence
Section 128
//GameFactory (com.midasplayer.jeweldefence.GameFactory)
package com.midasplayer.jeweldefence {
import com.midasplayer.game.engine.*;
import com.midasplayer.game.comm.*;
import com.midasplayer.math.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import com.midasplayer.jeweldefence.puzzle.*;
import com.midasplayer.jeweldefence.towerdefence.tower.*;
import com.midasplayer.jeweldefence.towerdefence.weapon.*;
import com.midasplayer.jeweldefence.towerdefence.shop.*;
import com.midasplayer.jeweldefence.towerdefence.enemy.*;
public class GameFactory {
private var _bitmapRender:BitmapRender;
private var _input:Input;
private var _buttonVars:ButtonVars;
private var _soundManager:SoundManager;
private var _renderEngine:RenderEngine;
private var _gameDataParser:GameDataParser;
private var _playDataRecorder:IPlayDataRecorder;
private var _scoreVars:ScoreVars;
public function GameFactory(_arg1:GameDataParser, _arg2:RenderEngine, _arg3:BitmapRender, _arg4:Input, _arg5:IPlayDataRecorder, _arg6:ButtonVars, _arg7:ScoreVars, _arg8:SoundManager){
_gameDataParser = _arg1;
_renderEngine = _arg2;
_bitmapRender = _arg3;
_input = _arg4;
_playDataRecorder = _arg5;
_buttonVars = _arg6;
_scoreVars = _arg7;
_soundManager = _arg8;
}
private function _createTowerDefence(_arg1:MtRandom, _arg2:GameGuiVars, _arg3:GameDataParser):TowerDefenceGame{
var _local4:EntityCollection;
var _local6:EntityCollection;
var _local7:Vec2;
var _local8:Vec2;
var _local13:ObstacleMap;
var _local14:MapDecorator;
var _local15:Array;
var _local16:WeaponFactory;
var _local19:Vec2;
var _local20:EnemyGoalProperty;
var _local23:ShopTowerFactory;
var _local24:Array;
var _local25:ShopVars;
_local4 = new EntityCollection();
var _local5:EntityCollection = new EntityCollection();
_local6 = new EntityCollection();
_local7 = new Vec2((PathGenerator.width + 4), (PathGenerator.height + 4));
_local8 = new Vec2(3, 27);
var _local9:Vec2 = _local7.scale(PathTile.SIZE);
var _local10:Vec2 = _local8.add(new Vec2((PathTile.SIZE * 2.5), (PathTile.SIZE * 2.5)));
var _local11:PathGenerator = new PathGenerator(_arg1);
var _local12:Path = _local11.generate(_local10, PathTile.SIZE);
while (_local12.getTiles().length <= 2) {
_local12 = _local11.generate(_local10, PathTile.SIZE);
};
_extendPath(_local12);
_local13 = new ObstacleMap(_local12, _local6, _local8, _local9);
_local14 = new MapDecorator(_arg1, _local9);
_local15 = _local14.generate(_local13);
_local16 = new WeaponFactory(_renderEngine, _bitmapRender, _soundManager);
var _local17:EnemyFactory = new EnemyFactory(_renderEngine, _bitmapRender, _soundManager);
var _local18:TowerFactory = new TowerFactory(_renderEngine, _bitmapRender, _local16, _local4, _local5, _local12, _soundManager);
_local19 = _local12.getPos(_local12.getTotalDistance());
_local19.x = 564;
_local20 = new EnemyGoalProperty(_local19);
var _local21:EnemyGoal = new EnemyGoal(_local20);
_renderEngine.add(new EnemyGoalView(_renderEngine, _bitmapRender, _local20, _soundManager));
if (DebugView.enabled){
_renderEngine.add(new DebugView(_bitmapRender, _local20));
};
var _local22:Vec2 = _local12.getPos(0);
_local12.getPos(0).x = (_local22.x + 17);
_local22.y = (_local22.y - 17);
_renderEngine.add(new PathStartArrowView(_bitmapRender, _local22, _arg2));
_local23 = new ShopTowerFactory(_renderEngine, _bitmapRender, _local18, _soundManager);
_local24 = new Array();
_local25 = new ShopVars(_local24);
var _local26:Shop = new Shop(_input, _local23, _local6, _local13, _local25);
_local24.push(_local23.create(new FireTowerProperty(new Vec2(644, 82), 1), _local25));
_local24.push(_local23.create(new MissileTowerProperty(new Vec2(699, 82), 1), _local25));
_local24.push(_local23.create(new LightningTowerProperty(new Vec2(644, 166), 1), _local25));
_local24.push(_local23.create(new SlowTowerProperty(new Vec2(699, 166), 1), _local25));
var _local27:ScorePopupFactory = new ScorePopupFactory(_renderEngine, _bitmapRender);
var _local28:WaveGenerator = new WaveGenerator(_local4, _local12, _arg1, _local17, _arg2, _gameDataParser.getElementTextAsBool("difficultyEasy"));
_renderEngine.add(new Background(_bitmapRender, _local12, _local15, PathTile.SIZE, _arg3));
_renderEngine.add(new ShopView(_bitmapRender, _local25, _input, _arg3, _soundManager));
_renderEngine.add(new GameGuiView(_bitmapRender, _renderEngine, _arg2, _buttonVars, _scoreVars, _soundManager, _arg3));
_renderEngine.add(new RangeView(_bitmapRender, _local6, _local25, _input, _soundManager));
if (_gameDataParser.getElementTextAsBool("showTutorial")){
_renderEngine.add(new TutorialView(_bitmapRender, _local25, _scoreVars, _gameDataParser));
};
return (new TowerDefenceGame(_arg1, _input, _local4, _local5, _local6, _local18, _local16, _local21, _local26, _local27, _local12, _local28, _scoreVars));
}
public function create():IGame{
var _local1:MtRandom;
var _local2:GameGuiVars;
_local1 = new MtRandom(_gameDataParser.randomSeed);
_local2 = new GameGuiVars();
_buttonVars.soundOn = _gameDataParser.getElementTextAsBool("soundOn");
_buttonVars.musicOn = _gameDataParser.getElementTextAsBool("musicOn");
var _local3:TowerDefenceGame = _createTowerDefence(_local1, _local2, _gameDataParser);
var _local4:PuzzleGameFactory = new PuzzleGameFactory(_renderEngine, _bitmapRender, _input, _local1, _playDataRecorder, _soundManager);
return (new Game(_local3, _input, _local2, _local4, _playDataRecorder, _buttonVars, _scoreVars, _gameDataParser.getElementTextAsBool("isShortGame")));
}
private function _extendPath(_arg1:Path):void{
var _local2:Array;
_local2 = _arg1.getTiles();
var _local3:PathTile = _local2[0];
var _local4:Vec2 = new Vec2(PathTile.SIZE, 0);
_local2.unshift(new PathTile(_local3.pos.sub(_local4), _local4));
_local2.unshift(new PathTile(_local3.pos.sub(_local4.scale(2)), _local4));
_local2.unshift(new PathTile(_local3.pos.sub(_local4.scale(3)), _local4));
var _local5:PathTile = _local2[(_local2.length - 1)];
_local2.push(new PathTile(_local5.pos.add(_local4), _local4));
_local2.push(new PathTile(_local5.pos.add(_local4.scale(2)), _local4));
}
}
}//package com.midasplayer.jeweldefence
Section 129
//GameGuiVars (com.midasplayer.jeweldefence.GameGuiVars)
package com.midasplayer.jeweldefence {
public class GameGuiVars {
public var timeAlpha:Number;// = 0
public var showRegisterSign:Boolean;// = false
public var enemyVariants:Array;
public var waveNr:int;// = 0
public var renderCalls:int;// = 0
}
}//package com.midasplayer.jeweldefence
Section 130
//GameGuiView (com.midasplayer.jeweldefence.GameGuiView)
package com.midasplayer.jeweldefence {
import com.midasplayer.game.comm.*;
import com.midasplayer.math.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import com.midasplayer.jeweldefence.towerdefence.*;
import flash.geom.*;
public class GameGuiView implements IBitmapRenderable {
private var _power:BitmapRenderObject;
private var _play3:Boolean;// = true
private var _flags:Array;
private var _flag:BitmapRenderObject;
private var _play2:Boolean;// = true
private var _soundOn:BitmapRenderObject;
private var _timeColon:BitmapRenderObject;
private var _play4:Boolean;// = true
private var _buttonVars:ButtonVars;
private var _scoreVars:ScoreVars;
private var _registerSignView:RegisterSignView;
private var _musicOff:BitmapRenderObject;
private var _play1:Boolean;// = true
private var _greenBar:BitmapRenderObject;
private var _musicOn:BitmapRenderObject;
private var _gameGuiVars:GameGuiVars;
private var _scoreNumbers:BitmapNumber;
private var _soundManager:SoundManager;
private var _timeNumbers:BitmapNumber;
private var _soundOff:BitmapRenderObject;
public function GameGuiView(_arg1:BitmapRender, _arg2:RenderEngine, _arg3:GameGuiVars, _arg4:ButtonVars, _arg5:ScoreVars, _arg6:SoundManager, _arg7:GameDataParser){
_flags = new Array(4);
super();
_gameGuiVars = _arg3;
_buttonVars = _arg4;
_scoreVars = _arg5;
_soundManager = _arg6;
var _local8:Array = new Array(new numbers_time_0(0, 0), new numbers_time_1(0, 0), new numbers_time_2(0, 0), new numbers_time_3(0, 0), new numbers_time_4(0, 0), new numbers_time_5(0, 0), new numbers_time_6(0, 0), new numbers_time_7(0, 0), new numbers_time_8(0, 0), new numbers_time_9(0, 0));
_timeNumbers = new BitmapNumber(new BitmapRenderSequence(_arg1, _local8));
_timeColon = new BitmapRenderObject(_arg1, new numbers_time_colon(0, 0));
var _local9:Array = new Array(new numbers_score_0(0, 0), new numbers_score_1(0, 0), new numbers_score_2(0, 0), new numbers_score_3(0, 0), new numbers_score_4(0, 0), new numbers_score_5(0, 0), new numbers_score_6(0, 0), new numbers_score_7(0, 0), new numbers_score_8(0, 0), new numbers_score_9(0, 0));
_scoreNumbers = new BitmapNumber(new BitmapRenderSequence(_arg1, _local9));
_greenBar = new BitmapRenderObject(_arg1, new enemybar_green(0, 0));
_initFlagGraphics(_arg1);
_soundOn = new BitmapRenderObject(_arg1, new sound_on(0, 0));
_soundOff = new BitmapRenderObject(_arg1, new sound_off(0, 0));
_musicOn = new BitmapRenderObject(_arg1, new music_on(0, 0));
_musicOff = new BitmapRenderObject(_arg1, new music_off(0, 0));
_power = new BitmapRenderObject(_arg1, new power(0, 0));
_registerSignView = new RegisterSignView(_arg1, new Vec2(326, 292), _arg7);
_arg2.add(_registerSignView);
}
public function isRemovable():Boolean{
return (false);
}
public function getDepth():int{
return (RenderDepths.GAME_GUI);
}
public function render(_arg1:int, _arg2:Number):void{
var _local3:int;
var _local4:int;
var _local7:Number;
_scoreNumbers.renderTopLeft(((_scoreVars.towerDefenceScore + _scoreVars.puzzleGameScore) + _scoreVars.timeBonus), 116, 9, 14);
_local3 = ((_arg1 * JewelDefenceEngine.s_tickInterval) / 1000);
_local4 = Math.max((Game.gameTime - _local3), 0);
var _local5:int = (_local4 % 60);
var _local6:int = (_local4 / 60);
_timeNumbers.renderTopLeft(_local6, 566, 18, 14);
_timeColon.render(582, 18);
_timeNumbers.renderTopLeft(_local5, 589, 18, 14, 2);
_local7 = _greenBar.getWidth();
var _local8:int = ((1 - _gameGuiVars.timeAlpha) * _local7);
var _local9:int = (_gameGuiVars.timeAlpha * _local7);
_greenBar.renderRect((20 + _local9), 579, new Rectangle(0, 0, _local8, 13));
var _local10:Number = WaveGenerator.s_easyStartTime;
var _local11:Number = WaveGenerator.s_normalStartTime;
var _local12:Number = WaveGenerator.s_hardStartTime;
var _local13:Number = WaveGenerator.s_bossStartTime;
var _local14:Number = 500;
_arg2 = (_local10 / Game.gameTime);
_flags[0].render((2 + (_arg2 * _local14)), 543);
_arg2 = (_local11 / Game.gameTime);
_flags[1].render((2 + (_arg2 * _local14)), 543);
_arg2 = (_local12 / Game.gameTime);
_flags[2].render((2 + (_arg2 * _local14)), 543);
_arg2 = (_local13 / Game.gameTime);
_flags[3].render((2 + (_arg2 * _local14)), 543);
if (_buttonVars.soundOn){
_soundOn.render(674, 574);
} else {
_soundOff.render(674, 574);
};
if (_buttonVars.musicOn){
_musicOn.render(699, 574);
} else {
_musicOff.render(699, 574);
};
_power.render(724, 574);
if ((((_local3 > _local13)) && (_play4))){
_soundManager.getFromClass(enemy_wave_1s).play(SoundVars.SOUND_VOLUME);
_play4 = false;
} else {
if ((((_local3 > _local12)) && (_play3))){
_soundManager.getFromClass(enemy_wave_1s).play(SoundVars.SOUND_VOLUME);
_play3 = false;
} else {
if ((((_local3 > _local11)) && (_play2))){
_soundManager.getFromClass(enemy_wave_1s).play(SoundVars.SOUND_VOLUME);
_play2 = false;
} else {
if ((((_local3 > _local10)) && (_play1))){
_soundManager.getFromClass(enemy_wave_1s).play(SoundVars.SOUND_VOLUME);
_play1 = false;
};
};
};
};
if (_gameGuiVars.showRegisterSign){
_registerSignView.show();
};
}
private function _initFlagGraphics(_arg1:BitmapRender):void{
if (_gameGuiVars.enemyVariants[0] == 0){
_flags[0] = new BitmapRenderObject(_arg1, new flag_mouse(0, 0));
} else {
if (_gameGuiVars.enemyVariants[0] == 1){
_flags[0] = new BitmapRenderObject(_arg1, new flag_cat(0, 0));
} else {
if (_gameGuiVars.enemyVariants[0] == 2){
_flags[0] = new BitmapRenderObject(_arg1, new flag_raven(0, 0));
};
};
};
if (_gameGuiVars.enemyVariants[1] == 0){
_flags[1] = new BitmapRenderObject(_arg1, new flag_racoon(0, 0));
} else {
if (_gameGuiVars.enemyVariants[1] == 1){
_flags[1] = new BitmapRenderObject(_arg1, new flag_fox(0, 0));
} else {
if (_gameGuiVars.enemyVariants[1] == 2){
_flags[1] = new BitmapRenderObject(_arg1, new flag_snake(0, 0));
};
};
};
if (_gameGuiVars.enemyVariants[2] == 0){
_flags[2] = new BitmapRenderObject(_arg1, new flag_badger(0, 0));
} else {
if (_gameGuiVars.enemyVariants[2] == 1){
_flags[2] = new BitmapRenderObject(_arg1, new flag_dog(0, 0));
} else {
if (_gameGuiVars.enemyVariants[2] == 2){
_flags[2] = new BitmapRenderObject(_arg1, new flag_chickenhawk(0, 0));
};
};
};
if (_gameGuiVars.enemyVariants[3] == 0){
_flags[3] = new BitmapRenderObject(_arg1, new flag_baker(0, 0));
} else {
if (_gameGuiVars.enemyVariants[3] == 1){
_flags[3] = new BitmapRenderObject(_arg1, new flag_boar(0, 0));
};
};
}
}
}//package com.midasplayer.jeweldefence
Section 131
//GameOver (com.midasplayer.jeweldefence.GameOver)
package com.midasplayer.jeweldefence {
import com.midasplayer.game.engine.*;
import com.midasplayer.timing.*;
import com.midasplayer.game.comm.*;
import flash.display.*;
import flash.text.*;
import com.midasplayer.text.*;
public class GameOver extends Sprite implements IRunnable, IRenderable {
private const _gameOver:MovieClip;
private const _stats:TextFields;
private const _egg1:MovieClip;
private const _egg2:MovieClip;
private const _egg3:MovieClip;
private const _texts:TextFields;
private var _input:Input;
private var _s2:Number;// = 2
private var _s3:Number;// = 2
private var _time:int;// = 18
private var _gameData:GameDataParser;
private var _scoreVars:ScoreVars;
private var _life:TextField;
private var _done:Boolean;// = false
private var _totalScoreText:TextField;
private var _isPlaying2:Boolean;// = false
private var _isPlaying3:Boolean;// = false
private var _isPlaying1:Boolean;// = false
private var _s1:Number;// = 2
public function GameOver(_arg1:ScoreVars, _arg2:GameDataParser, _arg3:Input){
_gameOver = new game_over();
_egg1 = new egg_animated_mc();
_egg2 = new egg_animated_mc();
_egg3 = new egg_animated_mc();
_stats = new TextFields((_gameOver.getChildByName("statistics") as MovieClip));
_texts = new TextFields(_gameOver);
super();
_scoreVars = _arg1;
_gameData = _arg2;
_input = _arg3;
_gameOver.stop();
_gameOver.x = 350;
_gameOver.y = 295;
addChild(_gameOver);
_egg1.x = -130;
_egg1.y = -12;
_egg1.stop();
_egg2.x = -2;
_egg2.y = -8;
_egg2.stop();
_egg3.x = 126;
_egg3.y = -6;
_egg3.stop();
_egg1.visible = false;
_egg2.visible = false;
_egg3.visible = false;
(_egg1.getChildByName("chicken") as MovieClip).stop();
(_egg2.getChildByName("chicken") as MovieClip).stop();
(_egg3.getChildByName("chicken") as MovieClip).stop();
(_egg1.getChildByName("soul") as MovieClip).stop();
(_egg2.getChildByName("soul") as MovieClip).stop();
(_egg3.getChildByName("soul") as MovieClip).stop();
}
public function leave():void{
_gameOver.stop();
}
public function setIsDone():void{
_done = true;
}
public function isDone():Boolean{
return (_done);
}
public function tick(_arg1:int):void{
var _local2:int;
_local2 = (((_arg1 + alpha) * JewelDefenceEngine.s_tickInterval) / 1000);
var _local3:int = (_time - _local2);
if (_local3 <= 0){
_done = true;
} else {
if ((((_local2 > 2)) && (_input.mouseIsPressed()))){
_done = true;
};
};
_input.reset();
}
public function render(_arg1:int, _arg2:Number):void{
if ((((_scoreVars.livesLeft > 0)) && (!(_scoreVars.forcedEnd)))){
if (_gameOver.headerContainerGreen != null){
_gameOver.headerContainerGreen.headerText.text = _gameData.getText("gameover_positive_header");
};
} else {
if (_gameOver.headerContainerGreen != null){
_gameOver.headerContainerGreen.visible = false;
};
if (_gameOver.headerContainer != null){
_gameOver.headerContainer.headerText.text = _gameData.getText("gameover_negative_header");
};
};
if ((((_gameOver.currentFrame >= 113)) && (!(_isPlaying1)))){
if (_scoreVars.livesLeft == 3){
(_egg1.getChildByName("chicken") as MovieClip).play();
} else {
(_egg1.getChildByName("soul") as MovieClip).play();
};
_egg1.visible = true;
_egg1.play();
_isPlaying1 = true;
} else {
if ((((_gameOver.currentFrame >= 134)) && (!(_isPlaying2)))){
if (_scoreVars.livesLeft >= 2){
(_egg2.getChildByName("chicken") as MovieClip).play();
} else {
(_egg2.getChildByName("soul") as MovieClip).play();
};
_egg2.visible = true;
_egg2.play();
_isPlaying2 = true;
} else {
if ((((_gameOver.currentFrame >= 153)) && (!(_isPlaying3)))){
if (_scoreVars.livesLeft >= 1){
(_egg3.getChildByName("chicken") as MovieClip).play();
} else {
(_egg3.getChildByName("soul") as MovieClip).play();
};
_egg3.visible = true;
_egg3.play();
_isPlaying3 = true;
} else {
if (_gameOver.currentFrame >= 177){
_totalScoreText.text = _scoreVars.getTotalScore().toString();
};
};
};
};
if (_gameOver.currentFrame >= (153 + 15)){
_life.text = _scoreVars.lifeBonus.toString();
} else {
if (_gameOver.currentFrame >= (134 + 15)){
if (_scoreVars.livesLeft == 3){
_life.text = Game.LIFE_BONUS_2_LEFT.toString();
} else {
if (_scoreVars.livesLeft == 2){
_life.text = Game.LIFE_BONUS_1_LEFT.toString();
};
};
} else {
if (_gameOver.currentFrame >= (113 + 15)){
if (_scoreVars.livesLeft == 3){
_life.text = Game.LIFE_BONUS_1_LEFT.toString();
};
};
};
};
if (_gameOver.currentFrame >= 220){
_egg1.y = (_egg1.y + _s1);
_s1 = (_s1 + 10);
};
if (_gameOver.currentFrame >= 240){
_egg2.y = (_egg2.y + _s2);
_s2 = (_s2 + 10);
};
if (_gameOver.currentFrame >= 260){
_egg3.y = (_egg3.y + _s3);
_s3 = (_s3 + 10);
};
var _local3:int = Math.max(0, (_time - (((_arg1 + _arg2) * JewelDefenceEngine.s_tickInterval) / 1000)));
_texts.setText("gameover_timeLeft", _local3.toString());
}
public function enter():void{
var _local3:MovieClip;
var _local6:MovieClip;
var _local9:MovieClip;
var _local12:MovieClip;
var _local29:MovieClip;
var _local1:TextField = _gameOver.headerContainer.headerText;
_local1.text = _gameData.getText("gameover_positive_header");
var _local2:int = (_scoreVars.towerDefenceScore + _scoreVars.puzzleGameScore);
_local3 = (_gameOver.getChildByName("scoreContainer") as MovieClip);
var _local4:TextField = ((_local3.getChildByName("scoreText") as MovieClip).getChildAt(0) as TextField);
var _local5:TextField = ((_local3.getChildByName("score") as MovieClip).getChildAt(0) as TextField);
_local4.text = _gameData.getText("gameover_score");
_local5.text = _local2.toString();
_local6 = (_gameOver.getChildByName("moneyContainer") as MovieClip);
var _local7:TextField = ((_local6.getChildByName("moneyText") as MovieClip).getChildAt(0) as TextField);
var _local8:TextField = ((_local6.getChildByName("money") as MovieClip).getChildAt(0) as TextField);
_local7.text = _gameData.getText("gameover_money");
_local8.text = _scoreVars.moneyBonus.toString();
_local9 = (_gameOver.getChildByName("timeContainer") as MovieClip);
var _local10:TextField = ((_local9.getChildByName("timeText") as MovieClip).getChildAt(0) as TextField);
var _local11:TextField = ((_local9.getChildByName("time") as MovieClip).getChildAt(0) as TextField);
_local10.text = _gameData.getText("gameover_time");
_local11.text = _scoreVars.timeBonus.toString();
_local12 = (_gameOver.getChildByName("lifeContainer") as MovieClip);
var _local13:TextField = (_local12.getChildByName("lifeText") as TextField);
_life = (_local12.getChildByName("life") as TextField);
_local13.text = _gameData.getText("gameover_lifes");
_life.text = "";
var _local14:MovieClip = (_gameOver.getChildByName("totalContainer") as MovieClip);
_totalScoreText = (_local14.getChildByName("total") as TextField);
var _local15:int = (_scoreVars.getTotalScore() - _scoreVars.lifeBonus);
_totalScoreText.text = _local15.toString();
var _local16:int = Math.max(_gameData.getElementTextAsInt("bestScore"), _scoreVars.getTotalScore());
_stats.setText("bestScoreText", _gameData.getText("gameover_bestScore"));
_stats.setText("bestScore", _local16.toString());
var _local17:int = (_gameData.getElementTextAsInt("builtFire1") + _scoreVars.builtFire[0]);
_stats.setText("totalBuiltFire1", _local17.toString());
var _local18:int = (_gameData.getElementTextAsInt("builtFire2") + _scoreVars.builtFire[1]);
_stats.setText("totalBuiltFire2", _local18.toString());
var _local19:int = (_gameData.getElementTextAsInt("builtFire3") + _scoreVars.builtFire[2]);
_stats.setText("totalBuiltFire3", _local19.toString());
var _local20:int = (_gameData.getElementTextAsInt("builtMissile1") + _scoreVars.builtMissile[0]);
_stats.setText("totalBuiltMissile1", _local20.toString());
var _local21:int = (_gameData.getElementTextAsInt("builtMissile2") + _scoreVars.builtMissile[1]);
_stats.setText("totalBuiltMissile2", _local21.toString());
var _local22:int = (_gameData.getElementTextAsInt("builtMissile3") + _scoreVars.builtMissile[2]);
_stats.setText("totalBuiltMissile3", _local22.toString());
var _local23:int = (_gameData.getElementTextAsInt("builtLightning1") + _scoreVars.builtLightning[0]);
_stats.setText("totalBuiltLightning1", _local23.toString());
var _local24:int = (_gameData.getElementTextAsInt("builtLightning2") + _scoreVars.builtLightning[1]);
_stats.setText("totalBuiltLightning2", _local24.toString());
var _local25:int = (_gameData.getElementTextAsInt("builtLightning3") + _scoreVars.builtLightning[2]);
_stats.setText("totalBuiltLightning3", _local25.toString());
var _local26:int = (_gameData.getElementTextAsInt("builtSlow1") + _scoreVars.builtSlow[0]);
_stats.setText("totalBuiltSlow1", _local26.toString());
var _local27:int = (_gameData.getElementTextAsInt("builtSlow2") + _scoreVars.builtSlow[1]);
_stats.setText("totalBuiltSlow2", _local27.toString());
var _local28:int = (_gameData.getElementTextAsInt("builtSlow3") + _scoreVars.builtSlow[2]);
_stats.setText("totalBuiltSlow3", _local28.toString());
_stats.setText("builtFire1", _scoreVars.builtFire[0]);
_stats.setText("builtFire2", _scoreVars.builtFire[1]);
_stats.setText("builtFire3", _scoreVars.builtFire[2]);
_stats.setText("builtMissile1", _scoreVars.builtMissile[0]);
_stats.setText("builtMissile2", _scoreVars.builtMissile[1]);
_stats.setText("builtMissile3", _scoreVars.builtMissile[2]);
_stats.setText("builtLightning1", _scoreVars.builtLightning[0]);
_stats.setText("builtLightning2", _scoreVars.builtLightning[1]);
_stats.setText("builtLightning3", _scoreVars.builtLightning[2]);
_stats.setText("builtSlow1", _scoreVars.builtSlow[0]);
_stats.setText("builtSlow2", _scoreVars.builtSlow[1]);
_stats.setText("builtSlow3", _scoreVars.builtSlow[2]);
_gameOver.addChild(_egg3);
_gameOver.addChild(_egg2);
_gameOver.addChild(_egg1);
_stats.setText("title", _gameData.getText("stats_title"));
_stats.setText("now", _gameData.getText("stats_now"));
_stats.setText("total", _gameData.getText("stats_total"));
_texts.setText("gameover_timeLeftText", _gameData.getText("gameover_timeLeft"));
_local29 = ((_gameOver.getChildByName("tagClip") as MovieClip).getChildByName("tagClip") as MovieClip);
var _local30:TextField = (_local29.getChildByName("tag") as TextField);
if (_scoreVars.livesLeft > 0){
_local30.text = _gameData.getText("gameover_livesLeft");
} else {
_local30.text = _gameData.getText("gameover_noLivesLeft");
};
_gameOver.play();
}
}
}//package com.midasplayer.jeweldefence
Section 132
//GameView (com.midasplayer.jeweldefence.GameView)
package com.midasplayer.jeweldefence {
import com.midasplayer.timing.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class GameView implements IRenderable {
private var _gameGuiVars:GameGuiVars;
private var _renderEngine:RenderEngine;
public function GameView(_arg1:RenderEngine, _arg2:BitmapRender, _arg3:GameGuiVars){
_renderEngine = _arg1;
_gameGuiVars = _arg3;
}
public function render(_arg1:int, _arg2:Number):void{
_renderEngine.render(_arg1, _arg2);
_gameGuiVars.renderCalls++;
}
}
}//package com.midasplayer.jeweldefence
Section 133
//IBitmapRenderable (com.midasplayer.jeweldefence.IBitmapRenderable)
package com.midasplayer.jeweldefence {
import com.midasplayer.timing.*;
public interface IBitmapRenderable extends IRenderable {
function isRemovable():Boolean;
function getDepth():int;
}
}//package com.midasplayer.jeweldefence
Section 134
//Input (com.midasplayer.jeweldefence.Input)
package com.midasplayer.jeweldefence {
import com.midasplayer.debug.*;
import com.midasplayer.math.*;
public class Input {
private const _mousePos:Vec2;
private const _releasePos:Vec2;
private const _pressPos:Vec2;
private var _mouseIsReleased:Boolean;// = false
private var _mouseIsPressed:Boolean;// = false
private var _hasMousePosition:Boolean;// = false
private var _order:int;// = 0
private var _pressOrder:int;// = 0
private var _releaseOrder:int;// = 0
private var _mouseIsDown:Boolean;// = false
public function Input(){
_mousePos = new Vec2();
_pressPos = new Vec2();
_releasePos = new Vec2();
super();
}
public function setMouseReleased(_arg1:Vec2):void{
Debug.assert((_arg1.x == int(_arg1.x)), "Release mouse x position is not even.");
Debug.assert((_arg1.y == int(_arg1.y)), "Release mouse y position is not even.");
if (((_mouseIsPressed) && (_mouseIsReleased))){
_mouseIsPressed = false;
};
_mouseIsReleased = true;
_mouseIsDown = false;
_releasePos.copy(_arg1);
_releaseOrder = ++_order;
}
public function getPressOrder():int{
return (_pressOrder);
}
public function mouseIsReleased():Boolean{
return (_mouseIsReleased);
}
public function reset():void{
_mouseIsPressed = false;
_mouseIsReleased = false;
_hasMousePosition = false;
_order = 0;
_pressOrder = 0;
_releaseOrder = 0;
}
public function getPressPosition():Vec2{
return (_pressPos);
}
public function getReleasePosition():Vec2{
return (_releasePos);
}
public function mouseIsDown():Boolean{
return (_mouseIsDown);
}
public function mouseIsPressed():Boolean{
return (_mouseIsPressed);
}
public function hasMousePosition():Boolean{
return (_hasMousePosition);
}
public function getMousePosition():Vec2{
return (_mousePos);
}
public function setMousePosition(_arg1:Vec2):void{
_hasMousePosition = true;
_mousePos.copy(_arg1);
}
public function getReleaseOrder():int{
return (_releaseOrder);
}
public function setMousePressed(_arg1:Vec2):void{
Debug.assert((_arg1.x == int(_arg1.x)), "Press mouse x position is not even.");
Debug.assert((_arg1.y == int(_arg1.y)), "Press mouse y position is not even.");
if (((_mouseIsPressed) && (_mouseIsReleased))){
_mouseIsReleased = false;
};
_mouseIsPressed = true;
_mouseIsDown = true;
_pressPos.copy(_arg1);
_pressOrder = ++_order;
}
}
}//package com.midasplayer.jeweldefence
Section 135
//Intro (com.midasplayer.jeweldefence.Intro)
package com.midasplayer.jeweldefence {
import com.midasplayer.game.engine.*;
import com.midasplayer.timing.*;
import com.midasplayer.game.comm.*;
import flash.display.*;
import flash.text.*;
import com.midasplayer.text.*;
public class Intro extends Sprite implements IRunnable, IRenderable {
private const _soundOn:Bitmap;
private const _intro:MovieClip;
private const _musicOff:Bitmap;
private const _musicOn:Bitmap;
private const _soundOff:Bitmap;
private var _input:Input;
private var _timeLeft:TextField;
private var _done:Boolean;// = false
private var _buttonVars:ButtonVars;
private var _gameDataParser:GameDataParser;
private var _time:int;// = 24
public function Intro(_arg1:GameDataParser, _arg2:Input, _arg3:ButtonVars){
_intro = new intro();
_timeLeft = (_intro.getChildByName("timeLeft") as TextField);
_soundOn = new Bitmap(new sound_on(0, 0));
_soundOff = new Bitmap(new sound_off(0, 0));
_musicOn = new Bitmap(new music_on(0, 0));
_musicOff = new Bitmap(new music_off(0, 0));
super();
_gameDataParser = _arg1;
_input = _arg2;
_buttonVars = _arg3;
_intro.x = (_intro.x + (_intro.width * 0.5));
_intro.y = (_intro.y + (_intro.height * 0.5));
addChild(_intro);
_soundOn.x = (_soundOff.x = 674);
_soundOn.y = (_soundOff.y = 574);
_musicOn.x = (_musicOff.x = 699);
_musicOn.y = (_musicOff.y = 574);
addChild(_soundOn);
addChild(_soundOff);
addChild(_musicOn);
addChild(_musicOff);
}
public function render(_arg1:int, _arg2:Number):void{
var _local7:TextField;
var _local8:TextFields;
var _local9:TextField;
var _local3:int = Math.max(0, (_time - (((_arg1 + _arg2) * JewelDefenceEngine.s_tickInterval) / 1000)));
_timeLeft.text = ((_gameDataParser.getText("intro_gameStartsIn") + " ") + _local3);
var _local4:MovieClip = (_intro.getChildByName("first") as MovieClip);
if (_local4 != null){
_local7 = (_local4.getChildByName("text1") as TextField);
_local7.text = _gameDataParser.getText("intro_text1");
};
var _local5:MovieClip = (_intro.getChildByName("second") as MovieClip);
if (_local5 != null){
_local8 = new TextFields(_local5);
_local8.setText("fireText", _gameDataParser.getText("intro_fire"));
_local8.setText("missileText", _gameDataParser.getText("intro_missile"));
_local8.setText("lightningText", _gameDataParser.getText("intro_lightning"));
_local8.setText("slowText", _gameDataParser.getText("intro_slow"));
};
var _local6:MovieClip = (_intro.getChildByName("third") as MovieClip);
if (_local6 != null){
_local9 = (_local6.getChildByName("textPuzzle") as TextField);
_local9.text = _gameDataParser.getText("intro_puzzle");
};
if (((!((_local6 == null))) && ((_intro.currentFrame > (_intro.totalFrames - 5))))){
_intro.stop();
_local6.stop();
};
if (_buttonVars.soundOn){
_soundOn.visible = true;
_soundOff.visible = false;
} else {
_soundOn.visible = false;
_soundOff.visible = true;
};
if (_buttonVars.musicOn){
_musicOn.visible = true;
_musicOff.visible = false;
} else {
_musicOn.visible = false;
_musicOff.visible = true;
};
}
public function isDone():Boolean{
return (_done);
}
public function tick(_arg1:int):void{
var _local2:int;
if (_input.mouseIsPressed()){
_done = true;
};
_local2 = ((_arg1 * JewelDefenceEngine.s_tickInterval) / 1000);
var _local3:int = (_time - _local2);
if (_local3 <= 0){
_done = true;
};
}
public function enter():void{
}
public function leave():void{
}
}
}//package com.midasplayer.jeweldefence
Section 136
//JewelDefenceEngine (com.midasplayer.jeweldefence.JewelDefenceEngine)
package com.midasplayer.jeweldefence {
import flash.events.*;
import com.midasplayer.game.engine.*;
import com.midasplayer.game.timer.*;
import com.midasplayer.game.comm.*;
import com.midasplayer.time.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.sound.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
public class JewelDefenceEngine extends Engine {
private const _bitmapRender:BitmapRender;
private const _frontBuffer:Sprite;
private const _input:Input;
private const _renderEngine:RenderEngine;
private const _buttonVars:ButtonVars;
private const _scoreVars:ScoreVars;
private const _musicManager:SoundManager;
private const _soundManager:SoundManager;
private var _gameOver:GameOver;
private var _game:Game;
private var _playFanfar:Boolean;// = true
private var _done:Boolean;// = false
private var _intro:Intro;
private var _isShortGame:Boolean;
private var _playDataRecorder:IPlayDataRecorder;
public static var s_tickInterval:int = 50;
public function JewelDefenceEngine(_arg1:ITimer, _arg2:IGameComm, _arg3:IPlayDataRecorder){
var _local4:GameDataParser;
_input = new Input();
_frontBuffer = new Sprite();
_bitmapRender = new BitmapRender(755, 600, _frontBuffer);
_renderEngine = new RenderEngine(_bitmapRender);
_buttonVars = new ButtonVars();
_scoreVars = new ScoreVars();
_soundManager = new SoundManager();
_musicManager = new SoundManager();
_local4 = new GameDataParser(_arg2.getGameData());
var _local5:GameFactory = new GameFactory(_local4, _renderEngine, _bitmapRender, _input, _arg3, _buttonVars, _scoreVars, _soundManager);
_game = (_local5.create() as Game);
var _local6:IGameTimerFactory = new GameTimerFactory(_arg1, s_tickInterval, 50);
var _local7:GameView = new GameView(_renderEngine, _bitmapRender, _game.getGameGuiVars());
_gameOver = new GameOver(_scoreVars, _local4, _input);
_intro = new Intro(_local4, _input, _buttonVars);
super(_intro, _intro, _game, _local7, _gameOver, _gameOver, _local6, _arg2);
_playDataRecorder = _arg3;
_frontBuffer.mouseChildren = false;
_frontBuffer.mouseEnabled = false;
mouseChildren = false;
mouseEnabled = false;
_soundManager.setVolume((_buttonVars.soundOn) ? SoundVars.SOUND_VOLUME : 0);
_musicManager.setVolume((_buttonVars.musicOn) ? SoundVars.MUSIC_VOLUME : 0);
_isShortGame = _local4.getElementTextAsBool("isShortGame");
}
private function _mouseReleased(_arg1:Event):void{
if (stage == null){
return;
};
_input.setMouseReleased(new Vec2(int(stage.mouseX), int(stage.mouseY)));
}
override protected function onStopGameOver():void{
stage.removeEventListener(MouseEvent.MOUSE_DOWN, _mousePressed);
removeChild(_frontBuffer);
if (!_isShortGame){
removeChild(_gameOver);
_musicManager.getFromClass(hence_defense_game_end_1s).stop();
};
}
override protected function onStartGameOver():void{
if (_isShortGame){
_gameOver.setIsDone();
return;
};
stage.frameRate = 25;
addChild(_gameOver);
_musicManager.getFromClass(hence_defense_game_end_1s).play(SoundVars.MUSIC_VOLUME);
}
public function isDone():Boolean{
return (_done);
}
override protected function onRunEngine():void{
_musicManager.update();
}
override protected function onStopGame():void{
stage.removeEventListener(MouseEvent.MOUSE_UP, _mouseReleased);
_musicManager.getFromClass(hence_defense_loop_1s).fadeToAndStop(0, 100);
}
override protected function onStartGame():void{
addChild(_frontBuffer);
_soundManager.getFromClass(game_start_1s).play();
_musicManager.getFromClass(hence_defense_loop_1s).loop(0);
_musicManager.getFromClass(hence_defense_loop_1s).fadeTo(SoundVars.MUSIC_VOLUME, 1000);
}
private function _mousePressed(_arg1:Event):void{
if (stage == null){
return;
};
var _local2:Vec2 = new Vec2(int(stage.mouseX), int(stage.mouseY));
if ((((((((_local2.x >= 680)) && ((_local2.x <= (680 + 19))))) && ((_local2.y >= 574)))) && ((_local2.y <= (574 + 23))))){
_buttonVars.soundOn = !(_buttonVars.soundOn);
_soundManager.setVolume((_buttonVars.soundOn) ? SoundVars.SOUND_VOLUME : 0);
return;
};
if ((((((((_local2.x >= 705)) && ((_local2.x <= (705 + 19))))) && ((_local2.y >= 574)))) && ((_local2.y <= (574 + 23))))){
_buttonVars.musicOn = !(_buttonVars.musicOn);
_musicManager.setVolume((_buttonVars.musicOn) ? SoundVars.MUSIC_VOLUME : 0);
return;
};
_input.setMousePressed(_local2);
}
override protected function onStopEngine():void{
_done = true;
}
override protected function onStartIntro():void{
stage.frameRate = 25;
addChild(_intro);
stage.addEventListener(MouseEvent.MOUSE_DOWN, _mousePressed);
stage.addEventListener(MouseEvent.MOUSE_UP, _mouseReleased);
_musicManager.getFromClass(hence_defense_intro_1s).play(SoundVars.MUSIC_VOLUME);
}
override protected function onStopIntro():void{
stage.frameRate = 80;
removeChild(_intro);
_input.reset();
_musicManager.getFromClass(hence_defense_intro_1s).fadeToAndStop(0, 100);
}
override protected function onPostTickGame(_arg1:int):void{
_input.reset();
if (((((_game.isLocked()) && ((_scoreVars.livesLeft > 0)))) && (_playFanfar))){
_soundManager.getFromClass(winning_fanfare_2s).play(SoundVars.SOUND_VOLUME);
_playFanfar = false;
};
}
override protected function onPreTickGame(_arg1:int):void{
_input.setMousePosition(new Vec2(int(stage.mouseX), int(stage.mouseY)));
}
}
}//package com.midasplayer.jeweldefence
Section 137
//Main (com.midasplayer.jeweldefence.Main)
package com.midasplayer.jeweldefence {
import flash.events.*;
import com.midasplayer.game.engine.*;
import com.midasplayer.game.comm.*;
import com.midasplayer.time.*;
import com.midasplayer.debug.*;
import flash.display.*;
import com.midasplayer.jeweldefence.verify.*;
public class Main extends Sprite {
private const _timer:ITimer;
protected var _engine:JewelDefenceEngine;
protected var _communicator:IGameComm;
protected var _playDataRecorder:IPlayDataRecorder;
public function Main(){
_timer = new SystemTimer();
super();
addEventListener(Event.ENTER_FRAME, _onInitialize);
}
protected function _onEnterFrame(_arg1:Event):void{
if (_engine.isDone()){
return;
};
_engine.update();
}
protected function _onInitialize(_arg1:Event):void{
removeEventListener(Event.ENTER_FRAME, _onInitialize);
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
if (GameComm.isAvailable()){
_communicator = new GameComm();
Debug.setAssertHandler(new RemoteAssertHandler(_communicator));
} else {
_communicator = new DebugGameComm(TestGameData.getGameData(((Math.random() * 1000) + 1)));
};
_playDataRecorder = new PlayDataRecorder(_communicator);
_engine = new JewelDefenceEngine(_timer, _communicator, _playDataRecorder);
addChild(_engine);
addEventListener(Event.ENTER_FRAME, _onEnterFrame);
}
}
}//package com.midasplayer.jeweldefence
Section 138
//Property (com.midasplayer.jeweldefence.Property)
package com.midasplayer.jeweldefence {
import com.midasplayer.math.*;
public class Property {
public var removable:Boolean;// = false
public var pos:Vec2;
public function Property(_arg1:Vec2){
this.pos = _arg1.clone();
}
}
}//package com.midasplayer.jeweldefence
Section 139
//RegisterSignView (com.midasplayer.jeweldefence.RegisterSignView)
package com.midasplayer.jeweldefence {
import com.midasplayer.game.comm.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import flash.geom.*;
public class RegisterSignView implements IBitmapRenderable {
private var _bitmapRenderObject:BitmapRenderObject;
private var _visible:Boolean;// = false
private var _pos:Vec2;
public function RegisterSignView(_arg1:BitmapRender, _arg2:Vec2, _arg3:GameDataParser){
var _local4:MovieClip;
_pos = new Vec2();
super();
_pos.copy(_arg2);
_local4 = new register();
_local4.header.text = _arg3.getText("register_sign_header");
_local4.text_txt.text = _arg3.getText("register_sign_text");
var _local5:BitmapData = new BitmapData(_local4.width, _local4.height, true, 0);
_local5.draw(_local4, new Matrix(1, 0, 0, 1, (_local4.width / 2), (_local4.height / 2)));
_bitmapRenderObject = new BitmapRenderObject(_arg1, _local5);
}
public function show():void{
_visible = true;
}
public function isRemovable():Boolean{
return (false);
}
public function getDepth():int{
return (RenderDepths.REGISTER_SIGN);
}
public function render(_arg1:int, _arg2:Number):void{
if (_visible){
_bitmapRenderObject.renderMiddle(_pos.x, _pos.y);
};
}
}
}//package com.midasplayer.jeweldefence
Section 140
//RenderDepths (com.midasplayer.jeweldefence.RenderDepths)
package com.midasplayer.jeweldefence {
public class RenderDepths {
public static const ENEMY_GOAL:int = 5000;
public static const DEBUG:int = 28000;
public static const GAME_GUI:int = 24000;
public static const PATH_START_ARROW:int = 1000;
public static const PUZZLE_FADING_BRICKS:int = 12000;
public static const TOWER_DEFENCE_SCORE_POPUP:int = 9000;
public static const PUZZLE_FRAME:int = 16000;
public static const WEAPON:int = 8000;
public static const RANGE:int = 2000;
public static const TUTORIAL:int = 26000;
public static const SHOP_TOWER:int = 20000;
public static const ENEMY_GOAL_RAINBOW:int = 5005;
public static const TOWER_UPGRADE:int = 4000;
public static const ENEMY:int = 6000;
public static const TOWER:int = 6000;
public static const PUZZLE_BACKROUND:int = 10000;
public static const BACKGROUND:int = 0;
public static const REGISTER_SIGN:int = 27000;
public static const ENEMY_GOAL_LIVES:int = 5010;
public static const PUZZLE_BRICKS:int = 14000;
public static const SHOP:int = 18000;
}
}//package com.midasplayer.jeweldefence
Section 141
//RenderEngine (com.midasplayer.jeweldefence.RenderEngine)
package com.midasplayer.jeweldefence {
import com.midasplayer.timing.*;
import com.midasplayer.debug.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import com.midasplayer.algorithm.*;
public class RenderEngine implements IRenderable {
private const _sorter:RadixSort;
private var _bitmapRender:BitmapRender;
private var _objects:Array;
public function RenderEngine(_arg1:BitmapRender){
_objects = new Array();
_sorter = new RadixSort(1000);
super();
_bitmapRender = _arg1;
}
public function add(_arg1:IBitmapRenderable):void{
Debug.assert(!((_arg1 == null)), "Trying to add a null object into render engine.");
_objects.push(_arg1);
Debug.assert((_objects.length < 1000), "To many objects in the RenderEngine");
}
private function _removeObjects():void{
var _local1:int;
while (_local1 < _objects.length) {
if (!_objects[_local1].isRemovable()){
} else {
if (_local1 == (_objects.length - 1)){
_objects.pop();
} else {
var _temp1 = _local1;
_local1 = (_local1 - 1);
var _local2 = _temp1;
_objects[_local2] = _objects.pop();
};
};
_local1++;
};
}
private function _sortValue(_arg1:IBitmapRenderable):int{
return (_arg1.getDepth());
}
private function _sortObjects():void{
_objects = _sorter.sort16bit(_objects, _sortValue);
}
public function render(_arg1:int, _arg2:Number):void{
_removeObjects();
_sortObjects();
_renderObjects(_arg1, _arg2);
}
private function _renderObjects(_arg1:int, _arg2:Number):void{
var _local3:IBitmapRenderable;
_bitmapRender.lock();
for each (_local3 in _objects) {
_local3.render(_arg1, _arg2);
};
_bitmapRender.unlock();
}
}
}//package com.midasplayer.jeweldefence
Section 142
//ScoreVars (com.midasplayer.jeweldefence.ScoreVars)
package com.midasplayer.jeweldefence {
public class ScoreVars {
public var forcedEnd:Boolean;// = false
public var lifeBonus:int;// = 0
public var builtMissile:Array;
public var timeBonus:int;// = 0
public var builtFire:Array;
public var towerDefenceScore:int;// = 0
public var builtSlow:Array;
public var puzzleGameScore:int;// = 0
public var builtLightning:Array;
public var livesLeft:int;// = 0
public var moneyBonus:int;// = 0
public function ScoreVars(){
builtFire = [0, 0, 0];
builtMissile = [0, 0, 0];
builtLightning = [0, 0, 0];
builtSlow = [0, 0, 0];
super();
}
public function hasBuiltTower():Boolean{
return ((((((((((((((((((((((((builtFire[0] > 0)) || ((builtFire[1] > 0)))) || ((builtFire[2] > 0)))) || ((builtMissile[0] > 0)))) || ((builtMissile[1] > 0)))) || ((builtMissile[2] > 0)))) || ((builtLightning[0] > 0)))) || ((builtLightning[1] > 0)))) || ((builtLightning[2] > 0)))) || ((builtSlow[0] > 0)))) || ((builtSlow[1] > 0)))) || ((builtSlow[2] > 0))));
}
public function getTotalScore():int{
return (((((towerDefenceScore + puzzleGameScore) + timeBonus) + moneyBonus) + lifeBonus));
}
}
}//package com.midasplayer.jeweldefence
Section 143
//Sounds (com.midasplayer.jeweldefence.Sounds)
package com.midasplayer.jeweldefence {
import com.midasplayer.sound.*;
public class Sounds {
private var _sound:ManagedSound;
private var _sounds:Array;
private var _probability:Number;
private var _soundManager:SoundManager;
public function Sounds(_arg1:Array, _arg2:SoundManager, _arg3:Number=1){
_sounds = _arg1;
_soundManager = _arg2;
_probability = _arg3;
}
public function play(_arg1:Number):void{
if (((!((_sound == null))) && (_sound.isPlaying()))){
return;
};
if (Math.random() > _probability){
return;
};
var _local2:int = (Math.random() * _sounds.length);
_sound = _soundManager.getFromClass(_sounds[_local2]);
_sound.play(_arg1);
}
}
}//package com.midasplayer.jeweldefence
Section 144
//SoundVars (com.midasplayer.jeweldefence.SoundVars)
package com.midasplayer.jeweldefence {
public class SoundVars {
public static const SOUND_VOLUME:Number = 1;
public static const MUSIC_VOLUME:Number = 0.7;
}
}//package com.midasplayer.jeweldefence
Section 145
//TestGameData (com.midasplayer.jeweldefence.TestGameData)
package com.midasplayer.jeweldefence {
public class TestGameData {
private static const _gameData:String = ((((((((((((((((((((((((((((((((((((((((((((((((((((((((("<gamedata randomseed=\"123456\" version=\"1\">" + " <text id=\"intro_gameStartsIn\">Game starts in </text>") + " <text id=\"intro_text1\">Place your defence unit to stop the enemies to reach the eggs.</text>") + " <text id=\"intro_fire\">The apple tree is a helpful friend. In Swedish we call it äppel.</text>") + " <text id=\"intro_missile\">Floats like a butterfly, sting like a killah bee.</text>") + " <text id=\"intro_lightning\">Hits more than one enemy at a time. (fish)</text>") + " <text id=\"intro_slow\">The filthy pig slows down enemies with clay or poo, you decide.</text>") + " <text id=\"intro_puzzle\">Ladda försvarsenheten genom att kombinera ägg av rätt färg tills mätaren minst fylld till första stjärnan. När du matchat till miniminivån kan du inte ladda vidare, utan då är det bara att hoppas på dattan.</text>") + " <text id=\"tutorial_selectTower\">To shop, click on a tower in the shop. Different towers have different abilities.</text>") + " <text id=\"tutorial_placeTower\">To place the tower, click once on the map.</text>") + " <text id=\"tutorial_switch\">Activate the tower by switching. Good luck!</text>") + " <text id=\"shop_fireTowerInfoHeader\">Fire Tower</text>") + " <text id=\"shop_fireTowerInfoText\">This is a Fire Tower</text>") + " <text id=\"shop_missileTowerInfoHeader\">Missile Tower</text>") + " <text id=\"shop_missileTowerInfoText\">This is a Missile Tower</text>") + " <text id=\"shop_lightningTowerInfoHeader\">Lightning Tower</text>") + " <text id=\"shop_lightningTowerInfoText\">This is a Lightning Tower</text>") + " <text id=\"shop_slowTowerInfoHeader\">Slow Tower</text>") + " <text id=\"shop_slowTowerInfoText\">This is a Slow Tower</text>") + " <text id=\"shop_damage\">Damage:</text>") + " <text id=\"shop_cost\">Cost:</text>") + " <text id=\"shop_speed\">Hastigheten:</text>") + " <text id=\"game_score\">Score</text>") + " <text id=\"game_time\">time left</text>") + " <text id=\"gameover_positive_header\">Congrats!</text>") + " <text id=\"gameover_negative_header\">Game Over!</text>") + " <text id=\"gameover_score\">Score:</text>") + " <text id=\"gameover_money\">Money:</text>") + " <text id=\"gameover_time\">Time bonus:</text>") + " <text id=\"gameover_lifes\">Life bonus:</text>") + " <text id=\"gameover_timeLeft\">Game ends in</text>") + " <text id=\"gameover_livesLeft\">Grrreat! You saved chickens!</text>") + " <text id=\"gameover_noLivesLeft\">Oh no! No chickens were saved!</text>") + " <text id=\"gameover_bestScore\">best score</text>") + " <text id=\"stats_title\">Build Towers</text>") + " <text id=\"stats_now\">now</text>") + " <text id=\"stats_total\">total</text>") + " <text id=\"register_sign_header\">Register!</text>") + " <text id=\"register_sign_text\">Register now!!</text>") + "\t<difficultyEasy>false</difficultyEasy>") + " <musicOn>false</musicOn>") + " <soundOn>false</soundOn>") + " <isShortGame>false</isShortGame>") + " <showTutorial>true</showTutorial>") + " <bestScore>18000</bestScore>") + " <builtFire1>1</builtFire1>") + " <builtFire2>10</builtFire2>") + " <builtFire3>100</builtFire3>") + " <builtMissile1>2</builtMissile1>") + " <builtMissile2>20</builtMissile2>") + " <builtMissile3>200</builtMissile3>") + " <builtLightning1>3</builtLightning1>") + " <builtLightning2>30</builtLightning2>") + " <builtLightning3>300</builtLightning3>") + " <builtSlow1>4</builtSlow1>") + " <builtSlow2>40</builtSlow2>") + " <builtSlow3>400</builtSlow3>") + "</gamedata>");
public static function getGameData(_arg1:int):String{
return (_gameData.replace("123456", _arg1.toString()));
}
}
}//package com.midasplayer.jeweldefence
Section 146
//TutorialView (com.midasplayer.jeweldefence.TutorialView)
package com.midasplayer.jeweldefence {
import com.midasplayer.game.comm.*;
import com.midasplayer.math.*;
import flash.display.*;
import com.midasplayer.jeweldefence.bitmaprender.*;
import flash.text.*;
import com.midasplayer.jeweldefence.towerdefence.shop.*;
public class TutorialView implements IBitmapRenderable {
private var _shopVars:ShopVars;
private var _scoreVars:ScoreVars;
private var _bubble2:BitmapRenderObject;
private var _bubble3:BitmapRenderObject;
private var _state:int;// = 0
private var _bubble1:BitmapRenderObject;
private var _showTutorial1:Boolean;// = true
private var _showTutorial2:Boolean;// = true
private static const _DONE:int = 3;
private static const _TUTORIAL1:int = 0;
private static const _TUTORIAL2:int = 1;
private static const _TUTORIAL3:int = 2;
public function TutorialView(_arg1:BitmapRender, _arg2:ShopVars, _arg3:ScoreVars, _arg4:GameDataParser){
_shopVars = _arg2;
_scoreVars = _arg3;
var _local5:Sprite = new Bubble();
(_local5.getChildByName("text") as TextField).text = _arg4.getText("tutorial_selectTower");
var _local6:BitmapData = new BitmapData(282, 200, true, 0);
_local6.draw(_local5);
_bubble1 = new BitmapRenderObject(_arg1, _local6);
var _local7:Sprite = new Bubble2();
(_local7.getChildByName("text") as TextField).text = _arg4.getText("tutorial_placeTower");
var _local8:BitmapData = new BitmapData(282, 200, true, 0);
_local8.draw(_local7);
_bubble2 = new BitmapRenderObject(_arg1, _local8);
var _local9:Sprite = new Bubble2();
(_local9.getChildByName("text") as TextField).text = _arg4.getText("tutorial_switch");
var _local10:BitmapData = new BitmapData(282, 200, true, 0);
_local10.draw(_local9);
_bubble3 = new BitmapRenderObject(_arg1, _local10);
}
public function getDepth():int{
return (RenderDepths.TUTORIAL);
}
public function render(_arg1:int, _arg2:Number):void{
var _local3:Vec2;
if (_state == _TUTORIAL1){
_bubble1.render(370, 86);
if (_shopVars.dragTower != null){
_state = _TUTORIAL2;
};
} else {
if (_state == _TUTORIAL2){
if (_shopVars.dragTower == null){
if (!_shopVars.dropped){
_state = _TUTORIAL1;
return;
};
_state = _TUTORIAL3;
return;
};
_local3 = _shopVars.dragTower.getProperty().pos.clone();
_local3.x = Math.max(100, Math.min(520, _local3.x));
_local3.y = Math.max(20, Math.min(395, _local3.y));
_bubble2.render((_local3.x - 120), (_local3.y + 30));
} else {
if (_state == _TUTORIAL3){
_bubble3.render(-20, 150);
if (_scoreVars.hasBuiltTower()){
_state = _DONE;
};
};
};
};
}
public function isRemovable():Boolean{
return ((_state == _DONE));
}
}
}//package com.midasplayer.jeweldefence
Section 147
//Line (com.midasplayer.math.Line)
package com.midasplayer.math {
public class Line {
private var _p1:Vec2;
private var _p2:Vec2;
private var _v:Vec2;
private static const _eps:Number = 1E-13;
public function Line(_arg1:Vec2, _arg2:Vec2){
_p1 = _arg1;
_p2 = _arg2;
_v = _arg2.sub(_arg1);
}
public function get p1():Vec2{
return (_p1);
}
public function get p2():Vec2{
return (_p2);
}
public function circleIntersects(_arg1:Vec2, _arg2:Number):Boolean{
var _local3:Vec2;
_local3 = closestPoint(_arg1);
var _local4:Number = _arg1.sub(_local3).lengthSqr;
return ((_local4 <= (_arg2 * _arg2)));
}
public function lineIntersects(_arg1:Line):Boolean{
return (((!((_ccw(_p1, _arg1._p1, _arg1._p2) == _ccw(_p2, _arg1._p1, _arg1._p2)))) && (!((_ccw(_p1, _p2, _arg1._p1) == _ccw(_p1, _p2, _arg1._p2))))));
}
public function get dir():Vec2{
return (_v);
}
public function lineIntersectionPoint(_arg1:Line):Vec2{
var _local2:Vec2;
var _local4:Vec2;
_local2 = _arg1._v.normalLeft();
var _local3:Number = _v.dot(_local2);
if (Math.abs(_local3) < _eps){
return (null);
};
_local4 = _arg1.p1.sub(_p1);
var _local5:Number = (_local4.dot(_local2) / _local3);
if ((((_local5 < 0)) || ((_local5 > 1)))){
return (null);
};
var _local6:Number = (_local4.dot(_v.normalLeft()) / _local3);
if ((((_local6 < 0)) || ((_local6 > 1)))){
return (null);
};
return (_p1.add(_v.scale(_local5)));
}
public function closestPoint(_arg1:Vec2):Vec2{
var _local2:Vec2;
if (_p1.equals(_p2)){
return (_p1.clone());
};
_local2 = _arg1.sub(_p1);
var _local3:Number = (_local2.dot(_v) / _v.lengthSqr);
if (_local3 >= 1){
return (_p2.clone());
};
if (_local3 <= 0){
return (_p1.clone());
};
return (new Vec2(((_p2.x * _local3) + (_p1.x * (1 - _local3))), ((_p2.y * _local3) + (_p1.y * (1 - _local3)))));
}
private function _ccw(_arg1:Vec2, _arg2:Vec2, _arg3:Vec2):Boolean{
return ((((_arg3.y - _arg1.y) * (_arg2.x - _arg1.x)) > ((_arg2.y - _arg1.y) * (_arg3.x - _arg1.x))));
}
}
}//package com.midasplayer.math
Section 148
//MtRandom (com.midasplayer.math.MtRandom)
package com.midasplayer.math {
import flash.utils.*;
public class MtRandom {
private var mti:uint;
private var mt:Array;
public static var MATRIX_A:uint = 2567483615;
public static var UPPER_MASK:uint = 2147483648;
public static var LOWER_MASK:uint = 2147483647;
public static var M:int = 397;
public static var N:int = 624;
private static var mag01:Array = [uint(0), uint(MATRIX_A)];
public function MtRandom(_arg1:uint=0){
mti = (N + 1);
super();
if (_arg1 == 0){
_arg1 = getTimer();
};
mt = new Array(N);
init_genrand(_arg1);
}
private function genrand_int32():uint{
var _local1:Number;
var _local2:uint;
if (mti >= N){
if (mti == (N + 1)){
init_genrand(5489);
};
_local2 = 0;
while (_local2 < (N - M)) {
_local1 = ((mt[_local2] & UPPER_MASK) | (mt[(_local2 + 1)] & LOWER_MASK));
mt[_local2] = ((mt[(_local2 + M)] ^ (_local1 >>> 1)) ^ mag01[uint((_local1 & 1))]);
_local2++;
};
while (_local2 < (N - 1)) {
_local1 = ((mt[_local2] & UPPER_MASK) | (mt[(_local2 + 1)] & LOWER_MASK));
mt[_local2] = ((mt[(_local2 + (M - N))] ^ (_local1 >>> 1)) ^ mag01[uint((_local1 & 1))]);
_local2++;
};
_local1 = ((mt[(N - 1)] & UPPER_MASK) | (mt[0] & LOWER_MASK));
mt[(N - 1)] = ((mt[(M - 1)] ^ (_local1 >>> 1)) ^ mag01[uint((_local1 & 1))]);
mti = 0;
};
_local1 = mt[mti++];
_local1 = (_local1 ^ (_local1 >>> 11));
_local1 = (_local1 ^ ((_local1 << 7) & 2636928640));
_local1 = (_local1 ^ ((_local1 << 15) & 4022730752));
_local1 = (_local1 ^ (_local1 >>> 18));
return (uint(_local1));
}
private function next(_arg1:uint):uint{
return ((genrand_int32() & ((uint(1) << _arg1) - uint(1))));
}
private function init_genrand(_arg1:uint):void{
var _local2:uint;
var _local3:uint;
mt[0] = uint(_arg1);
mti = 1;
while (mti < N) {
_local2 = (mt[(mti - 1)] ^ (mt[(mti - 1)] >>> 30));
_local3 = uint((_local2 * 1289));
_local3 = uint((_local3 * 1406077));
_local3 = uint((_local3 + mti));
mt[mti] = _local3;
mti++;
};
}
public function nextFloat():Number{
return ((next(24) / 16777216));
}
public function setSeed(_arg1:uint):void{
init_genrand(_arg1);
}
public function nextDouble():Number{
return ((next(24) / 16777216));
}
public function nextInt(_arg1:uint):uint{
return (((genrand_int32() & 2147483647) % _arg1));
}
}
}//package com.midasplayer.math
Section 149
//Vec2 (com.midasplayer.math.Vec2)
package com.midasplayer.math {
public class Vec2 {
public var y:Number;// = 0
public var x:Number;// = 0
private static const _RadsToDeg:Number = 57.2957795130823;
public function Vec2(_arg1:Number=0, _arg2:Number=0){
this.x = _arg1;
this.y = _arg2;
}
public function sub(_arg1:Vec2):Vec2{
return (new Vec2((x - _arg1.x), (y - _arg1.y)));
}
public function rotateComplexSelf(_arg1:Vec2):void{
var _local2:Number = ((x * _arg1.x) - (y * _arg1.y));
y = ((x * _arg1.y) + (y * _arg1.x));
x = _local2;
}
public function mul(_arg1:Vec2):Vec2{
return (new Vec2((x * _arg1.x), (y * _arg1.y)));
}
public function rotateSelf(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
_local2 = XPMath.cos(_arg1);
_local3 = XPMath.sin(_arg1);
var _local4:Number = ((_local2 * x) - (_local3 * y));
y = ((_local3 * x) + (_local2 * y));
x = _local4;
}
public function dot(_arg1:Vec2):Number{
return (((x * _arg1.x) + (y * _arg1.y)));
}
public function scale(_arg1:Number):Vec2{
return (new Vec2((x * _arg1), (y * _arg1)));
}
public function reflect(_arg1:Vec2):Vec2{
var _local2:Vec2;
_local2 = _arg1.normalize();
var _local3:Number = dot(_local2);
return (_local2.scale((2 * _local3)).sub(this));
}
public function addSelf(_arg1:Vec2):void{
x = (x + _arg1.x);
y = (y + _arg1.y);
}
public function get lengthSqr():Number{
return (((x * x) + (y * y)));
}
public function div(_arg1:Vec2):Vec2{
return (new Vec2((x / _arg1.x), (y / _arg1.y)));
}
public function normalize():Vec2{
var _local1:Number = (1 / Math.sqrt(((x * x) + (y * y))));
return (new Vec2((x * _local1), (y * _local1)));
}
public function normalLeft():Vec2{
return (new Vec2(y, -(x)));
}
public function normalRight():Vec2{
return (new Vec2(-(y), x));
}
public function cwRadiansBetween(_arg1:Vec2):Number{
var _local2:Number = XPMath.atan2(crossDet(_arg1), dot(_arg1));
return (((_local2 >= 0)) ? _local2 : ((2 * Math.PI) + _local2));
}
public function rotate(_arg1:Number):Vec2{
var _local2:Number = XPMath.cos(_arg1);
var _local3:Number = XPMath.sin(_arg1);
return (new Vec2(((_local2 * x) - (_local3 * y)), ((_local3 * x) + (_local2 * y))));
}
public function rotateComplex(_arg1:Vec2):Vec2{
return (new Vec2(((x * _arg1.x) - (y * _arg1.y)), ((x * _arg1.y) + (y * _arg1.x))));
}
public function clone():Vec2{
return (new Vec2(x, y));
}
public function distanceSqr(_arg1:Vec2):Number{
var _local2:Number = (x - _arg1.x);
var _local3:Number = (y - _arg1.y);
return (((_local2 * _local2) + (_local3 * _local3)));
}
public function add(_arg1:Vec2):Vec2{
return (new Vec2((x + _arg1.x), (y + _arg1.y)));
}
public function set(_arg1:Number, _arg2:Number):void{
this.x = _arg1;
this.y = _arg2;
}
public function get length():Number{
return (Math.sqrt(((x * x) + (y * y))));
}
public function subSelf(_arg1:Vec2):void{
x = (x - _arg1.x);
y = (y - _arg1.y);
}
public function cwDegreesBetween(_arg1:Vec2):Number{
return ((cwRadiansBetween(_arg1) * _RadsToDeg));
}
public function copy(_arg1:Vec2):void{
x = _arg1.x;
y = _arg1.y;
}
public function scaleSelf(_arg1:Number):void{
x = (x * _arg1);
y = (y * _arg1);
}
public function mulSelf(_arg1:Vec2):void{
x = (x * _arg1.x);
y = (y * _arg1.y);
}
public function normalizeSelf():void{
var _local1:Number = (1 / Math.sqrt(((x * x) + (y * y))));
x = (x * _local1);
y = (y * _local1);
}
public function crossDet(_arg1:Vec2):Number{
return (((x * _arg1.y) - (_arg1.x * y)));
}
public function toString():String{
return ((((("(" + x) + ", ") + y) + ")"));
}
public function distance(_arg1:Vec2):Number{
var _local2:Number = (x - _arg1.x);
var _local3:Number = (y - _arg1.y);
return (Math.sqrt(((_local2 * _local2) + (_local3 * _local3))));
}
public function divSelf(_arg1:Vec2):void{
x = (x / _arg1.x);
y = (y / _arg1.y);
}
public function lerp(_arg1:Vec2, _arg2:Number):Vec2{
return (new Vec2((x + ((_arg1.x - x) * _arg2)), (y + ((_arg1.y - y) * _arg2))));
}
public function equals(_arg1:Vec2):Boolean{
return ((((x == _arg1.x)) && ((y == _arg1.y))));
}
}
}//package com.midasplayer.math
Section 150
//XPMath (com.midasplayer.math.XPMath)
package com.midasplayer.math {
public class XPMath {
public static function sin(_arg1:Number):Number{
_arg1 = (_arg1 - 1.5707963267949);
var _local2:int;
var _local3:Number = ((_arg1 > 0)) ? _arg1 : -(_arg1);
if (_local3 >= (12.5663706143592 + 1.5707963267949)){
_local2 = int((_local3 * 0.636619772367581));
if ((_local2 & 1) != 0){
_local2++;
};
_local3 = (_local3 - (_local2 * 1.5707963267949));
} else {
if (_local3 < 1.5707963267949){
} else {
if (_local3 < (1.5707963267949 + 3.14159265358979)){
_local3 = (_local3 - 3.14159265358979);
_local2 = 2;
} else {
if (_local3 < (6.28318530717959 + 1.5707963267949)){
_local3 = (_local3 - 6.28318530717959);
} else {
if (_local3 < (9.42477796076938 + 1.5707963267949)){
_local3 = (_local3 - 9.42477796076938);
_local2 = 2;
} else {
_local3 = (_local3 - 12.5663706143592);
};
};
};
};
};
var _local4:Number = (_local3 * _local3);
var _local5:Number = (0.999999953027512 + (_local4 * (-0.499999047777921 + (_local4 * (0.041663573160188 + (_local4 * (-0.0013853629536173 + (_local4 * 2.31524166599385E-5))))))));
return ((((_local2 & 2))!=0) ? -(_local5) : _local5);
}
public static function atan2(_arg1:Number, _arg2:Number):Number{
var _local5:Number;
var _local3:Number = 3.14159265358979;
var _local4:Number = 1.5707963267949;
if (_arg2 == 0){
if (_arg1 > 0){
return (_local4);
};
if (_arg1 == 0){
return (0);
};
return (-(_local4));
};
var _local6:Number = (_arg1 / _arg2);
if (Math.abs(_local6) < 1){
_local5 = (_local6 / (1 + ((0.28 * _local6) * _local6)));
if (_arg2 < 0){
if (_arg1 < 0){
return ((_local5 - _local3));
};
return ((_local5 + _local3));
};
} else {
_local5 = (_local4 - (_local6 / ((_local6 * _local6) + 0.28)));
if (_arg1 < 0){
return ((_local5 - _local3));
};
};
return (_local5);
}
public static function cos(_arg1:Number):Number{
var _local2:int;
var _local3:Number = ((_arg1 > 0)) ? _arg1 : -(_arg1);
var _local4:Number = 1.5707963267949;
if (_local3 >= (12.5663706143592 + _local4)){
_local2 = int((_local3 * 0.636619772367581));
if ((_local2 & 1) != 0){
_local2++;
};
_local3 = (_local3 - (_local2 * _local4));
} else {
if (_local3 < _local4){
} else {
if (_local3 < (_local4 + 3.14159265358979)){
_local3 = (_local3 - 3.14159265358979);
_local2 = 2;
} else {
if (_local3 < (6.28318530717959 + _local4)){
_local3 = (_local3 - 6.28318530717959);
} else {
if (_local3 < (9.42477796076938 + _local4)){
_local3 = (_local3 - 9.42477796076938);
_local2 = 2;
} else {
_local3 = (_local3 - 12.5663706143592);
};
};
};
};
};
var _local5:Number = (_local3 * _local3);
var _local6:Number = (0.999999953027512 + (_local5 * (-0.499999047777921 + (_local5 * (0.041663573160188 + (_local5 * (-0.0013853629536173 + (_local5 * 2.31524166599385E-5))))))));
return ((((_local2 & 2))!=0) ? -(_local6) : _local6);
}
}
}//package com.midasplayer.math
Section 151
//ManagedSound (com.midasplayer.sound.ManagedSound)
package com.midasplayer.sound {
import flash.media.*;
public class ManagedSound {
public var activeSounds:Array;
private var manager:SoundManager;
private var ClassReference:Class;
public function ManagedSound(_arg1:SoundManager, _arg2:Class){
activeSounds = new Array();
super();
this.manager = _arg1;
this.ClassReference = _arg2;
}
public function stop():void{
var _local1:int;
while (_local1 < activeSounds.length) {
activeSounds[_local1].stop();
_local1++;
};
}
public function play(_arg1:Number=1, _arg2:Number=0):ManagedSoundChannel{
var _local3:SoundChannel = new ClassReference().play(0, 0, new SoundTransform(_arg1, _arg2));
return (new ManagedSoundChannel(manager, this, _local3));
}
public function loop(_arg1:Number=1, _arg2:Number=0, _arg3:Number=999999999):ManagedSoundChannel{
var _local4:SoundChannel = new ClassReference().play(0, _arg3, new SoundTransform(_arg1, _arg2));
return (new ManagedSoundChannel(manager, this, _local4));
}
public function fadeToAndStop(_arg1:Number, _arg2:Number):void{
var _local3:int;
while (_local3 < activeSounds.length) {
activeSounds[_local3].fadeToAndStop(_arg1, _arg2);
_local3++;
};
}
public function isPlaying():Boolean{
return ((activeSounds.length > 0));
}
public function update():void{
var _local1:int;
while (_local1 < activeSounds.length) {
activeSounds[_local1].update();
_local1++;
};
}
public function fadeTo(_arg1:Number, _arg2:Number):void{
var _local3:int;
while (_local3 < activeSounds.length) {
activeSounds[_local3].fadeTo(_arg1, _arg2);
_local3++;
};
}
public function panTo(_arg1:Number, _arg2:Number):void{
var _local3:int;
while (_local3 < activeSounds.length) {
activeSounds[_local3].panTo(_arg1, _arg2);
_local3++;
};
}
public function setPan(_arg1:Number):void{
var _local2:int;
while (_local2 < activeSounds.length) {
activeSounds[_local2].setPan(_arg1);
_local2++;
};
}
public function setVolume(_arg1:Number):void{
var _local2:int;
while (_local2 < activeSounds.length) {
activeSounds[_local2].setVolume(_arg1);
_local2++;
};
}
}
}//package com.midasplayer.sound
Section 152
//ManagedSoundChannel (com.midasplayer.sound.ManagedSoundChannel)
package com.midasplayer.sound {
import flash.events.*;
import flash.media.*;
import flash.utils.*;
public class ManagedSoundChannel {
private var fadeStartVolume:Number;// = -1
private var channel:SoundChannel;
private var fadeEndVolume:Number;// = -1
private var targetVolume:Number;
private var targetPan:Number;
private var sound:ManagedSound;
private var stopAfterFade:Boolean;// = false
private var panEndTime:Number;// = -1
private var fadeEndTime:Number;// = -1
private var manager:SoundManager;
private var playing:Boolean;// = true
private var panStartTime:Number;// = -1
private var fadeStartTime:Number;// = -1
private var panEndVolume:Number;// = -1
private var panStartVolume:Number;// = -1
public function ManagedSoundChannel(_arg1:SoundManager, _arg2:ManagedSound, _arg3:SoundChannel){
this.manager = _arg1;
this.sound = _arg2;
this.channel = _arg3;
_arg2.activeSounds.push(this);
if (_arg3 == null){
soundComplete(null);
return;
};
_arg3.addEventListener(Event.SOUND_COMPLETE, soundComplete);
targetVolume = _arg3.soundTransform.volume;
targetPan = _arg3.soundTransform.pan;
update();
}
public function stop():void{
if (!playing){
return;
};
if (channel == null){
return;
};
channel.stop();
soundComplete(null);
}
public function update():void{
var _local1:Number;
if (!playing){
return;
};
if (fadeStartTime >= 0){
_local1 = ((getTimer() - fadeStartTime) / (fadeEndTime - fadeStartTime));
if (_local1 < 0){
_local1 = 0;
};
if (_local1 > 1){
_local1 = 1;
};
targetVolume = (fadeStartVolume + ((fadeEndVolume - fadeStartVolume) * _local1));
targetVolume = (targetVolume * targetVolume);
if (_local1 == 1){
fadeStartTime = -1;
};
if ((((_local1 == 1)) && (stopAfterFade))){
stop();
};
};
if (panStartTime >= 0){
_local1 = ((getTimer() - panStartTime) / (panEndTime - panStartTime));
if (_local1 < 0){
_local1 = 0;
};
if (_local1 > 1){
_local1 = 1;
};
targetPan = (panStartVolume + ((panEndVolume - panStartVolume) * _local1));
if (_local1 == 1){
panStartTime = -1;
};
};
var _local2:Number = (targetVolume * manager.volume);
var _local3:Number = targetPan;
if (channel == null){
return;
};
if (((!((_local2 == channel.soundTransform.volume))) || (!((_local3 == channel.soundTransform.pan))))){
channel.soundTransform = new SoundTransform(_local2, _local3);
};
}
public function panTo(_arg1:Number, _arg2:Number):void{
if (!playing){
return;
};
panStartVolume = targetPan;
panEndVolume = _arg1;
panStartTime = getTimer();
panEndTime = (getTimer() + _arg2);
}
public function fadeTo(_arg1:Number, _arg2:Number):void{
if (!playing){
return;
};
fadeStartVolume = Math.sqrt(targetVolume);
fadeEndVolume = Math.sqrt(_arg1);
fadeStartTime = getTimer();
fadeEndTime = (getTimer() + _arg2);
stopAfterFade = false;
}
public function setPan(_arg1:Number):void{
if (!playing){
return;
};
if (channel == null){
return;
};
channel.soundTransform.pan = _arg1;
panStartTime = -1;
update();
}
public function fadeToAndStop(_arg1:Number, _arg2:Number):void{
if (!playing){
return;
};
fadeTo(_arg1, _arg2);
stopAfterFade = true;
}
public function setVolume(_arg1:Number):void{
if (!playing){
return;
};
stopAfterFade = false;
this.targetVolume = _arg1;
fadeStartTime = -1;
update();
}
public function soundComplete(_arg1:Event):void{
if (!playing){
return;
};
sound.activeSounds.splice(sound.activeSounds.indexOf(this), 1);
playing = false;
}
public function isPlaying():Boolean{
return (playing);
}
}
}//package com.midasplayer.sound
Section 153
//SoundManager (com.midasplayer.sound.SoundManager)
package com.midasplayer.sound {
import flash.utils.*;
public class SoundManager {
private var fadeStartVolume:Number;// = -1
private var lastTime:Number;// = -1
private var managedSounds:Array;
private var fadeEndTime:Number;// = -1
private var fadeStartTime:Number;// = -1
private var fadeEndVolume:Number;// = -1
public var volume:Number;// = 1
private var managedSoundMap:Object;
public function SoundManager(){
managedSoundMap = new Object();
managedSounds = new Array();
super();
}
public function update():void{
var _local3:Number;
var _local1:Number = getTimer();
if (lastTime < 0){
lastTime = _local1;
};
if (fadeStartTime >= 0){
_local3 = ((getTimer() - fadeStartTime) / (fadeEndTime - fadeStartTime));
if (_local3 < 0){
_local3 = 0;
};
if (_local3 > 1){
_local3 = 1;
};
volume = (fadeStartVolume + ((fadeEndVolume - fadeStartVolume) * _local3));
volume = (volume * volume);
if (_local3 == 1){
fadeStartTime = -1;
};
};
var _local2:int;
while (_local2 < managedSounds.length) {
managedSounds[_local2].update();
_local2++;
};
}
public function stopAll():void{
var _local1:int;
while (_local1 < managedSounds.length) {
managedSounds[_local1].stop();
_local1++;
};
}
public function getFromClass(_arg1:Class):ManagedSound{
var _local2:String = getQualifiedClassName(_arg1);
if (managedSoundMap[_local2] == null){
managedSoundMap[_local2] = new ManagedSound(this, _arg1);
managedSounds.push(managedSoundMap[_local2]);
};
return (managedSoundMap[_local2]);
}
public function get(_arg1:String):ManagedSound{
var _local2:Class;
if (managedSoundMap[_arg1] == null){
_local2 = (getDefinitionByName(_arg1) as Class);
if (_local2 == null){
_local2 = (getDefinitionByName(("sound." + _arg1)) as Class);
};
if (_local2 == null){
_local2 = (getDefinitionByName(("snd." + _arg1)) as Class);
};
if (_local2 == null){
throw (new Error(("Failed to find sound " + _arg1)));
};
managedSoundMap[_arg1] = new ManagedSound(this, _local2);
managedSounds.push(managedSoundMap[_arg1]);
};
return (managedSoundMap[_arg1]);
}
public function fadeTo(_arg1:Number, _arg2:Number):void{
fadeStartVolume = Math.sqrt(volume);
fadeEndVolume = Math.sqrt(_arg1);
fadeStartTime = getTimer();
fadeEndTime = (getTimer() + _arg2);
}
public function setVolume(_arg1:Number):void{
this.volume = _arg1;
fadeStartTime = -1;
}
}
}//package com.midasplayer.sound
Section 154
//TextFields (com.midasplayer.text.TextFields)
package com.midasplayer.text {
import com.midasplayer.debug.*;
import flash.display.*;
import flash.text.*;
public class TextFields {
private var _fields:Sprite;
public function TextFields(_arg1:Sprite){
_fields = _arg1;
}
public function setColor(_arg1:int):void{
var _local3:TextField;
var _local4:TextFormat;
var _local2:int;
while (_local2 < _fields.numChildren) {
_local3 = (_fields.getChildAt(_local2) as TextField);
if (_local3 == null){
} else {
_local4 = _local3.getTextFormat();
_local4.color = _arg1;
_local3.setTextFormat(_local4);
};
_local2++;
};
}
public function get(_arg1:String):TextField{
var _local2:TextField = (_fields.getChildByName(_arg1) as TextField);
Debug.assert(!((_local2 == null)), (("Could not extract the text field '" + _arg1) + "'."));
return (_local2);
}
public function exists(_arg1:String):Boolean{
return (!((_fields.getChildByName(_arg1) == null)));
}
public function setText(_arg1:String, _arg2:String):void{
get(_arg1).text = _arg2;
}
}
}//package com.midasplayer.text
Section 155
//ITimer (com.midasplayer.time.ITimer)
package com.midasplayer.time {
public interface ITimer {
function getTime():int;
}
}//package com.midasplayer.time
Section 156
//SystemTimer (com.midasplayer.time.SystemTimer)
package com.midasplayer.time {
import flash.utils.*;
public class SystemTimer implements ITimer {
private const _startTime:int;
public function SystemTimer(){
_startTime = getTimer();
super();
}
public function getTime():int{
return ((getTimer() - _startTime));
}
}
}//package com.midasplayer.time
Section 157
//IRenderable (com.midasplayer.timing.IRenderable)
package com.midasplayer.timing {
public interface IRenderable {
function render(_arg1:int, _arg2:Number):void;
}
}//package com.midasplayer.timing
Section 158
//ITickable (com.midasplayer.timing.ITickable)
package com.midasplayer.timing {
public interface ITickable {
function tick(_arg1:int):void;
}
}//package com.midasplayer.timing
Section 159
//Automata (com.midasplayer.util.state.Automata)
package com.midasplayer.util.state {
import com.midasplayer.debug.*;
import flash.utils.*;
public class Automata implements IAutomata {
private const _transitions:Dictionary;
private var _preHook:IAutomataHook;
private var _initialState:IState;// = null
private var _eventSink:IEventSink;
private var _first:Boolean;// = true
private var _state:IState;// = null
public function Automata(_arg1:IEventSink, _arg2:IState, _arg3:IAutomataHook){
_transitions = new Dictionary();
super();
Debug.assert(!((_arg1 == null)), "The automata event sink is null.");
Debug.assert(!((_arg2 == null)), "The automata start state is null.");
_eventSink = _arg1;
_initialState = _arg2;
_preHook = _arg3;
}
private function _stop():void{
if (_preHook != null){
_preHook.onLeave(_state);
};
_state.leave();
}
private function _start():void{
if (_preHook != null){
_preHook.onEnter(_state);
};
_state.enter();
}
public function update():void{
if (_first){
_state = _initialState;
_start();
_first = false;
};
Debug.assert(!((_state == null)), "The automata state should never be null in update, it has probably terminated.");
var _local1:IEvent = _eventSink.get();
if (_local1 == null){
return;
};
_eventSink.set(null);
var _local2:Dictionary = _transitions[_state];
Debug.assert(!((_local2 == null)), "Trying to get an unadded automata transition.");
_stop();
_state = _local2[_local1];
if (_state != null){
_start();
};
}
public function getState():IState{
return (_state);
}
public function addEdge(_arg1:IState, _arg2:IEvent, _arg3:IState):void{
var _local5:Dictionary;
Debug.assert(!((_arg2 == null)), "Trying to add a null event.");
Debug.assert(!((_arg1 == null)), "Trying to add a null source.");
Debug.assert(!((_arg1 == _arg3)), "In this automata, there is no point of self references, (source==target).");
var _local4:Object = _transitions[_arg1];
if (_local4 == null){
_local5 = new Dictionary();
_local5[_arg2] = _arg3;
_transitions[_arg1] = _local5;
return;
};
_arg3 = _local4[_arg2];
Debug.assert((_arg3 == null), "An automata transition has already been added.");
_local4[_arg2] = _arg3;
}
}
}//package com.midasplayer.util.state
Section 160
//Event (com.midasplayer.util.state.Event)
package com.midasplayer.util.state {
public class Event implements IEvent {
private var _id:int;
public function Event(_arg1:int){
_id = _arg1;
}
public function get():int{
return (_id);
}
}
}//package com.midasplayer.util.state
Section 161
//EventSink (com.midasplayer.util.state.EventSink)
package com.midasplayer.util.state {
public class EventSink implements IEventSink {
private var _event:IEvent;
public function get():IEvent{
return (_event);
}
public function set(_arg1:IEvent):void{
_event = _arg1;
}
}
}//package com.midasplayer.util.state
Section 162
//IAutomata (com.midasplayer.util.state.IAutomata)
package com.midasplayer.util.state {
public interface IAutomata {
function update():void;
function getState():IState;
function addEdge(_arg1:IState, _arg2:IEvent, _arg3:IState):void;
}
}//package com.midasplayer.util.state
Section 163
//IAutomataHook (com.midasplayer.util.state.IAutomataHook)
package com.midasplayer.util.state {
public interface IAutomataHook {
function onLeave(_arg1:IState):void;
function onEnter(_arg1:IState):void;
}
}//package com.midasplayer.util.state
Section 164
//IEvent (com.midasplayer.util.state.IEvent)
package com.midasplayer.util.state {
public interface IEvent {
function get():int;
}
}//package com.midasplayer.util.state
Section 165
//IEventSink (com.midasplayer.util.state.IEventSink)
package com.midasplayer.util.state {
public interface IEventSink {
function set(_arg1:IEvent):void;
function get():IEvent;
}
}//package com.midasplayer.util.state
Section 166
//IState (com.midasplayer.util.state.IState)
package com.midasplayer.util.state {
public interface IState {
function enter():void;
function leave():void;
}
}//package com.midasplayer.util.state
Section 167
//background (background)
package {
import flash.display.*;
public dynamic class background extends BitmapData {
public function background(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 168
//background_frame (background_frame)
package {
import flash.display.*;
public dynamic class background_frame extends BitmapData {
public function background_frame(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 169
//background_left (background_left)
package {
import flash.display.*;
public dynamic class background_left extends BitmapData {
public function background_left(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 170
//background_middle (background_middle)
package {
import flash.display.*;
public dynamic class background_middle extends BitmapData {
public function background_middle(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 171
//background_right (background_right)
package {
import flash.display.*;
public dynamic class background_right extends BitmapData {
public function background_right(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 172
//badger_1s (badger_1s)
package {
import flash.media.*;
public dynamic class badger_1s extends Sound {
}
}//package
Section 173
//badger_2s (badger_2s)
package {
import flash.media.*;
public dynamic class badger_2s extends Sound {
}
}//package
Section 174
//badger_3s (badger_3s)
package {
import flash.media.*;
public dynamic class badger_3s extends Sound {
}
}//package
Section 175
//badger_die_1 (badger_die_1)
package {
import flash.display.*;
public dynamic class badger_die_1 extends BitmapData {
public function badger_die_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 176
//badger_die_2 (badger_die_2)
package {
import flash.display.*;
public dynamic class badger_die_2 extends BitmapData {
public function badger_die_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 177
//badger_die_3 (badger_die_3)
package {
import flash.display.*;
public dynamic class badger_die_3 extends BitmapData {
public function badger_die_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 178
//badger_die_4 (badger_die_4)
package {
import flash.display.*;
public dynamic class badger_die_4 extends BitmapData {
public function badger_die_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 179
//badger_die_5 (badger_die_5)
package {
import flash.display.*;
public dynamic class badger_die_5 extends BitmapData {
public function badger_die_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 180
//badger_die_6 (badger_die_6)
package {
import flash.display.*;
public dynamic class badger_die_6 extends BitmapData {
public function badger_die_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 181
//badger01 (badger01)
package {
import flash.display.*;
public dynamic class badger01 extends BitmapData {
public function badger01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 182
//badger02 (badger02)
package {
import flash.display.*;
public dynamic class badger02 extends BitmapData {
public function badger02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 183
//badger03 (badger03)
package {
import flash.display.*;
public dynamic class badger03 extends BitmapData {
public function badger03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 184
//badger04 (badger04)
package {
import flash.display.*;
public dynamic class badger04 extends BitmapData {
public function badger04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 185
//badger05 (badger05)
package {
import flash.display.*;
public dynamic class badger05 extends BitmapData {
public function badger05(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 186
//bee (bee)
package {
import flash.display.*;
public dynamic class bee extends BitmapData {
public function bee(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 187
//birke (birke)
package {
import flash.display.*;
public dynamic class birke extends BitmapData {
public function birke(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 188
//Bubble (Bubble)
package {
import flash.display.*;
import flash.text.*;
public dynamic class Bubble extends MovieClip {
public var text:TextField;
}
}//package
Section 189
//Bubble2 (Bubble2)
package {
import flash.display.*;
import flash.text.*;
public dynamic class Bubble2 extends MovieClip {
public var text:TextField;
}
}//package
Section 190
//bulldog_1s (bulldog_1s)
package {
import flash.media.*;
public dynamic class bulldog_1s extends Sound {
}
}//package
Section 191
//bulldog_2s (bulldog_2s)
package {
import flash.media.*;
public dynamic class bulldog_2s extends Sound {
}
}//package
Section 192
//bulldog_3s (bulldog_3s)
package {
import flash.media.*;
public dynamic class bulldog_3s extends Sound {
}
}//package
Section 193
//bulldog_4s (bulldog_4s)
package {
import flash.media.*;
public dynamic class bulldog_4s extends Sound {
}
}//package
Section 194
//bush1 (bush1)
package {
import flash.display.*;
public dynamic class bush1 extends BitmapData {
public function bush1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 195
//bush2 (bush2)
package {
import flash.display.*;
public dynamic class bush2 extends BitmapData {
public function bush2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 196
//bush3 (bush3)
package {
import flash.display.*;
public dynamic class bush3 extends BitmapData {
public function bush3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 197
//cat_1s (cat_1s)
package {
import flash.media.*;
public dynamic class cat_1s extends Sound {
}
}//package
Section 198
//cat_2s (cat_2s)
package {
import flash.media.*;
public dynamic class cat_2s extends Sound {
}
}//package
Section 199
//cat_3s (cat_3s)
package {
import flash.media.*;
public dynamic class cat_3s extends Sound {
}
}//package
Section 200
//cat_4s (cat_4s)
package {
import flash.media.*;
public dynamic class cat_4s extends Sound {
}
}//package
Section 201
//cat_die1 (cat_die1)
package {
import flash.display.*;
public dynamic class cat_die1 extends BitmapData {
public function cat_die1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 202
//cat_die2 (cat_die2)
package {
import flash.display.*;
public dynamic class cat_die2 extends BitmapData {
public function cat_die2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 203
//cat_die3 (cat_die3)
package {
import flash.display.*;
public dynamic class cat_die3 extends BitmapData {
public function cat_die3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 204
//cat_die4 (cat_die4)
package {
import flash.display.*;
public dynamic class cat_die4 extends BitmapData {
public function cat_die4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 205
//cat_die5 (cat_die5)
package {
import flash.display.*;
public dynamic class cat_die5 extends BitmapData {
public function cat_die5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 206
//cat_die6 (cat_die6)
package {
import flash.display.*;
public dynamic class cat_die6 extends BitmapData {
public function cat_die6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 207
//cat01 (cat01)
package {
import flash.display.*;
public dynamic class cat01 extends BitmapData {
public function cat01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 208
//cat02 (cat02)
package {
import flash.display.*;
public dynamic class cat02 extends BitmapData {
public function cat02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 209
//cat03 (cat03)
package {
import flash.display.*;
public dynamic class cat03 extends BitmapData {
public function cat03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 210
//cat04 (cat04)
package {
import flash.display.*;
public dynamic class cat04 extends BitmapData {
public function cat04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 211
//chef_01 (chef_01)
package {
import flash.display.*;
public dynamic class chef_01 extends BitmapData {
public function chef_01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 212
//chef_02 (chef_02)
package {
import flash.display.*;
public dynamic class chef_02 extends BitmapData {
public function chef_02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 213
//chef_03 (chef_03)
package {
import flash.display.*;
public dynamic class chef_03 extends BitmapData {
public function chef_03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 214
//chef_04 (chef_04)
package {
import flash.display.*;
public dynamic class chef_04 extends BitmapData {
public function chef_04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 215
//chef_05 (chef_05)
package {
import flash.display.*;
public dynamic class chef_05 extends BitmapData {
public function chef_05(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 216
//chef_06 (chef_06)
package {
import flash.display.*;
public dynamic class chef_06 extends BitmapData {
public function chef_06(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 217
//chef_07 (chef_07)
package {
import flash.display.*;
public dynamic class chef_07 extends BitmapData {
public function chef_07(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 218
//chef_1s (chef_1s)
package {
import flash.media.*;
public dynamic class chef_1s extends Sound {
}
}//package
Section 219
//chef_2s (chef_2s)
package {
import flash.media.*;
public dynamic class chef_2s extends Sound {
}
}//package
Section 220
//chef_3s (chef_3s)
package {
import flash.media.*;
public dynamic class chef_3s extends Sound {
}
}//package
Section 221
//chef_4s (chef_4s)
package {
import flash.media.*;
public dynamic class chef_4s extends Sound {
}
}//package
Section 222
//chef_5s (chef_5s)
package {
import flash.media.*;
public dynamic class chef_5s extends Sound {
}
}//package
Section 223
//chef_6s (chef_6s)
package {
import flash.media.*;
public dynamic class chef_6s extends Sound {
}
}//package
Section 224
//chef_die_1 (chef_die_1)
package {
import flash.display.*;
public dynamic class chef_die_1 extends BitmapData {
public function chef_die_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 225
//chef_die_2 (chef_die_2)
package {
import flash.display.*;
public dynamic class chef_die_2 extends BitmapData {
public function chef_die_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 226
//chef_die_3 (chef_die_3)
package {
import flash.display.*;
public dynamic class chef_die_3 extends BitmapData {
public function chef_die_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 227
//chef_die_4 (chef_die_4)
package {
import flash.display.*;
public dynamic class chef_die_4 extends BitmapData {
public function chef_die_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 228
//chef_die_5 (chef_die_5)
package {
import flash.display.*;
public dynamic class chef_die_5 extends BitmapData {
public function chef_die_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 229
//chef_die_6 (chef_die_6)
package {
import flash.display.*;
public dynamic class chef_die_6 extends BitmapData {
public function chef_die_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 230
//chef_die_7 (chef_die_7)
package {
import flash.display.*;
public dynamic class chef_die_7 extends BitmapData {
public function chef_die_7(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 231
//chef_die_8 (chef_die_8)
package {
import flash.display.*;
public dynamic class chef_die_8 extends BitmapData {
public function chef_die_8(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 232
//chef_die_9 (chef_die_9)
package {
import flash.display.*;
public dynamic class chef_die_9 extends BitmapData {
public function chef_die_9(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 233
//chicken_hawk_die_1 (chicken_hawk_die_1)
package {
import flash.display.*;
public dynamic class chicken_hawk_die_1 extends BitmapData {
public function chicken_hawk_die_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 234
//chicken_hawk_die_2 (chicken_hawk_die_2)
package {
import flash.display.*;
public dynamic class chicken_hawk_die_2 extends BitmapData {
public function chicken_hawk_die_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 235
//chicken_hawk_die_3 (chicken_hawk_die_3)
package {
import flash.display.*;
public dynamic class chicken_hawk_die_3 extends BitmapData {
public function chicken_hawk_die_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 236
//chicken_hawk_die_4 (chicken_hawk_die_4)
package {
import flash.display.*;
public dynamic class chicken_hawk_die_4 extends BitmapData {
public function chicken_hawk_die_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 237
//chicken_hawk_die_5 (chicken_hawk_die_5)
package {
import flash.display.*;
public dynamic class chicken_hawk_die_5 extends BitmapData {
public function chicken_hawk_die_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 238
//chicken_hawk_die_6 (chicken_hawk_die_6)
package {
import flash.display.*;
public dynamic class chicken_hawk_die_6 extends BitmapData {
public function chicken_hawk_die_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 239
//chicken_hawk01 (chicken_hawk01)
package {
import flash.display.*;
public dynamic class chicken_hawk01 extends BitmapData {
public function chicken_hawk01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 240
//chicken_hawk02 (chicken_hawk02)
package {
import flash.display.*;
public dynamic class chicken_hawk02 extends BitmapData {
public function chicken_hawk02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 241
//chicken_hawk03 (chicken_hawk03)
package {
import flash.display.*;
public dynamic class chicken_hawk03 extends BitmapData {
public function chicken_hawk03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 242
//chicken_hawk04 (chicken_hawk04)
package {
import flash.display.*;
public dynamic class chicken_hawk04 extends BitmapData {
public function chicken_hawk04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 243
//chicken_hawk05 (chicken_hawk05)
package {
import flash.display.*;
public dynamic class chicken_hawk05 extends BitmapData {
public function chicken_hawk05(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 244
//chicken_hawk06 (chicken_hawk06)
package {
import flash.display.*;
public dynamic class chicken_hawk06 extends BitmapData {
public function chicken_hawk06(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 245
//chicken_hawk07 (chicken_hawk07)
package {
import flash.display.*;
public dynamic class chicken_hawk07 extends BitmapData {
public function chicken_hawk07(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 246
//coin_incoming_10 (coin_incoming_10)
package {
import flash.display.*;
public dynamic class coin_incoming_10 extends BitmapData {
public function coin_incoming_10(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 247
//coin_incoming_11 (coin_incoming_11)
package {
import flash.display.*;
public dynamic class coin_incoming_11 extends BitmapData {
public function coin_incoming_11(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 248
//coin_incoming_12 (coin_incoming_12)
package {
import flash.display.*;
public dynamic class coin_incoming_12 extends BitmapData {
public function coin_incoming_12(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 249
//coin_incoming_13 (coin_incoming_13)
package {
import flash.display.*;
public dynamic class coin_incoming_13 extends BitmapData {
public function coin_incoming_13(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 250
//coin_incoming_14 (coin_incoming_14)
package {
import flash.display.*;
public dynamic class coin_incoming_14 extends BitmapData {
public function coin_incoming_14(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 251
//coin_incoming_15 (coin_incoming_15)
package {
import flash.display.*;
public dynamic class coin_incoming_15 extends BitmapData {
public function coin_incoming_15(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 252
//coin_incoming_16 (coin_incoming_16)
package {
import flash.display.*;
public dynamic class coin_incoming_16 extends BitmapData {
public function coin_incoming_16(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 253
//coin_incoming_17 (coin_incoming_17)
package {
import flash.display.*;
public dynamic class coin_incoming_17 extends BitmapData {
public function coin_incoming_17(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 254
//coin_incoming_18 (coin_incoming_18)
package {
import flash.display.*;
public dynamic class coin_incoming_18 extends BitmapData {
public function coin_incoming_18(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 255
//coin_incoming_19 (coin_incoming_19)
package {
import flash.display.*;
public dynamic class coin_incoming_19 extends BitmapData {
public function coin_incoming_19(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 256
//coin_incoming_20 (coin_incoming_20)
package {
import flash.display.*;
public dynamic class coin_incoming_20 extends BitmapData {
public function coin_incoming_20(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 257
//coin_incoming_21 (coin_incoming_21)
package {
import flash.display.*;
public dynamic class coin_incoming_21 extends BitmapData {
public function coin_incoming_21(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 258
//coin_incoming_22 (coin_incoming_22)
package {
import flash.display.*;
public dynamic class coin_incoming_22 extends BitmapData {
public function coin_incoming_22(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 259
//coin_incoming_6 (coin_incoming_6)
package {
import flash.display.*;
public dynamic class coin_incoming_6 extends BitmapData {
public function coin_incoming_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 260
//coin_incoming_7 (coin_incoming_7)
package {
import flash.display.*;
public dynamic class coin_incoming_7 extends BitmapData {
public function coin_incoming_7(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 261
//coin_incoming_8 (coin_incoming_8)
package {
import flash.display.*;
public dynamic class coin_incoming_8 extends BitmapData {
public function coin_incoming_8(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 262
//coin_incoming_9 (coin_incoming_9)
package {
import flash.display.*;
public dynamic class coin_incoming_9 extends BitmapData {
public function coin_incoming_9(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 263
//coin_outgoing_1 (coin_outgoing_1)
package {
import flash.display.*;
public dynamic class coin_outgoing_1 extends BitmapData {
public function coin_outgoing_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 264
//coin_outgoing_10 (coin_outgoing_10)
package {
import flash.display.*;
public dynamic class coin_outgoing_10 extends BitmapData {
public function coin_outgoing_10(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 265
//coin_outgoing_11 (coin_outgoing_11)
package {
import flash.display.*;
public dynamic class coin_outgoing_11 extends BitmapData {
public function coin_outgoing_11(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 266
//coin_outgoing_12 (coin_outgoing_12)
package {
import flash.display.*;
public dynamic class coin_outgoing_12 extends BitmapData {
public function coin_outgoing_12(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 267
//coin_outgoing_13 (coin_outgoing_13)
package {
import flash.display.*;
public dynamic class coin_outgoing_13 extends BitmapData {
public function coin_outgoing_13(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 268
//coin_outgoing_14 (coin_outgoing_14)
package {
import flash.display.*;
public dynamic class coin_outgoing_14 extends BitmapData {
public function coin_outgoing_14(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 269
//coin_outgoing_15 (coin_outgoing_15)
package {
import flash.display.*;
public dynamic class coin_outgoing_15 extends BitmapData {
public function coin_outgoing_15(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 270
//coin_outgoing_16 (coin_outgoing_16)
package {
import flash.display.*;
public dynamic class coin_outgoing_16 extends BitmapData {
public function coin_outgoing_16(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 271
//coin_outgoing_2 (coin_outgoing_2)
package {
import flash.display.*;
public dynamic class coin_outgoing_2 extends BitmapData {
public function coin_outgoing_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 272
//coin_outgoing_3 (coin_outgoing_3)
package {
import flash.display.*;
public dynamic class coin_outgoing_3 extends BitmapData {
public function coin_outgoing_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 273
//coin_outgoing_4 (coin_outgoing_4)
package {
import flash.display.*;
public dynamic class coin_outgoing_4 extends BitmapData {
public function coin_outgoing_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 274
//coin_outgoing_5 (coin_outgoing_5)
package {
import flash.display.*;
public dynamic class coin_outgoing_5 extends BitmapData {
public function coin_outgoing_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 275
//coin_outgoing_6 (coin_outgoing_6)
package {
import flash.display.*;
public dynamic class coin_outgoing_6 extends BitmapData {
public function coin_outgoing_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 276
//coin_outgoing_7 (coin_outgoing_7)
package {
import flash.display.*;
public dynamic class coin_outgoing_7 extends BitmapData {
public function coin_outgoing_7(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 277
//coin_outgoing_8 (coin_outgoing_8)
package {
import flash.display.*;
public dynamic class coin_outgoing_8 extends BitmapData {
public function coin_outgoing_8(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 278
//coin_outgoing_9 (coin_outgoing_9)
package {
import flash.display.*;
public dynamic class coin_outgoing_9 extends BitmapData {
public function coin_outgoing_9(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 279
//crow_1s (crow_1s)
package {
import flash.media.*;
public dynamic class crow_1s extends Sound {
}
}//package
Section 280
//crow_2s (crow_2s)
package {
import flash.media.*;
public dynamic class crow_2s extends Sound {
}
}//package
Section 281
//crow_3s (crow_3s)
package {
import flash.media.*;
public dynamic class crow_3s extends Sound {
}
}//package
Section 282
//crow_4s (crow_4s)
package {
import flash.media.*;
public dynamic class crow_4s extends Sound {
}
}//package
Section 283
//dog_die_1 (dog_die_1)
package {
import flash.display.*;
public dynamic class dog_die_1 extends BitmapData {
public function dog_die_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 284
//dog_die_2 (dog_die_2)
package {
import flash.display.*;
public dynamic class dog_die_2 extends BitmapData {
public function dog_die_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 285
//dog_die_3 (dog_die_3)
package {
import flash.display.*;
public dynamic class dog_die_3 extends BitmapData {
public function dog_die_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 286
//dog_die_4 (dog_die_4)
package {
import flash.display.*;
public dynamic class dog_die_4 extends BitmapData {
public function dog_die_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 287
//dog_die_5 (dog_die_5)
package {
import flash.display.*;
public dynamic class dog_die_5 extends BitmapData {
public function dog_die_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 288
//dog_die_6 (dog_die_6)
package {
import flash.display.*;
public dynamic class dog_die_6 extends BitmapData {
public function dog_die_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 289
//dog01 (dog01)
package {
import flash.display.*;
public dynamic class dog01 extends BitmapData {
public function dog01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 290
//dog02 (dog02)
package {
import flash.display.*;
public dynamic class dog02 extends BitmapData {
public function dog02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 291
//dog03 (dog03)
package {
import flash.display.*;
public dynamic class dog03 extends BitmapData {
public function dog03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 292
//dog04 (dog04)
package {
import flash.display.*;
public dynamic class dog04 extends BitmapData {
public function dog04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 293
//dog05 (dog05)
package {
import flash.display.*;
public dynamic class dog05 extends BitmapData {
public function dog05(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 294
//egg_01_01 (egg_01_01)
package {
import flash.display.*;
public dynamic class egg_01_01 extends BitmapData {
public function egg_01_01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 295
//egg_01_02 (egg_01_02)
package {
import flash.display.*;
public dynamic class egg_01_02 extends BitmapData {
public function egg_01_02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 296
//egg_01_03 (egg_01_03)
package {
import flash.display.*;
public dynamic class egg_01_03 extends BitmapData {
public function egg_01_03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 297
//egg_01_04 (egg_01_04)
package {
import flash.display.*;
public dynamic class egg_01_04 extends BitmapData {
public function egg_01_04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 298
//egg_02_01 (egg_02_01)
package {
import flash.display.*;
public dynamic class egg_02_01 extends BitmapData {
public function egg_02_01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 299
//egg_02_02 (egg_02_02)
package {
import flash.display.*;
public dynamic class egg_02_02 extends BitmapData {
public function egg_02_02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 300
//egg_02_03 (egg_02_03)
package {
import flash.display.*;
public dynamic class egg_02_03 extends BitmapData {
public function egg_02_03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 301
//egg_02_04 (egg_02_04)
package {
import flash.display.*;
public dynamic class egg_02_04 extends BitmapData {
public function egg_02_04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 302
//egg_03_01 (egg_03_01)
package {
import flash.display.*;
public dynamic class egg_03_01 extends BitmapData {
public function egg_03_01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 303
//egg_03_02 (egg_03_02)
package {
import flash.display.*;
public dynamic class egg_03_02 extends BitmapData {
public function egg_03_02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 304
//egg_03_03 (egg_03_03)
package {
import flash.display.*;
public dynamic class egg_03_03 extends BitmapData {
public function egg_03_03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 305
//egg_03_04 (egg_03_04)
package {
import flash.display.*;
public dynamic class egg_03_04 extends BitmapData {
public function egg_03_04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 306
//egg_04_01 (egg_04_01)
package {
import flash.display.*;
public dynamic class egg_04_01 extends BitmapData {
public function egg_04_01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 307
//egg_04_02 (egg_04_02)
package {
import flash.display.*;
public dynamic class egg_04_02 extends BitmapData {
public function egg_04_02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 308
//egg_04_03 (egg_04_03)
package {
import flash.display.*;
public dynamic class egg_04_03 extends BitmapData {
public function egg_04_03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 309
//egg_04_04 (egg_04_04)
package {
import flash.display.*;
public dynamic class egg_04_04 extends BitmapData {
public function egg_04_04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 310
//egg_05_01 (egg_05_01)
package {
import flash.display.*;
public dynamic class egg_05_01 extends BitmapData {
public function egg_05_01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 311
//egg_05_02 (egg_05_02)
package {
import flash.display.*;
public dynamic class egg_05_02 extends BitmapData {
public function egg_05_02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 312
//egg_05_03 (egg_05_03)
package {
import flash.display.*;
public dynamic class egg_05_03 extends BitmapData {
public function egg_05_03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 313
//egg_05_04 (egg_05_04)
package {
import flash.display.*;
public dynamic class egg_05_04 extends BitmapData {
public function egg_05_04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 314
//egg_06_01 (egg_06_01)
package {
import flash.display.*;
public dynamic class egg_06_01 extends BitmapData {
public function egg_06_01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 315
//egg_06_02 (egg_06_02)
package {
import flash.display.*;
public dynamic class egg_06_02 extends BitmapData {
public function egg_06_02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 316
//egg_06_03 (egg_06_03)
package {
import flash.display.*;
public dynamic class egg_06_03 extends BitmapData {
public function egg_06_03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 317
//egg_06_04 (egg_06_04)
package {
import flash.display.*;
public dynamic class egg_06_04 extends BitmapData {
public function egg_06_04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 318
//egg_1 (egg_1)
package {
import flash.display.*;
public dynamic class egg_1 extends BitmapData {
public function egg_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 319
//egg_2 (egg_2)
package {
import flash.display.*;
public dynamic class egg_2 extends BitmapData {
public function egg_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 320
//egg_3 (egg_3)
package {
import flash.display.*;
public dynamic class egg_3 extends BitmapData {
public function egg_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 321
//egg_4 (egg_4)
package {
import flash.display.*;
public dynamic class egg_4 extends BitmapData {
public function egg_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 322
//egg_5 (egg_5)
package {
import flash.display.*;
public dynamic class egg_5 extends BitmapData {
public function egg_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 323
//egg_6 (egg_6)
package {
import flash.display.*;
public dynamic class egg_6 extends BitmapData {
public function egg_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 324
//egg_7 (egg_7)
package {
import flash.display.*;
public dynamic class egg_7 extends BitmapData {
public function egg_7(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 325
//egg_animated_mc (egg_animated_mc)
package {
import flash.display.*;
public dynamic class egg_animated_mc extends MovieClip {
public var soul:MovieClip;
public var chicken:MovieClip;
}
}//package
Section 326
//egg_break_1s (egg_break_1s)
package {
import flash.media.*;
public dynamic class egg_break_1s extends Sound {
}
}//package
Section 327
//egg_break_2s (egg_break_2s)
package {
import flash.media.*;
public dynamic class egg_break_2s extends Sound {
}
}//package
Section 328
//enemy_defeated_1s (enemy_defeated_1s)
package {
import flash.media.*;
public dynamic class enemy_defeated_1s extends Sound {
}
}//package
Section 329
//enemy_defeated_2s (enemy_defeated_2s)
package {
import flash.media.*;
public dynamic class enemy_defeated_2s extends Sound {
}
}//package
Section 330
//enemy_defeated_3s (enemy_defeated_3s)
package {
import flash.media.*;
public dynamic class enemy_defeated_3s extends Sound {
}
}//package
Section 331
//enemy_defeated_4s (enemy_defeated_4s)
package {
import flash.media.*;
public dynamic class enemy_defeated_4s extends Sound {
}
}//package
Section 332
//enemy_defeated_5s (enemy_defeated_5s)
package {
import flash.media.*;
public dynamic class enemy_defeated_5s extends Sound {
}
}//package
Section 333
//enemy_defeated_6s (enemy_defeated_6s)
package {
import flash.media.*;
public dynamic class enemy_defeated_6s extends Sound {
}
}//package
Section 334
//enemy_defeated_7s (enemy_defeated_7s)
package {
import flash.media.*;
public dynamic class enemy_defeated_7s extends Sound {
}
}//package
Section 335
//enemy_defeated_8s (enemy_defeated_8s)
package {
import flash.media.*;
public dynamic class enemy_defeated_8s extends Sound {
}
}//package
Section 336
//enemy_wave_1s (enemy_wave_1s)
package {
import flash.media.*;
public dynamic class enemy_wave_1s extends Sound {
}
}//package
Section 337
//enemybar_green (enemybar_green)
package {
import flash.display.*;
public dynamic class enemybar_green extends BitmapData {
public function enemybar_green(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 338
//falcon_1s (falcon_1s)
package {
import flash.media.*;
public dynamic class falcon_1s extends Sound {
}
}//package
Section 339
//falcon_2s (falcon_2s)
package {
import flash.media.*;
public dynamic class falcon_2s extends Sound {
}
}//package
Section 340
//falcon_3s (falcon_3s)
package {
import flash.media.*;
public dynamic class falcon_3s extends Sound {
}
}//package
Section 341
//falcon_4s (falcon_4s)
package {
import flash.media.*;
public dynamic class falcon_4s extends Sound {
}
}//package
Section 342
//fire_apple (fire_apple)
package {
import flash.display.*;
public dynamic class fire_apple extends BitmapData {
public function fire_apple(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 343
//fire_level_1 (fire_level_1)
package {
import flash.display.*;
public dynamic class fire_level_1 extends BitmapData {
public function fire_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 344
//fire_level_2 (fire_level_2)
package {
import flash.display.*;
public dynamic class fire_level_2 extends BitmapData {
public function fire_level_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 345
//fire_level_3 (fire_level_3)
package {
import flash.display.*;
public dynamic class fire_level_3 extends BitmapData {
public function fire_level_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 346
//fish_tower_01_level_1 (fish_tower_01_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_01_level_1 extends BitmapData {
public function fish_tower_01_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 347
//fish_tower_02_level_1 (fish_tower_02_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_02_level_1 extends BitmapData {
public function fish_tower_02_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 348
//fish_tower_03_level_1 (fish_tower_03_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_03_level_1 extends BitmapData {
public function fish_tower_03_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 349
//fish_tower_04_level_1 (fish_tower_04_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_04_level_1 extends BitmapData {
public function fish_tower_04_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 350
//fish_tower_05_level_1 (fish_tower_05_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_05_level_1 extends BitmapData {
public function fish_tower_05_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 351
//fish_tower_06_level_1 (fish_tower_06_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_06_level_1 extends BitmapData {
public function fish_tower_06_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 352
//fish_tower_07_level_1 (fish_tower_07_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_07_level_1 extends BitmapData {
public function fish_tower_07_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 353
//fish_tower_08_level_1 (fish_tower_08_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_08_level_1 extends BitmapData {
public function fish_tower_08_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 354
//fish_tower_09_level_1 (fish_tower_09_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_09_level_1 extends BitmapData {
public function fish_tower_09_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 355
//fish_tower_10_level_1 (fish_tower_10_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_10_level_1 extends BitmapData {
public function fish_tower_10_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 356
//fish_tower_11_level_1 (fish_tower_11_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_11_level_1 extends BitmapData {
public function fish_tower_11_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 357
//fish_tower_12_level_1 (fish_tower_12_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_12_level_1 extends BitmapData {
public function fish_tower_12_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 358
//fish_tower_13_level_1 (fish_tower_13_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_13_level_1 extends BitmapData {
public function fish_tower_13_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 359
//fish_tower_14_level_1 (fish_tower_14_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_14_level_1 extends BitmapData {
public function fish_tower_14_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 360
//fish_tower_15_level_1 (fish_tower_15_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_15_level_1 extends BitmapData {
public function fish_tower_15_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 361
//fish_tower_16_level_1 (fish_tower_16_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_16_level_1 extends BitmapData {
public function fish_tower_16_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 362
//fish_tower_rising_01_level_1 (fish_tower_rising_01_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_rising_01_level_1 extends BitmapData {
public function fish_tower_rising_01_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 363
//fish_tower_rising_02_level_1 (fish_tower_rising_02_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_rising_02_level_1 extends BitmapData {
public function fish_tower_rising_02_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 364
//fish_tower_rising_03_level_1 (fish_tower_rising_03_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_rising_03_level_1 extends BitmapData {
public function fish_tower_rising_03_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 365
//fish_tower_rising_04_level_1 (fish_tower_rising_04_level_1)
package {
import flash.display.*;
public dynamic class fish_tower_rising_04_level_1 extends BitmapData {
public function fish_tower_rising_04_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 366
//flag_badger (flag_badger)
package {
import flash.display.*;
public dynamic class flag_badger extends BitmapData {
public function flag_badger(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 367
//flag_baker (flag_baker)
package {
import flash.display.*;
public dynamic class flag_baker extends BitmapData {
public function flag_baker(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 368
//flag_boar (flag_boar)
package {
import flash.display.*;
public dynamic class flag_boar extends BitmapData {
public function flag_boar(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 369
//flag_cat (flag_cat)
package {
import flash.display.*;
public dynamic class flag_cat extends BitmapData {
public function flag_cat(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 370
//flag_chickenhawk (flag_chickenhawk)
package {
import flash.display.*;
public dynamic class flag_chickenhawk extends BitmapData {
public function flag_chickenhawk(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 371
//flag_dog (flag_dog)
package {
import flash.display.*;
public dynamic class flag_dog extends BitmapData {
public function flag_dog(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 372
//flag_fox (flag_fox)
package {
import flash.display.*;
public dynamic class flag_fox extends BitmapData {
public function flag_fox(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 373
//flag_mouse (flag_mouse)
package {
import flash.display.*;
public dynamic class flag_mouse extends BitmapData {
public function flag_mouse(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 374
//flag_racoon (flag_racoon)
package {
import flash.display.*;
public dynamic class flag_racoon extends BitmapData {
public function flag_racoon(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 375
//flag_raven (flag_raven)
package {
import flash.display.*;
public dynamic class flag_raven extends BitmapData {
public function flag_raven(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 376
//flag_snake (flag_snake)
package {
import flash.display.*;
public dynamic class flag_snake extends BitmapData {
public function flag_snake(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 377
//fox_1s (fox_1s)
package {
import flash.media.*;
public dynamic class fox_1s extends Sound {
}
}//package
Section 378
//fox_2s (fox_2s)
package {
import flash.media.*;
public dynamic class fox_2s extends Sound {
}
}//package
Section 379
//fox_3s (fox_3s)
package {
import flash.media.*;
public dynamic class fox_3s extends Sound {
}
}//package
Section 380
//fox_die_1 (fox_die_1)
package {
import flash.display.*;
public dynamic class fox_die_1 extends BitmapData {
public function fox_die_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 381
//fox_die_2 (fox_die_2)
package {
import flash.display.*;
public dynamic class fox_die_2 extends BitmapData {
public function fox_die_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 382
//fox_die_3 (fox_die_3)
package {
import flash.display.*;
public dynamic class fox_die_3 extends BitmapData {
public function fox_die_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 383
//fox_die_4 (fox_die_4)
package {
import flash.display.*;
public dynamic class fox_die_4 extends BitmapData {
public function fox_die_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 384
//fox_die_5 (fox_die_5)
package {
import flash.display.*;
public dynamic class fox_die_5 extends BitmapData {
public function fox_die_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 385
//fox_die_6 (fox_die_6)
package {
import flash.display.*;
public dynamic class fox_die_6 extends BitmapData {
public function fox_die_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 386
//fox01 (fox01)
package {
import flash.display.*;
public dynamic class fox01 extends BitmapData {
public function fox01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 387
//fox02 (fox02)
package {
import flash.display.*;
public dynamic class fox02 extends BitmapData {
public function fox02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 388
//fox03 (fox03)
package {
import flash.display.*;
public dynamic class fox03 extends BitmapData {
public function fox03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 389
//fox04 (fox04)
package {
import flash.display.*;
public dynamic class fox04 extends BitmapData {
public function fox04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 390
//fox05 (fox05)
package {
import flash.display.*;
public dynamic class fox05 extends BitmapData {
public function fox05(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 391
//game_over (game_over)
package {
import flash.display.*;
import flash.text.*;
public dynamic class game_over extends MovieClip {
public var headerContainer:MovieClip;
public var egg1:MovieClip;
public var gameover_timeLeft:TextField;
public var scoreContainer:MovieClip;
public var tagClip:MovieClip;
public var gameover_timeLeftText:TextField;
public var totalContainer:MovieClip;
public var moneyContainer:MovieClip;
public var statistics:MovieClip;
public var lifeContainer:MovieClip;
public var headerContainerGreen:MovieClip;
public var timeContainer:MovieClip;
}
}//package
Section 392
//game_start_1s (game_start_1s)
package {
import flash.media.*;
public dynamic class game_start_1s extends Sound {
}
}//package
Section 393
//glow1 (glow1)
package {
import flash.display.*;
public dynamic class glow1 extends BitmapData {
public function glow1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 394
//glow10 (glow10)
package {
import flash.display.*;
public dynamic class glow10 extends BitmapData {
public function glow10(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 395
//glow11 (glow11)
package {
import flash.display.*;
public dynamic class glow11 extends BitmapData {
public function glow11(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 396
//glow12 (glow12)
package {
import flash.display.*;
public dynamic class glow12 extends BitmapData {
public function glow12(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 397
//glow13 (glow13)
package {
import flash.display.*;
public dynamic class glow13 extends BitmapData {
public function glow13(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 398
//glow14 (glow14)
package {
import flash.display.*;
public dynamic class glow14 extends BitmapData {
public function glow14(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 399
//glow15 (glow15)
package {
import flash.display.*;
public dynamic class glow15 extends BitmapData {
public function glow15(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 400
//glow16 (glow16)
package {
import flash.display.*;
public dynamic class glow16 extends BitmapData {
public function glow16(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 401
//glow17 (glow17)
package {
import flash.display.*;
public dynamic class glow17 extends BitmapData {
public function glow17(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 402
//glow18 (glow18)
package {
import flash.display.*;
public dynamic class glow18 extends BitmapData {
public function glow18(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 403
//glow19 (glow19)
package {
import flash.display.*;
public dynamic class glow19 extends BitmapData {
public function glow19(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 404
//glow2 (glow2)
package {
import flash.display.*;
public dynamic class glow2 extends BitmapData {
public function glow2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 405
//glow20 (glow20)
package {
import flash.display.*;
public dynamic class glow20 extends BitmapData {
public function glow20(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 406
//glow21 (glow21)
package {
import flash.display.*;
public dynamic class glow21 extends BitmapData {
public function glow21(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 407
//glow22 (glow22)
package {
import flash.display.*;
public dynamic class glow22 extends BitmapData {
public function glow22(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 408
//glow23 (glow23)
package {
import flash.display.*;
public dynamic class glow23 extends BitmapData {
public function glow23(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 409
//glow24 (glow24)
package {
import flash.display.*;
public dynamic class glow24 extends BitmapData {
public function glow24(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 410
//glow3 (glow3)
package {
import flash.display.*;
public dynamic class glow3 extends BitmapData {
public function glow3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 411
//glow4 (glow4)
package {
import flash.display.*;
public dynamic class glow4 extends BitmapData {
public function glow4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 412
//glow5 (glow5)
package {
import flash.display.*;
public dynamic class glow5 extends BitmapData {
public function glow5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 413
//glow6 (glow6)
package {
import flash.display.*;
public dynamic class glow6 extends BitmapData {
public function glow6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 414
//glow8 (glow8)
package {
import flash.display.*;
public dynamic class glow8 extends BitmapData {
public function glow8(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 415
//glow9 (glow9)
package {
import flash.display.*;
public dynamic class glow9 extends BitmapData {
public function glow9(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 416
//healthbar_bar (healthbar_bar)
package {
import flash.display.*;
public dynamic class healthbar_bar extends BitmapData {
public function healthbar_bar(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 417
//healthbar_frame (healthbar_frame)
package {
import flash.display.*;
public dynamic class healthbar_frame extends BitmapData {
public function healthbar_frame(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 418
//hence_defense_game_end_1s (hence_defense_game_end_1s)
package {
import flash.media.*;
public dynamic class hence_defense_game_end_1s extends Sound {
}
}//package
Section 419
//hence_defense_intro_1s (hence_defense_intro_1s)
package {
import flash.media.*;
public dynamic class hence_defense_intro_1s extends Sound {
}
}//package
Section 420
//hence_defense_loop_1s (hence_defense_loop_1s)
package {
import flash.media.*;
public dynamic class hence_defense_loop_1s extends Sound {
}
}//package
Section 421
//hog_1s (hog_1s)
package {
import flash.media.*;
public dynamic class hog_1s extends Sound {
}
}//package
Section 422
//hog_2s (hog_2s)
package {
import flash.media.*;
public dynamic class hog_2s extends Sound {
}
}//package
Section 423
//hog_3s (hog_3s)
package {
import flash.media.*;
public dynamic class hog_3s extends Sound {
}
}//package
Section 424
//hog_4s (hog_4s)
package {
import flash.media.*;
public dynamic class hog_4s extends Sound {
}
}//package
Section 425
//home (home)
package {
import flash.display.*;
public dynamic class home extends BitmapData {
public function home(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 426
//intro (intro)
package {
import flash.display.*;
import flash.text.*;
public dynamic class intro extends MovieClip {
public var first:MovieClip;
public var second:MovieClip;
public var third:MovieClip;
public var timeLeft:TextField;
}
}//package
Section 427
//JewelDefence (JewelDefence)
package {
import com.midasplayer.jeweldefence.*;
import flash.display.*;
public class JewelDefence extends Sprite {
public function JewelDefence(){
stage.addChild(new Main());
}
}
}//package
Section 428
//marker (marker)
package {
import flash.display.*;
public dynamic class marker extends BitmapData {
public function marker(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 429
//matching_combo_1s (matching_combo_1s)
package {
import flash.media.*;
public dynamic class matching_combo_1s extends Sound {
}
}//package
Section 430
//missile_level_1 (missile_level_1)
package {
import flash.display.*;
public dynamic class missile_level_1 extends BitmapData {
public function missile_level_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 431
//missile_level_2 (missile_level_2)
package {
import flash.display.*;
public dynamic class missile_level_2 extends BitmapData {
public function missile_level_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 432
//missile_level_3 (missile_level_3)
package {
import flash.display.*;
public dynamic class missile_level_3 extends BitmapData {
public function missile_level_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 433
//mouse_01 (mouse_01)
package {
import flash.display.*;
public dynamic class mouse_01 extends BitmapData {
public function mouse_01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 434
//mouse_02 (mouse_02)
package {
import flash.display.*;
public dynamic class mouse_02 extends BitmapData {
public function mouse_02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 435
//mouse_03 (mouse_03)
package {
import flash.display.*;
public dynamic class mouse_03 extends BitmapData {
public function mouse_03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 436
//mouse_04 (mouse_04)
package {
import flash.display.*;
public dynamic class mouse_04 extends BitmapData {
public function mouse_04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 437
//mouse_1s (mouse_1s)
package {
import flash.media.*;
public dynamic class mouse_1s extends Sound {
}
}//package
Section 438
//mouse_2s (mouse_2s)
package {
import flash.media.*;
public dynamic class mouse_2s extends Sound {
}
}//package
Section 439
//mouse_3s (mouse_3s)
package {
import flash.media.*;
public dynamic class mouse_3s extends Sound {
}
}//package
Section 440
//mouse_die_1 (mouse_die_1)
package {
import flash.display.*;
public dynamic class mouse_die_1 extends BitmapData {
public function mouse_die_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 441
//mouse_die_2 (mouse_die_2)
package {
import flash.display.*;
public dynamic class mouse_die_2 extends BitmapData {
public function mouse_die_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 442
//mouse_die_3 (mouse_die_3)
package {
import flash.display.*;
public dynamic class mouse_die_3 extends BitmapData {
public function mouse_die_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 443
//mouse_die_4 (mouse_die_4)
package {
import flash.display.*;
public dynamic class mouse_die_4 extends BitmapData {
public function mouse_die_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 444
//mouse_die_5 (mouse_die_5)
package {
import flash.display.*;
public dynamic class mouse_die_5 extends BitmapData {
public function mouse_die_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 445
//mouse_die_6 (mouse_die_6)
package {
import flash.display.*;
public dynamic class mouse_die_6 extends BitmapData {
public function mouse_die_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 446
//mushroom (mushroom)
package {
import flash.display.*;
public dynamic class mushroom extends BitmapData {
public function mushroom(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 447
//music_off (music_off)
package {
import flash.display.*;
public dynamic class music_off extends BitmapData {
public function music_off(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 448
//music_on (music_on)
package {
import flash.display.*;
public dynamic class music_on extends BitmapData {
public function music_on(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 449
//negative_placement_1s (negative_placement_1s)
package {
import flash.media.*;
public dynamic class negative_placement_1s extends Sound {
}
}//package
Section 450
//negative_switch_1s (negative_switch_1s)
package {
import flash.media.*;
public dynamic class negative_switch_1s extends Sound {
}
}//package
Section 451
//numbers_gold_0 (numbers_gold_0)
package {
import flash.display.*;
public dynamic class numbers_gold_0 extends BitmapData {
public function numbers_gold_0(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 452
//numbers_gold_1 (numbers_gold_1)
package {
import flash.display.*;
public dynamic class numbers_gold_1 extends BitmapData {
public function numbers_gold_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 453
//numbers_gold_2 (numbers_gold_2)
package {
import flash.display.*;
public dynamic class numbers_gold_2 extends BitmapData {
public function numbers_gold_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 454
//numbers_gold_3 (numbers_gold_3)
package {
import flash.display.*;
public dynamic class numbers_gold_3 extends BitmapData {
public function numbers_gold_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 455
//numbers_gold_4 (numbers_gold_4)
package {
import flash.display.*;
public dynamic class numbers_gold_4 extends BitmapData {
public function numbers_gold_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 456
//numbers_gold_5 (numbers_gold_5)
package {
import flash.display.*;
public dynamic class numbers_gold_5 extends BitmapData {
public function numbers_gold_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 457
//numbers_gold_6 (numbers_gold_6)
package {
import flash.display.*;
public dynamic class numbers_gold_6 extends BitmapData {
public function numbers_gold_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 458
//numbers_gold_7 (numbers_gold_7)
package {
import flash.display.*;
public dynamic class numbers_gold_7 extends BitmapData {
public function numbers_gold_7(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 459
//numbers_gold_8 (numbers_gold_8)
package {
import flash.display.*;
public dynamic class numbers_gold_8 extends BitmapData {
public function numbers_gold_8(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 460
//numbers_gold_9 (numbers_gold_9)
package {
import flash.display.*;
public dynamic class numbers_gold_9 extends BitmapData {
public function numbers_gold_9(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 461
//numbers_score_0 (numbers_score_0)
package {
import flash.display.*;
public dynamic class numbers_score_0 extends BitmapData {
public function numbers_score_0(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 462
//numbers_score_1 (numbers_score_1)
package {
import flash.display.*;
public dynamic class numbers_score_1 extends BitmapData {
public function numbers_score_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 463
//numbers_score_2 (numbers_score_2)
package {
import flash.display.*;
public dynamic class numbers_score_2 extends BitmapData {
public function numbers_score_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 464
//numbers_score_3 (numbers_score_3)
package {
import flash.display.*;
public dynamic class numbers_score_3 extends BitmapData {
public function numbers_score_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 465
//numbers_score_4 (numbers_score_4)
package {
import flash.display.*;
public dynamic class numbers_score_4 extends BitmapData {
public function numbers_score_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 466
//numbers_score_5 (numbers_score_5)
package {
import flash.display.*;
public dynamic class numbers_score_5 extends BitmapData {
public function numbers_score_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 467
//numbers_score_6 (numbers_score_6)
package {
import flash.display.*;
public dynamic class numbers_score_6 extends BitmapData {
public function numbers_score_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 468
//numbers_score_7 (numbers_score_7)
package {
import flash.display.*;
public dynamic class numbers_score_7 extends BitmapData {
public function numbers_score_7(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 469
//numbers_score_8 (numbers_score_8)
package {
import flash.display.*;
public dynamic class numbers_score_8 extends BitmapData {
public function numbers_score_8(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 470
//numbers_score_9 (numbers_score_9)
package {
import flash.display.*;
public dynamic class numbers_score_9 extends BitmapData {
public function numbers_score_9(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 471
//numbers_scorepop_0 (numbers_scorepop_0)
package {
import flash.display.*;
public dynamic class numbers_scorepop_0 extends BitmapData {
public function numbers_scorepop_0(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 472
//numbers_scorepop_1 (numbers_scorepop_1)
package {
import flash.display.*;
public dynamic class numbers_scorepop_1 extends BitmapData {
public function numbers_scorepop_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 473
//numbers_scorepop_2 (numbers_scorepop_2)
package {
import flash.display.*;
public dynamic class numbers_scorepop_2 extends BitmapData {
public function numbers_scorepop_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 474
//numbers_scorepop_3 (numbers_scorepop_3)
package {
import flash.display.*;
public dynamic class numbers_scorepop_3 extends BitmapData {
public function numbers_scorepop_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 475
//numbers_scorepop_4 (numbers_scorepop_4)
package {
import flash.display.*;
public dynamic class numbers_scorepop_4 extends BitmapData {
public function numbers_scorepop_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 476
//numbers_scorepop_5 (numbers_scorepop_5)
package {
import flash.display.*;
public dynamic class numbers_scorepop_5 extends BitmapData {
public function numbers_scorepop_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 477
//numbers_scorepop_6 (numbers_scorepop_6)
package {
import flash.display.*;
public dynamic class numbers_scorepop_6 extends BitmapData {
public function numbers_scorepop_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 478
//numbers_scorepop_7 (numbers_scorepop_7)
package {
import flash.display.*;
public dynamic class numbers_scorepop_7 extends BitmapData {
public function numbers_scorepop_7(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 479
//numbers_scorepop_8 (numbers_scorepop_8)
package {
import flash.display.*;
public dynamic class numbers_scorepop_8 extends BitmapData {
public function numbers_scorepop_8(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 480
//numbers_scorepop_9 (numbers_scorepop_9)
package {
import flash.display.*;
public dynamic class numbers_scorepop_9 extends BitmapData {
public function numbers_scorepop_9(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 481
//numbers_shop_0 (numbers_shop_0)
package {
import flash.display.*;
public dynamic class numbers_shop_0 extends BitmapData {
public function numbers_shop_0(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 482
//numbers_shop_1 (numbers_shop_1)
package {
import flash.display.*;
public dynamic class numbers_shop_1 extends BitmapData {
public function numbers_shop_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 483
//numbers_shop_2 (numbers_shop_2)
package {
import flash.display.*;
public dynamic class numbers_shop_2 extends BitmapData {
public function numbers_shop_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 484
//numbers_shop_3 (numbers_shop_3)
package {
import flash.display.*;
public dynamic class numbers_shop_3 extends BitmapData {
public function numbers_shop_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 485
//numbers_shop_4 (numbers_shop_4)
package {
import flash.display.*;
public dynamic class numbers_shop_4 extends BitmapData {
public function numbers_shop_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 486
//numbers_shop_5 (numbers_shop_5)
package {
import flash.display.*;
public dynamic class numbers_shop_5 extends BitmapData {
public function numbers_shop_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 487
//numbers_shop_6 (numbers_shop_6)
package {
import flash.display.*;
public dynamic class numbers_shop_6 extends BitmapData {
public function numbers_shop_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 488
//numbers_shop_7 (numbers_shop_7)
package {
import flash.display.*;
public dynamic class numbers_shop_7 extends BitmapData {
public function numbers_shop_7(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 489
//numbers_shop_8 (numbers_shop_8)
package {
import flash.display.*;
public dynamic class numbers_shop_8 extends BitmapData {
public function numbers_shop_8(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 490
//numbers_shop_9 (numbers_shop_9)
package {
import flash.display.*;
public dynamic class numbers_shop_9 extends BitmapData {
public function numbers_shop_9(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 491
//numbers_time_0 (numbers_time_0)
package {
import flash.display.*;
public dynamic class numbers_time_0 extends BitmapData {
public function numbers_time_0(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 492
//numbers_time_1 (numbers_time_1)
package {
import flash.display.*;
public dynamic class numbers_time_1 extends BitmapData {
public function numbers_time_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 493
//numbers_time_2 (numbers_time_2)
package {
import flash.display.*;
public dynamic class numbers_time_2 extends BitmapData {
public function numbers_time_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 494
//numbers_time_3 (numbers_time_3)
package {
import flash.display.*;
public dynamic class numbers_time_3 extends BitmapData {
public function numbers_time_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 495
//numbers_time_4 (numbers_time_4)
package {
import flash.display.*;
public dynamic class numbers_time_4 extends BitmapData {
public function numbers_time_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 496
//numbers_time_5 (numbers_time_5)
package {
import flash.display.*;
public dynamic class numbers_time_5 extends BitmapData {
public function numbers_time_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 497
//numbers_time_6 (numbers_time_6)
package {
import flash.display.*;
public dynamic class numbers_time_6 extends BitmapData {
public function numbers_time_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 498
//numbers_time_7 (numbers_time_7)
package {
import flash.display.*;
public dynamic class numbers_time_7 extends BitmapData {
public function numbers_time_7(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 499
//numbers_time_8 (numbers_time_8)
package {
import flash.display.*;
public dynamic class numbers_time_8 extends BitmapData {
public function numbers_time_8(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 500
//numbers_time_9 (numbers_time_9)
package {
import flash.display.*;
public dynamic class numbers_time_9 extends BitmapData {
public function numbers_time_9(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 501
//numbers_time_colon (numbers_time_colon)
package {
import flash.display.*;
public dynamic class numbers_time_colon extends BitmapData {
public function numbers_time_colon(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 502
//one_level_star (one_level_star)
package {
import flash.display.*;
public dynamic class one_level_star extends BitmapData {
public function one_level_star(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 503
//PathDown (PathDown)
package {
import flash.display.*;
public dynamic class PathDown extends BitmapData {
public function PathDown(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 504
//PathDownLeft (PathDownLeft)
package {
import flash.display.*;
public dynamic class PathDownLeft extends BitmapData {
public function PathDownLeft(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 505
//PathDownRight (PathDownRight)
package {
import flash.display.*;
public dynamic class PathDownRight extends BitmapData {
public function PathDownRight(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 506
//PathLeft (PathLeft)
package {
import flash.display.*;
public dynamic class PathLeft extends BitmapData {
public function PathLeft(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 507
//PathLeftUp (PathLeftUp)
package {
import flash.display.*;
public dynamic class PathLeftUp extends BitmapData {
public function PathLeftUp(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 508
//PathRight (PathRight)
package {
import flash.display.*;
public dynamic class PathRight extends BitmapData {
public function PathRight(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 509
//PathUp (PathUp)
package {
import flash.display.*;
public dynamic class PathUp extends BitmapData {
public function PathUp(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 510
//PathUpRight (PathUpRight)
package {
import flash.display.*;
public dynamic class PathUpRight extends BitmapData {
public function PathUpRight(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 511
//pig_attack (pig_attack)
package {
import flash.display.*;
public dynamic class pig_attack extends BitmapData {
public function pig_attack(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 512
//pig_level_1_01 (pig_level_1_01)
package {
import flash.display.*;
public dynamic class pig_level_1_01 extends BitmapData {
public function pig_level_1_01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 513
//pig_level_1_02 (pig_level_1_02)
package {
import flash.display.*;
public dynamic class pig_level_1_02 extends BitmapData {
public function pig_level_1_02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 514
//pig_level_1_03 (pig_level_1_03)
package {
import flash.display.*;
public dynamic class pig_level_1_03 extends BitmapData {
public function pig_level_1_03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 515
//pig_level_1_04 (pig_level_1_04)
package {
import flash.display.*;
public dynamic class pig_level_1_04 extends BitmapData {
public function pig_level_1_04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 516
//pig_level_1_05 (pig_level_1_05)
package {
import flash.display.*;
public dynamic class pig_level_1_05 extends BitmapData {
public function pig_level_1_05(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 517
//pig_level_2_01 (pig_level_2_01)
package {
import flash.display.*;
public dynamic class pig_level_2_01 extends BitmapData {
public function pig_level_2_01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 518
//pig_level_2_02 (pig_level_2_02)
package {
import flash.display.*;
public dynamic class pig_level_2_02 extends BitmapData {
public function pig_level_2_02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 519
//pig_level_2_03 (pig_level_2_03)
package {
import flash.display.*;
public dynamic class pig_level_2_03 extends BitmapData {
public function pig_level_2_03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 520
//pig_level_2_04 (pig_level_2_04)
package {
import flash.display.*;
public dynamic class pig_level_2_04 extends BitmapData {
public function pig_level_2_04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 521
//pig_level_2_05 (pig_level_2_05)
package {
import flash.display.*;
public dynamic class pig_level_2_05 extends BitmapData {
public function pig_level_2_05(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 522
//pig_level3_01 (pig_level3_01)
package {
import flash.display.*;
public dynamic class pig_level3_01 extends BitmapData {
public function pig_level3_01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 523
//pig_level3_02 (pig_level3_02)
package {
import flash.display.*;
public dynamic class pig_level3_02 extends BitmapData {
public function pig_level3_02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 524
//pig_level3_03 (pig_level3_03)
package {
import flash.display.*;
public dynamic class pig_level3_03 extends BitmapData {
public function pig_level3_03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 525
//pig_level3_04 (pig_level3_04)
package {
import flash.display.*;
public dynamic class pig_level3_04 extends BitmapData {
public function pig_level3_04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 526
//pig_level3_05 (pig_level3_05)
package {
import flash.display.*;
public dynamic class pig_level3_05 extends BitmapData {
public function pig_level3_05(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 527
//place_tower_1s (place_tower_1s)
package {
import flash.media.*;
public dynamic class place_tower_1s extends Sound {
}
}//package
Section 528
//power (power)
package {
import flash.display.*;
public dynamic class power extends BitmapData {
public function power(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 529
//racoon_01 (racoon_01)
package {
import flash.display.*;
public dynamic class racoon_01 extends BitmapData {
public function racoon_01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 530
//racoon_02 (racoon_02)
package {
import flash.display.*;
public dynamic class racoon_02 extends BitmapData {
public function racoon_02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 531
//racoon_03 (racoon_03)
package {
import flash.display.*;
public dynamic class racoon_03 extends BitmapData {
public function racoon_03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 532
//racoon_04 (racoon_04)
package {
import flash.display.*;
public dynamic class racoon_04 extends BitmapData {
public function racoon_04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 533
//racoon_1s (racoon_1s)
package {
import flash.media.*;
public dynamic class racoon_1s extends Sound {
}
}//package
Section 534
//racoon_2s (racoon_2s)
package {
import flash.media.*;
public dynamic class racoon_2s extends Sound {
}
}//package
Section 535
//racoon_3s (racoon_3s)
package {
import flash.media.*;
public dynamic class racoon_3s extends Sound {
}
}//package
Section 536
//racoon_4s (racoon_4s)
package {
import flash.media.*;
public dynamic class racoon_4s extends Sound {
}
}//package
Section 537
//racoon_5s (racoon_5s)
package {
import flash.media.*;
public dynamic class racoon_5s extends Sound {
}
}//package
Section 538
//racoon_die_1 (racoon_die_1)
package {
import flash.display.*;
public dynamic class racoon_die_1 extends BitmapData {
public function racoon_die_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 539
//racoon_die_2 (racoon_die_2)
package {
import flash.display.*;
public dynamic class racoon_die_2 extends BitmapData {
public function racoon_die_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 540
//racoon_die_3 (racoon_die_3)
package {
import flash.display.*;
public dynamic class racoon_die_3 extends BitmapData {
public function racoon_die_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 541
//racoon_die_4 (racoon_die_4)
package {
import flash.display.*;
public dynamic class racoon_die_4 extends BitmapData {
public function racoon_die_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 542
//racoon_die_5 (racoon_die_5)
package {
import flash.display.*;
public dynamic class racoon_die_5 extends BitmapData {
public function racoon_die_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 543
//racoon_die_6 (racoon_die_6)
package {
import flash.display.*;
public dynamic class racoon_die_6 extends BitmapData {
public function racoon_die_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 544
//rainbow_01 (rainbow_01)
package {
import flash.display.*;
public dynamic class rainbow_01 extends BitmapData {
public function rainbow_01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 545
//rainbow_02 (rainbow_02)
package {
import flash.display.*;
public dynamic class rainbow_02 extends BitmapData {
public function rainbow_02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 546
//rainbow_03 (rainbow_03)
package {
import flash.display.*;
public dynamic class rainbow_03 extends BitmapData {
public function rainbow_03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 547
//rainbow_04 (rainbow_04)
package {
import flash.display.*;
public dynamic class rainbow_04 extends BitmapData {
public function rainbow_04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 548
//rainbow_05 (rainbow_05)
package {
import flash.display.*;
public dynamic class rainbow_05 extends BitmapData {
public function rainbow_05(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 549
//rainbow_06 (rainbow_06)
package {
import flash.display.*;
public dynamic class rainbow_06 extends BitmapData {
public function rainbow_06(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 550
//rainbow_07 (rainbow_07)
package {
import flash.display.*;
public dynamic class rainbow_07 extends BitmapData {
public function rainbow_07(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 551
//rainbow_08 (rainbow_08)
package {
import flash.display.*;
public dynamic class rainbow_08 extends BitmapData {
public function rainbow_08(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 552
//rainbow_09 (rainbow_09)
package {
import flash.display.*;
public dynamic class rainbow_09 extends BitmapData {
public function rainbow_09(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 553
//rainbow_10 (rainbow_10)
package {
import flash.display.*;
public dynamic class rainbow_10 extends BitmapData {
public function rainbow_10(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 554
//rainbow_11 (rainbow_11)
package {
import flash.display.*;
public dynamic class rainbow_11 extends BitmapData {
public function rainbow_11(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 555
//rainbow_12 (rainbow_12)
package {
import flash.display.*;
public dynamic class rainbow_12 extends BitmapData {
public function rainbow_12(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 556
//rainbow_13 (rainbow_13)
package {
import flash.display.*;
public dynamic class rainbow_13 extends BitmapData {
public function rainbow_13(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 557
//rainbow_14 (rainbow_14)
package {
import flash.display.*;
public dynamic class rainbow_14 extends BitmapData {
public function rainbow_14(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 558
//rainbow_15 (rainbow_15)
package {
import flash.display.*;
public dynamic class rainbow_15 extends BitmapData {
public function rainbow_15(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 559
//rainbow_16 (rainbow_16)
package {
import flash.display.*;
public dynamic class rainbow_16 extends BitmapData {
public function rainbow_16(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 560
//rainbow_17 (rainbow_17)
package {
import flash.display.*;
public dynamic class rainbow_17 extends BitmapData {
public function rainbow_17(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 561
//rainbow_18 (rainbow_18)
package {
import flash.display.*;
public dynamic class rainbow_18 extends BitmapData {
public function rainbow_18(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 562
//rainbow_19 (rainbow_19)
package {
import flash.display.*;
public dynamic class rainbow_19 extends BitmapData {
public function rainbow_19(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 563
//rainbow_20 (rainbow_20)
package {
import flash.display.*;
public dynamic class rainbow_20 extends BitmapData {
public function rainbow_20(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 564
//rainbow_21 (rainbow_21)
package {
import flash.display.*;
public dynamic class rainbow_21 extends BitmapData {
public function rainbow_21(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 565
//raven_01 (raven_01)
package {
import flash.display.*;
public dynamic class raven_01 extends BitmapData {
public function raven_01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 566
//raven_02 (raven_02)
package {
import flash.display.*;
public dynamic class raven_02 extends BitmapData {
public function raven_02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 567
//raven_03 (raven_03)
package {
import flash.display.*;
public dynamic class raven_03 extends BitmapData {
public function raven_03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 568
//raven_04 (raven_04)
package {
import flash.display.*;
public dynamic class raven_04 extends BitmapData {
public function raven_04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 569
//raven_05 (raven_05)
package {
import flash.display.*;
public dynamic class raven_05 extends BitmapData {
public function raven_05(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 570
//raven_die_1 (raven_die_1)
package {
import flash.display.*;
public dynamic class raven_die_1 extends BitmapData {
public function raven_die_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 571
//raven_die_2 (raven_die_2)
package {
import flash.display.*;
public dynamic class raven_die_2 extends BitmapData {
public function raven_die_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 572
//raven_die_3 (raven_die_3)
package {
import flash.display.*;
public dynamic class raven_die_3 extends BitmapData {
public function raven_die_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 573
//raven_die_4 (raven_die_4)
package {
import flash.display.*;
public dynamic class raven_die_4 extends BitmapData {
public function raven_die_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 574
//raven_die_5 (raven_die_5)
package {
import flash.display.*;
public dynamic class raven_die_5 extends BitmapData {
public function raven_die_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 575
//raven_die_6 (raven_die_6)
package {
import flash.display.*;
public dynamic class raven_die_6 extends BitmapData {
public function raven_die_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 576
//register (register)
package {
import flash.display.*;
import flash.text.*;
public dynamic class register extends MovieClip {
public var header:TextField;
public var text_txt:TextField;
}
}//package
Section 577
//scorepop_3numbers_trans_1 (scorepop_3numbers_trans_1)
package {
import flash.display.*;
public dynamic class scorepop_3numbers_trans_1 extends BitmapData {
public function scorepop_3numbers_trans_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 578
//scorepop_3numbers_trans_2 (scorepop_3numbers_trans_2)
package {
import flash.display.*;
public dynamic class scorepop_3numbers_trans_2 extends BitmapData {
public function scorepop_3numbers_trans_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 579
//scorepop_3numbers_trans_3 (scorepop_3numbers_trans_3)
package {
import flash.display.*;
public dynamic class scorepop_3numbers_trans_3 extends BitmapData {
public function scorepop_3numbers_trans_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 580
//scorepop_3numbers_trans_4 (scorepop_3numbers_trans_4)
package {
import flash.display.*;
public dynamic class scorepop_3numbers_trans_4 extends BitmapData {
public function scorepop_3numbers_trans_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 581
//scorepop_4numbers_trans_1 (scorepop_4numbers_trans_1)
package {
import flash.display.*;
public dynamic class scorepop_4numbers_trans_1 extends BitmapData {
public function scorepop_4numbers_trans_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 582
//scorepop_4numbers_trans_2 (scorepop_4numbers_trans_2)
package {
import flash.display.*;
public dynamic class scorepop_4numbers_trans_2 extends BitmapData {
public function scorepop_4numbers_trans_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 583
//scorepop_4numbers_trans_3 (scorepop_4numbers_trans_3)
package {
import flash.display.*;
public dynamic class scorepop_4numbers_trans_3 extends BitmapData {
public function scorepop_4numbers_trans_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 584
//scorepop_4numbers_trans_4 (scorepop_4numbers_trans_4)
package {
import flash.display.*;
public dynamic class scorepop_4numbers_trans_4 extends BitmapData {
public function scorepop_4numbers_trans_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 585
//ScoreText (ScoreText)
package {
import flash.display.*;
import flash.text.*;
public dynamic class ScoreText extends MovieClip {
public var textField:TextField;
}
}//package
Section 586
//second_level_star (second_level_star)
package {
import flash.display.*;
public dynamic class second_level_star extends BitmapData {
public function second_level_star(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 587
//select_tower_1s (select_tower_1s)
package {
import flash.media.*;
public dynamic class select_tower_1s extends Sound {
}
}//package
Section 588
//shop_apple_grey (shop_apple_grey)
package {
import flash.display.*;
public dynamic class shop_apple_grey extends BitmapData {
public function shop_apple_grey(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 589
//shop_bee_grey (shop_bee_grey)
package {
import flash.display.*;
public dynamic class shop_bee_grey extends BitmapData {
public function shop_bee_grey(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 590
//shop_fish_grey (shop_fish_grey)
package {
import flash.display.*;
public dynamic class shop_fish_grey extends BitmapData {
public function shop_fish_grey(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 591
//shop_pig_grey (shop_pig_grey)
package {
import flash.display.*;
public dynamic class shop_pig_grey extends BitmapData {
public function shop_pig_grey(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 592
//ShopInfoTexts (ShopInfoTexts)
package {
import flash.display.*;
import flash.text.*;
public dynamic class ShopInfoTexts extends MovieClip {
public var cost_txt:TextField;
public var damage_txt:TextField;
public var speed:TextField;
public var cost:TextField;
public var damage:TextField;
public var header_txt:TextField;
public var speed_txt:TextField;
public var info_txt:TextField;
}
}//package
Section 593
//snake_1s (snake_1s)
package {
import flash.media.*;
public dynamic class snake_1s extends Sound {
}
}//package
Section 594
//snake_2s (snake_2s)
package {
import flash.media.*;
public dynamic class snake_2s extends Sound {
}
}//package
Section 595
//snake_3s (snake_3s)
package {
import flash.media.*;
public dynamic class snake_3s extends Sound {
}
}//package
Section 596
//snake_die_1 (snake_die_1)
package {
import flash.display.*;
public dynamic class snake_die_1 extends BitmapData {
public function snake_die_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 597
//snake_die_2 (snake_die_2)
package {
import flash.display.*;
public dynamic class snake_die_2 extends BitmapData {
public function snake_die_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 598
//snake_die_3 (snake_die_3)
package {
import flash.display.*;
public dynamic class snake_die_3 extends BitmapData {
public function snake_die_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 599
//snake_die_4 (snake_die_4)
package {
import flash.display.*;
public dynamic class snake_die_4 extends BitmapData {
public function snake_die_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 600
//snake_die_5 (snake_die_5)
package {
import flash.display.*;
public dynamic class snake_die_5 extends BitmapData {
public function snake_die_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 601
//snake_die_6 (snake_die_6)
package {
import flash.display.*;
public dynamic class snake_die_6 extends BitmapData {
public function snake_die_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 602
//snake01 (snake01)
package {
import flash.display.*;
public dynamic class snake01 extends BitmapData {
public function snake01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 603
//snake02 (snake02)
package {
import flash.display.*;
public dynamic class snake02 extends BitmapData {
public function snake02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 604
//snake03 (snake03)
package {
import flash.display.*;
public dynamic class snake03 extends BitmapData {
public function snake03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 605
//snake04 (snake04)
package {
import flash.display.*;
public dynamic class snake04 extends BitmapData {
public function snake04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 606
//snake05 (snake05)
package {
import flash.display.*;
public dynamic class snake05 extends BitmapData {
public function snake05(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 607
//sound_off (sound_off)
package {
import flash.display.*;
public dynamic class sound_off extends BitmapData {
public function sound_off(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 608
//sound_on (sound_on)
package {
import flash.display.*;
public dynamic class sound_on extends BitmapData {
public function sound_on(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 609
//spruce (spruce)
package {
import flash.display.*;
public dynamic class spruce extends BitmapData {
public function spruce(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 610
//standard_combo (standard_combo)
package {
import flash.media.*;
public dynamic class standard_combo extends Sound {
}
}//package
Section 611
//startingarrow_1 (startingarrow_1)
package {
import flash.display.*;
public dynamic class startingarrow_1 extends BitmapData {
public function startingarrow_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 612
//startingarrow_10 (startingarrow_10)
package {
import flash.display.*;
public dynamic class startingarrow_10 extends BitmapData {
public function startingarrow_10(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 613
//startingarrow_11 (startingarrow_11)
package {
import flash.display.*;
public dynamic class startingarrow_11 extends BitmapData {
public function startingarrow_11(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 614
//startingarrow_12 (startingarrow_12)
package {
import flash.display.*;
public dynamic class startingarrow_12 extends BitmapData {
public function startingarrow_12(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 615
//startingarrow_13 (startingarrow_13)
package {
import flash.display.*;
public dynamic class startingarrow_13 extends BitmapData {
public function startingarrow_13(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 616
//startingarrow_14 (startingarrow_14)
package {
import flash.display.*;
public dynamic class startingarrow_14 extends BitmapData {
public function startingarrow_14(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 617
//startingarrow_15 (startingarrow_15)
package {
import flash.display.*;
public dynamic class startingarrow_15 extends BitmapData {
public function startingarrow_15(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 618
//startingarrow_16 (startingarrow_16)
package {
import flash.display.*;
public dynamic class startingarrow_16 extends BitmapData {
public function startingarrow_16(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 619
//startingarrow_17 (startingarrow_17)
package {
import flash.display.*;
public dynamic class startingarrow_17 extends BitmapData {
public function startingarrow_17(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 620
//startingarrow_18 (startingarrow_18)
package {
import flash.display.*;
public dynamic class startingarrow_18 extends BitmapData {
public function startingarrow_18(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 621
//startingarrow_19 (startingarrow_19)
package {
import flash.display.*;
public dynamic class startingarrow_19 extends BitmapData {
public function startingarrow_19(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 622
//startingarrow_2 (startingarrow_2)
package {
import flash.display.*;
public dynamic class startingarrow_2 extends BitmapData {
public function startingarrow_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 623
//startingarrow_20 (startingarrow_20)
package {
import flash.display.*;
public dynamic class startingarrow_20 extends BitmapData {
public function startingarrow_20(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 624
//startingarrow_21 (startingarrow_21)
package {
import flash.display.*;
public dynamic class startingarrow_21 extends BitmapData {
public function startingarrow_21(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 625
//startingarrow_22 (startingarrow_22)
package {
import flash.display.*;
public dynamic class startingarrow_22 extends BitmapData {
public function startingarrow_22(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 626
//startingarrow_23 (startingarrow_23)
package {
import flash.display.*;
public dynamic class startingarrow_23 extends BitmapData {
public function startingarrow_23(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 627
//startingarrow_3 (startingarrow_3)
package {
import flash.display.*;
public dynamic class startingarrow_3 extends BitmapData {
public function startingarrow_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 628
//startingarrow_4 (startingarrow_4)
package {
import flash.display.*;
public dynamic class startingarrow_4 extends BitmapData {
public function startingarrow_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 629
//startingarrow_5 (startingarrow_5)
package {
import flash.display.*;
public dynamic class startingarrow_5 extends BitmapData {
public function startingarrow_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 630
//startingarrow_6 (startingarrow_6)
package {
import flash.display.*;
public dynamic class startingarrow_6 extends BitmapData {
public function startingarrow_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 631
//startingarrow_7 (startingarrow_7)
package {
import flash.display.*;
public dynamic class startingarrow_7 extends BitmapData {
public function startingarrow_7(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 632
//startingarrow_8 (startingarrow_8)
package {
import flash.display.*;
public dynamic class startingarrow_8 extends BitmapData {
public function startingarrow_8(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 633
//startingarrow_9 (startingarrow_9)
package {
import flash.display.*;
public dynamic class startingarrow_9 extends BitmapData {
public function startingarrow_9(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 634
//stone1 (stone1)
package {
import flash.display.*;
public dynamic class stone1 extends BitmapData {
public function stone1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 635
//stone2 (stone2)
package {
import flash.display.*;
public dynamic class stone2 extends BitmapData {
public function stone2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 636
//stone3 (stone3)
package {
import flash.display.*;
public dynamic class stone3 extends BitmapData {
public function stone3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 637
//switcher_full_1 (switcher_full_1)
package {
import flash.display.*;
public dynamic class switcher_full_1 extends BitmapData {
public function switcher_full_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 638
//switcher_full_2 (switcher_full_2)
package {
import flash.display.*;
public dynamic class switcher_full_2 extends BitmapData {
public function switcher_full_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 639
//switcher_full_3 (switcher_full_3)
package {
import flash.display.*;
public dynamic class switcher_full_3 extends BitmapData {
public function switcher_full_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 640
//switcher_full_4 (switcher_full_4)
package {
import flash.display.*;
public dynamic class switcher_full_4 extends BitmapData {
public function switcher_full_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 641
//switcher_full_5 (switcher_full_5)
package {
import flash.display.*;
public dynamic class switcher_full_5 extends BitmapData {
public function switcher_full_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 642
//switcherbar_apple (switcherbar_apple)
package {
import flash.display.*;
public dynamic class switcherbar_apple extends BitmapData {
public function switcherbar_apple(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 643
//switcherbar_bee (switcherbar_bee)
package {
import flash.display.*;
public dynamic class switcherbar_bee extends BitmapData {
public function switcherbar_bee(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 644
//switcherbar_fish (switcherbar_fish)
package {
import flash.display.*;
public dynamic class switcherbar_fish extends BitmapData {
public function switcherbar_fish(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 645
//switcherbar_pig (switcherbar_pig)
package {
import flash.display.*;
public dynamic class switcherbar_pig extends BitmapData {
public function switcherbar_pig(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 646
//symbol_apple (symbol_apple)
package {
import flash.display.*;
public dynamic class symbol_apple extends BitmapData {
public function symbol_apple(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 647
//symbol_bee (symbol_bee)
package {
import flash.display.*;
public dynamic class symbol_bee extends BitmapData {
public function symbol_bee(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 648
//symbol_fish (symbol_fish)
package {
import flash.display.*;
public dynamic class symbol_fish extends BitmapData {
public function symbol_fish(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 649
//symbol_pig (symbol_pig)
package {
import flash.display.*;
public dynamic class symbol_pig extends BitmapData {
public function symbol_pig(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 650
//TimeText (TimeText)
package {
import flash.display.*;
import flash.text.*;
public dynamic class TimeText extends MovieClip {
public var textField:TextField;
}
}//package
Section 651
//tower_loading_1 (tower_loading_1)
package {
import flash.display.*;
public dynamic class tower_loading_1 extends BitmapData {
public function tower_loading_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 652
//tower_loading_10 (tower_loading_10)
package {
import flash.display.*;
public dynamic class tower_loading_10 extends BitmapData {
public function tower_loading_10(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 653
//tower_loading_11 (tower_loading_11)
package {
import flash.display.*;
public dynamic class tower_loading_11 extends BitmapData {
public function tower_loading_11(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 654
//tower_loading_11_1 (tower_loading_11_1)
package {
import flash.display.*;
public dynamic class tower_loading_11_1 extends BitmapData {
public function tower_loading_11_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 655
//tower_loading_11_2 (tower_loading_11_2)
package {
import flash.display.*;
public dynamic class tower_loading_11_2 extends BitmapData {
public function tower_loading_11_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 656
//tower_loading_11_3 (tower_loading_11_3)
package {
import flash.display.*;
public dynamic class tower_loading_11_3 extends BitmapData {
public function tower_loading_11_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 657
//tower_loading_11_4 (tower_loading_11_4)
package {
import flash.display.*;
public dynamic class tower_loading_11_4 extends BitmapData {
public function tower_loading_11_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 658
//tower_loading_11_5 (tower_loading_11_5)
package {
import flash.display.*;
public dynamic class tower_loading_11_5 extends BitmapData {
public function tower_loading_11_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 659
//tower_loading_11_6 (tower_loading_11_6)
package {
import flash.display.*;
public dynamic class tower_loading_11_6 extends BitmapData {
public function tower_loading_11_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 660
//tower_loading_12 (tower_loading_12)
package {
import flash.display.*;
public dynamic class tower_loading_12 extends BitmapData {
public function tower_loading_12(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 661
//tower_loading_13 (tower_loading_13)
package {
import flash.display.*;
public dynamic class tower_loading_13 extends BitmapData {
public function tower_loading_13(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 662
//tower_loading_14 (tower_loading_14)
package {
import flash.display.*;
public dynamic class tower_loading_14 extends BitmapData {
public function tower_loading_14(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 663
//tower_loading_15 (tower_loading_15)
package {
import flash.display.*;
public dynamic class tower_loading_15 extends BitmapData {
public function tower_loading_15(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 664
//tower_loading_16 (tower_loading_16)
package {
import flash.display.*;
public dynamic class tower_loading_16 extends BitmapData {
public function tower_loading_16(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 665
//tower_loading_17 (tower_loading_17)
package {
import flash.display.*;
public dynamic class tower_loading_17 extends BitmapData {
public function tower_loading_17(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 666
//tower_loading_18 (tower_loading_18)
package {
import flash.display.*;
public dynamic class tower_loading_18 extends BitmapData {
public function tower_loading_18(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 667
//tower_loading_18_1 (tower_loading_18_1)
package {
import flash.display.*;
public dynamic class tower_loading_18_1 extends BitmapData {
public function tower_loading_18_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 668
//tower_loading_18_2 (tower_loading_18_2)
package {
import flash.display.*;
public dynamic class tower_loading_18_2 extends BitmapData {
public function tower_loading_18_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 669
//tower_loading_18_3 (tower_loading_18_3)
package {
import flash.display.*;
public dynamic class tower_loading_18_3 extends BitmapData {
public function tower_loading_18_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 670
//tower_loading_18_4 (tower_loading_18_4)
package {
import flash.display.*;
public dynamic class tower_loading_18_4 extends BitmapData {
public function tower_loading_18_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 671
//tower_loading_18_5 (tower_loading_18_5)
package {
import flash.display.*;
public dynamic class tower_loading_18_5 extends BitmapData {
public function tower_loading_18_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 672
//tower_loading_18_6 (tower_loading_18_6)
package {
import flash.display.*;
public dynamic class tower_loading_18_6 extends BitmapData {
public function tower_loading_18_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 673
//tower_loading_19 (tower_loading_19)
package {
import flash.display.*;
public dynamic class tower_loading_19 extends BitmapData {
public function tower_loading_19(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 674
//tower_loading_2 (tower_loading_2)
package {
import flash.display.*;
public dynamic class tower_loading_2 extends BitmapData {
public function tower_loading_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 675
//tower_loading_20 (tower_loading_20)
package {
import flash.display.*;
public dynamic class tower_loading_20 extends BitmapData {
public function tower_loading_20(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 676
//tower_loading_21 (tower_loading_21)
package {
import flash.display.*;
public dynamic class tower_loading_21 extends BitmapData {
public function tower_loading_21(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 677
//tower_loading_22 (tower_loading_22)
package {
import flash.display.*;
public dynamic class tower_loading_22 extends BitmapData {
public function tower_loading_22(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 678
//tower_loading_23 (tower_loading_23)
package {
import flash.display.*;
public dynamic class tower_loading_23 extends BitmapData {
public function tower_loading_23(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 679
//tower_loading_23_1 (tower_loading_23_1)
package {
import flash.display.*;
public dynamic class tower_loading_23_1 extends BitmapData {
public function tower_loading_23_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 680
//tower_loading_23_2 (tower_loading_23_2)
package {
import flash.display.*;
public dynamic class tower_loading_23_2 extends BitmapData {
public function tower_loading_23_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 681
//tower_loading_23_3 (tower_loading_23_3)
package {
import flash.display.*;
public dynamic class tower_loading_23_3 extends BitmapData {
public function tower_loading_23_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 682
//tower_loading_23_4 (tower_loading_23_4)
package {
import flash.display.*;
public dynamic class tower_loading_23_4 extends BitmapData {
public function tower_loading_23_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 683
//tower_loading_23_5 (tower_loading_23_5)
package {
import flash.display.*;
public dynamic class tower_loading_23_5 extends BitmapData {
public function tower_loading_23_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 684
//tower_loading_23_6 (tower_loading_23_6)
package {
import flash.display.*;
public dynamic class tower_loading_23_6 extends BitmapData {
public function tower_loading_23_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 685
//tower_loading_3 (tower_loading_3)
package {
import flash.display.*;
public dynamic class tower_loading_3 extends BitmapData {
public function tower_loading_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 686
//tower_loading_4 (tower_loading_4)
package {
import flash.display.*;
public dynamic class tower_loading_4 extends BitmapData {
public function tower_loading_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 687
//tower_loading_5 (tower_loading_5)
package {
import flash.display.*;
public dynamic class tower_loading_5 extends BitmapData {
public function tower_loading_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 688
//tower_loading_6 (tower_loading_6)
package {
import flash.display.*;
public dynamic class tower_loading_6 extends BitmapData {
public function tower_loading_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 689
//tower_loading_7 (tower_loading_7)
package {
import flash.display.*;
public dynamic class tower_loading_7 extends BitmapData {
public function tower_loading_7(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 690
//tower_loading_8 (tower_loading_8)
package {
import flash.display.*;
public dynamic class tower_loading_8 extends BitmapData {
public function tower_loading_8(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 691
//tower_loading_9 (tower_loading_9)
package {
import flash.display.*;
public dynamic class tower_loading_9 extends BitmapData {
public function tower_loading_9(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 692
//tower_shoot_apple_1s (tower_shoot_apple_1s)
package {
import flash.media.*;
public dynamic class tower_shoot_apple_1s extends Sound {
}
}//package
Section 693
//tower_shoot_apple_2s (tower_shoot_apple_2s)
package {
import flash.media.*;
public dynamic class tower_shoot_apple_2s extends Sound {
}
}//package
Section 694
//tower_shoot_apple_3s (tower_shoot_apple_3s)
package {
import flash.media.*;
public dynamic class tower_shoot_apple_3s extends Sound {
}
}//package
Section 695
//tower_shoot_bees_1s (tower_shoot_bees_1s)
package {
import flash.media.*;
public dynamic class tower_shoot_bees_1s extends Sound {
}
}//package
Section 696
//tower_shoot_bees_2s (tower_shoot_bees_2s)
package {
import flash.media.*;
public dynamic class tower_shoot_bees_2s extends Sound {
}
}//package
Section 697
//tower_shoot_mudpig_1s (tower_shoot_mudpig_1s)
package {
import flash.media.*;
public dynamic class tower_shoot_mudpig_1s extends Sound {
}
}//package
Section 698
//tower_shoot_mudpig_2s (tower_shoot_mudpig_2s)
package {
import flash.media.*;
public dynamic class tower_shoot_mudpig_2s extends Sound {
}
}//package
Section 699
//tower_shoot_water_1s (tower_shoot_water_1s)
package {
import flash.media.*;
public dynamic class tower_shoot_water_1s extends Sound {
}
}//package
Section 700
//tower_shoot_water_2s (tower_shoot_water_2s)
package {
import flash.media.*;
public dynamic class tower_shoot_water_2s extends Sound {
}
}//package
Section 701
//towers_activated1_1s (towers_activated1_1s)
package {
import flash.media.*;
public dynamic class towers_activated1_1s extends Sound {
}
}//package
Section 702
//towers_activated2_1s (towers_activated2_1s)
package {
import flash.media.*;
public dynamic class towers_activated2_1s extends Sound {
}
}//package
Section 703
//towers_activated3_1s (towers_activated3_1s)
package {
import flash.media.*;
public dynamic class towers_activated3_1s extends Sound {
}
}//package
Section 704
//water_level2_icon (water_level2_icon)
package {
import flash.display.*;
public dynamic class water_level2_icon extends BitmapData {
public function water_level2_icon(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 705
//water_level3_icon (water_level3_icon)
package {
import flash.display.*;
public dynamic class water_level3_icon extends BitmapData {
public function water_level3_icon(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 706
//waterdrop_bigger1 (waterdrop_bigger1)
package {
import flash.display.*;
public dynamic class waterdrop_bigger1 extends BitmapData {
public function waterdrop_bigger1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 707
//wildboar_01 (wildboar_01)
package {
import flash.display.*;
public dynamic class wildboar_01 extends BitmapData {
public function wildboar_01(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 708
//wildboar_02 (wildboar_02)
package {
import flash.display.*;
public dynamic class wildboar_02 extends BitmapData {
public function wildboar_02(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 709
//wildboar_03 (wildboar_03)
package {
import flash.display.*;
public dynamic class wildboar_03 extends BitmapData {
public function wildboar_03(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 710
//wildboar_04 (wildboar_04)
package {
import flash.display.*;
public dynamic class wildboar_04 extends BitmapData {
public function wildboar_04(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 711
//wildboar_05 (wildboar_05)
package {
import flash.display.*;
public dynamic class wildboar_05 extends BitmapData {
public function wildboar_05(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 712
//wildboar_06 (wildboar_06)
package {
import flash.display.*;
public dynamic class wildboar_06 extends BitmapData {
public function wildboar_06(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 713
//wildboar_07 (wildboar_07)
package {
import flash.display.*;
public dynamic class wildboar_07 extends BitmapData {
public function wildboar_07(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 714
//wildboar_08 (wildboar_08)
package {
import flash.display.*;
public dynamic class wildboar_08 extends BitmapData {
public function wildboar_08(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 715
//wildboar_die_1 (wildboar_die_1)
package {
import flash.display.*;
public dynamic class wildboar_die_1 extends BitmapData {
public function wildboar_die_1(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 716
//wildboar_die_2 (wildboar_die_2)
package {
import flash.display.*;
public dynamic class wildboar_die_2 extends BitmapData {
public function wildboar_die_2(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 717
//wildboar_die_3 (wildboar_die_3)
package {
import flash.display.*;
public dynamic class wildboar_die_3 extends BitmapData {
public function wildboar_die_3(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 718
//wildboar_die_4 (wildboar_die_4)
package {
import flash.display.*;
public dynamic class wildboar_die_4 extends BitmapData {
public function wildboar_die_4(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 719
//wildboar_die_5 (wildboar_die_5)
package {
import flash.display.*;
public dynamic class wildboar_die_5 extends BitmapData {
public function wildboar_die_5(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 720
//wildboar_die_6 (wildboar_die_6)
package {
import flash.display.*;
public dynamic class wildboar_die_6 extends BitmapData {
public function wildboar_die_6(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 721
//wildboar_die_7 (wildboar_die_7)
package {
import flash.display.*;
public dynamic class wildboar_die_7 extends BitmapData {
public function wildboar_die_7(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 722
//wildboar_die_8 (wildboar_die_8)
package {
import flash.display.*;
public dynamic class wildboar_die_8 extends BitmapData {
public function wildboar_die_8(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 723
//wildboar_die_9 (wildboar_die_9)
package {
import flash.display.*;
public dynamic class wildboar_die_9 extends BitmapData {
public function wildboar_die_9(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 724
//winning_fanfare_2s (winning_fanfare_2s)
package {
import flash.media.*;
public dynamic class winning_fanfare_2s extends Sound {
}
}//package