Section 1
//STimer (com.fjakobs.utils.STimer)
package com.fjakobs.utils {
import flash.events.*;
import flash.utils.*;
public class STimer extends Timer {
private var _startTime:Number;
private var _paused:Boolean;// = false
private var _repeatCount:Number;
private var _initialDelay:Number;
public function STimer(_arg1:Number, _arg2:int=0){
_paused = false;
super(_arg1, _arg2);
_initialDelay = _arg1;
_repeatCount = _arg2;
_startTime = new Date().time;
addEventListener(TimerEvent.TIMER, onTimer, false, 0, true);
}
public function get initialDelay():Number{
return (_initialDelay);
}
override public function start():void{
if ((((currentCount < _repeatCount)) || ((_repeatCount == 0)))){
delay = _initialDelay;
_paused = false;
_startTime = new Date().time;
super.start();
};
}
private function onTimer(_arg1:TimerEvent):void{
_startTime = new Date().time;
delay = _initialDelay;
}
public function resume():void{
if ((((currentCount < _repeatCount)) || ((_repeatCount == 0)))){
_paused = false;
_startTime = new Date().time;
super.start();
};
}
public function get paused():Boolean{
return (_paused);
}
public function pause():void{
var _local1:Number;
if (running){
_paused = true;
stop();
_local1 = (delay - (new Date().time - _startTime));
if (_local1 < 0){
_local1 = 0;
};
trace(("PAuse" + _local1));
delay = _local1;
};
}
}
}//package com.fjakobs.utils
Section 2
//ColDetection (com.troy.collision.ColDetection)
package com.troy.collision {
import flash.geom.*;
import flash.display.*;
public class ColDetection {
public static function getCollisionRect(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:DisplayObjectContainer, _arg4:Boolean=false, _arg5:Number=0):Rectangle{
var _local6:Rectangle;
var _local7:Rectangle;
var _local8:Rectangle;
var _local9:BitmapData;
var _local10:BitmapData;
var _local11:uint;
var _local12:Rectangle;
var _local13:int;
_local6 = _arg1.getBounds(_arg3);
_local7 = _arg2.getBounds(_arg3);
_local8 = _local6.intersection(_local7);
if (_local8.size.length > 0){
if (_arg4){
_local8.width = Math.ceil(_local8.width);
_local8.height = Math.ceil(_local8.height);
_local9 = getAlphaMap(_arg1, _local8, BitmapDataChannel.RED, _arg3);
_local10 = getAlphaMap(_arg2, _local8, BitmapDataChannel.GREEN, _arg3);
_local9.draw(_local10, null, null, BlendMode.LIGHTEN);
if (_arg5 <= 0){
_local11 = 65792;
} else {
if (_arg5 > 1){
_arg5 = 1;
};
_local13 = Math.round((_arg5 * 0xFF));
_local11 = (((_local13 << 16) | (_local13 << 8)) | 0);
};
_local12 = _local9.getColorBoundsRect(_local11, _local11);
_local9.getColorBoundsRect(_local11, _local11).x = (_local12.x + _local8.x);
_local12.y = (_local12.y + _local8.y);
return (_local12);
} else {
return (_local8);
};
//unresolved jump
};
return (null);
}
public static function isColliding(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:DisplayObjectContainer, _arg4:Boolean=false, _arg5:Number=0):Boolean{
var _local6:Rectangle;
_local6 = getCollisionRect(_arg1, _arg2, _arg3, _arg4, _arg5);
if (((!((_local6 == null))) && ((_local6.size.length > 0)))){
return (true);
};
return (false);
}
public static function getCollisionPoint(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:DisplayObjectContainer, _arg4:Boolean=false, _arg5:Number=0):Point{
var _local6:Rectangle;
var _local7:Number;
var _local8:Number;
_local6 = getCollisionRect(_arg1, _arg2, _arg3, _arg4, _arg5);
if (((!((_local6 == null))) && ((_local6.size.length > 0)))){
_local7 = ((_local6.left + _local6.right) / 2);
_local8 = ((_local6.top + _local6.bottom) / 2);
return (new Point(_local7, _local8));
};
return (null);
}
private static function getAlphaMap(_arg1:DisplayObject, _arg2:Rectangle, _arg3:uint, _arg4:DisplayObjectContainer):BitmapData{
var _local5:Matrix;
var _local6:Matrix;
var _local7:BitmapData;
var _local8:BitmapData;
_local5 = _arg4.transform.concatenatedMatrix.clone();
_local5.invert();
_local6 = _arg1.transform.concatenatedMatrix.clone();
_local6.concat(_local5);
_local6.translate(-(_arg2.x), -(_arg2.y));
_local7 = new BitmapData(_arg2.width, _arg2.height, true, 0);
_local7.draw(_arg1, _local6);
_local8 = new BitmapData(_arg2.width, _arg2.height, false, 0);
_local8.copyChannel(_local7, _local7.rect, new Point(0, 0), BitmapDataChannel.ALPHA, _arg3);
return (_local8);
}
}
}//package com.troy.collision
Section 3
//PM_PRNG (de.polygonal.math.PM_PRNG)
package de.polygonal.math {
public class PM_PRNG {
public static var seed:uint = now.getTime();
public static var now:Date = new Date();
public function PM_PRNG(){
var _local1:Date;
super();
_local1 = new Date();
}
public static function nextDoubleRange(_arg1:Number, _arg2:Number):Number{
return ((_arg1 + ((_arg2 - _arg1) * nextDouble())));
}
public static function nextDouble():Number{
return ((gen() / 2147483647));
}
private static function gen():uint{
return ((seed = ((seed * 16807) % 2147483647)));
}
public static function nextIntRange(_arg1:Number, _arg2:Number):uint{
_arg1 = (_arg1 - 0.4999);
_arg2 = (_arg2 + 0.4999);
return (Math.round((_arg1 + ((_arg2 - _arg1) * nextDouble()))));
}
public static function nextInt():uint{
return (gen());
}
}
}//package de.polygonal.math
Section 4
//Bounce (fl.transitions.easing.Bounce)
package fl.transitions.easing {
public class Bounce {
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
if (_arg1 < (1 / 2.75)){
return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2));
};
if (_arg1 < (2 / 2.75)){
_arg1 = (_arg1 - (1.5 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2));
};
if (_arg1 < (2.5 / 2.75)){
_arg1 = (_arg1 - (2.25 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2));
};
_arg1 = (_arg1 - (2.625 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (((_arg3 - easeOut((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg1 < (_arg4 / 2)){
return (((easeIn((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2));
};
return ((((easeOut(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2));
}
}
}//package fl.transitions.easing
Section 5
//Strong (fl.transitions.easing.Strong)
package fl.transitions.easing {
public class Strong {
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2));
}
}
}//package fl.transitions.easing
Section 6
//Tween (fl.transitions.Tween)
package fl.transitions {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class Tween extends EventDispatcher {
private var _position:Number;// = NAN
public var prevTime:Number;// = NAN
public var prevPos:Number;// = NAN
public var isPlaying:Boolean;// = false
public var begin:Number;// = NAN
private var _fps:Number;// = NAN
private var _time:Number;// = NAN
public var change:Number;// = NAN
private var _finish:Number;// = NAN
public var looping:Boolean;// = false
private var _intervalID:uint;// = 0
public var func:Function;
private var _timer:Timer;// = null
private var _startTime:Number;// = NAN
public var prop:String;// = ""
private var _duration:Number;// = NAN
public var obj:Object;// = null
public var useSeconds:Boolean;// = false
protected static var _mc:MovieClip = new MovieClip();
public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){
isPlaying = false;
obj = null;
prop = "";
func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
};
begin = NaN;
change = NaN;
useSeconds = false;
prevTime = NaN;
prevPos = NaN;
looping = false;
_duration = NaN;
_time = NaN;
_fps = NaN;
_position = NaN;
_startTime = NaN;
_intervalID = 0;
_finish = NaN;
_timer = null;
super();
if (!arguments.length){
return;
};
this.obj = _arg1;
this.prop = _arg2;
this.begin = _arg4;
this.position = _arg4;
this.duration = _arg6;
this.useSeconds = _arg7;
if ((_arg3 is Function)){
this.func = _arg3;
};
this.finish = _arg5;
this._timer = new Timer(100);
this.start();
}
public function continueTo(_arg1:Number, _arg2:Number):void{
this.begin = this.position;
this.finish = _arg1;
if (!isNaN(_arg2)){
this.duration = _arg2;
};
this.start();
}
public function stop():void{
this.stopEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position));
}
private function fixTime():void{
if (this.useSeconds){
this._startTime = (getTimer() - (this._time * 1000));
};
}
public function set FPS(_arg1:Number):void{
var _local2:Boolean;
_local2 = this.isPlaying;
this.stopEnterFrame();
this._fps = _arg1;
if (_local2){
this.startEnterFrame();
};
}
public function get finish():Number{
return ((this.begin + this.change));
}
public function get duration():Number{
return (this._duration);
}
protected function startEnterFrame():void{
var _local1:Number;
if (isNaN(this._fps)){
_mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true);
} else {
_local1 = (1000 / this._fps);
this._timer.delay = _local1;
this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true);
this._timer.start();
};
this.isPlaying = true;
}
public function set time(_arg1:Number):void{
this.prevTime = this._time;
if (_arg1 > this.duration){
if (this.looping){
this.rewind((_arg1 - this._duration));
this.update();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position));
} else {
if (this.useSeconds){
this._time = this._duration;
this.update();
};
this.stop();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position));
};
} else {
if (_arg1 < 0){
this.rewind();
this.update();
} else {
this._time = _arg1;
this.update();
};
};
}
protected function stopEnterFrame():void{
if (isNaN(this._fps)){
_mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame);
} else {
this._timer.stop();
};
this.isPlaying = false;
}
public function getPosition(_arg1:Number=NaN):Number{
if (isNaN(_arg1)){
_arg1 = this._time;
};
return (this.func(_arg1, this.begin, this.change, this._duration));
}
public function set finish(_arg1:Number):void{
this.change = (_arg1 - this.begin);
}
public function set duration(_arg1:Number):void{
this._duration = ((_arg1)<=0) ? Infinity : _arg1;
}
public function setPosition(_arg1:Number):void{
this.prevPos = this._position;
if (this.prop.length){
this.obj[this.prop] = (this._position = _arg1);
};
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position));
}
public function resume():void{
this.fixTime();
this.startEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position));
}
public function fforward():void{
this.time = this._duration;
this.fixTime();
}
protected function onEnterFrame(_arg1:Event):void{
this.nextFrame();
}
public function get position():Number{
return (this.getPosition(this._time));
}
public function yoyo():void{
this.continueTo(this.begin, this.time);
}
public function nextFrame():void{
if (this.useSeconds){
this.time = ((getTimer() - this._startTime) / 1000);
} else {
this.time = (this._time + 1);
};
}
protected function timerHandler(_arg1:TimerEvent):void{
this.nextFrame();
_arg1.updateAfterEvent();
}
public function get FPS():Number{
return (this._fps);
}
public function rewind(_arg1:Number=0):void{
this._time = _arg1;
this.fixTime();
this.update();
}
public function set position(_arg1:Number):void{
this.setPosition(_arg1);
}
public function get time():Number{
return (this._time);
}
private function update():void{
this.setPosition(this.getPosition(this._time));
}
public function start():void{
this.rewind();
this.startEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position));
}
public function prevFrame():void{
if (!this.useSeconds){
this.time = (this._time - 1);
};
}
}
}//package fl.transitions
Section 7
//TweenEvent (fl.transitions.TweenEvent)
package fl.transitions {
import flash.events.*;
public class TweenEvent extends Event {
public var time:Number;// = NAN
public var position:Number;// = NAN
public static const MOTION_START:String = "motionStart";
public static const MOTION_STOP:String = "motionStop";
public static const MOTION_LOOP:String = "motionLoop";
public static const MOTION_CHANGE:String = "motionChange";
public static const MOTION_FINISH:String = "motionFinish";
public static const MOTION_RESUME:String = "motionResume";
public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){
time = NaN;
position = NaN;
super(_arg1, _arg4, _arg5);
this.time = _arg2;
this.position = _arg3;
}
override public function clone():Event{
return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable));
}
}
}//package fl.transitions
Section 8
//Linear (gs.easing.Linear)
package gs.easing {
public class Linear {
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
}
}//package gs.easing
Section 9
//Quad (gs.easing.Quad)
package gs.easing {
public class Quad {
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((_arg3 * _arg1) * _arg1) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2));
};
--_arg1;
return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2));
}
}
}//package gs.easing
Section 10
//TweenEvent (gs.events.TweenEvent)
package gs.events {
import flash.events.*;
public class TweenEvent extends Event {
public var info:Object;
public static const UPDATE:String = "update";
public static const START:String = "start";
public static const version:Number = 0.9;
public static const COMPLETE:String = "complete";
public function TweenEvent(_arg1:String, _arg2:Object=null, _arg3:Boolean=false, _arg4:Boolean=false){
super(_arg1, _arg3, _arg4);
this.info = _arg2;
}
override public function clone():Event{
return (new TweenEvent(this.type, this.info, this.bubbles, this.cancelable));
}
}
}//package gs.events
Section 11
//AutoAlphaPlugin (gs.plugins.AutoAlphaPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class AutoAlphaPlugin extends TweenPlugin {
protected var _tweenVisible:Boolean;
protected var _tween:TweenLite;
protected var _visible:Boolean;
protected var _target:Object;
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function AutoAlphaPlugin(){
this.propName = "autoAlpha";
this.overwriteProps = ["alpha", "visible"];
this.onComplete = onCompleteTween;
}
override public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
if (((!((_target.visible == true))) && (_tweenVisible))){
_target.visible = true;
};
}
public function onCompleteTween():void{
if (((((_tweenVisible) && (!((_tween.vars.runBackwards == true))))) && ((_tween.ease == _tween.vars.ease)))){
_target.visible = _visible;
};
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
_target = _arg1;
_tween = _arg3;
_visible = Boolean(!((_arg2 == 0)));
_tweenVisible = true;
addTween(_arg1, "alpha", _arg1.alpha, _arg2, "alpha");
return (true);
}
override public function killProps(_arg1:Object):void{
super.killProps(_arg1);
_tweenVisible = !(Boolean(("visible" in _arg1)));
}
}
}//package gs.plugins
Section 12
//BevelFilterPlugin (gs.plugins.BevelFilterPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.filters.*;
public class BevelFilterPlugin extends FilterPlugin {
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function BevelFilterPlugin(){
this.propName = "bevelFilter";
this.overwriteProps = ["bevelFilter"];
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
_target = _arg1;
_type = BevelFilter;
initFilter(_arg2, new BevelFilter(0, 0, 0xFFFFFF, 0.5, 0, 0.5, 2, 2, 0, ((_arg2.quality) || (2))));
return (true);
}
}
}//package gs.plugins
Section 13
//BezierPlugin (gs.plugins.BezierPlugin)
package gs.plugins {
import gs.*;
import gs.utils.tween.*;
public class BezierPlugin extends TweenPlugin {
protected var _future:Object;
protected var _orient:Boolean;
protected var _orientData:Array;
protected var _beziers:Object;
protected var _target:Object;
protected static const _RAD2DEG:Number = 57.2957795130823;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function BezierPlugin(){
_future = {};
super();
this.propName = "bezier";
this.overwriteProps = [];
}
override public function set changeFactor(_arg1:Number):void{
var _local2:int;
var _local3:String;
var _local4:Object;
var _local5:Number;
var _local6:uint;
var _local7:Number;
var _local8:int;
var _local9:Object;
var _local10:Boolean;
var _local11:Number;
var _local12:Number;
var _local13:Array;
var _local14:Number;
if (_arg1 == 1){
for (_local3 in _beziers) {
_local2 = (_beziers[_local3].length - 1);
_target[_local3] = _beziers[_local3][_local2][2];
};
} else {
for (_local3 in _beziers) {
_local6 = _beziers[_local3].length;
if (_arg1 < 0){
_local2 = 0;
} else {
if (_arg1 >= 1){
_local2 = (_local6 - 1);
} else {
_local2 = int((_local6 * _arg1));
};
};
_local5 = ((_arg1 - (_local2 * (1 / _local6))) * _local6);
_local4 = _beziers[_local3][_local2];
if (this.round){
_local7 = (_local4[0] + (_local5 * (((2 * (1 - _local5)) * (_local4[1] - _local4[0])) + (_local5 * (_local4[2] - _local4[0])))));
_local8 = ((_local7)<0) ? -1 : 1;
_target[_local3] = ((((_local7 % 1) * _local8))>0.5) ? (int(_local7) + _local8) : int(_local7);
} else {
_target[_local3] = (_local4[0] + (_local5 * (((2 * (1 - _local5)) * (_local4[1] - _local4[0])) + (_local5 * (_local4[2] - _local4[0])))));
};
};
};
if (_orient){
_local9 = _target;
_local10 = this.round;
_target = _future;
this.round = false;
_orient = false;
this.changeFactor = (_arg1 + 0.01);
_target = _local9;
this.round = _local10;
_orient = true;
_local2 = 0;
while (_local2 < _orientData.length) {
_local13 = _orientData[_local2];
_local14 = ((_local13[3]) || (0));
_local11 = (_future[_local13[0]] - _target[_local13[0]]);
_local12 = (_future[_local13[1]] - _target[_local13[1]]);
_target[_local13[2]] = ((Math.atan2(_local12, _local11) * _RAD2DEG) + _local14);
_local2++;
};
};
}
protected function init(_arg1:TweenLite, _arg2:Array, _arg3:Boolean):void{
var _local4:Object;
var _local5:int;
var _local6:String;
_target = _arg1.target;
if (_arg1.exposedVars.orientToBezier == true){
_orientData = [["x", "y", "rotation", 0]];
_orient = true;
} else {
if ((_arg1.exposedVars.orientToBezier is Array)){
_orientData = _arg1.exposedVars.orientToBezier;
_orient = true;
};
};
_local4 = {};
_local5 = 0;
while (_local5 < _arg2.length) {
for (_local6 in _arg2[_local5]) {
if (_local4[_local6] == undefined){
_local4[_local6] = [_arg1.target[_local6]];
};
if (typeof(_arg2[_local5][_local6]) == "number"){
_local4[_local6].push(_arg2[_local5][_local6]);
} else {
_local4[_local6].push((_arg1.target[_local6] + Number(_arg2[_local5][_local6])));
};
};
_local5++;
};
for (_local6 in _local4) {
this.overwriteProps[this.overwriteProps.length] = _local6;
if (_arg1.exposedVars[_local6] != undefined){
if (typeof(_arg1.exposedVars[_local6]) == "number"){
_local4[_local6].push(_arg1.exposedVars[_local6]);
} else {
_local4[_local6].push((_arg1.target[_local6] + Number(_arg1.exposedVars[_local6])));
};
delete _arg1.exposedVars[_local6];
_local5 = (_arg1.tweens.length - 1);
while (_local5 > -1) {
if (_arg1.tweens[_local5].name == _local6){
_arg1.tweens.splice(_local5, 1);
};
_local5--;
};
};
};
_beziers = parseBeziers(_local4, _arg3);
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
if (!(_arg2 is Array)){
return (false);
};
init(_arg3, (_arg2 as Array), false);
return (true);
}
override public function killProps(_arg1:Object):void{
var _local2:String;
for (_local2 in _beziers) {
if ((_local2 in _arg1)){
delete _beziers[_local2];
};
};
super.killProps(_arg1);
}
public static function parseBeziers(_arg1:Object, _arg2:Boolean=false):Object{
var _local3:int;
var _local4:Array;
var _local5:Object;
var _local6:String;
var _local7:Object;
_local7 = {};
if (_arg2){
for (_local6 in _arg1) {
_local4 = _arg1[_local6];
_local5 = [];
_local7[_local6] = _local5;
if (_local4.length > 2){
_local5[_local5.length] = [_local4[0], (_local4[1] - ((_local4[2] - _local4[0]) / 4)), _local4[1]];
_local3 = 1;
while (_local3 < (_local4.length - 1)) {
_local5[_local5.length] = [_local4[_local3], (_local4[_local3] + (_local4[_local3] - _local5[(_local3 - 1)][1])), _local4[(_local3 + 1)]];
_local3++;
};
} else {
_local5[_local5.length] = [_local4[0], ((_local4[0] + _local4[1]) / 2), _local4[1]];
};
};
} else {
for (_local6 in _arg1) {
_local4 = _arg1[_local6];
_local5 = [];
_local7[_local6] = _local5;
if (_local4.length > 3){
_local5[_local5.length] = [_local4[0], _local4[1], ((_local4[1] + _local4[2]) / 2)];
_local3 = 2;
while (_local3 < (_local4.length - 2)) {
_local5[_local5.length] = [_local5[(_local3 - 2)][2], _local4[_local3], ((_local4[_local3] + _local4[(_local3 + 1)]) / 2)];
_local3++;
};
_local5[_local5.length] = [_local5[(_local5.length - 1)][2], _local4[(_local4.length - 2)], _local4[(_local4.length - 1)]];
} else {
if (_local4.length == 3){
_local5[_local5.length] = [_local4[0], _local4[1], _local4[2]];
} else {
if (_local4.length == 2){
_local5[_local5.length] = [_local4[0], ((_local4[0] + _local4[1]) / 2), _local4[1]];
};
};
};
};
};
return (_local7);
}
}
}//package gs.plugins
Section 14
//BezierThroughPlugin (gs.plugins.BezierThroughPlugin)
package gs.plugins {
import gs.*;
public class BezierThroughPlugin extends BezierPlugin {
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function BezierThroughPlugin(){
this.propName = "bezierThrough";
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
if (!(_arg2 is Array)){
return (false);
};
init(_arg3, (_arg2 as Array), true);
return (true);
}
}
}//package gs.plugins
Section 15
//BlurFilterPlugin (gs.plugins.BlurFilterPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.filters.*;
public class BlurFilterPlugin extends FilterPlugin {
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function BlurFilterPlugin(){
this.propName = "blurFilter";
this.overwriteProps = ["blurFilter"];
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
_target = _arg1;
_type = BlurFilter;
initFilter(_arg2, new BlurFilter(0, 0, ((_arg2.quality) || (2))));
return (true);
}
}
}//package gs.plugins
Section 16
//ColorMatrixFilterPlugin (gs.plugins.ColorMatrixFilterPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.filters.*;
public class ColorMatrixFilterPlugin extends FilterPlugin {
protected var _matrix:Array;
protected var _matrixTween:EndArrayPlugin;
public static const API:Number = 1;
public static const VERSION:Number = 1.01;
protected static var _lumG:Number = 0.71516;
protected static var _lumR:Number = 0.212671;
protected static var _idMatrix:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
protected static var _lumB:Number = 0.072169;
public function ColorMatrixFilterPlugin(){
this.propName = "colorMatrixFilter";
this.overwriteProps = ["colorMatrixFilter"];
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
var _local4:Object;
var _local5:Array;
_target = _arg1;
_type = ColorMatrixFilter;
_local4 = _arg2;
initFilter({}, new ColorMatrixFilter(_idMatrix.slice()));
_matrix = ColorMatrixFilter(_filter).matrix;
_local5 = [];
if (((!((_local4.matrix == null))) && ((_local4.matrix is Array)))){
_local5 = _local4.matrix;
} else {
if (_local4.relative == true){
_local5 = _matrix.slice();
} else {
_local5 = _idMatrix.slice();
};
_local5 = setBrightness(_local5, _local4.brightness);
_local5 = setContrast(_local5, _local4.contrast);
_local5 = setHue(_local5, _local4.hue);
_local5 = setSaturation(_local5, _local4.saturation);
_local5 = setThreshold(_local5, _local4.threshold);
if (!isNaN(_local4.colorize)){
_local5 = colorize(_local5, _local4.colorize, _local4.amount);
};
};
_matrixTween = new EndArrayPlugin();
_matrixTween.init(_matrix, _local5);
return (true);
}
override public function set changeFactor(_arg1:Number):void{
_matrixTween.changeFactor = _arg1;
ColorMatrixFilter(_filter).matrix = _matrix;
super.changeFactor = _arg1;
}
public static function setSaturation(_arg1:Array, _arg2:Number):Array{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Array;
if (isNaN(_arg2)){
return (_arg1);
};
_local3 = (1 - _arg2);
_local4 = (_local3 * _lumR);
_local5 = (_local3 * _lumG);
_local6 = (_local3 * _lumB);
_local7 = [(_local4 + _arg2), _local5, _local6, 0, 0, _local4, (_local5 + _arg2), _local6, 0, 0, _local4, _local5, (_local6 + _arg2), 0, 0, 0, 0, 0, 1, 0];
return (applyMatrix(_local7, _arg1));
}
public static function setHue(_arg1:Array, _arg2:Number):Array{
var _local3:Number;
var _local4:Number;
var _local5:Array;
if (isNaN(_arg2)){
return (_arg1);
};
_arg2 = (_arg2 * (Math.PI / 180));
_local3 = Math.cos(_arg2);
_local4 = Math.sin(_arg2);
_local5 = [((_lumR + (_local3 * (1 - _lumR))) + (_local4 * -(_lumR))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * -(_lumG))), ((_lumB + (_local3 * -(_lumB))) + (_local4 * (1 - _lumB))), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * 0.143)), ((_lumG + (_local3 * (1 - _lumG))) + (_local4 * 0.14)), ((_lumB + (_local3 * -(_lumB))) + (_local4 * -0.283)), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * -((1 - _lumR)))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * _lumG)), ((_lumB + (_local3 * (1 - _lumB))) + (_local4 * _lumB)), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];
return (applyMatrix(_local5, _arg1));
}
public static function setThreshold(_arg1:Array, _arg2:Number):Array{
var _local3:Array;
if (isNaN(_arg2)){
return (_arg1);
};
_local3 = [(_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), 0, 0, 0, 1, 0];
return (applyMatrix(_local3, _arg1));
}
public static function applyMatrix(_arg1:Array, _arg2:Array):Array{
var _local3:Array;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:int;
if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){
return (_arg2);
};
_local3 = [];
_local4 = 0;
_local5 = 0;
_local6 = 0;
while (_local6 < 4) {
_local7 = 0;
while (_local7 < 5) {
if (_local7 == 4){
_local5 = _arg1[(_local4 + 4)];
} else {
_local5 = 0;
};
_local3[(_local4 + _local7)] = (((((_arg1[_local4] * _arg2[_local7]) + (_arg1[(_local4 + 1)] * _arg2[(_local7 + 5)])) + (_arg1[(_local4 + 2)] * _arg2[(_local7 + 10)])) + (_arg1[(_local4 + 3)] * _arg2[(_local7 + 15)])) + _local5);
_local7++;
};
_local4 = (_local4 + 5);
_local6++;
};
return (_local3);
}
public static function colorize(_arg1:Array, _arg2:Number, _arg3:Number=1):Array{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Array;
if (isNaN(_arg2)){
return (_arg1);
};
if (isNaN(_arg3)){
_arg3 = 1;
};
_local4 = (((_arg2 >> 16) & 0xFF) / 0xFF);
_local5 = (((_arg2 >> 8) & 0xFF) / 0xFF);
_local6 = ((_arg2 & 0xFF) / 0xFF);
_local7 = (1 - _arg3);
_local8 = [(_local7 + ((_arg3 * _local4) * _lumR)), ((_arg3 * _local4) * _lumG), ((_arg3 * _local4) * _lumB), 0, 0, ((_arg3 * _local5) * _lumR), (_local7 + ((_arg3 * _local5) * _lumG)), ((_arg3 * _local5) * _lumB), 0, 0, ((_arg3 * _local6) * _lumR), ((_arg3 * _local6) * _lumG), (_local7 + ((_arg3 * _local6) * _lumB)), 0, 0, 0, 0, 0, 1, 0];
return (applyMatrix(_local8, _arg1));
}
public static function setBrightness(_arg1:Array, _arg2:Number):Array{
if (isNaN(_arg2)){
return (_arg1);
};
_arg2 = ((_arg2 * 100) - 100);
return (applyMatrix([1, 0, 0, 0, _arg2, 0, 1, 0, 0, _arg2, 0, 0, 1, 0, _arg2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], _arg1));
}
public static function setContrast(_arg1:Array, _arg2:Number):Array{
var _local3:Array;
if (isNaN(_arg2)){
return (_arg1);
};
_arg2 = (_arg2 + 0.01);
_local3 = [_arg2, 0, 0, 0, (128 * (1 - _arg2)), 0, _arg2, 0, 0, (128 * (1 - _arg2)), 0, 0, _arg2, 0, (128 * (1 - _arg2)), 0, 0, 0, 1, 0];
return (applyMatrix(_local3, _arg1));
}
}
}//package gs.plugins
Section 17
//DropShadowFilterPlugin (gs.plugins.DropShadowFilterPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.filters.*;
public class DropShadowFilterPlugin extends FilterPlugin {
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function DropShadowFilterPlugin(){
this.propName = "dropShadowFilter";
this.overwriteProps = ["dropShadowFilter"];
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
_target = _arg1;
_type = DropShadowFilter;
initFilter(_arg2, new DropShadowFilter(0, 45, 0, 0, 0, 0, 1, ((_arg2.quality) || (2)), _arg2.inner, _arg2.knockout, _arg2.hideObject));
return (true);
}
}
}//package gs.plugins
Section 18
//EndArrayPlugin (gs.plugins.EndArrayPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import gs.utils.tween.*;
public class EndArrayPlugin extends TweenPlugin {
protected var _info:Array;
protected var _a:Array;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function EndArrayPlugin(){
_info = [];
super();
this.propName = "endArray";
this.overwriteProps = ["endArray"];
}
override public function set changeFactor(_arg1:Number):void{
var _local2:int;
var _local3:ArrayTweenInfo;
var _local4:Number;
var _local5:int;
if (this.round){
_local2 = (_info.length - 1);
while (_local2 > -1) {
_local3 = _info[_local2];
_local4 = (_local3.start + (_local3.change * _arg1));
_local5 = ((_local4)<0) ? -1 : 1;
_a[_local3.index] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4);
_local2--;
};
} else {
_local2 = (_info.length - 1);
while (_local2 > -1) {
_local3 = _info[_local2];
_a[_local3.index] = (_local3.start + (_local3.change * _arg1));
_local2--;
};
};
}
public function init(_arg1:Array, _arg2:Array):void{
var _local3:int;
_a = _arg1;
_local3 = (_arg2.length - 1);
while (_local3 > -1) {
if (((!((_arg1[_local3] == _arg2[_local3]))) && (!((_arg1[_local3] == null))))){
_info[_info.length] = new ArrayTweenInfo(_local3, _a[_local3], (_arg2[_local3] - _a[_local3]));
};
_local3--;
};
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){
return (false);
};
init((_arg1 as Array), _arg2);
return (true);
}
}
}//package gs.plugins
Section 19
//FilterPlugin (gs.plugins.FilterPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.filters.*;
import gs.utils.tween.*;
public class FilterPlugin extends TweenPlugin {
protected var _index:int;
protected var _filter:BitmapFilter;
protected var _type:Class;
protected var _remove:Boolean;
protected var _target:Object;
public static const VERSION:Number = 1.03;
public static const API:Number = 1;
override public function set changeFactor(_arg1:Number):void{
var _local2:int;
var _local3:TweenInfo;
var _local4:Array;
_local4 = _target.filters;
_local2 = (_tweens.length - 1);
while (_local2 > -1) {
_local3 = _tweens[_local2];
_local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1));
_local2--;
};
if (!(_local4[_index] is _type)){
_index = (_local4.length - 1);
_local2 = (_local4.length - 1);
while (_local2 > -1) {
if ((_local4[_local2] is _type)){
_index = _local2;
break;
};
_local2--;
};
};
_local4[_index] = _filter;
_target.filters = _local4;
}
public function onCompleteTween():void{
var _local1:int;
var _local2:Array;
if (_remove){
_local2 = _target.filters;
if (!(_local2[_index] is _type)){
_local1 = (_local2.length - 1);
while (_local1 > -1) {
if ((_local2[_local1] is _type)){
_local2.splice(_local1, 1);
break;
};
_local1--;
};
} else {
_local2.splice(_index, 1);
};
_target.filters = _local2;
};
}
protected function initFilter(_arg1:Object, _arg2:BitmapFilter):void{
var _local3:Array;
var _local4:String;
var _local5:int;
var _local6:HexColorsPlugin;
var _local7:Object;
_local3 = _target.filters;
_index = -1;
if (_arg1.index != null){
_index = _arg1.index;
} else {
_local5 = (_local3.length - 1);
while (_local5 > -1) {
if ((_local3[_local5] is _type)){
_index = _local5;
break;
};
_local5--;
};
};
if ((((((_index == -1)) || ((_local3[_index] == null)))) || ((_arg1.addFilter == true)))){
_index = ((_arg1.index)!=null) ? _arg1.index : _local3.length;
_local3[_index] = _arg2;
_target.filters = _local3;
};
_filter = _local3[_index];
_remove = Boolean((_arg1.remove == true));
if (_remove){
this.onComplete = onCompleteTween;
};
_local7 = ((_arg1.isTV)==true) ? _arg1.exposedVars : _arg1;
for (_local4 in _local7) {
if (((((((((!((_local4 in _filter))) || ((_filter[_local4] == _local7[_local4])))) || ((_local4 == "remove")))) || ((_local4 == "index")))) || ((_local4 == "addFilter")))){
} else {
if ((((((_local4 == "color")) || ((_local4 == "highlightColor")))) || ((_local4 == "shadowColor")))){
_local6 = new HexColorsPlugin();
_local6.initColor(_filter, _local4, _filter[_local4], _local7[_local4]);
_tweens[_tweens.length] = new TweenInfo(_local6, "changeFactor", 0, 1, _local4, false);
} else {
if ((((((((_local4 == "quality")) || ((_local4 == "inner")))) || ((_local4 == "knockout")))) || ((_local4 == "hideObject")))){
_filter[_local4] = _local7[_local4];
} else {
addTween(_filter, _local4, _filter[_local4], _local7[_local4], _local4);
};
};
};
};
}
}
}//package gs.plugins
Section 20
//FramePlugin (gs.plugins.FramePlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class FramePlugin extends TweenPlugin {
public var frame:int;
protected var _target:MovieClip;
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function FramePlugin(){
this.propName = "frame";
this.overwriteProps = ["frame"];
this.round = true;
}
override public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
_target.gotoAndStop(this.frame);
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
if (((!((_arg1 is MovieClip))) || (isNaN(_arg2)))){
return (false);
};
_target = (_arg1 as MovieClip);
addTween(this, "frame", _target.currentFrame, _arg2, "frame");
return (true);
}
}
}//package gs.plugins
Section 21
//GlowFilterPlugin (gs.plugins.GlowFilterPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.filters.*;
public class GlowFilterPlugin extends FilterPlugin {
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function GlowFilterPlugin(){
this.propName = "glowFilter";
this.overwriteProps = ["glowFilter"];
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
_target = _arg1;
_type = GlowFilter;
initFilter(_arg2, new GlowFilter(0xFFFFFF, 0, 0, 0, ((_arg2.strength) || (1)), ((_arg2.quality) || (2)), _arg2.inner, _arg2.knockout));
return (true);
}
}
}//package gs.plugins
Section 22
//HexColorsPlugin (gs.plugins.HexColorsPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class HexColorsPlugin extends TweenPlugin {
protected var _colors:Array;
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function HexColorsPlugin(){
this.propName = "hexColors";
this.overwriteProps = [];
}
override public function set changeFactor(_arg1:Number):void{
var _local2:int;
var _local3:Array;
_local2 = (_colors.length - 1);
while (_local2 > -1) {
_local3 = _colors[_local2];
_local3[0][_local3[1]] = ((((_local3[2] + (_arg1 * _local3[3])) << 16) | ((_local3[4] + (_arg1 * _local3[5])) << 8)) | (_local3[6] + (_arg1 * _local3[7])));
_local2--;
};
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
var _local4:String;
for (_local4 in _arg2) {
initColor(_arg1, _local4, uint(_arg1[_local4]), uint(_arg2[_local4]));
};
return (true);
}
override public function killProps(_arg1:Object):void{
var _local2:int;
_local2 = (_colors.length - 1);
while (_local2 > -1) {
if (_arg1[_colors[_local2][1]] != undefined){
_colors.splice(_local2, 1);
};
_local2--;
};
super.killProps(_arg1);
}
public function initColor(_arg1:Object, _arg2:String, _arg3:uint, _arg4:uint):void{
var _local5:Number;
var _local6:Number;
var _local7:Number;
if (_arg3 != _arg4){
if (_colors == null){
_colors = [];
};
_local5 = (_arg3 >> 16);
_local6 = ((_arg3 >> 8) & 0xFF);
_local7 = (_arg3 & 0xFF);
_colors[_colors.length] = [_arg1, _arg2, _local5, ((_arg4 >> 16) - _local5), _local6, (((_arg4 >> 8) & 0xFF) - _local6), _local7, ((_arg4 & 0xFF) - _local7)];
this.overwriteProps[this.overwriteProps.length] = _arg2;
};
}
}
}//package gs.plugins
Section 23
//RemoveTintPlugin (gs.plugins.RemoveTintPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class RemoveTintPlugin extends TintPlugin {
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function RemoveTintPlugin(){
this.propName = "removeTint";
}
}
}//package gs.plugins
Section 24
//RoundPropsPlugin (gs.plugins.RoundPropsPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class RoundPropsPlugin extends TweenPlugin {
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function RoundPropsPlugin(){
this.propName = "roundProps";
this.overwriteProps = [];
this.round = true;
}
public function add(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number):void{
addTween(_arg1, _arg2, _arg3, (_arg3 + _arg4), _arg2);
this.overwriteProps[this.overwriteProps.length] = _arg2;
}
}
}//package gs.plugins
Section 25
//ShortRotationPlugin (gs.plugins.ShortRotationPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class ShortRotationPlugin extends TweenPlugin {
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function ShortRotationPlugin(){
this.propName = "shortRotation";
this.overwriteProps = [];
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
var _local4:String;
if (typeof(_arg2) == "number"){
trace("WARNING: You appear to be using the old shortRotation syntax. Instead of passing a number, please pass an object with properties that correspond to the rotations values For example, TweenMax.to(mc, 2, {shortRotation:{rotationX:-170, rotationY:25}})");
return (false);
};
for (_local4 in _arg2) {
initRotation(_arg1, _local4, _arg1[_local4], _arg2[_local4]);
};
return (true);
}
public function initRotation(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number):void{
var _local5:Number;
_local5 = ((_arg4 - _arg3) % 360);
if (((_arg4 - _arg3) % 360) != (_local5 % 180)){
_local5 = ((_local5)<0) ? (_local5 + 360) : (_local5 - 360);
};
addTween(_arg1, _arg2, _arg3, (_arg3 + _local5), _arg2);
this.overwriteProps[this.overwriteProps.length] = _arg2;
}
}
}//package gs.plugins
Section 26
//TintPlugin (gs.plugins.TintPlugin)
package gs.plugins {
import flash.geom.*;
import flash.display.*;
import gs.*;
import gs.utils.tween.*;
public class TintPlugin extends TweenPlugin {
protected var _ct:ColorTransform;
protected var _target:DisplayObject;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
protected static var _props:Array = ["redMultiplier", "greenMultiplier", "blueMultiplier", "alphaMultiplier", "redOffset", "greenOffset", "blueOffset", "alphaOffset"];
public function TintPlugin(){
this.propName = "tint";
this.overwriteProps = ["tint"];
}
override public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
_target.transform.colorTransform = _ct;
}
public function init(_arg1:DisplayObject, _arg2:ColorTransform):void{
var _local3:int;
var _local4:String;
_target = _arg1;
_ct = _target.transform.colorTransform;
_local3 = (_props.length - 1);
while (_local3 > -1) {
_local4 = _props[_local3];
if (_ct[_local4] != _arg2[_local4]){
_tweens[_tweens.length] = new TweenInfo(_ct, _local4, _ct[_local4], (_arg2[_local4] - _ct[_local4]), "tint", false);
};
_local3--;
};
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
var _local4:ColorTransform;
if (!(_arg1 is DisplayObject)){
return (false);
};
_local4 = new ColorTransform();
if (((!((_arg2 == null))) && (!((_arg3.exposedVars.removeTint == true))))){
_local4.color = uint(_arg2);
};
if (((!((_arg3.exposedVars.alpha == undefined))) || (!((_arg3.exposedVars.autoAlpha == undefined))))){
_local4.alphaMultiplier = ((_arg3.exposedVars.alpha)!=undefined) ? _arg3.exposedVars.alpha : _arg3.exposedVars.autoAlpha;
_arg3.killVars({alpha:1, autoAlpha:1});
} else {
_local4.alphaMultiplier = _arg1.alpha;
};
init((_arg1 as DisplayObject), _local4);
return (true);
}
}
}//package gs.plugins
Section 27
//TweenPlugin (gs.plugins.TweenPlugin)
package gs.plugins {
import gs.*;
import gs.utils.tween.*;
public class TweenPlugin {
public var overwriteProps:Array;
protected var _tweens:Array;
public var round:Boolean;
public var onComplete:Function;
public var propName:String;
protected var _changeFactor:Number;// = 0
public static const VERSION:Number = 1.03;
public static const API:Number = 1;
public function TweenPlugin(){
_tweens = [];
_changeFactor = 0;
super();
}
protected function updateTweens(_arg1:Number):void{
var _local2:int;
var _local3:TweenInfo;
var _local4:Number;
var _local5:int;
if (this.round){
_local2 = (_tweens.length - 1);
while (_local2 > -1) {
_local3 = _tweens[_local2];
_local4 = (_local3.start + (_local3.change * _arg1));
_local5 = ((_local4)<0) ? -1 : 1;
_local3.target[_local3.property] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4);
_local2--;
};
} else {
_local2 = (_tweens.length - 1);
while (_local2 > -1) {
_local3 = _tweens[_local2];
_local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1));
_local2--;
};
};
}
public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
_changeFactor = _arg1;
}
protected function addTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4, _arg5:String=null):void{
var _local6:Number;
if (_arg4 != null){
_local6 = ((typeof(_arg4))=="number") ? (_arg4 - _arg3) : Number(_arg4);
if (_local6 != 0){
_tweens[_tweens.length] = new TweenInfo(_arg1, _arg2, _arg3, _local6, ((_arg5) || (_arg2)), false);
};
};
}
public function killProps(_arg1:Object):void{
var _local2:int;
_local2 = (this.overwriteProps.length - 1);
while (_local2 > -1) {
if ((this.overwriteProps[_local2] in _arg1)){
this.overwriteProps.splice(_local2, 1);
};
_local2--;
};
_local2 = (_tweens.length - 1);
while (_local2 > -1) {
if ((_tweens[_local2].name in _arg1)){
_tweens.splice(_local2, 1);
};
_local2--;
};
}
public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
addTween(_arg1, this.propName, _arg1[this.propName], _arg2, this.propName);
return (true);
}
public function get changeFactor():Number{
return (_changeFactor);
}
public static function activate(_arg1:Array):Boolean{
var _local2:int;
var _local3:Object;
_local2 = (_arg1.length - 1);
while (_local2 > -1) {
_local3 = new (_arg1[_local2]);
TweenLite.plugins[_local3.propName] = _arg1[_local2];
_local2--;
};
return (true);
}
}
}//package gs.plugins
Section 28
//VisiblePlugin (gs.plugins.VisiblePlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class VisiblePlugin extends TweenPlugin {
protected var _tween:TweenLite;
protected var _visible:Boolean;
protected var _target:Object;
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function VisiblePlugin(){
this.propName = "visible";
this.overwriteProps = ["visible"];
this.onComplete = onCompleteTween;
}
override public function set changeFactor(_arg1:Number):void{
if (_target.visible != true){
_target.visible = true;
};
}
public function onCompleteTween():void{
if (((!((_tween.vars.runBackwards == true))) && ((_tween.ease == _tween.vars.ease)))){
_target.visible = _visible;
};
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
_target = _arg1;
_tween = _arg3;
_visible = Boolean(_arg2);
return (true);
}
}
}//package gs.plugins
Section 29
//VolumePlugin (gs.plugins.VolumePlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.media.*;
public class VolumePlugin extends TweenPlugin {
protected var _st:SoundTransform;
protected var _target:Object;
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function VolumePlugin(){
this.propName = "volume";
this.overwriteProps = ["volume"];
}
override public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
_target.soundTransform = _st;
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
if (((isNaN(_arg2)) || (!(_arg1.hasOwnProperty("soundTransform"))))){
return (false);
};
_target = _arg1;
_st = _target.soundTransform;
addTween(_st, "volume", _st.volume, _arg2, "volume");
return (Boolean(!((_tweens.length == 0))));
}
}
}//package gs.plugins
Section 30
//ArrayTweenInfo (gs.utils.tween.ArrayTweenInfo)
package gs.utils.tween {
public class ArrayTweenInfo {
public var change:Number;
public var index:uint;
public var start:Number;
public function ArrayTweenInfo(_arg1:uint, _arg2:Number, _arg3:Number){
this.index = _arg1;
this.start = _arg2;
this.change = _arg3;
}
}
}//package gs.utils.tween
Section 31
//TweenInfo (gs.utils.tween.TweenInfo)
package gs.utils.tween {
public class TweenInfo {
public var start:Number;
public var name:String;
public var change:Number;
public var target:Object;
public var property:String;
public var isPlugin:Boolean;
public function TweenInfo(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Boolean){
this.target = _arg1;
this.property = _arg2;
this.start = _arg3;
this.change = _arg4;
this.name = _arg5;
this.isPlugin = _arg6;
}
}
}//package gs.utils.tween
Section 32
//OverwriteManager (gs.OverwriteManager)
package gs {
import gs.utils.tween.*;
import flash.utils.*;
import flash.errors.*;
public class OverwriteManager {
public static const ALL:int = 1;
public static const NONE:int = 0;
public static const AUTO:int = 2;
public static const CONCURRENT:int = 3;
public static const version:Number = 3.11;
public static var mode:int;
public static var enabled:Boolean;
public static function killVars(_arg1:Object, _arg2:Object, _arg3:Array):void{
var _local4:int;
var _local5:String;
var _local6:TweenInfo;
_local4 = (_arg3.length - 1);
while (_local4 > -1) {
_local6 = _arg3[_local4];
if ((_local6.name in _arg1)){
_arg3.splice(_local4, 1);
} else {
if (((_local6.isPlugin) && ((_local6.name == "_MULTIPLE_")))){
_local6.target.killProps(_arg1);
if (_local6.target.overwriteProps.length == 0){
_arg3.splice(_local4, 1);
};
};
};
_local4--;
};
for (_local5 in _arg1) {
delete _arg2[_local5];
};
}
public static function manageOverwrites(_arg1:TweenLite, _arg2:Array):void{
var _local3:Object;
var _local4:int;
var _local5:Number;
var _local6:Array;
var _local7:int;
var _local8:TweenLite;
var _local9:Array;
var _local10:Object;
var _local11:int;
var _local12:TweenInfo;
var _local13:Array;
_local3 = _arg1.vars;
_local4 = ((_local3.overwrite)==undefined) ? mode : int(_local3.overwrite);
if ((((_local4 < 2)) || ((_arg2 == null)))){
return;
};
_local5 = _arg1.startTime;
_local6 = [];
_local7 = (_arg2.length - 1);
while (_local7 > -1) {
_local8 = _arg2[_local7];
if (((((!((_local8 == _arg1))) && ((_local8.startTime <= _local5)))) && (((_local8.startTime + ((_local8.duration * 1000) / _local8.combinedTimeScale)) > _local5)))){
_local6[_local6.length] = _local8;
};
_local7--;
};
if ((((_local6.length == 0)) || ((_arg1.tweens.length == 0)))){
return;
};
if (_local4 == AUTO){
_local9 = _arg1.tweens;
_local10 = {};
_local7 = (_local9.length - 1);
while (_local7 > -1) {
_local12 = _local9[_local7];
if (((_local12.isPlugin) && ((_local12.name == "_MULTIPLE_")))){
_local13 = _local12.target.overwriteProps;
_local11 = (_local13.length - 1);
while (_local11 > -1) {
_local10[_local13[_local11]] = true;
_local11--;
};
_local10[_local12.target.propName] = true;
} else {
_local10[_local12.name] = true;
};
_local7--;
};
_local7 = (_local6.length - 1);
while (_local7 > -1) {
killVars(_local10, _local6[_local7].exposedVars, _local6[_local7].tweens);
_local7--;
};
} else {
_local7 = (_local6.length - 1);
while (_local7 > -1) {
_local6[_local7].enabled = false;
_local7--;
};
};
}
public static function init(_arg1:int=2):int{
if (TweenLite.version < 10.04){
trace("TweenLite warning: Your TweenLite class needs to be updated to work with OverwriteManager (or you may need to clear your ASO files). Please download and install the latest version from http://www.tweenlite.com.");
};
TweenLite.overwriteManager = OverwriteManager;
mode = _arg1;
enabled = true;
return (mode);
}
}
}//package gs
Section 33
//TweenLite (gs.TweenLite)
package gs {
import flash.display.*;
import flash.events.*;
import gs.utils.tween.*;
import gs.plugins.*;
import flash.utils.*;
public class TweenLite {
public var delay:Number;
protected var _hasUpdate:Boolean;
protected var _hasPlugins:Boolean;
public var started:Boolean;
public var initted:Boolean;
public var active:Boolean;
public var startTime:Number;
public var target:Object;
public var duration:Number;
public var gc:Boolean;
public var vars:Object;
public var ease:Function;
public var tweens:Array;
public var exposedVars:Object;
public var combinedTimeScale:Number;
public var initTime:Number;
public static const version:Number = 10.06;
private static var _timer:Timer = new Timer(2000);
public static var defaultEase:Function = TweenLite.easeOut;
public static var plugins:Object = {};
public static var currentTime:uint;
public static var masterList:Dictionary = new Dictionary(false);
protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, roundProps:1, onStart:1, onStartParams:1, persist:1, renderOnStart:1, proxiedEase:1, easeParams:1, yoyo:1, loop:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, orientToBezier:1};
public static var killDelayedCallsTo:Function = TweenLite.killTweensOf;
public static var timingSprite:Sprite = new Sprite();
public static var overwriteManager:Object;
private static var _tlInitted:Boolean;
public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){
var _local4:int;
super();
if (_arg1 == null){
return;
};
if (!_tlInitted){
TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin]);
currentTime = getTimer();
timingSprite.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true);
if (overwriteManager == null){
overwriteManager = {mode:1, enabled:false};
};
_timer.addEventListener("timer", killGarbage, false, 0, true);
_timer.start();
_tlInitted = true;
};
this.vars = _arg3;
this.duration = ((_arg2) || (0.001));
this.delay = ((_arg3.delay) || (0));
this.combinedTimeScale = ((_arg3.timeScale) || (1));
this.active = Boolean((((_arg2 == 0)) && ((this.delay == 0))));
this.target = _arg1;
if (typeof(this.vars.ease) != "function"){
this.vars.ease = defaultEase;
};
if (this.vars.easeParams != null){
this.vars.proxiedEase = this.vars.ease;
this.vars.ease = easeProxy;
};
this.ease = this.vars.ease;
this.exposedVars = ((this.vars.isTV)==true) ? this.vars.exposedVars : this.vars;
this.tweens = [];
this.initTime = currentTime;
this.startTime = (this.initTime + (this.delay * 1000));
_local4 = ((((_arg3.overwrite == undefined)) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite);
if (((!((_arg1 in masterList))) || ((_local4 == 1)))){
masterList[_arg1] = [this];
} else {
masterList[_arg1].push(this);
};
if ((((((this.vars.runBackwards == true)) && (!((this.vars.renderOnStart == true))))) || (this.active))){
initTweenVals();
if (this.active){
render((this.startTime + 1));
} else {
render(this.startTime);
};
if (((((!((this.exposedVars.visible == null))) && ((this.vars.runBackwards == true)))) && ((this.target is DisplayObject)))){
this.target.visible = this.exposedVars.visible;
};
};
}
public function set enabled(_arg1:Boolean):void{
var _local2:Array;
var _local3:Boolean;
var _local4:int;
if (_arg1){
if (!(this.target in masterList)){
masterList[this.target] = [this];
} else {
_local2 = masterList[this.target];
_local4 = (_local2.length - 1);
while (_local4 > -1) {
if (_local2[_local4] == this){
_local3 = true;
break;
};
_local4--;
};
if (!_local3){
_local2[_local2.length] = this;
};
};
};
this.gc = (_arg1) ? false : true;
if (this.gc){
this.active = false;
} else {
this.active = this.started;
};
}
public function clear():void{
this.tweens = [];
this.vars = (this.exposedVars = {ease:this.vars.ease});
_hasUpdate = false;
}
public function render(_arg1:uint):void{
var _local2:Number;
var _local3:Number;
var _local4:TweenInfo;
var _local5:int;
_local2 = ((_arg1 - this.startTime) * 0.001);
if (_local2 >= this.duration){
_local2 = this.duration;
_local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0;
} else {
_local3 = this.ease(_local2, 0, 1, this.duration);
};
_local5 = (this.tweens.length - 1);
while (_local5 > -1) {
_local4 = this.tweens[_local5];
_local4.target[_local4.property] = (_local4.start + (_local3 * _local4.change));
_local5--;
};
if (_hasUpdate){
this.vars.onUpdate.apply(null, this.vars.onUpdateParams);
};
if (_local2 == this.duration){
complete(true);
};
}
public function activate():void{
this.started = (this.active = true);
if (!this.initted){
initTweenVals();
};
if (this.vars.onStart != null){
this.vars.onStart.apply(null, this.vars.onStartParams);
};
if (this.duration == 0.001){
this.startTime = (this.startTime - 1);
};
}
public function get enabled():Boolean{
return ((this.gc) ? false : true);
}
public function initTweenVals():void{
var _local1:String;
var _local2:int;
var _local3:*;
var _local4:TweenInfo;
for (_local1 in this.exposedVars) {
if ((_local1 in _reservedProps)){
} else {
if ((_local1 in plugins)){
_local3 = new (plugins[_local1]);
if (_local3.onInitTween(this.target, this.exposedVars[_local1], this) == false){
this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false);
} else {
this.tweens[this.tweens.length] = new TweenInfo(_local3, "changeFactor", 0, 1, ((_local3.overwriteProps.length)==1) ? _local3.overwriteProps[0] : "_MULTIPLE_", true);
_hasPlugins = true;
};
} else {
this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false);
};
};
};
if (this.vars.runBackwards == true){
_local2 = (this.tweens.length - 1);
while (_local2 > -1) {
_local4 = this.tweens[_local2];
this.tweens[_local2].start = (_local4.start + _local4.change);
_local4.change = -(_local4.change);
_local2--;
};
};
if (this.vars.onUpdate != null){
_hasUpdate = true;
};
if (((TweenLite.overwriteManager.enabled) && ((this.target in masterList)))){
overwriteManager.manageOverwrites(this, masterList[this.target]);
};
this.initted = true;
}
protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams)));
}
public function killVars(_arg1:Object):void{
if (overwriteManager.enabled){
overwriteManager.killVars(_arg1, this.exposedVars, this.tweens);
};
}
public function complete(_arg1:Boolean=false):void{
var _local2:int;
if (!_arg1){
if (!this.initted){
initTweenVals();
};
this.startTime = (currentTime - ((this.duration * 1000) / this.combinedTimeScale));
render(currentTime);
return;
};
if (_hasPlugins){
_local2 = (this.tweens.length - 1);
while (_local2 > -1) {
if (((this.tweens[_local2].isPlugin) && (!((this.tweens[_local2].target.onComplete == null))))){
this.tweens[_local2].target.onComplete();
};
_local2--;
};
};
if (this.vars.persist != true){
this.enabled = false;
};
if (this.vars.onComplete != null){
this.vars.onComplete.apply(null, this.vars.onCompleteParams);
};
}
public static function updateAll(_arg1:Event=null):void{
var _local2:uint;
var _local3:Dictionary;
var _local4:Array;
var _local5:int;
var _local6:TweenLite;
_local2 = (currentTime = getTimer());
_local3 = masterList;
for each (_local4 in _local3) {
_local5 = (_local4.length - 1);
while (_local5 > -1) {
_local6 = _local4[_local5];
if (_local6.active){
_local6.render(_local2);
} else {
if (_local6.gc){
_local4.splice(_local5, 1);
} else {
if (_local2 >= _local6.startTime){
_local6.activate();
_local6.render(_local2);
};
};
};
_local5--;
};
};
}
public static function removeTween(_arg1:TweenLite, _arg2:Boolean=true):void{
if (_arg1 != null){
if (_arg2){
_arg1.clear();
};
_arg1.enabled = false;
};
}
public static function killTweensOf(_arg1:Object=null, _arg2:Boolean=false):void{
var _local3:Array;
var _local4:int;
var _local5:TweenLite;
if (((!((_arg1 == null))) && ((_arg1 in masterList)))){
_local3 = masterList[_arg1];
_local4 = (_local3.length - 1);
while (_local4 > -1) {
_local5 = _local3[_local4];
if (((_arg2) && (!(_local5.gc)))){
_local5.complete(false);
};
_local5.clear();
_local4--;
};
delete masterList[_arg1];
};
}
public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
_arg3.runBackwards = true;
return (new TweenLite(_arg1, _arg2, _arg3));
}
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
protected static function killGarbage(_arg1:TimerEvent):void{
var _local2:Dictionary;
var _local3:Object;
_local2 = masterList;
for (_local3 in _local2) {
if (_local2[_local3].length == 0){
delete _local2[_local3];
};
};
}
public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null):TweenLite{
return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, overwrite:0}));
}
public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
return (new TweenLite(_arg1, _arg2, _arg3));
}
}
}//package gs
Section 34
//TweenMax (gs.TweenMax)
package gs {
import flash.events.*;
import gs.utils.tween.*;
import gs.plugins.*;
import gs.events.*;
import flash.utils.*;
public class TweenMax extends TweenLite implements IEventDispatcher {
protected var _dispatcher:EventDispatcher;
protected var _callbacks:Object;
public var pauseTime:Number;
protected var _repeatCount:Number;
protected var _timeScale:Number;
public static const version:Number = 10.07;
public static var removeTween:Function = TweenLite.removeTween;
private static var _overwriteMode:int = (OverwriteManager.enabled) ? OverwriteManager.mode : OverwriteManager.init();
;
protected static var _pausedTweens:Dictionary = new Dictionary(false);
protected static var _globalTimeScale:Number = 1;
public static var killTweensOf:Function = TweenLite.killTweensOf;
public static var killDelayedCallsTo:Function = TweenLite.killTweensOf;
private static var _activatedPlugins:Boolean = TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin, HexColorsPlugin, BlurFilterPlugin, ColorMatrixFilterPlugin, BevelFilterPlugin, DropShadowFilterPlugin, GlowFilterPlugin, RoundPropsPlugin, BezierPlugin, BezierThroughPlugin, ShortRotationPlugin]);
private static var _versionCheck:Boolean = ((TweenLite.version)<10.06) ? trace("TweenMax error! Please update your TweenLite class or try deleting your ASO files. TweenMax requires a more recent version. Download updates at http://www.TweenMax.com.") : true;
;
public function TweenMax(_arg1:Object, _arg2:Number, _arg3:Object){
super(_arg1, _arg2, _arg3);
if (((!((this.combinedTimeScale == 1))) && ((this.target is TweenMax)))){
_timeScale = 1;
this.combinedTimeScale = _globalTimeScale;
} else {
_timeScale = this.combinedTimeScale;
this.combinedTimeScale = (this.combinedTimeScale * _globalTimeScale);
};
if (((!((this.combinedTimeScale == 1))) && (!((this.delay == 0))))){
this.startTime = (this.initTime + (this.delay * (1000 / this.combinedTimeScale)));
};
if (((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))){
initDispatcher();
if ((((_arg2 == 0)) && ((this.delay == 0)))){
onUpdateDispatcher();
onCompleteDispatcher();
};
};
_repeatCount = 0;
if (((!(isNaN(this.vars.yoyo))) || (!(isNaN(this.vars.loop))))){
this.vars.persist = true;
};
}
override public function set enabled(_arg1:Boolean):void{
if (!_arg1){
_pausedTweens[this] = null;
delete _pausedTweens[this];
};
super.enabled = _arg1;
if (_arg1){
this.combinedTimeScale = (_timeScale * _globalTimeScale);
};
}
public function set reversed(_arg1:Boolean):void{
if (this.reversed != _arg1){
reverse();
};
}
override public function render(_arg1:uint):void{
var _local2:Number;
var _local3:Number;
var _local4:TweenInfo;
var _local5:int;
_local2 = (((_arg1 - this.startTime) * 0.001) * this.combinedTimeScale);
if (_local2 >= this.duration){
_local2 = this.duration;
_local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0;
} else {
_local3 = this.ease(_local2, 0, 1, this.duration);
};
_local5 = (this.tweens.length - 1);
while (_local5 > -1) {
_local4 = this.tweens[_local5];
_local4.target[_local4.property] = (_local4.start + (_local3 * _local4.change));
_local5--;
};
if (_hasUpdate){
this.vars.onUpdate.apply(null, this.vars.onUpdateParams);
};
if (_local2 == this.duration){
complete(true);
};
}
protected function adjustStartValues():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:TweenInfo;
var _local6:int;
_local1 = this.progress;
if (_local1 != 0){
_local2 = this.ease(_local1, 0, 1, 1);
_local3 = (1 / (1 - _local2));
_local6 = (this.tweens.length - 1);
while (_local6 > -1) {
_local5 = this.tweens[_local6];
_local4 = (_local5.start + _local5.change);
if (_local5.isPlugin){
_local5.change = ((_local4 - _local2) * _local3);
} else {
_local5.change = ((_local4 - _local5.target[_local5.property]) * _local3);
};
_local5.start = (_local4 - _local5.change);
_local6--;
};
};
}
public function get timeScale():Number{
return (_timeScale);
}
public function restart(_arg1:Boolean=false):void{
if (_arg1){
this.initTime = currentTime;
this.startTime = (currentTime + (this.delay * (1000 / this.combinedTimeScale)));
} else {
this.startTime = currentTime;
this.initTime = (currentTime - (this.delay * (1000 / this.combinedTimeScale)));
};
_repeatCount = 0;
if (this.target != this.vars.onComplete){
render(this.startTime);
};
this.pauseTime = NaN;
_pausedTweens[this] = null;
delete _pausedTweens[this];
this.enabled = true;
}
public function get paused():Boolean{
return (!(isNaN(this.pauseTime)));
}
public function killProperties(_arg1:Array):void{
var _local2:Object;
var _local3:int;
_local2 = {};
_local3 = (_arg1.length - 1);
while (_local3 > -1) {
_local2[_arg1[_local3]] = true;
_local3--;
};
killVars(_local2);
}
public function resume():void{
this.enabled = true;
if (!isNaN(this.pauseTime)){
this.initTime = (this.initTime + (currentTime - this.pauseTime));
this.startTime = (this.initTime + (this.delay * (1000 / this.combinedTimeScale)));
this.pauseTime = NaN;
if (((!(this.started)) && ((currentTime >= this.startTime)))){
activate();
} else {
this.active = this.started;
};
_pausedTweens[this] = null;
delete _pausedTweens[this];
};
}
override public function complete(_arg1:Boolean=false):void{
if (((((!(isNaN(this.vars.yoyo))) && ((((_repeatCount < this.vars.yoyo)) || ((this.vars.yoyo == 0)))))) || (((!(isNaN(this.vars.loop))) && ((((_repeatCount < this.vars.loop)) || ((this.vars.loop == 0)))))))){
_repeatCount++;
if (!isNaN(this.vars.yoyo)){
this.ease = ((this.vars.ease)==this.ease) ? reverseEase : this.vars.ease;
};
this.startTime = (_arg1) ? (this.startTime + (this.duration * (1000 / this.combinedTimeScale))) : currentTime;
this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale)));
} else {
if (this.vars.persist == true){
pause();
};
};
super.complete(_arg1);
}
public function invalidate(_arg1:Boolean=true):void{
var _local2:Number;
if (this.initted){
_local2 = this.progress;
if (((!(_arg1)) && (!((_local2 == 0))))){
this.progress = 0;
};
this.tweens = [];
_hasPlugins = false;
this.exposedVars = ((this.vars.isTV)==true) ? this.vars.exposedProps : this.vars;
initTweenVals();
_timeScale = ((this.vars.timeScale) || (1));
this.combinedTimeScale = (_timeScale * _globalTimeScale);
this.delay = ((this.vars.delay) || (0));
if (isNaN(this.pauseTime)){
this.startTime = (this.initTime + ((this.delay * 1000) / this.combinedTimeScale));
};
if (((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))){
if (_dispatcher != null){
this.vars.onStart = _callbacks.onStart;
this.vars.onUpdate = _callbacks.onUpdate;
this.vars.onComplete = _callbacks.onComplete;
_dispatcher = null;
};
initDispatcher();
};
if (_local2 != 0){
if (_arg1){
adjustStartValues();
} else {
this.progress = _local2;
};
};
};
}
public function get progress():Number{
var _local1:Number;
var _local2:Number;
_local1 = (isNaN(this.pauseTime)) ? currentTime : this.pauseTime;
_local2 = (((((_local1 - this.initTime) * 0.001) - (this.delay / this.combinedTimeScale)) / this.duration) * this.combinedTimeScale);
if (_local2 > 1){
return (1);
};
if (_local2 < 0){
return (0);
};
return (_local2);
}
public function willTrigger(_arg1:String):Boolean{
if (_dispatcher == null){
return (false);
};
return (_dispatcher.willTrigger(_arg1));
}
public function dispatchEvent(_arg1:Event):Boolean{
if (_dispatcher == null){
return (false);
};
return (_dispatcher.dispatchEvent(_arg1));
}
public function get reversed():Boolean{
return ((this.ease == reverseEase));
}
protected function onStartDispatcher(... _args):void{
if (_callbacks.onStart != null){
_callbacks.onStart.apply(null, this.vars.onStartParams);
};
_dispatcher.dispatchEvent(new TweenEvent(TweenEvent.START));
}
public function setDestination(_arg1:String, _arg2, _arg3:Boolean=true):void{
var _local4:Number;
var _local5:int;
var _local6:Object;
var _local7:Array;
var _local8:Boolean;
var _local9:Array;
var _local10:Object;
var _local11:int;
var _local12:Array;
_local4 = this.progress;
if (this.initted){
if (((!(_arg3)) && (!((_local4 == 0))))){
_local5 = (this.tweens.length - 1);
while (_local5 > -1) {
if (this.tweens[_local5].name == _arg1){
this.tweens[_local5].target[this.tweens[_local5].property] = this.tweens[_local5].start;
};
_local5--;
};
};
_local6 = this.vars;
_local7 = this.tweens;
_local8 = _hasPlugins;
this.tweens = [];
this.vars = (this.exposedVars = {});
this.vars[_arg1] = _arg2;
initTweenVals();
if (((!((this.ease == reverseEase))) && ((_local6.ease is Function)))){
this.ease = _local6.ease;
};
if (((_arg3) && (!((_local4 == 0))))){
adjustStartValues();
};
_local9 = this.tweens;
this.vars = _local6;
this.tweens = _local7;
_local10 = {};
_local5 = (_local9.length - 1);
while (_local5 > -1) {
if (_local9[_local5][4] == "_MULTIPLE_"){
_local12 = _local9[_local5][0].overwriteProps;
_local11 = (_local12.length - 1);
while (_local11 > -1) {
_local10[_local12[_local11]] = true;
_local11--;
};
} else {
_local10[_local9[_local5][4]] = true;
};
_local5--;
};
killVars(_local10);
this.tweens = this.tweens.concat(_local9);
_hasPlugins = Boolean(((_local8) || (_hasPlugins)));
};
this.vars[_arg1] = _arg2;
}
public function set timeScale(_arg1:Number):void{
if (_arg1 < 1E-5){
_arg1 = (_timeScale = 1E-5);
} else {
_timeScale = _arg1;
_arg1 = (_arg1 * _globalTimeScale);
};
this.initTime = ((currentTime - ((((currentTime - this.initTime) - (this.delay * (1000 / this.combinedTimeScale))) * this.combinedTimeScale) * (1 / _arg1))) - (this.delay * (1000 / _arg1)));
if (this.startTime != 999999999999999){
this.startTime = (this.initTime + (this.delay * (1000 / _arg1)));
};
this.combinedTimeScale = _arg1;
}
public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{
if (_dispatcher != null){
_dispatcher.removeEventListener(_arg1, _arg2, _arg3);
};
}
override public function initTweenVals():void{
var _local1:int;
var _local2:int;
var _local3:String;
var _local4:String;
var _local5:Array;
var _local6:Object;
var _local7:TweenInfo;
if (this.exposedVars.startAt != null){
this.exposedVars.startAt.overwrite = 0;
new TweenMax(this.target, 0, this.exposedVars.startAt);
};
super.initTweenVals();
if ((((this.exposedVars.roundProps is Array)) && (!((TweenLite.plugins.roundProps == null))))){
_local5 = this.exposedVars.roundProps;
_local1 = (_local5.length - 1);
while (_local1 > -1) {
_local3 = _local5[_local1];
_local2 = (this.tweens.length - 1);
while (_local2 > -1) {
_local7 = this.tweens[_local2];
if (_local7.name == _local3){
if (_local7.isPlugin){
_local7.target.round = true;
} else {
if (_local6 == null){
_local6 = new TweenLite.plugins.roundProps();
_local6.add(_local7.target, _local3, _local7.start, _local7.change);
_hasPlugins = true;
this.tweens[_local2] = new TweenInfo(_local6, "changeFactor", 0, 1, _local3, true);
} else {
_local6.add(_local7.target, _local3, _local7.start, _local7.change);
this.tweens.splice(_local2, 1);
};
};
} else {
if (((((_local7.isPlugin) && ((_local7.name == "_MULTIPLE_")))) && (!(_local7.target.round)))){
_local4 = ((" " + _local7.target.overwriteProps.join(" ")) + " ");
if (_local4.indexOf(((" " + _local3) + " ")) != -1){
_local7.target.round = true;
};
};
};
_local2--;
};
_local1--;
};
};
}
protected function initDispatcher():void{
var _local1:Object;
var _local2:String;
if (_dispatcher == null){
_dispatcher = new EventDispatcher(this);
_callbacks = {onStart:this.vars.onStart, onUpdate:this.vars.onUpdate, onComplete:this.vars.onComplete};
if (this.vars.isTV == true){
this.vars = this.vars.clone();
} else {
_local1 = {};
for (_local2 in this.vars) {
_local1[_local2] = this.vars[_local2];
};
this.vars = _local1;
};
this.vars.onStart = onStartDispatcher;
this.vars.onComplete = onCompleteDispatcher;
if ((this.vars.onStartListener is Function)){
_dispatcher.addEventListener(TweenEvent.START, this.vars.onStartListener, false, 0, true);
};
if ((this.vars.onUpdateListener is Function)){
_dispatcher.addEventListener(TweenEvent.UPDATE, this.vars.onUpdateListener, false, 0, true);
this.vars.onUpdate = onUpdateDispatcher;
_hasUpdate = true;
};
if ((this.vars.onCompleteListener is Function)){
_dispatcher.addEventListener(TweenEvent.COMPLETE, this.vars.onCompleteListener, false, 0, true);
};
};
}
protected function onUpdateDispatcher(... _args):void{
if (_callbacks.onUpdate != null){
_callbacks.onUpdate.apply(null, this.vars.onUpdateParams);
};
_dispatcher.dispatchEvent(new TweenEvent(TweenEvent.UPDATE));
}
public function set progress(_arg1:Number):void{
this.startTime = (currentTime - ((this.duration * _arg1) * 1000));
this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale)));
if (!this.started){
activate();
};
render(currentTime);
if (!isNaN(this.pauseTime)){
this.pauseTime = currentTime;
this.startTime = 999999999999999;
this.active = false;
};
}
public function reverse(_arg1:Boolean=true, _arg2:Boolean=true):void{
var _local3:Number;
this.ease = ((this.vars.ease)==this.ease) ? reverseEase : this.vars.ease;
_local3 = this.progress;
if (((_arg1) && ((_local3 > 0)))){
this.startTime = (currentTime - ((((1 - _local3) * this.duration) * 1000) / this.combinedTimeScale));
this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale)));
};
if (_arg2 != false){
if (_local3 < 1){
resume();
} else {
restart();
};
};
}
public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{
if (_dispatcher == null){
initDispatcher();
};
if ((((_arg1 == TweenEvent.UPDATE)) && (!((this.vars.onUpdate == onUpdateDispatcher))))){
this.vars.onUpdate = onUpdateDispatcher;
_hasUpdate = true;
};
_dispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5);
}
public function set paused(_arg1:Boolean):void{
if (_arg1){
pause();
} else {
resume();
};
}
public function hasEventListener(_arg1:String):Boolean{
if (_dispatcher == null){
return (false);
};
return (_dispatcher.hasEventListener(_arg1));
}
public function pause():void{
if (isNaN(this.pauseTime)){
this.pauseTime = currentTime;
this.startTime = 999999999999999;
this.enabled = false;
_pausedTweens[this] = this;
};
}
public function reverseEase(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (this.vars.ease((_arg4 - _arg1), _arg2, _arg3, _arg4));
}
protected function onCompleteDispatcher(... _args):void{
if (_callbacks.onComplete != null){
_callbacks.onComplete.apply(null, this.vars.onCompleteParams);
};
_dispatcher.dispatchEvent(new TweenEvent(TweenEvent.COMPLETE));
}
public static function set globalTimeScale(_arg1:Number):void{
setGlobalTimeScale(_arg1);
}
public static function pauseAll(_arg1:Boolean=true, _arg2:Boolean=false):void{
changePause(true, _arg1, _arg2);
}
public static function killAllDelayedCalls(_arg1:Boolean=false):void{
killAll(_arg1, false, true);
}
public static function setGlobalTimeScale(_arg1:Number):void{
var _local2:Dictionary;
var _local3:int;
var _local4:Array;
if (_arg1 < 1E-5){
_arg1 = 1E-5;
};
_local2 = masterList;
_globalTimeScale = _arg1;
for each (_local4 in _local2) {
_local3 = (_local4.length - 1);
while (_local3 > -1) {
if ((_local4[_local3] is TweenMax)){
_local4[_local3].timeScale = (_local4[_local3].timeScale * 1);
};
_local3--;
};
};
}
public static function get globalTimeScale():Number{
return (_globalTimeScale);
}
public static function getTweensOf(_arg1:Object):Array{
var _local2:Array;
var _local3:Array;
var _local4:TweenLite;
var _local5:int;
_local2 = masterList[_arg1];
_local3 = [];
if (_local2 != null){
_local5 = (_local2.length - 1);
while (_local5 > -1) {
if (!_local2[_local5].gc){
_local3[_local3.length] = _local2[_local5];
};
_local5--;
};
};
for each (_local4 in _pausedTweens) {
if (_local4.target == _arg1){
_local3[_local3.length] = _local4;
};
};
return (_local3);
}
public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null, _arg4:Boolean=false):TweenMax{
return (new TweenMax(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, persist:_arg4, overwrite:0}));
}
public static function isTweening(_arg1:Object):Boolean{
var _local2:Array;
var _local3:int;
_local2 = getTweensOf(_arg1);
_local3 = (_local2.length - 1);
while (_local3 > -1) {
if (((_local2[_local3].active) && (!(_local2[_local3].gc)))){
return (true);
};
_local3--;
};
return (false);
}
public static function changePause(_arg1:Boolean, _arg2:Boolean=true, _arg3:Boolean=false):void{
var _local4:Array;
var _local5:Boolean;
var _local6:int;
_local4 = getAllTweens();
_local6 = (_local4.length - 1);
while (_local6 > -1) {
_local5 = (_local4[_local6].target == _local4[_local6].vars.onComplete);
if ((((_local4[_local6] is TweenMax)) && ((((_local5 == _arg3)) || (!((_local5 == _arg2))))))){
_local4[_local6].paused = _arg1;
};
_local6--;
};
}
public static function killAllTweens(_arg1:Boolean=false):void{
killAll(_arg1, true, false);
}
public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{
_arg3.runBackwards = true;
return (new TweenMax(_arg1, _arg2, _arg3));
}
public static function killAll(_arg1:Boolean=false, _arg2:Boolean=true, _arg3:Boolean=true):void{
var _local4:Array;
var _local5:Boolean;
var _local6:int;
_local4 = getAllTweens();
_local6 = (_local4.length - 1);
while (_local6 > -1) {
_local5 = (_local4[_local6].target == _local4[_local6].vars.onComplete);
if ((((_local5 == _arg3)) || (!((_local5 == _arg2))))){
if (_arg1){
_local4[_local6].complete(false);
_local4[_local6].clear();
} else {
TweenLite.removeTween(_local4[_local6], true);
};
};
_local6--;
};
}
public static function getAllTweens():Array{
var _local1:Dictionary;
var _local2:Array;
var _local3:Array;
var _local4:int;
var _local5:TweenLite;
_local1 = masterList;
_local2 = [];
for each (_local3 in _local1) {
_local4 = (_local3.length - 1);
while (_local4 > -1) {
if (!_local3[_local4].gc){
_local2[_local2.length] = _local3[_local4];
};
_local4--;
};
};
for each (_local5 in _pausedTweens) {
_local2[_local2.length] = _local5;
};
return (_local2);
}
public static function resumeAll(_arg1:Boolean=true, _arg2:Boolean=false):void{
changePause(false, _arg1, _arg2);
}
public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{
return (new TweenMax(_arg1, _arg2, _arg3));
}
}
}//package gs
Section 35
//MochiAd (mochi.as3.MochiAd)
package mochi.as3 {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
public class MochiAd {
public static function getVersion():String{
return ("3.02 as3");
}
public static function showClickAwayAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_timeout:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var sendHostProgress:Boolean;
var options = _arg1;
DEFAULTS = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{
}, ad_finished:function ():void{
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
sendHostProgress = false;
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
return;
};
_local1 = this.parent._mochiad_ctr;
_local2 = (getTimer() - this.started);
_local3 = false;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
_local3 = true;
chk.started = getTimer();
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (this.root == null){
_local3 = true;
};
if (_local3){
delete this.onEnterFrame;
};
};
doOnEnterFrame(chk);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function _allowDomains(_arg1:String):String{
var _local2:String;
_local2 = _arg1.split("/")[2].split(":")[0];
if (Security.sandboxType == "application"){
return (_local2);
};
Security.allowDomain("*");
Security.allowDomain(_local2);
Security.allowInsecureDomain("*");
Security.allowInsecureDomain(_local2);
return (_local2);
}
public static function unload(_arg1:Object):Boolean{
if (((_arg1.clip) && (_arg1.clip._mochiad))){
_arg1 = _arg1.clip;
};
if (_arg1.origFrameRate != undefined){
_arg1.stage.frameRate = _arg1.origFrameRate;
};
if (!_arg1._mochiad){
return (false);
};
if (_arg1._mochiad._containerLCName != undefined){
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"});
};
if (_arg1._mochiad.onUnload){
_arg1._mochiad.onUnload();
};
delete _arg1._mochiad_loaded;
delete _arg1._mochiad;
return (true);
}
public static function showInterLevelAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_msec:Number;
var ad_timeout:Number;
var fadeout_time:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
clip = options.clip;
ad_msec = 11000;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
MochiAd._cleanup(mc);
options.ad_finished();
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
_local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
mc.unloadAd = function ():void{
MochiAd.unload(clip);
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = (_arg1 - 250);
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Number;
var _local3:Boolean;
var _local4:Number;
if (!this.parent){
delete this.onEnterFrame;
delete this.fadeFunction;
return;
};
_local1 = this.parent._mochiad_ctr;
_local2 = (getTimer() - this.started);
_local3 = false;
if (!chk.showing){
_local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local4 > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if (_local2 > chk.ad_timeout){
options.ad_failed();
_local3 = true;
};
};
};
if (_local2 > chk.ad_msec){
_local3 = true;
};
if (_local3){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function _parseOptions(_arg1:Object, _arg2:Object):Object{
var _local3:Object;
var _local4:String;
var _local5:Array;
var _local6:Number;
var _local7:Array;
_local3 = {};
for (_local4 in _arg2) {
_local3[_local4] = _arg2[_local4];
};
if (_arg1){
for (_local4 in _arg1) {
_local3[_local4] = _arg1[_local4];
};
};
if (_local3.clip == undefined){
throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite."));
};
_arg1 = _local3.clip.loaderInfo.parameters.mochiad_options;
if (_arg1){
_local5 = _arg1.split("&");
_local6 = 0;
while (_local6 < _local5.length) {
_local7 = _local5[_local6].split("=");
_local3[unescape(_local7[0])] = unescape(_local7[1]);
_local6++;
};
};
if (_local3.id == "test"){
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
};
return (_local3);
}
public static function _cleanup(_arg1:Object):void{
var idx:Number;
var k:String;
var lc:LocalConnection;
var f:Function;
var mc = _arg1;
if (("lc" in mc)){
lc = mc.lc;
f = function ():void{
try {
lc.client = null;
lc.close();
} catch(e:Error) {
};
};
setTimeout(f, 0);
};
idx = DisplayObjectContainer(mc).numChildren;
while (idx > 0) {
idx = (idx - 1);
DisplayObjectContainer(mc).removeChildAt(idx);
};
for (k in mc) {
delete mc[k];
};
}
public static function load(_arg1:Object):MovieClip{
var DEFAULTS:Object;
var clip:Object;
var depth:Number;
var mc:MovieClip;
var wh:Array;
var lv:URLVariables;
var k:String;
var server:String;
var hostname:String;
var lc:LocalConnection;
var name:String;
var loader:Loader;
var g:Function;
var req:URLRequest;
var v:Object;
var options = _arg1;
DEFAULTS = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
clip = options.clip;
if (!MochiAd._isNetworkAvailable()){
return (null);
};
try {
if (clip._mochiad_loaded){
return (null);
};
} catch(e:Error) {
throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."));
};
depth = options.depth;
delete options.depth;
mc = createEmptyMovieClip(clip, "_mochiad", depth);
wh = MochiAd._getRes(options, clip);
options.res = ((wh[0] + "x") + wh[1]);
options.server = (options.server + options.id);
delete options.id;
clip._mochiad_loaded = true;
if (clip.loaderInfo.loaderURL.indexOf("http") == 0){
options.as3_swf = clip.loaderInfo.loaderURL;
} else {
trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal");
};
lv = new URLVariables();
for (k in options) {
v = options[k];
if (!(v is Function)){
lv[k] = v;
};
};
server = lv.server;
delete lv.server;
hostname = _allowDomains(server);
lc = new LocalConnection();
lc.client = mc;
name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_");
lc.allowDomain("*", "localhost");
lc.allowInsecureDomain("*", "localhost");
lc.connect(name);
mc.lc = lc;
mc.lcName = name;
lv.lc = name;
lv.st = getTimer();
loader = new Loader();
g = function (_arg1:Object):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
MochiAd.unload(clip);
};
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g);
req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime()));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent):void{
trace("[MochiAds] Blocked URL");
});
loader.load(req);
mc.addChild(loader);
mc._mochiad_ctr = loader;
return (mc);
}
public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{
var _local4:Array;
var _local5:Number;
_local4 = _arg2.split(".");
_local5 = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
if (typeof(_arg1[_local4[_local5]]) == "function"){
return (_arg1[_local4[_local5]].apply(_arg1, _arg3));
};
return (undefined);
}
public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{
var _local4:MovieClip;
_local4 = new MovieClip();
if (((false) && (_arg3))){
_arg1.addChildAt(_local4, _arg3);
} else {
_arg1.addChild(_local4);
};
_arg1[_arg2] = _local4;
_local4["_name"] = _arg2;
return (_local4);
}
public static function _getRes(_arg1:Object, _arg2:Object):Array{
var _local3:Object;
var _local4:Number;
var _local5:Number;
var _local6:Array;
_local3 = _arg2.getBounds(_arg2.root);
_local4 = 0;
_local5 = 0;
if (typeof(_arg1.res) != "undefined"){
_local6 = _arg1.res.split("x");
_local4 = parseFloat(_local6[0]);
_local5 = parseFloat(_local6[1]);
} else {
_local4 = (_local3.xMax - _local3.xMin);
_local5 = (_local3.yMax - _local3.yMin);
};
if ((((_local4 == 0)) || ((_local5 == 0)))){
_local4 = _arg2.stage.stageWidth;
_local5 = _arg2.stage.stageHeight;
};
return ([_local4, _local5]);
}
public static function adShowing(_arg1:Object):void{
_arg1.origFrameRate = _arg1.stage.frameRate;
_arg1.stage.frameRate = 30;
}
public static function getValue(_arg1:Object, _arg2:String):Object{
var _local3:Array;
var _local4:Number;
_local3 = _arg2.split(".");
_local4 = 0;
while (_local4 < (_local3.length - 1)) {
if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){
return (undefined);
};
_arg1 = _arg1[_local3[_local4]];
_local4++;
};
return (_arg1[_local3[_local4]]);
}
public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{
var _local4:Object;
var _local5:Object;
switch (_arg3.id){
case "setValue":
MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value);
break;
case "getValue":
_local4 = MochiAd.getValue(_arg1, _arg3.objectName);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4);
break;
case "runMethod":
_local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args);
_arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5);
break;
default:
trace(("[mochiads rpc] unknown rpc id: " + _arg3.id));
};
}
public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{
var _local4:Array;
var _local5:Number;
_local4 = _arg2.split(".");
_local5 = 0;
while (_local5 < (_local4.length - 1)) {
if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){
return;
};
_arg1 = _arg1[_local4[_local5]];
_local5++;
};
_arg1[_local4[_local5]] = _arg3;
}
public static function showPreGameAd(_arg1:Object):void{
var DEFAULTS:Object;
var clip:Object;
var ad_msec:Number;
var ad_timeout:Number;
var fadeout_time:Number;
var mc:MovieClip;
var wh:Array;
var w:Number;
var h:Number;
var chk:MovieClip;
var bar:MovieClip;
var bar_color:Number;
var bar_background:Number;
var bar_outline:Number;
var backing_mc:MovieClip;
var backing:Object;
var inside_mc:MovieClip;
var inside:Object;
var outline_mc:MovieClip;
var outline:Object;
var complete:Boolean;
var unloaded:Boolean;
var f:Function;
var sendHostProgress:Boolean;
var fn:Function;
var r:MovieClip;
var options = _arg1;
DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{
if ((this.clip is MovieClip)){
this.clip.stop();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_finished:function ():void{
if ((this.clip is MovieClip)){
this.clip.play();
} else {
throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers."));
};
}, ad_loaded:function (_arg1:Number, _arg2:Number):void{
}, ad_failed:function ():void{
trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function ():void{
}, ad_progress:function (_arg1:Number):void{
}};
options = MochiAd._parseOptions(options, DEFAULTS);
if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){
options.ad_started();
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
return;
};
clip = options.clip;
ad_msec = 11000;
ad_timeout = options.ad_timeout;
delete options.ad_timeout;
fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!MochiAd.load(options)){
options.ad_failed();
options.ad_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
var fn:Function;
MochiAd._cleanup(mc);
fn = function ():void{
options.ad_finished();
};
setTimeout(fn, 100);
};
wh = MochiAd._getRes(options, clip);
w = wh[0];
h = wh[1];
mc.x = (w * 0.5);
mc.y = (h * 0.5);
chk = createEmptyMovieClip(mc, "_mochiad_wait", 3);
chk.x = (w * -0.5);
chk.y = (h * -0.5);
bar = createEmptyMovieClip(chk, "_mochiad_bar", 4);
if (options.no_progress_bar){
bar.visible = false;
delete options.no_progress_bar;
} else {
bar.x = 10;
bar.y = (h - 20);
};
bar_color = options.color;
delete options.color;
bar_background = options.background;
delete options.background;
bar_outline = options.outline;
delete options.outline;
backing_mc = createEmptyMovieClip(bar, "_outline", 1);
backing = backing_mc.graphics;
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo((w - 20), 0);
backing.lineTo((w - 20), 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
inside_mc = createEmptyMovieClip(bar, "_inside", 2);
inside = inside_mc.graphics;
inside.beginFill(bar_color);
inside.moveTo(0, 0);
inside.lineTo((w - 20), 0);
inside.lineTo((w - 20), 10);
inside.lineTo(0, 10);
inside.lineTo(0, 0);
inside.endFill();
inside_mc.scaleX = 0;
outline_mc = createEmptyMovieClip(bar, "_outline", 3);
outline = outline_mc.graphics;
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo((w - 20), 0);
outline.lineTo((w - 20), 10);
outline.lineTo(0, 10);
outline.lineTo(0, 0);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function ():void{
var _local1:Number;
_local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (_local1 > 0){
this.parent.alpha = (_local1 * 0.01);
} else {
MochiAd.unload(clip);
delete this["onEnterFrame"];
};
};
complete = false;
unloaded = false;
f = function (_arg1:Event):void{
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
complete = true;
if (unloaded){
MochiAd.unload(clip);
};
};
if (clip.loaderInfo.bytesLoaded == clip.loaderInfo.bytesTotal){
complete = true;
} else {
if ((clip.root is MovieClip)){
r = (clip.root as MovieClip);
if (r.framesLoaded >= r.totalFrames){
complete = true;
} else {
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
};
} else {
clip.loaderInfo.addEventListener(Event.COMPLETE, f);
};
};
mc.unloadAd = function ():void{
unloaded = true;
if (complete){
MochiAd.unload(clip);
};
};
mc.adLoaded = options.ad_loaded;
mc.adSkipped = options.ad_skipped;
mc.adjustProgress = function (_arg1:Number):void{
var _local2:Object;
_local2 = mc._mochiad_wait;
_local2.server_control = true;
_local2.showing = true;
_local2.started = getTimer();
_local2.ad_msec = _arg1;
};
mc.rpc = function (_arg1:Number, _arg2:Object):void{
MochiAd.rpc(clip, _arg1, _arg2);
};
mc.rpcTestFn = function (_arg1:String):Object{
trace(("[MOCHIAD rpcTestFn] " + _arg1));
return (_arg1);
};
mc.regContLC = function (_arg1:String):void{
mc._containerLCName = _arg1;
};
sendHostProgress = false;
mc.sendHostLoadProgress = function (_arg1:String):void{
sendHostProgress = true;
};
chk["onEnterFrame"] = function ():void{
var _local1:Object;
var _local2:Object;
var _local3:Number;
var _local4:Boolean;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Object;
var _local10:Number;
var _local11:Number;
if (((!(this.parent)) || (!(this.parent.parent)))){
delete this["onEnterFrame"];
return;
};
_local1 = this.parent.parent.root;
_local2 = this.parent._mochiad_ctr;
_local3 = (getTimer() - this.started);
_local4 = false;
_local5 = _local1.loaderInfo.bytesTotal;
_local6 = _local1.loaderInfo.bytesLoaded;
if (complete){
_local6 = Math.max(1, _local6);
_local5 = _local6;
};
_local7 = ((100 * _local6) / _local5);
_local8 = ((100 * _local3) / chk.ad_msec);
_local9 = this._mochiad_bar._inside;
_local10 = Math.min(100, Math.min(((_local7) || (0)), _local8));
_local10 = Math.max(this.last_pcnt, _local10);
this.last_pcnt = _local10;
_local9.scaleX = (_local10 * 0.01);
options.ad_progress(_local10);
if (sendHostProgress){
clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local7});
if (_local7 == 100){
sendHostProgress = false;
};
};
if (!chk.showing){
_local11 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal;
if (_local11 > 0){
chk.showing = true;
chk.started = getTimer();
MochiAd.adShowing(clip);
} else {
if ((((_local3 > chk.ad_timeout)) && ((_local7 == 100)))){
options.ad_failed();
_local4 = true;
};
};
};
if (_local3 > chk.ad_msec){
_local4 = true;
};
if (((complete) && (_local4))){
if (this.server_control){
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
};
};
};
doOnEnterFrame(chk);
}
public static function showPreloaderAd(_arg1:Object):void{
trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
MochiAd.showPreGameAd(_arg1);
}
public static function showTimedAd(_arg1:Object):void{
trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
MochiAd.showInterLevelAd(_arg1);
}
public static function doOnEnterFrame(_arg1:MovieClip):void{
var f:Function;
var mc = _arg1;
f = function (_arg1:Object):void{
if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){
mc.onEnterFrame();
} else {
_arg1.target.removeEventListener(_arg1.type, arguments.callee);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package mochi.as3
Section 36
//AGlogo_mc_96 (WizardDefenseMochiberhasil_fla.AGlogo_mc_96)
package WizardDefenseMochiberhasil_fla {
import flash.display.*;
public dynamic class AGlogo_mc_96 extends MovieClip {
public var agButton_btn:SimpleButton;
}
}//package WizardDefenseMochiberhasil_fla
Section 37
//AGteaser_mc_93 (WizardDefenseMochiberhasil_fla.AGteaser_mc_93)
package WizardDefenseMochiberhasil_fla {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import fl.transitions.*;
import flash.net.*;
import fl.transitions.easing.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class AGteaser_mc_93 extends MovieClip {
public var smash:Smash;
public var timer:Timer;
public var p_in;
public var AGpresented_mc:MovieClip;
public var AGskip_btn:SimpleButton;
public var AGclick_btn:SimpleButton;
public var AGlogo_mc:MovieClip;
public function AGteaser_mc_93(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
smash = new Smash();
AGpresented_mc.alpha = 0;
AGclick_btn.visible = false;
AGlogo_mc.y = -70;
timer = new Timer(4000);
timer.addEventListener(TimerEvent.TIMER, done);
timer.start();
p_in = new Tween(AGpresented_mc, "alpha", Strong.easeIn, 0, 100, 12, false);
p_in.addEventListener(TweenEvent.MOTION_FINISH, logo);
AGskip_btn.addEventListener(MouseEvent.CLICK, done);
AGclick_btn.addEventListener(MouseEvent.CLICK, loadAG);
}
public function done(_arg1:Event){
this.parent.showlogo();
timer.stop();
this.parent.removeChild(this);
}
public function loadAG(_arg1:MouseEvent):void{
var _local2:URLRequest;
_local2 = new URLRequest("http://www.addictinggames.com");
navigateToURL(_local2, "_blank");
}
public function logo(_arg1:TweenEvent){
var logo_in:*;
var crunch:*;
var event = _arg1;
crunch = function (_arg1:TweenEvent){
smash.play();
AGclick_btn.visible = true;
new Tween(AGlogo_mc, "y", Bounce.easeOut, 60, 85, 6, false);
new Tween(AGlogo_mc, "x", Bounce.easeOut, 30, 50, 6, false);
new Tween(AGpresented_mc, "y", Bounce.easeOut, 15, 25, 6, false);
new Tween(AGpresented_mc, "x", Bounce.easeOut, 110, 100, 6, false);
};
logo_in = new Tween(AGlogo_mc, "y", Strong.easeIn, -75, 85, 12, false);
logo_in.addEventListener(TweenEvent.MOTION_FINISH, crunch);
}
}
}//package WizardDefenseMochiberhasil_fla
Section 38
//alertwin_80 (WizardDefenseMochiberhasil_fla.alertwin_80)
package WizardDefenseMochiberhasil_fla {
import flash.display.*;
import flash.text.*;
public dynamic class alertwin_80 extends MovieClip {
public var okbtn:SimpleButton;
public var talert:TextField;
}
}//package WizardDefenseMochiberhasil_fla
Section 39
//costmc_76 (WizardDefenseMochiberhasil_fla.costmc_76)
package WizardDefenseMochiberhasil_fla {
import flash.display.*;
import flash.text.*;
public dynamic class costmc_76 extends MovieClip {
public var tcost:TextField;
}
}//package WizardDefenseMochiberhasil_fla
Section 40
//gameoverdialog_82 (WizardDefenseMochiberhasil_fla.gameoverdialog_82)
package WizardDefenseMochiberhasil_fla {
import flash.display.*;
public dynamic class gameoverdialog_82 extends MovieClip {
public var okbtn:SimpleButton;
}
}//package WizardDefenseMochiberhasil_fla
Section 41
//NextMissionDialog_69 (WizardDefenseMochiberhasil_fla.NextMissionDialog_69)
package WizardDefenseMochiberhasil_fla {
import flash.display.*;
import flash.text.*;
public dynamic class NextMissionDialog_69 extends MovieClip {
public var sc9:MovieClip;
public var abilityinfo:TextField;
public var sc4:MovieClip;
public var antiinfo:TextField;
public var sc3:MovieClip;
public var weakinfo:TextField;
public var qty1:TextField;
public var qty2:TextField;
public var qty4:TextField;
public var qty5:TextField;
public var qty9:TextField;
public var qty3:TextField;
public var qty7:TextField;
public var qty6:TextField;
public var speedinfo:TextField;
public var tmission:TextField;
public var damageinfo:TextField;
public var qty8:TextField;
public var nameinfo:TextField;
public var startbtn:SimpleButton;
public var loadbtn:SimpleButton;
public var qty0:TextField;
public var hpinfo:TextField;
public var savebtn:SimpleButton;
public var sc0:MovieClip;
public var sc5:MovieClip;
public var sc6:MovieClip;
public var sc8:MovieClip;
public var sc2:MovieClip;
public var sc7:MovieClip;
public var sc1:MovieClip;
}
}//package WizardDefenseMochiberhasil_fla
Section 42
//saveslot_49 (WizardDefenseMochiberhasil_fla.saveslot_49)
package WizardDefenseMochiberhasil_fla {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class saveslot_49 extends MovieClip {
public var gemicon:MovieClip;
public var tgem:TextField;
public var tempty:TextField;
public var tmission:TextField;
public function saveslot_49(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package WizardDefenseMochiberhasil_fla
Section 43
//slotcreep_70 (WizardDefenseMochiberhasil_fla.slotcreep_70)
package WizardDefenseMochiberhasil_fla {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class slotcreep_70 extends MovieClip {
public var lvcreep:MovieClip;
public function slotcreep_70(){
addFrameScript(27, frame28, 55, frame56, 74, frame75, 102, frame103, 154, frame155, 169, frame170, 197, frame198, 221, frame222, 249, frame250, 277, frame278, 305, frame306, 333, frame334, 361, frame362, 389, frame390, 417, frame418, 449, frame450, 477, frame478, 501, frame502, 529, frame530);
}
function frame155(){
gotoAndPlay("G");
}
function frame278(){
gotoAndPlay("A");
}
function frame75(){
gotoAndPlay("FF");
}
function frame306(){
gotoAndPlay("C");
}
function frame170(){
gotoAndPlay("PL");
}
function frame334(){
gotoAndPlay("RE");
}
function frame502(){
gotoAndPlay("T");
}
function frame103(){
gotoAndPlay("S");
}
function frame450(){
gotoAndPlay("M");
}
function frame198(){
gotoAndPlay("K");
}
function frame222(){
gotoAndPlay("TT");
}
function frame28(){
gotoAndPlay("F");
}
function frame478(){
gotoAndPlay("Y");
}
function frame362(){
gotoAndPlay("FEN");
}
function frame530(){
gotoAndPlay("L");
}
function frame56(){
gotoAndPlay("DS");
}
function frame250(){
gotoAndPlay("D");
}
function frame418(){
gotoAndPlay("ARC");
}
function frame390(){
gotoAndPlay("SD");
}
}
}//package WizardDefenseMochiberhasil_fla
Section 44
//Slotmagic_64 (WizardDefenseMochiberhasil_fla.Slotmagic_64)
package WizardDefenseMochiberhasil_fla {
import flash.display.*;
public dynamic class Slotmagic_64 extends MovieClip {
public var micon:MovieClip;
}
}//package WizardDefenseMochiberhasil_fla
Section 45
//SpellDialog_74 (WizardDefenseMochiberhasil_fla.SpellDialog_74)
package WizardDefenseMochiberhasil_fla {
import flash.display.*;
import flash.text.*;
public dynamic class SpellDialog_74 extends MovieClip {
public var slot0:MovieClip;
public var cost0:MovieClip;
public var cost1:MovieClip;
public var cost2:MovieClip;
public var cost3:MovieClip;
public var active2:MovieClip;
public var slot9:MovieClip;
public var learncost:MovieClip;
public var slot4:MovieClip;
public var disable0:MovieClip;
public var disable1:MovieClip;
public var disable2:MovieClip;
public var disable4:MovieClip;
public var disable3:MovieClip;
public var dragspell:MovieClip;
public var slot10:MovieClip;
public var point1:TextField;
public var point3:TextField;
public var slot11:MovieClip;
public var point0:TextField;
public var point2:TextField;
public var chargebtn:SimpleButton;
public var learnbtn:SimpleButton;
public var spellname:TextField;
public var spelldesc:TextField;
public var desc1:TextField;
public var desc2:TextField;
public var desc3:TextField;
public var desc0:TextField;
public var lvbtn0:SimpleButton;
public var lvbtn1:SimpleButton;
public var lvbtn2:SimpleButton;
public var lvbtn3:SimpleButton;
public var active0:MovieClip;
public var active1:MovieClip;
public var active3:MovieClip;
public var slot1:MovieClip;
public var slot2:MovieClip;
public var slot3:MovieClip;
public var slot5:MovieClip;
public var slot6:MovieClip;
public var slot7:MovieClip;
public var slot8:MovieClip;
public var active4:MovieClip;
}
}//package WizardDefenseMochiberhasil_fla
Section 46
//StatusBar_63 (WizardDefenseMochiberhasil_fla.StatusBar_63)
package WizardDefenseMochiberhasil_fla {
import flash.display.*;
import flash.text.*;
public dynamic class StatusBar_63 extends MovieClip {
public var slot3:MovieClip;
public var slot1:MovieClip;
public var tcreep:TextField;
public var slot2:MovieClip;
public var tgem:TextField;
public var tscore:TextField;
public var slot0:MovieClip;
public var slot4:MovieClip;
}
}//package WizardDefenseMochiberhasil_fla
Section 47
//textscroll_87 (WizardDefenseMochiberhasil_fla.textscroll_87)
package WizardDefenseMochiberhasil_fla {
import flash.display.*;
import flash.text.*;
public dynamic class textscroll_87 extends MovieClip {
public var ttext:TextField;
}
}//package WizardDefenseMochiberhasil_fla
Section 48
//wavecleardialog_81 (WizardDefenseMochiberhasil_fla.wavecleardialog_81)
package WizardDefenseMochiberhasil_fla {
import flash.display.*;
import flash.text.*;
public dynamic class wavecleardialog_81 extends MovieClip {
public var okbtn:SimpleButton;
public var tcreep:TextField;
public var trank:TextField;
}
}//package WizardDefenseMochiberhasil_fla
Section 49
//Wizard_83 (WizardDefenseMochiberhasil_fla.Wizard_83)
package WizardDefenseMochiberhasil_fla {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Wizard_83 extends MovieClip {
public function Wizard_83(){
addFrameScript(40, frame41);
}
function frame41(){
gotoAndPlay("standby");
}
}
}//package WizardDefenseMochiberhasil_fla
Section 50
//angeldie (angeldie)
package {
import flash.media.*;
public dynamic class angeldie extends Sound {
}
}//package
Section 51
//BannedWindow (BannedWindow)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class BannedWindow extends MovieClip {
public var agbtn:SimpleButton;
public var agbtn2:SimpleButton;
public var lunabtn:SimpleButton;
public function BannedWindow(){
addFrameScript(0, frame1);
}
public function loadLuna(_arg1:MouseEvent):void{
var _local2:URLRequest;
_local2 = new URLRequest("http://www.lunakite.com");
navigateToURL(_local2, "_blank");
}
function frame1(){
agbtn.addEventListener(MouseEvent.CLICK, loadAG, false, 0, true);
agbtn2.addEventListener(MouseEvent.CLICK, loadAG, false, 0, true);
lunabtn.addEventListener(MouseEvent.CLICK, loadLuna, false, 0, true);
}
public function loadAG(_arg1:MouseEvent):void{
var _local2:URLRequest;
_local2 = new URLRequest("http://www.addictinggames.com");
navigateToURL(_local2, "_blank");
}
}
}//package
Section 52
//blizzard (blizzard)
package {
import flash.media.*;
public dynamic class blizzard extends Sound {
}
}//package
Section 53
//BoulderFall (BoulderFall)
package {
import flash.display.*;
import com.troy.collision.*;
public class BoulderFall extends MovieClip {
public function resume(){
if (this.currentFrame < this.totalFrames){
this.play();
};
}
public function update(){
var j:*;
if (this.currentFrame == this.totalFrames){
stop();
var _local2 = Main.mc.curwin;
with (_local2) {
j = 0;
while (j < arrcreep.length) {
if (arrcreep[j]){
if (ColDetection.isColliding(this, arrcreep[j], Main.mc.curwin, false)){
if (!arrcreep[j].rockbody){
if (arrcreep[j].lightningbody){
arrcreep[j].damagecreep((GameData.boulderfalldmg[(GameData.boulderfalldmglv - 1)] * GameData.weakmultiplier), true);
} else {
arrcreep[j].damagecreep(GameData.boulderfalldmg[(GameData.boulderfalldmglv - 1)], true);
};
} else {
arrcreep[j].damagecreep(0, true);
};
};
};
j++;
};
Global.trash(this, null, null);
arrmagic.splice(arrmagic.indexOf(this), 1);
};
};
}
public function pause(){
this.stop();
}
}
}//package
Section 54
//Bulletmc (Bulletmc)
package {
import flash.display.*;
public dynamic class Bulletmc extends MovieClip {
}
}//package
Section 55
//buttonclick (buttonclick)
package {
import flash.media.*;
public dynamic class buttonclick extends Sound {
}
}//package
Section 56
//buttonover (buttonover)
package {
import flash.media.*;
public dynamic class buttonover extends Sound {
}
}//package
Section 57
//Cerberus (Cerberus)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Cerberus extends MovieClip {
public function Cerberus(){
addFrameScript(17, frame18, 45, frame46, 72, frame73, 90, frame91, 117, frame118, 157, frame158, 196, frame197, 223, frame224);
}
function frame73(){
gotoAndPlay("up");
}
function frame158(){
gotoAndPlay("downslow");
}
function frame91(){
gotoAndPlay("left");
}
function frame18(){
gotoAndPlay("right");
}
function frame224(){
gotoAndPlay("leftslow");
}
function frame197(){
gotoAndPlay("upslow");
}
function frame118(){
gotoAndPlay("rightslow");
}
function frame46(){
gotoAndPlay("down");
}
}
}//package
Section 58
//cerberusdie (cerberusdie)
package {
import flash.media.*;
public dynamic class cerberusdie extends Sound {
}
}//package
Section 59
//ComicWindow (ComicWindow)
package {
import flash.display.*;
import flash.events.*;
import gs.*;
import gs.easing.*;
import flash.utils.*;
public class ComicWindow extends MovieClip {
public var tcomic:MovieClip;
public var skipbtn:SimpleButton;
public var tim:Timer;
public var img:MovieClip;
public function ComicWindow(){
tim = new Timer(15000, 1);
super();
Global.attachSFXButton([skipbtn]);
img.gotoAndStop(1);
tcomic.ttext.text = "";
tcomic.ttext.appendText("My name is Fahn \n \n A Wizard from Alundra village \n \n The manipulator of 4 elements\n\n");
tcomic.ttext.appendText("Fire \nIce\nThunder\nEarth \n\nAlundra is a small and peaceful village\n\n");
tcomic.ttext.appendText("But i'm afraid it won't last long\n\nToday I see a lot of monster horde \n\ncoming to my village\n\n");
tcomic.ttext.appendText("Medusa\nGolem\nFox\nAnd much more\n\nThey want to destroy everything\n\n");
tcomic.ttext.appendText("The villagers were so afraid \nand defenseless against them\n\nNow the only option i have is\n\nFIGHT");
tim.addEventListener(TimerEvent.TIMER, changeimg, false, 0, true);
tim.start();
TweenMax.to(tcomic.ttext, 35, {y:-1000, ease:Linear.easeNone});
skipbtn.addEventListener(MouseEvent.CLICK, startgame, false, 0, true);
}
private function changeimg(_arg1:TimerEvent):void{
TweenMax.to(img, 0.5, {alpha:0, onComplete:changeimg2});
}
private function startgame(_arg1:MouseEvent):void{
GameData.level = 1;
GameData.gem = 35;
GameData.magslot = ["", "", "", "", ""];
GameData.tutorlimit = false;
GameData.tutormulti = false;
GameData.magselect = -1;
GameData.magcooldown = [270, 270, 270, 270, 270];
GameData.magcooldownctr = [0, 0, 0, 0];
GameData.fireballbulletlv = 3;
GameData.fireballburndmglv = 1;
GameData.fireballcooldownlv = 1;
GameData.fireballdmglv = 0;
GameData.firerainbulletlv = 1;
GameData.firerainburndmglv = 1;
GameData.fireraincooldownlv = 1;
GameData.fireraindmglv = 0;
GameData.meteorburndmglv = 1;
GameData.meteordmglv = 0;
GameData.iciclebulletlv = 3;
GameData.iciclecooldownlv = 1;
GameData.icicledmglv = 0;
GameData.icicleslowlv = 1;
GameData.novablastbulletlv = 1;
GameData.novablastcooldownlv = 1;
GameData.novablastdmglv = 0;
GameData.novablastslowlv = 1;
GameData.icestormdmglv = 0;
GameData.icestormslowlv = 1;
GameData.lightningstrikebulletlv = 3;
GameData.lightningstrikecooldownlv = 1;
GameData.lightningstrikedmglv = 0;
GameData.lightningstrikestunlv = 1;
GameData.lightningspearbulletlv = 1;
GameData.lightningspearcooldownlv = 1;
GameData.lightningspeardmglv = 0;
GameData.lightningspearstunlv = 1;
GameData.zeuswrathdmglv = 0;
GameData.zeuswrathstrikecount = 3;
GameData.zeuswrathstunlv = 1;
GameData.boulderfallbulletlv = 3;
GameData.boulderfallcooldownlv = 1;
GameData.boulderfalldmglv = 0;
GameData.easterstrikebulletlv = 1;
GameData.easterstrikecooldownlv = 1;
GameData.easterstrikedmglv = 0;
GameData.easterstrikedurationlv = 1;
GameData.earthquakedmglv = 0;
GameData.vhp = 250;
GameData.maxvhp = 250;
GameData.score = 0;
Main.mc.pausestate = true;
Main.mc.showWindow("GameWindow", null, null);
Main.mc.curwin.imd.showmodal();
Main.mc.curwin.imd.spellbtn.gotoAndStop("active");
Main.mc.curwin.imd.nextmissionbtn.gotoAndStop("standby");
Main.mc.curwin.imd.mw.visible = false;
Main.mc.curwin.imd.sw.visible = true;
Main.mc.curwin.imd.initnextmission();
Main.mc.curwin.tutormc.initscenario("firstspell");
Main.mc.sc.playBGM("intermission");
}
private function changeimg2():void{
img.gotoAndStop(2);
TweenMax.to(img, 0.5, {alpha:1});
}
}
}//package
Section 60
//CreditWindow (CreditWindow)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class CreditWindow extends MovieClip {
public var backbtn:SimpleButton;
public var mc1:MovieClip;
public var mc3:MovieClip;
public var mc2:MovieClip;
public var abtn:SimpleButton;
public var lbtn:SimpleButton;
public function CreditWindow(){
mc1.gotoAndPlay("down");
mc2.gotoAndPlay("down");
mc3.gotoAndPlay("down");
lbtn.addEventListener(MouseEvent.CLICK, gogo, false, 0, true);
abtn.addEventListener(MouseEvent.CLICK, gogo, false, 0, true);
Global.attachSFXButton([backbtn]);
backbtn.addEventListener(MouseEvent.CLICK, goback, false, 0, true);
}
public function gotourl(_arg1:String){
var _local2:URLRequest;
_local2 = new URLRequest(_arg1);
navigateToURL(_local2, "_blank");
}
private function goback(_arg1:MouseEvent):void{
Main.mc.showWindow("MainMenuWindow", null, null);
}
public function gogo(_arg1:MouseEvent){
if (_arg1.currentTarget == abtn){
gotourl("http://www.addictinggames.com");
} else {
gotourl("http://www.lunakite.com");
};
}
}
}//package
Section 61
//Creep (Creep)
package {
import flash.display.*;
import flash.events.*;
import gs.*;
import flash.filters.*;
import flash.utils.*;
public class Creep extends MovieClip {
public var ctrstartstealth:int;// = 0
public var ypath:Array;
public var layerhp;
public var ctrshowhp:int;// = 0
public var layercreep:Layer;
public var ctrnovablast:int;// = 0
public var creepmc:MovieClip;
public var ctrstun:int;// = 0
public var ctrfireball:int;// = 0
public var speed:Number;
public var ctricestorm:int;// = 0
public var restealth:int;// = 0
public var rockbody:Boolean;
public var flying:Boolean;// = false
public var stealthduration:int;// = 0
public var score:int;
public var xpath:Array;
public var regenerate:int;
public var icebody:Boolean;
public var ctrstealth:int;// = 0
public var ctrregen:int;// = 0
public var hpmc:MovieClip;
public var dmg:int;
public var stuny:Array;
public var hp:int;
public var layermagicanim:Layer;
public var creepname:String;
public var ctrmeteor:int;// = 0
public var stunx:Array;
public var sounddie:String;
public var gem:int;
public var flamebody:Boolean;
public var maxspeed:Number;
public var maxhp:int;
public var lightningbody:Boolean;
public var direction:String;
public var ctricicle:int;// = 0
public var ctrpath:int;// = 0
public var stunmc:MovieClip;
public var stopped:Boolean;// = false
public var ctrfirerain:int;// = 0
public function Creep(_arg1:String, _arg2:int, _arg3:Array, _arg4:Array, _arg5:int, _arg6:int){
var _local7:int;
var _local8:int;
var _local9:int;
var _local10:Class;
flying = false;
ctrpath = 0;
hpmc = new HpBar();
stunmc = new Stun();
layercreep = new Layer();
layermagicanim = new Layer();
layerhp = new Layer();
ctrfireball = 0;
ctrfirerain = 0;
ctrmeteor = 0;
ctricicle = 0;
ctrnovablast = 0;
ctricestorm = 0;
ctrstun = 0;
ctrshowhp = 0;
ctrregen = 0;
ctrstartstealth = 0;
ctrstealth = 0;
stealthduration = 0;
restealth = 0;
stunx = new Array();
stuny = new Array();
stopped = false;
super();
xpath = _arg3;
ypath = _arg4;
x = _arg5;
y = _arg6;
_local7 = 0;
_local8 = 0;
_local9 = 0;
addChild(layercreep);
addChild(layerhp);
addChild(layermagicanim);
creepname = _arg1;
if (_arg1 == "Fox"){
_local7 = 0;
_local8 = -10;
_local9 = -20;
stunx["down"] = 4;
stuny["down"] = 0;
stunx["left"] = -15;
stuny["left"] = -20;
stunx["right"] = 22;
stuny["right"] = -14;
stunx["up"] = 3;
stuny["up"] = -14;
sounddie = "foxdie";
} else {
if (_arg1 == "Flare_Fox"){
_local7 = 1;
flamebody = true;
_local8 = -10;
_local9 = -20;
stunx["down"] = 4;
stuny["down"] = 0;
stunx["left"] = -15;
stuny["left"] = -20;
stunx["right"] = 22;
stuny["right"] = -14;
stunx["up"] = 3;
stuny["up"] = -14;
sounddie = "foxdie";
} else {
if (_arg1 == "Kingkong"){
_local7 = 2;
stunx["down"] = 5;
stuny["down"] = -32;
stunx["left"] = -18;
stuny["left"] = -32;
stunx["right"] = 21;
stuny["right"] = -31;
stunx["up"] = 5;
stuny["up"] = -32;
_local8 = -10;
_local9 = -35;
sounddie = "kingkongdie";
} else {
if (_arg1 == "Yeti"){
_local7 = 3;
stunx["down"] = 5;
stuny["down"] = -32;
stunx["left"] = -18;
stuny["left"] = -32;
stunx["right"] = 21;
stuny["right"] = -31;
stunx["up"] = 5;
stuny["up"] = -32;
_local8 = -10;
_local9 = -35;
icebody = true;
sounddie = "kingkongdie";
} else {
if (_arg1 == "Trino"){
_local7 = 4;
stunx["down"] = 5;
stuny["down"] = -12;
stunx["left"] = -10;
stuny["left"] = -21;
stunx["right"] = 31;
stuny["right"] = -21;
stunx["up"] = 5;
stuny["up"] = -32;
_local8 = -10;
_local9 = -35;
sounddie = "trinodie";
} else {
if (_arg1 == "Tritano"){
_local7 = 5;
stunx["down"] = 5;
stuny["down"] = -12;
stunx["left"] = -10;
stuny["left"] = -21;
stunx["right"] = 31;
stuny["right"] = -21;
stunx["up"] = 5;
stuny["up"] = -32;
_local8 = -10;
_local9 = -35;
rockbody = true;
sounddie = "trinodie";
} else {
if (_arg1 == "Spectre"){
_local7 = 6;
flying = true;
_local8 = -10;
_local9 = -30;
stunx["down"] = 8;
stuny["down"] = -12;
stunx["left"] = -10;
stuny["left"] = -21;
stunx["right"] = 26;
stuny["right"] = -21;
stunx["up"] = 5;
stuny["up"] = -32;
sounddie = "spectredie";
} else {
if (_arg1 == "Diabolic_Spectre"){
_local7 = 7;
flying = true;
_local8 = -10;
_local9 = -30;
stunx["down"] = 8;
stuny["down"] = -12;
stunx["left"] = -10;
stuny["left"] = -21;
stunx["right"] = 26;
stuny["right"] = -21;
stunx["up"] = 5;
stuny["up"] = -32;
sounddie = "spectredie";
} else {
if (_arg1 == "Drako"){
_local7 = 8;
flying = true;
stunx["down"] = 3;
stuny["down"] = -22;
stunx["left"] = -20;
stuny["left"] = -22;
stunx["right"] = 40;
stuny["right"] = -22;
stunx["up"] = 3;
stuny["up"] = -32;
_local8 = -10;
_local9 = -45;
sounddie = "drakodie";
} else {
if (_arg1 == "Sky_Drako"){
_local7 = 9;
flying = true;
_local8 = -10;
_local9 = -45;
lightningbody = true;
sounddie = "drakodie";
} else {
if (_arg1 == "Dark_Angel"){
_local7 = 10;
flying = true;
stunx["down"] = 7;
stuny["down"] = -52;
stunx["left"] = -8;
stuny["left"] = -56;
stunx["right"] = 16;
stuny["right"] = -56;
stunx["up"] = 7;
stuny["up"] = -52;
_local8 = -10;
_local9 = -65;
sounddie = "angeldie";
} else {
if (_arg1 == "Dark_Archangel"){
_local7 = 11;
flying = true;
stunx["down"] = 7;
stuny["down"] = -52;
stunx["left"] = -8;
stuny["left"] = -56;
stunx["right"] = 16;
stuny["right"] = -56;
stunx["up"] = 7;
stuny["up"] = -52;
_local8 = -10;
_local9 = -65;
sounddie = "angeldie";
} else {
if (_arg1 == "Medusa"){
_local7 = 12;
stunx["down"] = 2;
stuny["down"] = -47;
stunx["left"] = 0;
stuny["left"] = -47;
stunx["right"] = 5;
stuny["right"] = -46;
stunx["up"] = 2;
stuny["up"] = -47;
_local8 = -10;
_local9 = -55;
sounddie = "medusadie";
} else {
if (_arg1 == "Lamia"){
_local7 = 13;
stunx["down"] = 2;
stuny["down"] = -47;
stunx["left"] = 0;
stuny["left"] = -47;
stunx["right"] = 5;
stuny["right"] = -46;
stunx["up"] = 2;
stuny["up"] = -47;
_local8 = -10;
_local9 = -55;
sounddie = "medusadie";
} else {
if (_arg1 == "Cerberus"){
_local7 = 14;
stunx["down"] = 5;
stuny["down"] = 2;
stunx["left"] = -10;
stuny["left"] = -21;
stunx["right"] = 31;
stuny["right"] = -21;
stunx["up"] = 5;
stuny["up"] = -32;
_local8 = -10;
_local9 = -35;
flamebody = true;
sounddie = "cerberusdie";
} else {
if (_arg1 == "Fenrir"){
_local7 = 15;
icebody = true;
stunx["down"] = 5;
stuny["down"] = 2;
stunx["left"] = -30;
stuny["left"] = -21;
stunx["right"] = 40;
stuny["right"] = -21;
stunx["up"] = 5;
stuny["up"] = -32;
_local8 = -10;
_local9 = -35;
sounddie = "fenrirdie";
} else {
if (_arg1 == "Rainbow_Eagle"){
_local7 = 16;
flying = true;
stunx["down"] = 3;
stuny["down"] = -22;
stunx["left"] = -20;
stuny["left"] = -22;
stunx["right"] = 40;
stuny["right"] = -22;
stunx["up"] = 3;
stuny["up"] = -32;
_local8 = -10;
_local9 = -45;
sounddie = "rainboweagledie";
} else {
if (_arg1 == "Golem"){
_local7 = 17;
stunx["down"] = 0;
stuny["down"] = -32;
stunx["left"] = -13;
stuny["left"] = -36;
stunx["right"] = 16;
stuny["right"] = -36;
stunx["up"] = 0;
stuny["up"] = -32;
_local8 = -10;
_local9 = -45;
rockbody = true;
sounddie = "golemdie";
} else {
if (_arg1 == "Penguin_Lord"){
_local7 = 18;
stunx["down"] = 7;
stuny["down"] = -32;
stunx["left"] = 0;
stuny["left"] = -36;
stunx["right"] = 11;
stuny["right"] = -36;
stunx["up"] = 7;
stuny["up"] = -32;
_local8 = -10;
_local9 = -45;
sounddie = "penguindie";
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
_local10 = (getDefinitionByName(_arg1) as Class);
creepmc = new (_local10);
layercreep.addChild(creepmc);
hpmc.curbar.gotoAndStop("Green");
hpmc.x = _local8;
hpmc.y = _local9;
hpmc.mouseEnabled = false;
layerhp.addChild(hpmc);
hpmc.visible = false;
stunmc.mouseEnabled = false;
layerhp.addChild(stunmc);
stunmc.visible = false;
maxspeed = GameData.creepdata[_local7].speed[(_arg2 - 1)];
speed = maxspeed;
maxhp = GameData.creepdata[_local7].hp[(_arg2 - 1)];
hp = maxhp;
dmg = GameData.creepdata[_local7].dmg[(_arg2 - 1)];
gem = GameData.creepdata[_local7].gem[(_arg2 - 1)];
score = GameData.creepdata[_local7].score[(_arg2 - 1)];
ctrstartstealth = 0;
if ((((((((_arg1 == "Diabolic_Spectre")) || ((_arg1 == "Lamia")))) || ((_arg1 == "Rainbow_Eagle")))) || ((_arg1 == "Penguin_Lord")))){
restealth = (GameData.creepdata[_local7].restealth[(_arg2 - 1)] * 40);
ctrstartstealth = restealth;
stealthduration = (GameData.creepdata[_local7].stealth[(_arg2 - 1)] * 40);
};
if ((((((((((((_arg1 == "Trino")) || ((_arg1 == "Tritano")))) || ((_arg1 == "Dark_Angel")))) || ((_arg1 == "Dark_Archangel")))) || ((_arg1 == "Golem")))) || ((_arg1 == "Penguin_Lord")))){
regenerate = GameData.creepdata[_local7].regen[(_arg2 - 1)];
ctrregen = 40;
};
if (xpath[ctrpath] > x){
direction = "right";
} else {
if (xpath[ctrpath] < x){
direction = "left";
} else {
if (ypath[ctrpath] > y){
direction = "down";
} else {
if (ypath[ctrpath] < y){
direction = "up";
};
};
};
};
creepmc.gotoAndPlay(direction);
addEventListener(MouseEvent.MOUSE_DOWN, clickcreep, false, 0, true);
}
private function clickcreep(_arg1:MouseEvent):void{
if (((((!(Main.mc.pausestate)) && ((Main.mc.curwin.ctrgameover == 0)))) && ((this.hp > 0)))){
if ((((GameData.magslot[GameData.magselect] == "icicle")) && ((GameData.magbullet[GameData.magselect] > 0)))){
Main.mc.curwin.castcommonmagic();
Main.mc.curwin.createIcicle(this);
};
if ((((GameData.magslot[GameData.magselect] == "lightningstrike")) && ((GameData.magbullet[GameData.magselect] > 0)))){
Main.mc.curwin.castcommonmagic();
Main.mc.curwin.createLightningStrike(this);
};
};
}
public function checknextpath(){
Main.mc.curwin.sortcreep();
ctrpath++;
if (ctrpath == xpath.length){
if (hp > 0){
Main.mc.sc.playSFX("damage");
GameData.vhp = (GameData.vhp - dmg);
if (GameData.vhp <= 0){
GameData.vhp = 0;
};
hp = 0;
var _local2 = Main.mc.curwin;
with (_local2) {
hpvillage.curbar.width = ((GameData.vhp * hpvillage.maxbar.width) / GameData.maxvhp);
if ((GameData.vhp / GameData.maxvhp) > 0.66){
hpvillage.curbar.gotoAndStop("Green");
} else {
if ((GameData.vhp / GameData.maxvhp) > 0.33){
hpvillage.curbar.gotoAndStop("Yellow");
} else {
hpvillage.curbar.gotoAndStop("Red");
};
};
hpvillage.visible = true;
ctrhp = GameData.visiblehp;
};
destroycreep();
};
} else {
if (xpath[ctrpath] > xpath[(ctrpath - 1)]){
direction = "right";
} else {
if (xpath[ctrpath] < xpath[(ctrpath - 1)]){
direction = "left";
} else {
if (ypath[ctrpath] > ypath[(ctrpath - 1)]){
direction = "down";
} else {
if (ypath[ctrpath] < ypath[(ctrpath - 1)]){
direction = "up";
};
};
};
};
creepmc.gotoAndPlay(direction);
};
}
public function moveandupdate(){
if ((((ctrstun == 0)) && ((stopped == false)))){
if (direction == "right"){
x = (x + speed);
if (x >= xpath[ctrpath]){
checknextpath();
};
} else {
if (direction == "left"){
x = (x - speed);
if (x <= xpath[ctrpath]){
checknextpath();
};
} else {
if (direction == "down"){
y = (y + speed);
if (y >= ypath[ctrpath]){
checknextpath();
};
} else {
if (direction == "up"){
y = (y - speed);
if (y <= ypath[ctrpath]){
checknextpath();
};
};
};
};
};
};
if (!flamebody){
if (ctrfireball > 0){
ctrfireball--;
if ((ctrfireball % 20) == 0){
if (icebody){
damagecreep((GameData.fireballburndmg[(GameData.fireballburndmglv - 1)] * GameData.weakmultiplier), false, true);
} else {
damagecreep(GameData.fireballburndmg[(GameData.fireballburndmglv - 1)], false, true);
};
checkburned();
};
};
if (ctrfirerain > 0){
ctrfirerain--;
if ((ctrfirerain % 20) == 0){
if (icebody){
damagecreep((GameData.firerainburndmg[(GameData.firerainburndmglv - 1)] * GameData.weakmultiplier), false, true);
} else {
damagecreep(GameData.firerainburndmg[(GameData.firerainburndmglv - 1)], false, true);
};
checkburned();
};
};
if (ctrmeteor > 0){
ctrmeteor--;
if ((ctrmeteor % 20) == 0){
if (icebody){
damagecreep((GameData.meteorburndmg[(GameData.meteorburndmglv - 1)] * GameData.weakmultiplier), false, true);
} else {
damagecreep(GameData.meteorburndmg[(GameData.meteorburndmglv - 1)], false, true);
};
checkburned();
};
};
};
if (!icebody){
if (ctricicle > 0){
ctricicle--;
if (ctricicle == 0){
checkslowed();
};
};
if (ctrnovablast > 0){
ctrnovablast--;
if (ctrnovablast == 0){
checkslowed();
};
};
if (ctricestorm > 0){
ctricestorm--;
if (ctricestorm == 0){
checkslowed();
};
};
};
if (ctrstun > 0){
ctrstun--;
creepmc.stop();
if (ctrstun == 0){
stunmc.visible = false;
creepmc.play();
};
};
if (regenerate > 0){
ctrregen--;
if (ctrregen == 0){
damagecreep(-(regenerate), false);
ctrregen = 40;
};
};
if (ctrstartstealth > 0){
ctrstartstealth--;
if (ctrstartstealth == 0){
ctrstealth = stealthduration;
creepmc.alpha = 0.5;
};
};
if (ctrstealth > 0){
ctrstealth--;
if (ctrstealth == 0){
creepmc.alpha = 1;
ctrstartstealth = restealth;
};
};
if (ctrshowhp > 0){
ctrshowhp--;
if (ctrshowhp == 0){
hpmc.visible = false;
};
};
}
public function damagecreep(_arg1:int, _arg2:Boolean=true, _arg3:Boolean=false){
if (hp <= 0){
return;
};
if ((((((((ctrstealth > 0)) && (!(_arg3)))) && ((_arg1 > 0)))) || ((_arg1 == 0)))){
Main.mc.curwin.createeff("MISS", this.x, this.y);
} else {
hp = (hp - _arg1);
};
if (hp <= 0){
Main.mc.sc.playSFX(sounddie);
GameData.gem = (GameData.gem + gem);
GameData.score = (GameData.score + score);
GameData.creepkilled++;
Main.mc.curwin.statbar.tgem.text = GameData.gem;
Main.mc.curwin.statbar.tscore.text = GameData.score;
Main.mc.curwin.createeff(gem.toString(), this.x, this.y);
destroycreep();
} else {
if (hp > maxhp){
hp = maxhp;
};
hpmc.curbar.width = ((hp / maxhp) * hpmc.maxbar.width);
if ((hp / maxhp) > 0.66){
hpmc.curbar.gotoAndStop("Green");
} else {
if ((hp / maxhp) > 0.33){
hpmc.curbar.gotoAndStop("Yellow");
} else {
hpmc.curbar.gotoAndStop("Red");
};
};
if (_arg2){
hpmc.visible = true;
ctrshowhp = GameData.visiblehp;
};
};
}
public function calcspeed(){
var _local1:Number;
_local1 = maxspeed;
if (ctricicle > 0){
_local1 = (_local1 - (GameData.icicleslow[(GameData.icicleslowlv - 1)] * _local1));
};
if (ctrnovablast > 0){
_local1 = (_local1 - (GameData.novablastslow[(GameData.novablastslowlv - 1)] * _local1));
};
if (ctricestorm > 0){
_local1 = (_local1 - (GameData.icestormslow[(GameData.icestormslowlv - 1)] * _local1));
};
speed = _local1;
}
public function destroycreep(){
GameData.totcreep--;
Main.mc.curwin.statbar.tcreep.text = GameData.totcreep;
if ((((((GameData.vhp == 0)) && ((Main.mc.curwin.ctrgameover == 0)))) && ((Main.mc.curwin.imd.gw.visible == false)))){
Main.mc.sc.stopBGM();
Main.mc.sc.playSFX("gameover");
Main.mc.curwin.ctrgameover = 120;
} else {
if ((((GameData.totcreep == 0)) && ((GameData.vhp > 0)))){
if (GameData.magslot[4] != ""){
GameData[(GameData.magslot[4] + "gauge")] = (GameData.magcooldown[4] + 90);
};
Main.mc.sc.stopBGM();
Main.mc.sc.playSFX("win");
Main.mc.curwin.ctrclear = 120;
GameData.level++;
};
};
this.mouseEnabled = false;
creepmc.stop();
TweenMax.to(this, 0.5, {alpha:0, onComplete:nullcreep});
}
public function checkslowed(){
var _local1:GlowFilter;
calcspeed();
if ((((((ctricicle == 0)) && ((ctrnovablast == 0)))) && ((ctricestorm == 0)))){
creepmc.filters = [];
if (!(((((ctrmeteor == 0)) && ((ctrfireball == 0)))) && ((ctrfirerain == 0)))){
_local1 = new GlowFilter(0xFF0000, 1, 10, 10, 3);
creepmc.filters = [_local1];
};
speed = maxspeed;
creepmc.gotoAndPlay(direction);
};
}
public function checkburned(){
var _local1:GlowFilter;
if ((((((ctrmeteor == 0)) && ((ctrfireball == 0)))) && ((ctrfirerain == 0)))){
creepmc.filters = [];
if (!(((((ctricicle == 0)) && ((ctrnovablast == 0)))) && ((ctricestorm == 0)))){
_local1 = new GlowFilter(0xFF, 1, 10, 10, 3, 1, true, false);
creepmc.filters = [_local1];
};
};
}
private function nullcreep():void{
Global.del(this);
}
}
}//package
Section 62
//damage (damage)
package {
import flash.media.*;
public dynamic class damage extends Sound {
}
}//package
Section 63
//Dark_Angel (Dark_Angel)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Dark_Angel extends MovieClip {
public function Dark_Angel(){
addFrameScript(28, frame29, 60, frame61, 92, frame93, 120, frame121, 164, frame165, 212, frame213, 260, frame261, 304, frame305);
}
function frame305(){
gotoAndPlay("leftslow");
}
function frame165(){
gotoAndPlay("rightslow");
}
function frame93(){
gotoAndPlay("up");
}
function frame213(){
gotoAndPlay("downslow");
}
function frame29(){
gotoAndPlay("right");
}
function frame121(){
gotoAndPlay("left");
}
function frame261(){
gotoAndPlay("upslow");
}
function frame61(){
gotoAndPlay("down");
}
}
}//package
Section 64
//Dark_Archangel (Dark_Archangel)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Dark_Archangel extends MovieClip {
public function Dark_Archangel(){
addFrameScript(27, frame28, 59, frame60, 91, frame92, 120, frame121, 168, frame169, 220, frame221, 272, frame273, 320, frame321);
}
function frame273(){
gotoAndPlay("upslow");
}
function frame321(){
gotoAndPlay("leftslow");
}
function frame169(){
gotoAndPlay("rightslow");
}
function frame221(){
gotoAndPlay("downslow");
}
function frame92(){
gotoAndPlay("up");
}
function frame28(){
gotoAndPlay("right");
}
function frame121(){
gotoAndPlay("left");
}
function frame60(){
gotoAndPlay("down");
}
}
}//package
Section 65
//Diabolic_Spectre (Diabolic_Spectre)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Diabolic_Spectre extends MovieClip {
public function Diabolic_Spectre(){
addFrameScript(23, frame24, 51, frame52, 78, frame79, 102, frame103, 138, frame139, 178, frame179, 222, frame223, 258, frame259);
}
function frame79(){
gotoAndPlay("up");
}
function frame223(){
gotoAndPlay("upslow");
}
function frame24(){
gotoAndPlay("right");
}
function frame103(){
gotoAndPlay("left");
}
function frame179(){
gotoAndPlay("downslow");
}
function frame259(){
gotoAndPlay("leftslow");
}
function frame52(){
gotoAndPlay("down");
}
function frame139(){
gotoAndPlay("rightslow");
}
}
}//package
Section 66
//Dialog (Dialog)
package {
import flash.display.*;
public class Dialog extends MovieClip {
var showed:Boolean;// = false
var arrlistob:Array;
public function Dialog(){
arrlistob = new Array();
showed = false;
super();
}
public function enable(_arg1:Object){
var _local2:*;
if ((((_arg1 is InteractiveObject)) && (!(_arg1.mouseEnabled)))){
_arg1.mouseEnabled = true;
};
if ((_arg1 is DisplayObjectContainer)){
_local2 = 0;
while (_local2 < _arg1.numChildren) {
enable(_arg1.getChildAt(_local2));
_local2++;
};
};
}
public function closemodal(){
var _local1:*;
_local1 = 0;
while (_local1 < arrlistob.length) {
arrlistob[_local1].mouseEnabled = true;
_local1++;
};
showed = false;
arrlistob = [];
this.visible = false;
}
public function showmodal(){
if (!showed){
arrlistob = [];
showed = true;
disable(Main.mc.curwin);
enable(this);
this.visible = true;
};
}
public function disable(_arg1:Object){
var _local2:*;
if (((((!((_arg1 == this))) && ((_arg1 is InteractiveObject)))) && (_arg1.mouseEnabled))){
arrlistob.push(_arg1);
_arg1.mouseEnabled = false;
};
if (((!((_arg1 == this))) && ((_arg1 is DisplayObjectContainer)))){
_local2 = 0;
while (_local2 < _arg1.numChildren) {
disable(_arg1.getChildAt(_local2));
_local2++;
};
};
}
}
}//package
Section 67
//Drako (Drako)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Drako extends MovieClip {
public function Drako(){
addFrameScript(23, frame24, 51, frame52, 79, frame80, 103, frame104, 143, frame144, 187, frame188, 231, frame232, 271, frame272);
}
function frame272(){
gotoAndPlay("leftslow");
}
function frame144(){
gotoAndPlay("rightslow");
}
function frame80(){
gotoAndPlay("up");
}
function frame188(){
gotoAndPlay("downslow");
}
function frame24(){
gotoAndPlay("right");
}
function frame104(){
gotoAndPlay("left");
}
function frame232(){
gotoAndPlay("upslow");
}
function frame52(){
gotoAndPlay("down");
}
}
}//package
Section 68
//drakodie (drakodie)
package {
import flash.media.*;
public dynamic class drakodie extends Sound {
}
}//package
Section 69
//EarthQuake (EarthQuake)
package {
import flash.display.*;
public class EarthQuake extends MovieClip {
public var ctr:int;// = 0
public var ctrdmg:int;// = 0
public var dx:int;// = 10
public function EarthQuake(){
ctrdmg = 0;
dx = 10;
ctr = 0;
super();
}
public function resume(){
Main.mc.sc.resumeSFX("magicquake");
}
public function update(){
var s:String;
var n:*;
var j:*;
var i:*;
ctrdmg++;
if ((ctrdmg % 40) == 0){
s = "";
var _local2 = Main.mc.curwin;
with (_local2) {
n = arrcreep.length;
j = 0;
while (j < n) {
if (arrcreep[j]){
if (!arrcreep[j].rockbody){
if (arrcreep[j].lightningbody){
arrcreep[j].damagecreep((GameData.earthquakedmg[(GameData.earthquakedmglv - 1)] * GameData.weakmultiplier), true);
} else {
arrcreep[j].damagecreep(GameData.earthquakedmg[(GameData.earthquakedmglv - 1)], true);
};
} else {
arrcreep[j].damagecreep(0, true);
};
};
j++;
};
};
};
_local2 = Main.mc.curwin;
with (_local2) {
i = 0;
while (i < Main.mc.curwin.numChildren) {
if ((((((((((i == 0)) || ((Main.mc.curwin.getChildAt(i) == layercreep)))) || ((Main.mc.curwin.getChildAt(i) == layereff)))) || ((Main.mc.curwin.getChildAt(i) == layermagic)))) || ((Main.mc.curwin.getChildAt(i) == layerwiz)))){
Main.mc.curwin.getChildAt(i).x = (Main.mc.curwin.getChildAt(i).x + dx);
};
i++;
};
};
ctr++;
if (ctr == 3){
dx = -(dx);
ctr = 0;
};
if (ctrdmg >= GameData.earthquakeduration){
_local2 = Main.mc.curwin;
with (_local2) {
i = 0;
while (i < Main.mc.curwin.numChildren) {
if ((((((((((i == 0)) || ((Main.mc.curwin.getChildAt(i) == layercreep)))) || ((Main.mc.curwin.getChildAt(i) == layereff)))) || ((Main.mc.curwin.getChildAt(i) == layermagic)))) || ((Main.mc.curwin.getChildAt(i) == layerwiz)))){
Main.mc.curwin.getChildAt(i).x = 0;
};
i++;
};
};
(Main.mc.curwin as GameWindow).arrmagic.splice((Main.mc.curwin as GameWindow).arrmagic.indexOf(this), 1);
Global.trash(this, null, null);
};
}
public function pause(){
Main.mc.sc.pauseSFX("magicquake");
}
}
}//package
Section 70
//EasterStrike (EasterStrike)
package {
import flash.geom.*;
import flash.display.*;
import com.troy.collision.*;
public class EasterStrike extends MovieClip {
public var colstoprect:Rectangle;
public var coldamagerect:Rectangle;
public var creepsstopped:Array;
public var durctr:int;// = 0
public function EasterStrike(){
durctr = 0;
creepsstopped = new Array();
super();
addFrameScript(6, frame7);
this.mouseEnabled = false;
}
public function pause(){
this.stop();
}
public function resume(){
if (this.currentFrame <= (this.totalFrames - 1)){
this.play();
};
}
function frame7(){
Main.mc.sc.playSFX("magiceaster");
stop();
}
public function update(){
var j:*;
if (this.currentFrame == (this.totalFrames - 1)){
var _local2 = Main.mc.curwin;
with (_local2) {
j = 0;
while (j < arrcreep.length) {
if (arrcreep[j]){
if (ColDetection.isColliding(this, arrcreep[j], Main.mc.curwin)){
if (!arrcreep[j].rockbody){
if (arrcreep[j].lightningbody){
arrcreep[j].damagecreep((GameData.easterstrikedmg[(GameData.easterstrikedmglv - 1)] * GameData.weakmultiplier), true);
} else {
arrcreep[j].damagecreep(GameData.easterstrikedmg[(GameData.easterstrikedmglv - 1)], true);
};
} else {
arrcreep[j].damagecreep(0, true);
};
};
};
j++;
};
};
} else {
if (this.currentFrame == this.totalFrames){
durctr++;
_local2 = Main.mc.curwin;
with (_local2) {
j = 0;
while (j < arrcreep.length) {
if (((arrcreep[j]) && (!(arrcreep[j].stopped)))){
if (colstoprect.contains(arrcreep[j].x, arrcreep[j].y)){
creepsstopped.push(arrcreep[j]);
arrcreep[j].stopped = true;
};
};
j++;
};
};
if (durctr == GameData.easterstrikeduration[(GameData.easterstrikedurationlv - 1)]){
j = 0;
while (j < creepsstopped.length) {
if (creepsstopped[j]){
creepsstopped[j].stopped = false;
};
j = (j + 1);
};
(Main.mc.curwin as GameWindow).arrmagic.splice((Main.mc.curwin as GameWindow).arrmagic.indexOf(this), 1);
Global.trash(this, null, null);
};
};
};
}
}
}//package
Section 71
//ending (ending)
package {
import flash.media.*;
public dynamic class ending extends Sound {
}
}//package
Section 72
//EndingWindow (EndingWindow)
package {
import flash.display.*;
import flash.events.*;
import gs.*;
import gs.easing.*;
import flash.utils.*;
public class EndingWindow extends MovieClip {
public var tcomic:MovieClip;
public var tim:Timer;
public var img:MovieClip;
public function EndingWindow(){
tim = new Timer(12000, 1);
super();
img.gotoAndStop(3);
tcomic.ttext.text = "";
Main.mc.sc.playBGM("ending");
tcomic.ttext.appendText("The battle is over\n\nThe monsters have been defeated\n\nI've teach them a big lesson");
tcomic.ttext.appendText("\n\nI believe they won't dare\ncoming to my village again\n\nBut when they come again\n\nI'll be ready to fight");
tim.addEventListener(TimerEvent.TIMER, changeimg, false, 0, true);
tim.start();
TweenMax.to(tcomic.ttext, 22, {y:-450, ease:Linear.easeNone, onComplete:backmain});
}
private function backmain2():void{
Main.mc.showWindow("MainMenuWindow", null, null);
}
private function changeimg(_arg1:TimerEvent):void{
TweenMax.to(img, 1, {alpha:0, onComplete:changeimg2});
}
private function backmain():void{
TweenMax.to(this, 5, {alpha:0, ease:Linear.easeNone, onComplete:backmain2});
}
private function changeimg2():void{
img.gotoAndStop(4);
TweenMax.to(img, 1, {alpha:1});
}
}
}//package
Section 73
//explode (explode)
package {
import flash.media.*;
public dynamic class explode extends Sound {
}
}//package
Section 74
//fall (fall)
package {
import flash.media.*;
public dynamic class fall extends Sound {
}
}//package
Section 75
//Fenrir (Fenrir)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Fenrir extends MovieClip {
public function Fenrir(){
addFrameScript(23, frame24, 51, frame52, 79, frame80, 103, frame104);
}
function frame80(){
gotoAndPlay("up");
}
function frame24(){
gotoAndPlay("right");
}
function frame104(){
gotoAndPlay("left");
}
function frame52(){
gotoAndPlay("down");
}
}
}//package
Section 76
//fenrirdie (fenrirdie)
package {
import flash.media.*;
public dynamic class fenrirdie extends Sound {
}
}//package
Section 77
//Fire (Fire)
package {
import flash.display.*;
public dynamic class Fire extends MovieClip {
}
}//package
Section 78
//Fireball (Fireball)
package {
import flash.geom.*;
import flash.display.*;
import flash.filters.*;
import com.troy.collision.*;
public class Fireball extends MovieClip {
public function Fireball(){
this.mouseEnabled = false;
}
public function init(_arg1:Number, _arg2:Number){
var _local3:Number;
_local3 = Global.AngleOfTwoDots(_arg1, _arg2, 165, 450);
this.rotation = _local3;
}
public function resume(){
this.play();
}
public function update(){
var j:*;
var flamefilt:*;
if (Global.moveAngle(this, this.rotation, 12, new Rectangle(-20, -20, 840, 640))){
(Main.mc.curwin as GameWindow).arrmagic.splice((Main.mc.curwin as GameWindow).arrmagic.indexOf(this), 1);
Global.trash(this, null, null);
};
var _local2 = Main.mc.curwin;
with (_local2) {
j = 0;
while (j < arrcreep.length) {
if (arrcreep[j]){
if ((((arrcreep[j].hp > 0)) && (ColDetection.isColliding(this, arrcreep[j], Main.mc.curwin, true)))){
Global.trash(this, null, null);
arrmagic.splice(arrmagic.indexOf(this), 1);
if (!arrcreep[j].flamebody){
if (arrcreep[j].ctrfireball == 0){
arrcreep[j].ctrfireball = GameData.fireballburnduration;
flamefilt = new GlowFilter(0xFF0000, 1, 10, 10, 3);
arrcreep[j].creepmc.filters = [flamefilt];
} else {
if (arrcreep[j].ctrfireball < 20){
arrcreep[j].ctrfireball = (arrcreep[j].ctrfireball + 20);
};
};
if (arrcreep[j].icebody){
arrcreep[j].damagecreep((GameData.fireballdmg[(GameData.fireballdmglv - 1)] * GameData.weakmultiplier), true);
} else {
arrcreep[j].damagecreep(GameData.fireballdmg[(GameData.fireballdmglv - 1)], true);
};
} else {
arrcreep[j].damagecreep(0, true);
};
};
};
j++;
};
};
}
public function pause(){
this.stop();
}
}
}//package
Section 79
//FireRain (FireRain)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import de.polygonal.math.*;
import flash.utils.*;
public class FireRain extends MovieClip {
public var ctrdmg:int;// = 0
public var colrect:Rectangle;
public var comets:Array;
public var tim:Timer;
public var ctrsnd:int;// = 0
public function FireRain(){
ctrdmg = 0;
tim = new Timer(50, 40);
comets = new Array();
ctrsnd = 0;
super();
this.mouseEnabled = false;
this.mouseChildren = false;
tim.addEventListener(TimerEvent.TIMER, generatecomet, false, 0, true);
tim.start();
}
public function resume(){
var _local1:*;
tim.start();
_local1 = 0;
while (_local1 < comets.length) {
if (comets[_local1]){
comets[_local1].play();
};
_local1++;
};
}
private function generatecomet(_arg1:TimerEvent):void{
var _local2:MovieClip;
var _local3:int;
if ((ctrsnd % 5) == 0){
Main.mc.sc.playSFX("magicfirerain");
};
ctrsnd++;
_local2 = new Fire();
_local2.x = PM_PRNG.nextIntRange(-60, 60);
_local2.y = PM_PRNG.nextIntRange(-80, -100);
_local2.speed = PM_PRNG.nextIntRange(4, 7);
_local2.mouseEnabled = false;
_local3 = PM_PRNG.nextIntRange(-20, 60);
_local2.ytarget = _local3;
this.addChild(_local2);
comets.push(_local2);
}
public function update(){
var n:*;
var i:*;
var j:*;
var flamefilt:*;
n = comets.length;
i = 0;
while (i < n) {
if (comets[i]){
comets[i].y = (comets[i].y + comets[i].speed);
if ((((comets[i].speed > 0)) && ((comets[i].y >= comets[i].ytarget)))){
comets[i].speed = 0;
removeChild(comets[i]);
comets[i] = null;
};
};
i = (i + 1);
};
ctrdmg++;
if ((ctrdmg % 30) == 0){
var _local2 = Main.mc.curwin;
with (_local2) {
j = 0;
while (j < arrcreep.length) {
if (arrcreep[j]){
if (colrect.contains(arrcreep[j].x, arrcreep[j].y)){
if (!arrcreep[j].flamebody){
if (arrcreep[j].ctrfirerain == 0){
arrcreep[j].ctrfirerain = GameData.firerainburnduration;
flamefilt = new GlowFilter(0xFF0000, 1, 10, 10, 3);
arrcreep[j].creepmc.filters = [flamefilt];
} else {
if (arrcreep[j].ctrfirerain < 20){
arrcreep[j].ctrfirerain = (arrcreep[j].ctrfirerain + 20);
};
};
if (arrcreep[j].icebody){
arrcreep[j].damagecreep((GameData.fireraindmg[(GameData.fireraindmglv - 1)] * GameData.weakmultiplier), true);
} else {
arrcreep[j].damagecreep(GameData.fireraindmg[(GameData.fireraindmglv - 1)], true);
};
} else {
arrcreep[j].damagecreep(0, true);
};
};
};
j++;
};
};
};
if (ctrdmg == 150){
(Main.mc.curwin as GameWindow).arrmagic.splice((Main.mc.curwin as GameWindow).arrmagic.indexOf(this), 1);
Global.trash(this, null, null);
};
}
public function pause(){
var _local1:*;
tim.stop();
_local1 = 0;
while (_local1 < comets.length) {
if (comets[_local1]){
comets[_local1].stop();
};
_local1++;
};
}
}
}//package
Section 80
//Flare_Fox (Flare_Fox)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Flare_Fox extends MovieClip {
public function Flare_Fox(){
addFrameScript(23, frame24, 38, frame39, 52, frame53, 76, frame77, 112, frame113, 135, frame136, 157, frame158, 193, frame194);
}
function frame77(){
gotoAndPlay("left");
}
function frame158(){
gotoAndPlay("upslow");
}
function frame24(){
gotoAndPlay("right");
}
function frame194(){
gotoAndPlay("leftslow");
}
function frame113(){
gotoAndPlay("rightslow");
}
function frame39(){
gotoAndPlay("down");
}
function frame136(){
gotoAndPlay("downslow");
}
function frame53(){
gotoAndPlay("up");
}
}
}//package
Section 81
//Fox (Fox)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Fox extends MovieClip {
public function Fox(){
addFrameScript(23, frame24, 51, frame52, 65, frame66, 89, frame90, 125, frame126, 165, frame166, 187, frame188, 223, frame224);
}
function frame166(){
gotoAndPlay("downslow");
}
function frame90(){
gotoAndPlay("left");
}
function frame188(){
gotoAndPlay("upslow");
}
function frame24(){
gotoAndPlay("right");
}
function frame224(){
gotoAndPlay("leftslow");
}
function frame126(){
gotoAndPlay("rightslow");
}
function frame52(){
gotoAndPlay("down");
}
function frame66(){
gotoAndPlay("up");
}
}
}//package
Section 82
//foxdie (foxdie)
package {
import flash.media.*;
public dynamic class foxdie extends Sound {
}
}//package
Section 83
//FPSmc (FPSmc)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class FPSmc extends MovieClip {
public var prevSecondTime:Number;
public var secondTime:Number;
public var tf:TextField;
public var frames:Number;
public var time:Number;
public var frameTime:Number;
public var fps:String;
public var prevFrameTime:Number;
public var iBar:MovieClip;
public function FPSmc(){
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
prevFrameTime = getTimer();
prevSecondTime = getTimer();
frames = 0;
fps = "...";
this.mouseEnabled = false;
}
function frame2(){
stop();
this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
public function onEnterFrame(_arg1:Event):void{
time = getTimer();
frameTime = (time - prevFrameTime);
secondTime = (time - prevSecondTime);
if (secondTime >= 1000){
fps = frames.toString();
frames = 0;
prevSecondTime = time;
} else {
frames++;
};
prevFrameTime = time;
tf.text = (((((fps + " FPS / ") + frameTime) + " MS") + " - Memory : ") + System.totalMemory);
iBar.scaleX = (iBar.scaleX - ((iBar.scaleX - (frameTime / 10)) / 5));
}
}
}//package
Section 84
//gaingem (gaingem)
package {
import flash.display.*;
import flash.text.*;
public dynamic class gaingem extends MovieClip {
public var tgem:TextField;
}
}//package
Section 85
//GameData (GameData)
package {
public class GameData {
public static var vhp:int;
public static var icestormslowlv:int;
public static var magselect:int;
public static var firerainburndmgcost:Array = [20, 40, 75, 125, 200, 300, 400, 500];
public static var magbullet:Array = [0, 0, 0, 0];
public static var meteorburnduration:int = 120;
public static var fireballburnduration:int = 40;
public static var firerainbulletcost:Array = [150, 300];
public static var maxvhp:int = 250;
public static var novablastbulletcost:Array = [150, 300];
public static var maxcreep:int;
public static var ypath:Array = [[102, 102, 200, 200, 293, 293, 354, 354, 385], [263, 263, 112, 112, 260, 260, 383, 383, 435], [137, 290, 290, 114, 114, 350, 350, 421, 421, 463, 463], [406, 542, 542, 452, 452, 561, 561, 505, 505, 465, 465]];
public static var earthquakegaugecost:int = 100;
public static var meteorgaugecost:int = 100;
public static var iciclecooldownlv:int;
public static var fireballcharge:Number = 4;
public static var creepdata:Array = [{hp:[25, 160, 800, 1550, 3050], speed:[0.8, 0.9, 1, 1.3, 1.5], dmg:[1, 2, 2, 3, 4], gem:[1, 2, 3, 5, 6], score:[100, 150, 200, 250, 300]}, {hp:[170, 500, 1200, 1800, 3550], speed:[0.9, 1, 1.2, 1.4, 1.7], dmg:[2, 2, 3, 4, 5], gem:[2, 3, 5, 8, 10], score:[150, 225, 300, 400, 500]}, {hp:[50, 250, 1400, 2200, 4500], speed:[0.5, 0.6, 0.7, 0.8, 1], dmg:[1, 2, 3, 3, 4], gem:[2, 3, 4, 6, 8], score:[100, 200, 300, 400, 500]}, {hp:[300, 770, 1500, 3000, 5500], speed:[0.5, 0.5, 0.6, 0.7, 0.8], dmg:[2, 3, 4, 5, 5], gem:[3, 4, 6, 8, 10], score:[200, 400, 600, 800, 1000]}, {hp:[150, 500, 1750, 3250, 7000], speed:[0.4, 0.5, 0.5, 0.6, 0.6], dmg:[2, 3, 3, 4, 5], gem:[3, 4, 7, 9, 12], score:[175, 350, 425, 500, 700], regen:[4, 10, 25, 50, 100]}, {hp:[1150, 2000, 3000, 6000, 10000], speed:[0.3, 0.3, 0.4, 0.4, 0.4], dmg:[4, 4, 5, 6, 7], gem:[4, 6, 9, 12, 15], score:[350, 600, 850, 1100, 1350], regen:[10, 20, 50, 80, 150]}, {hp:[120, 450, 1350, 1900, 3000], speed:[1.2, 1.3, 1.4, 1.5, 1.6], dmg:[1, 2, 3, 3, 4], gem:[2, 4, 6, 8, 10], score:[150, 250, 350, 450, 650]}, {hp:[700, 1100, 1600, 2600, 3300], speed:[1.5, 1.6, 1.6, 1.8, 2], dmg:[2, 2, 3, 4, 5], gem:[4, 6, 9, 12, 15], score:[300, 450, 600, 750, 900], restealth:[10, 9, 8, 8, 7], stealth:[3, 3.5, 4.5, 4.5, 5]}, {hp:[1000, 2000, 2500, 3500, 5500], speed:[0.8, 0.9, 1.1, 1.2, 1.2], dmg:[3, 4, 4, 5, 5], gem:[4, 6, 8, 10, 12], score:[200, 400, 600, 800, 1000]}, {hp:[1250, 2250, 3000, 5000, 7500], speed:[0.7, 0.8, 0.9, 0.9, 1], dmg:[3, 4, 5, 6, 8], gem:[6, 10, 14, 18, 22], score:[400, 800, 1200, 1600, 2000]}, {hp:[450, 1050, 2100, 3250, 5000], speed:[1, 1.1, 1.2, 1.2, 1.3], dmg:[3, 4, 5, 5, 5], gem:[3, 5, 7, 10, 13], score:[200, 400, 600, 800, 1000], regen:[5, 15, 25, 50, 75]}, {hp:[1500, 2050, 3000, 5000, 7500], speed:[0.8, 0.8, 0.9, 0.9, 1], dmg:[4, 5, 6, 6, 7], gem:[5, 8, 11, 14, 18], score:[300, 600, 900, 1200, 1500], regen:[15, 30, 50, 75, 100]}, {hp:[120, 450, 1100, 1950, 4200], speed:[0.5, 0.7, 0.9, 1.1, 1.3], dmg:[2, 3, 4, 4, 5], gem:[2, 3, 4, 6, 9], score:[150, 250, 350, 450, 600]}, {hp:[600, 1100, 1800, 2550, 4250], speed:[0.3, 0.5, 0.7, 0.9, 1.1], dmg:[3, 4, 5, 5, 6], gem:[3, 6, 9, 12, 15], score:[200, 350, 500, 800, 1250], restealth:[10, 9, 8, 8, 7], stealth:[4, 4.5, 5, 5, 5.5]}, {hp:[3000, 30000, 60000, 100000], speed:[1, 1.1, 1.3, 1.5], dmg:[10, 15, 20, 30], gem:[60, 250, 400, 1], score:[5000, 15000, 35000, 75000]}, {hp:[6000, 38000, 60000, 100000], speed:[1, 1.1, 1.2, 1.3], dmg:[10, 15, 20, 30], gem:[100, 300, 400, 1], score:[7500, 20000, 40000, 75000]}, {hp:[18000, 60000, 90000, 120000], speed:[1, 1.3, 1.5, 1.7], dmg:[10, 15, 20, 25], gem:[200, 400, 500, 1], score:[15000, 30000, 60000, 100000], restealth:[10, 9, 8, 8], stealth:[4, 5, 6, 5]}, {hp:[20000, 75000, 140000, 200000], speed:[0.3, 0.3, 0.3, 0.3], dmg:[15, 25, 35, 50], gem:[150, 400, 500, 1], score:[10000, 25000, 50000, 150000], regen:[50, 150, 300, 400]}, {hp:[27500, 75000, 130000, 175000], speed:[1, 1, 1, 1], dmg:[15, 22, 30, 35], gem:[250, 450, 600, 1], score:[25000, 50000, 100000, 200000], restealth:[10, 9, 8, 8], stealth:[3, 4, 5, 6], regen:[25, 100, 200, 300]}];
public static var lightningstrikecooldownlv:int;
public static var fireraincooldown:Array = [0.9, 0.95, 1, 1.06, 1.2];
public static var boulderfalllearncost:int = 25;
public static var novablastdmg:Array = [100, 140, 200, 300, 425, 550, 750, 1050, 1400];
public static var fireballbulletlv:int;
public static var tutorlimit:Boolean;
public static var icestormslow:Array = [0.4, 0.55, 0.75];
public static var zeuswrathdmgcost:Array = [75, 125, 175, 250, 325, 400, 500, 600];
public static var novablastlearncost:int = 150;
public static var firerainburnduration:int = 40;
public static var boulderfallcooldown:Array = [1.38, 1.44, 1.5, 1.56, 1.64];
public static var startx:Array = [75, 480, 803, 805];
public static var starty:Array = [52, 53, 137, 406];
public static var lightningspearbulletlv:int;
public static var lightningspearbulletcost:Array = [175, 350];
public static var iciclecooldowncost:Array = [15, 40, 70, 100];
public static var lightningstrikecooldown:Array = [1.8, 1.9, 2, 2.12, 2.25];
public static var easterstrikebulletcost:Array = [150, 300];
public static var meteorburndmglv:int;
public static var earthquakedmglv:int;
public static var earthquakedmgcost:Array = [70, 150, 200, 250, 300, 375, 450];
public static var icicleslowcost:Array = [15, 40, 100];
public static var fireballlearncost:int = 25;
public static var fireraindmglv:int;
public static var fireraincooldownlv:int;
public static var novablastcooldownlv:int;
public static var lightningstrikestuncost:Array = [60, 120, 200];
public static var firerainlearncost:int = 150;
public static var lightningstrikedmg:Array = [45, 75, 120, 180, 250, 350, 475, 650, 850, 1100, 1400];
public static var iciclelearncost:int = 25;
public static var icestormslowcost:Array = [75, 150];
public static var lightningspearcooldowncost:Array = [50, 100, 150, 250];
public static var score:int;
public static var icestormgauge:int = 360;
public static var lightningstrikelearncost:int = 25;
public static var lightningstrikeduration:int = 80;
public static var iciclecooldown:Array = [2.25, 2.4, 2.57, 2.76, 3];
public static var icestormdmglv:int;
public static var icestormlearncost:int = 300;
public static var xpath:Array = [[75, 205, 205, 130, 130, 50, 50, 90, 90], [480, 400, 400, 328, 328, 241, 241, 170, 170], [765, 765, 680, 680, 585, 585, 425, 425, 280, 280, 240], [742, 742, 638, 638, 543, 543, 400, 400, 300, 300, 245]];
public static var meteordmgcost:Array = [75, 125, 175, 225, 300, 375, 450];
public static var boulderfallcooldowncost:Array = [30, 60, 90, 150];
public static var novablastslowcost:Array = [50, 100];
public static var lightningspearstun:Array = [25, 35, 45];
public static var easterstrikedmgcost:Array = [75, 125, 200, 300, 400, 550, 750, 1000];
public static var zeuswrathstun:Array = [60, 75, 100];
public static var lightningstrikecooldowncost:Array = [25, 50, 75, 100];
public static var novablastcooldown:Array = [0.9, 0.95, 1, 1.06, 1.2];
public static var easterstrikedurationlv:int;
public static var creepkilled:int;
public static var lightningstrikecharge:Number = 4;
public static var zeuswrathlearncost:int = 300;
public static var lightningspearcharge:Number = 15;
public static var fireballbulletcost:Array = [25, 100, 200];
public static var firerainburndmg:Array = [5, 10, 18, 30, 45, 65, 90, 130, 175];
public static var boulderfallbulletcost:Array = [50, 150, 250];
public static var fireballburndmgcost:Array = [5, 15, 30, 55, 80, 120, 175, 250, 325, 450];
public static var icestormgaugecost:int = 100;
public static var lightningspearcooldownlv:int;
public static var meteorgauge:int;
public static var earthquakegauge:int;
public static var easterstrikecooldownlv:int;
public static var icestormslowduration:int = 240;
public static var icestormdmgcost:Array = [75, 125, 175, 225, 300, 375, 450];
public static var firerainbulletlv:int;
public static var meteordmglv:int;
public static var easterstrikedmglv:int;
public static var zeuswrathdmg:Array = [650, 800, 1000, 1250, 1600, 2000, 2700, 3500, 5000];
public static var fireballdmglv:int;
public static var boulderfallbulletlv:int;
public static var zeuswrathgaugecost:int = 100;
public static var visiblehp:int = 60;
public static var icicledmglv:int;
public static var icicledmgcost:Array = [15, 35, 75, 120, 175, 250, 350, 500, 700, 950];
public static var novablastdmgcost:Array = [50, 75, 125, 225, 350, 550, 750, 1000];
public static var novablastcharge:int = 18;
public static var fireballburndmglv:int;
public static var fireballdmgcost:Array = [10, 25, 60, 100, 160, 250, 375, 525, 700, 900];
public static var icestormdmg:Array = [550, 700, 1000, 1400, 2000, 2750, 3500, 4500];
public static var zeuswrathduration:int = 200;
public static var zeuswrathstuncost:Array = [150, 300];
public static var earthquakedmg:Array = [300, 400, 500, 700, 850, 1000, 1200, 1500];
public static var novablastcooldowncost:Array = [40, 80, 120, 200];
public static var firerainburndmglv:int;
public static var lightningstrikebulletlv:int;
public static var lightningspeardmglv:int;
public static var boulderfallcooldownlv:int;
public static var iciclecharge:Number = 5;
public static var boulderfalldmg:Array = [25, 35, 55, 85, 125, 180, 250, 350, 450, 600, 800];
public static var zeuswrathgauge:int;
public static var easterstrikecooldown:Array = [0.64, 0.67, 0.72, 0.78, 0.9];
public static var fireballcooldownlv:int;
public static var boulderfalldmglv:int;
public static var easterstrikedurationcost:Array = [100, 175, 250];
public static var zeuswrathdmglv:int;
public static var weakmultiplier:Number = 1.5;
public static var novablastdmglv:int;
public static var icicleslowduration:int = 160;
public static var totcreep:int;
public static var gem:int;
public static var iciclebulletlv:int;
public static var novablastslow:Array = [0.2, 0.3, 0.4];
public static var lightningstrikedmgcost:Array = [25, 55, 100, 150, 250, 375, 500, 650, 800, 1000];
public static var easterstrikecharge:Number = 30;
public static var novablastbulletlv:int;
public static var easterstrikecooldowncost:Array = [75, 150, 225, 300];
public static var lightningspeardmg:Array = [110, 160, 225, 300, 400, 550, 725, 950, 1200];
public static var earthquakeduration:int = 200;
public static var easterstrikeduration:Array = [160, 200, 240, 280];
public static var fireballcooldowncost:Array = [15, 40, 70, 100];
public static var magmaxbullet:Array = [0, 0, 0, 0];
public static var zeuswrathstunlv:int;
public static var level:int;
public static var fireraincooldowncost:Array = [40, 80, 120, 200];
public static var lightningstrikedmglv:int;
public static var zeuswrathstrikecount:int;
public static var novablastslowlv:int;
public static var lightningspeardmgcost:Array = [75, 125, 225, 350, 500, 650, 850, 1100];
public static var fireballcooldown:Array = [2.57, 2.76, 3, 3.3, 3.6];
public static var magcooldownctr:Array = [0, 0, 0, 0];
public static var easterstrikebulletlv:int;
public static var fireballdmg:Array = [20, 35, 60, 100, 150, 210, 280, 400, 550, 750, 1000];
public static var meteorburndmg:Array = [100, 150, 225, 350, 500, 700, 1000];
public static var boulderfallcharge:Number = 6;
public static var icicleslow:Array = [0.3, 0.35, 0.45, 0.6];
public static var zeuswrathstrikecost:Array = [50, 100, 150, 200, 250, 325, 400];
public static var icicledmg:Array = [35, 50, 75, 120, 180, 250, 350, 500, 700, 950, 1200];
public static var lightningstrikestun:Array = [40, 50, 60, 70];
public static var lightningspearcooldown:Array = [0.9, 0.95, 1, 1.06, 1.2];
public static var iciclebulletcost:Array = [25, 100, 200];
public static var magcooldown:Array = [270, 270, 270, 270, 270];
public static var icicleslowlv:int;
public static var lightningstrikestunlv:int;
public static var fireraindmgcost:Array = [50, 75, 125, 225, 350, 550, 750, 1000];
public static var tutormulti:Boolean;
public static var lightningspearlearncost:int = 175;
public static var lightningstrikebulletcost:Array = [25, 100, 200];
public static var magslot:Array = ["", "", "", "", ""];
public static var meteordmg:Array = [700, 1400, 2100, 3000, 4000, 5500, 7500, 10000];
public static var lightningspearstunlv:int;
public static var lightningspearstuncost:Array = [125, 250];
public static var novablastslowduration:int = 120;
public static var easterstrikedmg:Array = [550, 700, 850, 1100, 1400, 1800, 2300, 3000, 4000];
public static var lightningspearduration:int = 80;
public static var earthquakelearncost:int = 300;
public static var meteorlearncost:int = 300;
public static var meteorburndmgcost:Array = [50, 100, 150, 200, 250, 300];
public static var boulderfalldmgcost:Array = [25, 60, 100, 150, 220, 300, 400, 550, 750, 1000];
public static var easterstrikelearncost:int = 150;
public static var fireballburndmg:Array = [6, 11, 18, 30, 45, 65, 100, 160, 225, 325, 450];
public static var fireraindmg:Array = [20, 30, 45, 70, 100, 140, 190, 250, 325];
public static var fireraincharge:Number = 18;
}
}//package
Section 86
//gameover (gameover)
package {
import flash.media.*;
public dynamic class gameover extends Sound {
}
}//package
Section 87
//GameWindow (GameWindow)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import gs.*;
public class GameWindow extends MovieClip {
public var layercreepfly:Layer;
public var layercreep:Layer;
public var sd:SaveDialog;
public var tracemode:Boolean;// = false
public var layertutor:Layer;
public var arrbullet:Array;
public var hpvillage:MovieClip;
public var ctrclear:int;// = 0
public var ctrgameover:int;// = 0
public var ctrhp:int;
public var layerwiz:Layer;
public var layereff:Layer;
public var layermagic:Layer;
public var layerintermission:Layer;
public var statbar:MovieClip;
public var arrcreep:Array;
public var tutormc:Tutor;
public var lc:LevelController;
public var ld:LoadDialog;
public var layerwindowstatus:Layer;
public var layercooldown:Layer;
public var imd:IntermissionDialog;
public var od:OptionDialog;
public var arrmagic:Array;
public var wiz:MovieClip;
public function GameWindow(){
var _local1:*;
layerwiz = new Layer();
layercreep = new Layer();
layercreepfly = new Layer();
layermagic = new Layer();
layerwindowstatus = new Layer();
layercooldown = new Layer();
layereff = new Layer();
layerintermission = new Layer();
layertutor = new Layer();
lc = new LevelController();
arrcreep = new Array();
arrmagic = new Array();
arrbullet = new Array();
tracemode = false;
tutormc = new Tutor();
ctrclear = 0;
ctrgameover = 0;
super();
this.addEventListener(FocusEvent.FOCUS_OUT, refocus, false, 0, true);
this.addEventListener(KeyboardEvent.KEY_DOWN, keyboardcontrol, false, 0, true);
addChild(layerwiz);
addChild(layercreep);
addChild(layercreepfly);
addChild(layermagic);
addChild(layereff);
addChild(layerwindowstatus);
addChild(layercooldown);
addChild(layerintermission);
addChild(layertutor);
layerwiz.addChild(wiz);
layertutor.addChild(tutormc);
layerwindowstatus.addChild(statbar);
layerintermission.addChild(imd);
layerintermission.addChild(sd);
layerintermission.addChild(ld);
layertutor.addChild(od);
layerwindowstatus.addChild(hpvillage);
ctrhp = 0;
hpvillage.curbar.gotoAndStop("Green");
hpvillage.mouseEnabled = false;
hpvillage.visible = false;
addEventListener(Event.ENTER_FRAME, update, false, 0, true);
this.addEventListener(MouseEvent.MOUSE_DOWN, castMagic, false, 0, true);
drawmagicinstatbar();
createbullet();
statbar.mouseEnabled = false;
statbar.tgem.text = GameData.gem;
statbar.tscore.text = GameData.score;
statbar.tcreep.text = GameData.totcreep;
_local1 = 0;
while (_local1 <= 4) {
statbar[("slot" + _local1)].addEventListener(MouseEvent.CLICK, selectmagic, false, 0, true);
_local1++;
};
}
public function castcommonmagic(){
wiz.gotoAndPlay("cast");
arrbullet[GameData.magselect][(GameData.magbullet[GameData.magselect] - 1)].gotoAndStop("empty");
var _local1 = GameData.magbullet;
var _local2 = GameData.magselect;
var _local3 = (_local1[_local2] - 1);
_local1[_local2] = _local3;
if (GameData.magbullet[GameData.magselect] == 0){
GameData.magcooldown[GameData.magselect] = -90;
statbar[("slot" + GameData.magselect)].micon.gotoAndStop((GameData.magslot[GameData.magselect] + "inactive"));
};
}
private function createFireRain():void{
var _local1:MovieClip;
if ((((GameData.magslot[4] == "meteor")) && ((GameData.magcooldown[4] < 270)))){
GameData.magcooldown[4] = (GameData.magcooldown[4] + GameData.fireraincharge);
};
_local1 = new FireRain();
_local1.x = mouseX;
_local1.y = mouseY;
_local1.colrect = new Rectangle((_local1.x - 70), (_local1.y - 90), 140, 180);
arrmagic.push(_local1);
layermagic.addChild(_local1);
}
public function dispose(){
i = 0;
while (i < arrmagic.length) {
Global.trash(arrmagic[i], null, null);
i++;
};
lc.dispose();
TweenMax.killAllTweens();
}
private function selectmagic(_arg1:MouseEvent):void{
var _local2:int;
_local2 = _arg1.currentTarget.name.charAt(4);
if (GameData.magslot[_local2] != ""){
GameData.magselect = _local2;
drawmagicinstatbar();
};
}
public function sortcreep(){
Global.sortChildren(layercreep);
}
public function createIcicle(_arg1:Creep){
var _local2:MovieClip;
if ((((GameData.magslot[4] == "icestorm")) && ((GameData.magcooldown[4] < 270)))){
GameData.magcooldown[4] = (GameData.magcooldown[4] + GameData.iciclecharge);
};
Main.mc.sc.playSFX("magicicicle");
_local2 = new Icicle();
_local2.x = 5;
_local2.y = -10;
_local2.target = _arg1;
arrmagic.push(_local2);
_arg1.layermagicanim.addChild(_local2);
}
private function createIceStorm(){
var _local1:MovieClip;
_local1 = new IceStorm();
Main.mc.sc.playSFX("blizzard");
arrmagic.push(_local1);
layermagic.addChild(_local1);
}
private function createBoulderFall():void{
var _local1:MovieClip;
if ((((GameData.magslot[4] == "earthquake")) && ((GameData.magcooldown[4] < 270)))){
GameData.magcooldown[4] = (GameData.magcooldown[4] + GameData.boulderfallcharge);
};
Main.mc.sc.playSFX("magicboulder");
_local1 = new BoulderFall();
_local1.x = mouseX;
_local1.y = mouseY;
arrmagic.push(_local1);
layermagic.addChild(_local1);
}
public function createLightningStrike(_arg1:Creep){
var _local2:MovieClip;
if ((((GameData.magslot[4] == "zeuswrath")) && ((GameData.magcooldown[4] < 270)))){
GameData.magcooldown[4] = (GameData.magcooldown[4] + GameData.lightningstrikecharge);
};
Main.mc.sc.playSFX("magiclightning");
_local2 = new LightningStrike();
_local2.x = 5;
_local2.y = -10;
_local2.target = _arg1;
arrmagic.push(_local2);
_arg1.layermagicanim.addChild(_local2);
}
public function refocus(_arg1:FocusEvent):void{
stage.focus = this;
}
public function drawcooldown(){
var _local1:*;
var _local2:*;
layercooldown.graphics.clear();
_local1 = 0;
while (_local1 <= 3) {
if (GameData.magcooldown[_local1] != 270){
GameData.magcooldown[_local1] = (GameData.magcooldown[_local1] + GameData.magcooldownctr[_local1]);
if (GameData.magcooldown[_local1] > 270){
GameData.magcooldown[_local1] = 270;
};
Global.drawWedge(layercooldown, 0, 0.7, statbar[("slot" + _local1)].x, statbar[("slot" + _local1)].y, 20, GameData.magcooldown[_local1], 270);
if (GameData.magcooldown[_local1] == 270){
statbar[("slot" + _local1)].micon.gotoAndStop(GameData.magslot[_local1]);
GameData.magbullet[_local1] = GameData.magmaxbullet[_local1];
_local2 = 0;
while (_local2 < arrbullet[_local1].length) {
arrbullet[_local1][_local2].gotoAndStop("fill");
_local2++;
};
};
};
_local1++;
};
if (((!((GameData.magslot[4] == ""))) && (!((GameData.magcooldown[4] == 270))))){
if (GameData.magcooldown[4] > 270){
GameData.magcooldown[4] = 270;
};
Global.drawWedge(layercooldown, 0, 0.7, statbar["slot4"].x, statbar["slot4"].y, 40, GameData.magcooldown[4], 270);
if (GameData.magcooldown[4] == 270){
statbar["slot4"].micon.gotoAndStop(GameData.magslot[4]);
};
};
}
public function createZeusWrath():void{
var _local1:MovieClip;
_local1 = new ZeusWrath();
_local1.x = 0;
_local1.y = 0;
arrmagic.push(_local1);
layermagic.addChild(_local1);
}
public function update(_arg1:Event):void{
var _local2:*;
var _local3:Number;
if (!Main.mc.pausestate){
_local2 = 0;
while (_local2 < arrcreep.length) {
if (((!((arrcreep[_local2] == null))) && ((arrcreep[_local2].hp > 0)))){
arrcreep[_local2].moveandupdate();
};
_local2++;
};
_local2 = 0;
while (_local2 < arrmagic.length) {
arrmagic[_local2].update();
_local2++;
};
drawcooldown();
if (ctrhp > 0){
ctrhp--;
if (ctrhp <= 0){
hpvillage.visible = false;
};
};
if (ctrclear > 0){
ctrclear--;
if (ctrclear == 0){
_local2 = 0;
while (_local2 < arrmagic.length) {
Global.trash(arrmagic[_local2], null, null);
_local2++;
};
_local3 = ((GameData.creepkilled * 100) / GameData.maxcreep);
if (_local3 >= 100){
imd.cw.trank.text = "S";
} else {
if (_local3 >= 80){
imd.cw.trank.text = "A";
} else {
if (_local3 >= 60){
imd.cw.trank.text = "B";
} else {
if (_local3 >= 40){
imd.cw.trank.text = "C";
} else {
if (_local3 >= 20){
imd.cw.trank.text = "D";
} else {
imd.cw.trank.text = "E";
};
};
};
};
};
imd.showmodal();
imd.sw.visible = false;
imd.cw.visible = true;
imd.mw.visible = false;
imd.gw.visible = false;
imd.nextmissionbtn.visible = false;
imd.spellbtn.visible = false;
imd.cw.tcreep.text = ((GameData.creepkilled + " / ") + GameData.maxcreep);
};
};
if (ctrgameover > 0){
ctrgameover--;
if (ctrgameover == 0){
_local2 = 0;
while (_local2 < arrmagic.length) {
Global.trash(arrmagic[_local2], null, null);
_local2++;
};
imd.showmodal();
imd.sw.visible = false;
imd.gw.visible = true;
imd.mw.visible = false;
imd.cw.visible = false;
imd.nextmissionbtn.visible = false;
imd.spellbtn.visible = false;
lc.dispose();
};
};
};
}
private function createEasterStrike():void{
var _local1:MovieClip;
if ((((GameData.magslot[4] == "earthquake")) && ((GameData.magcooldown[4] < 270)))){
GameData.magcooldown[4] = (GameData.magcooldown[4] + GameData.easterstrikecharge);
};
_local1 = new EasterStrike();
_local1.x = mouseX;
_local1.y = mouseY;
_local1.coldamagerect = new Rectangle((_local1.x - 50), (_local1.y - 40), 100, 80);
_local1.colstoprect = new Rectangle((_local1.x - 30), (_local1.y - 40), 60, 80);
arrmagic.push(_local1);
layermagic.addChild(_local1);
}
private function createEarthQuake(){
var _local1:EarthQuake;
_local1 = new EarthQuake();
Main.mc.sc.playSFX("magicquake", true);
arrmagic.push(_local1);
}
public function createbullet(){
var _local1:*;
var _local2:*;
var _local3:Array;
var _local4:MovieClip;
_local1 = 0;
while (_local1 < arrbullet.length) {
_local2 = 0;
while (_local2 < arrbullet[_local1].length) {
Global.trash(arrbullet[_local1][_local2], null, null);
_local2++;
};
_local1++;
};
arrbullet.splice(0, arrbullet.length);
_local1 = 0;
while (_local1 <= 3) {
if (GameData.magslot[_local1] != ""){
_local3 = new Array();
_local2 = 0;
while (_local2 < GameData.magmaxbullet[_local1]) {
_local4 = new Bulletmc();
_local4.gotoAndStop("fill");
_local4.mouseEnabled = false;
_local3.push(_local4);
_local2++;
};
if (GameData.magmaxbullet[_local1] == 1){
_local3[0].x = statbar[("slot" + _local1)].x;
_local3[0].y = 52;
} else {
if (GameData.magmaxbullet[_local1] == 2){
_local3[0].x = (statbar[("slot" + _local1)].x - 7);
_local3[0].y = 50;
_local3[1].x = (statbar[("slot" + _local1)].x + 7);
_local3[1].y = 50;
_local3[0].rotation = 20;
_local3[1].rotation = -20;
} else {
if (GameData.magmaxbullet[_local1] == 3){
_local3[0].x = (statbar[("slot" + _local1)].x - 16);
_local3[0].y = 46;
_local3[1].x = statbar[("slot" + _local1)].x;
_local3[1].y = 52;
_local3[2].x = (statbar[("slot" + _local1)].x + 16);
_local3[2].y = 46;
_local3[0].rotation = 30;
_local3[2].rotation = -30;
} else {
if (GameData.magmaxbullet[_local1] == 4){
_local3[0].x = (statbar[("slot" + _local1)].x - 20);
_local3[0].y = 43;
_local3[1].x = (statbar[("slot" + _local1)].x - 7);
_local3[1].y = 50;
_local3[2].x = (statbar[("slot" + _local1)].x + 7);
_local3[2].y = 50;
_local3[3].x = (statbar[("slot" + _local1)].x + 20);
_local3[3].y = 43;
_local3[0].rotation = 50;
_local3[1].rotation = 20;
_local3[2].rotation = -20;
_local3[3].rotation = -50;
} else {
if (GameData.magmaxbullet[_local1] == 5){
_local3[0].x = (statbar[("slot" + _local1)].x - 24);
_local3[0].y = 34;
_local3[1].x = (statbar[("slot" + _local1)].x - 16);
_local3[1].y = 46;
_local3[2].x = statbar[("slot" + _local1)].x;
_local3[2].y = 52;
_local3[3].x = (statbar[("slot" + _local1)].x + 16);
_local3[3].y = 46;
_local3[4].x = (statbar[("slot" + _local1)].x + 24);
_local3[4].y = 34;
_local3[0].rotation = 50;
_local3[1].rotation = 30;
_local3[3].rotation = -30;
_local3[4].rotation = -50;
} else {
if (GameData.magmaxbullet[_local1] == 6){
_local3[0].x = (statbar[("slot" + _local1)].x - 26);
_local3[0].y = 30;
_local3[1].x = (statbar[("slot" + _local1)].x - 20);
_local3[1].y = 43;
_local3[2].x = (statbar[("slot" + _local1)].x - 7);
_local3[2].y = 50;
_local3[3].x = (statbar[("slot" + _local1)].x + 7);
_local3[3].y = 50;
_local3[4].x = (statbar[("slot" + _local1)].x + 20);
_local3[4].y = 43;
_local3[5].x = (statbar[("slot" + _local1)].x + 26);
_local3[5].y = 30;
_local3[0].rotation = 80;
_local3[1].rotation = 50;
_local3[2].rotation = 20;
_local3[3].rotation = -20;
_local3[4].rotation = -50;
_local3[5].rotation = -80;
};
};
};
};
};
};
_local2 = 0;
while (_local2 < _local3.length) {
statbar.addChild(_local3[_local2]);
_local2++;
};
arrbullet.push(_local3);
} else {
arrbullet.push(new Object());
};
_local1++;
};
}
public function pauseGame(){
var _local1:*;
Main.mc.pausestate = !(Main.mc.pausestate);
if (Main.mc.pausestate){
TweenMax.pauseAll();
wiz.stop();
_local1 = 0;
while (_local1 < arrcreep.length) {
arrcreep[_local1].creepmc.stop();
_local1++;
};
lc.timerwave.pause();
_local1 = 0;
while (_local1 < lc.arrwave.length) {
if (lc.arrwave[_local1].timercreep.running){
lc.arrwave[_local1].timercreep.pause();
};
_local1++;
};
_local1 = 0;
while (_local1 < arrmagic.length) {
arrmagic[_local1].pause();
_local1++;
};
} else {
TweenMax.resumeAll();
wiz.play();
_local1 = 0;
while (_local1 < arrcreep.length) {
if (arrcreep[_local1].ctrstun == 0){
arrcreep[_local1].creepmc.play();
};
_local1++;
};
lc.timerwave.resume();
_local1 = 0;
while (_local1 < lc.arrwave.length) {
if (lc.arrwave[_local1].timercreep.paused){
lc.arrwave[_local1].timercreep.resume();
};
_local1++;
};
_local1 = 0;
while (_local1 < arrmagic.length) {
arrmagic[_local1].resume();
_local1++;
};
};
}
public function createLightningSpear():void{
var _local1:MovieClip;
if ((((GameData.magslot[4] == "zeuswrath")) && ((GameData.magcooldown[4] < 270)))){
GameData.magcooldown[4] = (GameData.magcooldown[4] + GameData.lightningspearcharge);
};
Main.mc.sc.playSFX("magiclightningspear");
_local1 = new LightningSpear();
_local1.init(mouseX, mouseY);
_local1.x = 165;
_local1.y = 450;
arrmagic.push(_local1);
layermagic.addChild(_local1);
}
public function castlimitmagic(){
wiz.gotoAndPlay("cast");
GameData.magcooldown[4] = -90;
statbar["slot4"].micon.gotoAndStop((GameData.magslot[4] + "inactive"));
}
public function createeff(_arg1:String, _arg2:int, _arg3:int){
var _local4:MovieClip;
if (_arg1 != "MISS"){
_local4 = new gaingem();
_local4.tgem.text = _arg1;
_local4.x = _arg2;
_local4.y = _arg3;
} else {
_local4 = new miss();
_local4.x = _arg2;
_local4.y = _arg3;
};
layereff.addChild(_local4);
TweenMax.to(_local4, 0.7, {y:(_arg3 - 30), onComplete:Global.del, onCompleteParams:[_local4]});
}
private function createFire():void{
var _local1:MovieClip;
if ((((GameData.magslot[4] == "meteor")) && ((GameData.magcooldown[4] < 270)))){
GameData.magcooldown[4] = (GameData.magcooldown[4] + GameData.fireballcharge);
};
Main.mc.sc.playSFX("magicfireball");
_local1 = new Fireball();
_local1.init(mouseX, mouseY);
_local1.x = 165;
_local1.y = 450;
arrmagic.push(_local1);
layermagic.addChild(_local1);
}
private function createNovaBlast():void{
var _local1:MovieClip;
if ((((GameData.magslot[4] == "icestorm")) && ((GameData.magcooldown[4] < 270)))){
GameData.magcooldown[4] = (GameData.magcooldown[4] + GameData.novablastcharge);
};
Main.mc.sc.playSFX("magicnova");
_local1 = new NovaBlast();
_local1.x = mouseX;
_local1.y = mouseY;
_local1.colrect = new Rectangle((_local1.x - 110), (_local1.y - 85), 220, 170);
arrmagic.push(_local1);
layermagic.addChild(_local1);
}
private function keyboardcontrol(_arg1:KeyboardEvent):void{
var _local2:*;
switch (_arg1.keyCode){
case 32:
break;
case 27:
if (od.showed){
od.closemodal();
} else {
od.show();
};
if (((!(imd.visible)) && (!(tutormc.visible)))){
pauseGame();
};
break;
case 49:
case 50:
case 51:
case 52:
_local2 = (_arg1.keyCode - 49);
if (GameData.magslot[_local2] != ""){
GameData.magselect = _local2;
drawmagicinstatbar();
};
break;
case 192:
if (GameData.magslot[4] != ""){
GameData.magselect = 4;
drawmagicinstatbar();
};
break;
};
}
public function drawmagicinstatbar(){
var _local1:*;
_local1 = 0;
while (_local1 <= 4) {
statbar[("slot" + _local1)].gotoAndStop("inactive");
if (GameData.magslot[_local1] != ""){
statbar[("slot" + _local1)].micon.visible = true;
if (GameData.magcooldown[_local1] >= 270){
statbar[("slot" + _local1)].micon.gotoAndStop(GameData.magslot[_local1]);
} else {
statbar[("slot" + _local1)].micon.gotoAndStop((GameData.magslot[_local1] + "inactive"));
};
} else {
statbar[("slot" + _local1)].micon.visible = false;
};
_local1++;
};
if ((((GameData.magselect >= 0)) && ((GameData.magselect <= 4)))){
statbar[("slot" + GameData.magselect)].gotoAndStop("active");
};
}
private function castMagic(_arg1:MouseEvent):void{
if ((((((((((mouseY > 60)) && (!(Main.mc.pausestate)))) && (!(imd.showed)))) && ((ctrclear == 0)))) && ((ctrgameover == 0)))){
if ((((GameData.magslot[GameData.magselect] == "fireball")) && ((GameData.magbullet[GameData.magselect] > 0)))){
castcommonmagic();
createFire();
} else {
if ((((GameData.magslot[GameData.magselect] == "boulderfall")) && ((GameData.magbullet[GameData.magselect] > 0)))){
castcommonmagic();
createBoulderFall();
} else {
if ((((GameData.magslot[GameData.magselect] == "lightningspear")) && ((GameData.magbullet[GameData.magselect] > 0)))){
castcommonmagic();
createLightningSpear();
} else {
if ((((GameData.magslot[GameData.magselect] == "firerain")) && ((GameData.magbullet[GameData.magselect] > 0)))){
castcommonmagic();
createFireRain();
} else {
if ((((GameData.magslot[GameData.magselect] == "easterstrike")) && ((GameData.magbullet[GameData.magselect] > 0)))){
castcommonmagic();
createEasterStrike();
} else {
if ((((GameData.magslot[GameData.magselect] == "novablast")) && ((GameData.magbullet[GameData.magselect] > 0)))){
castcommonmagic();
createNovaBlast();
} else {
if ((((GameData.magslot[GameData.magselect] == "meteor")) && ((GameData.magcooldown[4] == 270)))){
castlimitmagic();
createMeteor();
} else {
if ((((GameData.magslot[GameData.magselect] == "icestorm")) && ((GameData.magcooldown[4] == 270)))){
castlimitmagic();
createIceStorm();
} else {
if ((((GameData.magslot[GameData.magselect] == "zeuswrath")) && ((GameData.magcooldown[4] == 270)))){
castlimitmagic();
createZeusWrath();
} else {
if ((((GameData.magslot[GameData.magselect] == "earthquake")) && ((GameData.magcooldown[4] == 270)))){
castlimitmagic();
createEarthQuake();
};
};
};
};
};
};
};
};
};
};
};
}
private function createMeteor():void{
var _local1:MovieClip;
_local1 = new Meteor();
_local1.x = mouseX;
_local1.y = mouseY;
_local1.colrect = new Rectangle((_local1.x - 150), (_local1.y - 170), 300, 340);
arrmagic.push(_local1);
layermagic.addChild(_local1);
}
}
}//package
Section 88
//Global (Global)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import flash.external.*;
public class Global {
protected static const WINDOW_OPEN_FUNCTION:String = "window.open";
public static var STAGE_WIDTH = 600;
public static var STAGE_HEIGHT = 450;
function propertyExists(_arg1:Object, _arg2:String):Boolean{
var desc:XML;
var obj = _arg1;
var name = _arg2;
desc = describeType(obj)..accessor;
return ((desc.accessor.(@name == name).length() > 0));
}
function methodExists(_arg1:Object, _arg2:String):Boolean{
var desc:XML;
var obj = _arg1;
var name = _arg2;
desc = describeType(obj)..method;
return ((desc.method.(@name == name).length() > 0));
}
private static function playsfxbtnclick(_arg1:MouseEvent):void{
Main.mc.sc.playSFX(Main.mc.sfxbuttonclick);
}
public static function AngleOfTwoLines(_arg1:Object, _arg2:Object):Number{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
_local3 = _arg1.x1;
_local4 = _arg1.y1;
_local5 = _arg1.x2;
_local6 = _arg1.y2;
_local7 = _arg2.x1;
_local8 = _arg2.y1;
_local9 = _arg2.x2;
_local10 = _arg2.y2;
_local11 = Global.Slope(_local3, _local4, _local5, _local6);
_local12 = Global.Slope(_local7, _local8, _local9, _local10);
return (Math.atan(((_local12 - _local11) / (1 + (_local11 * _local12)))));
}
private static function playsfxbtnover(_arg1:MouseEvent):void{
Main.mc.sc.playSFX(Main.mc.sfxbuttonover);
}
public static function moveAngle(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Rectangle):Boolean{
var _local5:Number;
var _local6:Number;
if ((((_arg4 == null)) || (((_arg4) && (_arg4.contains(_arg1.x, _arg1.y)))))){
_local5 = (_arg3 * Math.cos(DegToRad(_arg2)));
_local6 = (_arg3 * Math.sin(DegToRad(_arg2)));
_arg1.x = (_arg1.x + _local5);
_arg1.y = (_arg1.y + _local6);
} else {
if (_arg4.contains(_arg1.x, _arg1.y) == false){
return (true);
};
};
return (false);
}
public static function Slope(_arg1, _arg2, _arg3, _arg4):Number{
var _local5:Number;
var _local6:Number;
_local5 = (_arg1 - _arg3);
_local6 = (_arg2 - _arg4);
return ((_local6 / _local5));
}
public static function AngleOfTwoDots(_arg1, _arg2, _arg3, _arg4):Number{
var _local5:Number;
var _local6:Number;
_local5 = (_arg1 - _arg3);
_local6 = (_arg2 - _arg4);
return (RadToDeg(Math.atan2(_local6, _local5)));
}
public static function sortChildren(_arg1:DisplayObjectContainer){
var _local2:Array;
var _local3:*;
_local2 = new Array();
_local3 = 0;
while (_local3 < _arg1.numChildren) {
if (_arg1.getChildAt(_local3)){
_local2.push(_arg1.getChildAt(_local3));
};
_local3++;
};
_local2.sortOn("y", Array.NUMERIC);
_local3 = _local2.length;
while (_local3 >= 0) {
if (((_local2[_local3]) && (!(((_local2[_local3] as MovieClip).parent == null))))){
_arg1.setChildIndex(_local2[_local3], 0);
};
_local3--;
};
}
public static function del(_arg1:Object){
if (_arg1.parent){
_arg1.parent.removeChild(_arg1);
};
_arg1 = null;
}
public static function DegToRad(_arg1:Number):Number{
return (((_arg1 / 180) * Math.PI));
}
public static function Distance(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (Math.sqrt((Math.pow((_arg3 - _arg1), 2) + Math.pow((_arg4 - _arg2), 2))));
}
public static function RadToDeg(_arg1:Number):Number{
return (((_arg1 * 180) / Math.PI));
}
public static function drawWedge(_arg1:Sprite, _arg2:uint, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number){
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
var _local16:*;
var _local17:*;
var _local18:*;
var _local19:*;
var _local20:*;
_local9 = (Math.PI / 180);
if (_arg8 < _arg7){
_arg8 = (_arg8 + 360);
};
_local10 = _arg6;
_local11 = Math.ceil(((_arg8 - _arg7) / 45));
_local12 = (((_arg8 - _arg7) / _local11) * _local9);
_local13 = (_arg6 / Math.cos((_local12 / 2)));
_local14 = (_arg7 * _local9);
_local15 = (_local14 - (_local12 / 2));
_arg1.graphics.beginFill(_arg2, _arg3);
_arg1.graphics.moveTo(_arg4, _arg5);
_arg1.graphics.lineTo((_arg4 + (_local10 * Math.cos(_local14))), (_arg5 + (_local10 * Math.sin(_local14))));
_local16 = 0;
while (_local16 < _local11) {
_local14 = (_local14 + _local12);
_local15 = (_local15 + _local12);
_local17 = (_local10 * Math.cos(_local14));
_local18 = (_local10 * Math.sin(_local14));
_local19 = (_local13 * Math.cos(_local15));
_local20 = (_local13 * Math.sin(_local15));
_arg1.graphics.curveTo((_arg4 + _local19), (_arg5 + _local20), (_arg4 + _local17), (_arg5 + _local18));
_local16++;
};
_arg1.graphics.lineTo(_arg4, _arg5);
}
public static function pythagoras(_arg1:Number, _arg2:Number):Number{
return (Math.sqrt((Math.pow(_arg1, 2) + Math.pow(_arg2, 2))));
}
public static function attachSFXButton(_arg1:Array){
var _local2:*;
_local2 = 0;
while (_local2 < _arg1.length) {
if (!_arg1[_local2].hasEventListener(MouseEvent.MOUSE_OVER)){
_arg1[_local2].addEventListener(MouseEvent.MOUSE_OVER, playsfxbtnover, false, 0, true);
};
_arg1[_local2].addEventListener(MouseEvent.CLICK, playsfxbtnclick, false, 0, true);
_local2++;
};
}
public static function openWindow(_arg1:String="http://www.lunakite.com", _arg2:String="_blank", _arg3:String=""):void{
var _local4:URLRequest;
var _local5:String;
_local4 = new URLRequest(_arg1);
_arg2 = "_blank";
if (!ExternalInterface.available){
navigateToURL(_local4, _arg2);
} else {
_local5 = String(ExternalInterface.call("function() {return navigator.userAgent;}")).toLowerCase();
if (((!((_local5.indexOf("firefox") == -1))) || (((!((_local5.indexOf("msie") == -1))) && ((uint(_local5.substr((_local5.indexOf("msie") + 5), 3)) >= 7)))))){
ExternalInterface.call("window.open", _local4.url, _arg2);
} else {
navigateToURL(_local4, _arg2);
};
};
}
public static function getFormatedString(_arg1:String, _arg2:Array, _arg3:String="%"):String{
var _local4:String;
for (_local4 in _arg2) {
_arg1 = _arg1.replace((_arg3 + _local4), _arg2[_local4]);
trace(_local4, _arg2[_local4]);
};
return (_arg1);
}
public static function trash(_arg1:Object, _arg2:Function, _arg3:Function, _arg4:Boolean=true){
var _local5:XMLList;
var _local6:int;
if (_arg4){
if (_arg1.hasEventListener(FocusEvent.FOCUS_OUT)){
_arg1.removeEventListener(FocusEvent.FOCUS_OUT, _arg2);
trace("focus out function removed");
};
if (_arg1.hasEventListener(Event.ENTER_FRAME)){
_arg1.removeEventListener(Event.ENTER_FRAME, _arg3);
trace("enter frame function removed");
};
};
_local5 = describeType(_arg1)..variable;
while (_local6 < _local5.length()) {
if ((_arg1[_local5[_local6].@name] is Timer)){
_arg1[_local5[_local6].@name].stop();
};
_local6++;
};
if (_arg4){
if (_arg1.parent){
_arg1.parent.removeChild(_arg1);
};
};
_arg1 = null;
}
}
}//package
Section 89
//Golem (Golem)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Golem extends MovieClip {
public function Golem(){
addFrameScript(47, frame48, 99, frame100, 125, frame126, 173, frame174, 237, frame238, 305, frame306, 341, frame342, 406, frame407);
}
function frame306(){
gotoAndPlay("downslow");
}
function frame174(){
gotoAndPlay("left");
}
function frame100(){
gotoAndPlay("down");
}
function frame342(){
gotoAndPlay("upslow");
}
function frame238(){
gotoAndPlay("rightslow");
}
function frame126(){
gotoAndPlay("up");
}
function frame48(){
gotoAndPlay("right");
}
function frame407(){
gotoAndPlay("leftslow");
}
}
}//package
Section 90
//golemdie (golemdie)
package {
import flash.media.*;
public dynamic class golemdie extends Sound {
}
}//package
Section 91
//HpBar (HpBar)
package {
import flash.display.*;
public dynamic class HpBar extends MovieClip {
public var maxbar:MovieClip;
public var curbar:MovieClip;
}
}//package
Section 92
//IceStorm (IceStorm)
package {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import de.polygonal.math.*;
import flash.utils.*;
public class IceStorm extends MovieClip {
public var ctrcomtype:int;// = 0
public var ctrdmg:int;// = 0
public var comets:Array;
public var tim:Timer;
public var creephit:Array;
public function IceStorm(){
tim = new Timer(100, 40);
comets = new Array();
ctrcomtype = 0;
ctrdmg = 0;
creephit = new Array();
super();
this.mouseEnabled = false;
this.mouseChildren = false;
tim.addEventListener(TimerEvent.TIMER, generatecomet, false, 0, true);
tim.start();
}
public function resume(){
Main.mc.sc.resumeSFX("blizzard");
tim.start();
}
private function generatecomet(_arg1:TimerEvent):void{
var _local2:*;
var _local3:MovieClip;
_local2 = 0;
while (_local2 < 3) {
_local3 = new snow();
_local3.rotation = PM_PRNG.nextIntRange(0, 359);
_local3.scaleX = PM_PRNG.nextDoubleRange(0.2, 1);
_local3.scaleY = _local3.scaleX;
_local3.x = PM_PRNG.nextIntRange(200, 1000);
_local3.y = PM_PRNG.nextIntRange(0, 30);
_local3.speed = PM_PRNG.nextIntRange(15, 20);
_local3.speedx = PM_PRNG.nextIntRange(5, 10);
ctrcomtype++;
addChild(_local3);
comets.push(_local3);
_local2++;
};
}
public function update(){
var n:int;
var i:*;
var nc:*;
var j:*;
var coldfilt:*;
ctrdmg++;
n = comets.length;
i = 0;
while (i < n) {
if (comets[i]){
comets[i].y = (comets[i].y + comets[i].speed);
comets[i].x = (comets[i].x - comets[i].speedx);
if ((((comets[i].speed > 0)) && ((comets[i].y >= 700)))){
removeChild(comets[i]);
comets[i] = null;
};
};
i = (i + 1);
};
if (((((ctrdmg % 40) == 0)) && ((ctrdmg <= 200)))){
var _local2 = Main.mc.curwin;
with (_local2) {
nc = arrcreep.length;
j = 0;
while (j < nc) {
if (arrcreep[j]){
if (arrcreep[j].icebody){
arrcreep[j].damagecreep(0, true);
} else {
if (creephit.indexOf(arrcreep[j]) == -1){
creephit.push(arrcreep[j]);
if (!arrcreep[j].icebody){
arrcreep[j].ctricestorm = (GameData.icestormslowduration + (200 - ctrdmg));
arrcreep[j].calcspeed();
if (arrcreep[j].creepmc.currentLabel != (arrcreep[j].direction + "slow")){
arrcreep[j].creepmc.gotoAndPlay((arrcreep[j].direction + "slow"));
};
coldfilt = new GlowFilter(0xFF, 1, 10, 10, 3, 1, true, false);
arrcreep[j].creepmc.filters = [coldfilt];
if (arrcreep[j].flamebody){
arrcreep[j].damagecreep((GameData.icestormdmg[(GameData.icestormdmglv - 1)] * GameData.weakmultiplier), true);
} else {
arrcreep[j].damagecreep(GameData.icestormdmg[(GameData.icestormdmglv - 1)], true);
};
};
};
};
};
j++;
};
};
};
if ((((ctrdmg > 200)) && ((this.numChildren == 0)))){
(Main.mc.curwin as GameWindow).arrmagic.splice((Main.mc.curwin as GameWindow).arrmagic.indexOf(this), 1);
Global.trash(this, null, null);
};
}
public function pause(){
tim.stop();
Main.mc.sc.pauseSFX("blizzard");
}
}
}//package
Section 93
//Icicle (Icicle)
package {
import flash.display.*;
import flash.filters.*;
public class Icicle extends MovieClip {
public var target:Creep;
public function resume(){
if (this.currentFrame < this.totalFrames){
this.play();
};
}
public function update(){
var _local1:GlowFilter;
if (this.currentFrame == this.totalFrames){
stop();
if (((target) && (!(target.icebody)))){
target.ctricicle = GameData.icicleslowduration;
target.calcspeed();
if (target.creepmc.currentLabel != (target.direction + "slow")){
target.creepmc.gotoAndPlay((target.direction + "slow"));
};
_local1 = new GlowFilter(0xFF, 1, 10, 10, 3, 1, true, false);
target.creepmc.filters = [_local1];
if (target.flamebody){
target.damagecreep((GameData.icicledmg[(GameData.icicledmglv - 1)] * GameData.weakmultiplier), true);
} else {
target.damagecreep(GameData.icicledmg[(GameData.icicledmglv - 1)], true);
};
} else {
if (((target) && (target.icebody))){
target.damagecreep(0, true);
};
};
(Main.mc.curwin as GameWindow).arrmagic.splice((Main.mc.curwin as GameWindow).arrmagic.indexOf(this), 1);
Global.trash(this, null, null);
};
}
public function pause(){
this.stop();
}
}
}//package
Section 94
//intermission (intermission)
package {
import flash.media.*;
public dynamic class intermission extends Sound {
}
}//package
Section 95
//IntermissionDialog (IntermissionDialog)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
public class IntermissionDialog extends Dialog {
public var alertwin:MovieClip;
public var spellnames:Array;
public var spellbtn:MovieClip;
public var sw:MovieClip;
public var selectedspell:String;
public var draggedspellname:String;
public var cw:MovieClip;
public var nextmissionbtn:MovieClip;
public var fromslot:int;
public var mw:MovieClip;
public var spelldesc:Array;
public var gw:MovieClip;
public function IntermissionDialog(){
var _local1:*;
spellnames = ["Fireball", "Icicle", "Lightning Strike", "Boulder Fall", "Fire Rain", "Nova Blast", "Lightning Spear", "Easter Strike", "Meteor", "Ice Storm", "Zeus Wrath", "Earth Quake"];
spelldesc = [("Create a fire ball to burn enemy . Enemy also burned for 1 seconds " + "when hit by this spell \n \nClick the ground to cast fireball"), "Drop icicle on enemy and slow them for 4 seconds \n \nClick the enemy to cast icicle", ("Strike enemy with lightning , the enemy may stunned for 2 seconds when hit by this " + "spell \n \nClick the enemy to cast lightning strike"), ("Drop a big rock on small area that can damage several enemies around it" + "\n \nClick the ground to cast boulder fall"), ("Create a rain of fire on small area that can burn several enemies . Enemy " + "also receive burned for 1 seconds \n \nClick the ground to cast fire rain"), ("Make ice crystal on the ground which can damage and slow enemies around it" + "\n \nClick the ground to cast Nova Blast"), ("Launch 1000 Volt Spear that can damage enemies on the spear path. Enemies " + "may stunned when hit by this spear \n \n Click the ground to cast lightning spear"), ("Drop an easter statue which deals damage on small area and also can block " + "creep from moving \n \nClick the ground to cast easter strike"), ((("Fire Limit Break Spell. Drop a big meteor on large area which deals massive damage " + "to enemies around it. Enemies also receive big burn damage for 3 ") + "seconds. Cast fireball or fire rain to charge this spell gauge \n \nClick ") + "the ground to cast meteor "), (("Ice Limit Break Spell. Create a blizzard which damage and slow all " + "enemies on the maps for 6 - 11 seconds. Cast icicle or nova blast to charge this ") + "spell gauge \n \nClick anywhere to cast ice storm"), (("Lightning Limit Break Spell. Call Zeus to drop many huge thunder on random enemy, " + "enemy hit with the thunder may stunned for 5 seconds. Cast lightning strike or ") + "lightning spear to charge this spell gauge \n \nClick anywhere to cast zeus wrath"), (("Earth Limit Break Spell. Shake the ground hardly which can damage all enemies every " + "seconds. Lasts 5 seconds. Cast boulder fall or easter strike to charge this spell ") + "gauge \n \nClick anywhere to cast earthquake")];
super();
Global.attachSFXButton([alertwin.okbtn, gw.okbtn, mw.startbtn, mw.savebtn, mw.loadbtn, sw.learnbtn, sw.lvbtn0, sw.chargebtn, sw.lvbtn1, sw.lvbtn1, sw.lvbtn2, sw.lvbtn3, cw.okbtn]);
nextmissionbtn.addEventListener(MouseEvent.MOUSE_DOWN, tooglemission, false, 0, true);
nextmissionbtn.addEventListener(MouseEvent.MOUSE_OVER, overbtn, false, 0, true);
nextmissionbtn.addEventListener(MouseEvent.MOUSE_OUT, outbtn, false, 0, true);
spellbtn.addEventListener(MouseEvent.MOUSE_DOWN, tooglespell, false, 0, true);
spellbtn.addEventListener(MouseEvent.MOUSE_OVER, overbtn, false, 0, true);
spellbtn.addEventListener(MouseEvent.MOUSE_OUT, outbtn, false, 0, true);
cw.okbtn.addEventListener(MouseEvent.CLICK, closeclearwin, false, 0, true);
gw.okbtn.addEventListener(MouseEvent.CLICK, closegameoverwin, false, 0, true);
mw.startbtn.addEventListener(MouseEvent.CLICK, startmission, false, 0, true);
mw.savebtn.addEventListener(MouseEvent.CLICK, savemission, false, 0, true);
mw.loadbtn.addEventListener(MouseEvent.CLICK, loadmission, false, 0, true);
nextmissionbtn.useHandCursor = true;
nextmissionbtn.buttonMode = true;
spellbtn.useHandCursor = true;
spellbtn.buttonMode = true;
_local1 = 0;
while (_local1 <= 3) {
sw[("lvbtn" + _local1)].addEventListener(MouseEvent.MOUSE_OVER, shownextlvup, false, 0, true);
sw[("lvbtn" + _local1)].addEventListener(MouseEvent.MOUSE_OUT, showcurrentlv, false, 0, true);
sw[("lvbtn" + _local1)].addEventListener(MouseEvent.CLICK, levelup, false, 0, true);
_local1++;
};
sw.dragspell.addEventListener(MouseEvent.MOUSE_UP, setspell, false, 0, true);
sw["chargebtn"].addEventListener(MouseEvent.CLICK, chargespell, false, 0, true);
sw["learnbtn"].addEventListener(MouseEvent.CLICK, learnspell, false, 0, true);
alertwin.okbtn.addEventListener(MouseEvent.CLICK, closealertwin, false, 0, true);
_local1 = 0;
while (_local1 <= 4) {
sw[("disable" + _local1)].mouseEnabled = false;
sw[("active" + _local1)].addEventListener(MouseEvent.MOUSE_DOWN, changeactivespell, false, 0, true);
sw[("active" + _local1)].index = _local1;
_local1++;
};
init();
}
private function overbtn(_arg1:MouseEvent):void{
if (_arg1.currentTarget.currentLabel != "active"){
_arg1.currentTarget.gotoAndStop("over");
};
}
public function updatebullet(){
var _local1:*;
_local1 = 0;
while (_local1 < 4) {
if (GameData.magslot[_local1] != ""){
GameData.magmaxbullet[_local1] = GameData[(GameData.magslot[_local1] + "bulletlv")];
GameData.magbullet[_local1] = GameData.magmaxbullet[_local1];
};
_local1++;
};
Main.mc.curwin.createbullet();
}
private function setspell(_arg1:MouseEvent):void{
var _local2:Rectangle;
var _local3:int;
var _local4:int;
var _local5:*;
sw.dragspell.visible = false;
sw.stopDrag();
if ((((((((draggedspellname == "meteor")) || ((draggedspellname == "icestorm")))) || ((draggedspellname == "zeuswrath")))) || ((draggedspellname == "earthquake")))){
_local2 = new Rectangle((sw["active4"].x - (sw["active4"].width / 2)), (sw["active4"].y - (sw["active4"].width / 2)), 75, 75);
if (_local2.contains(sw.dragspell.x, sw.dragspell.y)){
GameData.magslot[4] = draggedspellname;
GameData.magcooldown[4] = (-90 + GameData[(GameData.magslot[4] + "gauge")]);
Main.mc.curwin.drawcooldown();
} else {
if (fromslot > -1){
GameData.magslot[4] = "";
};
};
} else {
_local3 = -1;
_local4 = -1;
_local5 = 0;
while (_local5 < 4) {
_local2 = new Rectangle((sw[("active" + _local5)].x - (sw[("active" + _local5)].width / 2)), (sw[("active" + _local5)].y - (sw[("active" + _local5)].width / 2)), 75, 75);
if (GameData.magslot[_local5] == draggedspellname){
_local4 = _local5;
};
if (_local2.contains(sw.dragspell.x, sw.dragspell.y)){
_local3 = _local5;
};
_local5++;
};
if ((((fromslot > -1)) && ((_local3 == -1)))){
GameData.magslot[fromslot] = "";
} else {
if (_local3 > -1){
if (fromslot > -1){
GameData.magslot[fromslot] = GameData.magslot[_local3];
} else {
if (_local4 > -1){
GameData.magslot[_local4] = "";
};
};
GameData.magslot[_local3] = draggedspellname;
};
};
};
_local5 = 0;
while (_local5 <= 4) {
sw[("active" + _local5)].gotoAndStop("inactive");
if (GameData.magslot[_local5] != ""){
sw[("active" + _local5)].micon.visible = true;
sw[("active" + _local5)].micon.gotoAndStop(GameData.magslot[_local5]);
} else {
sw[("active" + _local5)].micon.stop();
sw[("active" + _local5)].micon.visible = false;
};
_local5++;
};
Main.mc.curwin.drawmagicinstatbar();
updatebullet();
draggedspellname = "";
fromslot = -1;
hideslotdisable();
}
private function closealertwin(_arg1:MouseEvent):void{
this.sw.mouseChildren = true;
alertwin.visible = false;
}
public function init(){
var _local1:*;
var _local2:String;
nextmissionbtn.gotoAndStop("active");
spellbtn.gotoAndStop("standby");
mw.visible = true;
sw.visible = false;
cw.visible = false;
gw.visible = false;
draggedspellname = "";
fromslot = -1;
_local1 = 0;
while (_local1 <= 11) {
sw[("slot" + _local1)].gotoAndStop("inactive");
sw[("slot" + _local1)].index = _local1;
_local2 = spellnames[_local1];
_local2 = _local2.replace(" ", "");
_local2 = _local2.toLowerCase();
if (GameData[(_local2 + "dmglv")] == 0){
sw[("slot" + _local1)].micon.gotoAndStop((_local2 + "inactive"));
} else {
sw[("slot" + _local1)].micon.gotoAndStop(_local2);
};
sw[("slot" + _local1)].spellname = _local2;
if (!sw[("slot" + _local1)].hasEventListener(MouseEvent.MOUSE_DOWN)){
sw[("slot" + _local1)].addEventListener(MouseEvent.MOUSE_DOWN, submenuspell, false, 0, true);
};
_local1++;
};
hideslotdisable();
clearspelldesc();
_local1 = 0;
while (_local1 <= 4) {
sw[("active" + _local1)].gotoAndStop("inactive");
if (GameData.magslot[_local1] != ""){
sw[("active" + _local1)].micon.visible = true;
sw[("active" + _local1)].micon.gotoAndStop(GameData.magslot[_local1]);
} else {
sw[("active" + _local1)].micon.stop();
sw[("active" + _local1)].micon.visible = false;
};
_local1++;
};
_local1 = 0;
while (_local1 <= 9) {
mw[("sc" + _local1)].lvcreep.stop();
mw[("sc" + _local1)].addEventListener(MouseEvent.MOUSE_OVER, showcreepinfo, false, 0, true);
mw[("sc" + _local1)].addEventListener(MouseEvent.MOUSE_OUT, hidecreepinfo, false, 0, true);
_local1++;
};
sw.dragspell.visible = false;
sw.dragspell.gotoAndStop("active");
sw.dragspell.micon.stop();
sw.mouseChildren = true;
alertwin.visible = false;
}
public function clearspelldesc(){
selectedspell = "";
sw["spellname"].text = "";
sw["spelldesc"].text = "";
i = 0;
while (i <= 3) {
sw[("point" + i)].text = "";
sw[("desc" + i)].text = "";
sw[("lvbtn" + i)].visible = false;
sw[("cost" + i)].visible = false;
i++;
};
sw["chargebtn"].visible = false;
sw["learncost"].visible = false;
sw["learnbtn"].visible = false;
}
public function showslotdisable(){
var _local1:*;
if ((((((((selectedspell == "meteor")) || ((selectedspell == "icestorm")))) || ((selectedspell == "zeuswrath")))) || ((selectedspell == "earthquake")))){
_local1 = 0;
while (_local1 < 4) {
sw[("disable" + _local1)].visible = true;
_local1++;
};
} else {
sw["disable4"].visible = true;
};
}
private function levelup(_arg1:MouseEvent):void{
var _local2:int;
var _local3:String;
_local2 = _arg1.currentTarget.name.charAt(5);
_local3 = sw[("cost" + _local2)].lvupmode;
if (GameData.gem < sw[("cost" + _local2)].tcost.text){
this.sw.mouseChildren = false;
alertwin.talert.text = "You don't have enough gem";
alertwin.visible = true;
} else {
GameData[_local3] = (GameData[_local3] + 1);
GameData.gem = (GameData.gem - sw[("cost" + _local2)].tcost.text);
if (_local3.indexOf("bulletlv") >= 0){
updatebullet();
};
Main.mc.curwin.statbar.tgem.text = GameData.gem;
sw[("cost" + _local2)].curpoint = sw[("cost" + _local2)].nextpoint;
i = 0;
while (i <= 3) {
sw[("point" + i)].text = "";
sw[("desc" + i)].text = "";
sw[("lvbtn" + i)].visible = false;
sw[("cost" + i)].visible = false;
i++;
};
sw["chargebtn"].visible = false;
sw["learncost"].visible = false;
sw["learnbtn"].visible = false;
refreshspellmenu();
sw[("point" + _local2)].text = ((sw[("cost" + _local2)].curpoint + " > ") + sw[("cost" + _local2)].nextpoint);
sw[("point" + _local2)].textColor = 13260;
};
}
public function initnextmission(){
var i:*;
var arr:*;
var idx:*;
mw.tmission.text = GameData.level;
i = 0;
while (i < 10) {
mw[("sc" + i)].visible = false;
mw[("qty" + i)].visible = false;
i = (i + 1);
};
if (GameData.level == 2){
Main.mc.curwin.tutormc.initscenario("trino", true);
};
if (GameData.level == 3){
Main.mc.curwin.tutormc.initscenario("medusa", true);
};
if (GameData.level == 4){
Main.mc.curwin.tutormc.initscenario("flarefox", true);
};
if (GameData.level == 5){
Main.mc.curwin.tutormc.initscenario("spectre", true);
};
if (GameData.level == 6){
Main.mc.curwin.tutormc.initscenario("yeti", true);
};
if (GameData.level == 7){
Main.mc.curwin.tutormc.initscenario("cerberus", true);
};
if (GameData.level == 8){
Main.mc.curwin.tutormc.initscenario("angel", true);
};
if (GameData.level == 9){
Main.mc.curwin.tutormc.initscenario("tritano", true);
};
if (GameData.level == 10){
Main.mc.curwin.tutormc.initscenario("lamia", true);
};
if (GameData.level == 11){
Main.mc.curwin.tutormc.initscenario("fenrir", true);
};
if (GameData.level == 12){
Main.mc.curwin.tutormc.initscenario("drako", true);
};
if (GameData.level == 13){
Main.mc.curwin.tutormc.initscenario("skydrako", true);
};
if (GameData.level == 14){
Main.mc.curwin.tutormc.initscenario("golem", true);
};
if (GameData.level == 15){
Main.mc.curwin.tutormc.initscenario("diabolicspectre", true);
};
if (GameData.level == 16){
Main.mc.curwin.tutormc.initscenario("chaosangel", true);
};
var _local2 = Main.mc.curwin.lc;
with (_local2) {
i = 0;
while (i < lvdata[(GameData.level - 1)].crp.length) {
mw[("sc" + i)].visible = true;
mw[("qty" + i)].visible = true;
mw[("qty" + i)].text = lvdata[(GameData.level - 1)].qty[i];
arr = new Array();
arr = lvdata[(GameData.level - 1)].crp[i].split(" ");
mw[("sc" + i)].gotoAndPlay(arr[0]);
mw[("sc" + i)].lvcreep.gotoAndStop(("lv" + arr[1]));
mw[("sc" + i)].ability = "-";
mw[("sc" + i)].anti = "-";
mw[("sc" + i)].weak = "-";
switch (arr[0]){
case "F":
mw[("sc" + i)].creepname = ("Fox lv " + arr[1]);
idx = 0;
break;
case "FF":
mw[("sc" + i)].creepname = ("Flare Fox lv " + arr[1]);
idx = 1;
mw[("sc" + i)].anti = "Fire";
mw[("sc" + i)].weak = "Ice";
break;
case "K":
mw[("sc" + i)].creepname = ("Kingkong lv " + arr[1]);
idx = 2;
break;
case "Y":
mw[("sc" + i)].creepname = ("Yeti lv " + arr[1]);
idx = 3;
mw[("sc" + i)].anti = "Ice";
mw[("sc" + i)].weak = "Fire";
break;
case "T":
mw[("sc" + i)].creepname = ("Trino lv " + arr[1]);
idx = 4;
mw[("sc" + i)].ability = ("HP Regen " + GameData.creepdata[4].regen[(arr[1] - 1)]);
break;
case "TT":
mw[("sc" + i)].creepname = ("Tritano lv " + arr[1]);
idx = 5;
mw[("sc" + i)].ability = ("HP Regen " + GameData.creepdata[5].regen[(arr[1] - 1)]);
mw[("sc" + i)].anti = "Earth";
mw[("sc" + i)].weak = "Lightning";
break;
case "S":
mw[("sc" + i)].creepname = ("Spectre lv " + arr[1]);
idx = 6;
mw[("sc" + i)].ability = "Flying";
break;
case "DS":
mw[("sc" + i)].creepname = ("Diabolic Spectre lv " + arr[1]);
idx = 7;
mw[("sc" + i)].ability = "Flying \nVanish";
break;
case "D":
mw[("sc" + i)].creepname = ("Drako lv " + arr[1]);
idx = 8;
mw[("sc" + i)].ability = "Flying";
break;
case "SD":
mw[("sc" + i)].creepname = ("Sky Drako lv " + arr[1]);
idx = 9;
mw[("sc" + i)].ability = "Flying";
mw[("sc" + i)].anti = "Lightning";
mw[("sc" + i)].weak = "Earth";
break;
case "A":
mw[("sc" + i)].creepname = ("Angel lv " + arr[1]);
idx = 10;
mw[("sc" + i)].ability = ("Flying \n HP Regen " + GameData.creepdata[10].regen[(arr[1] - 1)]);
break;
case "ARC":
mw[("sc" + i)].creepname = ("Chaos Angel lv " + arr[1]);
idx = 11;
mw[("sc" + i)].ability = ("Flying \n HP Regen " + GameData.creepdata[11].regen[(arr[1] - 1)]);
break;
case "M":
mw[("sc" + i)].creepname = ("Medusa lv " + arr[1]);
idx = 12;
break;
case "L":
mw[("sc" + i)].creepname = ("Lamia lv " + arr[1]);
idx = 13;
mw[("sc" + i)].ability = "Vanish";
break;
case "C":
mw[("sc" + i)].creepname = ("Cerberus lv " + arr[1]);
idx = 14;
mw[("sc" + i)].anti = "Fire";
mw[("sc" + i)].weak = "Ice";
break;
case "FEN":
mw[("sc" + i)].creepname = ("Fenrir lv " + arr[1]);
idx = 15;
mw[("sc" + i)].anti = "Ice";
mw[("sc" + i)].weak = "Fire";
break;
case "RE":
mw[("sc" + i)].creepname = ("Rainbow Eagle lv " + arr[1]);
idx = 16;
mw[("sc" + i)].ability = "Flying \nVanish";
break;
case "G":
mw[("sc" + i)].creepname = ("Golem lv " + arr[1]);
idx = 17;
mw[("sc" + i)].ability = ("HP Regen " + GameData.creepdata[17].regen[(arr[1] - 1)]);
mw[("sc" + i)].anti = "Earth";
mw[("sc" + i)].weak = "Lightning";
break;
case "PL":
mw[("sc" + i)].creepname = ("Penguin Lord lv " + arr[1]);
idx = 18;
mw[("sc" + i)].ability = ("Flying \nVanish \nHP Regen " + GameData.creepdata[18].regen[(arr[1] - 1)]);
break;
};
mw[("sc" + i)].hp = GameData.creepdata[idx].hp[(arr[1] - 1)];
mw[("sc" + i)].dmg = GameData.creepdata[idx].dmg[(arr[1] - 1)];
if (GameData.creepdata[idx].speed[(arr[1] - 1)] >= 1.5){
mw[("sc" + i)].speed = "Very Fast";
} else {
if (GameData.creepdata[idx].speed[(arr[1] - 1)] >= 1.2){
mw[("sc" + i)].speed = "Fast";
} else {
if (GameData.creepdata[idx].speed[(arr[1] - 1)] >= 0.8){
mw[("sc" + i)].speed = "Normal";
} else {
if (GameData.creepdata[idx].speed[(arr[1] - 1)] >= 0.4){
mw[("sc" + i)].speed = "Slow";
} else {
mw[("sc" + i)].speed = "Very Slow";
};
};
};
};
i++;
};
};
}
public function refreshspellmenu(){
var _local1:Array;
var _local2:Array;
var _local3:int;
var _local4:int;
_local1 = ["", "", "cooldown", "bullet"];
_local2 = ["", "", "Cooldown", "Spell Charge"];
if ((((((((selectedspell == "meteor")) || ((selectedspell == "icestorm")))) || ((selectedspell == "zeuswrath")))) || ((selectedspell == "earthquake")))){
_local1[2] = "";
_local2[2] = "";
_local1[3] = "";
_local2[3] = "";
};
if ((((selectedspell == "firerain")) || ((selectedspell == "fireball")))){
_local1[1] = "burndmg";
_local2[1] = "Burn Damage";
} else {
if ((((selectedspell == "icicle")) || ((selectedspell == "novablast")))){
_local1[1] = "slow";
_local2[1] = "Slow Power";
} else {
if ((((selectedspell == "lightningstrike")) || ((selectedspell == "lightningspear")))){
_local1[1] = "stun";
_local2[1] = "Stun Chance";
} else {
if (selectedspell == "easterstrike"){
_local1[1] = "duration";
_local2[1] = "Stands Time";
} else {
if (selectedspell == "boulderfall"){
_local1[1] = "cooldown";
_local2[1] = "Charge Time";
_local1[2] = "bullet";
_local2[2] = "Spell Charge";
_local1[3] = "";
_local2[3] = "";
} else {
if (selectedspell == "meteor"){
_local1[1] = "burndmg";
_local2[1] = "Burn Damage";
_local1[2] = "gauge";
_local2[2] = "Gauge";
} else {
if (selectedspell == "icestorm"){
_local1[1] = "slow";
_local2[1] = "Slow Power";
_local1[2] = "gauge";
_local2[2] = "Gauge";
} else {
if (selectedspell == "zeuswrath"){
_local1[1] = "stun";
_local2[1] = "Stun Chance";
_local1[2] = "strike";
_local2[2] = "Strike Count";
_local1[3] = "gauge";
_local2[3] = "Gauge";
} else {
if (selectedspell == "earthquake"){
_local1[1] = "gauge";
_local2[1] = "Gauge";
};
};
};
};
};
};
};
};
};
if (GameData[(selectedspell + "dmglv")] == 0){
sw["learncost"].visible = true;
sw["learnbtn"].visible = true;
sw["learncost"].tcost.text = GameData[(selectedspell + "learncost")];
} else {
sw["desc0"].text = "Damage";
sw["point0"].text = GameData[(selectedspell + "dmg")][(GameData[(selectedspell + "dmglv")] - 1)];
if (GameData[(selectedspell + "dmglv")] < GameData[(selectedspell + "dmg")].length){
sw["lvbtn0"].visible = true;
sw["cost0"].visible = true;
sw["cost0"].tcost.text = GameData[(selectedspell + "dmgcost")][(GameData[(selectedspell + "dmglv")] - 1)];
sw["cost0"].nextpoint = ("" + GameData[(selectedspell + "dmg")][GameData[(selectedspell + "dmglv")]]);
sw["cost0"].curpoint = sw["point0"].text;
sw["cost0"].lvupmode = (selectedspell + "dmglv");
};
i = 1;
while (i <= 3) {
if (_local1[i] != ""){
sw[("desc" + i)].text = _local2[i];
sw[("cost" + i)].lvupmode = ((selectedspell + _local1[i]) + "lv");
if (_local1[i] == "gauge"){
if (GameData[(selectedspell + "gauge")] < 360){
sw["chargebtn"].visible = true;
sw["chargebtn"].y = sw[("lvbtn" + i)].y;
sw[("cost" + i)].visible = true;
sw[("cost" + i)].tcost.text = GameData[(selectedspell + "gaugecost")];
};
sw[("point" + i)].text = ((GameData[(selectedspell + "gauge")] / 3.6).toFixed(1) + " %");
} else {
if (_local1[i] == "strike"){
sw[("point" + i)].text = GameData.zeuswrathstrikecount;
if (GameData.zeuswrathstrikecount < 10){
sw[("lvbtn" + i)].visible = true;
sw[("cost" + i)].visible = true;
sw[("cost" + i)].tcost.text = GameData.zeuswrathstrikecost[(GameData.zeuswrathstrikecount - 3)];
sw[("cost" + i)].nextpoint = ("" + (GameData.zeuswrathstrikecount + 1));
sw[("cost" + i)].lvupmode = (selectedspell + "strikecount");
};
sw[("point" + i)].text = GameData.zeuswrathstrikecount;
} else {
if (_local1[i] == "bullet"){
sw[("point" + i)].text = GameData[(selectedspell + "bulletlv")];
_local3 = 3;
_local4 = 1;
if ((((((((selectedspell == "fireball")) || ((selectedspell == "lightningstrike")))) || ((selectedspell == "icicle")))) || ((selectedspell == "boulderfall")))){
_local3 = 6;
_local4 = 3;
};
if (GameData[(selectedspell + "bulletlv")] < _local3){
sw[("lvbtn" + i)].visible = true;
sw[("cost" + i)].visible = true;
sw[("cost" + i)].tcost.text = GameData[(selectedspell + "bulletcost")][(GameData[(selectedspell + "bulletlv")] - _local4)];
sw[("cost" + i)].nextpoint = ("" + (GameData[(selectedspell + "bulletlv")] + 1));
};
} else {
if (_local1[i] == "cooldown"){
sw[("point" + i)].text = ((9 / GameData[(selectedspell + _local1[i])][(GameData[((selectedspell + _local1[i]) + "lv")] - 1)]).toFixed(1) + " s");
sw[("cost" + i)].nextpoint = (("" + (9 / GameData[(selectedspell + _local1[i])][GameData[((selectedspell + _local1[i]) + "lv")]]).toFixed(1)) + " s");
} else {
if (_local1[i] == "stun"){
sw[("point" + i)].text = (GameData[(selectedspell + _local1[i])][(GameData[((selectedspell + _local1[i]) + "lv")] - 1)] + " %");
sw[("cost" + i)].nextpoint = (("" + GameData[(selectedspell + _local1[i])][GameData[((selectedspell + _local1[i]) + "lv")]]) + " %");
} else {
if (_local1[i] == "slow"){
sw[("point" + i)].text = ((GameData[(selectedspell + _local1[i])][(GameData[((selectedspell + _local1[i]) + "lv")] - 1)] * 100).toFixed(0) + " %");
sw[("cost" + i)].nextpoint = ((GameData[(selectedspell + _local1[i])][GameData[((selectedspell + _local1[i]) + "lv")]] * 100).toFixed(0) + " %");
} else {
if (_local1[i] == "duration"){
sw[("point" + i)].text = ((GameData[(selectedspell + _local1[i])][(GameData[((selectedspell + _local1[i]) + "lv")] - 1)] / 40) + " s");
sw[("cost" + i)].nextpoint = ((GameData[(selectedspell + _local1[i])][GameData[((selectedspell + _local1[i]) + "lv")]] / 40) + " s");
} else {
sw[("point" + i)].text = GameData[(selectedspell + _local1[i])][(GameData[((selectedspell + _local1[i]) + "lv")] - 1)];
sw[("cost" + i)].nextpoint = GameData[(selectedspell + _local1[i])][GameData[((selectedspell + _local1[i]) + "lv")]];
};
};
};
};
if (GameData[((selectedspell + _local1[i]) + "lv")] <= GameData[((selectedspell + _local1[i]) + "cost")].length){
sw[("lvbtn" + i)].visible = true;
sw[("cost" + i)].visible = true;
sw[("cost" + i)].tcost.text = GameData[((selectedspell + _local1[i]) + "cost")][(GameData[((selectedspell + _local1[i]) + "lv")] - 1)];
};
};
};
};
sw[("cost" + i)].curpoint = sw[("point" + i)].text;
};
i++;
};
};
}
private function changeactivespell(_arg1:MouseEvent):void{
if (GameData.magslot[_arg1.currentTarget.index] != ""){
fromslot = _arg1.currentTarget.index;
draggedspellname = GameData.magslot[_arg1.currentTarget.index];
sw.dragspell.micon.gotoAndStop(draggedspellname);
sw.dragspell.visible = true;
sw.dragspell.x = _arg1.currentTarget.x;
sw.dragspell.y = _arg1.currentTarget.y;
sw.dragspell.startDrag();
showslotdisable();
};
}
private function hidecreepinfo(_arg1:MouseEvent):void{
mw.nameinfo.text = "";
mw.hpinfo.text = "";
mw.speedinfo.text = "";
mw.damageinfo.text = "";
mw.antiinfo.text = "";
mw.weakinfo.text = "";
mw.abilityinfo.text = "";
}
private function chargespell(_arg1:MouseEvent):void{
if (GameData.gem < GameData[(selectedspell + "gaugecost")]){
this.sw.mouseChildren = false;
alertwin.talert.text = "You don't have enough gem";
alertwin.visible = true;
} else {
GameData[(selectedspell + "gauge")] = 360;
if (GameData.magslot[4] == selectedspell){
GameData.magcooldown[4] = (-90 + GameData[(GameData.magslot[4] + "gauge")]);
Main.mc.curwin.drawmagicinstatbar();
};
GameData.gem = (GameData.gem - GameData[(selectedspell + "gaugecost")]);
Main.mc.curwin.statbar.tgem.text = GameData.gem;
i = 0;
while (i <= 3) {
sw[("point" + i)].text = "";
sw[("desc" + i)].text = "";
sw[("lvbtn" + i)].visible = false;
sw[("cost" + i)].visible = false;
i++;
};
sw["chargebtn"].visible = false;
sw["learncost"].visible = false;
sw["learnbtn"].visible = false;
refreshspellmenu();
};
}
private function outbtn(_arg1:MouseEvent):void{
if (_arg1.currentTarget.currentLabel != "active"){
_arg1.currentTarget.gotoAndStop("standby");
};
}
private function showcurrentlv(_arg1:MouseEvent):void{
var _local2:int;
_local2 = _arg1.currentTarget.name.charAt(5);
sw[("point" + _local2)].text = sw[("cost" + _local2)].curpoint;
sw[("point" + _local2)].textColor = 3368499;
}
private function shownextlvup(_arg1:MouseEvent):void{
var _local2:int;
_local2 = _arg1.currentTarget.name.charAt(5);
sw[("point" + _local2)].text = ((sw[("cost" + _local2)].curpoint + " > ") + sw[("cost" + _local2)].nextpoint);
sw[("point" + _local2)].textColor = 13260;
}
private function savemission(_arg1:MouseEvent):void{
Main.mc.curwin.sd.show();
}
private function learnspell(_arg1:MouseEvent):void{
var _local2:*;
if (GameData.gem < GameData[(selectedspell + "learncost")]){
this.sw.mouseChildren = false;
alertwin.talert.text = "You don't have enough gem";
alertwin.visible = true;
} else {
if ((((selectedspell == "meteor")) && ((((GameData.fireballdmglv == 0)) || ((GameData.fireraindmglv == 0)))))){
this.sw.mouseChildren = false;
alertwin.talert.text = "You must learn all Fire Spell before learn Meteor";
alertwin.visible = true;
return;
};
if ((((selectedspell == "icestorm")) && ((((GameData.icicledmglv == 0)) || ((GameData.novablastdmglv == 0)))))){
this.sw.mouseChildren = false;
alertwin.talert.text = "You must learn all Ice Spell before learn Ice Storm";
alertwin.visible = true;
return;
};
if ((((selectedspell == "zeuswrath")) && ((((GameData.lightningstrikedmglv == 0)) || ((GameData.lightningspeardmglv == 0)))))){
this.sw.mouseChildren = false;
alertwin.talert.text = "You must learn all Lightning Spell before learn Zeus Wrath";
alertwin.visible = true;
return;
};
if ((((selectedspell == "earthquake")) && ((((GameData.boulderfalldmglv == 0)) || ((GameData.boulderfalldmglv == 0)))))){
this.sw.mouseChildren = false;
alertwin.talert.text = "You must learn all Earth Spell before learn Earthquake";
alertwin.visible = true;
return;
};
GameData[(selectedspell + "dmglv")] = 1;
GameData.gem = (GameData.gem - GameData[(selectedspell + "learncost")]);
Main.mc.curwin.statbar.tgem.text = GameData.gem;
_local2 = 0;
while (_local2 <= 11) {
if (selectedspell == sw[("slot" + _local2)].spellname){
sw[("slot" + _local2)].micon.gotoAndStop(selectedspell);
};
_local2++;
};
if ((((((((selectedspell == "meteor")) || ((selectedspell == "icestorm")))) || ((selectedspell == "zeuswrath")))) || ((selectedspell == "earthquake")))){
GameData[(selectedspell + "gauge")] = 360;
};
_local2 = 0;
while (_local2 <= 3) {
sw[("point" + _local2)].text = "";
sw[("desc" + _local2)].text = "";
sw[("lvbtn" + _local2)].visible = false;
sw[("cost" + _local2)].visible = false;
_local2++;
};
sw["chargebtn"].visible = false;
sw["learncost"].visible = false;
sw["learnbtn"].visible = false;
refreshspellmenu();
};
}
private function closeclearwin(_arg1:MouseEvent):void{
if (GameData.level == 36){
Main.mc.curwin.lc.dispose();
Main.mc.showWindow("EndingWindow", Main.mc.curwin.refocus, Main.mc.curwin.update);
} else {
Main.mc.sc.playBGM("intermission");
nextmissionbtn.gotoAndStop("active");
spellbtn.gotoAndStop("standby");
sw.visible = false;
cw.visible = false;
mw.visible = true;
nextmissionbtn.visible = true;
spellbtn.visible = true;
initnextmission();
};
}
private function tooglespell(_arg1:MouseEvent):void{
if (_arg1.currentTarget.currentLabel != "active"){
_arg1.currentTarget.gotoAndStop("active");
nextmissionbtn.gotoAndStop("standby");
mw.visible = false;
sw.visible = true;
};
}
private function closegameoverwin(_arg1:MouseEvent):void{
Main.mc.showWindow("MainMenuWindow", Main.mc.curwin.refocus, Main.mc.curwin.update);
}
public function hideslotdisable(){
var _local1:*;
_local1 = 0;
while (_local1 <= 4) {
sw[("disable" + _local1)].visible = false;
_local1++;
};
}
private function showcreepinfo(_arg1:MouseEvent):void{
mw.nameinfo.text = _arg1.currentTarget.creepname;
mw.hpinfo.text = _arg1.currentTarget.hp;
mw.speedinfo.text = _arg1.currentTarget.speed;
mw.damageinfo.text = _arg1.currentTarget.dmg;
mw.antiinfo.text = _arg1.currentTarget.anti;
mw.weakinfo.text = _arg1.currentTarget.weak;
mw.abilityinfo.text = _arg1.currentTarget.ability;
}
private function loadmission(_arg1:MouseEvent):void{
Main.mc.curwin.ld.showwin();
}
private function submenuspell(_arg1:MouseEvent):void{
var _local2:*;
_local2 = 0;
while (_local2 <= 11) {
sw[("slot" + _local2)].gotoAndStop("inactive");
_local2++;
};
_arg1.currentTarget.gotoAndStop("active");
clearspelldesc();
selectedspell = _arg1.currentTarget.spellname;
sw["spellname"].text = spellnames[_arg1.currentTarget.index];
sw["spelldesc"].text = spelldesc[_arg1.currentTarget.index];
refreshspellmenu();
if (GameData[(selectedspell + "dmglv")] > 0){
fromslot = -1;
draggedspellname = selectedspell;
sw.dragspell.micon.gotoAndStop(selectedspell);
sw.dragspell.visible = true;
sw.dragspell.x = this.mouseX;
sw.dragspell.y = (this.mouseY - 20);
sw.dragspell.startDrag();
showslotdisable();
};
}
private function tooglemission(_arg1:MouseEvent):void{
var _local2:Boolean;
var _local3:*;
_local2 = true;
_local3 = 0;
while (_local3 < 4) {
if (GameData.magslot[_local3] != ""){
_local2 = false;
};
_local3++;
};
if (_local2){
this.sw.mouseChildren = false;
alertwin.talert.text = "You must set at least 1 common spell";
alertwin.visible = true;
} else {
if (_arg1.currentTarget.currentLabel != "active"){
_arg1.currentTarget.gotoAndStop("active");
spellbtn.gotoAndStop("standby");
sw.visible = false;
mw.visible = true;
};
};
}
private function startmission(_arg1:MouseEvent):void{
var _local2:*;
_local2 = 0;
while (_local2 < 4) {
if (GameData.magslot[_local2] != ""){
GameData.magselect = _local2;
_local2 = 4;
};
_local2++;
};
_local2 = 0;
while (_local2 < 4) {
if (GameData.magslot[_local2] != ""){
GameData.magcooldown[_local2] = 270;
GameData.magcooldownctr[_local2] = GameData[(GameData.magslot[_local2] + "cooldown")][(GameData[(GameData.magslot[_local2] + "cooldownlv")] - 1)];
};
_local2++;
};
if (GameData.magslot[4] != ""){
GameData.magcooldown[4] = (-90 + GameData[(GameData.magslot[4] + "gauge")]);
};
this.closemodal();
Main.mc.pausestate = false;
Main.mc.curwin.ctrclear = 0;
Main.mc.curwin.ctrgameover = 0;
Main.mc.curwin.drawmagicinstatbar();
Main.mc.curwin.arrcreep = [];
Main.mc.curwin.arrmagic = [];
Main.mc.curwin.lc.initlv();
if ((((((((((((((((((((((((((((((GameData.level == 35)) || ((GameData.level == 33)))) || ((GameData.level == 30)))) || ((GameData.level == 28)))) || ((GameData.level == 27)))) || ((GameData.level == 26)))) || ((GameData.level == 24)))) || ((GameData.level == 23)))) || ((GameData.level == 21)))) || ((GameData.level == 20)))) || ((GameData.level == 18)))) || ((GameData.level == 16)))) || ((GameData.level == 14)))) || ((GameData.level == 11)))) || ((GameData.level == 7)))){
Main.mc.sc.playBGM("lvtense");
} else {
Main.mc.sc.playBGM("lv");
};
}
}
}//package
Section 96
//intro (intro)
package {
import flash.media.*;
public dynamic class intro extends Sound {
}
}//package
Section 97
//IntroWindow (IntroWindow)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import gs.*;
import flash.filters.*;
import flash.net.*;
import gs.easing.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class IntroWindow extends MovieClip {
public var dl:MovieClip;
public function IntroWindow(){
addFrameScript(0, frame1);
}
function frame1(){
dl.alpha = 0;
}
public function showlogo(){
TweenMax.to(dl, 3, {alpha:1, onComplete:fadeoutlogo});
}
public function fadeinlogo(){
Main.mc.showWindow("MainMenuWindow", null, null);
Main.mc.sc.playBGM("intro");
}
public function fadeoutlogo(){
TweenMax.to(dl, 3, {alpha:0, onComplete:fadeinlogo});
}
}
}//package
Section 98
//Kingkong (Kingkong)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Kingkong extends MovieClip {
public function Kingkong(){
addFrameScript(15, frame16, 43, frame44, 71, frame72, 87, frame88, 115, frame116, 155, frame156, 199, frame200, 227, frame228);
}
function frame156(){
gotoAndPlay("downslow");
}
function frame72(){
gotoAndPlay("up");
}
function frame200(){
gotoAndPlay("upslow");
}
function frame88(){
gotoAndPlay("left");
}
function frame16(){
gotoAndPlay("right");
}
function frame228(){
gotoAndPlay("leftslow");
}
function frame116(){
gotoAndPlay("rightslow");
}
function frame44(){
gotoAndPlay("down");
}
}
}//package
Section 99
//kingkongdie (kingkongdie)
package {
import flash.media.*;
public dynamic class kingkongdie extends Sound {
}
}//package
Section 100
//Lamia (Lamia)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Lamia extends MovieClip {
public function Lamia(){
addFrameScript(21, frame22, 49, frame50, 77, frame78, 97, frame98, 129, frame130, 173, frame174, 203, frame204, 247, frame248);
}
function frame78(){
gotoAndPlay("up");
}
function frame204(){
gotoAndPlay("leftslow");
}
function frame174(){
gotoAndPlay("upslow");
}
function frame98(){
gotoAndPlay("left");
}
function frame22(){
gotoAndPlay("right");
}
function frame248(){
gotoAndPlay("downslow");
}
function frame130(){
gotoAndPlay("rightslow");
}
function frame50(){
gotoAndPlay("down");
}
}
}//package
Section 101
//Layer (Layer)
package {
import flash.display.*;
public class Layer extends Sprite {
public function Layer(){
x = 0;
y = 0;
this.mouseEnabled = false;
}
}
}//package
Section 102
//LevelController (LevelController)
package {
import flash.display.*;
import flash.events.*;
import com.fjakobs.utils.*;
public class LevelController extends MovieClip {
public var lvdata:Array;
public var nwave:int;
public var tim:STimer;
public var ctrwave:int;// = 0
public var timerwave:STimer;
public var ctrtimer:int;// = 0
public var arrwave:Array;
public function LevelController(){
timerwave = new STimer(1000);
ctrwave = 0;
arrwave = new Array();
ctrtimer = 0;
tim = new STimer(3000, 1);
lvdata = [{crp:["F 1", "K 1"], qty:[12, 12]}, {crp:["F 1", "K 1", "T 1"], qty:[12, 12, 12]}, {crp:["F 1", "K 1", "T 1", "M 1"], qty:[12, 12, 12, 12]}, {crp:["K 2", "FF 1", "T 1", "M 1"], qty:[16, 20, 10, 16]}, {crp:["F 2", "FF 1", "T 2", "S 1"], qty:[20, 20, 16, 20]}, {crp:["Y 1", "FF 1", "T 2", "S 1", "M 2"], qty:[18, 18, 18, 18, 18]}, {crp:["C 1", "FF 2", "K 2", "S 1", "M 2"], qty:[4, 30, 20, 10, 20]}, {crp:["Y 1", "A 1", "F 2", "T 2"], qty:[20, 20, 30, 30]}, {crp:["TT 1", "FF 2", "F 2", "A 1", "K 2"], qty:[15, 25, 20, 25, 20]}, {crp:["L 1", "S 2", "A 1", "K 2", "M 2"], qty:[20, 20, 20, 20, 20]}, {crp:["FEN 1", "Y 2", "TT 1", "L 1", "F 3"], qty:[4, 30, 16, 20, 20]}, {crp:["D 1", "K 3", "T 3", "M 3", "A 2", "FF 2"], qty:[15, 16, 16, 16, 16, 16]}, {crp:["SD 1", "S 2", "L 2", "FF 3", "A 2"], qty:[15, 30, 25, 25, 20]}, {crp:["G 1", "T 3", "TT 2", "Y 2"], qty:[4, 40, 40, 30]}, {crp:["D 1", "Y 3", "L 2", "M 3", "F 3", "DS 1"], qty:[20, 20, 20, 20, 20, 20]}, {crp:["RE 1", "ARC 1", "D 2", "A 3", "SD 1", "S 3", "DS 1"], qty:[3, 20, 20, 20, 20, 20, 20]}, {crp:["TT 2", "ARC 1", "D 2", "Y 3", "DS 2", "K 3"], qty:[20, 20, 20, 20, 20, 20]}, {crp:["PL 1", "SD 2", "T 3", "L 3", "K 3", "M 3"], qty:[4, 25, 25, 25, 25, 25]}, {crp:["DS 2", "F 4", "ARC 2", "FF 3", "S 3", "A 3"], qty:[20, 25, 20, 25, 25, 25]}, {crp:["C 2", "FF 4", "D 3", "L 3", "T 4", "TT 3"], qty:[4, 40, 20, 20, 20, 20]}, {crp:["FEN 2", "Y 4", "SD 2", "K 4", "ARC 2", "DS 3"], qty:[4, 40, 20, 20, 20, 20]}, {crp:["G 2", "F 4", "TT 3", "M 4", "S 4", "A 3"], qty:[4, 20, 40, 20, 20, 20]}, {crp:["RE 2", "L 4", "DS 3", "T 4", "SD 3", "D 3", "FF 4"], qty:[4, 24, 24, 24, 24, 24, 24]}, {crp:["PL 2", "D 4", "S 4", "A 4", "ARC 3", "TT 4", "Y 4"], qty:[4, 24, 24, 24, 24, 24, 24]}, {crp:["F 4", "K 4", "M 4", "A 4", "S 4", "T 4", "D 4"], qty:[24, 24, 24, 24, 24, 24, 15]}, {crp:["C 3", "FEN 3", "Y 5", "FF 5", "K 5", "F 5", "L 4", "ARC 3"], qty:[2, 2, 30, 30, 20, 20, 20, 20]}, {crp:["G 3", "FEN 3", "Y 5", "TT 5", "K 5", "T 5", "DS 4", "ARC 4"], qty:[2, 2, 24, 24, 20, 20, 20, 20]}, {crp:["G 3", "C 3", "FF 5", "TT 5", "M 5", "S 5", "D 5", "A 5"], qty:[2, 2, 24, 24, 20, 20, 20, 20]}, {crp:["D 5", "A 5", "S 5", "SD 4", "ARC 4", "DS 4"], qty:[25, 25, 25, 25, 25, 25]}, {crp:["RE 3", "PL 3", "L 5", "DS 5"], qty:[2, 2, 50, 50]}, {crp:["FF 5", "DS 5", "D 5", "L 5", "A 5", "S 5"], qty:[20, 20, 20, 20, 20, 20]}, {crp:["L 5", "DS 5", "SD 5", "TT 5", "Y 5", "FF 5", "ARC 5"], qty:[20, 20, 20, 20, 20, 20, 20]}, {crp:["FF 5", "Y 5", "TT 5", "C 3", "FEN 3", "G 3"], qty:[30, 30, 30, 2, 2, 2]}, {crp:["SD 5", "ARC 5", "L 5", "DS 5", "TT 5", "D 5", "Y 5", "FF 5"], qty:[18, 18, 18, 18, 18, 18, 18, 18]}, {crp:["C 4", "FEN 4", "G 4", "RE 4", "PL 4"], qty:[2, 2, 2, 2, 2]}];
super();
timerwave.addEventListener(TimerEvent.TIMER, executewave, false, 0, true);
}
public function dispose(){
var _local1:*;
tim.stop();
timerwave.stop();
_local1 = 0;
while (_local1 < arrwave.length) {
arrwave[_local1].timercreep.stop();
_local1++;
};
Global.trash(this, null, null);
}
public function initlv(){
var n:int;
var i:*;
var cnt:int;
GameData.totcreep = 0;
GameData.creepkilled = 0;
GameData.maxcreep = 0;
nwave = 0;
ctrtimer = 0;
ctrwave = 0;
n = arrwave.length;
i = 0;
while (i < n) {
arrwave[i].timercreep.stop();
i = (i + 1);
};
arrwave = [];
switch (GameData.level){
case 1:
generatewavetype("Fox", 3, 1, 2, 2, 2.5);
generatewavetype("Kingkong", 3, 1, 3, 7, 4);
generatewavetype("Fox", 3, 1, 1, 19, 2.5);
generatewavetype("Kingkong", 3, 1, 0, 24, 4);
generatewavetype("Fox", 3, 1, 3, 36, 2.5);
generatewavetype("Kingkong", 3, 1, 2, 41, 4);
generatewavetype("Fox", 3, 1, 0, 53, 2.5);
generatewavetype("Kingkong", 3, 1, 1, 58, 4);
tim.addEventListener(TimerEvent.TIMER, function (_arg1:TimerEvent){
Main.mc.curwin.tutormc.initscenario("defensevillage");
}, false, 0, true);
tim.reset();
tim.start();
break;
case 2:
generatewavetype("Fox", 3, 1, 0, 2, 2.5);
generatewavetype("Trino", 3, 1, 2, 5, 5);
generatewavetype("Kingkong", 3, 1, 1, 20, 4);
generatewavetype("Fox", 3, 1, 3, 25, 2.5);
generatewavetype("Trino", 3, 1, 3, 30, 5);
generatewavetype("Fox", 3, 1, 1, 37.5, 2.5);
generatewavetype("Kingkong", 3, 1, 2, 45, 4);
generatewavetype("Trino", 3, 1, 2, 55, 5);
generatewavetype("Kingkong", 3, 1, 1, 65, 4);
generatewavetype("Fox", 3, 1, 2, 75, 2.5);
generatewavetype("Trino", 3, 1, 3, 80, 5);
generatewavetype("Kingkong", 3, 1, 2, 85, 4);
break;
case 3:
generatewavetype("Medusa", 3, 1, 3, 3, 4);
generatewavetype("Trino", 5, 1, 0, 6, 5);
generatewavetype("Fox", 3, 1, 2, 15, 2);
generatewavetype("Kingkong", 3, 1, 1, 20, 4);
generatewavetype("Medusa", 3, 1, 0, 32, 4);
generatewavetype("Trino", 7, 1, 2, 40, 5);
generatewavetype("Fox", 3, 1, 3, 34, 2);
generatewavetype("Kingkong", 3, 1, 2, 45, 4);
generatewavetype("Medusa", 3, 1, 2, 60, 4);
generatewavetype("Kingkong", 3, 1, 3, 70, 4);
generatewavetype("Fox", 3, 1, 1, 80, 2);
generatewavetype("Fox", 3, 1, 2, 86, 2);
generatewavetype("Medusa", 3, 1, 1, 92, 4);
generatewavetype("Kingkong", 3, 1, 0, 92, 4);
break;
case 4:
generatewavetype("Kingkong", 4, 2, 0, 1, 4);
generatewavetype("Medusa", 4, 1, 2, 1, 4);
generatewavetype("Flare_Fox", 4, 1, 1, 20, 3);
generatewavetype("Trino", 3, 1, 3, 20, 4);
generatewavetype("Medusa", 4, 1, 1, 30, 3);
generatewavetype("Kingkong", 4, 2, 1, 40, 4);
generatewavetype("Trino", 3, 1, 0, 50, 4);
generatewavetype("Flare_Fox", 4, 1, 2, 60, 2);
generatewavetype("Medusa", 4, 1, 2, 70, 3);
generatewavetype("Trino", 4, 1, 1, 75, 4);
generatewavetype("Kingkong", 4, 2, 2, 95, 4);
generatewavetype("Kingkong", 4, 2, 3, 95, 4);
generatewavetype("Flare_Fox", 8, 1, 3, 105, 2);
generatewavetype("Medusa", 4, 1, 2, 105, 3);
break;
case 5:
generatewavetype("Fox", 5, 2, 1, 2, 3);
generatewavetype("Flare_Fox", 5, 1, 2, 2, 3);
generatewavetype("Trino", 4, 2, 0, 20, 5);
generatewavetype("Trino", 4, 2, 3, 20, 5);
generatewavetype("Spectre", 5, 1, 1, 50, 2.5);
generatewave("Spectre", 5, 1, 800, 500, [150, 500], 50, 2.5);
generatewavetype("Trino", 4, 2, 0, 65, 5);
generatewavetype("Trino", 4, 2, 3, 65, 5);
generatewavetype("Fox", 5, 2, 2, 95, 3);
generatewavetype("Flare_Fox", 5, 1, 1, 95, 3);
generatewave("Spectre", 5, 1, 300, 60, [300, 500, 150, 500], 110, 2.5);
generatewavetype("Spectre", 5, 1, 2, 110, 2.5);
generatewavetype("Fox", 10, 2, 2, 125, 3);
generatewavetype("Flare_Fox", 10, 1, 1, 125, 3);
break;
case 6:
generatewavetype("Trino", 18, 2, 2, 2, 6);
generatewavetype("Spectre", 6, 1, 0, 3, 2);
generatewavetype("Medusa", 6, 2, 1, 20, 3);
generatewavetype("Yeti", 6, 1, 2, 40, 4);
generatewavetype("Flare_Fox", 6, 1, 3, 40, 3);
generatewavetype("Spectre", 6, 1, 0, 65, 2);
generatewavetype("Medusa", 6, 2, 0, 80, 3);
generatewavetype("Spectre", 6, 1, 3, 100, 2);
generatewavetype("Medusa", 6, 2, 2, 115, 3);
generatewavetype("Yeti", 6, 1, 1, 115, 4);
generatewavetype("Flare_Fox", 6, 1, 0, 140, 2);
generatewavetype("Flare_Fox", 6, 1, 0, 155, 4);
generatewavetype("Yeti", 6, 1, 1, 155, 4);
break;
case 7:
generatewavetype("Medusa", 5, 2, 1, 3, 3);
generatewavetype("Kingkong", 5, 2, 2, 5, 3);
generatewavetype("Flare_Fox", 7, 2, 3, 20, 2);
generatewavetype("Cerberus", 1, 1, 3, 35, 1);
generatewavetype("Medusa", 5, 2, 0, 50, 3);
generatewavetype("Kingkong", 5, 2, 1, 55, 3);
generatewavetype("Flare_Fox", 7, 2, 2, 70, 2);
generatewavetype("Cerberus", 1, 1, 2, 85, 1);
generatewavetype("Kingkong", 5, 2, 0, 100, 3);
generatewavetype("Medusa", 5, 2, 2, 100, 3);
generatewavetype("Flare_Fox", 8, 2, 1, 120, 2);
generatewavetype("Cerberus", 1, 1, 1, 140, 1);
generatewavetype("Kingkong", 5, 2, 0, 160, 3);
generatewavetype("Medusa", 5, 2, 2, 160, 3);
generatewavetype("Spectre", 5, 1, 1, 180, 2);
generatewave("Spectre", 5, 1, 800, 500, [150, 500], 180, 2);
generatewavetype("Flare_Fox", 8, 2, 0, 192, 2);
generatewavetype("Cerberus", 1, 1, 0, 213, 1);
break;
case 8:
generatewavetype("Fox", 10, 2, 2, 3, 3);
generatewavetype("Trino", 10, 2, 1, 3, 2);
generatewavetype("Dark_Angel", 5, 1, 3, 20, 3);
generatewavetype("Yeti", 5, 1, 0, 35, 3);
generatewavetype("Fox", 10, 2, 3, 35, 3);
generatewave("Dark_Angel", 5, 1, 800, 300, [150, 300, 150, 500], 50, 3);
generatewavetype("Trino", 10, 2, 0, 65, 3);
generatewavetype("Yeti", 5, 1, 1, 80, 3);
generatewavetype("Dark_Angel", 5, 1, 1, 95, 3);
generatewavetype("Yeti", 5, 1, 2, 110, 3);
generatewave("Dark_Angel", 5, 1, 765, 150, [150, 150, 150, 500], 110, 3);
generatewavetype("Fox", 10, 2, 2, 125, 3);
generatewavetype("Trino", 10, 2, 2, 125, 3);
generatewave("Dark_Angel", 5, 1, 800, 500, [150, 500], 140, 3);
break;
case 9:
generatewavetype("Flare_Fox", 5, 2, 2, 3, 4);
generatewavetype("Kingkong", 5, 2, 2, 5, 4);
generatewavetype("Flare_Fox", 5, 2, 3, 25, 4);
generatewavetype("Kingkong", 5, 2, 3, 23, 4);
generatewavetype("Tritano", 5, 1, 0, 35, 6);
generatewavetype("Dark_Angel", 7, 1, 1, 50, 5);
generatewavetype("Fox", 7, 2, 1, 68, 3);
generatewavetype("Dark_Angel", 7, 1, 2, 80, 4);
generatewavetype("Flare_Fox", 7, 2, 2, 78, 4);
generatewavetype("Tritano", 5, 1, 3, 105, 6);
generatewavetype("Kingkong", 10, 2, 0, 105, 4);
generatewavetype("Flare_Fox", 8, 2, 1, 125, 4);
generatewavetype("Fox", 8, 2, 1, 125, 3);
generatewavetype("Tritano", 5, 1, 0, 150, 6);
generatewavetype("Dark_Angel", 11, 1, 2, 155, 3);
break;
case 10:
generatewavetype("Spectre", 5, 2, 0, 3, 3);
generatewavetype("Medusa", 5, 2, 1, 3, 3);
generatewavetype("Kingkong", 5, 2, 2, 18, 3);
generatewavetype("Dark_Angel", 5, 1, 3, 18, 3);
generatewavetype("Lamia", 5, 1, 0, 33, 3);
generatewavetype("Kingkong", 5, 2, 0, 33, 3);
generatewavetype("Medusa", 5, 2, 2, 48, 3);
generatewavetype("Spectre", 5, 2, 3, 48, 3);
generatewave("Dark_Angel", 5, 1, 20, 150, [500, 150, 500, 450, 150, 450], 61, 3);
generatewave("Spectre", 5, 2, 770, 150, [150, 150, 150, 450], 61, 3);
generatewavetype("Lamia", 5, 1, 1, 76, 3);
generatewavetype("Kingkong", 10, 2, 0, 76, 3);
generatewavetype("Lamia", 10, 1, 3, 90, 4);
generatewavetype("Dark_Angel", 5, 1, 0, 105, 3);
generatewave("Spectre", 5, 2, 20, 150, [500, 150, 500, 450, 150, 450], 120, 3);
generatewave("Dark_Angel", 5, 1, 770, 150, [150, 150, 150, 450], 120, 3);
break;
case 11:
generatewavetype("Fox", 5, 3, 0, 2, 3);
generatewavetype("Lamia", 5, 1, 3, 2, 3);
generatewavetype("Tritano", 4, 1, 1, 20, 4);
generatewavetype("Yeti", 7, 2, 2, 30, 2);
generatewavetype("Fenrir", 1, 1, 2, 40, 1);
generatewavetype("Tritano", 4, 1, 0, 60, 5);
generatewavetype("Lamia", 5, 1, 2, 60, 4);
generatewavetype("Fox", 5, 3, 1, 80, 2);
generatewavetype("Yeti", 7, 2, 3, 90, 2.5);
generatewavetype("Fenrir", 1, 1, 3, 105, 1);
generatewavetype("Tritano", 4, 1, 3, 130, 5);
generatewavetype("Fox", 5, 3, 2, 130, 4);
generatewavetype("Lamia", 5, 1, 0, 145, 4);
generatewavetype("Yeti", 8, 2, 1, 165, 2.5);
generatewavetype("Fenrir", 1, 1, 1, 185, 1);
generatewavetype("Tritano", 4, 1, 2, 210, 5);
generatewavetype("Fox", 5, 3, 3, 210, 4);
generatewavetype("Lamia", 5, 1, 1, 210, 4);
generatewavetype("Yeti", 8, 2, 0, 230, 2.5);
generatewavetype("Fenrir", 1, 1, 0, 0xFF, 3);
break;
case 12:
generatewavetype("Trino", 5, 3, 2, 1, 4);
generatewavetype("Flare_Fox", 5, 2, 0, 5, 1.5);
generatewavetype("Kingkong", 5, 3, 1, 20, 3);
generatewavetype("Medusa", 5, 3, 3, 35, 3);
generatewavetype("Dark_Angel", 5, 2, 2, 50, 3);
generatewave("Drako", 5, 1, 770, 150, [150, 150, 150, 300, 700, 300, 700, 450, 200, 450], 50, 3);
generatewavetype("Trino", 5, 3, 1, 70, 4);
generatewavetype("Flare_Fox", 5, 2, 3, 75, 1.5);
generatewavetype("Kingkong", 5, 3, 3, 90, 3);
generatewavetype("Medusa", 5, 3, 0, 105, 3);
generatewavetype("Dark_Angel", 5, 2, 3, 120, 3);
generatewavetype("Drako", 5, 1, 2, 120, 3);
generatewavetype("Trino", 6, 3, 0, 140, 4);
generatewavetype("Flare_Fox", 6, 2, 2, 145, 1.5);
generatewavetype("Medusa", 6, 3, 1, 160, 3);
generatewavetype("Kingkong", 6, 3, 1, 175, 3);
generatewave("Dark_Angel", 6, 2, 700, 580, [700, 170, 150, 170, 150, 450], 195, 3);
generatewavetype("Drako", 5, 1, 3, 195, 3);
break;
case 13:
generatewave("Dark_Angel", 5, 2, 700, 70, [700, 500, 150, 500], 2, 4);
generatewavetype("Lamia", 6, 2, 1, 2, 4);
generatewave("Spectre", 7, 2, 20, 150, [500, 150, 500, 450, 150, 450], 20, 2);
generatewavetype("Flare_Fox", 6, 3, 0, 30, 2);
generatewavetype("Sky_Drako", 5, 1, 2, 42, 3);
generatewavetype("Flare_Fox", 6, 3, 2, 58, 2);
generatewavetype("Spectre", 7, 2, 2, 70, 2);
generatewavetype("Dark_Angel", 5, 2, 0, 70, 3);
generatewavetype("Lamia", 6, 2, 3, 85, 3);
generatewave("Spectre", 7, 2, 770, 150, [150, 150, 150, 300, 700, 300, 700, 450, 200, 450], 95, 3);
generatewave("Dark_Angel", 5, 2, 20, 150, [500, 150, 500, 300, 150, 300, 150, 450], 95, 4);
generatewavetype("Flare_Fox", 7, 3, 3, 116, 2);
generatewavetype("Sky_Drako", 5, 1, 3, 130, 3);
generatewavetype("Lamia", 7, 2, 0, 145, 3);
generatewavetype("Flare_Fox", 7, 3, 1, 145, 3);
generatewavetype("Dark_Angel", 5, 2, 2, 175, 3);
generatewavetype("Spectre", 8, 2, 0, 175, 2);
generatewavetype("Lamia", 6, 2, 1, 195, 3);
generatewavetype("Sky_Drako", 5, 1, 0, 195, 3);
break;
case 14:
generatewavetype("Trino", 10, 3, 0, 1, 3);
generatewavetype("Yeti", 7, 2, 1, 10, 2.5);
generatewavetype("Tritano", 10, 2, 2, 30, 4);
generatewavetype("Golem", 1, 1, 2, 50, 1);
generatewavetype("Trino", 10, 3, 1, 75, 3);
generatewavetype("Yeti", 7, 2, 0, 85, 3);
generatewavetype("Tritano", 10, 2, 3, 105, 4);
generatewavetype("Golem", 1, 1, 3, 125, 1);
generatewavetype("Trino", 10, 3, 2, 145, 3);
generatewavetype("Yeti", 8, 2, 3, 160, 2.5);
generatewavetype("Tritano", 10, 2, 1, 170, 4);
generatewavetype("Golem", 1, 1, 1, 190, 1);
generatewavetype("Yeti", 8, 2, 2, 220, 4);
generatewavetype("Trino", 10, 3, 3, 220, 3);
generatewavetype("Tritano", 10, 2, 0, 250, 4);
generatewavetype("Golem", 1, 1, 0, 270, 1);
break;
case 15:
generatewavetype("Drako", 5, 1, 0, 3, 5);
generatewavetype("Diabolic_Spectre", 6, 1, 2, 3, 4);
generatewavetype("Fox", 20, 3, 1, 30, 3);
generatewavetype("Yeti", 6, 3, 2, 25, 3);
generatewavetype("Lamia", 6, 2, 0, 45, 3);
generatewavetype("Medusa", 6, 3, 1, 50, 3);
generatewave("Drako", 5, 1, 770, 450, [500, 450, 500, 150, 150, 150, 150, 450], 65, 4);
generatewave("Diabolic_Spectre", 7, 1, 770, 150, [150, 150, 150, 300, 700, 300, 700, 450, 200, 450], 65, 3.5);
generatewavetype("Lamia", 7, 2, 2, 80, 3);
generatewavetype("Yeti", 7, 3, 2, 95, 4);
generatewavetype("Medusa", 7, 3, 2, 110, 4);
generatewave("Drako", 5, 1, 150, 50, [150, 450], 125, 4);
generatewavetype("Lamia", 7, 2, 2, 140, 3);
generatewavetype("Medusa", 7, 3, 3, 140, 3);
generatewavetype("Yeti", 7, 3, 0, 160, 3);
generatewave("Diabolic_Spectre", 7, 1, 20, 170, [500, 150, 500, 450, 150, 450], 160, 2.5);
break;
case 16:
generatewave("Diabolic_Spectre", 20, 1, 770, 125, [150, 125, 150, 300, 500, 300, 500, 450, 150, 450], 2, 2);
generatewave("Spectre", 20, 3, 770, 175, [200, 175, 200, 250, 550, 250, 550, 500, 150, 500], 2, 2);
generatewave("Rainbow_Eagle", 1, 1, 770, 150, [200, 150, 200, 225, 550, 225, 550, 475, 150, 475], 42, 1);
generatewave("Drako", 20, 2, 20, 130, [625, 130, 625, 525, 150, 525], 60, 4);
generatewave("Sky_Drako", 20, 1, 20, 225, [525, 225, 525, 450, 150, 450], 60, 4);
generatewave("Rainbow_Eagle", 1, 1, 20, 180, [575, 180, 575, 480, 150, 480], 145, 1);
generatewave("Dark_Angel", 20, 3, 100, 20, [100, 500], 170, 4);
generatewave("Dark_Archangel", 20, 1, 175, 20, [175, 500], 168, 4);
generatewave("Rainbow_Eagle", 1, 1, 140, 20, [140, 500], 0xFF, 1);
break;
case 17:
generatewavetype("Kingkong", 10, 3, 0, 3, 3);
generatewave("Diabolic_Spectre", 10, 2, 770, 500, [150, 500], 5, 3);
generatewavetype("Tritano", 10, 2, 1, 20, 5);
generatewavetype("Dark_Archangel", 10, 1, 2, 40, 3);
generatewavetype("Yeti", 10, 3, 0, 60, 4);
generatewave("Drako", 10, 2, 400, 20, [400, 500, 150, 500], 70, 3);
generatewavetype("Kingkong", 10, 3, 1, 90, 4);
generatewave("Drako", 10, 2, 650, 20, [650, 450, 150, 450], 90, 4);
generatewavetype("Yeti", 10, 3, 3, 110, 4);
generatewavetype("Drako", 10, 2, 2, 110, 4);
generatewavetype("Tritano", 10, 2, 0, 140, 4);
generatewave("Diabolic_Spectre", 10, 2, 700, 600, [700, 250, 150, 250, 150, 450], 145, 3);
break;
case 18:
generatewavetype("Kingkong", 6, 3, 1, 3, 3);
generatewavetype("Trino", 6, 3, 1, 3, 4);
generatewavetype("Lamia", 7, 3, 3, 15, 3);
generatewavetype("Medusa", 7, 3, 3, 15, 3);
generatewave("Sky_Drako", 3, 2, 770, 400, [150, 400], 35, 4);
generatewave("Sky_Drako", 3, 2, 770, 500, [150, 500], 35, 4);
generatewave("Sky_Drako", 1, 2, 770, 450, [150, 450], 43, 4);
generatewavetype("Penguin_Lord", 1, 1, 3, 55, 1);
generatewavetype("Lamia", 6, 3, 0, 85, 3);
generatewavetype("Medusa", 6, 3, 0, 85, 3);
generatewavetype("Kingkong", 7, 3, 2, 95, 4);
generatewavetype("Trino", 7, 3, 2, 95, 4);
generatewave("Sky_Drako", 3, 2, 770, 125, [125, 125, 125, 450], 120, 4);
generatewave("Sky_Drako", 3, 2, 770, 200, [225, 200, 225, 450], 120, 4);
generatewavetype("Penguin_Lord", 1, 1, 2, 140, 1);
generatewave("Sky_Drako", 3, 2, 20, 130, [625, 130, 625, 525, 150, 525], 170, 4);
generatewave("Sky_Drako", 3, 2, 20, 225, [525, 225, 525, 450, 150, 450], 170, 4);
generatewavetype("Kingkong", 6, 3, 3, 180, 3);
generatewavetype("Medusa", 6, 3, 2, 180, 3);
generatewavetype("Trino", 6, 3, 1, 190, 4);
generatewavetype("Lamia", 6, 3, 1, 195, 3);
generatewavetype("Penguin_Lord", 1, 1, 1, 220, 1);
generatewavetype("Kingkong", 6, 3, 0, 250, 4);
generatewavetype("Trino", 6, 3, 0, 251, 4);
generatewavetype("Lamia", 6, 3, 0, 252, 4);
generatewavetype("Medusa", 6, 3, 0, 253, 4);
generatewave("Sky_Drako", 6, 2, 150, 20, [150, 500], 250, 4);
generatewavetype("Penguin_Lord", 1, 1, 0, 282, 1);
break;
case 19:
generatewavetype("Fox", 6, 4, 2, 2, 2);
generatewavetype("Dark_Angel", 6, 3, 3, 10, 2);
generatewave("Diabolic_Spectre", 6, 2, 150, 20, [150, 500], 20, 2);
generatewave("Spectre", 6, 3, 650, 20, [650, 450, 150, 450], 30, 2);
generatewave("Dark_Archangel", 6, 2, 770, 500, [400, 500, 400, 300, 150, 300, 150, 450], 40, 2);
generatewavetype("Flare_Fox", 6, 3, 1, 50, 2);
generatewavetype("Spectre", 6, 3, 2, 60, 2);
generatewavetype("Dark_Angel", 6, 3, 0, 70, 2);
generatewavetype("Fox", 6, 4, 3, 80, 2);
generatewave("Diabolic_Spectre", 6, 2, 20, 150, [500, 150, 500, 300, 150, 300, 150, 450], 90, 2);
generatewave("Dark_Archangel", 6, 2, 770, 150, [150, 150, 150, 300, 700, 300, 700, 450, 200, 450], 100, 2);
generatewavetype("Flare_Fox", 6, 3, 0, 110, 2);
generatewavetype("Dark_Angel", 6, 3, 1, 120, 2);
generatewavetype("Fox", 6, 4, 2, 130, 2);
generatewave("Dark_Archangel", 6, 2, 150, 20, [150, 500], 140, 2);
generatewave("Diabolic_Spectre", 6, 2, 700, 600, [700, 200, 450, 200, 450, 500, 150, 500], 150, 2);
generatewavetype("Spectre", 6, 3, 0, 160, 2);
generatewavetype("Fox", 7, 4, 0, 170, 2);
generatewavetype("Flare_Fox", 7, 3, 1, 180, 2);
generatewave("Dark_Angel", 7, 3, 780, 150, [150, 150, 150, 450], 190, 2);
generatewave("Dark_Archangel", 7, 2, 700, 20, [700, 450, 150, 450], 200, 2);
generatewave("Diabolic_Spectre", 7, 2, 780, 150, [150, 150, 150, 450], 200, 2);
generatewave("Spectre", 7, 3, 700, 20, [700, 450, 150, 450], 200, 2);
break;
case 20:
generatewavetype("Drako", 10, 3, 1, 3, 4);
generatewavetype("Trino", 10, 4, 1, 3, 4);
generatewavetype("Lamia", 10, 3, 0, 30, 3);
generatewavetype("Tritano", 10, 3, 0, 30, 3);
generatewavetype("Flare_Fox", 10, 4, 3, 70, 2);
generatewavetype("Flare_Fox", 10, 4, 1, 70, 2);
generatewavetype("Cerberus", 1, 2, 3, 100, 1);
generatewavetype("Cerberus", 1, 2, 1, 100, 1);
generatewavetype("Drako", 10, 3, 0, 140, 4);
generatewavetype("Trino", 10, 4, 0, 140, 4);
generatewavetype("Lamia", 10, 3, 1, 170, 4);
generatewavetype("Tritano", 10, 3, 1, 170, 4);
generatewavetype("Flare_Fox", 10, 4, 2, 220, 2);
generatewavetype("Flare_Fox", 10, 4, 0, 220, 2);
generatewavetype("Cerberus", 1, 2, 2, 250, 1);
generatewavetype("Cerberus", 1, 2, 0, 250, 1);
break;
case 21:
generatewave("Dark_Archangel", 10, 2, 700, 580, [700, 450, 150, 450], 3, 3);
generatewave("Diabolic_Spectre", 10, 3, 770, 150, [150, 150, 150, 450], 3, 3);
generatewavetype("Sky_Drako", 10, 2, 3, 35, 3);
generatewavetype("Kingkong", 10, 4, 3, 35, 3);
generatewavetype("Yeti", 10, 4, 2, 65, 3);
generatewavetype("Yeti", 10, 4, 3, 65, 3);
generatewavetype("Fenrir", 1, 2, 2, 105, 1);
generatewavetype("Fenrir", 1, 2, 3, 105, 1);
generatewave("Dark_Archangel", 10, 2, 400, 40, [400, 500, 150, 500], 150, 3);
generatewave("Diabolic_Spectre", 10, 3, 400, 580, [400, 150, 150, 150, 150, 450], 150, 3);
generatewavetype("Sky_Drako", 10, 2, 0, 185, 3);
generatewavetype("Kingkong", 10, 4, 0, 185, 3);
generatewavetype("Yeti", 10, 4, 1, 220, 3);
generatewavetype("Yeti", 10, 4, 0, 220, 3);
generatewavetype("Fenrir", 1, 2, 1, 260, 1);
generatewavetype("Fenrir", 1, 2, 0, 270, 1);
break;
case 22:
generatewavetype("Tritano", 10, 3, 2, 3, 5);
generatewavetype("Medusa", 5, 4, 3, 10, 5);
generatewave("Dark_Angel", 5, 3, 770, 500, [150, 500], 12, 5);
generatewavetype("Fox", 5, 4, 0, 10, 5);
generatewave("Spectre", 5, 4, 150, 20, [150, 500], 12, 5);
generatewavetype("Golem", 1, 2, 2, 45, 1);
generatewavetype("Tritano", 10, 3, 3, 70, 5);
generatewavetype("Medusa", 5, 4, 0, 80, 5);
generatewave("Dark_Angel", 5, 3, 150, 20, [150, 500], 82, 5);
generatewavetype("Fox", 5, 4, 2, 80, 5);
generatewavetype("Spectre", 5, 4, 2, 82, 5);
generatewavetype("Golem", 1, 2, 3, 115, 1);
generatewavetype("Tritano", 10, 3, 1, 140, 5);
generatewavetype("Medusa", 5, 4, 2, 150, 5);
generatewavetype("Dark_Angel", 5, 3, 2, 152, 5);
generatewavetype("Fox", 5, 4, 3, 150, 5);
generatewave("Spectre", 5, 4, 770, 500, [150, 500], 152, 5);
generatewavetype("Golem", 1, 2, 1, 185, 1);
generatewavetype("Tritano", 10, 3, 0, 210, 5);
generatewavetype("Medusa", 5, 4, 1, 220, 5);
generatewavetype("Fox", 5, 4, 1, 222, 5);
generatewave("Dark_Angel", 5, 3, 770, 400, [150, 400], 220, 5);
generatewave("Spectre", 5, 4, 770, 500, [150, 500], 222, 5);
generatewavetype("Golem", 1, 2, 0, 0xFF, 1);
break;
case 23:
generatewavetype("Trino", 6, 4, 2, 2, 6);
generatewavetype("Lamia", 6, 4, 2, 4, 6);
generatewavetype("Flare_Fox", 6, 4, 2, 6, 6);
generatewave("Drako", 6, 3, 770, 150, [150, 150, 150, 500], 36, 6);
generatewave("Sky_Drako", 6, 3, 770, 150, [150, 150, 150, 500], 38, 6);
generatewave("Diabolic_Spectre", 6, 3, 770, 150, [150, 150, 150, 500], 40, 6);
generatewavetype("Trino", 6, 4, 3, 76, 6);
generatewavetype("Lamia", 6, 4, 3, 78, 6);
generatewavetype("Flare_Fox", 6, 4, 3, 80, 6);
generatewave("Drako", 6, 3, 770, 300, [150, 300, 150, 500], 106, 6);
generatewave("Sky_Drako", 6, 3, 770, 300, [150, 300, 150, 500], 108, 6);
generatewave("Diabolic_Spectre", 6, 3, 770, 300, [150, 300, 150, 500], 110, 6);
generatewave("Rainbow_Eagle", 1, 2, 770, 150, [150, 150, 150, 300, 700, 300, 700, 500, 150, 500], 150, 1);
generatewave("Rainbow_Eagle", 1, 2, 30, 150, [700, 150, 700, 300, 150, 300, 150, 500], 155, 1);
generatewavetype("Trino", 6, 4, 1, 196, 6);
generatewavetype("Lamia", 6, 4, 1, 198, 6);
generatewavetype("Flare_Fox", 6, 4, 1, 200, 6);
generatewave("Drako", 6, 3, 770, 500, [150, 500], 236, 6);
generatewave("Sky_Drako", 6, 3, 770, 500, [150, 500], 236, 6);
generatewave("Diabolic_Spectre", 6, 3, 770, 500, [150, 500], 236, 6);
generatewavetype("Trino", 6, 4, 0, 276, 6);
generatewavetype("Lamia", 6, 4, 0, 278, 6);
generatewavetype("Flare_Fox", 6, 4, 0, 280, 6);
generatewave("Drako", 6, 3, 500, 20, [500, 500, 150, 500], 316, 6);
generatewave("Sky_Drako", 6, 3, 500, 20, [500, 500, 150, 500], 318, 6);
generatewave("Diabolic_Spectre", 6, 3, 500, 20, [500, 500, 150, 500], 320, 6);
generatewave("Rainbow_Eagle", 1, 2, 575, 600, [575, 150, 150, 150, 150, 500], 360, 1);
generatewave("Rainbow_Eagle", 1, 2, 700, 600, [700, 250, 150, 250, 150, 500], 360, 1);
break;
case 24:
generatewave("Drako", 12, 4, 650, 50, [650, 500, 150, 500], 3, 3);
generatewave("Spectre", 12, 4, 800, 200, [200, 200, 200, 500], 3, 3);
generatewave("Dark_Angel", 12, 4, 650, 50, [650, 500, 150, 500], 39, 3);
generatewave("Dark_Archangel", 12, 3, 800, 200, [200, 200, 200, 500], 39, 3);
generatewavetype("Penguin_Lord", 1, 2, 1, 85, 1);
generatewavetype("Penguin_Lord", 1, 2, 3, 85, 1);
generatewavetype("Tritano", 6, 4, 1, 130, 4);
generatewavetype("Tritano", 6, 4, 3, 130, 4);
generatewavetype("Yeti", 6, 4, 1, 132, 4);
generatewavetype("Yeti", 6, 4, 3, 132, 4);
generatewave("Drako", 12, 4, 650, 50, [650, 200, 150, 200, 150, 500], 160, 3);
generatewave("Spectre", 12, 4, 650, 800, [650, 300, 150, 300, 150, 500], 160, 3);
generatewave("Dark_Angel", 12, 4, 650, 50, [650, 200, 150, 200, 150, 500], 200, 3);
generatewave("Dark_Archangel", 12, 3, 650, 800, [650, 300, 150, 300, 150, 500], 200, 3);
generatewavetype("Yeti", 6, 4, 0, 240, 4);
generatewavetype("Yeti", 6, 4, 2, 240, 4);
generatewavetype("Tritano", 6, 4, 0, 242, 4);
generatewavetype("Tritano", 6, 4, 2, 242, 4);
generatewavetype("Penguin_Lord", 1, 2, 0, 285, 1);
generatewavetype("Penguin_Lord", 1, 2, 2, 285, 1);
break;
case 25:
generatewavetype("Kingkong", 6, 4, 1, 2, 3);
generatewavetype("Medusa", 6, 4, 3, 2, 3);
generatewavetype("Spectre", 6, 4, 2, 2, 3);
generatewavetype("Fox", 6, 4, 3, 20, 3);
generatewavetype("Trino", 6, 4, 0, 20, 3);
generatewavetype("Dark_Angel", 6, 4, 2, 20, 3);
generatewavetype("Trino", 6, 4, 0, 38, 3);
generatewavetype("Medusa", 6, 4, 1, 38, 3);
generatewavetype("Spectre", 6, 4, 3, 38, 3);
generatewave("Drako", 5, 4, 150, 70, [150, 500], 50, 4);
generatewavetype("Fox", 6, 4, 2, 56, 3);
generatewavetype("Kingkong", 6, 4, 0, 56, 3);
generatewavetype("Dark_Angel", 6, 4, 1, 56, 3);
generatewavetype("Trino", 6, 4, 1, 74, 3);
generatewavetype("Medusa", 6, 4, 2, 74, 3);
generatewavetype("Dark_Angel", 6, 4, 3, 74, 3);
generatewavetype("Fox", 6, 4, 1, 92, 3);
generatewavetype("Kingkong", 6, 4, 2, 92, 3);
generatewavetype("Spectre", 6, 4, 0, 92, 3);
generatewave("Drako", 5, 4, 150, 70, [150, 500], 104, 4);
generatewavetype("Trino", 6, 4, 0, 110, 3);
generatewavetype("Medusa", 6, 4, 1, 110, 3);
generatewavetype("Kingkong", 6, 4, 3, 110, 3);
generatewavetype("Fox", 6, 4, 0, 128, 3);
generatewavetype("Dark_Angel", 6, 4, 3, 128, 3);
generatewavetype("Spectre", 6, 4, 1, 128, 3);
generatewave("Drako", 5, 4, 150, 70, [150, 500], 140, 4);
break;
case 26:
generatewavetype("Kingkong", 10, 5, 1, 3, 3);
generatewavetype("Fox", 10, 5, 3, 3, 3);
generatewavetype("Flare_Fox", 7, 5, 2, 33, 3);
generatewavetype("Yeti", 7, 5, 2, 33, 3);
generatewavetype("Lamia", 10, 4, 1, 54, 3);
generatewavetype("Dark_Archangel", 10, 3, 3, 54, 3);
generatewavetype("Flare_Fox", 8, 5, 1, 84, 3);
generatewavetype("Yeti", 8, 5, 2, 84, 3);
generatewavetype("Cerberus", 1, 3, 1, 115, 1);
generatewavetype("Fenrir", 1, 3, 2, 115, 1);
generatewavetype("Kingkong", 10, 5, 2, 150, 3);
generatewavetype("Fox", 10, 5, 0, 150, 3);
generatewavetype("Flare_Fox", 7, 5, 1, 180, 3);
generatewavetype("Yeti", 7, 5, 1, 180, 3);
generatewavetype("Lamia", 10, 4, 2, 201, 3);
generatewavetype("Dark_Archangel", 10, 3, 0, 201, 3);
generatewavetype("Flare_Fox", 8, 5, 2, 230, 3);
generatewavetype("Yeti", 8, 5, 0, 230, 3);
generatewavetype("Cerberus", 1, 3, 2, 250, 1);
generatewavetype("Fenrir", 1, 3, 0, 250, 1);
break;
case 27:
generatewavetype("Kingkong", 10, 5, 3, 3, 3);
generatewavetype("Trino", 10, 5, 1, 3, 3);
generatewavetype("Yeti", 6, 5, 1, 31, 3);
generatewavetype("Tritano", 6, 5, 1, 31, 3);
generatewavetype("Dark_Archangel", 10, 4, 2, 50, 3);
generatewavetype("Diabolic_Spectre", 10, 4, 1, 50, 3);
generatewavetype("Yeti", 6, 5, 1, 63, 3);
generatewavetype("Tritano", 6, 5, 2, 63, 3);
generatewavetype("Fenrir", 1, 3, 1, 90, 1);
generatewavetype("Golem", 1, 3, 2, 90, 1);
generatewavetype("Kingkong", 10, 5, 0, 135, 3);
generatewavetype("Trino", 10, 5, 2, 135, 3);
generatewavetype("Yeti", 6, 5, 0, 165, 3);
generatewavetype("Tritano", 6, 5, 0, 165, 3);
generatewavetype("Dark_Archangel", 10, 4, 1, 185, 3);
generatewavetype("Diabolic_Spectre", 10, 4, 2, 185, 3);
generatewavetype("Yeti", 6, 5, 0, 198, 3);
generatewavetype("Tritano", 6, 5, 3, 198, 3);
generatewavetype("Fenrir", 1, 3, 0, 225, 1);
generatewavetype("Golem", 1, 3, 3, 225, 1);
break;
case 28:
generatewavetype("Medusa", 10, 5, 1, 3, 2);
generatewavetype("Spectre", 10, 5, 3, 3, 2);
generatewavetype("Flare_Fox", 7, 5, 2, 25, 3);
generatewavetype("Tritano", 7, 5, 2, 25, 3);
generatewavetype("Drako", 10, 5, 1, 50, 3);
generatewavetype("Dark_Angel", 10, 5, 3, 50, 3);
generatewavetype("Flare_Fox", 8, 5, 0, 85, 2);
generatewavetype("Flare_Fox", 8, 5, 1, 85, 2);
generatewavetype("Cerberus", 1, 3, 0, 110, 1);
generatewavetype("Cerberus", 1, 3, 1, 110, 1);
generatewavetype("Medusa", 10, 5, 1, 145, 2);
generatewavetype("Spectre", 10, 5, 3, 145, 2);
generatewavetype("Flare_Fox", 7, 5, 2, 165, 3);
generatewavetype("Tritano", 7, 5, 2, 165, 3);
generatewavetype("Drako", 10, 5, 1, 190, 3);
generatewavetype("Dark_Angel", 10, 5, 3, 190, 3);
generatewavetype("Tritano", 4, 5, 0, 225, 5);
generatewavetype("Tritano", 4, 5, 1, 225, 5);
generatewavetype("Tritano", 4, 5, 2, 225, 5);
generatewavetype("Tritano", 4, 5, 3, 225, 5);
generatewavetype("Golem", 1, 3, 0, 0xFF, 1);
generatewavetype("Golem", 1, 3, 1, 0xFF, 1);
break;
case 29:
generatewave("Dark_Angel", 8, 5, 770, 200, [150, 200, 150, 350, 500, 350, 500, 500, 150, 500], 3, 3);
generatewave("Dark_Archangel", 8, 4, 700, 70, [700, 500, 450, 500, 450, 300, 150, 300, 150, 500], 3, 3);
generatewave("Drako", 8, 5, 20, 200, [600, 200, 600, 350, 300, 350, 300, 200, 600, 200, 600, 350, 150, 350, 150, 500], 30, 3);
generatewave("Sky_Drako", 8, 4, 770, 200, [300, 200, 300, 350, 600, 350, 600, 200, 300, 200, 300, 350, 600, 350, 600, 500, 150, 500], 30, 3);
generatewave("Spectre", 8, 5, 300, 600, [300, 150, 500, 150, 500, 350, 300, 350, 300, 150, 500, 150, 500, 350, 150, 350, 150, 500], 30, 3);
generatewave("Diabolic_Spectre", 8, 4, 600, 50, [600, 350, 300, 350, 300, 150, 600, 150, 600, 350, 300, 350, 300, 150, 150, 150, 150, 500], 30, 3);
generatewave("Dark_Angel", 9, 5, 800, 400, [150, 400], 65, 3);
generatewave("Dark_Archangel", 9, 4, 800, 500, [150, 500], 65, 3);
generatewave("Diabolic_Spectre", 9, 4, 20, 200, [600, 200, 600, 500, 150, 500], 80, 3);
generatewave("Spectre", 9, 5, 20, 200, [600, 300, 600, 400, 150, 400], 80, 3);
generatewave("Drako", 9, 5, 700, 50, [700, 500, 150, 500], 95, 3);
generatewave("Sky_Drako", 9, 4, 600, 50, [600, 400, 150, 400], 95, 3);
generatewave("Dark_Angel", 8, 5, 10, 300, [600, 300, 600, 500, 150, 500], 135, 3);
generatewave("Spectre", 8, 5, 800, 500, [150, 500], 135, 3);
generatewave("Drako", 8, 5, 800, 200, [150, 200, 150, 500], 135, 3);
generatewave("Dark_Archangel", 8, 4, 10, 300, [600, 300, 600, 500, 150, 500], 170, 3);
generatewave("Diabolic_Spectre", 8, 4, 800, 500, [150, 500], 170, 3);
generatewave("Sky_Drako", 8, 4, 800, 200, [150, 200, 150, 500], 170, 3);
break;
case 30:
generatewavetype("Lamia", 15, 5, 1, 3, 2);
generatewave("Diabolic_Spectre", 15, 5, 400, 50, [400, 500, 150, 500], 3, 2);
generatewave("Diabolic_Spectre", 10, 5, 20, 200, [700, 200, 700, 500, 150, 500], 45, 2);
generatewave("Rainbow_Eagle", 1, 3, 800, 200, [150, 200, 150, 500], 45, 2);
generatewavetype("Lamia", 10, 5, 1, 95, 2);
generatewavetype("Penguin_Lord", 1, 3, 1, 95, 2);
generatewavetype("Lamia", 15, 5, 0, 145, 2);
generatewave("Diabolic_Spectre", 15, 5, 800, 500, [150, 500], 145, 2);
generatewave("Diabolic_Spectre", 10, 5, 850, 500, [150, 500], 190, 2);
generatewave("Rainbow_Eagle", 1, 3, 600, 50, [600, 500, 150, 500], 190, 2);
generatewavetype("Lamia", 10, 5, 0, 240, 2);
generatewavetype("Penguin_Lord", 1, 3, 0, 240, 2);
break;
case 31:
generatewave("Spectre", 5, 5, 400, 50, [400, 500, 150, 500], 3, 2);
generatewavetype("Medusa", 5, 5, 3, 3, 2);
generatewavetype("Drako", 5, 5, 2, 14, 2);
generatewave("Dark_Angel", 5, 5, 800, 200, [150, 200, 150, 350, 600, 350, 600, 500, 150, 500], 14, 2);
generatewavetype("Flare_Fox", 5, 5, 2, 25, 2);
generatewave("Diabolic_Spectre", 5, 5, 400, 50, [400, 500, 150, 500], 25, 2);
generatewavetype("Lamia", 5, 5, 3, 36, 2);
generatewavetype("Medusa", 5, 5, 0, 36, 3);
generatewave("Spectre", 5, 5, 800, 500, [150, 500], 47, 2);
generatewave("Drako", 5, 5, 150, 50, [150, 500], 47, 3);
generatewavetype("Dark_Angel", 5, 5, 1, 58, 2);
generatewavetype("Flare_Fox", 5, 5, 0, 58, 2);
generatewave("Diabolic_Spectre", 5, 5, 800, 500, [150, 500], 69, 2);
generatewavetype("Lamia", 5, 5, 1, 69, 2);
generatewave("Spectre", 5, 5, 400, 50, [400, 500, 150, 500], 80, 2);
generatewavetype("Medusa", 5, 5, 3, 80, 2);
generatewavetype("Drako", 5, 5, 2, 91, 2);
generatewave("Dark_Angel", 5, 5, 800, 200, [150, 200, 150, 350, 600, 350, 600, 500, 150, 500], 91, 2);
generatewavetype("Flare_Fox", 5, 5, 2, 102, 2);
generatewave("Diabolic_Spectre", 5, 5, 400, 50, [400, 500, 150, 500], 102, 2);
generatewavetype("Lamia", 5, 5, 3, 113, 2);
generatewavetype("Medusa", 5, 5, 0, 113, 2);
generatewave("Spectre", 5, 5, 800, 500, [150, 500], 124, 2);
generatewave("Drako", 5, 5, 150, 50, [150, 500], 124, 2);
generatewavetype("Dark_Angel", 5, 5, 1, 135, 2);
generatewavetype("Flare_Fox", 5, 5, 0, 135, 2);
generatewave("Diabolic_Spectre", 5, 5, 800, 500, [150, 500], 146, 2);
generatewavetype("Lamia", 5, 5, 1, 146, 2);
break;
case 32:
generatewavetype("Lamia", 20, 5, 0, 5, 5);
generatewave("Diabolic_Spectre", 20, 5, 600, 50, [600, 500, 150, 500], 5, 5);
generatewave("Dark_Archangel", 20, 5, 800, 500, [150, 500], 5, 5);
generatewave("Sky_Drako", 20, 5, 800, 500, [150, 500], 110, 7.5);
generatewavetype("Tritano", 20, 5, 1, 110, 7.5);
generatewavetype("Yeti", 20, 5, 0, 110, 7.5);
generatewavetype("Flare_Fox", 20, 5, 3, 110, 7.5);
break;
case 33:
generatewavetype("Cerberus", 1, 3, 0, 5, 1);
generatewavetype("Flare_Fox", 10, 5, 2, 25, 1);
generatewavetype("Yeti", 5, 5, 1, 35, 3);
generatewavetype("Tritano", 5, 5, 0, 35, 3);
generatewavetype("Fenrir", 1, 3, 1, 50, 1);
generatewavetype("Yeti", 10, 5, 3, 70, 3);
generatewavetype("Flare_Fox", 5, 5, 1, 80, 3);
generatewavetype("Tritano", 5, 5, 0, 80, 3);
generatewavetype("Golem", 1, 3, 0, 95, 1);
generatewavetype("Tritano", 5, 5, 1, 125, 4);
generatewavetype("Yeti", 10, 5, 2, 135, 3);
generatewavetype("Flare_Fox", 10, 5, 3, 135, 3);
generatewavetype("Tritano", 10, 5, 0, 145, 3);
generatewavetype("Cerberus", 1, 3, 1, 185, 1);
generatewavetype("Fenrir", 1, 3, 2, 185, 1);
generatewavetype("Golem", 1, 3, 3, 185, 1);
break;
case 34:
generatewavetype("Lamia", 6, 5, 2, 4, 8);
generatewave("Drako", 6, 5, 150, 50, [150, 500], 4, 8);
generatewavetype("Flare_Fox", 6, 5, 1, 4, 8);
generatewave("Dark_Archangel", 6, 5, 800, 500, [150, 500], 4, 8);
generatewavetype("Tritano", 6, 5, 1, 52, 8);
generatewave("Diabolic_Spectre", 6, 5, 150, 50, [150, 500], 52, 8);
generatewavetype("Yeti", 6, 5, 2, 52, 8);
generatewave("Sky_Drako", 6, 5, 800, 500, [150, 500], 52, 8);
generatewavetype("Tritano", 6, 5, 2, 100, 8);
generatewave("Dark_Archangel", 6, 5, 150, 50, [150, 500], 100, 8);
generatewavetype("Lamia", 6, 5, 1, 100, 8);
generatewave("Drako", 6, 5, 800, 500, [150, 500], 100, 8);
generatewavetype("Flare_Fox", 6, 5, 2, 148, 8);
generatewave("Sky_Drako", 6, 5, 150, 50, [150, 500], 148, 8);
generatewavetype("Yeti", 6, 5, 1, 148, 8);
generatewave("Diabolic_Spectre", 6, 5, 800, 500, [150, 500], 148, 8);
generatewavetype("Lamia", 6, 5, 0, 196, 8);
generatewavetype("Yeti", 6, 5, 3, 196, 8);
generatewavetype("Tritano", 6, 5, 2, 196, 8);
generatewavetype("Flare_Fox", 6, 5, 1, 196, 8);
generatewave("Diabolic_Spectre", 6, 5, 650, 50, [650, 500, 150, 500], 244, 8);
generatewave("Sky_Drako", 6, 5, 450, 50, [450, 500, 150, 500], 244, 8);
generatewave("Dark_Archangel", 6, 5, 150, 50, [150, 500], 244, 8);
generatewave("Drako", 6, 5, 800, 500, [150, 500], 244, 8);
break;
case 35:
generatewavetype("Golem", 1, 4, 1, 5, 1);
generatewavetype("Fenrir", 1, 4, 0, 5, 1);
generatewave("Rainbow_Eagle", 1, 4, 800, 200, [150, 200, 150, 350, 600, 350, 600, 500, 150, 500], 55, 1);
generatewavetype("Cerberus", 1, 4, 0, 55, 1);
generatewavetype("Penguin_Lord", 1, 4, 2, 110, 1);
generatewavetype("Cerberus", 1, 4, 1, 110, 1);
generatewavetype("Fenrir", 1, 4, 1, 180, 1);
generatewave("Rainbow_Eagle", 1, 4, 800, 200, [150, 200, 150, 350, 600, 350, 600, 500, 150, 500], 180, 1);
generatewavetype("Penguin_Lord", 1, 4, 1, 240, 1);
generatewavetype("Golem", 1, 4, 0, 240, 1);
break;
};
timerwave.start();
if (GameData.tutormulti == false){
cnt = 0;
i = 0;
while (i < 4) {
if (GameData.magslot[i] != ""){
cnt = (cnt + 1);
};
i = (i + 1);
};
if (cnt > 1){
GameData.tutormulti = true;
Main.mc.curwin.tutormc.initscenario("multispell");
};
} else {
if (GameData.tutorlimit == false){
if (GameData.magslot[4] != ""){
GameData.tutorlimit = true;
Main.mc.curwin.tutormc.initscenario("limitbreak");
};
};
};
GameData.maxcreep = GameData.totcreep;
Main.mc.curwin.statbar.tcreep.text = GameData.totcreep;
}
public function generatewavetype(_arg1:String, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:Number){
var _local7:Wave;
_local7 = new Wave();
_local7.createWavePathType(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6);
arrwave.push(_local7);
nwave++;
GameData.totcreep = (GameData.totcreep + _arg2);
}
private function executewave(_arg1:TimerEvent):void{
var _local2:*;
var _local3:TimerEvent;
ctrtimer++;
_local2 = 0;
while (_local2 < nwave) {
if ((((ctrtimer == arrwave[_local2].interval)) && (!(arrwave[_local2].timercreep.running)))){
arrwave[_local2].spawncreep(_local3);
if (arrwave[_local2].nenemy > 0){
arrwave[_local2].launchwave();
};
ctrwave++;
if (ctrwave == nwave){
trace("Stop");
timerwave.stop();
};
};
_local2++;
};
}
public function generatewave(_arg1:String, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:Array, _arg7:int, _arg8:Number){
var _local9:Wave;
_local9 = new Wave();
_local9.createWave(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8);
arrwave.push(_local9);
nwave++;
GameData.totcreep = (GameData.totcreep + _arg2);
}
}
}//package
Section 103
//LightningSpear (LightningSpear)
package {
import flash.geom.*;
import flash.display.*;
import com.troy.collision.*;
import de.polygonal.math.*;
public class LightningSpear extends MovieClip {
public var creephit:Array;
public function LightningSpear(){
creephit = new Array();
super();
}
public function init(_arg1:Number, _arg2:Number){
var _local3:Number;
_local3 = Global.AngleOfTwoDots(_arg1, _arg2, 165, 450);
this.rotation = _local3;
this.mouseEnabled = false;
this.mouseChildren = false;
}
public function resume(){
this.play();
}
public function update(){
var j:*;
var rand:*;
if (Global.moveAngle(this, this.rotation, 10, new Rectangle(-20, -20, 840, 640))){
(Main.mc.curwin as GameWindow).arrmagic.splice((Main.mc.curwin as GameWindow).arrmagic.indexOf(this), 1);
Global.trash(this, null, null);
};
var _local2 = Main.mc.curwin;
with (_local2) {
j = 0;
while (j < arrcreep.length) {
if (((arrcreep[j]) && ((creephit.indexOf(arrcreep[j]) == -1)))){
if (ColDetection.isColliding(this, arrcreep[j], Main.mc.curwin, false)){
if (!arrcreep[j].lightningbody){
rand = PM_PRNG.nextIntRange(0, 100);
creephit.push(arrcreep[j]);
if ((((rand >= 0)) && ((rand <= GameData.lightningspearstun[(GameData.lightningspearstunlv - 1)])))){
arrcreep[j].ctrstun = GameData.lightningspearduration;
arrcreep[j].creepmc.stop();
arrcreep[j].stunmc.x = arrcreep[j].stunx[arrcreep[j].direction];
arrcreep[j].stunmc.y = arrcreep[j].stuny[arrcreep[j].direction];
arrcreep[j].stunmc.visible = true;
};
if (arrcreep[j].rockbody){
arrcreep[j].damagecreep((GameData.lightningspeardmg[(GameData.lightningspeardmglv - 1)] * GameData.weakmultiplier), true);
} else {
arrcreep[j].damagecreep(GameData.lightningspeardmg[(GameData.lightningspeardmglv - 1)], true);
};
} else {
creephit.push(arrcreep[j]);
arrcreep[j].damagecreep(0, true);
};
};
};
j++;
};
};
}
public function pause(){
this.stop();
}
}
}//package
Section 104
//LightningStrike (LightningStrike)
package {
import flash.display.*;
import de.polygonal.math.*;
public class LightningStrike extends MovieClip {
public var target:Creep;
public function resume(){
if (this.currentFrame < this.totalFrames){
this.play();
};
}
public function update(){
var _local1:int;
if (this.currentFrame == this.totalFrames){
stop();
if (((target) && (!(target.lightningbody)))){
_local1 = PM_PRNG.nextIntRange(0, 100);
if ((((_local1 >= 0)) && ((_local1 <= GameData.lightningstrikestun[(GameData.lightningstrikestunlv - 1)])))){
target.ctrstun = GameData.lightningstrikeduration;
target.creepmc.stop();
target.stunmc.x = target.stunx[target.direction];
target.stunmc.y = target.stuny[target.direction];
target.stunmc.visible = true;
};
if (target.rockbody){
target.damagecreep((GameData.lightningstrikedmg[(GameData.lightningstrikedmglv - 1)] * GameData.weakmultiplier), true);
} else {
target.damagecreep(GameData.lightningstrikedmg[(GameData.lightningstrikedmglv - 1)], true);
};
} else {
if (((target) && (target.lightningbody))){
target.damagecreep(0, true);
};
};
(Main.mc.curwin as GameWindow).arrmagic.splice((Main.mc.curwin as GameWindow).arrmagic.indexOf(this), 1);
Global.trash(this, null, null);
};
}
public function pause(){
this.stop();
}
}
}//package
Section 105
//LoadDialog (LoadDialog)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class LoadDialog extends Dialog {
public var save4:MovieClip;
public var save1:MovieClip;
public var save3:MovieClip;
public var save5:MovieClip;
public var tload:TextField;
public var save0:MovieClip;
public var save2:MovieClip;
public var closebtn:SimpleButton;
public var cancelbtn:SimpleButton;
public var loadbtn:SimpleButton;
public function LoadDialog(){
var _local1:*;
super();
Global.attachSFXButton([closebtn, loadbtn, cancelbtn]);
closebtn.addEventListener(MouseEvent.CLICK, closeloaddialog, false, 0, true);
_local1 = 0;
while (_local1 < 6) {
this[("save" + _local1)].addEventListener(MouseEvent.CLICK, clickslot, false, 0, true);
_local1++;
};
loadbtn.addEventListener(MouseEvent.CLICK, loadgame, false, 0, true);
cancelbtn.addEventListener(MouseEvent.CLICK, cancelload, false, 0, true);
this.closemodal();
}
private function loadgame(_arg1:MouseEvent):void{
var _local2:int;
if (Main.mc.sitelock() == false){
Main.mc.showWindow("BannedWindow", null, null);
} else {
_local2 = -1;
i = 0;
while ((((i < 6)) && ((_local2 == -1)))) {
if (this[("save" + i)].currentFrame == 2){
_local2 = i;
};
i++;
};
Main.mc.memCard.loadGame(_local2);
if (Main.mc.curwinname == "MainMenuWindow"){
Main.mc.showWindow("GameWindow", null, null);
} else {
Main.mc.curwin.lc.dispose();
Main.mc.showWindow("GameWindow", Main.mc.curwin.refocus, Main.mc.curwin.update);
};
GameData.magcooldown = [270, 270, 270, 270, 270];
if (GameData.magslot[4] != ""){
GameData.magcooldown[4] = (-90 + GameData[(GameData.magslot[4] + "gauge")]);
};
Main.mc.curwin.drawmagicinstatbar();
Main.mc.curwin.imd.updatebullet();
Main.mc.curwin.drawcooldown();
Main.mc.curwin.imd.showmodal();
Main.mc.curwin.imd.spellbtn.gotoAndStop("standby");
Main.mc.curwin.imd.nextmissionbtn.gotoAndStop("active");
Main.mc.curwin.imd.mw.visible = true;
Main.mc.curwin.imd.sw.visible = false;
Main.mc.curwin.imd.initnextmission();
Main.mc.sc.playBGM("intermission");
};
}
public function init(){
i = 0;
while (i < 6) {
this[("save" + i)].gotoAndStop(1);
i++;
};
tload.text = "";
loadbtn.visible = false;
cancelbtn.visible = false;
}
private function clickslot(_arg1:MouseEvent):void{
if (!_arg1.currentTarget.tempty.visible){
tload.text = "Load this data ?";
i = 0;
while (i < 6) {
this[("save" + i)].gotoAndStop(1);
i++;
};
_arg1.currentTarget.gotoAndStop(2);
loadbtn.visible = true;
cancelbtn.visible = true;
};
}
private function closeloaddialog(_arg1:MouseEvent):void{
this.closemodal();
}
private function cancelload(_arg1:MouseEvent):void{
init();
}
public function showwin(){
var arr:Array;
this.showmodal();
arr = new Array();
var _local2 = Main.mc.memCard;
with (_local2) {
arr = loadAllSavedData();
};
i = 0;
while (i < 6) {
this[("save" + i)].tmission.visible = false;
this[("save" + i)].tgem.visible = false;
this[("save" + i)].tempty.visible = false;
this[("save" + i)].gemicon.visible = false;
if (arr[i].emptydata){
this[("save" + i)].tempty.visible = true;
} else {
this[("save" + i)].tmission.visible = true;
this[("save" + i)].tgem.visible = true;
this[("save" + i)].tmission.text = ("Mission " + arr[i].level);
this[("save" + i)].tgem.text = arr[i].gem;
this[("save" + i)].gemicon.visible = true;
};
i++;
};
init();
}
}
}//package
Section 106
//lv (lv)
package {
import flash.media.*;
public dynamic class lv extends Sound {
}
}//package
Section 107
//lvtense (lvtense)
package {
import flash.media.*;
public dynamic class lvtense extends Sound {
}
}//package
Section 108
//magicboulder (magicboulder)
package {
import flash.media.*;
public dynamic class magicboulder extends Sound {
}
}//package
Section 109
//magiceaster (magiceaster)
package {
import flash.media.*;
public dynamic class magiceaster extends Sound {
}
}//package
Section 110
//magicfireball (magicfireball)
package {
import flash.media.*;
public dynamic class magicfireball extends Sound {
}
}//package
Section 111
//magicfirerain (magicfirerain)
package {
import flash.media.*;
public dynamic class magicfirerain extends Sound {
}
}//package
Section 112
//magicicicle (magicicicle)
package {
import flash.media.*;
public dynamic class magicicicle extends Sound {
}
}//package
Section 113
//magiclightning (magiclightning)
package {
import flash.media.*;
public dynamic class magiclightning extends Sound {
}
}//package
Section 114
//magiclightningspear (magiclightningspear)
package {
import flash.media.*;
public dynamic class magiclightningspear extends Sound {
}
}//package
Section 115
//magicnova (magicnova)
package {
import flash.media.*;
public dynamic class magicnova extends Sound {
}
}//package
Section 116
//magicquake (magicquake)
package {
import flash.media.*;
public dynamic class magicquake extends Sound {
}
}//package
Section 117
//Main (Main)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import gs.easing.*;
import mochi.as3.*;
import flash.utils.*;
public dynamic class Main extends MovieClip {
public var curwinname:String;// = ""
public var sc:SoundControl;
public var pausestate:Boolean;// = false
public var lockeddomain:Array;
public var sfxbuttonover;// = "buttonover"
public var PreloaderMC:MovieClip;
public var layerinfo:Layer;
public var layerbg:Layer;
public var sitelockmode:Boolean;// = false
public var mochiads:MovieClip;
public var curwin:MovieClip;
public var memCard:MemoryCard;
public var sfxbuttonclick;// = "buttonclick"
public static var mc:Main;
public function Main(){
sc = new SoundControl();
pausestate = false;
curwinname = "";
layerbg = new Layer();
layerinfo = new Layer();
sfxbuttonover = "buttonover";
sfxbuttonclick = "buttonclick";
memCard = new MemoryCard();
lockeddomain = ["www.lunakite.com", "www.flashgamelicense.com", "www.addictinggames.com"];
sitelockmode = false;
super();
addFrameScript(0, frame1, 19, frame20);
mc = this;
stage.showDefaultContextMenu = false;
addChild(layerbg);
addChild(layerinfo);
stage.addEventListener(KeyboardEvent.KEY_UP, globalKeyboardEvent);
}
public function init(){
sc.registerSFX(["buttonover", "buttonclick", "magicboulder", "magicfireball", "magicicicle", "magicquake", "magiclightningspear"]);
sc.registerSFX(["fall", "damage", "explode", "zeusthunder", "magiclightning", "magiceaster", "magicnova", "blizzard", "magicfirerain", "win", "gameover"]);
sc.registerSFX(["foxdie", "kingkongdie", "trinodie", "medusadie", "drakodie", "angeldie", "spectredie", "golemdie", "fenrirdie", "cerberusdie", "rainboweagledie", "penguindie"]);
showWindow("IntroWindow", null, null);
}
private function globalKeyboardEvent(_arg1:KeyboardEvent):void{
}
public function playgame(){
gotoAndPlay(1, "thegame");
}
function frame1(){
stop();
MochiAd.showPreGameAd({clip:root, no_bg:true, id:"4d044b32410097b9", res:"800x600", ad_finished:playgame});
}
function frame20(){
MochiBot.track(this, "8b21694b");
stop();
init();
}
public function showWindow(_arg1:String, _arg2:Function, _arg3:Function){
var _local4:Class;
if (layerbg.numChildren > 0){
Global.trash(curwin, _arg2, _arg3);
};
_local4 = (getDefinitionByName(_arg1) as Class);
curwin = null;
curwin = new (_local4);
curwinname = _arg1;
layerbg.addChild(curwin);
stage.stageFocusRect = false;
stage.focus = curwin;
}
public function sitelock():Boolean{
var _local1:LocalConnection;
var _local2:String;
var _local3:Boolean;
var _local4:*;
if (sitelockmode == false){
return (true);
};
_local1 = new LocalConnection();
_local2 = _local1.domain;
_local3 = false;
_local4 = 0;
while (_local4 < lockeddomain.length) {
if (_local2 == lockeddomain[_local4]){
_local3 = true;
};
_local4++;
};
return (_local3);
}
}
}//package
Section 118
//MainMenuWindow (MainMenuWindow)
package {
import flash.display.*;
import flash.events.*;
public class MainMenuWindow extends MovieClip {
public var ld:LoadDialog;
public var startbtn:SimpleButton;
public var loadbtn:SimpleButton;
public var creditbtn:SimpleButton;
public var optionbtn:SimpleButton;
public var od:OptionDialog;
public function MainMenuWindow(){
Global.attachSFXButton([startbtn, optionbtn, creditbtn, loadbtn]);
Main.mc.sc.playBGM("intro");
startbtn.addEventListener(MouseEvent.CLICK, startgame, false, 0, true);
loadbtn.addEventListener(MouseEvent.CLICK, loadgame, false, 0, true);
optionbtn.addEventListener(MouseEvent.CLICK, showoption, false, 0, true);
creditbtn.addEventListener(MouseEvent.CLICK, showcredit, false, 0, true);
}
private function loadgame(_arg1:MouseEvent):void{
ld.showwin();
}
private function showcredit(_arg1:MouseEvent):void{
Main.mc.showWindow("CreditWindow", null, null);
}
private function startgame(_arg1:MouseEvent):void{
if (Main.mc.sitelock()){
Main.mc.showWindow("ComicWindow", null, null);
} else {
Main.mc.showWindow("BannedWindow", null, null);
};
}
private function showoption(_arg1:MouseEvent):void{
od.show();
}
}
}//package
Section 119
//Medusa (Medusa)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Medusa extends MovieClip {
public function Medusa(){
addFrameScript(21, frame22, 53, frame54, 81, frame82, 101, frame102, 135, frame136, 183, frame184, 227, frame228, 259, frame260);
}
function frame82(){
gotoAndPlay("up");
}
function frame102(){
gotoAndPlay("left");
}
function frame228(){
gotoAndPlay("upslow");
}
function frame22(){
gotoAndPlay("right");
}
function frame184(){
gotoAndPlay("downslow");
}
function frame54(){
gotoAndPlay("down");
}
function frame136(){
gotoAndPlay("rightslow");
}
function frame260(){
gotoAndPlay("leftslow");
}
}
}//package
Section 120
//medusadie (medusadie)
package {
import flash.media.*;
public dynamic class medusadie extends Sound {
}
}//package
Section 121
//MemoryCard (MemoryCard)
package {
import flash.net.*;
public class MemoryCard {
public var maxSlot:int;// = 6
public var arrdata:Array;
public var savedData:SharedObject;
public function MemoryCard(){
savedData = SharedObject.getLocal("WizardDefense");
maxSlot = 6;
arrdata = ["score", "level", "gem", "vhp", "magslot", "tutorlimit", "tutormulti", "fireballbulletlv", "fireballburndmglv", "fireballcooldownlv", "fireballdmglv", "firerainbulletlv", "firerainburndmglv", "fireraincooldownlv", "fireraindmglv", "meteorburndmglv", "meteordmglv", "meteorgauge", "iciclebulletlv", "iciclecooldownlv", "icicledmglv", "icicleslowlv", "novablastbulletlv", "novablastcooldownlv", "novablastdmglv", "novablastslowlv", "icestormdmglv", "icestormslowlv", "icestormgauge", "lightningstrikebulletlv", "lightningstrikecooldownlv", "lightningstrikedmglv", "lightningstrikestunlv", "lightningspearbulletlv", "lightningspearcooldownlv", "lightningspeardmglv", "lightningspearstunlv", "zeuswrathstrikecount", "zeuswrathdmglv", "zeuswrathstunlv", "zeuswrathgauge", "boulderfallbulletlv", "boulderfallcooldownlv", "boulderfalldmglv", "easterstrikebulletlv", "easterstrikecooldownlv", "easterstrikedmglv", "easterstrikedurationlv", "earthquakedmglv", "earthquakegauge"];
super();
createFirst();
}
public function createFirst(){
var _local1:Array;
var _local2:*;
var _local3:Object;
if (savedData.size == 0){
_local1 = new Array();
_local2 = 1;
while (_local2 <= maxSlot) {
_local3 = new Object();
_local3.emptydata = true;
_local1.push(_local3);
_local2++;
};
savedData.data.slotdata = _local1;
savedData.flush();
};
}
public function deleteData(_arg1:int){
var _local2:Object;
savedData.data.slotdata[_arg1] = null;
_local2 = new Object();
_local2.emptydata = true;
savedData.data.slotdata[_arg1] = _local2;
}
public function loadGame(_arg1:int){
var _local2:String;
var _local3:*;
if (savedData.size > 0){
for (_local2 in savedData.data.slotdata[_arg1]) {
trace(((_local2 + " = ") + savedData.data.slotdata[_arg1][_local2]));
};
_local3 = 0;
while (_local3 < arrdata.length) {
if ((savedData.data.slotdata[_arg1][arrdata[_local3]] is Array)){
GameData[arrdata[_local3]] = new Array();
for (_local2 in savedData.data.slotdata[_arg1][arrdata[_local3]]) {
GameData[arrdata[_local3]][_local2] = savedData.data.slotdata[_arg1][arrdata[_local3]][_local2];
};
} else {
GameData[arrdata[_local3]] = savedData.data.slotdata[_arg1][arrdata[_local3]];
};
_local3++;
};
};
}
public function loadAllSavedData(){
var _local1:Array;
var _local2:int;
var _local3:Object;
_local1 = new Array();
if (savedData.size > 0){
_local2 = 0;
while (_local2 < maxSlot) {
_local3 = new Object();
_local3.emptydata = savedData.data.slotdata[_local2]["emptydata"];
if (!savedData.data.slotdata[_local2]["emptydata"]){
_local3.level = savedData.data.slotdata[_local2]["level"];
_local3.gem = savedData.data.slotdata[_local2]["gem"];
};
_local1.push(_local3);
_local2++;
};
};
return (_local1);
}
public function saveGame(_arg1:int){
var _local2:*;
var _local3:String;
savedData.data.slotdata[_arg1]["emptydata"] = false;
_local2 = 0;
while (_local2 < arrdata.length) {
if ((GameData[arrdata[_local2]] is Array)){
savedData.data.slotdata[_arg1][arrdata[_local2]] = new Array();
for (_local3 in GameData[arrdata[_local2]]) {
savedData.data.slotdata[_arg1][arrdata[_local2]][_local3] = GameData[arrdata[_local2]][_local3];
};
} else {
savedData.data.slotdata[_arg1][arrdata[_local2]] = GameData[arrdata[_local2]];
};
_local2++;
};
savedData.flush();
}
}
}//package
Section 122
//Meteor (Meteor)
package {
import flash.geom.*;
import flash.display.*;
import gs.*;
import flash.filters.*;
import gs.easing.*;
public class Meteor extends MovieClip {
public var check:Boolean;// = false
public var shade:MovieClip;
public var colrect:Rectangle;
public var meteormc:MovieClip;
public var creephit:Array;
public function Meteor(){
meteormc = new MeteorBall();
shade = new meteorshadow();
check = false;
creephit = new Array();
super();
shade.x = 0;
shade.y = 0;
shade.alpha = 0.2;
this.mouseEnabled = false;
this.mouseChildren = false;
addChild(shade);
callMeteor();
TweenMax.to(shade, 1.5, {scaleX:2.25, scaleY:2.25});
TweenMax.to(shade, 1, {delay:1.5, alpha:1});
}
public function gocheck():void{
check = true;
removeChild(shade);
Main.mc.sc.playSFX("explode");
meteormc.gotoAndPlay("explode");
}
public function resume(){
if (meteormc.currentFrame < meteormc.totalFrames){
meteormc.play();
};
TweenMax.resumeAll();
}
private function callMeteor():void{
meteormc.x = 0;
meteormc.y = -650;
addChild(meteormc);
Main.mc.sc.playSFX("fall");
TweenMax.to(meteormc, 2.5, {y:-40, ease:Quad.easeIn, onComplete:gocheck});
}
public function update(){
var j:*;
var flamefilt:*;
if (check){
var _local2 = Main.mc.curwin;
with (_local2) {
j = 0;
while (j < arrcreep.length) {
if (arrcreep[j]){
if ((((creephit.indexOf(arrcreep[j]) == -1)) && (colrect.contains(arrcreep[j].x, arrcreep[j].y)))){
creephit.push(arrcreep[j]);
if (arrcreep[j].flamebody){
arrcreep[j].damagecreep(0, true);
} else {
if (!arrcreep[j].flamebody){
arrcreep[j].ctrmeteor = GameData.meteorburnduration;
flamefilt = new GlowFilter(0xFF0000, 1, 10, 10, 3);
arrcreep[j].creepmc.filters = [flamefilt];
if (arrcreep[j].icebody){
arrcreep[j].damagecreep((GameData.meteordmg[(GameData.meteordmglv - 1)] * GameData.weakmultiplier), true);
} else {
arrcreep[j].damagecreep(GameData.meteordmg[(GameData.meteordmglv - 1)], true);
};
};
};
};
};
j++;
};
};
if (meteormc.currentFrame == this.totalFrames){
(Main.mc.curwin as GameWindow).arrmagic.splice((Main.mc.curwin as GameWindow).arrmagic.indexOf(this), 1);
Global.trash(this, null, null);
};
};
}
public function pause(){
meteormc.stop();
TweenMax.pauseAll();
}
}
}//package
Section 123
//MeteorBall (MeteorBall)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class MeteorBall extends MovieClip {
public function MeteorBall(){
addFrameScript(12, frame13);
}
function frame13(){
gotoAndPlay(1);
}
}
}//package
Section 124
//meteorshadow (meteorshadow)
package {
import flash.display.*;
public dynamic class meteorshadow extends MovieClip {
}
}//package
Section 125
//miss (miss)
package {
import flash.display.*;
public dynamic class miss extends MovieClip {
}
}//package
Section 126
//MochiBot (MochiBot)
package {
import flash.display.*;
import flash.net.*;
import flash.system.*;
public dynamic class MochiBot extends Sprite {
public static function track(_arg1:Sprite, _arg2:String):MochiBot{
var _local3:MochiBot;
var _local4:String;
var _local5:URLVariables;
var _local6:String;
var _local7:URLRequest;
var _local8:Loader;
if (Security.sandboxType == "localWithFile"){
return (null);
};
_local3 = new (MochiBot);
_arg1.addChild(_local3);
Security.allowDomain("*");
Security.allowInsecureDomain("*");
_local4 = "http://core.mochibot.com/my/core.swf";
_local5 = new URLVariables();
_local5["sb"] = Security.sandboxType;
_local5["v"] = Capabilities.version;
_local5["swfid"] = _arg2;
_local5["mv"] = "8";
_local5["fv"] = "9";
_local6 = _local3.root.loaderInfo.loaderURL;
if (_local6.indexOf("http") == 0){
_local5["url"] = _local6;
} else {
_local5["url"] = "local";
};
_local7 = new URLRequest(_local4);
_local7.contentType = "application/x-www-form-urlencoded";
_local7.method = URLRequestMethod.POST;
_local7.data = _local5;
_local8 = new Loader();
_local3.addChild(_local8);
_local8.load(_local7);
return (_local3);
}
}
}//package
Section 127
//NovaBlast (NovaBlast)
package {
import flash.geom.*;
import flash.display.*;
import flash.filters.*;
public class NovaBlast extends MovieClip {
public var colrect:Rectangle;
public var creephit:Array;
public function NovaBlast(){
creephit = new Array();
super();
}
public function resume(){
if (this.currentFrame < this.totalFrames){
this.play();
};
}
public function update(){
var n:*;
var j:*;
var coldfilt:*;
var _local2 = Main.mc.curwin;
with (_local2) {
n = arrcreep.length;
j = 0;
while (j < n) {
if (arrcreep[j]){
if ((((creephit.indexOf(arrcreep[j]) == -1)) && (colrect.contains(arrcreep[j].x, arrcreep[j].y)))){
creephit.push(arrcreep[j]);
if (!arrcreep[j].icebody){
arrcreep[j].ctrnovablast = GameData.novablastslowduration;
arrcreep[j].calcspeed();
if (arrcreep[j].creepmc.currentLabel != (arrcreep[j].direction + "slow")){
arrcreep[j].creepmc.gotoAndPlay((arrcreep[j].direction + "slow"));
};
coldfilt = new GlowFilter(0xFF, 1, 10, 10, 3, 1, true, false);
arrcreep[j].creepmc.filters = [coldfilt];
if (arrcreep[j].flamebody){
arrcreep[j].damagecreep((GameData.novablastdmg[(GameData.novablastdmglv - 1)] * GameData.weakmultiplier), true);
} else {
arrcreep[j].damagecreep(GameData.novablastdmg[(GameData.novablastdmglv - 1)], true);
};
} else {
arrcreep[j].damagecreep(0, true);
};
};
};
j++;
};
};
if ((((((((((((this.currentFrame == 1)) || ((this.currentFrame == 6)))) || ((this.currentFrame == 11)))) || ((this.currentFrame == 16)))) || ((this.currentFrame == 21)))) || ((this.currentFrame == 26)))){
Main.mc.sc.playSFX("magicnova");
};
if (this.currentFrame == this.totalFrames){
(Main.mc.curwin as GameWindow).arrmagic.splice((Main.mc.curwin as GameWindow).arrmagic.indexOf(this), 1);
Global.trash(this, null, null);
};
}
public function pause(){
this.stop();
}
}
}//package
Section 128
//OptionDialog (OptionDialog)
package {
import flash.display.*;
import flash.events.*;
public class OptionDialog extends Dialog {
public var okbtn:SimpleButton;
public var musicbtn:MovieClip;
public var resumebtn:SimpleButton;
public var sfxbtn:MovieClip;
public var mainmenubtn:SimpleButton;
public function OptionDialog(){
musicbtn.stop();
sfxbtn.stop();
musicbtn.useHandCursor = true;
musicbtn.buttonMode = true;
sfxbtn.useHandCursor = true;
sfxbtn.buttonMode = true;
Global.attachSFXButton([mainmenubtn, okbtn, resumebtn]);
musicbtn.addEventListener(MouseEvent.CLICK, togglemusic, false, 0, true);
sfxbtn.addEventListener(MouseEvent.CLICK, togglesfx, false, 0, true);
mainmenubtn.addEventListener(MouseEvent.CLICK, gomainmenu, false, 0, true);
okbtn.addEventListener(MouseEvent.CLICK, clickok, false, 0, true);
resumebtn.addEventListener(MouseEvent.CLICK, resume, false, 0, true);
this.closemodal();
}
private function resume(_arg1:MouseEvent):void{
this.closemodal();
if (((!(Main.mc.curwin.tutormc.visible)) && (!(Main.mc.curwin.tutormc.visible)))){
Main.mc.pausestate = true;
Main.mc.curwin.pauseGame();
};
}
private function togglemusic(_arg1:MouseEvent):void{
if (musicbtn.currentFrame == 2){
musicbtn.gotoAndStop(1);
} else {
musicbtn.gotoAndStop(2);
};
Main.mc.sc.changeBGMVol((musicbtn.currentFrame - 1));
}
private function clickok(_arg1:MouseEvent):void{
this.closemodal();
}
private function gomainmenu(_arg1:MouseEvent):void{
Main.mc.curwin.dispose();
Main.mc.showWindow("MainMenuWindow", Main.mc.curwin.refocus, Main.mc.curwin.update);
}
private function togglesfx(_arg1:MouseEvent):void{
if (sfxbtn.currentFrame == 2){
sfxbtn.gotoAndStop(1);
} else {
sfxbtn.gotoAndStop(2);
};
Main.mc.sc.changeSFXVol((sfxbtn.currentFrame - 1));
}
public function show(){
okbtn.visible = true;
resumebtn.visible = true;
mainmenubtn.visible = true;
if (Main.mc.curwinname == "MainMenuWindow"){
resumebtn.visible = false;
mainmenubtn.visible = false;
} else {
okbtn.visible = false;
};
musicbtn.gotoAndStop((Main.mc.sc.bgmvol + 1));
sfxbtn.gotoAndStop((Main.mc.sc.sfxvol + 1));
this.showmodal();
}
}
}//package
Section 129
//Penguin_Lord (Penguin_Lord)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Penguin_Lord extends MovieClip {
public function Penguin_Lord(){
addFrameScript(11, frame12, 26, frame27, 40, frame41, 53, frame54, 72, frame73, 93, frame94, 115, frame116, 134, frame135);
}
function frame73(){
gotoAndPlay("rightslow");
}
function frame94(){
gotoAndPlay("downslow");
}
function frame12(){
gotoAndPlay("right");
}
function frame27(){
gotoAndPlay("down");
}
function frame116(){
gotoAndPlay("upslow");
}
function frame41(){
gotoAndPlay("up");
}
function frame54(){
gotoAndPlay("left");
}
function frame135(){
gotoAndPlay("leftslow");
}
}
}//package
Section 130
//penguindie (penguindie)
package {
import flash.media.*;
public dynamic class penguindie extends Sound {
}
}//package
Section 131
//Rainbow_Eagle (Rainbow_Eagle)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Rainbow_Eagle extends MovieClip {
public function Rainbow_Eagle(){
addFrameScript(23, frame24, 51, frame52, 79, frame80, 103, frame104, 143, frame144, 187, frame188, 231, frame232, 271, frame272);
}
function frame272(){
gotoAndPlay("leftslow");
}
function frame144(){
gotoAndPlay("rightslow");
}
function frame80(){
gotoAndPlay("up");
}
function frame188(){
gotoAndPlay("downslow");
}
function frame24(){
gotoAndPlay("right");
}
function frame104(){
gotoAndPlay("left");
}
function frame232(){
gotoAndPlay("upslow");
}
function frame52(){
gotoAndPlay("down");
}
}
}//package
Section 132
//rainboweagledie (rainboweagledie)
package {
import flash.media.*;
public dynamic class rainboweagledie extends Sound {
}
}//package
Section 133
//SaveDialog (SaveDialog)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class SaveDialog extends Dialog {
public var save4:MovieClip;
public var save1:MovieClip;
public var save3:MovieClip;
public var save5:MovieClip;
public var closebtn:SimpleButton;
public var save2:MovieClip;
public var save0:MovieClip;
public var cancelbtn:SimpleButton;
public var savebtn:SimpleButton;
public var tsave:TextField;
public function SaveDialog(){
var _local1:*;
super();
Global.attachSFXButton([closebtn, savebtn, cancelbtn]);
closebtn.addEventListener(MouseEvent.CLICK, closewin, false, 0, true);
_local1 = 0;
while (_local1 < 6) {
this[("save" + _local1)].addEventListener(MouseEvent.CLICK, clickslot, false, 0, true);
_local1++;
};
savebtn.addEventListener(MouseEvent.CLICK, savegame, false, 0, true);
cancelbtn.addEventListener(MouseEvent.CLICK, cancelsave, false, 0, true);
this.closemodal();
}
private function cancelsave(_arg1:MouseEvent):void{
init();
}
public function init(){
i = 0;
while (i < 6) {
this[("save" + i)].gotoAndStop(1);
i++;
};
tsave.text = "";
savebtn.visible = false;
cancelbtn.visible = false;
}
private function closewin(_arg1:MouseEvent):void{
this.closemodal();
}
public function refreshslot(){
var arr:Array;
arr = new Array();
var _local2 = Main.mc.memCard;
with (_local2) {
arr = loadAllSavedData();
};
i = 0;
while (i < 6) {
this[("save" + i)].tmission.visible = false;
this[("save" + i)].tgem.visible = false;
this[("save" + i)].tempty.visible = false;
this[("save" + i)].gemicon.visible = false;
if (arr[i].emptydata){
this[("save" + i)].tempty.visible = true;
} else {
this[("save" + i)].tmission.visible = true;
this[("save" + i)].tgem.visible = true;
this[("save" + i)].tmission.text = ("Mission " + arr[i].level);
this[("save" + i)].tgem.text = arr[i].gem;
this[("save" + i)].gemicon.visible = true;
};
i++;
};
}
private function clickslot(_arg1:MouseEvent):void{
i = 0;
while (i < 6) {
this[("save" + i)].gotoAndStop(1);
i++;
};
_arg1.currentTarget.gotoAndStop(2);
if (_arg1.currentTarget.tempty.visible){
tsave.text = "Create new save ?";
} else {
tsave.text = "Overwrite previous data ?";
};
savebtn.visible = true;
cancelbtn.visible = true;
}
private function savegame(_arg1:MouseEvent):void{
var _local2:int;
_local2 = -1;
i = 0;
while ((((i < 6)) && ((_local2 == -1)))) {
if (this[("save" + i)].currentFrame == 2){
_local2 = i;
};
i++;
};
Main.mc.memCard.saveGame(_local2);
show();
}
public function show(){
this.showmodal();
refreshslot();
init();
}
}
}//package
Section 134
//Sky_Drako (Sky_Drako)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Sky_Drako extends MovieClip {
public function Sky_Drako(){
addFrameScript(23, frame24, 51, frame52, 79, frame80, 103, frame104, 143, frame144, 187, frame188, 231, frame232, 271, frame272);
}
function frame272(){
gotoAndPlay("leftslow");
}
function frame144(){
gotoAndPlay("rightslow");
}
function frame80(){
gotoAndPlay("up");
}
function frame188(){
gotoAndPlay("downslow");
}
function frame24(){
gotoAndPlay("right");
}
function frame104(){
gotoAndPlay("left");
}
function frame232(){
gotoAndPlay("upslow");
}
function frame52(){
gotoAndPlay("down");
}
}
}//package
Section 135
//Smash (Smash)
package {
import flash.media.*;
public dynamic class Smash extends Sound {
}
}//package
Section 136
//snow (snow)
package {
import flash.display.*;
public dynamic class snow extends MovieClip {
}
}//package
Section 137
//SoundControl (SoundControl)
package {
import flash.display.*;
import flash.utils.*;
import flash.media.*;
public class SoundControl extends MovieClip {
public var bgmvol:Number;// = 1
public var bgmChannel:SoundChannel;
public var sfxvol:Number;// = 1
public var sfx:Array;
public var possfx:Array;
public var sfxChannel:Array;
public var bgm:Sound;
public function SoundControl(){
bgmChannel = new SoundChannel();
bgmvol = 1;
sfxvol = 1;
sfxChannel = new Array();
sfx = new Array();
possfx = new Array();
super();
}
public function playBGM(_arg1:String=null){
var _local2:Class;
var _local3:SoundTransform;
if (_arg1 != null){
_local2 = (getDefinitionByName(_arg1) as Class);
bgm = new (_local2);
};
if (bgm != null){
_local3 = new SoundTransform(bgmvol, 0);
stopBGM();
bgmChannel = bgm.play(0, 99999, _local3);
};
}
public function resumeSFX(_arg1:String){
var _local2:SoundTransform;
_local2 = new SoundTransform(sfxvol);
sfxChannel[_arg1] = sfx[_arg1].play(possfx[_arg1], 1, _local2);
}
public function stopBGM(){
bgmChannel.stop();
}
public function pauseSFX(_arg1:String){
possfx[_arg1] = sfxChannel[_arg1].position;
sfxChannel[_arg1].stop();
}
public function changeBGMVol(_arg1:Number){
bgmvol = _arg1;
bgmChannel.soundTransform = new SoundTransform(bgmvol);
}
public function playSFX(_arg1:String, _arg2:Boolean=false){
var _local3:SoundTransform;
_local3 = new SoundTransform(sfxvol);
if (_arg2){
sfxChannel[_arg1].stop();
};
sfxChannel[_arg1] = sfx[_arg1].play(0, 1, _local3);
}
public function changeSFXVol(_arg1:Number){
var _local2:String;
sfxvol = _arg1;
for (_local2 in sfxChannel) {
sfxChannel[_local2].soundTransform = new SoundTransform(sfxvol);
};
}
public function registerSFX(_arg1:Array){
var _local2:int;
var _local3:Class;
var _local4:Sound;
var _local5:SoundChannel;
_local2 = 0;
while (_local2 < _arg1.length) {
_local3 = (getDefinitionByName(_arg1[_local2]) as Class);
_local4 = new (_local3);
_local5 = new SoundChannel();
sfx[_arg1[_local2]] = _local4;
sfxChannel[_arg1[_local2]] = _local5;
possfx[_arg1[_local2]] = 0;
_local2++;
};
}
}
}//package
Section 138
//Spectre (Spectre)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Spectre extends MovieClip {
public function Spectre(){
addFrameScript(23, frame24, 51, frame52, 78, frame79, 102, frame103, 138, frame139, 178, frame179, 222, frame223, 258, frame259);
}
function frame79(){
gotoAndPlay("up");
}
function frame223(){
gotoAndPlay("upslow");
}
function frame24(){
gotoAndPlay("right");
}
function frame103(){
gotoAndPlay("left");
}
function frame179(){
gotoAndPlay("downslow");
}
function frame259(){
gotoAndPlay("leftslow");
}
function frame52(){
gotoAndPlay("down");
}
function frame139(){
gotoAndPlay("rightslow");
}
}
}//package
Section 139
//spectredie (spectredie)
package {
import flash.media.*;
public dynamic class spectredie extends Sound {
}
}//package
Section 140
//Stun (Stun)
package {
import flash.display.*;
public dynamic class Stun extends MovieClip {
}
}//package
Section 141
//Trino (Trino)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Trino extends MovieClip {
public function Trino(){
addFrameScript(43, frame44, 67, frame68, 111, frame112, 155, frame156, 223, frame224, 259, frame260, 327, frame328, 395, frame396);
}
function frame156(){
gotoAndPlay("left");
}
function frame396(){
gotoAndPlay("leftslow");
}
function frame328(){
gotoAndPlay("upslow");
}
function frame224(){
gotoAndPlay("rightslow");
}
function frame112(){
gotoAndPlay("up");
}
function frame44(){
gotoAndPlay("right");
}
function frame260(){
gotoAndPlay("downslow");
}
function frame68(){
gotoAndPlay("down");
}
}
}//package
Section 142
//trinodie (trinodie)
package {
import flash.media.*;
public dynamic class trinodie extends Sound {
}
}//package
Section 143
//Tritano (Tritano)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Tritano extends MovieClip {
public function Tritano(){
addFrameScript(43, frame44, 67, frame68, 111, frame112, 155, frame156, 223, frame224, 260, frame261, 328, frame329, 392, frame393);
}
function frame393(){
gotoAndPlay("upslow");
}
function frame156(){
gotoAndPlay("left");
}
function frame329(){
gotoAndPlay("leftslow");
}
function frame224(){
gotoAndPlay("rightslow");
}
function frame112(){
gotoAndPlay("up");
}
function frame44(){
gotoAndPlay("right");
}
function frame261(){
gotoAndPlay("downslow");
}
function frame68(){
gotoAndPlay("down");
}
}
}//package
Section 144
//Tutor (Tutor)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class Tutor extends Dialog {
public var backbtn:SimpleButton;
public var resumebtn:SimpleButton;
public var timeTrigger:Timer;
public var nextbtn:SimpleButton;
public var state:String;
public var firstgem:int;
public var myarrow:MovieClip;
public function Tutor(){
timeTrigger = new Timer(250);
super();
Global.attachSFXButton([nextbtn, backbtn, resumebtn]);
initnamedobj();
stoptutor();
stop();
this.mouseEnabled = false;
timeTrigger.addEventListener(TimerEvent.TIMER, checktrigger, false, 0, true);
nextbtn.addEventListener(MouseEvent.CLICK, nextscenario, false, 0, true);
backbtn.addEventListener(MouseEvent.CLICK, prevscenario, false, 0, true);
resumebtn.addEventListener(MouseEvent.CLICK, resumegame, false, 0, true);
firstgem = GameData.gem;
}
public function initnamedobj(){
myarrow.visible = false;
nextbtn.visible = false;
backbtn.visible = false;
resumebtn.visible = false;
}
public function stoptutor(){
state = "disable";
if (this.showed){
this.closemodal();
} else {
this.visible = false;
};
timeTrigger.stop();
this.mouseChildren = false;
}
private function nextscenario(_arg1:MouseEvent):void{
this.nextFrame();
initscenario(this.currentLabel);
}
private function resumegame(_arg1:MouseEvent):void{
Main.mc.curwin.pauseGame();
stoptutor();
}
public function initscenario(_arg1:String, _arg2:Boolean=false){
var _local3:*;
timeTrigger.stop();
if (_arg2 == false){
this.visible = true;
} else {
this.showmodal();
};
gotoAndStop(_arg1);
this.mouseChildren = true;
initnamedobj();
state = this.currentLabel;
switch (state){
case "firstspell":
timeTrigger.start();
break;
case "activespell":
myarrow.visible = true;
_local3 = 0;
while (_local3 < 4) {
if (Main.mc.curwin.imd.sw[("slot" + _local3)].micon.currentLabel.indexOf("inactive") == -1){
myarrow.x = (100 + (_local3 * 80));
};
_local3++;
};
timeTrigger.start();
break;
case "startmission":
timeTrigger.start();
break;
case "defensevillage":
Main.mc.pausestate = false;
Main.mc.curwin.pauseGame();
nextbtn.visible = true;
nextbtn.x = 465;
nextbtn.y = 243;
break;
case "castspell":
nextbtn.visible = true;
backbtn.visible = true;
backbtn.x = 384;
backbtn.y = 243;
break;
case "spellcharge":
nextbtn.visible = true;
backbtn.visible = true;
backbtn.x = 384;
backbtn.y = 243;
break;
case "cooldown":
backbtn.visible = true;
nextbtn.visible = true;
backbtn.x = 384;
backbtn.y = 243;
break;
case "creepscounter":
backbtn.visible = true;
resumebtn.visible = true;
resumebtn.x = 560;
resumebtn.y = 210;
backbtn.x = 480;
backbtn.y = 210;
break;
case "multispell":
Main.mc.pausestate = false;
Main.mc.curwin.pauseGame();
resumebtn.visible = true;
resumebtn.x = 483;
resumebtn.y = 335;
break;
case "limitbreak":
Main.mc.pausestate = false;
Main.mc.curwin.pauseGame();
nextbtn.visible = true;
nextbtn.x = 494;
nextbtn.y = 335;
break;
case "limitbreak2":
backbtn.visible = true;
backbtn.x = 413;
backbtn.y = 335;
resumebtn.visible = true;
resumebtn.x = 486;
resumebtn.y = 335;
break;
case "trino":
Main.mc.pausestate = false;
Main.mc.curwin.pauseGame();
nextbtn.visible = true;
nextbtn.x = 362;
nextbtn.y = 221;
break;
case "buyspell":
backbtn.visible = true;
backbtn.x = 251;
backbtn.y = 228;
resumebtn.visible = true;
resumebtn.x = 330;
resumebtn.y = 228;
break;
case "medusa":
case "spectre":
case "yeti":
case "cerberus":
case "angel":
case "tritano":
case "fenrir":
case "drako":
case "skydrako":
case "golem":
case "diabolicspectre":
Main.mc.pausestate = false;
Main.mc.curwin.pauseGame();
resumebtn.visible = true;
resumebtn.x = 362;
resumebtn.y = 221;
break;
case "lamia":
Main.mc.pausestate = false;
Main.mc.curwin.pauseGame();
resumebtn.visible = true;
resumebtn.x = 362;
resumebtn.y = 251;
break;
case "flarefox":
Main.mc.pausestate = false;
Main.mc.curwin.pauseGame();
nextbtn.visible = true;
nextbtn.x = 452;
nextbtn.y = 221;
break;
case "creepstar":
backbtn.visible = true;
backbtn.x = 365;
backbtn.y = 221;
resumebtn.visible = true;
resumebtn.x = 452;
resumebtn.y = 221;
break;
case "chaosangel":
Main.mc.pausestate = false;
Main.mc.curwin.pauseGame();
nextbtn.visible = true;
nextbtn.x = 452;
nextbtn.y = 221;
break;
case "rainboweagle":
backbtn.visible = true;
backbtn.x = 365;
backbtn.y = 221;
resumebtn.visible = true;
resumebtn.x = 452;
resumebtn.y = 221;
break;
};
}
private function checktrigger(_arg1:TimerEvent):void{
var _local2:*;
switch (this.currentLabel){
case "firstspell":
if (GameData.gem < firstgem){
initscenario("activespell");
};
break;
case "activespell":
_local2 = 0;
while (_local2 < 4) {
if (GameData.magslot[_local2] != ""){
initscenario("startmission");
};
_local2++;
};
break;
case "startmission":
if (Main.mc.curwin.imd.mw.visible){
stoptutor();
};
break;
};
}
private function prevscenario(_arg1:MouseEvent):void{
this.prevFrame();
initscenario(this.currentLabel);
}
}
}//package
Section 145
//Wave (Wave)
package {
import flash.events.*;
import com.fjakobs.utils.*;
public class Wave {
public var interval:int;
public var creeplv:int;
public var creepname:String;
public var startx:int;
public var starty:int;
public var nenemy:int;
public var timercreep:STimer;
public var ypath:Array;
public var delayspawn:Number;
public var xpath:Array;
public function Wave(){
xpath = new Array();
ypath = new Array();
super();
}
public function launchwave(){
timercreep.start();
}
public function createWave(_arg1:String, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:Array, _arg7:int, _arg8:Number){
var _local9:*;
creepname = _arg1;
creeplv = _arg3;
startx = _arg4;
starty = _arg5;
nenemy = _arg2;
_local9 = 0;
while (_local9 < _arg6.length) {
if ((_local9 % 2) == 0){
xpath.push(_arg6[_local9]);
} else {
ypath.push(_arg6[_local9]);
};
_local9++;
};
interval = _arg7;
delayspawn = _arg8;
timercreep = new STimer((delayspawn * 1000), nenemy);
timercreep.addEventListener(TimerEvent.TIMER, spawncreep, false, 0, true);
}
public function spawncreep(_arg1:TimerEvent):void{
var _local2:Creep;
nenemy--;
_local2 = new Creep(creepname, creeplv, xpath, ypath, startx, starty);
if (_local2.flying){
(Main.mc.curwin as GameWindow).layercreepfly.addChild(_local2);
} else {
(Main.mc.curwin as GameWindow).layercreep.addChild(_local2);
};
(Main.mc.curwin as GameWindow).arrcreep.push(_local2);
Main.mc.curwin.sortcreep();
if (nenemy <= 0){
timercreep.stop();
};
}
public function createWavePathType(_arg1:String, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:Number){
creepname = _arg1;
creeplv = _arg3;
startx = GameData.startx[_arg4];
starty = GameData.starty[_arg4];
nenemy = _arg2;
xpath = GameData.xpath[_arg4];
ypath = GameData.ypath[_arg4];
interval = _arg5;
delayspawn = _arg6;
timercreep = new STimer((delayspawn * 1000), nenemy);
timercreep.addEventListener(TimerEvent.TIMER, spawncreep, false, 0, true);
}
}
}//package
Section 146
//win (win)
package {
import flash.media.*;
public dynamic class win extends Sound {
}
}//package
Section 147
//Yeti (Yeti)
package {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.utils.*;
import flash.media.*;
import flash.text.*;
import flash.external.*;
import flash.system.*;
import flash.errors.*;
import flash.accessibility.*;
import flash.ui.*;
public dynamic class Yeti extends MovieClip {
public function Yeti(){
addFrameScript(15, frame16, 43, frame44, 71, frame72, 87, frame88);
}
function frame72(){
gotoAndPlay("up");
}
function frame88(){
gotoAndPlay("left");
}
function frame16(){
gotoAndPlay("right");
}
function frame44(){
gotoAndPlay("down");
}
}
}//package
Section 148
//Zeus (Zeus)
package {
import flash.display.*;
public dynamic class Zeus extends MovieClip {
}
}//package
Section 149
//ZeusLightning (ZeusLightning)
package {
import flash.display.*;
public dynamic class ZeusLightning extends MovieClip {
}
}//package
Section 150
//zeusthunder (zeusthunder)
package {
import flash.media.*;
public dynamic class zeusthunder extends Sound {
}
}//package
Section 151
//ZeusWrath (ZeusWrath)
package {
import flash.display.*;
import de.polygonal.math.*;
public class ZeusWrath extends MovieClip {
public var ctrstrike:int;// = 0
public var ctr:int;// = 0
public var zeusmc:MovieClip;
public var zeuslgt:MovieClip;
public var idx:int;
public function ZeusWrath(){
zeusmc = new Zeus();
ctrstrike = 0;
zeuslgt = new ZeusLightning();
ctr = 0;
super();
idx = -1;
zeuslgt.gotoAndStop(1);
zeusmc.x = 400;
zeusmc.y = 300;
this.mouseEnabled = false;
this.mouseChildren = false;
addChild(zeusmc);
setTarget();
}
public function resume(){
if (zeuslgt.currentFrame < zeuslgt.totalFrames){
zeuslgt.play();
};
}
public function setTarget(){
var _local1:Array;
var _local2:*;
idx = -1;
_local1 = new Array();
_local2 = (Main.mc.curwin.arrcreep.length - 1);
while (_local2 >= 0) {
if ((((Main.mc.curwin.arrcreep[_local2].hp > 0)) && ((Main.mc.curwin.arrcreep[_local2].ctrstealth == 0)))){
_local1.push(Main.mc.curwin.arrcreep[_local2]);
};
_local2--;
};
if (_local1.length > 0){
idx = PM_PRNG.nextIntRange(0, (_local1.length - 1));
};
if (idx > -1){
idx = Main.mc.curwin.arrcreep.indexOf(_local1[idx]);
ctrstrike++;
zeuslgt.x = 0;
zeuslgt.y = -20;
Main.mc.curwin.arrcreep[idx].layermagicanim.addChild(zeuslgt);
zeuslgt.gotoAndPlay(1);
Main.mc.sc.playSFX("zeusthunder");
};
}
public function update(){
var rand:*;
if ((((((idx > -1)) && (Main.mc.curwin.arrcreep[idx]))) && ((zeuslgt.currentFrame == zeuslgt.totalFrames)))){
var _local2 = Main.mc.curwin;
with (_local2) {
if (!arrcreep[idx].lightningbody){
rand = PM_PRNG.nextIntRange(0, 100);
if ((((rand >= 0)) && ((rand <= GameData.zeuswrathstun[(GameData.zeuswrathstunlv - 1)])))){
arrcreep[idx].ctrstun = GameData.zeuswrathduration;
arrcreep[idx].creepmc.stop();
arrcreep[idx].stunmc.x = arrcreep[idx].stunx[arrcreep[idx].direction];
arrcreep[idx].stunmc.y = arrcreep[idx].stuny[arrcreep[idx].direction];
arrcreep[idx].stunmc.visible = true;
};
if (arrcreep[idx].rockbody){
arrcreep[idx].damagecreep((GameData.zeuswrathdmg[(GameData.zeuswrathdmglv - 1)] * GameData.weakmultiplier), true);
} else {
arrcreep[idx].damagecreep(GameData.zeuswrathdmg[(GameData.zeuswrathdmglv - 1)], true);
};
} else {
arrcreep[idx].damagecreep(0, true);
};
};
idx = -1;
zeuslgt.parent.removeChild(zeuslgt);
zeuslgt.gotoAndStop(1);
} else {
if ((((((idx == -1)) && ((ctrstrike < GameData.zeuswrathstrikecount)))) && ((Main.mc.curwin.arrcreep.length > 0)))){
setTarget();
};
};
ctr++;
if (ctr >= (GameData.zeuswrathduration + ((GameData.zeuswrathstrikecount - 3) * 21))){
Global.del(zeuslgt);
Global.del(zeusmc);
(Main.mc.curwin as GameWindow).arrmagic.splice((Main.mc.curwin as GameWindow).arrmagic.indexOf(this), 1);
Global.del(this);
};
}
public function pause(){
zeuslgt.stop();
}
}
}//package