Section 1
//BaseButton (fl.controls.BaseButton)
package fl.controls {
import flash.events.*;
import flash.display.*;
import fl.core.*;
import flash.utils.*;
import fl.events.*;
public class BaseButton extends UIComponent {
protected var _selected:Boolean;// = false
private var unlockedMouseState:String;
protected var pressTimer:Timer;
protected var mouseState:String;
protected var background:DisplayObject;
private var _mouseStateLocked:Boolean;// = false
protected var _autoRepeat:Boolean;// = false
private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35};
public function BaseButton(){
_selected = false;
_autoRepeat = false;
_mouseStateLocked = false;
super();
buttonMode = true;
mouseChildren = false;
useHandCursor = false;
setupMouseEvents();
setMouseState("up");
pressTimer = new Timer(1, 0);
pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true);
}
protected function endPress():void{
pressTimer.reset();
}
public function set mouseStateLocked(_arg1:Boolean):void{
_mouseStateLocked = _arg1;
if (_arg1 == false){
setMouseState(unlockedMouseState);
} else {
unlockedMouseState = mouseState;
};
}
public function get autoRepeat():Boolean{
return (_autoRepeat);
}
public function set autoRepeat(_arg1:Boolean):void{
_autoRepeat = _arg1;
}
override public function set enabled(_arg1:Boolean):void{
super.enabled = _arg1;
mouseEnabled = _arg1;
}
public function get selected():Boolean{
return (_selected);
}
protected function mouseEventHandler(_arg1:MouseEvent):void{
if (_arg1.type == MouseEvent.MOUSE_DOWN){
setMouseState("down");
startPress();
} else {
if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){
setMouseState("over");
endPress();
} else {
if (_arg1.type == MouseEvent.ROLL_OUT){
setMouseState("up");
endPress();
};
};
};
}
public function setMouseState(_arg1:String):void{
if (_mouseStateLocked){
unlockedMouseState = _arg1;
return;
};
if (mouseState == _arg1){
return;
};
mouseState = _arg1;
invalidate(InvalidationType.STATE);
}
protected function startPress():void{
if (_autoRepeat){
pressTimer.delay = Number(getStyleValue("repeatDelay"));
pressTimer.start();
};
dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true));
}
protected function buttonDown(_arg1:TimerEvent):void{
if (!_autoRepeat){
endPress();
return;
};
if (pressTimer.currentCount == 1){
pressTimer.delay = Number(getStyleValue("repeatInterval"));
};
dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true));
}
public function set selected(_arg1:Boolean):void{
if (_selected == _arg1){
return;
};
_selected = _arg1;
invalidate(InvalidationType.STATE);
}
override public function get enabled():Boolean{
return (super.enabled);
}
override protected function draw():void{
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
drawBackground();
invalidate(InvalidationType.SIZE, false);
};
if (isInvalid(InvalidationType.SIZE)){
drawLayout();
};
super.draw();
}
protected function setupMouseEvents():void{
addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true);
addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true);
}
protected function drawLayout():void{
background.width = width;
background.height = height;
}
protected function drawBackground():void{
var _local1:String;
var _local2:DisplayObject;
_local1 = (enabled) ? mouseState : "disabled";
if (selected){
_local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1));
};
_local1 = (_local1 + "Skin");
_local2 = background;
background = getDisplayObjectInstance(getStyleValue(_local1));
addChildAt(background, 0);
if (((!((_local2 == null))) && (!((_local2 == background))))){
removeChild(_local2);
};
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
}
}//package fl.controls
Section 2
//Button (fl.controls.Button)
package fl.controls {
import flash.display.*;
import fl.core.*;
import fl.managers.*;
public class Button extends LabelButton implements IFocusManagerComponent {
protected var emphasizedBorder:DisplayObject;
protected var _emphasized:Boolean;// = false
private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2};
public static var createAccessibilityImplementation:Function;
public function Button(){
_emphasized = false;
super();
}
override public function drawFocus(_arg1:Boolean):void{
var _local2:Number;
var _local3:*;
super.drawFocus(_arg1);
if (_arg1){
_local2 = Number(getStyleValue("emphasizedPadding"));
if ((((_local2 < 0)) || (!(_emphasized)))){
_local2 = 0;
};
_local3 = getStyleValue("focusRectPadding");
_local3 = ((_local3)==null) ? 2 : _local3;
_local3 = (_local3 + _local2);
uiFocusRect.x = -(_local3);
uiFocusRect.y = -(_local3);
uiFocusRect.width = (width + (_local3 * 2));
uiFocusRect.height = (height + (_local3 * 2));
};
}
public function set emphasized(_arg1:Boolean):void{
_emphasized = _arg1;
invalidate(InvalidationType.STYLES);
}
override protected function draw():void{
if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){
drawEmphasized();
};
super.draw();
if (emphasizedBorder != null){
setChildIndex(emphasizedBorder, (numChildren - 1));
};
}
public function get emphasized():Boolean{
return (_emphasized);
}
override protected function initializeAccessibility():void{
if (Button.createAccessibilityImplementation != null){
Button.createAccessibilityImplementation(this);
};
}
protected function drawEmphasized():void{
var _local1:Object;
var _local2:Number;
if (emphasizedBorder != null){
removeChild(emphasizedBorder);
};
emphasizedBorder = null;
if (!_emphasized){
return;
};
_local1 = getStyleValue("emphasizedSkin");
if (_local1 != null){
emphasizedBorder = getDisplayObjectInstance(_local1);
};
if (emphasizedBorder != null){
addChildAt(emphasizedBorder, 0);
_local2 = Number(getStyleValue("emphasizedPadding"));
emphasizedBorder.x = (emphasizedBorder.y = -(_local2));
emphasizedBorder.width = (width + (_local2 * 2));
emphasizedBorder.height = (height + (_local2 * 2));
};
}
public static function getStyleDefinition():Object{
return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles));
}
}
}//package fl.controls
Section 3
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement)
package fl.controls {
public class ButtonLabelPlacement {
public static const TOP:String = "top";
public static const LEFT:String = "left";
public static const BOTTOM:String = "bottom";
public static const RIGHT:String = "right";
}
}//package fl.controls
Section 4
//Label (fl.controls.Label)
package fl.controls {
import fl.core.*;
import fl.events.*;
import flash.text.*;
public class Label extends UIComponent {
protected var actualHeight:Number;
protected var _html:Boolean;// = false
protected var actualWidth:Number;
protected var defaultLabel:String;// = "Label"
protected var _savedHTML:String;
public var textField:TextField;
private static var defaultStyles:Object = {textFormat:null, embedFonts:false};
public function Label(){
defaultLabel = "Label";
_html = false;
super();
text = defaultLabel;
actualWidth = _width;
actualHeight = _height;
}
public function get autoSize():String{
return (textField.autoSize);
}
public function get selectable():Boolean{
return (textField.selectable);
}
public function set text(_arg1:String):void{
if (_arg1 == text){
return;
};
if (((componentInspectorSetting) && ((_arg1 == defaultLabel)))){
return;
};
_html = false;
textField.text = _arg1;
if (textField.autoSize != TextFieldAutoSize.NONE){
invalidate(InvalidationType.SIZE);
};
}
public function get wordWrap():Boolean{
return (textField.wordWrap);
}
public function set condenseWhite(_arg1:Boolean):void{
textField.condenseWhite = _arg1;
if (textField.autoSize != TextFieldAutoSize.NONE){
invalidate(InvalidationType.SIZE);
};
}
public function set selectable(_arg1:Boolean):void{
textField.selectable = _arg1;
}
public function set autoSize(_arg1:String):void{
textField.autoSize = _arg1;
invalidate(InvalidationType.SIZE);
}
public function set wordWrap(_arg1:Boolean):void{
textField.wordWrap = _arg1;
if (textField.autoSize != TextFieldAutoSize.NONE){
invalidate(InvalidationType.SIZE);
};
}
override public function get height():Number{
if (((!((textField.autoSize == TextFieldAutoSize.NONE))) && (wordWrap))){
return (_height);
};
return (actualHeight);
}
public function set htmlText(_arg1:String):void{
if (_arg1 == htmlText){
return;
};
if (((componentInspectorSetting) && ((_arg1 == "")))){
return;
};
_html = true;
_savedHTML = _arg1;
textField.htmlText = _arg1;
if (textField.autoSize != TextFieldAutoSize.NONE){
invalidate(InvalidationType.SIZE);
};
}
public function get text():String{
return (textField.text);
}
public function get condenseWhite():Boolean{
return (textField.condenseWhite);
}
override protected function draw():void{
var _local1:Object;
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
drawTextFormat();
_local1 = getStyleValue("embedFonts");
if (_local1 != null){
textField.embedFonts = _local1;
};
if (textField.autoSize != TextFieldAutoSize.NONE){
invalidate(InvalidationType.SIZE, false);
};
};
if (isInvalid(InvalidationType.SIZE)){
drawLayout();
};
super.draw();
}
override protected function configUI():void{
super.configUI();
textField = new TextField();
addChild(textField);
textField.type = TextFieldType.DYNAMIC;
textField.selectable = false;
textField.wordWrap = false;
}
public function get htmlText():String{
return (textField.htmlText);
}
override public function setSize(_arg1:Number, _arg2:Number):void{
actualWidth = _arg1;
actualHeight = _arg2;
super.setSize(_arg1, _arg2);
}
override public function set width(_arg1:Number):void{
actualWidth = _arg1;
super.width = _arg1;
}
protected function drawLayout():void{
var _local1:Boolean;
var _local2:Number;
var _local3:Number;
_local1 = false;
textField.width = width;
textField.height = height;
if (textField.autoSize != TextFieldAutoSize.NONE){
_local2 = textField.width;
_local3 = textField.height;
_local1 = ((!((_width == _local2))) || (!((_height == _local3))));
_width = _local2;
_height = _local3;
switch (textField.autoSize){
case TextFieldAutoSize.CENTER:
textField.x = ((actualWidth / 2) - (textField.width / 2));
break;
case TextFieldAutoSize.LEFT:
textField.x = 0;
break;
case TextFieldAutoSize.RIGHT:
textField.x = -((textField.width - actualWidth));
break;
};
} else {
textField.width = actualWidth;
textField.height = actualHeight;
textField.x = 0;
};
if (_local1){
dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, true));
};
}
override public function get width():Number{
if (((!((textField.autoSize == TextFieldAutoSize.NONE))) && (!(wordWrap)))){
return (_width);
};
return (actualWidth);
}
protected function drawTextFormat():void{
var _local1:TextFormat;
var _local2:Object;
_local1 = (getStyleValue("textFormat") as TextFormat);
if (_local1 == null){
_local2 = UIComponent.getStyleDefinition();
_local1 = (enabled) ? (_local2.defaultTextFormat as TextFormat) : (_local2.defaultDisabledTextFormat as TextFormat);
};
textField.defaultTextFormat = _local1;
textField.setTextFormat(_local1);
if (((_html) && (!((_savedHTML == null))))){
htmlText = _savedHTML;
};
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
}
}//package fl.controls
Section 5
//LabelButton (fl.controls.LabelButton)
package fl.controls {
import flash.events.*;
import flash.display.*;
import fl.core.*;
import fl.managers.*;
import fl.events.*;
import flash.text.*;
import flash.ui.*;
public class LabelButton extends BaseButton implements IFocusManagerComponent {
protected var _labelPlacement:String;// = "right"
protected var _toggle:Boolean;// = false
protected var icon:DisplayObject;
protected var oldMouseState:String;
protected var mode:String;// = "center"
public var textField:TextField;
protected var _label:String;// = "Label"
private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false};
public static var createAccessibilityImplementation:Function;
public function LabelButton(){
_labelPlacement = ButtonLabelPlacement.RIGHT;
_toggle = false;
_label = "Label";
mode = "center";
super();
}
protected function toggleSelected(_arg1:MouseEvent):void{
selected = !(selected);
dispatchEvent(new Event(Event.CHANGE, true));
}
public function get labelPlacement():String{
return (_labelPlacement);
}
override protected function keyDownHandler(_arg1:KeyboardEvent):void{
if (!enabled){
return;
};
if (_arg1.keyCode == Keyboard.SPACE){
if (oldMouseState == null){
oldMouseState = mouseState;
};
setMouseState("down");
startPress();
};
}
protected function setEmbedFont(){
var _local1:Object;
_local1 = getStyleValue("embedFonts");
if (_local1 != null){
textField.embedFonts = _local1;
};
}
override protected function keyUpHandler(_arg1:KeyboardEvent):void{
if (!enabled){
return;
};
if (_arg1.keyCode == Keyboard.SPACE){
setMouseState(oldMouseState);
oldMouseState = null;
endPress();
dispatchEvent(new MouseEvent(MouseEvent.CLICK));
};
}
override public function get selected():Boolean{
return ((_toggle) ? _selected : false);
}
public function set labelPlacement(_arg1:String):void{
_labelPlacement = _arg1;
invalidate(InvalidationType.SIZE);
}
public function set toggle(_arg1:Boolean):void{
if (((!(_arg1)) && (super.selected))){
selected = false;
};
_toggle = _arg1;
if (_toggle){
addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true);
} else {
removeEventListener(MouseEvent.CLICK, toggleSelected);
};
invalidate(InvalidationType.STATE);
}
public function get label():String{
return (_label);
}
override public function set selected(_arg1:Boolean):void{
_selected = _arg1;
if (_toggle){
invalidate(InvalidationType.STATE);
};
}
override protected function draw():void{
if (textField.text != _label){
label = _label;
};
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
drawBackground();
drawIcon();
drawTextFormat();
invalidate(InvalidationType.SIZE, false);
};
if (isInvalid(InvalidationType.SIZE)){
drawLayout();
};
if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){
if (((isFocused) && (focusManager.showFocusIndicator))){
drawFocus(true);
};
};
validate();
}
public function get toggle():Boolean{
return (_toggle);
}
override protected function configUI():void{
super.configUI();
textField = new TextField();
textField.type = TextFieldType.DYNAMIC;
textField.selectable = false;
addChild(textField);
}
override protected function drawLayout():void{
var _local1:Number;
var _local2:String;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
_local1 = Number(getStyleValue("textPadding"));
_local2 = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement;
textField.height = (textField.textHeight + 4);
_local3 = (textField.textWidth + 4);
_local4 = (textField.textHeight + 4);
_local5 = ((icon)==null) ? 0 : (icon.width + _local1);
_local6 = ((icon)==null) ? 0 : (icon.height + _local1);
textField.visible = (label.length > 0);
if (icon != null){
icon.x = Math.round(((width - icon.width) / 2));
icon.y = Math.round(((height - icon.height) / 2));
};
if (textField.visible == false){
textField.width = 0;
textField.height = 0;
} else {
if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){
_local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1))));
if ((height - 2) > _local4){
_local8 = _local4;
} else {
_local8 = (height - 2);
};
_local3 = _local7;
textField.width = _local3;
_local4 = _local8;
textField.height = _local4;
textField.x = Math.round(((width - _local3) / 2));
textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0));
if (icon != null){
icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1));
};
} else {
_local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1))));
_local3 = _local7;
textField.width = _local3;
textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0));
textField.y = Math.round(((height - textField.height) / 2));
if (icon != null){
icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1));
};
};
};
super.drawLayout();
}
override protected function initializeAccessibility():void{
if (LabelButton.createAccessibilityImplementation != null){
LabelButton.createAccessibilityImplementation(this);
};
}
protected function drawIcon():void{
var _local1:DisplayObject;
var _local2:String;
var _local3:Object;
_local1 = icon;
_local2 = (enabled) ? mouseState : "disabled";
if (selected){
_local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1));
};
_local2 = (_local2 + "Icon");
_local3 = getStyleValue(_local2);
if (_local3 == null){
_local3 = getStyleValue("icon");
};
if (_local3 != null){
icon = getDisplayObjectInstance(_local3);
};
if (icon != null){
addChildAt(icon, 1);
};
if (((!((_local1 == null))) && (!((_local1 == icon))))){
removeChild(_local1);
};
}
public function set label(_arg1:String):void{
_label = _arg1;
if (textField.text != _label){
textField.text = _label;
dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE));
};
invalidate(InvalidationType.SIZE);
invalidate(InvalidationType.STYLES);
}
protected function drawTextFormat():void{
var _local1:Object;
var _local2:TextFormat;
var _local3:TextFormat;
_local1 = UIComponent.getStyleDefinition();
_local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat);
textField.setTextFormat(_local2);
_local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat);
if (_local3 != null){
textField.setTextFormat(_local3);
} else {
_local3 = _local2;
};
textField.defaultTextFormat = _local3;
setEmbedFont();
}
public static function getStyleDefinition():Object{
return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition()));
}
}
}//package fl.controls
Section 6
//Slider (fl.controls.Slider)
package fl.controls {
import flash.events.*;
import flash.display.*;
import fl.core.*;
import fl.managers.*;
import fl.events.*;
import flash.ui.*;
public class Slider extends UIComponent implements IFocusManagerComponent {
protected var _direction:String;
protected var _liveDragging:Boolean;// = false
protected var _value:Number;// = 0
protected var _snapInterval:Number;// = 0
protected var _minimum:Number;// = 0
protected var _maximum:Number;// = 10
protected var track:BaseButton;
protected var _tickInterval:Number;// = 0
protected var tickContainer:Sprite;
protected var thumb:BaseButton;
protected static const TICK_STYLES:Object = {upSkin:"tickSkin"};
protected static const TRACK_STYLES:Object = {upSkin:"sliderTrackSkin", overSkin:"sliderTrackSkin", downSkin:"sliderTrackSkin", disabledSkin:"sliderTrackDisabledSkin"};
protected static const THUMB_STYLES:Object = {upSkin:"thumbUpSkin", overSkin:"thumbOverSkin", downSkin:"thumbDownSkin", disabledSkin:"thumbDisabledSkin"};
protected static var defaultStyles:Object = {thumbUpSkin:"SliderThumb_upSkin", thumbOverSkin:"SliderThumb_overSkin", thumbDownSkin:"SliderThumb_downSkin", thumbDisabledSkin:"SliderThumb_disabledSkin", sliderTrackSkin:"SliderTrack_skin", sliderTrackDisabledSkin:"SliderTrack_disabledSkin", tickSkin:"SliderTick_skin", focusRectSkin:null, focusRectPadding:null};
public function Slider(){
_direction = SliderDirection.HORIZONTAL;
_minimum = 0;
_maximum = 10;
_value = 0;
_tickInterval = 0;
_snapInterval = 0;
_liveDragging = false;
super();
setStyles();
}
public function get minimum():Number{
return (_minimum);
}
public function set minimum(_arg1:Number):void{
_minimum = _arg1;
this.value = Math.max(_arg1, this.value);
invalidate(InvalidationType.DATA);
}
public function get maximum():Number{
return (_maximum);
}
protected function positionThumb():void{
thumb.x = ((((_direction)==SliderDirection.VERTICAL) ? ((maximum - minimum) - value) : (value - minimum) / (maximum - minimum)) * _width);
}
protected function clearTicks():void{
if (((!(tickContainer)) || (!(tickContainer.parent)))){
return;
};
removeChild(tickContainer);
}
protected function onTrackClick(_arg1:MouseEvent):void{
calculateValue(track.mouseX, InteractionInputType.MOUSE, SliderEventClickTarget.TRACK);
if (!liveDragging){
dispatchEvent(new SliderEvent(SliderEvent.CHANGE, value, SliderEventClickTarget.TRACK, InteractionInputType.MOUSE));
};
}
public function set maximum(_arg1:Number):void{
_maximum = _arg1;
this.value = Math.min(_arg1, this.value);
invalidate(InvalidationType.DATA);
}
public function get liveDragging():Boolean{
return (_liveDragging);
}
protected function doDrag(_arg1:MouseEvent):void{
var _local2:Number;
var _local3:Number;
_local2 = (_width / snapInterval);
_local3 = track.mouseX;
calculateValue(_local3, InteractionInputType.MOUSE, SliderEventClickTarget.THUMB);
dispatchEvent(new SliderEvent(SliderEvent.THUMB_DRAG, value, SliderEventClickTarget.THUMB, InteractionInputType.MOUSE));
}
override protected function keyDownHandler(_arg1:KeyboardEvent):void{
var _local2:uint;
var _local3:Number;
var _local4:Boolean;
if (!enabled){
return;
};
_local2 = ((snapInterval)>0) ? snapInterval : 1;
_local4 = (direction == SliderDirection.HORIZONTAL);
if ((((((_arg1.keyCode == Keyboard.DOWN)) && (!(_local4)))) || ((((_arg1.keyCode == Keyboard.LEFT)) && (_local4))))){
_local3 = (value - _local2);
} else {
if ((((((_arg1.keyCode == Keyboard.UP)) && (!(_local4)))) || ((((_arg1.keyCode == Keyboard.RIGHT)) && (_local4))))){
_local3 = (value + _local2);
} else {
if ((((((_arg1.keyCode == Keyboard.PAGE_DOWN)) && (!(_local4)))) || ((((_arg1.keyCode == Keyboard.HOME)) && (_local4))))){
_local3 = minimum;
} else {
if ((((((_arg1.keyCode == Keyboard.PAGE_UP)) && (!(_local4)))) || ((((_arg1.keyCode == Keyboard.END)) && (_local4))))){
_local3 = maximum;
};
};
};
};
if (!isNaN(_local3)){
_arg1.stopPropagation();
doSetValue(_local3, InteractionInputType.KEYBOARD, null, _arg1.keyCode);
};
}
override public function set enabled(_arg1:Boolean):void{
if (enabled == _arg1){
return;
};
super.enabled = _arg1;
track.enabled = (thumb.enabled = _arg1);
}
protected function thumbPressHandler(_arg1:MouseEvent):void{
stage.addEventListener(MouseEvent.MOUSE_MOVE, doDrag, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true);
dispatchEvent(new SliderEvent(SliderEvent.THUMB_PRESS, value, InteractionInputType.MOUSE, SliderEventClickTarget.THUMB));
}
public function get snapInterval():Number{
return (_snapInterval);
}
protected function thumbReleaseHandler(_arg1:MouseEvent):void{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, doDrag);
stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler);
dispatchEvent(new SliderEvent(SliderEvent.THUMB_RELEASE, value, InteractionInputType.MOUSE, SliderEventClickTarget.THUMB));
dispatchEvent(new SliderEvent(SliderEvent.CHANGE, value, SliderEventClickTarget.THUMB, InteractionInputType.MOUSE));
}
public function set liveDragging(_arg1:Boolean):void{
_liveDragging = _arg1;
}
public function set value(_arg1:Number):void{
doSetValue(_arg1);
}
public function set direction(_arg1:String):void{
var _local2:Boolean;
_direction = _arg1;
_local2 = (_direction == SliderDirection.VERTICAL);
if (isLivePreview){
if (_local2){
setScaleY(-1);
y = track.height;
} else {
setScaleY(1);
y = 0;
};
positionThumb();
return;
};
if (((_local2) && (componentInspectorSetting))){
if ((rotation % 90) == 0){
setScaleY(-1);
};
};
if (!componentInspectorSetting){
rotation = (_local2) ? 90 : 0;
};
}
public function set tickInterval(_arg1:Number):void{
_tickInterval = _arg1;
invalidate(InvalidationType.SIZE);
}
override public function get enabled():Boolean{
return (super.enabled);
}
override protected function draw():void{
if (isInvalid(InvalidationType.STYLES)){
setStyles();
invalidate(InvalidationType.SIZE, false);
};
if (isInvalid(InvalidationType.SIZE)){
track.setSize(_width, track.height);
track.drawNow();
thumb.drawNow();
};
if (tickInterval > 0){
drawTicks();
} else {
clearTicks();
};
positionThumb();
super.draw();
}
override protected function configUI():void{
super.configUI();
thumb = new BaseButton();
thumb.setSize(13, 13);
thumb.autoRepeat = false;
addChild(thumb);
thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true);
track = new BaseButton();
track.move(0, 0);
track.setSize(80, 4);
track.autoRepeat = false;
track.useHandCursor = false;
track.addEventListener(MouseEvent.CLICK, onTrackClick, false, 0, true);
addChildAt(track, 0);
}
public function set snapInterval(_arg1:Number):void{
_snapInterval = _arg1;
}
public function get value():Number{
return (_value);
}
public function get direction():String{
return (_direction);
}
public function get tickInterval():Number{
return (_tickInterval);
}
override public function setSize(_arg1:Number, _arg2:Number):void{
if ((((_direction == SliderDirection.VERTICAL)) && (!(isLivePreview)))){
super.setSize(_arg2, _arg1);
} else {
super.setSize(_arg1, _arg2);
};
invalidate(InvalidationType.SIZE);
}
protected function drawTicks():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:uint;
var _local5:DisplayObject;
clearTicks();
tickContainer = new Sprite();
_local1 = ((maximum)<1) ? (tickInterval / 100) : tickInterval;
_local2 = ((maximum - minimum) / _local1);
_local3 = (_width / _local2);
_local4 = 0;
while (_local4 <= _local2) {
_local5 = getDisplayObjectInstance(getStyleValue("tickSkin"));
_local5.x = (_local3 * _local4);
_local5.y = ((track.y - _local5.height) - 2);
tickContainer.addChild(_local5);
_local4++;
};
addChild(tickContainer);
}
protected function calculateValue(_arg1:Number, _arg2:String, _arg3:String, _arg4:int=undefined):void{
var _local5:Number;
_local5 = ((_arg1 / _width) * (maximum - minimum));
if (_direction == SliderDirection.VERTICAL){
_local5 = (maximum - _local5);
} else {
_local5 = (minimum + _local5);
};
doSetValue(_local5, _arg2, _arg3, _arg4);
}
protected function getPrecision(_arg1:Number):Number{
var _local2:String;
_local2 = _arg1.toString();
if (_local2.indexOf(".") == -1){
return (0);
};
return (_local2.split(".").pop().length);
}
protected function doSetValue(_arg1:Number, _arg2:String=null, _arg3:String=null, _arg4:int=undefined):void{
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
_local5 = _value;
if (((!((_snapInterval == 0))) && (!((_snapInterval == 1))))){
_local6 = Math.pow(10, getPrecision(snapInterval));
_local7 = (_snapInterval * _local6);
_local8 = Math.round((_arg1 * _local6));
_local9 = (Math.round((_local8 / _local7)) * _local7);
_arg1 = (_local9 / _local6);
_value = Math.max(minimum, Math.min(maximum, _arg1));
} else {
_value = Math.max(minimum, Math.min(maximum, Math.round(_arg1)));
};
if (((!((_local5 == _value))) && (((((liveDragging) && (!((_arg3 == null))))) || ((_arg2 == InteractionInputType.KEYBOARD)))))){
dispatchEvent(new SliderEvent(SliderEvent.CHANGE, value, _arg3, _arg2, _arg4));
};
positionThumb();
}
protected function setStyles():void{
copyStylesToChild(thumb, THUMB_STYLES);
copyStylesToChild(track, TRACK_STYLES);
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
}
}//package fl.controls
Section 7
//SliderDirection (fl.controls.SliderDirection)
package fl.controls {
public class SliderDirection {
public static var HORIZONTAL:String = "horizontal";
public static var VERTICAL:String = "vertical";
}
}//package fl.controls
Section 8
//ComponentShim (fl.core.ComponentShim)
package fl.core {
import flash.display.*;
public dynamic class ComponentShim extends MovieClip {
}
}//package fl.core
Section 9
//InvalidationType (fl.core.InvalidationType)
package fl.core {
public class InvalidationType {
public static const SIZE:String = "size";
public static const ALL:String = "all";
public static const DATA:String = "data";
public static const SCROLL:String = "scroll";
public static const STATE:String = "state";
public static const STYLES:String = "styles";
public static const SELECTED:String = "selected";
public static const RENDERER_STYLES:String = "rendererStyles";
}
}//package fl.core
Section 10
//UIComponent (fl.core.UIComponent)
package fl.core {
import flash.events.*;
import flash.display.*;
import fl.managers.*;
import flash.utils.*;
import fl.events.*;
import flash.text.*;
import flash.system.*;
public class UIComponent extends Sprite {
protected var _enabled:Boolean;// = true
private var _mouseFocusEnabled:Boolean;// = true
protected var startHeight:Number;
protected var _height:Number;
protected var _oldIMEMode:String;// = null
protected var startWidth:Number;
public var focusTarget:IFocusManagerComponent;
protected var errorCaught:Boolean;// = false
protected var uiFocusRect:DisplayObject;
protected var _width:Number;
public var version:String;// = "3.0.0.15"
protected var isFocused:Boolean;// = false
protected var callLaterMethods:Dictionary;
private var _focusEnabled:Boolean;// = true
private var tempText:TextField;
protected var invalidateFlag:Boolean;// = false
protected var _inspector:Boolean;// = false
protected var sharedStyles:Object;
protected var invalidHash:Object;
protected var isLivePreview:Boolean;// = false
protected var _imeMode:String;// = null
protected var instanceStyles:Object;
protected var _x:Number;
protected var _y:Number;
public static var inCallLaterPhase:Boolean = false;
private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)};
public static var createAccessibilityImplementation:Function;
private static var focusManagers:Dictionary = new Dictionary(false);
public function UIComponent(){
version = "3.0.0.15";
isLivePreview = false;
invalidateFlag = false;
_enabled = true;
isFocused = false;
_focusEnabled = true;
_mouseFocusEnabled = true;
_imeMode = null;
_oldIMEMode = null;
errorCaught = false;
_inspector = false;
super();
instanceStyles = {};
sharedStyles = {};
invalidHash = {};
callLaterMethods = new Dictionary();
StyleManager.registerInstance(this);
configUI();
invalidate(InvalidationType.ALL);
tabEnabled = (this is IFocusManagerComponent);
focusRect = false;
if (tabEnabled){
addEventListener(FocusEvent.FOCUS_IN, focusInHandler);
addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler);
addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
};
initializeFocusManager();
addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true);
}
public function drawFocus(_arg1:Boolean):void{
var _local2:Number;
isFocused = _arg1;
if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){
removeChild(uiFocusRect);
uiFocusRect = null;
};
if (_arg1){
uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite);
if (uiFocusRect == null){
return;
};
_local2 = Number(getStyleValue("focusRectPadding"));
uiFocusRect.x = -(_local2);
uiFocusRect.y = -(_local2);
uiFocusRect.width = (width + (_local2 * 2));
uiFocusRect.height = (height + (_local2 * 2));
addChildAt(uiFocusRect, 0);
};
}
private function callLaterDispatcher(_arg1:Event):void{
var _local2:Dictionary;
var _local3:Object;
if (_arg1.type == Event.ADDED_TO_STAGE){
removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher);
stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true);
stage.invalidate();
return;
};
_arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher);
if (stage == null){
addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true);
return;
};
inCallLaterPhase = true;
_local2 = callLaterMethods;
for (_local3 in _local2) {
_local3();
delete _local2[_local3];
};
inCallLaterPhase = false;
}
private function addedHandler(_arg1:Event):void{
removeEventListener("addedToStage", addedHandler);
initializeFocusManager();
}
protected function getStyleValue(_arg1:String):Object{
return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]);
}
protected function isOurFocus(_arg1:DisplayObject):Boolean{
return ((_arg1 == this));
}
override public function get scaleX():Number{
return ((width / startWidth));
}
override public function get scaleY():Number{
return ((height / startHeight));
}
override public function set height(_arg1:Number):void{
if (_height == _arg1){
return;
};
setSize(width, _arg1);
}
protected function keyDownHandler(_arg1:KeyboardEvent):void{
}
protected function focusInHandler(_arg1:FocusEvent):void{
var _local2:IFocusManager;
if (isOurFocus((_arg1.target as DisplayObject))){
_local2 = focusManager;
if (((_local2) && (_local2.showFocusIndicator))){
drawFocus(true);
isFocused = true;
};
};
}
public function setStyle(_arg1:String, _arg2:Object):void{
if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
instanceStyles[_arg1] = _arg2;
invalidate(InvalidationType.STYLES);
}
override public function get visible():Boolean{
return (super.visible);
}
public function get componentInspectorSetting():Boolean{
return (_inspector);
}
override public function get x():Number{
return ((isNaN(_x)) ? super.x : _x);
}
override public function get y():Number{
return ((isNaN(_y)) ? super.y : _y);
}
protected function setIMEMode(_arg1:Boolean){
var enabled = _arg1;
if (_imeMode != null){
if (enabled){
IME.enabled = true;
_oldIMEMode = IME.conversionMode;
try {
if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){
IME.conversionMode = _imeMode;
};
errorCaught = false;
} catch(e:Error) {
errorCaught = true;
throw (new Error(("IME mode not supported: " + _imeMode)));
};
} else {
if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){
IME.conversionMode = _oldIMEMode;
};
IME.enabled = false;
};
};
}
public function set enabled(_arg1:Boolean):void{
if (_arg1 == _enabled){
return;
};
_enabled = _arg1;
invalidate(InvalidationType.STATE);
}
public function setSharedStyle(_arg1:String, _arg2:Object):void{
if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
sharedStyles[_arg1] = _arg2;
if (instanceStyles[_arg1] == null){
invalidate(InvalidationType.STYLES);
};
}
protected function keyUpHandler(_arg1:KeyboardEvent):void{
}
public function set focusEnabled(_arg1:Boolean):void{
_focusEnabled = _arg1;
}
override public function set scaleX(_arg1:Number):void{
setSize((startWidth * _arg1), height);
}
public function get mouseFocusEnabled():Boolean{
return (_mouseFocusEnabled);
}
override public function set scaleY(_arg1:Number):void{
setSize(width, (startHeight * _arg1));
}
protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{
var classDef:Object;
var skin = _arg1;
classDef = null;
if ((skin is Class)){
return ((new (skin) as DisplayObject));
};
if ((skin is DisplayObject)){
(skin as DisplayObject).x = 0;
(skin as DisplayObject).y = 0;
return ((skin as DisplayObject));
};
try {
classDef = getDefinitionByName(skin.toString());
} catch(e:Error) {
try {
classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object);
} catch(e:Error) {
};
};
if (classDef == null){
return (null);
};
return ((new (classDef) as DisplayObject));
}
protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{
var _local3:String;
for (_local3 in _arg2) {
_arg1.setStyle(_local3, getStyleValue(_arg2[_local3]));
};
}
protected function beforeComponentParameters():void{
}
protected function callLater(_arg1:Function):void{
if (inCallLaterPhase){
return;
};
callLaterMethods[_arg1] = true;
if (stage != null){
stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true);
stage.invalidate();
} else {
addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true);
};
}
protected function createFocusManager():void{
if (focusManagers[stage] == null){
focusManagers[stage] = new FocusManager(stage);
};
}
override public function set visible(_arg1:Boolean):void{
var _local2:String;
if (super.visible == _arg1){
return;
};
super.visible = _arg1;
_local2 = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE;
dispatchEvent(new ComponentEvent(_local2, true));
}
protected function hookAccessibility(_arg1:Event):void{
removeEventListener(Event.ENTER_FRAME, hookAccessibility);
initializeAccessibility();
}
public function set componentInspectorSetting(_arg1:Boolean):void{
_inspector = _arg1;
if (_inspector){
beforeComponentParameters();
} else {
afterComponentParameters();
};
}
override public function set x(_arg1:Number):void{
move(_arg1, _y);
}
public function drawNow():void{
draw();
}
override public function set y(_arg1:Number):void{
move(_x, _arg1);
}
protected function checkLivePreview():Boolean{
var className:String;
if (parent == null){
return (false);
};
try {
className = getQualifiedClassName(parent);
} catch(e:Error) {
};
return ((className == "fl.livepreview::LivePreviewParent"));
}
protected function focusOutHandler(_arg1:FocusEvent):void{
if (isOurFocus((_arg1.target as DisplayObject))){
drawFocus(false);
isFocused = false;
};
}
public function set mouseFocusEnabled(_arg1:Boolean):void{
_mouseFocusEnabled = _arg1;
}
public function getFocus():InteractiveObject{
if (stage){
return (stage.focus);
};
return (null);
}
protected function validate():void{
invalidHash = {};
}
override public function get height():Number{
return (_height);
}
public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{
invalidHash[_arg1] = true;
if (_arg2){
this.callLater(draw);
};
}
public function get enabled():Boolean{
return (_enabled);
}
protected function getScaleX():Number{
return (super.scaleX);
}
protected function getScaleY():Number{
return (super.scaleY);
}
public function get focusEnabled():Boolean{
return (_focusEnabled);
}
protected function afterComponentParameters():void{
}
protected function draw():void{
if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){
if (((isFocused) && (focusManager.showFocusIndicator))){
drawFocus(true);
};
};
validate();
}
protected function configUI():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
isLivePreview = checkLivePreview();
_local1 = rotation;
rotation = 0;
_local2 = super.width;
_local3 = super.height;
var _local4 = 1;
super.scaleY = _local4;
super.scaleX = _local4;
setSize(_local2, _local3);
move(super.x, super.y);
rotation = _local1;
startWidth = _local2;
startHeight = _local3;
if (numChildren > 0){
removeChildAt(0);
};
}
protected function setScaleX(_arg1:Number):void{
super.scaleX = _arg1;
}
protected function setScaleY(_arg1:Number):void{
super.scaleY = _arg1;
}
private function initializeFocusManager():void{
if (stage == null){
addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true);
} else {
createFocusManager();
};
}
public function set focusManager(_arg1:IFocusManager):void{
UIComponent.focusManagers[this] = _arg1;
}
public function clearStyle(_arg1:String):void{
setStyle(_arg1, null);
}
protected function isInvalid(_arg1:String, ... _args):Boolean{
if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){
return (true);
};
while (_args.length > 0) {
if (invalidHash[_args.pop()]){
return (true);
};
};
return (false);
}
public function setSize(_arg1:Number, _arg2:Number):void{
_width = _arg1;
_height = _arg2;
invalidate(InvalidationType.SIZE);
dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false));
}
override public function set width(_arg1:Number):void{
if (_width == _arg1){
return;
};
setSize(_arg1, height);
}
public function setFocus():void{
if (stage){
stage.focus = this;
};
}
protected function initializeAccessibility():void{
if (UIComponent.createAccessibilityImplementation != null){
UIComponent.createAccessibilityImplementation(this);
};
}
public function get focusManager():IFocusManager{
var _local1:DisplayObject;
_local1 = this;
while (_local1) {
if (UIComponent.focusManagers[_local1] != null){
return (IFocusManager(UIComponent.focusManagers[_local1]));
};
_local1 = _local1.parent;
};
return (null);
}
override public function get width():Number{
return (_width);
}
public function move(_arg1:Number, _arg2:Number):void{
_x = _arg1;
_y = _arg2;
super.x = Math.round(_arg1);
super.y = Math.round(_arg2);
dispatchEvent(new ComponentEvent(ComponentEvent.MOVE));
}
public function validateNow():void{
invalidate(InvalidationType.ALL, false);
draw();
}
public function getStyle(_arg1:String):Object{
return (instanceStyles[_arg1]);
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
public static function mergeStyles(... _args):Object{
var _local2:Object;
var _local3:uint;
var _local4:uint;
var _local5:Object;
var _local6:String;
_local2 = {};
_local3 = _args.length;
_local4 = 0;
while (_local4 < _local3) {
_local5 = _args[_local4];
for (_local6 in _local5) {
if (_local2[_local6] != null){
} else {
_local2[_local6] = _args[_local4][_local6];
};
};
_local4++;
};
return (_local2);
}
}
}//package fl.core
Section 11
//ComponentEvent (fl.events.ComponentEvent)
package fl.events {
import flash.events.*;
public class ComponentEvent extends Event {
public static const HIDE:String = "hide";
public static const BUTTON_DOWN:String = "buttonDown";
public static const MOVE:String = "move";
public static const RESIZE:String = "resize";
public static const ENTER:String = "enter";
public static const LABEL_CHANGE:String = "labelChange";
public static const SHOW:String = "show";
public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
override public function toString():String{
return (formatToString("ComponentEvent", "type", "bubbles", "cancelable"));
}
override public function clone():Event{
return (new ComponentEvent(type, bubbles, cancelable));
}
}
}//package fl.events
Section 12
//InteractionInputType (fl.events.InteractionInputType)
package fl.events {
public class InteractionInputType {
public static const MOUSE:String = "mouse";
public static const KEYBOARD:String = "keyboard";
}
}//package fl.events
Section 13
//SliderEvent (fl.events.SliderEvent)
package fl.events {
import flash.events.*;
public class SliderEvent extends Event {
protected var _triggerEvent:String;
protected var _keyCode:Number;
protected var _value:Number;
protected var _clickTarget:String;
public static const CHANGE:String = "change";
public static const THUMB_PRESS:String = "thumbPress";
public static const THUMB_DRAG:String = "thumbDrag";
public static const THUMB_RELEASE:String = "thumbRelease";
public function SliderEvent(_arg1:String, _arg2:Number, _arg3:String, _arg4:String, _arg5:int=0){
_value = _arg2;
_keyCode = _arg5;
_triggerEvent = _arg4;
_clickTarget = _arg3;
super(_arg1);
}
public function get clickTarget():String{
return (_clickTarget);
}
override public function clone():Event{
return (new SliderEvent(type, _value, _clickTarget, _triggerEvent, _keyCode));
}
override public function toString():String{
return (formatToString("SliderEvent", "type", "value", "bubbles", "cancelable", "keyCode", "triggerEvent", "clickTarget"));
}
public function get triggerEvent():String{
return (_triggerEvent);
}
public function get value():Number{
return (_value);
}
public function get keyCode():Number{
return (_keyCode);
}
}
}//package fl.events
Section 14
//SliderEventClickTarget (fl.events.SliderEventClickTarget)
package fl.events {
public class SliderEventClickTarget {
public static const TRACK:String = "track";
public static const THUMB:String = "thumb";
}
}//package fl.events
Section 15
//FocusManager (fl.managers.FocusManager)
package fl.managers {
import flash.events.*;
import fl.controls.*;
import flash.display.*;
import fl.core.*;
import flash.utils.*;
import flash.text.*;
import flash.ui.*;
public class FocusManager implements IFocusManager {
private var focusableObjects:Dictionary;
private var _showFocusIndicator:Boolean;// = true
private var defButton:Button;
private var focusableCandidates:Array;
private var _form:DisplayObjectContainer;
private var _defaultButtonEnabled:Boolean;// = true
private var activated:Boolean;// = false
private var _defaultButton:Button;
private var calculateCandidates:Boolean;// = true
private var lastFocus:InteractiveObject;
private var lastAction:String;
public function FocusManager(_arg1:DisplayObjectContainer){
activated = false;
calculateCandidates = true;
_showFocusIndicator = true;
_defaultButtonEnabled = true;
super();
focusableObjects = new Dictionary(true);
if (_arg1 != null){
_form = _arg1;
addFocusables(DisplayObject(_arg1));
_arg1.addEventListener(Event.ADDED, addedHandler);
_arg1.addEventListener(Event.REMOVED, removedHandler);
activate();
};
}
public function get showFocusIndicator():Boolean{
return (_showFocusIndicator);
}
private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{
var _local5:int;
var _local6:int;
var _local7:DisplayObject;
var _local8:IFocusManagerGroup;
var _local9:int;
var _local10:DisplayObject;
var _local11:IFocusManagerGroup;
_local5 = focusableCandidates.length;
_local6 = _arg1;
while (true) {
if (_arg2){
_arg1--;
} else {
_arg1++;
};
if (_arg3){
if (((_arg2) && ((_arg1 < 0)))){
break;
};
if (((!(_arg2)) && ((_arg1 == _local5)))){
break;
};
} else {
_arg1 = ((_arg1 + _local5) % _local5);
if (_local6 == _arg1){
break;
};
};
if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){
_local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1]));
if ((_local7 is IFocusManagerGroup)){
_local8 = IFocusManagerGroup(_local7);
_local9 = 0;
while (_local9 < focusableCandidates.length) {
_local10 = focusableCandidates[_local9];
if ((_local10 is IFocusManagerGroup)){
_local11 = IFocusManagerGroup(_local10);
if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){
_arg1 = _local9;
break;
};
};
_local9++;
};
};
return (_arg1);
};
};
return (_arg1);
}
public function set form(_arg1:DisplayObjectContainer):void{
_form = _arg1;
}
private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{
var focusable:IFocusManagerComponent;
var io:InteractiveObject;
var doc:DisplayObjectContainer;
var i:int;
var child:DisplayObject;
var o = _arg1;
var skipTopLevel = _arg2;
if (!skipTopLevel){
if ((o is IFocusManagerComponent)){
focusable = IFocusManagerComponent(o);
if (focusable.focusEnabled){
if (((focusable.tabEnabled) && (isTabVisible(o)))){
focusableObjects[o] = true;
calculateCandidates = true;
};
o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
};
} else {
if ((o is InteractiveObject)){
io = (o as InteractiveObject);
if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){
focusableObjects[io] = true;
calculateCandidates = true;
};
io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
};
};
};
if ((o is DisplayObjectContainer)){
doc = DisplayObjectContainer(o);
o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler);
if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){
i = 0;
while (i < doc.numChildren) {
try {
child = doc.getChildAt(i);
if (child != null){
addFocusables(doc.getChildAt(i));
};
} catch(error:SecurityError) {
};
i = (i + 1);
};
};
};
}
private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{
return (_arg1.getChildIndex(_arg2));
}
private function mouseFocusChangeHandler(_arg1:FocusEvent):void{
if ((_arg1.relatedObject is TextField)){
return;
};
_arg1.preventDefault();
}
private function focusOutHandler(_arg1:FocusEvent):void{
var _local2:InteractiveObject;
_local2 = (_arg1.target as InteractiveObject);
}
private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{
var _local3:IFocusManagerGroup;
if (!isEnabledAndVisible(_arg1)){
return (false);
};
if ((_arg1 is IFocusManagerGroup)){
_local3 = IFocusManagerGroup(_arg1);
if (_arg2 == _local3.groupName){
return (false);
};
};
return (true);
}
public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{
var _local2:InteractiveObject;
_local2 = _arg1;
while (_arg1) {
if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){
return (_arg1);
};
_arg1 = _arg1.parent;
};
return (_local2);
}
private function sortFocusableObjectsTabIndex():void{
var _local1:Object;
var _local2:InteractiveObject;
focusableCandidates = [];
for (_local1 in focusableObjects) {
_local2 = InteractiveObject(_local1);
if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){
focusableCandidates.push(_local2);
};
};
focusableCandidates.sort(sortByTabIndex);
}
private function removeFocusables(_arg1:DisplayObject):void{
var _local2:Object;
var _local3:DisplayObject;
if ((_arg1 is DisplayObjectContainer)){
_arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler);
_arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
for (_local2 in focusableObjects) {
_local3 = DisplayObject(_local2);
if (DisplayObjectContainer(_arg1).contains(_local3)){
if (_local3 == lastFocus){
lastFocus = null;
};
_local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
delete focusableObjects[_local2];
calculateCandidates = true;
};
};
};
}
private function addedHandler(_arg1:Event):void{
var _local2:DisplayObject;
_local2 = DisplayObject(_arg1.target);
if (_local2.stage){
addFocusables(DisplayObject(_arg1.target));
};
}
private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{
while (_arg1 != InteractiveObject(form)) {
if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){
return (_arg1);
};
_arg1 = _arg1.parent;
if (_arg1 == null){
break;
};
};
return (null);
}
private function tabChildrenChangeHandler(_arg1:Event):void{
var _local2:DisplayObjectContainer;
if (_arg1.target != _arg1.currentTarget){
return;
};
calculateCandidates = true;
_local2 = DisplayObjectContainer(_arg1.target);
if (_local2.tabChildren){
addFocusables(_local2, true);
} else {
removeFocusables(_local2);
};
}
public function sendDefaultButtonEvent():void{
defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
public function getFocus():InteractiveObject{
var _local1:InteractiveObject;
_local1 = form.stage.focus;
return (findFocusManagerComponent(_local1));
}
private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{
var _local2:DisplayObjectContainer;
var _local3:TextField;
var _local4:SimpleButton;
_local2 = DisplayObject(form).parent;
while (_arg1 != _local2) {
if ((_arg1 is UIComponent)){
if (!UIComponent(_arg1).enabled){
return (false);
};
} else {
if ((_arg1 is TextField)){
_local3 = TextField(_arg1);
if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){
return (false);
};
} else {
if ((_arg1 is SimpleButton)){
_local4 = SimpleButton(_arg1);
if (!_local4.enabled){
return (false);
};
};
};
};
if (!_arg1.visible){
return (false);
};
_arg1 = _arg1.parent;
};
return (true);
}
public function set defaultButton(_arg1:Button):void{
var _local2:Button;
_local2 = (_arg1) ? Button(_arg1) : null;
if (_local2 != _defaultButton){
if (_defaultButton){
_defaultButton.emphasized = false;
};
if (defButton){
defButton.emphasized = false;
};
_defaultButton = _local2;
defButton = _local2;
if (_local2){
_local2.emphasized = true;
};
};
}
private function deactivateHandler(_arg1:Event):void{
var _local2:InteractiveObject;
_local2 = InteractiveObject(_arg1.target);
}
public function setFocus(_arg1:InteractiveObject):void{
if ((_arg1 is IFocusManagerComponent)){
IFocusManagerComponent(_arg1).setFocus();
} else {
form.stage.focus = _arg1;
};
}
private function setFocusToNextObject(_arg1:FocusEvent):void{
var _local2:InteractiveObject;
if (!hasFocusableObjects()){
return;
};
_local2 = getNextFocusManagerComponent(_arg1.shiftKey);
if (_local2){
setFocus(_local2);
};
}
private function hasFocusableObjects():Boolean{
var _local1:Object;
for (_local1 in focusableObjects) {
return (true);
};
return (false);
}
private function tabIndexChangeHandler(_arg1:Event):void{
calculateCandidates = true;
}
private function sortFocusableObjects():void{
var _local1:Object;
var _local2:InteractiveObject;
focusableCandidates = [];
for (_local1 in focusableObjects) {
_local2 = InteractiveObject(_local1);
if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){
sortFocusableObjectsTabIndex();
return;
};
focusableCandidates.push(_local2);
};
focusableCandidates.sort(sortByDepth);
}
private function keyFocusChangeHandler(_arg1:FocusEvent):void{
showFocusIndicator = true;
if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){
setFocusToNextObject(_arg1);
_arg1.preventDefault();
};
}
private function getIndexOfFocusedObject(_arg1:DisplayObject):int{
var _local2:int;
var _local3:int;
_local2 = focusableCandidates.length;
_local3 = 0;
_local3 = 0;
while (_local3 < _local2) {
if (focusableCandidates[_local3] == _arg1){
return (_local3);
};
_local3++;
};
return (-1);
}
public function hideFocus():void{
}
private function removedHandler(_arg1:Event):void{
var _local2:int;
var _local3:DisplayObject;
var _local4:InteractiveObject;
_local3 = DisplayObject(_arg1.target);
if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){
if (_local3 == lastFocus){
IFocusManagerComponent(lastFocus).drawFocus(false);
lastFocus = null;
};
_local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
delete focusableObjects[_local3];
calculateCandidates = true;
} else {
if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){
_local4 = (_local3 as InteractiveObject);
if (_local4){
if (_local4 == lastFocus){
lastFocus = null;
};
delete focusableObjects[_local4];
calculateCandidates = true;
};
_local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
};
};
removeFocusables(_local3);
}
private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{
var _local3:String;
var _local4:String;
var _local5:int;
var _local6:String;
var _local7:String;
var _local8:String;
var _local9:DisplayObject;
var _local10:DisplayObject;
_local3 = "";
_local4 = "";
_local8 = "0000";
_local9 = DisplayObject(_arg1);
_local10 = DisplayObject(_arg2);
while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) {
_local5 = getChildIndex(_local9.parent, _local9);
_local6 = _local5.toString(16);
if (_local6.length < 4){
_local7 = (_local8.substring(0, (4 - _local6.length)) + _local6);
};
_local3 = (_local7 + _local3);
_local9 = _local9.parent;
};
while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) {
_local5 = getChildIndex(_local10.parent, _local10);
_local6 = _local5.toString(16);
if (_local6.length < 4){
_local7 = (_local8.substring(0, (4 - _local6.length)) + _local6);
};
_local4 = (_local7 + _local4);
_local10 = _local10.parent;
};
return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0);
}
public function get defaultButton():Button{
return (_defaultButton);
}
private function activateHandler(_arg1:Event):void{
var _local2:InteractiveObject;
_local2 = InteractiveObject(_arg1.target);
if (lastFocus){
if ((lastFocus is IFocusManagerComponent)){
IFocusManagerComponent(lastFocus).setFocus();
} else {
form.stage.focus = lastFocus;
};
};
lastAction = "ACTIVATE";
}
public function showFocus():void{
}
public function set defaultButtonEnabled(_arg1:Boolean):void{
_defaultButtonEnabled = _arg1;
}
public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{
var _local2:DisplayObject;
var _local3:String;
var _local4:int;
var _local5:Boolean;
var _local6:int;
var _local7:int;
var _local8:IFocusManagerGroup;
if (!hasFocusableObjects()){
return (null);
};
if (calculateCandidates){
sortFocusableObjects();
calculateCandidates = false;
};
_local2 = form.stage.focus;
_local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2)));
_local3 = "";
if ((_local2 is IFocusManagerGroup)){
_local8 = IFocusManagerGroup(_local2);
_local3 = _local8.groupName;
};
_local4 = getIndexOfFocusedObject(_local2);
_local5 = false;
_local6 = _local4;
if (_local4 == -1){
if (_arg1){
_local4 = focusableCandidates.length;
};
_local5 = true;
};
_local7 = getIndexOfNextObject(_local4, _arg1, _local5, _local3);
return (findFocusManagerComponent(focusableCandidates[_local7]));
}
private function mouseDownHandler(_arg1:MouseEvent):void{
var _local2:InteractiveObject;
if (_arg1.isDefaultPrevented()){
return;
};
_local2 = getTopLevelFocusTarget(InteractiveObject(_arg1.target));
if (!_local2){
return;
};
showFocusIndicator = false;
if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){
setFocus(_local2);
};
lastAction = "MOUSEDOWN";
}
private function isTabVisible(_arg1:DisplayObject):Boolean{
var _local2:DisplayObjectContainer;
_local2 = _arg1.parent;
while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) {
if (!_local2.tabChildren){
return (false);
};
_local2 = _local2.parent;
};
return (true);
}
public function get nextTabIndex():int{
return (0);
}
private function keyDownHandler(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == Keyboard.TAB){
lastAction = "KEY";
if (calculateCandidates){
sortFocusableObjects();
calculateCandidates = false;
};
};
if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){
sendDefaultButtonEvent();
};
}
private function focusInHandler(_arg1:FocusEvent):void{
var _local2:InteractiveObject;
var _local3:Button;
_local2 = InteractiveObject(_arg1.target);
if (form.contains(_local2)){
lastFocus = findFocusManagerComponent(InteractiveObject(_local2));
if ((lastFocus is Button)){
_local3 = Button(lastFocus);
if (defButton){
defButton.emphasized = false;
defButton = _local3;
_local3.emphasized = true;
};
} else {
if (((defButton) && (!((defButton == _defaultButton))))){
defButton.emphasized = false;
defButton = _defaultButton;
_defaultButton.emphasized = true;
};
};
};
}
private function tabEnabledChangeHandler(_arg1:Event):void{
var _local2:InteractiveObject;
var _local3:Boolean;
calculateCandidates = true;
_local2 = InteractiveObject(_arg1.target);
_local3 = (focusableObjects[_local2] == true);
if (_local2.tabEnabled){
if (((!(_local3)) && (isTabVisible(_local2)))){
if (!(_local2 is IFocusManagerComponent)){
_local2.focusRect = false;
};
focusableObjects[_local2] = true;
};
} else {
if (_local3){
delete focusableObjects[_local2];
};
};
}
public function set showFocusIndicator(_arg1:Boolean):void{
_showFocusIndicator = _arg1;
}
public function get form():DisplayObjectContainer{
return (_form);
}
private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{
return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2));
}
public function activate():void{
if (activated){
return;
};
form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true);
form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true);
form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true);
form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true);
form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true);
form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true);
form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
activated = true;
if (lastFocus){
setFocus(lastFocus);
};
}
public function deactivate():void{
form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler);
form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler);
form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true);
form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true);
form.stage.removeEventListener(Event.ACTIVATE, activateHandler);
form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler);
form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
activated = false;
}
public function get defaultButtonEnabled():Boolean{
return (_defaultButtonEnabled);
}
}
}//package fl.managers
Section 16
//IFocusManager (fl.managers.IFocusManager)
package fl.managers {
import fl.controls.*;
import flash.display.*;
public interface IFocusManager {
function getFocus():InteractiveObject;
function deactivate():void;
function set defaultButton(_arg1:Button):void;
function set showFocusIndicator(_arg1:Boolean):void;
function get defaultButtonEnabled():Boolean;
function get nextTabIndex():int;
function get defaultButton():Button;
function get showFocusIndicator():Boolean;
function setFocus(_arg1:InteractiveObject):void;
function activate():void;
function showFocus():void;
function set defaultButtonEnabled(_arg1:Boolean):void;
function hideFocus():void;
function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject;
function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject;
}
}//package fl.managers
Section 17
//IFocusManagerComponent (fl.managers.IFocusManagerComponent)
package fl.managers {
public interface IFocusManagerComponent {
function set focusEnabled(_arg1:Boolean):void;
function drawFocus(_arg1:Boolean):void;
function setFocus():void;
function get focusEnabled():Boolean;
function get tabEnabled():Boolean;
function get tabIndex():int;
function get mouseFocusEnabled():Boolean;
}
}//package fl.managers
Section 18
//IFocusManagerGroup (fl.managers.IFocusManagerGroup)
package fl.managers {
public interface IFocusManagerGroup {
function set groupName(_arg1:String):void;
function set selected(_arg1:Boolean):void;
function get groupName():String;
function get selected():Boolean;
}
}//package fl.managers
Section 19
//StyleManager (fl.managers.StyleManager)
package fl.managers {
import fl.core.*;
import flash.utils.*;
import flash.text.*;
public class StyleManager {
private var globalStyles:Object;
private var classToDefaultStylesDict:Dictionary;
private var styleToClassesHash:Object;
private var classToStylesDict:Dictionary;
private var classToInstancesDict:Dictionary;
private static var _instance:StyleManager;
public function StyleManager(){
styleToClassesHash = {};
classToInstancesDict = new Dictionary(true);
classToStylesDict = new Dictionary(true);
classToDefaultStylesDict = new Dictionary(true);
globalStyles = UIComponent.getStyleDefinition();
}
public static function clearComponentStyle(_arg1:Object, _arg2:String):void{
var _local3:Class;
var _local4:Object;
_local3 = getClassDef(_arg1);
_local4 = getInstance().classToStylesDict[_local3];
if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){
delete _local4[_arg2];
invalidateComponentStyle(_local3, _arg2);
};
}
private static function getClassDef(_arg1:Object):Class{
var component = _arg1;
if ((component is Class)){
return ((component as Class));
};
try {
return ((getDefinitionByName(getQualifiedClassName(component)) as Class));
} catch(e:Error) {
if ((component is UIComponent)){
try {
return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class));
} catch(e:Error) {
};
};
};
return (null);
}
public static function clearStyle(_arg1:String):void{
setStyle(_arg1, null);
}
public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{
var _local4:Class;
var _local5:Object;
_local4 = getClassDef(_arg1);
_local5 = getInstance().classToStylesDict[_local4];
if (_local5 == null){
_local5 = (getInstance().classToStylesDict[_local4] = {});
};
if (_local5 == _arg3){
return;
};
_local5[_arg2] = _arg3;
invalidateComponentStyle(_local4, _arg2);
}
private static function setSharedStyles(_arg1:UIComponent):void{
var _local2:StyleManager;
var _local3:Class;
var _local4:Object;
var _local5:String;
_local2 = getInstance();
_local3 = getClassDef(_arg1);
_local4 = _local2.classToDefaultStylesDict[_local3];
for (_local5 in _local4) {
_arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5));
};
}
public static function getComponentStyle(_arg1:Object, _arg2:String):Object{
var _local3:Class;
var _local4:Object;
_local3 = getClassDef(_arg1);
_local4 = getInstance().classToStylesDict[_local3];
return (((_local4)==null) ? null : _local4[_arg2]);
}
private static function getInstance(){
if (_instance == null){
_instance = new (StyleManager);
};
return (_instance);
}
private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{
var _local3:Dictionary;
var _local4:Object;
var _local5:UIComponent;
_local3 = getInstance().classToInstancesDict[_arg1];
if (_local3 == null){
return;
};
for (_local4 in _local3) {
_local5 = (_local4 as UIComponent);
if (_local5 == null){
} else {
_local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2));
};
};
}
private static function invalidateStyle(_arg1:String):void{
var _local2:Dictionary;
var _local3:Object;
_local2 = getInstance().styleToClassesHash[_arg1];
if (_local2 == null){
return;
};
for (_local3 in _local2) {
invalidateComponentStyle(Class(_local3), _arg1);
};
}
public static function registerInstance(_arg1:UIComponent):void{
var inst:StyleManager;
var classDef:Class;
var target:Class;
var defaultStyles:Object;
var styleToClasses:Object;
var n:String;
var instance = _arg1;
inst = getInstance();
classDef = getClassDef(instance);
if (classDef == null){
return;
};
if (inst.classToInstancesDict[classDef] == null){
inst.classToInstancesDict[classDef] = new Dictionary(true);
target = classDef;
while (defaultStyles == null) {
if (target["getStyleDefinition"] != null){
defaultStyles = target["getStyleDefinition"]();
break;
};
try {
target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class);
} catch(err:Error) {
try {
target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class);
} catch(e:Error) {
defaultStyles = UIComponent.getStyleDefinition();
break;
};
};
};
styleToClasses = inst.styleToClassesHash;
for (n in defaultStyles) {
if (styleToClasses[n] == null){
styleToClasses[n] = new Dictionary(true);
};
styleToClasses[n][classDef] = true;
};
inst.classToDefaultStylesDict[classDef] = defaultStyles;
inst.classToStylesDict[classDef] = {};
};
inst.classToInstancesDict[classDef][instance] = true;
setSharedStyles(instance);
}
public static function getStyle(_arg1:String):Object{
return (getInstance().globalStyles[_arg1]);
}
private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{
var _local3:Class;
var _local4:StyleManager;
var _local5:Object;
_local3 = getClassDef(_arg1);
_local4 = getInstance();
_local5 = _local4.classToStylesDict[_local3][_arg2];
if (_local5 != null){
return (_local5);
};
_local5 = _local4.globalStyles[_arg2];
if (_local5 != null){
return (_local5);
};
return (_local4.classToDefaultStylesDict[_local3][_arg2]);
}
public static function setStyle(_arg1:String, _arg2:Object):void{
var _local3:Object;
_local3 = getInstance().globalStyles;
if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
_local3[_arg1] = _arg2;
invalidateStyle(_arg1);
}
}
}//package fl.managers
Section 20
//Linear (fl.motion.easing.Linear)
package fl.motion.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 fl.motion.easing
Section 21
//Regular (fl.transitions.easing.Regular)
package fl.transitions.easing {
public class Regular {
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((_arg3 * _arg1) * _arg1) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2));
};
--_arg1;
return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2));
}
}
}//package fl.transitions.easing
Section 22
//Tween (fl.transitions.Tween)
package fl.transitions {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Tween extends EventDispatcher {
private var _position:Number;// = NAN
public var prevTime:Number;// = NAN
public var prevPos:Number;// = NAN
public var isPlaying:Boolean;// = false
public var begin:Number;// = NAN
private var _fps:Number;// = NAN
private var _time:Number;// = NAN
public var change:Number;// = NAN
private var _finish:Number;// = NAN
public var looping:Boolean;// = false
private var _intervalID:uint;// = 0
public var func:Function;
private var _timer:Timer;// = null
private var _startTime:Number;// = NAN
public var prop:String;// = ""
private var _duration:Number;// = NAN
public var obj:Object;// = null
public var useSeconds:Boolean;// = false
protected static var _mc:MovieClip = new MovieClip();
public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){
isPlaying = false;
obj = null;
prop = "";
func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
};
begin = NaN;
change = NaN;
useSeconds = false;
prevTime = NaN;
prevPos = NaN;
looping = false;
_duration = NaN;
_time = NaN;
_fps = NaN;
_position = NaN;
_startTime = NaN;
_intervalID = 0;
_finish = NaN;
_timer = null;
super();
if (!arguments.length){
return;
};
this.obj = _arg1;
this.prop = _arg2;
this.begin = _arg4;
this.position = _arg4;
this.duration = _arg6;
this.useSeconds = _arg7;
if ((_arg3 is Function)){
this.func = _arg3;
};
this.finish = _arg5;
this._timer = new Timer(100);
this.start();
}
public function continueTo(_arg1:Number, _arg2:Number):void{
this.begin = this.position;
this.finish = _arg1;
if (!isNaN(_arg2)){
this.duration = _arg2;
};
this.start();
}
public function stop():void{
this.stopEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position));
}
private function fixTime():void{
if (this.useSeconds){
this._startTime = (getTimer() - (this._time * 1000));
};
}
public function set FPS(_arg1:Number):void{
var _local2:Boolean;
_local2 = this.isPlaying;
this.stopEnterFrame();
this._fps = _arg1;
if (_local2){
this.startEnterFrame();
};
}
public function get finish():Number{
return ((this.begin + this.change));
}
public function get duration():Number{
return (this._duration);
}
protected function startEnterFrame():void{
var _local1:Number;
if (isNaN(this._fps)){
_mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true);
} else {
_local1 = (1000 / this._fps);
this._timer.delay = _local1;
this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true);
this._timer.start();
};
this.isPlaying = true;
}
public function set time(_arg1:Number):void{
this.prevTime = this._time;
if (_arg1 > this.duration){
if (this.looping){
this.rewind((_arg1 - this._duration));
this.update();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position));
} else {
if (this.useSeconds){
this._time = this._duration;
this.update();
};
this.stop();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position));
};
} else {
if (_arg1 < 0){
this.rewind();
this.update();
} else {
this._time = _arg1;
this.update();
};
};
}
protected function stopEnterFrame():void{
if (isNaN(this._fps)){
_mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame);
} else {
this._timer.stop();
};
this.isPlaying = false;
}
public function getPosition(_arg1:Number=NaN):Number{
if (isNaN(_arg1)){
_arg1 = this._time;
};
return (this.func(_arg1, this.begin, this.change, this._duration));
}
public function set finish(_arg1:Number):void{
this.change = (_arg1 - this.begin);
}
public function set duration(_arg1:Number):void{
this._duration = ((_arg1)<=0) ? Infinity : _arg1;
}
public function setPosition(_arg1:Number):void{
this.prevPos = this._position;
if (this.prop.length){
this.obj[this.prop] = (this._position = _arg1);
};
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position));
}
public function resume():void{
this.fixTime();
this.startEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position));
}
public function fforward():void{
this.time = this._duration;
this.fixTime();
}
protected function onEnterFrame(_arg1:Event):void{
this.nextFrame();
}
public function get position():Number{
return (this.getPosition(this._time));
}
public function yoyo():void{
this.continueTo(this.begin, this.time);
}
public function nextFrame():void{
if (this.useSeconds){
this.time = ((getTimer() - this._startTime) / 1000);
} else {
this.time = (this._time + 1);
};
}
protected function timerHandler(_arg1:TimerEvent):void{
this.nextFrame();
_arg1.updateAfterEvent();
}
public function get FPS():Number{
return (this._fps);
}
public function rewind(_arg1:Number=0):void{
this._time = _arg1;
this.fixTime();
this.update();
}
public function set position(_arg1:Number):void{
this.setPosition(_arg1);
}
public function get time():Number{
return (this._time);
}
private function update():void{
this.setPosition(this.getPosition(this._time));
}
public function start():void{
this.rewind();
this.startEnterFrame();
this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position));
}
public function prevFrame():void{
if (!this.useSeconds){
this.time = (this._time - 1);
};
}
}
}//package fl.transitions
Section 23
//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 24
//Basic_object (main.Basic_object)
package main {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public dynamic class Basic_object extends MovieClip {
public var radius:Number;
public function Basic_object(){
addEventListener(MouseEvent.MOUSE_OVER, handlerMouseOver);
addEventListener(MouseEvent.MOUSE_OUT, handlerMouseOut);
addEventListener(MouseEvent.MOUSE_DOWN, handlerMouseDown);
}
public function distance(_arg1:Basic_object):Number{
return (Math.sqrt(distance2(_arg1)));
}
public function HideInfo():void{
}
public function CheckCollision(_arg1:Basic_object):Boolean{
var _local2:Number;
var _local3:Number;
_local2 = distance2(_arg1);
_local3 = (radius + _arg1.radius);
return ((_local2 < (_local3 * _local3)));
}
public function ShowInfo():void{
}
public function handlerMouseDown(_arg1:MouseEvent):void{
}
public function move():void{
}
public function handlerMouseOut(_arg1:MouseEvent):void{
HideInfo();
}
public function distance2(_arg1:Basic_object):Number{
var _local2:Number;
var _local3:Number;
_local2 = (x - _arg1.x);
_local3 = (y - _arg1.y);
return (((_local2 * _local2) + (_local3 * _local3)));
}
public function handlerMouseOver(_arg1:MouseEvent):void{
ShowInfo();
}
}
}//package main
Section 25
//Client (main.Client)
package main {
import flash.events.*;
import flash.display.*;
import fl.transitions.*;
import flash.media.*;
import fl.transitions.easing.*;
import fl.motion.easing.*;
import flash.geom.*;
import flash.filters.*;
public dynamic class Client extends Basic_object {
private const dActive = 1;
private const dLeaveHere = 5;
private const dReduceSpeed = 2;
private const dStoping = 3;
private const dDriveOut = 4;
var fil:Array;
public var exc:MovieClip;
var lightstop:MovieClip;
var tmpR:Number;// = 0
var tmpS:Number;// = 0
var sndplay:Boolean;// = false
var ToIdx:int;// = -1
var offsetX:Number;// = 0
private var Pos:CVector;
var addspeed:Boolean;// = false
var maxTemptation:Number;
var speed:Number;
var fary:Sprite;
var obgonyayu:Boolean;// = false
var takeMoney:Boolean;// = false
var secondLine:Boolean;// = false
private var Pos2:CVector;
var tracks:Array;
var Idx:int;// = 1
var currentWayPoint:int;
var tmpOffset:Number;// = 0
var freezed:Boolean;// = false
var Velocity2:Vector;
var back:Boolean;// = false
var excitement:Number;// = 0
var chnl:SoundChannel;
var curTrack:int;
var livesmap:Boolean;// = false
var Velocity:Vector;
var startSpeed:Number;
var active:Boolean;// = true
var e_car:Object;
var s_time:Number;// = 0
var freezedTime:Number;// = 0
var easing:Boolean;// = false
var maxFreezedTime:Number;
var square:Sprite;
var type:int;
var removeMe:Boolean;// = false
var onHole:Boolean;// = false
var timer:int;// = 0
var myDir:String;// = "forward"
var tweenX:Tween;
var tweenY:Tween;
var snd:Sounds;
var doing:int;// = 1
var moneyAward:Number;
var sname:String;
var glow:GlowFilter;
var mc:MovieClip;
var wpOfset:Number;// = 0
public var car:MovieClip;
var whoKiilMe:Object;
var hasBeenFreezed:Boolean;// = false
public function Client(_arg1:int, _arg2:int){
var _local3:Number;
excitement = 0;
wpOfset = 0;
freezed = false;
freezedTime = 0;
hasBeenFreezed = false;
offsetX = 0;
myDir = "forward";
tmpR = 0;
tmpS = 0;
obgonyayu = false;
secondLine = false;
removeMe = false;
active = true;
timer = 0;
tmpOffset = 0;
back = false;
onHole = false;
Pos = new CVector();
Pos2 = new CVector();
livesmap = false;
doing = 1;
Idx = 1;
ToIdx = -1;
takeMoney = false;
s_time = 0;
easing = false;
addspeed = false;
sndplay = false;
super();
tracks = new Array();
scaleX = 0.75;
scaleY = 0.75;
type = _arg1;
exc.excL.width = 100;
exc.excL.x = Math.floor((exc.excL.width / 2));
Velocity = new Vector();
Velocity2 = new Vector();
radius = Math.floor(((width + height) / 4));
car.gotoAndStop(_arg2);
(this as MovieClip).hitArea = this.car;
whoKiilMe = new Object();
e_car = new Object();
_local3 = Math.random();
sname = "car1";
if (_local3 < 0.33){
sname = "car2";
};
if (_local3 > 0.66){
sname = "car3";
};
snd = new Sounds();
snd.init();
lightstop = new light_stop();
lightstop.scaleX = 0.15;
lightstop.scaleY = 0.15;
lightstop.y = -20;
lightstop.mouseEnabled = false;
addChild(lightstop);
lightstop.visible = false;
}
public function swapDir():void{
if (myDir == "left"){
myDir = "right";
} else {
if (myDir == "right"){
myDir = "left";
};
};
}
public function checkTween():void{
if (((tweenX) && (!(tweenX.isPlaying)))){
};
}
public function doOnReduceSpeed():void{
if (speed > 0){
speed = (speed - 0.1);
if (speed < 0){
speed = 0;
};
} else {
car.door.visible = true;
if (takeMoney){
whoKiilMe.active = false;
whoKiilMe.moneyNeed = true;
whoKiilMe.moneyAward = moneyAward;
};
timer = 0;
doing = dStoping;
};
}
public function initVectors():void{
var _local1:CVector;
Pos.InitVec(new CVector(x, y));
_local1 = new CVector();
_local1.InitVec(new CVector(tracks[1].x, tracks[1].y));
_local1.Sub(Pos);
_local1.Normalize();
_local1.Mul(10);
Pos2.InitVec(Pos);
Pos2.Sub(_local1);
}
public function getDamage(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:MovieClip):void{
var _local6:Vector;
var _local7:*;
var _local8:Number;
var _local9:Number;
var _local10:Point;
var _local11:Point;
if ((parent.parent as Game).PAUSE == true){
return;
};
if (!this){
return;
};
_local6 = new Vector();
excitement = (excitement + _arg1);
exc.excL.width = (100 - ((excitement / maxTemptation) * 100));
exc.excL.x = ((exc.excL.width / 2) + 1);
exc.alpha = 1;
if (_arg4){
if (_arg5.unitType == 4){
_local6.setMembers((_arg5.x - x), (_arg5.y - y));
(parent.parent as Game).createSmoke(_arg5.x, _arg5.y, _local6.magnitude(), _local6.getDirection());
};
for each (_local7 in (parent.parent as Game).all_clients) {
if (this != _local7){
_local6.setMembers((_local7.x - x), (_local7.y - y));
_local8 = (_local6.magnitude() - _arg2);
if ((((_local6.magnitude() <= _arg2)) && (!((_local7 == this))))){
(_local7 as Client).getSplash(((_arg1 / 100) * _arg3));
};
};
};
};
if ((((_arg5.unitType == 1)) || ((_arg5.unitType == 2)))){
_local6.setMembers((_arg5.x - x), (_arg5.y - y));
_local9 = (Math.random() * 20);
if (Math.random() > 0.5){
_local9 = -(_local9);
};
_local10 = new Point((car.x + _local9), (car.y + _local9));
_local11 = car.localToGlobal(_local10);
_local9 = (Math.random() * 30);
if (Math.random() > 0.5){
_local9 = -(_local9);
};
(parent.parent as Game).createSparks(_local11.x, _local11.y, ((_local6.getDirection() - 90) + _local9));
};
if (excitement >= maxTemptation){
active = false;
removeMe = true;
(parent.parent as Game).createExplosion(x, y);
(parent.parent as Game).createMoneyAwardInfo(x, y, moneyAward);
};
}
public function doOnLeaveHere():void{
speed = 3;
}
public function checkCollisions(_arg1:Client):void{
if ((this.car as MovieClip).hitTestObject(_arg1.car)){
getFreeze(((_arg1.speed * 100) / speed), 75);
};
}
public function moveRealisticMode():void{
var _local1 = ??pushnamespace
;
var _local2:Client;
var _local3:int;
var _local4:Boolean;
_local1 = 40;
_local3 = (parent.parent as Game).all_clients.length;
_local4 = false;
for each (_local2 in (parent.parent as Game).all_clients) {
_local2 = (parent.parent as Game).all_clients[(_local3 - 1)];
if (((((((!((this == _local2))) && ((_local2.speed < speed)))) && ((car.rotation == _local2.car.rotation)))) && (active))){
_local4 = true;
if ((((this.car.rotation == 0)) || ((this.car.rotation == -180)))){
if ((((Math.abs((_local2.y - y)) < _local1)) && ((Math.abs((_local2.x - x)) < 10)))){
if (_local2.y > y){
speed = _local2.speed;
};
};
};
if (this.car.rotation == -90){
if ((((Math.abs((x - _local2.x)) < _local1)) && ((Math.abs((_local2.y - y)) < 10)))){
speed = _local2.speed;
};
};
if (this.car.rotation == 90){
if ((((Math.abs((_local2.x - x)) < _local1)) && ((Math.abs((_local2.y - y)) < 10)))){
speed = _local2.speed;
};
};
};
_local3--;
};
if (!_local4){
};
}
public function update():void{
var _local1:CVector;
var _local2:CVector;
var _local3:Number;
var _local4:CVector;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Point;
var _local12:Point;
var _local13:Client;
var _local14:int;
var _local15:Boolean;
if (!sndplay){
if ((((((((x > 0)) && ((x < 600)))) && ((y > 0)))) && ((y < 500)))){
if ((parent.parent as Game).soundsPlaying){
startSound();
};
};
};
_local1 = new CVector();
_local2 = new CVector(tracks[currentWayPoint].x, tracks[currentWayPoint].y);
_local1.InitVec(_local2);
_local1.Sub(Pos);
_local3 = _local1.Len();
_local1.Normalize();
_local1.Mul(speed);
if (_local3 < speed){
currentWayPoint++;
};
_local4 = new CVector();
_local4.InitVec(Pos);
_local4.Sub(Pos2);
_local4.Normalize();
Pos.Add(_local1);
_local5 = _local4.Len2();
_local6 = (2 * (CVector.Dot(Pos2, _local4) - CVector.Dot(_local4, Pos)));
_local7 = (((Pos.Len2() + Pos2.Len2()) - (2 * CVector.Dot(Pos, Pos2))) - (15 * 15));
_local8 = ((_local6 * _local6) - ((4 * _local5) * _local7));
_local9 = ((-(_local6) - Math.sqrt(_local8)) / (2 * _local5));
_local4.Mul(_local9);
Pos2.Add(_local4);
_local10 = 1;
x = (Pos.X * _local10);
y = (Pos.Y * _local10);
_local4 = new CVector();
_local4.InitVec(Pos);
_local4.Sub(Pos2);
car.rotation = (((180 * Math.atan2(_local4.Y, _local4.X)) / Math.PI) - 90);
_local11 = new Point((car.x - 4), (car.y + 90));
_local12 = new Point();
_local12 = car.localToGlobal(_local11);
fary.x = _local12.x;
fary.y = _local12.y;
fary.rotation = car.rotation;
_local14 = (parent.parent as Game).all_clients.length;
if (exc.alpha > 0){
exc.alpha = (exc.alpha - 0.1);
};
if (freezed){
freezedTime++;
};
if (((freezed) && ((freezedTime >= maxFreezedTime)))){
setStartSpeed();
};
if (((!(active)) && ((doing == dDriveOut)))){
if (speed < 3){
speed = (speed + 0.1);
};
};
_local15 = false;
if ((((speed < 0.2)) && (active))){
_local14 = (parent.parent as Game).all_clients.length;
for each (_local13 in (parent.parent as Game).all_clients) {
_local13 = (parent.parent as Game).all_clients[(_local14 - 1)];
if (!_local13){
break;
};
if (((!((this == _local13))) && ((_local13.curTrack == curTrack)))){
if (((((_local13.currentWayPoint - currentWayPoint) <= 3)) && (((_local13.currentWayPoint - currentWayPoint) > 0)))){
_local15 = true;
};
break;
};
};
};
if (((((!(_local15)) && ((speed < 0.2)))) && (active))){
addspeed = true;
};
if ((((((addspeed == true)) && ((speed < startSpeed)))) && (active))){
speed = (speed + 0.1);
};
if (currentWayPoint >= 99){
removeMe = true;
};
if (hitWithHole()){
if (!onHole){
onHole = true;
speed = (speed * ((parent.parent as Game).damageroadfreezpercent / 100));
};
} else {
onHole = false;
if ((((speed < startSpeed)) && (active))){
speed = (speed + 0.1);
};
};
for each (_local13 in (parent.parent as Game).all_clients) {
_local13 = (parent.parent as Game).all_clients[(_local14 - 1)];
if (((!((this == _local13))) && ((_local13.speed < speed)))){
if (curTrack == _local13.curTrack){
if (((((_local13.currentWayPoint - currentWayPoint) <= 4)) && (((_local13.currentWayPoint - currentWayPoint) > 0)))){
if ((((curTrack == 2)) || ((curTrack == 4)))){
if (_local13.speed != 0){
speed = _local13.speed;
};
} else {
if (curTrack == 1){
if (!carIsLeft(2)){
curTrack = 2;
tracks = (parent.parent as Game).track2;
currentWayPoint = (currentWayPoint + 3);
} else {
if (_local13.speed != 0){
speed = _local13.speed;
};
};
};
if (curTrack == 3){
if (!carIsLeft(4)){
curTrack = 4;
tracks = (parent.parent as Game).track4;
currentWayPoint = (currentWayPoint + 3);
} else {
if (_local13.speed != 0){
speed = _local13.speed;
};
};
};
};
};
};
};
_local14--;
};
}
public function createTween():void{
tweenX = new Tween(this, "x", Linear.easeIn, this.x, (this.x + 28), 2, true);
tweenY = new Tween(this, "y", Linear.easeIn, this.y, (this.y + 50), 2, true);
}
public function setExcitement(_arg1:Number):void{
excitement = _arg1;
}
public function drop(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=200):void{
var _local6:Number;
x = _arg1;
y = _arg2;
Velocity.setMembers((_arg3 - x), (_arg4 - y));
_local6 = 1;
Velocity.mulScalar((_local6 / Velocity.magnitude()));
}
public function removeSound():void{
if (sndplay){
chnl.stop();
chnl.removeEventListener(Event.SOUND_COMPLETE, replaySound);
};
}
public function setStartSpeed():void{
speed = startSpeed;
freezed = false;
}
override public function HideInfo():void{
}
public function Obgon_():void{
var _local1:Client;
var _local2:int;
_local2 = (parent.parent as Game).all_clients.length;
for each (_local1 in (parent.parent as Game).all_clients) {
_local1 = (parent.parent as Game).all_clients[(_local2 - 1)];
if (((!((this == _local1))) && ((_local1.speed < speed)))){
if ((this.car as MovieClip).hitTestObject(_local1.car)){
getFreeze((103 - ((_local1.speed * 100) / speed)), 75);
_local1.speed = (_local1.speed + 0.5);
};
};
_local2--;
};
}
public function carIsLeft(_arg1:int):Boolean{
var _local2:Object;
var _local3:int;
_local3 = (parent.parent as Game).all_clients.length;
if (_local3 < 1){
return (false);
};
for each (_local2 in (parent.parent as Game).all_clients) {
_local2 = (parent.parent as Game).all_clients[(_local3 - 1)];
if (((!((this == _local2))) && ((_local2.curTrack == _arg1)))){
if ((((currentWayPoint > (_local2.currentWayPoint - 10))) && ((currentWayPoint < (_local2.currentWayPoint + 10))))){
return (true);
};
};
_local3--;
};
return (false);
}
public function doOnDriveOut():void{
if (speed >= 3){
doing = dLeaveHere;
car.ll.visible = false;
};
}
public function getSplash(_arg1:Number):void{
excitement = (excitement + _arg1);
exc.excL.width = (100 - (excitement / (maxTemptation / 100)));
exc.excL.x = ((exc.excL.width / 2) + 1);
exc.alpha = 1;
}
override public function ShowInfo():void{
if (exc){
exc.alpha = 1;
};
}
public function replaySound(_arg1:Event):void{
chnl = snd.snd[sname].play();
chnl.addEventListener(Event.SOUND_COMPLETE, replaySound);
}
public function hitWithHole():Boolean{
var _local1:int;
var _local2:MovieClip;
var _local3:Boolean;
_local3 = false;
_local1 = (parent.parent as Game).aHole.length;
for each (_local2 in (parent.parent as Game).aHole) {
_local2 = (parent.parent as Game).aHole[(_local1 - 1)];
if ((car as MovieClip).hitTestObject(_local2)){
Velocity2.setMembers((_local2.x - x), (_local2.y - y));
if (Velocity2.magnitude() < 50){
_local3 = true;
};
};
_local1--;
};
return (_local3);
}
public function doOnStoping():void{
var _local1:Point;
var _local2:Point;
timer++;
Velocity.setMembers((tracks[(currentWayPoint + 1)].x - x), (tracks[(currentWayPoint + 1)].y - y));
car.rotation = (Velocity.getDirection() - 90);
_local1 = new Point((car.x - 3), (car.y + 80));
_local2 = new Point();
_local2 = car.localToGlobal(_local1);
fary.x = _local2.x;
fary.y = _local2.y;
if (timer == ((parent.parent as Game).FR * 2)){
timer = 0;
doing = dDriveOut;
if (curTrack == 1){
tracks = (parent.parent as Game).track2;
curTrack = 2;
};
if (curTrack == 3){
tracks = (parent.parent as Game).track4;
curTrack = 4;
};
currentWayPoint = (currentWayPoint + 3);
};
}
public function getFreeze(_arg1:Number, _arg2:Number):void{
freezed = true;
speed = (speed - ((speed / 100) * _arg1));
maxFreezedTime = _arg2;
hasBeenFreezed = true;
}
public function Obgon():void{
var _local1 = ??pushnamespace
;
var _local2:Client;
var _local3:int;
_local1 = 50;
_local3 = (parent.parent as Game).all_clients.length;
for each (_local2 in (parent.parent as Game).all_clients) {
_local2 = (parent.parent as Game).all_clients[(_local3 - 1)];
if (((((!((this == _local2))) && ((_local2.speed < speed)))) && (_local2.active))){
obgonyayu = true;
if (this.car.rotation == 0){
if (Math.abs((_local2.y - y)) < _local1){
if (!_local2.secondLine){
if ((((((((_local2.car.rotation == 0)) || ((_local2.car.rotation == 90)))) || ((_local2.car.rotation == -90)))) || ((_local2.car.rotation == 180)))){
secondLine = true;
if (Math.abs((_local2.x - x)) < 28){
x = (x + (speed / 2));
};
} else {
speed = _local2.speed;
};
} else {
speed = _local2.speed;
};
};
};
if (this.car.rotation == -90){
if (Math.abs((_local2.x - x)) < _local1){
if (!_local2.secondLine){
secondLine = true;
if (Math.abs((_local2.y - y)) < 28){
y = (y - (speed / 2));
};
} else {
speed = _local2.speed;
};
};
};
if (this.car.rotation == 90){
if (Math.abs((_local2.x - x)) < _local1){
if (!_local2.secondLine){
secondLine = true;
if (Math.abs((_local2.y - y)) < 28){
y = (y + (speed / 2));
};
};
};
};
} else {
obgonyayu = false;
};
_local3--;
};
}
override public function move():void{
var _local1:Number;
var _local2:Number;
var _local3:int;
var _local4:Number;
if (!((currentWayPoint + 1) >= (parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].@pointcount)){
_local4 = 0;
if ((((speed <= 0)) && (!((parent.parent as Game).realisticMode)))){
speed = 0.1;
};
_local2 = speed;
if (exc.alpha > 0){
exc.alpha = (exc.alpha - 0.1);
};
if (freezed){
freezedTime++;
};
if (((freezed) && ((freezedTime >= maxFreezedTime)))){
setStartSpeed();
};
if ((((speed < startSpeed)) && (active))){
speed = (speed + 0.02);
};
_local3 = ((parent.parent as Game).currentlevel - 1);
if (secondLine){
_local1 = 30;
} else {
_local1 = 0;
};
if ((parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[(currentWayPoint + 1)].@turn == "right"){
_local1 = (_local1 * -1);
};
tmpS = 1;
if (myDir == "left"){
if ((1 / speed) < 0.6){
car.rotation = (car.rotation - 4.5);
} else {
car.rotation = (car.rotation - 4.5);
};
tmpS = 1.25;
};
if (myDir == "right"){
car.rotation = (car.rotation + 4.5);
tmpS = 1.25;
};
_local4 = car.rotation;
if ((((((((((_local4 == 0)) || ((_local4 == 90)))) || ((_local4 == -90)))) || ((_local4 == 180)))) || ((_local4 == -180)))){
myDir = "forward";
tmpS = 1;
} else {
tmpS = 1.1;
};
x = (x + ((tmpS * speed) * Math.cos((((car.rotation + 90) * Math.PI) / 180))));
y = (y + ((tmpS * speed) * Math.sin((((car.rotation + 90) * Math.PI) / 180))));
tmpR = 2.5;
if (myDir == "forward"){
if (back){
if ((parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[(currentWayPoint + 1)].@targ == "x"){
if (_local4 == 0){
if (y >= ((parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[(currentWayPoint + 1)].@bpy - _local1)){
currentWayPoint = (currentWayPoint + 1);
myDir = (parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[currentWayPoint].@bturn;
};
};
if ((((_local4 == -180)) || ((_local4 == 180)))){
if (secondLine){
_local1 = Math.abs(_local1);
};
if (((secondLine) && (!(active)))){
_local1 = -20;
};
if (y <= ((parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[(currentWayPoint + 1)].@bpy - _local1)){
currentWayPoint = (currentWayPoint + 1);
myDir = (parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[currentWayPoint].@bturn;
};
};
};
if ((parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[(currentWayPoint + 1)].@targ == "y"){
if (_local4 == -90){
if (((secondLine) && (!(active)))){
_local1 = 15;
};
if (x >= ((parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[(currentWayPoint + 1)].@bpx - _local1)){
currentWayPoint = (currentWayPoint + 1);
myDir = (parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[currentWayPoint].@bturn;
};
};
if (_local4 == 90){
if (secondLine){
_local1 = -(Math.abs(_local1));
};
if (x <= ((parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[(currentWayPoint + 1)].@bpx - _local1)){
currentWayPoint = (currentWayPoint + 1);
myDir = (parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[currentWayPoint].@bturn;
};
};
};
} else {
if ((parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[(currentWayPoint + 1)].@targ == "y"){
if (_local4 == 0){
if (y >= ((parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[(currentWayPoint + 1)].@py - _local1)){
currentWayPoint = (currentWayPoint + 1);
myDir = (parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[currentWayPoint].@turn;
};
};
if ((((_local4 == -180)) || ((_local4 == 180)))){
if (secondLine){
_local1 = Math.abs(_local1);
};
if (((secondLine) && (!(active)))){
_local1 = -20;
};
if (y <= ((parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[(currentWayPoint + 1)].@py - _local1)){
currentWayPoint = (currentWayPoint + 1);
myDir = (parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[currentWayPoint].@turn;
};
};
};
if ((parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[(currentWayPoint + 1)].@targ == "x"){
if (_local4 == -90){
if (((secondLine) && (!(active)))){
_local1 = 15;
};
if (x >= ((parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[(currentWayPoint + 1)].@px - _local1)){
currentWayPoint = (currentWayPoint + 1);
myDir = (parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[currentWayPoint].@turn;
};
};
if (_local4 == 90){
if (secondLine){
_local1 = -(Math.abs(_local1));
};
if (x <= ((parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[(currentWayPoint + 1)].@px - _local1)){
currentWayPoint = (currentWayPoint + 1);
myDir = (parent.parent as Game).wayXML.Level[((parent.parent as Game).currentlevel - 1)].point[currentWayPoint].@turn;
};
};
};
};
};
if (!(parent.parent as Game).realisticMode){
Obgon();
} else {
moveRealisticMode();
if (!active){
if (doing == dReduceSpeed){
doOnReduceSpeed();
};
if (doing == dStoping){
doOnStoping();
};
if (doing == dDriveOut){
doOnDriveOut();
};
};
};
};
}
public function startSound():void{
chnl = snd.snd[sname].play();
chnl.addEventListener(Event.SOUND_COMPLETE, replaySound);
sndplay = true;
}
public function setParameters(_arg1:Number, _arg2:Number, _arg3:Number):void{
startSpeed = _arg1;
speed = _arg1;
maxTemptation = _arg2;
moneyAward = _arg3;
}
}
}//package main
Section 26
//CVector (main.CVector)
package main {
public class CVector {
public var X:Number;
public var Y:Number;
public function CVector(_arg1:Number=0, _arg2:Number=0){
X = _arg1;
Y = _arg2;
}
public function Sub(_arg1:CVector):void{
X = (X - _arg1.X);
Y = (Y - _arg1.Y);
}
public function InitVec(_arg1:CVector):void{
X = _arg1.X;
Y = _arg1.Y;
}
public function Add(_arg1:CVector):void{
X = (X + _arg1.X);
Y = (Y + _arg1.Y);
}
public function Mul(_arg1:Number):void{
X = (X * _arg1);
Y = (Y * _arg1);
}
public function toString():String{
return ((((("[" + X.toString()) + ", ") + Y.toString()) + "]"));
}
public function Normalize():void{
var _local1:Number;
_local1 = ((X * X) + (Y * Y));
if (_local1 > 0){
_local1 = (1 / Math.sqrt(_local1));
X = (X * _local1);
Y = (Y * _local1);
};
}
public function Rot90():void{
var _local1:Number;
_local1 = X;
X = -(Y);
Y = _local1;
}
public function InitXY(_arg1:Number, _arg2:Number):void{
X = _arg1;
Y = _arg2;
}
public function Equal(_arg1:CVector, _arg2:Number):Boolean{
if ((((Math.abs((_arg1.X - X)) <= _arg2)) && ((Math.abs((_arg1.Y - Y)) <= _arg2)))){
return (true);
};
return (false);
}
public function Len():Number{
return (Math.sqrt(((X * X) + (Y * Y))));
}
public function Len2():Number{
return (((X * X) + (Y * Y)));
}
public static function Sub(_arg1:CVector, _arg2:CVector, _arg3:CVector):void{
_arg1.X = (_arg2.X - _arg3.X);
_arg1.Y = (_arg2.Y - _arg3.Y);
}
public static function Add(_arg1:CVector, _arg2:CVector, _arg3:CVector):void{
_arg1.X = (_arg2.X + _arg3.X);
_arg1.Y = (_arg2.Y + _arg3.Y);
}
public static function GetK(_arg1:CVector, _arg2:CVector):Number{
if (_arg2.X != 0){
return ((_arg1.X / _arg2.X));
};
if (_arg2.Y != 0){
return ((_arg1.Y / _arg2.Y));
};
return (0);
}
public static function Lerp(_arg1:CVector, _arg2:CVector, _arg3:CVector, _arg4:Number):void{
_arg1.X = (((_arg3.X - _arg2.X) * _arg4) + _arg2.X);
_arg1.Y = (((_arg3.Y - _arg2.Y) * _arg4) + _arg2.Y);
}
public static function Dot(_arg1:CVector, _arg2:CVector):Number{
return (((_arg1.X * _arg2.X) + (_arg1.Y * _arg2.Y)));
}
public static function CrossProduct(_arg1:CVector, _arg2:CVector):Number{
return (((_arg1.X * _arg2.Y) - (_arg1.Y * _arg2.X)));
}
}
}//package main
Section 27
//Game (main.Game)
package main {
import flash.events.*;
import flash.display.*;
import fl.transitions.*;
import flash.media.*;
import fl.transitions.easing.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
public dynamic class Game extends Sprite {
const easy = 0.8;
const hard = 1.2;
const unitsParamsFile:String = "xml/units.xml";
const delayTime:int = 2;
const medium = 1;
public var pw:MovieClip;
var unitsParamsXML:XML;
public var traceText:TextField;
var loader:URLLoader;
public var restartButton:SimpleButton;
var tweenSelA:Tween;
var levelsXML:XML;
public var infoWindow:MovieClip;
var track1:Array;
var track3:Array;
var soundsPlaying:Boolean;// = true
var musicPlaying:Boolean;// = true
var tweenSelY:Tween;
var upgradeXML:XML;
var track2:Array;
var descOpened:Boolean;// = false
var so:SharedObject;
public var adGames:SimpleButton;
var lUnits:Sprite;
var mc_01_:MovieClip;
var track4:Array;
var loader1:URLLoader;
var lSfx:Sprite;
var tweenSelX:Tween;
var tweenX1:Tween;
var GameOverWnd:TGameOver;
var DUMMY:Boolean;// = true
var tik:Number;// = 0
var currentUpgUnitFrame:int;
var wayXML:XML;
public var tasty:SimpleButton;
public var volBut:MovieClip;
var gameMode:Number;
public var nosfxBut:SimpleButton;
var aHole:Array;
public var fon:MovieClip;
var money:Number;// = 500
var fary_mask:MovieClip;
public var dollar:MovieClip;
var FR:Number;
var gameFailed:Boolean;// = true
public var aglogo:MovieClip;
var winwindow:MovieClip;
public var alpha_masks:MovieClip;
var MouseOnSidewalk:Boolean;// = false
var mouseOnUnit:Boolean;// = false
var realisticMode:Boolean;// = true
public var tasty_:MovieClip;
var currentUpgUnit:Object;
var level_loader:URLLoader;
public var soundButton:SimpleButton;
var upgwin_:MovieClip;
var upgwin:MovieClip;
public var pw_:MovieClip;
var waveStarted:Boolean;// = false
var lHole:Sprite;
var svolume:Number;
var tweenY:Tween;
public var gamepanel:HudPanel;
var tweenX:Tween;
var selectionBut:MovieClip;
var all_units:Array;
public var nomusicButton:SimpleButton;
var snd:Sounds;
var tutorial:MovieClip;
var all_clients:Array;
var way_loader:URLLoader;
var level_pause:MovieClip;
var delay:Number;// = 0
var clientsParamsXML:XML;
var damageroadfreezpercent:Number;
var firstTime:Boolean;// = false
var lusr:Sprite;
var WantSell:Boolean;
var lLights:Sprite;
var currentlevel:int;
var mapnumber:int;// = 1
var lClients1:Sprite;
var lClients2:Sprite;
public var musicButton:SimpleButton;
public var sfxBut:SimpleButton;
var usr:MovieClip;
var respect:Number;// = 0
var underMouseUnit:Unit;
var tutorskip:MovieClip;
var PAUSE:Boolean;// = false
var gameOver:Boolean;// = false
var loader_upgrade:URLLoader;
var currentwave:int;
var aExp:Array;
public function Game(){
var _local1:int;
var _local2:int;
delay = 0;
money = 500;
respect = 0;
tik = 0;
MouseOnSidewalk = false;
waveStarted = false;
DUMMY = true;
mouseOnUnit = false;
musicPlaying = true;
soundsPlaying = true;
PAUSE = false;
descOpened = false;
realisticMode = true;
firstTime = false;
mapnumber = 1;
gameFailed = true;
gameOver = false;
super();
_local1 = 2;
language.Language = _local1;
tasty.addEventListener(MouseEvent.MOUSE_DOWN, goTasty);
aglogo.addEventListener(MouseEvent.MOUSE_DOWN, goAdGames);
aglogo.buttonMode = true;
gameFailed = true;
if (GameOverWnd){
removeChild(GameOverWnd);
};
fary_mask = new fary_mask_mc();
fary_mask.mouseEnabled = false;
addChild(fary_mask);
setFon(1);
aHole = new Array();
aExp = new Array();
all_units = new Array();
all_clients = new Array();
track1 = new Array();
track2 = new Array();
track3 = new Array();
track4 = new Array();
readLevels();
readClientsParams();
readUnitsParams(unitsParamsFile);
readUpgrades();
readWayPoints();
FR = stage.frameRate;
fon.addEventListener(MouseEvent.MOUSE_DOWN, gameMouseDown);
musicButton.addEventListener(MouseEvent.MOUSE_DOWN, musicButtonClicked);
nomusicButton.addEventListener(MouseEvent.MOUSE_DOWN, nomusicButtonClicked);
soundButton.addEventListener(MouseEvent.MOUSE_DOWN, soundsButtonClicked);
restartButton.addEventListener(MouseEvent.MOUSE_DOWN, restartWave);
sfxBut.addEventListener(MouseEvent.MOUSE_DOWN, soundsButtonClicked);
nosfxBut.addEventListener(MouseEvent.MOUSE_DOWN, nosoundsButtonClicked);
pw.pb.addEventListener(MouseEvent.MOUSE_DOWN, contGame);
volBut.y = 650;
svolume = 1;
currentUpgUnit = new Object();
(dollar as MovieClip).visible = false;
snd = new Sounds();
snd.init(600, 500);
lClients1 = new Sprite();
lClients2 = new Sprite();
addChild(lClients1);
addChild(lClients2);
lLights = new Sprite();
lLights.mask = fary_mask;
addChild(lLights);
lUnits = new Sprite();
addChild(lUnits);
lSfx = new Sprite();
addChild(lSfx);
lHole = new Sprite();
addChild(lHole);
placeLayers();
selectionBut = new selection();
selectionBut.x = -100;
selectionBut.y = -100;
addChild(selectionBut);
upgwin = new upgrade_window_new();
upgwin.x = -100;
upgwin.y = -100;
upgwin.sel_but.addEventListener(MouseEvent.MOUSE_DOWN, sellButDown);
upgwin.upg_but.addEventListener(MouseEvent.MOUSE_DOWN, upgradeUnit);
upgwin.upg_but_dis.visible = false;
upgwin.ranktext.selectable = false;
upgwin_ = upgwin;
addChild(upgwin);
level_pause = new level_pause_mc();
level_pause.gotoAndStop(1);
level_pause.visible = false;
level_pause.x = 300;
level_pause.y = 300;
level_pause.addEventListener(MouseEvent.MOUSE_DOWN, levelpauseclicked);
level_pause.but1.mouseEnabled = false;
addChild(level_pause);
_local2 = 1;
while (_local2 < currentlevel) {
gamepanel.progressbar[("l" + _local2)].gotoAndStop(13);
_local2++;
};
gamepanel.progressbar[("l" + currentlevel)].gotoAndStop(2);
selectionBut.mouseEnabled = false;
PAUSE = false;
gameFailed = false;
gameOver = false;
if (currentlevel == 1){
createTutor();
};
mc_01_ = new mc_01();
mc_01_.visible = false;
mc_01_.x = 296;
mc_01_.y = 542.5;
addChild(mc_01_);
setChildIndex(tasty, (numChildren - 1));
addEventListener(Event.ENTER_FRAME, Update);
}
public function nomusicButtonClicked(_arg1:MouseEvent):void{
musicPlaying = true;
gamepanel.sound.Play2DSnd("music1");
musicButton.x = 12;
nomusicButton.x = -20;
}
public function replayTask():void{
if (tutorial.task3){
tutorial.task3.gotoAndPlay(1);
} else {
trace("no task");
};
}
public function showUnitCollision():void{
var _local1:Unit;
var _local2:int;
_local2 = all_units.length;
if (_local2 > 0){
for each (_local1 in all_units) {
_local1 = all_units[(_local2 - 1)];
_local1.units.uc.alpha = 1;
_local2--;
};
};
}
public function restartAfterGameOver(_arg1:MouseEvent):void{
gameOver = false;
gameFailed = false;
restartWave(_arg1);
if (musicPlaying){
gamepanel.sound.Play2DSnd("music1");
};
PAUSE = false;
currentwave = 1;
gamepanel.waveprogress.gotoAndStop((currentwave + 1));
addEventListener(Event.ENTER_FRAME, Update);
}
public function waveDone():void{
if (levelsXML.Level[(currentlevel - 1)].@wavecount > currentwave){
currentwave++;
gamepanel.waveprogress.gotoAndStop((currentwave + 1));
gamepanel.progressbar[("l" + currentlevel)].gotoAndStop((currentwave + 1));
} else {
currentwave = 1;
levelDone();
};
waveStarted = false;
setInitialChars(1, money, respect);
gamepanel.checkUnitPrices(money);
(gamepanel as HudPanel).setText(levelsXML.Level[(currentlevel - 1)].wave[(currentwave - 1)].@description);
gamepanel.noWavwBut.visible = false;
}
public function removeCarSounds():void{
var _local1:int;
_local1 = all_clients.length;
while (_local1 > 0) {
all_clients[(_local1 - 1)].removeSound();
_local1--;
};
}
public function contGame(_arg1:MouseEvent):void{
pauseGame();
}
public function saveGameInfoToBrowser():void{
so = SharedObject.getLocal("favelatd");
so.data.currentlevel = currentlevel;
so.flush();
}
public function goAdGames(_arg1:MouseEvent):void{
navigateToURL(new URLRequest("http://www.armorgames.com/"), "_blank");
}
private function readUnitsParams(_arg1:String):void{
var _local2:int;
unitsParamsXML = new XML();
unitsParamsXML.ignoreWhitespace = true;
unitsParamsXML = <Units>
<Unit type="1" name="black">
<params price="10" upgradeprice="50" sellprice="5" temptation="22" shootspeed="1.3" shootradius="97" splashradius="20" splashdamage="10" crit="30" critinc="50" freezevalue="10" freezetime="3" fastworkpercent="40" shootradius2="200" desc="Thug - cheap junky with a pistol "/>
<temptation>
<client type="1" damage="23"/>
<client type="2" damage="15"/>
<client type="3" damage="15"/>
<client type="4" damage="15"/>
<client type="5" damage="15"/>
<client type="6" damage="15"/>
<client type="7" damage="15"/>
<client type="8" damage="20"/>
<client type="9" damage="20"/>
<client type="10" damage="25"/>
<client type="11" damage="15"/>
<client type="12" damage="20"/>
<client type="13" damage="15"/>
<client type="14" damage="25"/>
<client type="17" damage="15"/>
<client type="15" damage="15"/>
<client type="16" damage="23"/>
</temptation>
<upgrades>
<upgrade price="8" temptation="38" shootspeed="1.9" shootradius="105" splashradius="20" splashdamage="10" crit="30" critinc="50" freezevalue="10" freezetime="3" sellprice="15"/>
<upgrade price="14" temptation="56" shootspeed="2.1" shootradius="107" splashradius="20" splashdamage="10" crit="30" critinc="50" freezevalue="10" freezetime="3" sellprice="23"/>
<upgrade price="30" temptation="74" shootspeed="2.2" shootradius="109" splashradius="20" splashdamage="10" crit="30" critinc="50" freezevalue="10" freezetime="3" sellprice="39"/>
<upgrade price="62" temptation="92" shootspeed="2.3" shootradius="110" splashradius="20" splashdamage="10" crit="30" critinc="50" freezevalue="10" freezetime="3" sellprice="71"/>
</upgrades>
</Unit>
<Unit type="2" name="azian">
<params price="30" upgradeprice="90" sellprice="15" temptation="20" shootspeed="4" shootradius="105" splashradius="20" splashdamage="10" crit="30" critinc="50" freezevalue="5" freezetime="3" fastworkpercent="40" shootradius2="200" desc="Super Thug - machine-gun armed thug "/>
<temptation>
<client type="1" damage="25"/>
<client type="2" damage="25"/>
<client type="3" damage="20"/>
<client type="4" damage="15"/>
<client type="5" damage="25"/>
<client type="6" damage="25"/>
<client type="7" damage="15"/>
<client type="8" damage="25"/>
<client type="9" damage="25"/>
<client type="10" damage="25"/>
<client type="11" damage="18"/>
<client type="12" damage="25"/>
<client type="13" damage="25"/>
<client type="14" damage="25"/>
<client type="17" damage="15"/>
<client type="15" damage="20"/>
<client type="16" damage="25"/>
</temptation>
<upgrades>
<upgrade price="28" temptation="35" shootspeed="6.3" shootradius="110" splashradius="20" splashdamage="10" crit="30" critinc="50" freezevalue="10" freezetime="3" sellprice="31"/>
<upgrade price="40" temptation="44" shootspeed="7.1" shootradius="115" splashradius="20" splashdamage="10" crit="30" critinc="50" freezevalue="10" freezetime="3" sellprice="41"/>
<upgrade price="75" temptation="62" shootspeed="8" shootradius="125" splashradius="20" splashdamage="10" crit="30" critinc="50" freezevalue="10" freezetime="3" sellprice="81"/>
<upgrade price="100" temptation="71" shootspeed="9" shootradius="140" splashradius="20" splashdamage="10" crit="30" critinc="50" freezevalue="10" freezetime="3" sellprice="160"/>
</upgrades>
</Unit>
<Unit type="3" name="white">
<params price="75" upgradeprice="140" sellprice="30" temptation="130" shootspeed="0.95" shootradius="130" splashradius="30" splashdamage="25" crit="30" critinc="50" freezevalue="15" freezetime="2" fastworkpercent="40" shootradius2="200" desc="Bomber - throws grenades filled with fury "/>
<temptation>
<client type="1" damage="25"/>
<client type="2" damage="25"/>
<client type="3" damage="25"/>
<client type="4" damage="25"/>
<client type="5" damage="25"/>
<client type="6" damage="25"/>
<client type="7" damage="25"/>
<client type="8" damage="25"/>
<client type="9" damage="25"/>
<client type="10" damage="25"/>
<client type="11" damage="25"/>
<client type="12" damage="25"/>
<client type="13" damage="25"/>
<client type="14" damage="25"/>
<client type="17" damage="25"/>
<client type="15" damage="20"/>
<client type="16" damage="25"/>
</temptation>
<upgrades>
<upgrade price="50" temptation="160" shootspeed="1" shootradius="140" splashradius="40" splashdamage="30" crit="30" critinc="50" freezevalue="10" freezetime="3" sellprice="61"/>
<upgrade price="80" temptation="170" shootspeed="1.75" shootradius="145" splashradius="50" splashdamage="40" crit="30" critinc="50" freezevalue="10" freezetime="3" sellprice="80"/>
<upgrade price="160" temptation="180" shootspeed="2" shootradius="150" splashradius="60" splashdamage="50" crit="30" critinc="50" freezevalue="10" freezetime="3" sellprice="220"/>
<upgrade price="200" temptation="190" shootspeed="2" shootradius="155" splashradius="70" splashdamage="60" crit="30" critinc="50" freezevalue="10" freezetime="3" sellprice="260"/>
</upgrades>
</Unit>
<Unit type="4" name="man">
<params price="120" upgradeprice="140" sellprice="70" temptation="190" shootspeed="1.1" shootradius="125" splashradius="20" splashdamage="100" crit="30" critinc="50" freezevalue="12" freezetime="2" fastworkpercent="40" shootradius2="200" desc="Warhead - serious damage provider with RPG"/>
<temptation>
<client type="1" damage="25"/>
<client type="2" damage="25"/>
<client type="3" damage="25"/>
<client type="4" damage="25"/>
<client type="5" damage="25"/>
<client type="6" damage="25"/>
<client type="7" damage="25"/>
<client type="8" damage="25"/>
<client type="9" damage="25"/>
<client type="10" damage="25"/>
<client type="11" damage="25"/>
<client type="12" damage="25"/>
<client type="13" damage="25"/>
<client type="14" damage="25"/>
<client type="17" damage="25"/>
<client type="15" damage="25"/>
<client type="16" damage="25"/>
</temptation>
<upgrades>
<upgrade price="140" temptation="200" shootspeed="1.3" shootradius="130" splashradius="20" splashdamage="125" crit="30" critinc="50" freezevalue="10" freezetime="3" sellprice="140"/>
<upgrade price="165" temptation="210" shootspeed="1.5" shootradius="140" splashradius="30" splashdamage="130" crit="30" critinc="50" freezevalue="10" freezetime="3" sellprice="225"/>
<upgrade price="190" temptation="220" shootspeed="1.7" shootradius="150" splashradius="40" splashdamage="140" crit="30" critinc="50" freezevalue="10" freezetime="3" sellprice="300"/>
<upgrade price="220" temptation="230" shootspeed="1.9" shootradius="160" splashradius="50" splashdamage="150" crit="30" critinc="50" freezevalue="10" freezetime="3" sellprice="470"/>
</upgrades>
</Unit>
<Unit type="5" name="">
<params price="20" upgradeprice="70" sellprice="30" temptation="175" shootspeed="0.5" shootradius="80" splashradius="20" splashdamage="10" crit="30" critinc="50" freezevalue="5" freezetime="2" fastworkpercent="40" shootradius2="200" damageroadfreezpercent="50" desc="TNT - destroys road to slow down enemies "/>
<temptation>
<client type="1" damage="20"/>
<client type="2" damage="20"/>
<client type="3" damage="20"/>
<client type="4" damage="20"/>
<client type="5" damage="20"/>
<client type="6" damage="20"/>
<client type="7" damage="20"/>
<client type="8" damage="25"/>
<client type="9" damage="20"/>
<client type="10" damage="20"/>
<client type="11" damage="25"/>
<client type="12" damage="25"/>
<client type="13" damage="25"/>
<client type="14" damage="25"/>
<client type="15" damage="15"/>
<client type="16" damage="15"/>
</temptation>
<upgrades>
<upgrade price="50" temptation="210" shootspeed="4" shootradius="150" splashradius="20" splashdamage="10" crit="30" critinc="50" freezevalue="5" freezetime="3" sellprice="9"/>
<upgrade price="100" temptation="230" shootspeed="1.2" shootradius="180" splashradius="20" splashdamage="10" crit="30" critinc="50" freezevalue="5" freezetime="3" sellprice="9"/>
<upgrade price="150" temptation="400" shootspeed="1.3" shootradius="200" splashradius="20" splashdamage="10" crit="30" critinc="50" freezevalue="5" freezetime="3" sellprice="9"/>
<upgrade price="200" temptation="500" shootspeed="1.4" shootradius="250" splashradius="20" splashdamage="10" crit="30" critinc="50" freezevalue="5" freezetime="3" sellprice="9"/>
</upgrades>
</Unit>
</Units>
;
_local2 = 1;
while (_local2 < 6) {
gamepanel[("ui" + _local2)].unit_drag.sr.width = (unitsParamsXML.Unit[(_local2 - 1)].params.@shootradius * 2);
gamepanel[("ui" + _local2)].unit_drag.sr.height = gamepanel[("ui" + _local2)].unit_drag.sr.width;
_local2++;
};
damageroadfreezpercent = unitsParamsXML.Unit[4].params.@damageroadfreezpercent;
gameFailed = false;
}
public function nosoundsButtonClicked(_arg1:MouseEvent):void{
soundsPlaying = !(soundsPlaying);
nosfxBut.x = -40;
sfxBut.x = 8.8;
startCarSounds();
}
public function nextLevel():void{
removeUnits();
money = levelsXML.Level[(currentlevel - 1)].@startmoney;
respect = levelsXML.Level[(currentlevel - 1)].@startrespect;
mapnumber = levelsXML.Level[(currentlevel - 1)].@mapnumber;
loadTracks();
gamepanel.writeMoney(money);
gamepanel.writeRespect(respect);
(gamepanel as HudPanel).checkUnitPrices(money);
removeHoles();
removeSpecialEffects();
gamepanel.waveprogress.gotoAndStop(1);
setFon(mapnumber);
gamepanel.progressbar[("l" + currentlevel)].gotoAndStop(2);
if (musicPlaying){
gamepanel.sound.stopWinMusic();
gamepanel.sound.Play2DSnd("music1");
};
}
private function unitsParamsFileLoaded(_arg1:Event):void{
var _local2:int;
if (loader.data){
unitsParamsXML = new XML();
unitsParamsXML.ignoreWhitespace = true;
unitsParamsXML = XML(loader.data);
_local2 = 1;
while (_local2 < 6) {
gamepanel[("ui" + _local2)].unit_drag.sr.width = (unitsParamsXML.Unit[(_local2 - 1)].params.@shootradius * 2);
gamepanel[("ui" + _local2)].unit_drag.sr.height = gamepanel[("ui" + _local2)].unit_drag.sr.width;
_local2++;
};
damageroadfreezpercent = unitsParamsXML.Unit[4].params.@damageroadfreezpercent;
gameFailed = false;
} else {
trace("units file not loaded!");
};
}
public function volButDown(_arg1:MouseEvent):void{
var _local2:int;
if (svolume == 0){
return;
};
_local2 = Math.floor(((30 - (590 - mouseX)) / 3));
svolume = (Math.floor(((30 - (590 - mouseX)) / 3)) / 10);
volBut.gotoAndStop(_local2);
(gamepanel as HudPanel).setMusicVolume(svolume);
}
public function setInitialChars(_arg1:Number, _arg2:int, _arg3:int):void{
gameMode = _arg1;
money = _arg2;
respect = _arg3;
gamepanel.writeRespect(respect);
gamepanel.writeMoney(money);
}
public function stopAllUnits():void{
var _local1:int;
var _local2:MovieClip;
_local1 = all_units.length;
if (_local1 > 0){
for each (_local2 in all_units) {
_local2 = all_units[(_local1 - 1)];
_local2.stop();
trace("stop unit");
_local1--;
};
};
}
public function startWave():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Client;
var _local7:int;
var _local8:int;
var _local9:int;
var _local10:MovieClip;
var _local11:int;
if (!waveStarted){
_local5 = levelsXML.Level[(currentlevel - 1)].wave[(currentwave - 1)].@clientcount;
_local9 = 0;
while (_local9 < _local5) {
_local10 = new fary_mc();
_local7 = levelsXML.Level[(currentlevel - 1)].wave[(currentwave - 1)].client[_local9].@clienttype;
_local8 = levelsXML.Level[(currentlevel - 1)].wave[(currentwave - 1)].client[_local9].@cartype;
_local6 = new Client(_local7, _local8);
_local11 = levelsXML.Level[(currentlevel - 1)].wave[(currentwave - 1)].client[_local9].@back;
if (!realisticMode){
_local11 = 0;
};
_local6.setParameters(clientsParamsXML.Client[(_local7 - 1)].params.@speed, clientsParamsXML.Client[(_local7 - 1)].params.@maxtemptation, clientsParamsXML.Client[(_local7 - 1)].params.@moneyaward);
_local6.currentWayPoint = 0;
_local10.scaleX = 1.2;
_local10.scaleY = 1.2;
_local6.fary = _local10;
lClients1.addChild(_local6);
lLights.addChild(_local10);
all_clients.push(_local6);
if (_local11 == 1){
_local6.back = true;
_local6.tracks = track3;
_local6.curTrack = 3;
if (track3[0].x == track3[1].x){
_local6.drop(track3[0].x, (track3[0].y - (_local9 * 80)), track3[1].x, track3[1].y);
};
if (track3[0].y == track3[1].y){
_local6.drop((track3[0].x + (_local9 * 80)), track3[0].y, track3[1].x, track3[1].y);
};
_local6.car.rotation = 90;
} else {
_local6.back = false;
_local6.tracks = track1;
_local6.curTrack = 1;
if (track1[0].x == track1[1].x){
_local6.drop(track1[0].x, (track1[0].y - (_local9 * 80)), track1[1].x, track1[1].y);
};
if (track1[0].y == track1[1].y){
_local6.drop((track1[0].x - (_local9 * 80)), track1[0].y, track1[1].x, track1[1].y);
};
if (_local6.y > 0){
_local6.car.rotation = -90;
};
};
_local6.initVectors();
_local9++;
};
waveStarted = true;
} else {
setTargetsToUndefined();
removeClients();
waveDone();
startWave();
};
}
public function enablePromoteBut():void{
upgwin.upg_but_dis.visible = false;
}
public function readLevels():void{
levelsXML = new XML();
levelsXML.ignoreWhitespace = true;
levelsXML = <Levels>
<Level num="1" name="LVEL 1" wavecount="12" startmoney="25" startrespect="10" mapnumber="1">
<wave clientcount="3" description="wave 1 description wave 1 description wave 1 description wave 1 description">
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
</wave>
<wave clientcount="6" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="8" cartype="1" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="8" cartype="4" back="0"/>
</wave>
<wave clientcount="7" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="1" cartype="4" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="8" cartype="1" back="0"/>
<client clienttype="8" cartype="2" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="8" cartype="1" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
</wave>
<wave clientcount="4" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
</wave>
<wave clientcount="6" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="8" cartype="5" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
</wave>
<wave clientcount="5" description="wave 4 description">
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="8" cartype="4" back="0"/>
<client clienttype="12" cartype="5" back="0"/>
<client clienttype="8" cartype="5" back="0"/>
</wave>
<wave clientcount="5" description="wave 4 description">
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="6" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
</wave>
<wave clientcount="5" description="wave 4 description">
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="3" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
</wave>
<wave clientcount="5" description="wave 4 description">
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
</wave>
<wave clientcount="4" description="wave 4 description">
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
</wave>
<wave clientcount="5" description="wave 4 description">
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
</wave>
<wave clientcount="5" description="wave 4 description">
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
</wave>
</Level>
<Level num="1" name="LVEL 1" wavecount="12" startmoney="20" startrespect="10" mapnumber="3">
<wave clientcount="3" description="wave 1 description wave 1 description wave 1 description wave 1 description">
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="16" cartype="3" back="0"/>
</wave>
<wave clientcount="6" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="16" cartype="3" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="8" cartype="1" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
</wave>
<wave clientcount="7" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="8" cartype="1" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="2" cartype="2" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
</wave>
<wave clientcount="4" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
</wave>
<wave clientcount="6" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
</wave>
<wave clientcount="6" description="wave 4 description">
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="4" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="4" back="0"/>
<client clienttype="3" cartype="4" back="0"/>
</wave>
<wave clientcount="8" description="wave 4 description">
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
</wave>
<wave clientcount="8" description="wave 4 description">
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
</wave>
<wave clientcount="7" description="wave 4 description">
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
</wave>
<wave clientcount="6" description="wave 4 description">
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
</wave>
<wave clientcount="9" description="wave 4 description">
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
</wave>
<wave clientcount="9" description="wave 4 description">
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
</wave>
</Level>
<Level num="2" name="LVEL 2" wavecount="12" startmoney="20" startrespect="10" mapnumber="2">
<wave clientcount="4" description="wave 1 description wave 1 description wave 1 description wave 1 description">
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="16" cartype="3" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
</wave>
<wave clientcount="6" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="16" cartype="3" back="0"/>
<client clienttype="8" cartype="2" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
</wave>
<wave clientcount="7" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="2" cartype="4" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
</wave>
<wave clientcount="5" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
</wave>
<wave clientcount="6" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
</wave>
<wave clientcount="6" description="wave 4 description">
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
</wave>
<wave clientcount="8" description="wave 4 description">
<client clienttype="3" cartype="5" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
</wave>
<wave clientcount="8" description="wave 4 description">
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
</wave>
<wave clientcount="7" description="wave 4 description">
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
</wave>
<wave clientcount="9" description="wave 4 description">
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
</wave>
<wave clientcount="9" description="wave 4 description">
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
</wave>
<wave clientcount="11" description="wave 4 description">
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
</wave>
</Level>
<Level num="4" name="LVEL 2" wavecount="12" startmoney="35" startrespect="10" mapnumber="6">
<wave clientcount="3" description="wave 1 description wave 1 description wave 1 description wave 1 description">
<client clienttype="16" cartype="3" back="0"/>
<client clienttype="16" cartype="3" back="0"/>
<client clienttype="16" cartype="3" back="0"/>
</wave>
<wave clientcount="7" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="16" cartype="3" back="1"/>
<client clienttype="8" cartype="2" back="1"/>
<client clienttype="8" cartype="1" back="1"/>
<client clienttype="8" cartype="3" back="1"/>
<client clienttype="8" cartype="2" back="1"/>
<client clienttype="8" cartype="1" back="1"/>
<client clienttype="12" cartype="1" back="1"/>
</wave>
<wave clientcount="7" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="2" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="12" cartype="2" back="0"/>
<client clienttype="12" cartype="2" back="0"/>
</wave>
<wave clientcount="5" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="2" back="1"/>
<client clienttype="12" cartype="1" back="1"/>
<client clienttype="12" cartype="2" back="1"/>
<client clienttype="12" cartype="2" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
</wave>
<wave clientcount="6" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="2" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="12" cartype="2" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="12" cartype="2" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
</wave>
<wave clientcount="3" description="wave 4 description">
<client clienttype="15" cartype="3" back="0"/>
<client clienttype="15" cartype="3" back="0"/>
<client clienttype="15" cartype="3" back="0"/>
</wave>
<wave clientcount="6" description="wave 4 description">
<client clienttype="3" cartype="2" back="1"/>
<client clienttype="3" cartype="1" back="1"/>
<client clienttype="12" cartype="2" back="1"/>
<client clienttype="3" cartype="2" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
<client clienttype="12" cartype="2" back="1"/>
</wave>
<wave clientcount="8" description="wave 4 description">
<client clienttype="3" cartype="2" back="0"/>
<client clienttype="4" cartype="1" back="0"/>
<client clienttype="3" cartype="2" back="0"/>
<client clienttype="3" cartype="2" back="0"/>
<client clienttype="4" cartype="2" back="0"/>
<client clienttype="3" cartype="2" back="0"/>
<client clienttype="3" cartype="2" back="0"/>
<client clienttype="3" cartype="2" back="0"/>
</wave>
<wave clientcount="5" description="wave 4 description">
<client clienttype="15" cartype="3" back="0"/>
<client clienttype="15" cartype="3" back="0"/>
<client clienttype="15" cartype="3" back="0"/>
<client clienttype="15" cartype="3" back="0"/>
<client clienttype="15" cartype="3" back="0"/>
<client clienttype="15" cartype="3" back="0"/>
</wave>
<wave clientcount="8" description="wave 4 description">
<client clienttype="3" cartype="2" back="1"/>
<client clienttype="4" cartype="1" back="1"/>
<client clienttype="4" cartype="2" back="1"/>
<client clienttype="4" cartype="2" back="1"/>
<client clienttype="4" cartype="2" back="1"/>
<client clienttype="3" cartype="2" back="1"/>
<client clienttype="3" cartype="2" back="1"/>
<client clienttype="3" cartype="2" back="1"/>
</wave>
<wave clientcount="7" description="wave 4 description">
<client clienttype="4" cartype="2" back="0"/>
<client clienttype="4" cartype="1" back="0"/>
<client clienttype="4" cartype="2" back="0"/>
<client clienttype="4" cartype="2" back="0"/>
<client clienttype="7" cartype="13" back="0"/>
<client clienttype="4" cartype="2" back="0"/>
<client clienttype="4" cartype="2" back="0"/>
</wave>
<wave clientcount="5" description="wave 4 description">
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
</wave>
</Level>
<Level num="3" name="LVEL 4" wavecount="12" startmoney="30" startrespect="10" mapnumber="4">
<wave clientcount="4" description="wave 1 description wave 1 description wave 1 description wave 1 description">
<client clienttype="16" cartype="3" back="0"/>
<client clienttype="16" cartype="3" back="0"/>
<client clienttype="16" cartype="3" back="0"/>
<client clienttype="16" cartype="3" back="0"/>
</wave>
<wave clientcount="6" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="8" cartype="1" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
</wave>
<wave clientcount="7" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="2" cartype="2" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
</wave>
<wave clientcount="7" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="3" cartype="4" back="0"/>
<client clienttype="3" cartype="4" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
</wave>
<wave clientcount="6" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="3" cartype="4" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
</wave>
<wave clientcount="6" description="wave 4 description">
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
</wave>
<wave clientcount="8" description="wave 4 description">
<client clienttype="3" cartype="5" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
</wave>
<wave clientcount="8" description="wave 4 description">
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="7" cartype="13" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
</wave>
<wave clientcount="7" description="wave 4 description">
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="7" cartype="13" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
</wave>
<wave clientcount="9" description="wave 4 description">
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
</wave>
<wave clientcount="9" description="wave 4 description">
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
</wave>
<wave clientcount="9" description="wave 4 description">
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
</wave>
</Level>
<Level num="5" name="LVEL 5" wavecount="12" startmoney="30" startrespect="10" mapnumber="1">
<wave clientcount="5" description="wave 1 description wave 1 description wave 1 description wave 1 description">
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="16" cartype="3" back="0"/>
</wave>
<wave clientcount="6" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="1" cartype="2" back="1"/>
<client clienttype="1" cartype="2" back="1"/>
<client clienttype="1" cartype="1" back="1"/>
<client clienttype="16" cartype="3" back="1"/>
<client clienttype="2" cartype="4" back="1"/>
<client clienttype="12" cartype="4" back="1"/>
</wave>
<wave clientcount="7" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="2" cartype="2" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="2" cartype="2" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="1" cartype="1" back="0"/>
</wave>
<wave clientcount="5" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="3" cartype="4" back="0"/>
<client clienttype="2" cartype="4" back="0"/>
<client clienttype="3" cartype="2" back="0"/>
<client clienttype="3" cartype="2" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
</wave>
<wave clientcount="6" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="3" cartype="4" back="0"/>
<client clienttype="2" cartype="4" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
</wave>
<wave clientcount="6" description="wave 4 description">
<client clienttype="3" cartype="5" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
<client clienttype="4" cartype="5" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
<client clienttype="4" cartype="5" back="1"/>
<client clienttype="4" cartype="5" back="1"/>
</wave>
<wave clientcount="8" description="wave 4 description">
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="5" back="0"/>
</wave>
<wave clientcount="8" description="wave 4 description">
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
</wave>
<wave clientcount="7" description="wave 4 description">
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
</wave>
<wave clientcount="4" description="wave 4 description">
<client clienttype="6" cartype="3" back="0"/>
<client clienttype="6" cartype="3" back="0"/>
<client clienttype="6" cartype="3" back="0"/>
<client clienttype="6" cartype="3" back="0"/>
</wave>
<wave clientcount="8" description="wave 4 description">
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
</wave>
<wave clientcount="11" description="wave 4 description">
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="7" cartype="13" back="0"/>
<client clienttype="7" cartype="13" back="0"/>
</wave>
</Level>
<Level num="6" name="LVEL 6" wavecount="12" startmoney="30" startrespect="10" mapnumber="3">
<wave clientcount="5" description="wave 1 description wave 1 description wave 1 description wave 1 description">
<client clienttype="16" cartype="3" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="16" cartype="3" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
</wave>
<wave clientcount="6" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="1" cartype="2" back="1"/>
<client clienttype="16" cartype="3" back="1"/>
<client clienttype="16" cartype="3" back="1"/>
<client clienttype="1" cartype="2" back="1"/>
<client clienttype="1" cartype="1" back="1"/>
<client clienttype="12" cartype="4" back="1"/>
</wave>
<wave clientcount="7" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="16" cartype="4" back="0"/>
<client clienttype="16" cartype="4" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
</wave>
<wave clientcount="4" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="4" back="1"/>
<client clienttype="12" cartype="4" back="1"/>
<client clienttype="12" cartype="4" back="1"/>
<client clienttype="12" cartype="4" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
</wave>
<wave clientcount="6" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
</wave>
<wave clientcount="6" description="wave 4 description">
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
</wave>
<wave clientcount="8" description="wave 4 description">
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
</wave>
<wave clientcount="8" description="wave 4 description">
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="5" cartype="7" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="5" cartype="7" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
</wave>
<wave clientcount="7" description="wave 4 description">
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="7" cartype="13" back="0"/>
<client clienttype="7" cartype="13" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="4" cartype="7" back="0"/>
</wave>
<wave clientcount="10" description="wave 4 description">
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
</wave>
<wave clientcount="11" description="wave 4 description">
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
</wave>
<wave clientcount="10" description="wave 4 description">
<client clienttype="7" cartype="3" back="0"/>
<client clienttype="7" cartype="3" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="7" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="11" cartype="5" back="0"/>
<client clienttype="11" cartype="5" back="0"/>
<client clienttype="11" cartype="5" back="0"/>
</wave>
</Level>
<Level num="8" name="LVEL 8" wavecount="12" startmoney="42" startrespect="10" mapnumber="2">
<wave clientcount="5" description="wave 1 description wave 1 description wave 1 description wave 1 description">
<client clienttype="1" cartype="1" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="16" cartype="3" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="12" cartype="3" back="0"/>
</wave>
<wave clientcount="6" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="1" cartype="2" back="1"/>
<client clienttype="2" cartype="4" back="1"/>
<client clienttype="2" cartype="4" back="1"/>
<client clienttype="2" cartype="2" back="1"/>
<client clienttype="12" cartype="4" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
</wave>
<wave clientcount="7" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="2" cartype="4" back="0"/>
<client clienttype="2" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
</wave>
<wave clientcount="4" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
</wave>
<wave clientcount="6" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="5" cartype="7" back="0"/>
<client clienttype="5" cartype="7" back="0"/>
<client clienttype="5" cartype="7" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
</wave>
<wave clientcount="6" description="wave 4 description">
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="5" cartype="7" back="1"/>
<client clienttype="5" cartype="7" back="1"/>
<client clienttype="5" cartype="7" back="1"/>
<client clienttype="5" cartype="7" back="1"/>
<client clienttype="5" cartype="7" back="1"/>
</wave>
<wave clientcount="8" description="wave 4 description">
<client clienttype="7" cartype="13" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="5" cartype="7" back="0"/>
</wave>
<wave clientcount="8" description="wave 4 description">
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
</wave>
<wave clientcount="7" description="wave 4 description">
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="7" cartype="13" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="5" cartype="7" back="0"/>
</wave>
<wave clientcount="10" description="wave 4 description">
<client clienttype="11" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="17" cartype="13" back="1"/>
<client clienttype="11" cartype="13" back="1"/>
<client clienttype="11" cartype="13" back="1"/>
</wave>
<wave clientcount="15" description="wave 4 description">
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
</wave>
<wave clientcount="10" description="wave 4 description">
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="17" cartype="13" back="0"/>
<client clienttype="7" cartype="5" back="0"/>
<client clienttype="7" cartype="5" back="0"/>
<client clienttype="7" cartype="5" back="0"/>
<client clienttype="7" cartype="5" back="0"/>
<client clienttype="7" cartype="5" back="0"/>
<client clienttype="7" cartype="5" back="0"/>
</wave>
</Level>
<Level num="9" name="LVEL 9" wavecount="12" startmoney="45" startrespect="8" mapnumber="6">
<wave clientcount="4" description="wave 1 description wave 1 description wave 1 description wave 1 description">
<client clienttype="16" cartype="3" back="0"/>
<client clienttype="16" cartype="3" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
<client clienttype="1" cartype="2" back="0"/>
</wave>
<wave clientcount="6" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="1" cartype="2" back="1"/>
<client clienttype="12" cartype="4" back="1"/>
<client clienttype="12" cartype="4" back="1"/>
<client clienttype="2" cartype="2" back="1"/>
<client clienttype="1" cartype="1" back="1"/>
<client clienttype="1" cartype="1" back="1"/>
</wave>
<wave clientcount="7" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="12" cartype="4" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
</wave>
<wave clientcount="4" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="12" cartype="4" back="1"/>
<client clienttype="12" cartype="4" back="1"/>
<client clienttype="12" cartype="4" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
</wave>
<wave clientcount="6" description="wave 2 description wave 2 description wave 2 description wave 2 description">
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
<client clienttype="3" cartype="5" back="0"/>
</wave>
<wave clientcount="6" description="wave 4 description">
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="4" cartype="6" back="1"/>
<client clienttype="3" cartype="5" back="1"/>
</wave>
<wave clientcount="8" description="wave 4 description">
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="4" cartype="6" back="0"/>
</wave>
<wave clientcount="8" description="wave 4 description">
<client clienttype="5" cartype="7" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="5" cartype="7" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="5" cartype="7" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
<client clienttype="11" cartype="3" back="1"/>
</wave>
<wave clientcount="7" description="wave 4 description">
<client clienttype="4" cartype="6" back="0"/>
<client clienttype="5" cartype="7" back="0"/>
<client clienttype="7" cartype="13" back="0"/>
<client clienttype="7" cartype="13" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="5" cartype="7" back="0"/>
</wave>
<wave clientcount="10" description="wave 4 description">
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
</wave>
<wave clientcount="11" description="wave 4 description">
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
<client clienttype="11" cartype="3" back="0"/>
</wave>
<wave clientcount="16" description="wave 4 description">
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="13" back="1"/>
<client clienttype="7" cartype="3" back="0"/>
<client clienttype="7" cartype="3" back="0"/>
<client clienttype="7" cartype="3" back="0"/>
<client clienttype="7" cartype="3" back="0"/>
<client clienttype="7" cartype="3" back="0"/>
<client clienttype="7" cartype="3" back="0"/>
</wave>
</Level>
</Levels>
;
getGameInfoFromBrowser();
(gamepanel as HudPanel).setText(levelsXML.Level[(currentlevel - 1)].wave[(currentwave - 1)].@description);
}
public function createUnit(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean=false):void{
var _local5:Unit;
_local5 = new Unit();
lUnits.addChild(_local5);
_local5.buttonMode = true;
_local5.setParameters(_arg1, unitsParamsXML.Unit[(_arg1 - 1)].params.@price, unitsParamsXML.Unit[(_arg1 - 1)].params.@upgradeprice, unitsParamsXML.Unit[(_arg1 - 1)].params.@sellprice, unitsParamsXML.Unit[(_arg1 - 1)].params.@temptation, (FR / unitsParamsXML.Unit[(_arg1 - 1)].params.@shootspeed), unitsParamsXML.Unit[(_arg1 - 1)].params.@shootradius, unitsParamsXML.Unit[(_arg1 - 1)].params.@splashradiusf, unitsParamsXML.Unit[(_arg1 - 1)].params.@splashdamage, unitsParamsXML.Unit[(_arg1 - 1)].params.@crit, unitsParamsXML.Unit[(_arg1 - 1)].params.@critinc, unitsParamsXML.Unit[(_arg1 - 1)].params.@freezevalue, (unitsParamsXML.Unit[(_arg1 - 1)].params.@freezetime * FR));
_local5.x = _arg2;
_local5.y = _arg3;
_local5.firstsidewalk = _arg4;
all_units.push(_local5);
money = (money - unitsParamsXML.Unit[(_arg1 - 1)].params.@price);
gamepanel.writeMoney(money);
}
public function addBlurToUpgradeWindow(_arg1:Boolean):void{
var _local2:BlurFilter;
if (_arg1){
_local2 = new BlurFilter();
_local2.blurX = 10;
_local2.quality = BitmapFilterQuality.HIGH;
};
}
public function levelsLoaded(_arg1:Event):void{
if (level_loader.data){
levelsXML = new XML();
levelsXML.ignoreWhitespace = true;
levelsXML = XML(level_loader.data);
getGameInfoFromBrowser();
(gamepanel as HudPanel).setText(levelsXML.Level[(currentlevel - 1)].wave[(currentwave - 1)].@description);
};
}
public function handlerMouseDown(_arg1:MouseEvent):void{
}
public function goTasty(_arg1:MouseEvent):void{
}
public function setTargetsToUndefined():void{
var _local1:Unit;
var _local2:int;
_local2 = all_units.length;
for each (_local1 in all_units) {
_local1 = all_units[(_local2 - 1)];
_local1.trgt = undefined;
_local2--;
};
}
public function checkMouseOnUnit():void{
var _local1:Unit;
var _local2:int;
var _local3:Point;
var _local4:*;
var _local5:Number;
_local3 = new Point(mouseX, mouseY);
if (!all_units.length){
if (!(gamepanel as HudPanel).unitDrag){
return;
};
};
if (all_units.length){
_local2 = all_units.length;
mouseOnUnit = false;
underMouseUnit = undefined;
if (_local2 > 0){
for each (_local1 in all_units) {
_local1 = all_units[(_local2 - 1)];
if ((((((((mouseX > (_local1.x - 20))) && ((mouseX < (_local1.x + 20))))) && ((mouseY > (_local1.y - 20))))) && ((mouseY < (_local1.y + 20))))){
mouseOnUnit = true;
underMouseUnit = _local1;
return;
};
_local2--;
};
};
};
if ((this.fon[("mask" + mapnumber)] as MovieClip).hitTestPoint(mouseX, mouseY, true)){
MouseOnSidewalk = true;
} else {
MouseOnSidewalk = false;
};
}
public function ubover(_arg1:MouseEvent):void{
(_arg1.target as MovieClip).y = ((_arg1.target as MovieClip).y - 3);
}
public function upgradesLoaded(_arg1:Event):void{
if (loader_upgrade.data){
upgradeXML = new XML();
upgradeXML.ignoreWhitespace = true;
upgradeXML = XML(loader_upgrade.data);
};
}
private function clientsParamsFileLoaded(_arg1:Event):void{
if (loader1.data){
clientsParamsXML = new XML();
clientsParamsXML.ignoreWhitespace = true;
clientsParamsXML = XML(loader1.data);
} else {
trace("clients file not loaded!");
};
}
public function removeClients():void{
var _local1:Client;
var _local2:int;
_local2 = all_clients.length;
if (_local2 > 0){
for each (_local1 in all_clients) {
_local1 = all_clients[(_local2 - 1)];
lLights.removeChild(_local1.fary);
(_local1 as Client).removeSound();
lClients1.removeChild(_local1);
_local2--;
};
};
all_clients = [];
}
public function levelpauseclicked(_arg1:MouseEvent):void{
if (level_pause.currentFrame == 13){
if (((level_pause.but1) && ((level_pause.but1 as MovieClip).hitTestPoint(mouseX, mouseY)))){
level_pause.visible = false;
nextLevel();
};
};
}
public function Update(_arg1:Event):void{
var _local2:int;
var _local3:Client;
var _local4:Number;
var _local5:Client;
var _local6:Unit;
var _local7:Number;
var _local8:SharedObject;
if (tutorial){
if (tutorial.currentFrame == tutorial.totalFrames){
removeTutor();
};
};
if (gameFailed){
return;
};
checkExplosions();
if (PAUSE){
return;
};
if (infoWindow.x == 0){
delay++;
};
if (delay == (delayTime * FR)){
infoWindow.x = -601;
delay = 0;
};
sellUnits();
if (tik < 10){
tik++;
} else {
tik = 0;
};
_local2 = all_clients.length;
while (_local2 > 0) {
if (_local2 > 0){
_local3 = all_clients[(_local2 - 1)];
if (!_local3.active){
if (!realisticMode){
_local3.dollar.visible = true;
if ((_local3 as MovieClip).alpha < 0.02){
(_local3 as Client).removeSound();
lLights.removeChild(_local3.fary);
lClients1.removeChild(_local3);
money = (money + _local3.moneyAward);
gamepanel.checkUnitPrices(money);
gamepanel.writeRespect(respect);
gamepanel.writeMoney(money);
_local4 = (_local2 - 1);
all_clients.splice(_local4, 1);
} else {
(_local3 as MovieClip).alpha = ((_local3 as MovieClip).alpha - 0.05);
};
} else {
if (_local3.removeMe){
(_local3 as Client).removeSound();
lLights.removeChild(_local3.fary);
lClients1.removeChild(_local3);
_local4 = (_local2 - 1);
all_clients.splice(_local4, 1);
money = (money + _local3.moneyAward);
gamepanel.checkUnitPrices(money);
gamepanel.writeRespect(respect);
gamepanel.writeMoney(money);
};
};
};
if ((((_local3.currentWayPoint >= wayXML.Level[(mapnumber - 1)].@pointcount)) && (_local3.active))){
_local3.livesmap = true;
lLights.removeChild(_local3.fary);
(_local3 as Client).removeSound();
lClients1.removeChild(_local3);
if (respect > 0){
respect--;
};
gamepanel.writeRespect(respect);
_local7 = (_local2 - 1);
all_clients.splice(_local7, 1);
};
};
if (respect == 0){
removeClients();
(gamepanel as HudPanel).sound.stopMusic();
PAUSE = true;
gamepanel.returnDraggedUnit();
_local8 = SharedObject.getLocal("favelatd");
_local8.data.currentlevel = currentlevel;
_local8.flush();
removeEventListener(Event.ENTER_FRAME, Update);
gameOver = true;
gameOver = true;
GameOverWnd = new TGameOver();
GameOverWnd.x = 300;
GameOverWnd.y = 300;
addChild(GameOverWnd);
if (soundsPlaying){
gamepanel.sound.Play2DSnd("game_over");
};
};
_local2--;
};
for each (_local5 in all_clients) {
if (_local5){
_local5.update();
};
};
for each (_local6 in all_units) {
if (_local6){
_local6.move();
};
};
if (((!(all_clients.length)) && (waveStarted))){
waveDone();
};
if (!firstTime){
firstTime = true;
gamepanel.checkUnitPrices(money);
};
checkMouseOnUnit();
}
public function sellButDown(_arg1:MouseEvent):void{
if (tutorial){
replayTask();
return;
};
currentUpgUnit.sellMe = true;
currentUpgUnit = undefined;
upgwin.y = -100;
selectionBut.y = -100;
if (soundsPlaying){
gamepanel.sound.Play2DSnd("sale");
};
}
public function gameMouseDown(_arg1:MouseEvent):void{
if (tutorial){
replayTask();
return;
};
if (upgwin.x > 0){
upgwin.y = -100;
selectionBut.y = -100;
};
}
public function skipTutor(_arg1:MouseEvent):void{
removeTutor();
}
public function hideUpgWindow(_arg1:MouseEvent):void{
}
public function setFon(_arg1:int):void{
(this.alpha_masks as MovieClip).mouseEnabled = false;
this.fon.gotoAndStop(_arg1);
this.alpha_masks.gotoAndStop(_arg1);
this.fary_mask.gotoAndStop(_arg1);
}
public function loadTracks():void{
var _local1:int;
var _local2:Point;
track1 = [];
track2 = [];
track3 = [];
track4 = [];
_local1 = 1;
while (_local1 < 101) {
_local2 = new Point(wayXML.Level[(mapnumber - 1)].track[0].point[(_local1 - 1)].@px, wayXML.Level[(mapnumber - 1)].track[0].point[(_local1 - 1)].@py);
track1.push(_local2);
_local2 = new Point(wayXML.Level[(mapnumber - 1)].track[1].point[(_local1 - 1)].@px, wayXML.Level[(mapnumber - 1)].track[1].point[(_local1 - 1)].@py);
track2.push(_local2);
_local2 = new Point(wayXML.Level[(mapnumber - 1)].track[2].point[(_local1 - 1)].@px, wayXML.Level[(mapnumber - 1)].track[2].point[(_local1 - 1)].@py);
track3.push(_local2);
_local2 = new Point(wayXML.Level[(mapnumber - 1)].track[3].point[(_local1 - 1)].@px, wayXML.Level[(mapnumber - 1)].track[3].point[(_local1 - 1)].@py);
track4.push(_local2);
_local1++;
};
}
public function placeLayers():void{
setChildIndex(lHole, (numChildren - 1));
setChildIndex(lLights, (numChildren - 1));
setChildIndex(fary_mask, (numChildren - 1));
setChildIndex(lClients2, (numChildren - 1));
setChildIndex(lClients1, (numChildren - 1));
setChildIndex(lUnits, (numChildren - 1));
setChildIndex(alpha_masks, (numChildren - 1));
setChildIndex(gamepanel, (numChildren - 1));
setChildIndex(lSfx, (numChildren - 1));
setChildIndex(musicButton, (numChildren - 1));
setChildIndex(soundButton, (numChildren - 1));
setChildIndex(sfxBut, (numChildren - 1));
setChildIndex(nosfxBut, (numChildren - 1));
setChildIndex(volBut, (numChildren - 1));
setChildIndex(musicButton, (numChildren - 1));
setChildIndex(nomusicButton, (numChildren - 1));
setChildIndex(restartButton, (numChildren - 1));
setChildIndex(pw, (numChildren - 1));
setChildIndex(aglogo, (numChildren - 1));
usr = new Range();
usr.visible = false;
lusr = new Sprite();
lusr.addChild(usr);
addChild(lusr);
lusr.mouseEnabled = false;
lusr.mouseChildren = false;
}
public function removeTutor():void{
removeChild(tutorial);
removeChild(tutorskip);
tutorial = undefined;
}
public function mouseOnSidewalk(_arg1:MouseEvent):void{
}
public function levelDone():void{
var _local1:Sound;
var _local2:SoundChannel;
if (currentlevel == 9){
if (gameOver){
return;
};
PAUSE = true;
(gamepanel as HudPanel).sound.stopMusic();
winwindow = new WinGame_MC();
winwindow.x = 300;
winwindow.y = 314;
addChild(winwindow);
if (soundsPlaying){
gamepanel.sound.Play2DSnd("game_win");
};
return;
} else {
gamepanel.returnDraggedUnit();
upgwin.y = -100;
selectionBut.y = -100;
level_pause.visible = true;
level_pause.gotoAndPlay(1);
currentlevel++;
saveGameInfoToBrowser();
};
removeHoles();
if (gameOver){
return;
};
gamepanel.sound.stopMusic();
if (soundsPlaying){
gamepanel.sound.Play2DSnd("game_win");
};
}
public function goSponsor(_arg1:MouseEvent):void{
if (language.language_nr == 2){
request = new URLRequest(language.url1);
} else {
request = new URLRequest((language.url1 + "&utm_content=button_mainscreen_moregames"));
};
navigateToURL(request, "_blank");
}
public function pauseGame():void{
var _local1:Unit;
var _local2:int;
if (soundsPlaying){
gamepanel.sound.Play2DSnd("menuclick");
};
PAUSE = !(PAUSE);
if (PAUSE){
pw.x = 300;
setChildIndex(pw, (numChildren - 1));
pw.gotoAndPlay(1);
removeCarSounds();
} else {
pw.x = -1000;
startCarSounds();
};
}
public function sellUnits():void{
var _local1:Unit;
var _local2:int;
var _local3:Number;
_local2 = all_units.length;
if (_local2 > 0){
for each (_local1 in all_units) {
_local1 = all_units[(_local2 - 1)];
if (_local1.sellMe){
money = (money + _local1.sellPrice);
gamepanel.writeMoney(money);
lUnits.removeChild(_local1);
_local3 = (_local2 - 1);
all_units.splice(_local3, 1);
gamepanel.checkUnitPrices(money);
WantSell = false;
dollar.visible = false;
dollar.stopDrag();
Mouse.show();
};
_local2--;
};
};
}
public function showUpgradeWindow(_arg1:Object, _arg2:Number, _arg3:Boolean):void{
var _local4:Number;
var _local5:int;
var _local6:String;
var _local7:Boolean;
if (soundsPlaying){
gamepanel.sound.Play2DSnd("upg_window");
};
_local5 = 10;
currentUpgUnit = _arg1;
currentUpgUnitFrame = _arg2;
if (currentUpgUnit.unitType == 1){
_local6 = "Thug ";
};
if (currentUpgUnit.unitType == 2){
_local6 = "Super Thug ";
};
if (currentUpgUnit.unitType == 3){
_local6 = "Bomber ";
};
if (currentUpgUnit.unitType == 4){
_local6 = "Soldier ";
};
if (currentUpgUnit.upgradeLevel < 5){
_local6 = ((_local6 + "Rank ") + currentUpgUnit.upgradeLevel.toString());
} else {
_local6 = (_local6 + "Max Rank");
};
upgwin.ranktext.text = _local6;
upgwin.upg_but.visible = true;
enablePromoteBut();
if (currentUpgUnit.upgradeLevel == 5){
disablePromoteBut();
} else {
_local4 = unitsParamsXML.Unit[(_arg2 - 1)].upgrades.upgrade[(currentUpgUnit.upgradeLevel - 1)].@price;
if (_local4 > money){
disablePromoteBut();
};
};
selectionBut.x = currentUpgUnit.x;
selectionBut.y = currentUpgUnit.y;
if (currentUpgUnit.x > 300){
upgwin.x = (currentUpgUnit.x - 20);
_local7 = true;
} else {
upgwin.x = (currentUpgUnit.x + 20);
};
upgwin.y = Math.min(Math.max(currentUpgUnit.y, 70), 400);
upgwin.upg_but.upg_txt.selectable = false;
upgwin.sel_but.sale_txt.selectable = false;
tweenSelX = new Tween(selectionBut, "scaleX", Regular.easeIn, 5, 1, _local5, false);
tweenSelY = new Tween(selectionBut, "scaleY", Regular.easeIn, 5, 1, _local5, false);
tweenSelA = new Tween(selectionBut, "alpha", Regular.easeIn, 0, 1, _local5, false);
tweenX = new Tween(upgwin, "scaleX", Regular.easeIn, 0, 1, _local5, false);
tweenY = new Tween(upgwin, "scaleY", Regular.easeIn, 0, 1, _local5, false);
if (_local7){
tweenX1 = new Tween(upgwin, "x", Regular.easeIn, upgwin.x, (upgwin.x - 220), _local5, false);
};
_local4 = currentUpgUnit.sellPrice;
upgwin.sel_but.sale_txt.text = ("$ " + _local4);
if (currentUpgUnit.upgradeLevel < 5){
_local4 = unitsParamsXML.Unit[(_arg2 - 1)].upgrades.upgrade[(currentUpgUnit.upgradeLevel - 1)].@price;
upgwin.upg_but.upg_txt.text = ("$ " + _local4);
};
_local4 = unitsParamsXML.Unit[(_arg2 - 1)].upgrades.@upgrade1type;
_local4 = unitsParamsXML.Unit[(_arg2 - 1)].upgrades.@upgrade2type;
}
public function getGameInfoFromBrowser():void{
so = SharedObject.getLocal("favelatd");
if (so.data.currentlevel){
currentlevel = so.data.currentlevel;
} else {
currentlevel = 1;
};
money = levelsXML.Level[(currentlevel - 1)].@startmoney;
respect = levelsXML.Level[(currentlevel - 1)].@startrespect;
currentwave = 1;
mapnumber = levelsXML.Level[(currentlevel - 1)].@mapnumber;
setFon(mapnumber);
setInitialChars(1, money, respect);
}
public function musicButtonClicked(_arg1:MouseEvent):void{
musicPlaying = false;
(gamepanel as HudPanel).sound.stopMusic();
nomusicButton.x = 12;
musicButton.x = -20;
}
public function checkExplosions():void{
var _local1:int;
var _local2:int;
var _local3:MovieClip;
_local3 = new MovieClip();
_local1 = aExp.length;
if (_local1 > 0){
for each (_local3 in aExp) {
_local3 = aExp[(_local1 - 1)];
if (_local3.currentFrame == _local3.totalFrames){
removeChild(_local3);
_local2 = (_local1 - 1);
aExp.splice(_local2, 1);
};
_local1--;
};
};
}
public function removeUnits():void{
var _local1:Unit;
var _local2:int;
_local2 = all_units.length;
if (_local2 > 0){
for each (_local1 in all_units) {
_local1 = all_units[(_local2 - 1)];
lUnits.removeChild(_local1);
_local2--;
};
};
all_units = [];
}
public function showUsr(_arg1:Number, _arg2:Number, _arg3:Number):void{
usr.width = _arg1;
usr.height = _arg1;
usr.x = _arg2;
usr.y = _arg3;
usr.gotoAndPlay(1);
usr.visible = !(usr.visible);
}
public function createSparks(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0):void{
var _local4:Number;
var _local5:MovieClip;
_local5 = new sparks_MC();
_local4 = Math.max(Math.random(), 0.5);
_local5.scaleX = _local4;
_local5.scaleY = _local4;
_local5.x = _arg1;
_local5.y = _arg2;
_local5.rotation = _arg3;
aExp.push(_local5);
addChild(_local5);
}
public function dollarMouseDown(_arg1:MouseEvent):void{
if (mouseOnUnit){
(underMouseUnit as Unit).sellMe = true;
underMouseUnit = undefined;
mouseOnUnit = false;
} else {
dollar.visible = false;
dollar.stopDrag();
Mouse.show();
WantSell = false;
};
}
public function removeHoles():void{
var _local1:int;
var _local2:MovieClip;
_local1 = aHole.length;
for each (_local2 in aHole) {
_local2 = aHole[(_local1 - 1)];
lHole.removeChild(_local2);
_local1--;
};
aHole = [];
}
public function createExplosion(_arg1:Number, _arg2:Number):void{
var _local3:MovieClip;
var _local4:Number;
var _local5:String;
_local3 = new explosion_mc();
_local3.x = _arg1;
_local3.y = _arg2;
aExp.push(_local3);
addChild(_local3);
_local4 = Math.random();
_local5 = "succeswhite1";
if (_local4 < 0.33){
_local5 = "succeswhite2";
};
if (_local4 < 0.66){
_local5 = "succeswhite3";
};
if (soundsPlaying){
gamepanel.sound.Play2DSnd(_local5);
};
}
public function upgrade2(_arg1:MouseEvent):void{
DUMMY = true;
}
public function createTutor():void{
tutorial = new tuturial_mc();
tutorial.y = -15.4;
addChild(tutorial);
tutorskip = new skipbtn_mc();
tutorskip.x = 496;
tutorskip.y = 459.1;
addChild(tutorskip);
tutorskip.addEventListener(MouseEvent.MOUSE_DOWN, skipTutor);
}
public function upgrade1(_arg1:MouseEvent):void{
DUMMY = true;
}
public function ubout(_arg1:MouseEvent):void{
(_arg1.target as MovieClip).y = ((_arg1.target as MovieClip).y + 3);
}
public function removeSpecialEffects(){
var _local1:int;
var _local2:int;
var _local3:MovieClip;
_local1 = aExp.length;
if (_local1 > 0){
for each (_local3 in aExp) {
_local3 = aExp[(_local1 - 1)];
removeChild(_local3);
_local1--;
};
};
aExp = [];
}
public function readUpgrades():void{
upgradeXML = new XML();
upgradeXML.ignoreWhitespace = true;
upgradeXML = <Upgrades>
<Upgrade type="1" price="150" description="Girl smile more sexy, that increase speed of cheating"/>
<Upgrade type="2" price="300" description="splash"/>
<Upgrade type="3" price="200" description="fast work"/>
<Upgrade type="4" price="120" description="crit"/>
<Upgrade type="5" price="200" description="freeze"/>
<Upgrade type="6" price="120" description="add sheep"/>
</Upgrades>
;
}
public function createSplahExplosion(_arg1:Number, _arg2:Number, _arg3:Number):void{
var _local4:MovieClip;
if (_arg3 == 4){
_local4 = new splash_explosion();
} else {
_local4 = new gblow_MC();
};
_local4.x = _arg1;
_local4.y = _arg2;
aExp.push(_local4);
addChild(_local4);
}
public function upgradeUnit(_arg1:MouseEvent):void{
var _local2:Number;
if (tutorial){
tutorial.play();
};
_local2 = unitsParamsXML.Unit[(currentUpgUnit.unitType - 1)].upgrades.upgrade[(currentUpgUnit.upgradeLevel - 1)].@price;
if (money >= _local2){
(currentUpgUnit as Unit).incUpgradeLevel();
trace(("level= " + currentUpgUnit.upgradeLevel));
trace(("money= " + money));
if (currentUpgUnit.upgradeLevel < 5){
money = (money - _local2);
_local2 = unitsParamsXML.Unit[(currentUpgUnit.unitType - 1)].upgrades.upgrade[(currentUpgUnit.upgradeLevel - 1)].@price;
upgwin.upg_but.upg_txt.text = ("$ " + _local2);
_local2 = unitsParamsXML.Unit[(currentUpgUnit.unitType - 1)].upgrades.upgrade[(currentUpgUnit.upgradeLevel - 1)].@sellprice;
upgwin.sel_but.sale_txt.text = ("$ " + _local2);
gamepanel.writeMoney(money);
gamepanel.checkUnitPrices(money);
};
if (currentUpgUnit.upgradeLevel == 5){
money = (money - _local2);
gamepanel.writeMoney(money);
gamepanel.checkUnitPrices(money);
upgwin.upg_but.upg_txt.text = "";
upgwin.upg_but.visible = false;
};
};
if (soundsPlaying){
gamepanel.sound.Play2DSnd("updress1");
};
if (upgwin.x > 0){
upgwin.y = -100;
selectionBut.y = -100;
};
}
public function readWayPoints():void{
wayXML = new XML();
wayXML.ignoreWhitespace = true;
wayXML = <Points>
<Level pointcount="100"> <!--1 level-->
<track>
<point px="84.0" py="0.0"/>
<point px="84.0" py="12.3763"/>
<point px="84.0" py="24.7526"/>
<point px="84.0" py="37.1289"/>
<point px="84.0" py="49.5052"/>
<point px="84.0" py="61.8815"/>
<point px="84.0" py="74.2578"/>
<point px="84.0" py="86.634"/>
<point px="84.0" py="99.0103"/>
<point px="84.0" py="111.387"/>
<point px="84.0" py="123.763"/>
<point px="84.0" py="136.139"/>
<point px="84.0" py="148.516"/>
<point px="84.0" py="160.892"/>
<point px="84.0" py="173.268"/>
<point px="84.0" py="185.644"/>
<point px="84.0" py="198.021"/>
<point px="84.0" py="210.397"/>
<point px="84.0" py="222.773"/>
<point px="84.0" py="235.15"/>
<point px="84.0" py="247.526"/>
<point px="84.0" py="259.902"/>
<point px="84.0" py="272.278"/>
<point px="84.0" py="284.655"/>
<point px="84.9422" py="296.977"/>
<point px="88.2248" py="308.89"/>
<point px="93.7504" py="319.942"/>
<point px="101.294" py="329.73"/>
<point px="110.568" py="337.896"/>
<point px="121.232" py="344.138"/>
<point px="132.901" py="348.203"/>
<point px="145.136" py="349.935"/>
<point px="157.511" py="350.0"/>
<point px="169.888" py="350.0"/>
<point px="182.264" py="350.0"/>
<point px="194.64" py="350.0"/>
<point px="207.016" py="350.0"/>
<point px="219.393" py="350.0"/>
<point px="231.769" py="350.0"/>
<point px="244.126" py="349.516"/>
<point px="256.213" py="346.937"/>
<point px="267.626" py="342.197"/>
<point px="277.992" py="335.466"/>
<point px="286.976" py="326.978"/>
<point px="294.287" py="317.013"/>
<point px="299.674" py="305.89"/>
<point px="302.946" py="293.972"/>
<point px="304.0" py="281.658"/>
<point px="304.0" py="269.281"/>
<point px="304.0" py="256.905"/>
<point px="304.0" py="244.529"/>
<point px="304.0" py="232.152"/>
<point px="304.0" py="219.776"/>
<point px="304.0" py="207.4"/>
<point px="304.0" py="195.024"/>
<point px="305.873" py="182.856"/>
<point px="311.956" py="172.157"/>
<point px="321.437" py="164.308"/>
<point px="333.092" py="160.353"/>
<point px="345.451" py="160.0"/>
<point px="357.828" py="160.0"/>
<point px="370.204" py="160.0"/>
<point px="382.58" py="160.0"/>
<point px="394.956" py="160.0"/>
<point px="407.333" py="160.0"/>
<point px="419.709" py="160.0"/>
<point px="432.085" py="160.001"/>
<point px="444.185" py="162.254"/>
<point px="454.68" py="168.683"/>
<point px="462.218" py="178.414"/>
<point px="465.788" py="190.192"/>
<point px="466.0" py="202.56"/>
<point px="466.0" py="214.936"/>
<point px="466.0" py="227.313"/>
<point px="466.0" py="239.689"/>
<point px="466.0" py="252.065"/>
<point px="466.0" py="264.442"/>
<point px="466.0" py="276.818"/>
<point px="466.0" py="289.194"/>
<point px="466.0" py="301.57"/>
<point px="466.0" py="313.947"/>
<point px="466.0" py="326.323"/>
<point px="466.0" py="338.699"/>
<point px="466.0" py="351.076"/>
<point px="466.0" py="363.452"/>
<point px="466.025" py="375.828"/>
<point px="467.387" py="388.114"/>
<point px="470.841" py="399.982"/>
<point px="476.288" py="411.079"/>
<point px="483.551" py="421.08"/>
<point px="492.409" py="429.703"/>
<point px="502.603" py="436.694"/>
<point px="513.843" py="441.836"/>
<point px="525.801" py="444.966"/>
<point px="538.119" py="446.0"/>
<point px="550.495" py="446.0"/>
<point px="562.871" py="446.0"/>
<point px="575.247" py="446.0"/>
<point px="587.624" py="446.0"/>
<point px="605.0" py="446.0"/>
<point px="605.0" py="446.0"/>
</track>
<track>
<point px="110.0" py="0.0"/>
<point px="110.0" py="12.0933"/>
<point px="110.0" py="24.1865"/>
<point px="110.0" py="36.2798"/>
<point px="110.0" py="48.3731"/>
<point px="110.0" py="60.4663"/>
<point px="110.0" py="72.5596"/>
<point px="110.0" py="84.6529"/>
<point px="110.0" py="96.7461"/>
<point px="110.0" py="108.839"/>
<point px="110.0" py="120.933"/>
<point px="110.0" py="133.026"/>
<point px="110.0" py="145.119"/>
<point px="110.0" py="157.212"/>
<point px="110.0" py="169.306"/>
<point px="110.0" py="181.399"/>
<point px="110.0" py="193.492"/>
<point px="110.0" py="205.585"/>
<point px="110.0" py="217.679"/>
<point px="110.0" py="229.772"/>
<point px="110.0" py="241.865"/>
<point px="110.0" py="253.959"/>
<point px="110.0" py="266.052"/>
<point px="110.0" py="278.145"/>
<point px="110.116" py="290.236"/>
<point px="112.58" py="302.037"/>
<point px="118.107" py="312.753"/>
<point px="126.273" py="321.624"/>
<point px="136.493" py="328.021"/>
<point px="148.047" py="331.463"/>
<point px="160.113" py="332.0"/>
<point px="172.206" py="332.0"/>
<point px="184.299" py="332.0"/>
<point px="196.393" py="332.0"/>
<point px="208.486" py="332.0"/>
<point px="220.579" py="332.0"/>
<point px="232.671" py="331.93"/>
<point px="244.561" py="329.886"/>
<point px="255.631" py="325.088"/>
<point px="265.264" py="317.823"/>
<point px="272.937" py="308.512"/>
<point px="278.209" py="297.661"/>
<point px="280.769" py="285.871"/>
<point px="281.0" py="273.785"/>
<point px="281.0" py="261.692"/>
<point px="281.0" py="249.598"/>
<point px="281.0" py="237.505"/>
<point px="281.0" py="225.412"/>
<point px="281.0" py="213.318"/>
<point px="281.0" py="201.225"/>
<point px="281.0" py="189.132"/>
<point px="281.047" py="177.039"/>
<point px="283.438" py="165.232"/>
<point px="289.253" py="154.681"/>
<point px="297.935" py="146.328"/>
<point px="308.705" py="140.931"/>
<point px="320.596" py="139.003"/>
<point px="332.69" py="139.0"/>
<point px="344.783" py="139.0"/>
<point px="356.876" py="139.0"/>
<point px="368.969" py="139.0"/>
<point px="381.063" py="139.0"/>
<point px="393.156" py="139.0"/>
<point px="405.249" py="139.0"/>
<point px="417.342" py="139.0"/>
<point px="429.436" py="139.0"/>
<point px="441.529" py="139.0"/>
<point px="453.606" py="139.373"/>
<point px="465.194" py="142.678"/>
<point px="475.361" py="149.149"/>
<point px="483.286" py="158.23"/>
<point px="488.31" py="169.183"/>
<point px="490.0" py="181.116"/>
<point px="490.0" py="193.209"/>
<point px="490.0" py="205.302"/>
<point px="490.0" py="217.395"/>
<point px="490.0" py="229.489"/>
<point px="490.0" py="241.582"/>
<point px="490.0" py="253.675"/>
<point px="490.0" py="265.768"/>
<point px="490.0" py="277.862"/>
<point px="490.0" py="289.955"/>
<point px="490.0" py="302.048"/>
<point px="490.0" py="314.142"/>
<point px="490.0" py="326.235"/>
<point px="490.0" py="338.328"/>
<point px="490.0" py="350.421"/>
<point px="489.992" py="362.515"/>
<point px="491.35" py="374.513"/>
<point px="494.973" py="386.031"/>
<point px="500.725" py="396.648"/>
<point px="508.375" py="405.991"/>
<point px="517.637" py="413.739"/>
<point px="528.186" py="419.615"/>
<point px="539.653" py="423.398"/>
<point px="551.628" py="424.957"/>
<point px="563.72" py="425.0"/>
<point px="575.813" py="425.0"/>
<point px="587.907" py="425.0"/>
<point px="605.0" py="425.0"/>
<point px="605.0" py="425.0"/>
</track>
<track>
<point px="600.0" py="425.0"/>
<point px="587.907" py="425.0"/>
<point px="575.813" py="425.0"/>
<point px="563.72" py="425.0"/>
<point px="551.627" py="424.957"/>
<point px="539.653" py="423.398"/>
<point px="528.186" py="419.615"/>
<point px="517.637" py="413.739"/>
<point px="508.375" py="405.991"/>
<point px="500.725" py="396.648"/>
<point px="494.973" py="386.031"/>
<point px="491.35" py="374.513"/>
<point px="489.992" py="362.515"/>
<point px="490.0" py="350.421"/>
<point px="490.0" py="338.328"/>
<point px="490.0" py="326.235"/>
<point px="490.0" py="314.142"/>
<point px="490.0" py="302.048"/>
<point px="490.0" py="289.955"/>
<point px="490.0" py="277.862"/>
<point px="490.0" py="265.769"/>
<point px="490.0" py="253.675"/>
<point px="490.0" py="241.582"/>
<point px="490.0" py="229.489"/>
<point px="490.0" py="217.396"/>
<point px="490.0" py="205.302"/>
<point px="490.0" py="193.209"/>
<point px="490.0" py="181.116"/>
<point px="488.31" py="169.183"/>
<point px="483.286" py="158.23"/>
<point px="475.361" py="149.149"/>
<point px="465.194" py="142.678"/>
<point px="453.606" py="139.373"/>
<point px="441.529" py="139.0"/>
<point px="429.436" py="139.0"/>
<point px="417.342" py="139.0"/>
<point px="405.249" py="139.0"/>
<point px="393.156" py="139.0"/>
<point px="381.063" py="139.0"/>
<point px="368.969" py="139.0"/>
<point px="356.876" py="139.0"/>
<point px="344.783" py="139.0"/>
<point px="332.69" py="139.0"/>
<point px="320.596" py="139.003"/>
<point px="308.705" py="140.931"/>
<point px="297.935" py="146.328"/>
<point px="289.253" py="154.681"/>
<point px="283.438" py="165.232"/>
<point px="281.047" py="177.039"/>
<point px="281.0" py="189.132"/>
<point px="281.0" py="201.225"/>
<point px="281.0" py="213.318"/>
<point px="281.0" py="225.412"/>
<point px="281.0" py="237.505"/>
<point px="281.0" py="249.598"/>
<point px="281.0" py="261.692"/>
<point px="281.0" py="273.785"/>
<point px="280.769" py="285.871"/>
<point px="278.209" py="297.661"/>
<point px="272.937" py="308.512"/>
<point px="265.264" py="317.823"/>
<point px="255.631" py="325.088"/>
<point px="244.561" py="329.886"/>
<point px="232.671" py="331.93"/>
<point px="220.579" py="332.0"/>
<point px="208.486" py="332.0"/>
<point px="196.392" py="332.0"/>
<point px="184.299" py="332.0"/>
<point px="172.206" py="332.0"/>
<point px="160.113" py="332.0"/>
<point px="148.047" py="331.463"/>
<point px="136.493" py="328.021"/>
<point px="126.273" py="321.624"/>
<point px="118.107" py="312.753"/>
<point px="112.58" py="302.037"/>
<point px="110.116" py="290.236"/>
<point px="110.0" py="278.145"/>
<point px="110.0" py="266.052"/>
<point px="110.0" py="253.959"/>
<point px="110.0" py="241.865"/>
<point px="110.0" py="229.772"/>
<point px="110.0" py="217.679"/>
<point px="110.0" py="205.586"/>
<point px="110.0" py="193.492"/>
<point px="110.0" py="181.399"/>
<point px="110.0" py="169.306"/>
<point px="110.0" py="157.212"/>
<point px="110.0" py="145.119"/>
<point px="110.0" py="133.026"/>
<point px="110.0" py="120.933"/>
<point px="110.0" py="108.839"/>
<point px="110.0" py="96.7461"/>
<point px="110.0" py="84.6528"/>
<point px="110.0" py="72.5596"/>
<point px="110.0" py="60.4663"/>
<point px="110.0" py="48.373"/>
<point px="110.0" py="36.2797"/>
<point px="110.0" py="24.1865"/>
<point px="110.0" py="12.0933"/>
<point px="110.0" py="0.0"/>
<point px="110.0" py="0.0"/>
</track>
<track>
<point px="600.0" py="446.0"/>
<point px="587.624" py="446.0"/>
<point px="575.247" py="446.0"/>
<point px="562.871" py="446.0"/>
<point px="550.495" py="446.0"/>
<point px="538.119" py="446.0"/>
<point px="525.801" py="444.966"/>
<point px="513.843" py="441.836"/>
<point px="502.603" py="436.694"/>
<point px="492.409" py="429.703"/>
<point px="483.551" py="421.08"/>
<point px="476.288" py="411.078"/>
<point px="470.841" py="399.982"/>
<point px="467.387" py="388.114"/>
<point px="466.025" py="375.828"/>
<point px="466.0" py="363.452"/>
<point px="466.0" py="351.076"/>
<point px="466.0" py="338.699"/>
<point px="466.0" py="326.323"/>
<point px="466.0" py="313.947"/>
<point px="466.0" py="301.57"/>
<point px="466.0" py="289.194"/>
<point px="466.0" py="276.818"/>
<point px="466.0" py="264.442"/>
<point px="466.0" py="252.065"/>
<point px="466.0" py="239.689"/>
<point px="466.0" py="227.313"/>
<point px="466.0" py="214.936"/>
<point px="466.0" py="202.56"/>
<point px="465.788" py="190.192"/>
<point px="462.218" py="178.414"/>
<point px="454.68" py="168.683"/>
<point px="444.185" py="162.254"/>
<point px="432.085" py="160.001"/>
<point px="419.709" py="160.0"/>
<point px="407.333" py="160.0"/>
<point px="394.956" py="160.0"/>
<point px="382.58" py="160.0"/>
<point px="370.204" py="160.0"/>
<point px="357.828" py="160.0"/>
<point px="345.451" py="160.0"/>
<point px="333.092" py="160.353"/>
<point px="321.437" py="164.308"/>
<point px="311.956" py="172.157"/>
<point px="305.873" py="182.856"/>
<point px="304.0" py="195.024"/>
<point px="304.0" py="207.4"/>
<point px="304.0" py="219.776"/>
<point px="304.0" py="232.152"/>
<point px="304.0" py="244.529"/>
<point px="304.0" py="256.905"/>
<point px="304.0" py="269.281"/>
<point px="304.0" py="281.658"/>
<point px="302.946" py="293.972"/>
<point px="299.674" py="305.89"/>
<point px="294.287" py="317.013"/>
<point px="286.976" py="326.978"/>
<point px="277.992" py="335.466"/>
<point px="267.626" py="342.197"/>
<point px="256.213" py="346.937"/>
<point px="244.126" py="349.516"/>
<point px="231.769" py="350.0"/>
<point px="219.393" py="350.0"/>
<point px="207.016" py="350.0"/>
<point px="194.64" py="350.0"/>
<point px="182.264" py="350.0"/>
<point px="169.888" py="350.0"/>
<point px="157.511" py="350.0"/>
<point px="145.136" py="349.935"/>
<point px="132.901" py="348.203"/>
<point px="121.232" py="344.138"/>
<point px="110.568" py="337.896"/>
<point px="101.294" py="329.73"/>
<point px="93.7504" py="319.942"/>
<point px="88.2248" py="308.89"/>
<point px="84.9421" py="296.977"/>
<point px="84.0" py="284.655"/>
<point px="84.0" py="272.279"/>
<point px="84.0" py="259.902"/>
<point px="84.0" py="247.526"/>
<point px="84.0" py="235.15"/>
<point px="84.0" py="222.773"/>
<point px="84.0" py="210.397"/>
<point px="84.0" py="198.021"/>
<point px="84.0" py="185.644"/>
<point px="84.0" py="173.268"/>
<point px="84.0" py="160.892"/>
<point px="84.0" py="148.516"/>
<point px="84.0" py="136.139"/>
<point px="84.0" py="123.763"/>
<point px="84.0" py="111.387"/>
<point px="84.0" py="99.0104"/>
<point px="84.0" py="86.6341"/>
<point px="84.0" py="74.2578"/>
<point px="84.0" py="61.8815"/>
<point px="84.0" py="49.5051"/>
<point px="84.0" py="37.1288"/>
<point px="84.0" py="24.7526"/>
<point px="84.0" py="12.3763"/>
<point px="84.0" py="0.0"/>
<point px="84.0" py="0.0"/>
</track>
</Level>
<Level pointcount="100"> <!--2 level-->
<track>
<point px="0.0" py="96.9048"/>
<point px="18.4678" py="96.9048"/>
<point px="36.9356" py="96.9048"/>
<point px="55.4035" py="96.9048"/>
<point px="73.8713" py="96.9048"/>
<point px="92.3391" py="96.9048"/>
<point px="110.807" py="96.9048"/>
<point px="129.275" py="96.9048"/>
<point px="147.442" py="99.3975"/>
<point px="162.57" py="109.689"/>
<point px="171.365" py="125.731"/>
<point px="172.71" py="144.08"/>
<point px="172.719" py="162.548"/>
<point px="179.93" py="179.054"/>
<point px="196.59" py="185.904"/>
<point px="215.058" py="185.905"/>
<point px="233.526" py="185.905"/>
<point px="251.994" py="185.905"/>
<point px="270.461" py="185.905"/>
<point px="288.929" py="185.905"/>
<point px="307.397" py="185.905"/>
<point px="325.865" py="185.905"/>
<point px="344.333" py="185.905"/>
<point px="362.797" py="185.806"/>
<point px="378.401" py="176.975"/>
<point px="382.71" py="159.436"/>
<point px="382.71" py="140.968"/>
<point px="382.71" py="122.5"/>
<point px="383.101" py="104.054"/>
<point px="391.347" py="87.8552"/>
<point px="407.422" py="79.3709"/>
<point px="425.862" py="78.9048"/>
<point px="444.33" py="78.9048"/>
<point px="462.798" py="78.9048"/>
<point px="481.24" py="79.3682"/>
<point px="497.661" py="87.2762"/>
<point px="507.401" py="102.684"/>
<point px="508.71" py="121.028"/>
<point px="508.71" py="139.496"/>
<point px="508.71" py="157.964"/>
<point px="508.71" py="176.431"/>
<point px="508.71" py="194.899"/>
<point px="508.71" py="213.367"/>
<point px="508.71" py="231.835"/>
<point px="508.401" py="250.288"/>
<point px="500.647" py="266.747"/>
<point px="485.002" py="276.039"/>
<point px="466.603" py="276.905"/>
<point px="448.135" py="276.905"/>
<point px="429.667" py="276.905"/>
<point px="411.2" py="276.905"/>
<point px="392.732" py="276.905"/>
<point px="374.264" py="276.905"/>
<point px="355.796" py="276.905"/>
<point px="337.328" py="276.905"/>
<point px="318.86" py="276.905"/>
<point px="300.393" py="276.905"/>
<point px="281.925" py="276.905"/>
<point px="263.457" py="276.905"/>
<point px="244.989" py="276.905"/>
<point px="226.521" py="276.905"/>
<point px="208.054" py="276.905"/>
<point px="189.594" py="277.242"/>
<point px="171.227" py="279.14"/>
<point px="153.033" py="282.272"/>
<point px="137.373" py="291.479"/>
<point px="123.232" py="303.356"/>
<point px="114.55" py="318.878"/>
<point px="110.142" py="336.81"/>
<point px="106.882" py="354.982"/>
<point px="107.374" py="373.353"/>
<point px="110.506" py="391.548"/>
<point px="115.801" py="409.212"/>
<point px="127.935" py="422.903"/>
<point px="142.08" py="434.761"/>
<point px="158.504" py="442.991"/>
<point px="175.796" py="449.472"/>
<point px="193.73" py="453.656"/>
<point px="212.179" py="454.181"/>
<point px="230.644" py="453.905"/>
<point px="249.112" py="453.905"/>
<point px="267.579" py="453.905"/>
<point px="286.047" py="453.905"/>
<point px="304.515" py="453.905"/>
<point px="322.983" py="453.905"/>
<point px="341.451" py="453.905"/>
<point px="359.918" py="453.905"/>
<point px="378.386" py="453.905"/>
<point px="396.854" py="453.905"/>
<point px="415.322" py="453.905"/>
<point px="433.79" py="453.905"/>
<point px="452.257" py="453.905"/>
<point px="470.725" py="453.905"/>
<point px="489.193" py="453.905"/>
<point px="507.661" py="453.905"/>
<point px="526.129" py="453.905"/>
<point px="544.597" py="453.905"/>
<point px="563.064" py="453.905"/>
<point px="581.532" py="453.905"/>
<point px="605.0" py="453.905"/>
<point px="605.0" py="453.905"/>
</track>
<track>
<point px="0.0" py="79.0"/>
<point px="18.265" py="79.0"/>
<point px="36.5301" py="79.0"/>
<point px="54.7951" py="79.0"/>
<point px="73.0601" py="79.0"/>
<point px="91.3251" py="79.0"/>
<point px="109.59" py="79.0"/>
<point px="127.855" py="79.0"/>
<point px="146.12" py="79.0"/>
<point px="164.264" py="80.369"/>
<point px="180.134" py="89.0666"/>
<point px="190.397" py="103.975"/>
<point px="193.0" py="121.92"/>
<point px="194.819" py="139.985"/>
<point px="204.983" py="154.897"/>
<point px="221.334" py="162.528"/>
<point px="239.573" py="163.0"/>
<point px="257.838" py="163.0"/>
<point px="276.103" py="163.0"/>
<point px="294.368" py="163.0"/>
<point px="312.633" py="163.0"/>
<point px="330.552" py="160.439"/>
<point px="344.463" py="148.984"/>
<point px="349.988" py="131.837"/>
<point px="350.658" py="113.602"/>
<point px="355.636" py="96.0887"/>
<point px="365.166" py="80.5737"/>
<point px="378.504" py="68.1775"/>
<point px="394.68" py="59.8172"/>
<point px="412.514" py="56.1488"/>
<point px="430.776" py="56.0"/>
<point px="449.041" py="56.0"/>
<point px="467.306" py="56.0"/>
<point px="485.571" py="56.0243"/>
<point px="503.359" py="59.7316"/>
<point px="518.772" py="69.3558"/>
<point px="529.959" py="83.676"/>
<point px="535.526" py="100.972"/>
<point px="536.0" py="119.215"/>
<point px="536.0" py="137.48"/>
<point px="536.0" py="155.745"/>
<point px="536.0" py="174.01"/>
<point px="536.0" py="192.276"/>
<point px="536.0" py="210.541"/>
<point px="536.0" py="228.806"/>
<point px="535.203" py="247.028"/>
<point px="529.738" py="264.388"/>
<point px="519.525" py="279.455"/>
<point px="505.449" py="290.995"/>
<point px="488.664" py="298.031"/>
<point px="470.564" py="300.0"/>
<point px="452.299" py="300.0"/>
<point px="434.034" py="300.0"/>
<point px="415.768" py="300.0"/>
<point px="397.503" py="300.0"/>
<point px="379.238" py="300.0"/>
<point px="360.973" py="300.0"/>
<point px="342.708" py="300.0"/>
<point px="324.443" py="300.0"/>
<point px="306.178" py="300.0"/>
<point px="287.913" py="300.0"/>
<point px="269.648" py="300.0"/>
<point px="251.383" py="300.0"/>
<point px="233.118" py="300.0"/>
<point px="214.853" py="300.0"/>
<point px="196.588" py="300.0"/>
<point px="178.323" py="300.0"/>
<point px="160.639" py="303.93"/>
<point px="146.306" py="315.027"/>
<point px="136.654" py="330.446"/>
<point px="132.223" py="348.09"/>
<point px="131.387" py="366.325"/>
<point px="132.749" py="384.528"/>
<point px="138.025" py="401.93"/>
<point px="148.535" py="416.778"/>
<point px="163.086" py="427.695"/>
<point px="180.15" py="434.099"/>
<point px="198.172" py="436.875"/>
<point px="216.435" py="437.0"/>
<point px="234.699" py="437.0"/>
<point px="252.965" py="437.0"/>
<point px="271.23" py="437.0"/>
<point px="289.495" py="437.0"/>
<point px="307.76" py="437.0"/>
<point px="326.025" py="437.0"/>
<point px="344.29" py="437.0"/>
<point px="362.555" py="437.0"/>
<point px="380.82" py="437.0"/>
<point px="399.085" py="437.0"/>
<point px="417.35" py="437.0"/>
<point px="435.615" py="437.0"/>
<point px="453.88" py="437.0"/>
<point px="472.145" py="437.0"/>
<point px="490.41" py="437.0"/>
<point px="508.675" py="437.0"/>
<point px="526.94" py="437.0"/>
<point px="545.205" py="437.0"/>
<point px="563.47" py="437.0"/>
<point px="581.735" py="437.0"/>
<point px="605.0" py="437.0"/>
<point px="605.0" py="437.0"/>
</track>
<track>
<point px="600.0" py="437.0"/>
<point px="581.735" py="437.0"/>
<point px="563.47" py="437.0"/>
<point px="545.205" py="437.0"/>
<point px="526.94" py="437.0"/>
<point px="508.675" py="437.0"/>
<point px="490.41" py="437.0"/>
<point px="472.145" py="437.0"/>
<point px="453.88" py="437.0"/>
<point px="435.615" py="437.0"/>
<point px="417.35" py="437.0"/>
<point px="399.085" py="437.0"/>
<point px="380.82" py="437.0"/>
<point px="362.555" py="437.0"/>
<point px="344.29" py="437.0"/>
<point px="326.025" py="437.0"/>
<point px="307.76" py="437.0"/>
<point px="289.495" py="437.0"/>
<point px="271.229" py="437.0"/>
<point px="252.964" py="437.0"/>
<point px="234.699" py="437.0"/>
<point px="216.434" py="437.0"/>
<point px="198.171" py="436.875"/>
<point px="180.15" py="434.098"/>
<point px="163.086" py="427.695"/>
<point px="148.535" py="416.778"/>
<point px="138.025" py="401.93"/>
<point px="132.749" py="384.527"/>
<point px="131.387" py="366.324"/>
<point px="132.223" py="348.089"/>
<point px="136.655" py="330.445"/>
<point px="146.306" py="315.027"/>
<point px="160.639" py="303.93"/>
<point px="178.323" py="300.0"/>
<point px="196.588" py="300.0"/>
<point px="214.853" py="300.0"/>
<point px="233.118" py="300.0"/>
<point px="251.383" py="300.0"/>
<point px="269.649" py="300.0"/>
<point px="287.914" py="300.0"/>
<point px="306.179" py="300.0"/>
<point px="324.444" py="300.0"/>
<point px="342.709" py="300.0"/>
<point px="360.974" py="300.0"/>
<point px="379.239" py="300.0"/>
<point px="397.504" py="300.0"/>
<point px="415.769" py="300.0"/>
<point px="434.034" py="300.0"/>
<point px="452.299" py="300.0"/>
<point px="470.564" py="300.0"/>
<point px="488.664" py="298.031"/>
<point px="505.449" py="290.995"/>
<point px="519.525" py="279.454"/>
<point px="529.738" py="264.388"/>
<point px="535.203" py="247.028"/>
<point px="536.0" py="228.805"/>
<point px="536.0" py="210.54"/>
<point px="536.0" py="192.275"/>
<point px="536.0" py="174.01"/>
<point px="536.0" py="155.745"/>
<point px="536.0" py="137.48"/>
<point px="536.0" py="119.215"/>
<point px="535.526" py="100.972"/>
<point px="529.959" py="83.6759"/>
<point px="518.772" py="69.3557"/>
<point px="503.359" py="59.7315"/>
<point px="485.571" py="56.0243"/>
<point px="467.306" py="56.0"/>
<point px="449.041" py="56.0"/>
<point px="430.776" py="56.0"/>
<point px="412.514" py="56.1489"/>
<point px="394.68" py="59.8173"/>
<point px="378.504" py="68.1776"/>
<point px="365.166" py="80.5738"/>
<point px="355.636" py="96.0888"/>
<point px="350.658" py="113.602"/>
<point px="349.988" py="131.837"/>
<point px="344.463" py="148.984"/>
<point px="330.552" py="160.439"/>
<point px="312.633" py="163.0"/>
<point px="294.368" py="163.0"/>
<point px="276.103" py="163.0"/>
<point px="257.838" py="163.0"/>
<point px="239.573" py="163.0"/>
<point px="221.334" py="162.528"/>
<point px="204.983" py="154.897"/>
<point px="194.819" py="139.985"/>
<point px="193.0" py="121.92"/>
<point px="190.397" py="103.975"/>
<point px="180.134" py="89.0665"/>
<point px="164.264" py="80.369"/>
<point px="146.12" py="79.0"/>
<point px="127.855" py="79.0"/>
<point px="109.59" py="79.0"/>
<point px="91.3251" py="79.0"/>
<point px="73.0601" py="79.0"/>
<point px="54.795" py="79.0"/>
<point px="36.5301" py="79.0"/>
<point px="18.265" py="79.0"/>
<point px="0.0" py="79.0"/>
<point px="0.000579834" py="79.0"/>
</track>
<track>
<point px="600.0" py="453.905"/>
<point px="581.532" py="453.905"/>
<point px="563.064" py="453.905"/>
<point px="544.596" py="453.905"/>
<point px="526.129" py="453.905"/>
<point px="507.661" py="453.905"/>
<point px="489.193" py="453.905"/>
<point px="470.725" py="453.905"/>
<point px="452.257" py="453.905"/>
<point px="433.79" py="453.905"/>
<point px="415.322" py="453.905"/>
<point px="396.854" py="453.905"/>
<point px="378.386" py="453.905"/>
<point px="359.918" py="453.905"/>
<point px="341.451" py="453.905"/>
<point px="322.983" py="453.905"/>
<point px="304.515" py="453.905"/>
<point px="286.047" py="453.905"/>
<point px="267.579" py="453.905"/>
<point px="249.111" py="453.905"/>
<point px="230.644" py="453.905"/>
<point px="212.179" py="454.181"/>
<point px="193.73" py="453.656"/>
<point px="175.796" py="449.472"/>
<point px="158.504" py="442.991"/>
<point px="142.08" py="434.761"/>
<point px="127.935" py="422.903"/>
<point px="115.801" py="409.212"/>
<point px="110.506" py="391.548"/>
<point px="107.374" py="373.353"/>
<point px="106.882" py="354.982"/>
<point px="110.142" py="336.81"/>
<point px="114.55" py="318.878"/>
<point px="123.232" py="303.356"/>
<point px="137.373" py="291.479"/>
<point px="153.033" py="282.272"/>
<point px="171.227" py="279.14"/>
<point px="189.594" py="277.242"/>
<point px="208.054" py="276.905"/>
<point px="226.522" py="276.905"/>
<point px="244.989" py="276.905"/>
<point px="263.457" py="276.905"/>
<point px="281.925" py="276.905"/>
<point px="300.393" py="276.905"/>
<point px="318.861" py="276.905"/>
<point px="337.329" py="276.905"/>
<point px="355.796" py="276.905"/>
<point px="374.264" py="276.905"/>
<point px="392.732" py="276.905"/>
<point px="411.2" py="276.905"/>
<point px="429.668" py="276.905"/>
<point px="448.135" py="276.905"/>
<point px="466.603" py="276.905"/>
<point px="485.003" py="276.039"/>
<point px="500.647" py="266.747"/>
<point px="508.401" py="250.288"/>
<point px="508.71" py="231.835"/>
<point px="508.71" py="213.367"/>
<point px="508.71" py="194.899"/>
<point px="508.71" py="176.431"/>
<point px="508.71" py="157.963"/>
<point px="508.71" py="139.496"/>
<point px="508.71" py="121.028"/>
<point px="507.401" py="102.684"/>
<point px="497.661" py="87.2761"/>
<point px="481.24" py="79.3682"/>
<point px="462.798" py="78.9048"/>
<point px="444.33" py="78.9048"/>
<point px="425.862" py="78.9048"/>
<point px="407.422" py="79.371"/>
<point px="391.347" py="87.8553"/>
<point px="383.101" py="104.054"/>
<point px="382.71" py="122.501"/>
<point px="382.71" py="140.968"/>
<point px="382.71" py="159.436"/>
<point px="378.401" py="176.975"/>
<point px="362.797" py="185.806"/>
<point px="344.332" py="185.905"/>
<point px="325.865" py="185.905"/>
<point px="307.397" py="185.905"/>
<point px="288.929" py="185.905"/>
<point px="270.461" py="185.905"/>
<point px="251.993" py="185.905"/>
<point px="233.526" py="185.905"/>
<point px="215.058" py="185.905"/>
<point px="196.59" py="185.904"/>
<point px="179.93" py="179.054"/>
<point px="172.719" py="162.548"/>
<point px="172.71" py="144.08"/>
<point px="171.365" py="125.731"/>
<point px="162.57" py="109.688"/>
<point px="147.442" py="99.3975"/>
<point px="129.275" py="96.9048"/>
<point px="110.807" py="96.9048"/>
<point px="92.3391" py="96.9048"/>
<point px="73.8712" py="96.9048"/>
<point px="55.4034" py="96.9048"/>
<point px="36.9357" py="96.9048"/>
<point px="18.4678" py="96.9048"/>
<point px="0.0" py="96.9048"/>
<point px="3.05176e-005" py="96.9048"/>
</track>
</Level>
<Level pointcount="100"> <!--3 level-->
<track>
<point px="0.0" py="74.0"/>
<point px="16.0687" py="74.0"/>
<point px="32.1373" py="74.0"/>
<point px="48.1758" py="74.6389"/>
<point px="63.3911" py="79.5364"/>
<point px="75.3686" py="90.0476"/>
<point px="82.0434" py="104.562"/>
<point px="83.9971" py="120.469"/>
<point px="84.0" py="136.538"/>
<point px="84.0" py="152.606"/>
<point px="84.0" py="168.675"/>
<point px="84.0" py="184.744"/>
<point px="84.0" py="200.812"/>
<point px="84.0" py="216.881"/>
<point px="84.0" py="232.95"/>
<point px="84.0" py="249.018"/>
<point px="84.0" py="265.087"/>
<point px="84.0163" py="281.156"/>
<point px="86.9913" py="296.881"/>
<point px="94.1098" py="311.243"/>
<point px="104.203" py="323.71"/>
<point px="116.58" py="333.915"/>
<point px="130.813" py="341.299"/>
<point px="146.425" py="344.863"/>
<point px="162.49" py="345.0"/>
<point px="178.559" py="345.0"/>
<point px="194.627" py="345.0"/>
<point px="210.696" py="345.0"/>
<point px="226.705" py="344.063"/>
<point px="241.92" py="339.031"/>
<point px="255.607" py="330.669"/>
<point px="267.369" py="319.758"/>
<point px="276.753" py="306.749"/>
<point px="283.01" py="291.993"/>
<point px="285.0" py="276.109"/>
<point px="285.0" py="260.041"/>
<point px="285.0" py="243.972"/>
<point px="285.0" py="227.903"/>
<point px="285.0" py="211.835"/>
<point px="285.0" py="195.766"/>
<point px="285.0" py="179.697"/>
<point px="285.0" py="163.629"/>
<point px="285.0" py="147.56"/>
<point px="285.0" py="131.491"/>
<point px="285.003" py="115.423"/>
<point px="287.241" py="99.5693"/>
<point px="295.407" py="85.9329"/>
<point px="309.425" py="78.4487"/>
<point px="325.377" py="77.0"/>
<point px="341.446" py="77.0"/>
<point px="357.514" py="77.0"/>
<point px="373.583" py="77.0"/>
<point px="389.652" py="77.0"/>
<point px="405.72" py="77.0"/>
<point px="421.789" py="77.0"/>
<point px="437.858" py="77.0"/>
<point px="453.926" py="77.0"/>
<point px="469.995" py="77.0"/>
<point px="486.019" py="77.7589"/>
<point px="500.385" py="84.4637"/>
<point px="508.274" py="98.2129"/>
<point px="510.0" py="114.138"/>
<point px="510.0" py="130.207"/>
<point px="510.0" py="146.276"/>
<point px="510.0" py="162.344"/>
<point px="510.0" py="178.413"/>
<point px="510.0" py="194.482"/>
<point px="510.0" py="210.55"/>
<point px="508.69" py="226.531"/>
<point px="502.391" py="241.179"/>
<point px="489.821" py="250.865"/>
<point px="474.142" py="253.964"/>
<point px="458.074" py="254.0"/>
<point px="442.057" py="254.841"/>
<point px="426.87" py="259.938"/>
<point px="413.358" py="268.572"/>
<point px="402.01" py="279.905"/>
<point px="393.42" py="293.442"/>
<point px="388.583" py="308.707"/>
<point px="388.0" py="324.745"/>
<point px="388.0" py="340.813"/>
<point px="388.0" py="356.882"/>
<point px="388.0" py="372.951"/>
<point px="388.0" py="389.019"/>
<point px="388.41" py="405.07"/>
<point px="392.82" py="420.467"/>
<point px="400.865" py="434.339"/>
<point px="411.605" py="446.254"/>
<point px="424.568" py="455.694"/>
<point px="439.419" py="461.693"/>
<point px="455.382" py="463.0"/>
<point px="471.451" py="463.0"/>
<point px="487.519" py="463.0"/>
<point px="503.588" py="463.0"/>
<point px="519.657" py="463.0"/>
<point px="535.725" py="463.0"/>
<point px="551.794" py="463.0"/>
<point px="567.863" py="463.0"/>
<point px="583.931" py="463.0"/>
<point px="605.0" py="463.0"/>
<point px="605.0" py="463.0"/>
</track>
<track>
<point px="0.0" py="53.0"/>
<point px="16.1561" py="53.0"/>
<point px="32.3123" py="53.0"/>
<point px="48.4684" py="53.0"/>
<point px="64.6245" py="53.0051"/>
<point px="80.2674" py="56.5514"/>
<point px="93.1517" py="66.1084"/>
<point px="101.123" py="80.0283"/>
<point px="103.0" py="95.9886"/>
<point px="103.0" py="112.145"/>
<point px="103.0" py="128.301"/>
<point px="103.0" py="144.457"/>
<point px="103.0" py="160.613"/>
<point px="103.0" py="176.769"/>
<point px="103.0" py="192.925"/>
<point px="103.0" py="209.082"/>
<point px="103.0" py="225.238"/>
<point px="103.0" py="241.394"/>
<point px="103.0" py="257.55"/>
<point px="103.0" py="273.706"/>
<point px="103.864" py="289.806"/>
<point px="109.78" py="304.746"/>
<point px="120.567" py="316.658"/>
<point px="134.84" py="324.039"/>
<point px="150.801" py="326.0"/>
<point px="166.958" py="326.0"/>
<point px="183.114" py="326.0"/>
<point px="199.27" py="326.0"/>
<point px="215.423" py="325.883"/>
<point px="231.085" py="322.219"/>
<point px="244.763" py="313.752"/>
<point px="255.065" py="301.398"/>
<point px="260.911" py="286.413"/>
<point px="262.0" py="270.332"/>
<point px="262.0" py="254.176"/>
<point px="262.0" py="238.02"/>
<point px="262.0" py="221.864"/>
<point px="262.0" py="205.708"/>
<point px="262.0" py="189.552"/>
<point px="262.0" py="173.396"/>
<point px="262.0" py="157.239"/>
<point px="262.0" py="141.083"/>
<point px="262.0" py="124.927"/>
<point px="262.165" py="108.775"/>
<point px="265.796" py="93.0955"/>
<point px="273.908" py="79.1929"/>
<point px="285.743" py="68.2832"/>
<point px="300.262" py="61.3362"/>
<point px="316.187" py="59.0"/>
<point px="332.343" py="59.0"/>
<point px="348.5" py="59.0"/>
<point px="364.656" py="59.0"/>
<point px="380.812" py="59.0"/>
<point px="396.968" py="59.0"/>
<point px="413.124" py="59.0"/>
<point px="429.28" py="59.0"/>
<point px="445.436" py="59.0"/>
<point px="461.593" py="59.0"/>
<point px="477.749" py="59.0"/>
<point px="493.724" py="60.9988"/>
<point px="508.431" py="67.5445"/>
<point px="520.617" py="78.0638"/>
<point px="529.257" py="91.6469"/>
<point px="533.575" py="107.154"/>
<point px="534.0" py="123.292"/>
<point px="534.0" py="139.449"/>
<point px="534.0" py="155.605"/>
<point px="534.0" py="171.761"/>
<point px="534.0" py="187.917"/>
<point px="534.0" py="204.073"/>
<point px="533.556" py="220.211"/>
<point px="529.568" py="235.823"/>
<point px="521.903" py="250.0"/>
<point px="511.041" py="261.903"/>
<point px="497.454" py="270.544"/>
<point px="481.926" py="274.748"/>
<point px="465.778" py="275.0"/>
<point px="449.629" py="275.241"/>
<point px="434.095" py="279.359"/>
<point px="421.563" py="289.33"/>
<point px="414.583" py="303.77"/>
<point px="413.0" py="319.797"/>
<point px="413.0" py="335.953"/>
<point px="413.0" py="352.109"/>
<point px="413.0" py="368.265"/>
<point px="413.0" py="384.421"/>
<point px="413.253" py="400.57"/>
<point px="417.018" py="416.219"/>
<point px="425.657" py="429.764"/>
<point px="438.842" py="438.893"/>
<point px="454.595" py="441.997"/>
<point px="470.751" py="442.0"/>
<point px="486.907" py="442.0"/>
<point px="503.063" py="442.0"/>
<point px="519.219" py="442.0"/>
<point px="535.375" py="442.0"/>
<point px="551.532" py="442.0"/>
<point px="567.688" py="442.0"/>
<point px="583.844" py="442.0"/>
<point px="605.0" py="442.0"/>
<point px="605.0" py="442.0"/>
</track>
<track>
<point px="600.0" py="442.0"/>
<point px="583.844" py="442.0"/>
<point px="567.688" py="442.0"/>
<point px="551.532" py="442.0"/>
<point px="535.375" py="442.0"/>
<point px="519.219" py="442.0"/>
<point px="503.063" py="442.0"/>
<point px="486.907" py="442.0"/>
<point px="470.751" py="442.0"/>
<point px="454.595" py="441.997"/>
<point px="438.842" py="438.893"/>
<point px="425.657" py="429.764"/>
<point px="417.018" py="416.219"/>
<point px="413.253" py="400.57"/>
<point px="413.0" py="384.421"/>
<point px="413.0" py="368.265"/>
<point px="413.0" py="352.109"/>
<point px="413.0" py="335.953"/>
<point px="413.0" py="319.797"/>
<point px="414.583" py="303.77"/>
<point px="421.563" py="289.33"/>
<point px="434.095" py="279.359"/>
<point px="449.629" py="275.241"/>
<point px="465.778" py="275.0"/>
<point px="481.926" py="274.748"/>
<point px="497.454" py="270.545"/>
<point px="511.041" py="261.903"/>
<point px="521.903" py="250.0"/>
<point px="529.568" py="235.823"/>
<point px="533.556" py="220.211"/>
<point px="534.0" py="204.073"/>
<point px="534.0" py="187.917"/>
<point px="534.0" py="171.761"/>
<point px="534.0" py="155.605"/>
<point px="534.0" py="139.449"/>
<point px="534.0" py="123.292"/>
<point px="533.575" py="107.154"/>
<point px="529.257" py="91.6469"/>
<point px="520.617" py="78.0638"/>
<point px="508.431" py="67.5445"/>
<point px="493.724" py="60.9988"/>
<point px="477.749" py="59.0"/>
<point px="461.593" py="59.0"/>
<point px="445.436" py="59.0"/>
<point px="429.28" py="59.0"/>
<point px="413.124" py="59.0"/>
<point px="396.968" py="59.0"/>
<point px="380.812" py="59.0"/>
<point px="364.656" py="59.0"/>
<point px="348.5" py="59.0"/>
<point px="332.343" py="59.0"/>
<point px="316.187" py="59.0"/>
<point px="300.262" py="61.3362"/>
<point px="285.743" py="68.2832"/>
<point px="273.908" py="79.193"/>
<point px="265.796" py="93.0956"/>
<point px="262.165" py="108.775"/>
<point px="262.0" py="124.927"/>
<point px="262.0" py="141.083"/>
<point px="262.0" py="157.24"/>
<point px="262.0" py="173.396"/>
<point px="262.0" py="189.552"/>
<point px="262.0" py="205.708"/>
<point px="262.0" py="221.864"/>
<point px="262.0" py="238.02"/>
<point px="262.0" py="254.176"/>
<point px="262.0" py="270.332"/>
<point px="260.911" py="286.413"/>
<point px="255.065" py="301.398"/>
<point px="244.763" py="313.752"/>
<point px="231.085" py="322.219"/>
<point px="215.423" py="325.883"/>
<point px="199.27" py="326.0"/>
<point px="183.114" py="326.0"/>
<point px="166.958" py="326.0"/>
<point px="150.801" py="326.0"/>
<point px="134.84" py="324.039"/>
<point px="120.567" py="316.658"/>
<point px="109.78" py="304.745"/>
<point px="103.864" py="289.806"/>
<point px="103.0" py="273.706"/>
<point px="103.0" py="257.55"/>
<point px="103.0" py="241.394"/>
<point px="103.0" py="225.238"/>
<point px="103.0" py="209.081"/>
<point px="103.0" py="192.925"/>
<point px="103.0" py="176.769"/>
<point px="103.0" py="160.613"/>
<point px="103.0" py="144.457"/>
<point px="103.0" py="128.301"/>
<point px="103.0" py="112.145"/>
<point px="103.0" py="95.9885"/>
<point px="101.123" py="80.0282"/>
<point px="93.1516" py="66.1084"/>
<point px="80.2674" py="56.5514"/>
<point px="64.6245" py="53.0051"/>
<point px="48.4684" py="53.0"/>
<point px="32.3123" py="53.0"/>
<point px="16.1562" py="53.0"/>
<point px="0.0" py="53.0"/>
<point px="0.0" py="53.0"/>
</track>
<track>
<point px="600.0" py="463.0"/>
<point px="583.931" py="463.0"/>
<point px="567.863" py="463.0"/>
<point px="551.794" py="463.0"/>
<point px="535.725" py="463.0"/>
<point px="519.657" py="463.0"/>
<point px="503.588" py="463.0"/>
<point px="487.519" py="463.0"/>
<point px="471.451" py="463.0"/>
<point px="455.382" py="463.0"/>
<point px="439.419" py="461.693"/>
<point px="424.568" py="455.694"/>
<point px="411.605" py="446.254"/>
<point px="400.865" py="434.339"/>
<point px="392.82" py="420.467"/>
<point px="388.41" py="405.07"/>
<point px="388.0" py="389.019"/>
<point px="388.0" py="372.951"/>
<point px="388.0" py="356.882"/>
<point px="388.0" py="340.813"/>
<point px="388.0" py="324.745"/>
<point px="388.583" py="308.707"/>
<point px="393.42" py="293.442"/>
<point px="402.01" py="279.905"/>
<point px="413.358" py="268.572"/>
<point px="426.87" py="259.938"/>
<point px="442.057" py="254.841"/>
<point px="458.074" py="254.0"/>
<point px="474.142" py="253.964"/>
<point px="489.821" py="250.865"/>
<point px="502.391" py="241.179"/>
<point px="508.69" py="226.531"/>
<point px="510.0" py="210.55"/>
<point px="510.0" py="194.482"/>
<point px="510.0" py="178.413"/>
<point px="510.0" py="162.344"/>
<point px="510.0" py="146.276"/>
<point px="510.0" py="130.207"/>
<point px="510.0" py="114.138"/>
<point px="508.274" py="98.2129"/>
<point px="500.385" py="84.4638"/>
<point px="486.02" py="77.7589"/>
<point px="469.995" py="77.0"/>
<point px="453.926" py="77.0"/>
<point px="437.858" py="77.0"/>
<point px="421.789" py="77.0"/>
<point px="405.72" py="77.0"/>
<point px="389.652" py="77.0"/>
<point px="373.583" py="77.0"/>
<point px="357.515" py="77.0"/>
<point px="341.446" py="77.0"/>
<point px="325.377" py="77.0"/>
<point px="309.425" py="78.4487"/>
<point px="295.407" py="85.9328"/>
<point px="287.241" py="99.5692"/>
<point px="285.003" py="115.423"/>
<point px="285.0" py="131.491"/>
<point px="285.0" py="147.56"/>
<point px="285.0" py="163.629"/>
<point px="285.0" py="179.697"/>
<point px="285.0" py="195.766"/>
<point px="285.0" py="211.835"/>
<point px="285.0" py="227.903"/>
<point px="285.0" py="243.972"/>
<point px="285.0" py="260.041"/>
<point px="285.0" py="276.109"/>
<point px="283.01" py="291.993"/>
<point px="276.753" py="306.749"/>
<point px="267.369" py="319.758"/>
<point px="255.607" py="330.669"/>
<point px="241.92" py="339.031"/>
<point px="226.705" py="344.063"/>
<point px="210.696" py="345.0"/>
<point px="194.627" py="345.0"/>
<point px="178.559" py="345.0"/>
<point px="162.49" py="345.0"/>
<point px="146.425" py="344.863"/>
<point px="130.813" py="341.299"/>
<point px="116.58" py="333.915"/>
<point px="104.203" py="323.71"/>
<point px="94.1098" py="311.243"/>
<point px="86.9913" py="296.881"/>
<point px="84.0163" py="281.156"/>
<point px="84.0" py="265.087"/>
<point px="84.0" py="249.018"/>
<point px="84.0" py="232.95"/>
<point px="84.0" py="216.881"/>
<point px="84.0" py="200.812"/>
<point px="84.0" py="184.744"/>
<point px="84.0" py="168.675"/>
<point px="84.0" py="152.606"/>
<point px="84.0" py="136.538"/>
<point px="83.9971" py="120.469"/>
<point px="82.0435" py="104.562"/>
<point px="75.3686" py="90.0477"/>
<point px="63.3912" py="79.5364"/>
<point px="48.1758" py="74.6389"/>
<point px="32.1374" py="74.0"/>
<point px="16.0687" py="74.0"/>
<point px="0.0" py="74.0"/>
<point px="0.0" py="74.0"/>
</track>
</Level>
<Level pointcount="100"> <!--4 level-->
<track>
<point px="209.0" py="0.0"/>
<point px="209.0" py="16.0445"/>
<point px="209.0" py="32.089"/>
<point px="209.0" py="48.1336"/>
<point px="207.672" py="64.0246"/>
<point px="196.261" py="74.5441"/>
<point px="180.476" py="76.9879"/>
<point px="164.432" py="77.0"/>
<point px="148.387" py="77.0"/>
<point px="132.343" py="77.0"/>
<point px="116.298" py="77.0"/>
<point px="100.254" py="77.0"/>
<point px="85.0428" py="80.5824"/>
<point px="74.0817" py="92.1766"/>
<point px="69.9999" py="107.332"/>
<point px="70.0" py="123.377"/>
<point px="70.0" py="139.422"/>
<point px="70.0" py="155.466"/>
<point px="70.0" py="171.511"/>
<point px="70.0" py="187.555"/>
<point px="70.0" py="203.6"/>
<point px="69.9999" py="219.644"/>
<point px="69.9999" py="235.689"/>
<point px="70.0" py="251.733"/>
<point px="70.0" py="267.778"/>
<point px="70.0" py="283.822"/>
<point px="70.0" py="299.867"/>
<point px="70.0" py="315.911"/>
<point px="70.0" py="331.956"/>
<point px="70.0" py="348.0"/>
<point px="70.0" py="364.045"/>
<point px="70.0" py="380.089"/>
<point px="70.0" py="396.134"/>
<point px="76.0714" py="410.526"/>
<point px="88.7488" py="420.115"/>
<point px="104.679" py="421.0"/>
<point px="120.723" py="421.0"/>
<point px="136.768" py="421.0"/>
<point px="152.812" py="421.0"/>
<point px="168.857" py="421.0"/>
<point px="184.901" py="421.0"/>
<point px="200.946" py="421.0"/>
<point px="216.99" py="421.0"/>
<point px="233.035" py="421.0"/>
<point px="249.079" py="421.0"/>
<point px="265.124" py="421.0"/>
<point px="281.168" py="421.0"/>
<point px="297.213" py="421.0"/>
<point px="313.257" py="421.0"/>
<point px="329.302" py="421.0"/>
<point px="345.346" py="421.0"/>
<point px="361.391" py="421.0"/>
<point px="377.435" py="421.0"/>
<point px="393.48" py="421.0"/>
<point px="409.525" py="421.0"/>
<point px="425.569" py="421.0"/>
<point px="441.613" py="421.0"/>
<point px="457.658" py="421.0"/>
<point px="473.703" py="421.0"/>
<point px="489.747" py="421.0"/>
<point px="505.232" py="418.045"/>
<point px="517.474" py="407.804"/>
<point px="523.0" py="393.23"/>
<point px="523.0" py="377.185"/>
<point px="523.0" py="361.141"/>
<point px="523.0" py="345.096"/>
<point px="523.0" py="329.051"/>
<point px="523.0" py="313.007"/>
<point px="523.0" py="296.962"/>
<point px="523.0" py="280.918"/>
<point px="523.0" py="264.873"/>
<point px="523.0" py="248.829"/>
<point px="520.139" py="233.552"/>
<point px="506.453" py="225.51"/>
<point px="490.574" py="224.0"/>
<point px="474.529" py="224.0"/>
<point px="458.485" py="224.0"/>
<point px="442.44" py="224.0"/>
<point px="426.396" py="224.0"/>
<point px="410.658" py="221.919"/>
<point px="399.76" py="210.626"/>
<point px="398.0" py="194.819"/>
<point px="398.0" py="178.775"/>
<point px="398.0" py="162.73"/>
<point px="398.0" py="146.686"/>
<point px="398.0" py="130.641"/>
<point px="399.56" py="114.772"/>
<point px="408.794" py="101.918"/>
<point px="423.514" py="96.1101"/>
<point px="439.555" py="96.0"/>
<point px="455.599" py="96.0"/>
<point px="471.644" py="96.0"/>
<point px="487.688" py="96.0"/>
<point px="503.733" py="96.0"/>
<point px="519.777" py="96.0"/>
<point px="535.822" py="96.0"/>
<point px="551.867" py="96.0"/>
<point px="567.911" py="96.0"/>
<point px="583.955" py="96.0"/>
<point px="605.0" py="96.0"/>
<point px="605.0" py="96.0"/>
</track>
<track>
<point px="235.0" py="0.504471"/>
<point px="235.0" py="16.225"/>
<point px="235.0" py="31.9456"/>
<point px="235.0" py="47.6661"/>
<point px="235.0" py="63.3867"/>
<point px="232.534" py="78.6587"/>
<point px="221.5" py="89.6585"/>
<point px="207.271" py="96.2113"/>
<point px="191.729" py="98.0"/>
<point px="176.009" py="98.0"/>
<point px="160.288" py="98.0"/>
<point px="144.568" py="98.0"/>
<point px="128.847" py="98.0"/>
<point px="113.133" py="98.1706"/>
<point px="99.2158" py="104.855"/>
<point px="92.2365" py="118.627"/>
<point px="92.0" py="134.336"/>
<point px="92.0" py="150.057"/>
<point px="92.0" py="165.778"/>
<point px="92.0" py="181.498"/>
<point px="92.0" py="197.219"/>
<point px="92.0" py="212.939"/>
<point px="92.0" py="228.66"/>
<point px="92.0" py="244.38"/>
<point px="92.0" py="260.101"/>
<point px="92.0" py="275.821"/>
<point px="92.0" py="291.542"/>
<point px="92.0" py="307.262"/>
<point px="92.0" py="322.983"/>
<point px="92.0" py="338.704"/>
<point px="92.0" py="354.424"/>
<point px="92.0" py="370.145"/>
<point px="92.2393" py="385.852"/>
<point px="101.188" py="398.099"/>
<point px="116.603" py="400.0"/>
<point px="132.323" py="400.0"/>
<point px="148.044" py="400.0"/>
<point px="163.765" py="400.0"/>
<point px="179.485" py="400.0"/>
<point px="195.206" py="400.0"/>
<point px="210.926" py="400.0"/>
<point px="226.647" py="400.0"/>
<point px="242.367" py="400.0"/>
<point px="258.088" py="400.0"/>
<point px="273.808" py="400.0"/>
<point px="289.529" py="400.0"/>
<point px="305.25" py="400.0"/>
<point px="320.97" py="400.0"/>
<point px="336.691" py="400.0"/>
<point px="352.411" py="400.0"/>
<point px="368.132" py="400.0"/>
<point px="383.852" py="400.0"/>
<point px="399.573" py="400.0"/>
<point px="415.293" py="400.0"/>
<point px="431.014" py="400.0"/>
<point px="446.734" py="400.0"/>
<point px="462.455" py="400.0"/>
<point px="478.164" py="399.77"/>
<point px="491.724" py="392.423"/>
<point px="496.0" py="377.801"/>
<point px="496.0" py="362.08"/>
<point px="496.0" py="346.359"/>
<point px="496.0" py="330.639"/>
<point px="496.0" py="314.918"/>
<point px="496.0" py="299.198"/>
<point px="496.0" py="283.477"/>
<point px="496.0" py="267.757"/>
<point px="495.129" py="252.098"/>
<point px="485.129" py="241.273"/>
<point px="469.424" py="241.0"/>
<point px="453.704" py="241.0"/>
<point px="437.983" py="241.0"/>
<point px="422.263" py="241.0"/>
<point px="406.542" py="241.0"/>
<point px="390.956" py="239.691"/>
<point px="377.419" py="231.973"/>
<point px="372.0" py="217.857"/>
<point px="372.0" py="202.136"/>
<point px="372.0" py="186.416"/>
<point px="372.0" py="170.695"/>
<point px="372.0" py="154.974"/>
<point px="372.0" py="139.254"/>
<point px="372.0" py="123.533"/>
<point px="372.0" py="107.813"/>
<point px="372.76" py="92.1862"/>
<point px="381.813" py="79.4956"/>
<point px="395.633" py="73.0"/>
<point px="411.353" py="73.0"/>
<point px="427.074" py="73.0"/>
<point px="442.794" py="73.0"/>
<point px="458.515" py="73.0"/>
<point px="474.236" py="73.0"/>
<point px="489.956" py="73.0"/>
<point px="505.677" py="73.0"/>
<point px="521.397" py="73.0"/>
<point px="537.118" py="73.0"/>
<point px="552.838" py="73.0"/>
<point px="568.559" py="73.0"/>
<point px="584.279" py="73.0"/>
<point px="605.0" py="73.0"/>
<point px="605.0" py="73.0"/>
</track>
<track>
<point px="600.0" py="73.0"/>
<point px="584.279" py="73.0"/>
<point px="568.559" py="73.0"/>
<point px="552.838" py="73.0"/>
<point px="537.118" py="73.0"/>
<point px="521.397" py="73.0"/>
<point px="505.677" py="73.0"/>
<point px="489.956" py="73.0"/>
<point px="474.236" py="73.0"/>
<point px="458.515" py="73.0"/>
<point px="442.794" py="73.0"/>
<point px="427.074" py="73.0"/>
<point px="411.353" py="73.0"/>
<point px="395.633" py="73.0"/>
<point px="381.813" py="79.4955"/>
<point px="372.76" py="92.1862"/>
<point px="372.0" py="107.813"/>
<point px="372.0" py="123.533"/>
<point px="372.0" py="139.254"/>
<point px="372.0" py="154.974"/>
<point px="372.0" py="170.695"/>
<point px="372.0" py="186.416"/>
<point px="372.0" py="202.136"/>
<point px="372.0" py="217.857"/>
<point px="377.419" py="231.973"/>
<point px="390.956" py="239.691"/>
<point px="406.542" py="241.0"/>
<point px="422.263" py="241.0"/>
<point px="437.983" py="241.0"/>
<point px="453.704" py="241.0"/>
<point px="469.424" py="241.0"/>
<point px="485.128" py="241.273"/>
<point px="495.129" py="252.098"/>
<point px="496.0" py="267.757"/>
<point px="496.0" py="283.477"/>
<point px="496.0" py="299.198"/>
<point px="496.0" py="314.918"/>
<point px="496.0" py="330.639"/>
<point px="496.0" py="346.359"/>
<point px="496.0" py="362.08"/>
<point px="496.0" py="377.801"/>
<point px="491.724" py="392.423"/>
<point px="478.164" py="399.77"/>
<point px="462.455" py="400.0"/>
<point px="446.734" py="400.0"/>
<point px="431.014" py="400.0"/>
<point px="415.293" py="400.0"/>
<point px="399.573" py="400.0"/>
<point px="383.852" py="400.0"/>
<point px="368.132" py="400.0"/>
<point px="352.411" py="400.0"/>
<point px="336.691" py="400.0"/>
<point px="320.97" py="400.0"/>
<point px="305.249" py="400.0"/>
<point px="289.529" py="400.0"/>
<point px="273.808" py="400.0"/>
<point px="258.088" py="400.0"/>
<point px="242.367" py="400.0"/>
<point px="226.647" py="400.0"/>
<point px="210.926" py="400.0"/>
<point px="195.206" py="400.0"/>
<point px="179.485" py="400.0"/>
<point px="163.765" py="400.0"/>
<point px="148.044" py="400.0"/>
<point px="132.324" py="400.0"/>
<point px="116.603" py="400.0"/>
<point px="101.188" py="398.099"/>
<point px="92.2393" py="385.852"/>
<point px="92.0" py="370.145"/>
<point px="92.0" py="354.424"/>
<point px="92.0" py="338.703"/>
<point px="92.0" py="322.983"/>
<point px="92.0" py="307.262"/>
<point px="92.0" py="291.542"/>
<point px="92.0" py="275.821"/>
<point px="92.0" py="260.101"/>
<point px="92.0" py="244.38"/>
<point px="92.0" py="228.66"/>
<point px="92.0" py="212.939"/>
<point px="92.0" py="197.219"/>
<point px="92.0" py="181.498"/>
<point px="92.0" py="165.778"/>
<point px="92.0" py="150.057"/>
<point px="92.0" py="134.336"/>
<point px="92.2365" py="118.627"/>
<point px="99.2157" py="104.855"/>
<point px="113.133" py="98.1706"/>
<point px="128.847" py="98.0"/>
<point px="144.567" py="98.0"/>
<point px="160.288" py="98.0"/>
<point px="176.009" py="98.0"/>
<point px="191.729" py="98.0"/>
<point px="207.271" py="96.2113"/>
<point px="221.5" py="89.6585"/>
<point px="232.534" py="78.6587"/>
<point px="235.0" py="63.3867"/>
<point px="235.0" py="47.6661"/>
<point px="235.0" py="31.9456"/>
<point px="235.0" py="16.2251"/>
<point px="235.0" py="0.504471"/>
<point px="235.0" py="0.504471"/>
</track>
<track>
<point px="600.0" py="96.0"/>
<point px="583.955" py="96.0"/>
<point px="567.911" py="96.0"/>
<point px="551.866" py="96.0"/>
<point px="535.822" py="96.0"/>
<point px="519.777" py="96.0"/>
<point px="503.733" py="96.0"/>
<point px="487.688" py="96.0"/>
<point px="471.644" py="96.0"/>
<point px="455.599" py="96.0"/>
<point px="439.555" py="96.0"/>
<point px="423.514" py="96.1101"/>
<point px="408.794" py="101.918"/>
<point px="399.56" py="114.772"/>
<point px="398.0" py="130.641"/>
<point px="398.0" py="146.686"/>
<point px="398.0" py="162.73"/>
<point px="398.0" py="178.775"/>
<point px="398.0" py="194.819"/>
<point px="399.76" py="210.626"/>
<point px="410.658" py="221.919"/>
<point px="426.396" py="224.0"/>
<point px="442.44" py="224.0"/>
<point px="458.485" py="224.0"/>
<point px="474.529" py="224.0"/>
<point px="490.574" py="224.0"/>
<point px="506.453" py="225.51"/>
<point px="520.139" py="233.552"/>
<point px="523.0" py="248.829"/>
<point px="523.0" py="264.873"/>
<point px="523.0" py="280.918"/>
<point px="523.0" py="296.962"/>
<point px="523.0" py="313.007"/>
<point px="523.0" py="329.051"/>
<point px="523.0" py="345.096"/>
<point px="523.0" py="361.14"/>
<point px="523.0" py="377.185"/>
<point px="523.0" py="393.229"/>
<point px="517.474" py="407.804"/>
<point px="505.232" py="418.045"/>
<point px="489.747" py="421.0"/>
<point px="473.703" py="421.0"/>
<point px="457.658" py="421.0"/>
<point px="441.614" py="421.0"/>
<point px="425.569" py="421.0"/>
<point px="409.524" py="421.0"/>
<point px="393.48" py="421.0"/>
<point px="377.435" py="421.0"/>
<point px="361.391" py="421.0"/>
<point px="345.346" py="421.0"/>
<point px="329.302" py="421.0"/>
<point px="313.257" py="421.0"/>
<point px="297.213" py="421.0"/>
<point px="281.168" py="421.0"/>
<point px="265.124" py="421.0"/>
<point px="249.079" py="421.0"/>
<point px="233.035" py="421.0"/>
<point px="216.99" py="421.0"/>
<point px="200.946" py="421.0"/>
<point px="184.901" py="421.0"/>
<point px="168.857" py="421.0"/>
<point px="152.812" py="421.0"/>
<point px="136.768" py="421.0"/>
<point px="120.723" py="421.0"/>
<point px="104.679" py="421.0"/>
<point px="88.7488" py="420.115"/>
<point px="76.0714" py="410.526"/>
<point px="70.0" py="396.134"/>
<point px="70.0" py="380.089"/>
<point px="70.0" py="364.045"/>
<point px="70.0" py="348.0"/>
<point px="70.0" py="331.956"/>
<point px="70.0" py="315.911"/>
<point px="69.9999" py="299.867"/>
<point px="69.9999" py="283.822"/>
<point px="70.0" py="267.778"/>
<point px="70.0" py="251.733"/>
<point px="70.0" py="235.689"/>
<point px="70.0" py="219.644"/>
<point px="70.0" py="203.6"/>
<point px="70.0" py="187.555"/>
<point px="70.0" py="171.511"/>
<point px="70.0" py="155.466"/>
<point px="70.0" py="139.421"/>
<point px="70.0" py="123.377"/>
<point px="70.0" py="107.333"/>
<point px="74.0816" py="92.1766"/>
<point px="85.0427" py="80.5824"/>
<point px="100.254" py="77.0"/>
<point px="116.299" py="77.0"/>
<point px="132.343" py="77.0"/>
<point px="148.388" py="77.0"/>
<point px="164.432" py="77.0"/>
<point px="180.477" py="76.9878"/>
<point px="196.261" py="74.5441"/>
<point px="207.672" py="64.0245"/>
<point px="209.0" py="48.1335"/>
<point px="209.0" py="32.0891"/>
<point px="209.0" py="16.0445"/>
<point px="209.0" py="0.0"/>
<point px="209.0" py="0.0"/>
</track>
</Level>
<Level pointcount="100"> <!-- Level 5-->
<track>
<point px="60.7719" py="0.0"/>
<point px="60.7719" py="15.5439"/>
<point px="60.7719" py="31.0878"/>
<point px="60.7719" py="46.6318"/>
<point px="60.7719" py="62.1757"/>
<point px="60.7719" py="77.7196"/>
<point px="60.7719" py="93.2635"/>
<point px="60.7719" py="108.807"/>
<point px="60.7719" py="124.351"/>
<point px="60.7719" py="139.895"/>
<point px="60.7719" py="155.439"/>
<point px="60.7719" py="170.983"/>
<point px="60.7719" py="186.527"/>
<point px="60.7719" py="202.071"/>
<point px="60.7719" py="217.615"/>
<point px="60.7719" py="233.159"/>
<point px="60.7719" py="248.703"/>
<point px="60.7719" py="264.247"/>
<point px="60.7719" py="279.791"/>
<point px="60.7719" py="295.334"/>
<point px="60.7719" py="310.878"/>
<point px="60.7719" py="326.422"/>
<point px="60.7719" py="341.966"/>
<point px="60.7719" py="357.51"/>
<point px="60.7719" py="373.054"/>
<point px="64.8121" py="387.632"/>
<point px="78.5733" py="393.637"/>
<point px="94.1172" py="393.637"/>
<point px="109.661" py="393.637"/>
<point px="125.205" py="393.637"/>
<point px="140.749" py="393.637"/>
<point px="156.293" py="393.637"/>
<point px="171.837" py="393.637"/>
<point px="187.381" py="393.637"/>
<point px="202.925" py="393.637"/>
<point px="218.469" py="393.637"/>
<point px="234.012" py="393.637"/>
<point px="249.556" py="393.637"/>
<point px="265.1" py="393.637"/>
<point px="280.644" py="393.637"/>
<point px="296.188" py="393.637"/>
<point px="311.732" py="393.637"/>
<point px="327.276" py="393.637"/>
<point px="342.82" py="393.637"/>
<point px="358.364" py="393.637"/>
<point px="373.908" py="393.637"/>
<point px="389.452" py="393.637"/>
<point px="404.996" py="393.637"/>
<point px="420.539" py="393.637"/>
<point px="436.083" py="393.637"/>
<point px="451.627" py="393.637"/>
<point px="467.171" py="393.637"/>
<point px="482.715" py="393.637"/>
<point px="497.238" py="388.911"/>
<point px="504.992" py="376.052"/>
<point px="505.0" py="360.508"/>
<point px="505.0" py="344.964"/>
<point px="505.0" py="329.42"/>
<point px="505.0" py="313.876"/>
<point px="505.0" py="298.332"/>
<point px="505.0" py="282.788"/>
<point px="505.0" py="267.244"/>
<point px="505.0" py="251.701"/>
<point px="505.0" py="236.157"/>
<point px="505.0" py="220.613"/>
<point px="504.889" py="205.073"/>
<point px="496.749" py="192.381"/>
<point px="482.098" py="188.0"/>
<point px="466.554" py="188.0"/>
<point px="451.01" py="188.0"/>
<point px="435.466" py="188.0"/>
<point px="419.922" py="188.0"/>
<point px="404.379" py="188.0"/>
<point px="388.835" py="188.0"/>
<point px="373.291" py="188.0"/>
<point px="357.794" py="187.256"/>
<point px="350.0" py="175.601"/>
<point px="350.0" py="160.057"/>
<point px="350.0" py="144.513"/>
<point px="350.0" py="128.969"/>
<point px="350.0" py="113.425"/>
<point px="350.0" py="97.8815"/>
<point px="350.0" py="82.3376"/>
<point px="353.199" py="67.4018"/>
<point px="366.841" py="62.0"/>
<point px="382.385" py="62.0"/>
<point px="397.929" py="62.0"/>
<point px="413.473" py="62.0"/>
<point px="429.017" py="62.0"/>
<point px="444.561" py="62.0"/>
<point px="460.105" py="62.0"/>
<point px="475.649" py="62.0"/>
<point px="491.193" py="62.0"/>
<point px="506.737" py="62.0"/>
<point px="522.28" py="62.0"/>
<point px="537.824" py="62.0"/>
<point px="553.368" py="62.0"/>
<point px="568.912" py="62.0"/>
<point px="584.456" py="62.0"/>
<point px="605.0" py="62.0"/>
<point px="605.0" py="62.0"/>
</track>
<track>
<point px="45.7719" py="0.0"/>
<point px="45.7719" py="15.8361"/>
<point px="45.7719" py="31.6722"/>
<point px="45.7719" py="47.5083"/>
<point px="45.7719" py="63.3445"/>
<point px="45.7719" py="79.1806"/>
<point px="45.7719" py="95.0167"/>
<point px="45.7719" py="110.853"/>
<point px="45.7719" py="126.689"/>
<point px="45.7719" py="142.525"/>
<point px="45.7719" py="158.361"/>
<point px="45.7719" py="174.197"/>
<point px="45.7719" py="190.033"/>
<point px="45.7719" py="205.869"/>
<point px="45.7719" py="221.706"/>
<point px="45.7719" py="237.542"/>
<point px="45.7719" py="253.378"/>
<point px="45.7719" py="269.214"/>
<point px="45.7719" py="285.05"/>
<point px="45.7719" py="300.886"/>
<point px="45.7719" py="316.722"/>
<point px="45.7719" py="332.558"/>
<point px="45.7719" py="348.395"/>
<point px="45.7719" py="364.231"/>
<point px="45.7719" py="380.067"/>
<point px="46.3349" py="395.853"/>
<point px="56.8233" py="406.855"/>
<point px="72.5771" py="407.637"/>
<point px="88.4132" py="407.637"/>
<point px="104.249" py="407.637"/>
<point px="120.085" py="407.637"/>
<point px="135.922" py="407.637"/>
<point px="151.758" py="407.637"/>
<point px="167.594" py="407.637"/>
<point px="183.43" py="407.637"/>
<point px="199.266" py="407.637"/>
<point px="215.102" py="407.637"/>
<point px="230.938" py="407.637"/>
<point px="246.774" py="407.637"/>
<point px="262.61" py="407.637"/>
<point px="278.447" py="407.637"/>
<point px="294.283" py="407.637"/>
<point px="310.119" py="407.637"/>
<point px="325.955" py="407.637"/>
<point px="341.791" py="407.637"/>
<point px="357.627" py="407.637"/>
<point px="373.463" py="407.637"/>
<point px="389.299" py="407.637"/>
<point px="405.135" py="407.637"/>
<point px="420.971" py="407.637"/>
<point px="436.807" py="407.637"/>
<point px="452.644" py="407.637"/>
<point px="468.48" py="407.637"/>
<point px="484.316" py="407.637"/>
<point px="500.114" py="407.116"/>
<point px="513.986" py="399.879"/>
<point px="519.0" py="385.521"/>
<point px="519.0" py="369.685"/>
<point px="519.0" py="353.849"/>
<point px="519.0" py="338.013"/>
<point px="519.0" py="322.176"/>
<point px="519.0" py="306.34"/>
<point px="519.0" py="290.504"/>
<point px="519.0" py="274.668"/>
<point px="519.0" py="258.832"/>
<point px="519.0" py="242.996"/>
<point px="519.0" py="227.16"/>
<point px="519.0" py="211.324"/>
<point px="519.0" py="195.488"/>
<point px="516.58" py="180.065"/>
<point px="503.378" py="173.0"/>
<point px="487.542" py="173.002"/>
<point px="471.705" py="173.006"/>
<point px="455.869" py="173.011"/>
<point px="440.033" py="173.016"/>
<point px="424.197" py="173.021"/>
<point px="408.361" py="173.025"/>
<point px="392.525" py="173.029"/>
<point px="376.706" py="172.682"/>
<point px="365.076" py="163.324"/>
<point px="364.0" py="147.592"/>
<point px="364.0" py="131.756"/>
<point px="364.0" py="115.92"/>
<point px="364.0" py="100.084"/>
<point px="365.554" py="84.4382"/>
<point px="378.313" py="76.4752"/>
<point px="394.13" py="76.0"/>
<point px="409.967" py="76.0"/>
<point px="425.803" py="76.0"/>
<point px="441.639" py="76.0"/>
<point px="457.475" py="76.0"/>
<point px="473.311" py="76.0"/>
<point px="489.147" py="76.0"/>
<point px="504.983" py="76.0"/>
<point px="520.819" py="76.0"/>
<point px="536.656" py="76.0"/>
<point px="552.492" py="76.0"/>
<point px="568.328" py="76.0"/>
<point px="584.164" py="76.0"/>
<point px="605.0" py="76.0"/>
<point px="605.0" py="76.0"/>
</track>
<track>
<point px="600.0" py="76.0"/>
<point px="584.164" py="76.0"/>
<point px="568.328" py="76.0"/>
<point px="552.492" py="76.0"/>
<point px="536.656" py="76.0"/>
<point px="520.819" py="76.0"/>
<point px="504.983" py="76.0"/>
<point px="489.147" py="76.0"/>
<point px="473.311" py="76.0"/>
<point px="457.475" py="76.0"/>
<point px="441.639" py="76.0"/>
<point px="425.803" py="76.0"/>
<point px="409.967" py="76.0"/>
<point px="394.131" py="76.0"/>
<point px="378.313" py="76.4752"/>
<point px="365.554" py="84.4383"/>
<point px="364.0" py="100.084"/>
<point px="364.0" py="115.92"/>
<point px="364.0" py="131.756"/>
<point px="364.0" py="147.592"/>
<point px="365.076" py="163.324"/>
<point px="376.706" py="172.682"/>
<point px="392.525" py="173.029"/>
<point px="408.361" py="173.025"/>
<point px="424.197" py="173.021"/>
<point px="440.033" py="173.016"/>
<point px="455.869" py="173.011"/>
<point px="471.705" py="173.006"/>
<point px="487.542" py="173.002"/>
<point px="503.378" py="173.0"/>
<point px="516.58" py="180.065"/>
<point px="519.0" py="195.488"/>
<point px="519.0" py="211.324"/>
<point px="519.0" py="227.16"/>
<point px="519.0" py="242.996"/>
<point px="519.0" py="258.832"/>
<point px="519.0" py="274.668"/>
<point px="519.0" py="290.504"/>
<point px="519.0" py="306.34"/>
<point px="519.0" py="322.177"/>
<point px="519.0" py="338.013"/>
<point px="519.0" py="353.849"/>
<point px="519.0" py="369.685"/>
<point px="519.0" py="385.521"/>
<point px="513.985" py="399.879"/>
<point px="500.114" py="407.116"/>
<point px="484.316" py="407.637"/>
<point px="468.48" py="407.637"/>
<point px="452.644" py="407.637"/>
<point px="436.807" py="407.637"/>
<point px="420.971" py="407.637"/>
<point px="405.135" py="407.637"/>
<point px="389.299" py="407.637"/>
<point px="373.463" py="407.637"/>
<point px="357.627" py="407.637"/>
<point px="341.791" py="407.637"/>
<point px="325.955" py="407.637"/>
<point px="310.119" py="407.637"/>
<point px="294.282" py="407.637"/>
<point px="278.446" py="407.637"/>
<point px="262.61" py="407.637"/>
<point px="246.774" py="407.637"/>
<point px="230.938" py="407.637"/>
<point px="215.102" py="407.637"/>
<point px="199.266" py="407.637"/>
<point px="183.43" py="407.637"/>
<point px="167.594" py="407.637"/>
<point px="151.758" py="407.637"/>
<point px="135.922" py="407.637"/>
<point px="120.085" py="407.637"/>
<point px="104.249" py="407.637"/>
<point px="88.4132" py="407.637"/>
<point px="72.5771" py="407.637"/>
<point px="56.8233" py="406.855"/>
<point px="46.3349" py="395.853"/>
<point px="45.7719" py="380.067"/>
<point px="45.7719" py="364.23"/>
<point px="45.7719" py="348.394"/>
<point px="45.7719" py="332.558"/>
<point px="45.7719" py="316.722"/>
<point px="45.7719" py="300.886"/>
<point px="45.7719" py="285.05"/>
<point px="45.7719" py="269.214"/>
<point px="45.7719" py="253.378"/>
<point px="45.7719" py="237.542"/>
<point px="45.7719" py="221.705"/>
<point px="45.7719" py="205.869"/>
<point px="45.7719" py="190.033"/>
<point px="45.7719" py="174.197"/>
<point px="45.7719" py="158.361"/>
<point px="45.7719" py="142.525"/>
<point px="45.7719" py="126.689"/>
<point px="45.7719" py="110.853"/>
<point px="45.7719" py="95.0166"/>
<point px="45.7719" py="79.1805"/>
<point px="45.7719" py="63.3444"/>
<point px="45.7719" py="47.5082"/>
<point px="45.7719" py="31.6722"/>
<point px="45.7719" py="15.8361"/>
<point px="45.7719" py="0.0"/>
<point px="45.7719" py="0.0"/>
</track>
<track>
<point px="600.0" py="62.0"/>
<point px="584.456" py="62.0"/>
<point px="568.912" py="62.0"/>
<point px="553.368" py="62.0"/>
<point px="537.824" py="62.0"/>
<point px="522.28" py="62.0"/>
<point px="506.736" py="62.0"/>
<point px="491.193" py="62.0"/>
<point px="475.649" py="62.0"/>
<point px="460.105" py="62.0"/>
<point px="444.561" py="62.0"/>
<point px="429.017" py="62.0"/>
<point px="413.473" py="62.0"/>
<point px="397.929" py="62.0"/>
<point px="382.385" py="62.0"/>
<point px="366.841" py="62.0"/>
<point px="353.199" py="67.4019"/>
<point px="350.0" py="82.3376"/>
<point px="350.0" py="97.8816"/>
<point px="350.0" py="113.425"/>
<point px="350.0" py="128.969"/>
<point px="350.0" py="144.513"/>
<point px="350.0" py="160.057"/>
<point px="350.0" py="175.601"/>
<point px="357.795" py="187.256"/>
<point px="373.291" py="188.0"/>
<point px="388.835" py="188.0"/>
<point px="404.379" py="188.0"/>
<point px="419.923" py="188.0"/>
<point px="435.467" py="188.0"/>
<point px="451.01" py="188.0"/>
<point px="466.554" py="188.0"/>
<point px="482.098" py="188.0"/>
<point px="496.749" py="192.381"/>
<point px="504.889" py="205.073"/>
<point px="505.0" py="220.613"/>
<point px="505.0" py="236.157"/>
<point px="505.0" py="251.701"/>
<point px="505.0" py="267.245"/>
<point px="505.0" py="282.789"/>
<point px="505.0" py="298.332"/>
<point px="505.0" py="313.876"/>
<point px="505.0" py="329.42"/>
<point px="505.0" py="344.964"/>
<point px="505.0" py="360.508"/>
<point px="504.992" py="376.052"/>
<point px="497.238" py="388.911"/>
<point px="482.715" py="393.637"/>
<point px="467.171" py="393.637"/>
<point px="451.627" py="393.637"/>
<point px="436.083" py="393.637"/>
<point px="420.539" py="393.637"/>
<point px="404.995" py="393.637"/>
<point px="389.451" py="393.637"/>
<point px="373.908" py="393.637"/>
<point px="358.364" py="393.637"/>
<point px="342.82" py="393.637"/>
<point px="327.276" py="393.637"/>
<point px="311.732" py="393.637"/>
<point px="296.188" py="393.637"/>
<point px="280.644" py="393.637"/>
<point px="265.1" py="393.637"/>
<point px="249.556" py="393.637"/>
<point px="234.012" py="393.637"/>
<point px="218.468" py="393.637"/>
<point px="202.924" py="393.637"/>
<point px="187.381" py="393.637"/>
<point px="171.837" py="393.637"/>
<point px="156.293" py="393.637"/>
<point px="140.749" py="393.637"/>
<point px="125.205" py="393.637"/>
<point px="109.661" py="393.637"/>
<point px="94.1171" py="393.637"/>
<point px="78.5733" py="393.637"/>
<point px="64.8121" py="387.632"/>
<point px="60.7719" py="373.054"/>
<point px="60.7719" py="357.51"/>
<point px="60.7719" py="341.966"/>
<point px="60.7719" py="326.422"/>
<point px="60.7719" py="310.878"/>
<point px="60.7719" py="295.335"/>
<point px="60.7719" py="279.791"/>
<point px="60.7719" py="264.247"/>
<point px="60.7719" py="248.703"/>
<point px="60.7719" py="233.159"/>
<point px="60.7719" py="217.615"/>
<point px="60.7719" py="202.071"/>
<point px="60.7719" py="186.527"/>
<point px="60.7719" py="170.983"/>
<point px="60.7719" py="155.439"/>
<point px="60.7719" py="139.895"/>
<point px="60.7719" py="124.351"/>
<point px="60.7719" py="108.807"/>
<point px="60.7719" py="93.2635"/>
<point px="60.7719" py="77.7196"/>
<point px="60.7719" py="62.1756"/>
<point px="60.7719" py="46.6317"/>
<point px="60.7719" py="31.0879"/>
<point px="60.7719" py="15.5439"/>
<point px="60.7719" py="0.0"/>
<point px="60.7719" py="0.0"/>
</track>
</Level>
<Level pointcount="100"> <!-- Level 6-->
<track>
<point px="0.0" py="99.0"/>
<point px="9.04419" py="99.0"/>
<point px="18.0884" py="99.0"/>
<point px="27.1326" py="99.0"/>
<point px="36.1768" py="99.0"/>
<point px="45.221" py="99.0"/>
<point px="54.2652" py="99.0"/>
<point px="63.3094" py="99.0"/>
<point px="72.3535" py="99.0"/>
<point px="81.3978" py="99.0"/>
<point px="90.442" py="99.0"/>
<point px="99.4861" py="99.0"/>
<point px="108.53" py="99.0"/>
<point px="117.575" py="99.0"/>
<point px="126.619" py="99.0"/>
<point px="135.663" py="99.0"/>
<point px="144.707" py="99.0"/>
<point px="153.751" py="99.0"/>
<point px="162.796" py="99.0"/>
<point px="171.84" py="99.0"/>
<point px="180.884" py="99.0"/>
<point px="189.928" py="99.0"/>
<point px="198.972" py="99.0"/>
<point px="208.016" py="99.0"/>
<point px="217.061" py="99.0"/>
<point px="226.105" py="99.0"/>
<point px="235.149" py="99.0"/>
<point px="244.193" py="99.0"/>
<point px="253.237" py="99.0"/>
<point px="262.282" py="99.0"/>
<point px="271.326" py="99.0"/>
<point px="280.37" py="99.0"/>
<point px="289.414" py="99.0"/>
<point px="298.458" py="99.0"/>
<point px="307.503" py="99.0"/>
<point px="316.547" py="99.0"/>
<point px="325.591" py="99.0"/>
<point px="334.635" py="99.0"/>
<point px="343.679" py="99.0"/>
<point px="352.724" py="99.0"/>
<point px="361.768" py="99.0"/>
<point px="370.812" py="99.0"/>
<point px="379.856" py="99.0"/>
<point px="388.9" py="99.0"/>
<point px="397.944" py="99.0"/>
<point px="406.989" py="99.0"/>
<point px="416.033" py="99.0"/>
<point px="425.077" py="99.0"/>
<point px="434.121" py="99.0"/>
<point px="443.165" py="99.0"/>
<point px="452.143" py="99.9021"/>
<point px="460.634" py="102.949"/>
<point px="468.132" py="107.966"/>
<point px="474.204" py="114.639"/>
<point px="478.485" py="122.58"/>
<point px="480.706" py="131.324"/>
<point px="481.0" py="140.356"/>
<point px="481.0" py="149.4"/>
<point px="481.0" py="158.444"/>
<point px="481.0" py="167.488"/>
<point px="481.0" py="176.533"/>
<point px="481.0" py="185.577"/>
<point px="481.0" py="194.621"/>
<point px="481.0" py="203.665"/>
<point px="481.0" py="212.709"/>
<point px="481.0" py="221.753"/>
<point px="481.0" py="230.798"/>
<point px="481.0" py="239.842"/>
<point px="481.0" py="248.886"/>
<point px="481.0" py="257.93"/>
<point px="481.0" py="266.974"/>
<point px="481.0" py="276.019"/>
<point px="481.0" py="285.063"/>
<point px="481.0" py="294.107"/>
<point px="481.0" py="303.151"/>
<point px="481.0" py="312.195"/>
<point px="481.0" py="321.24"/>
<point px="481.0" py="330.284"/>
<point px="481.0" py="339.328"/>
<point px="481.0" py="348.372"/>
<point px="481.0" py="357.416"/>
<point px="481.0" py="366.461"/>
<point px="481.0" py="375.505"/>
<point px="481.004" py="384.549"/>
<point px="481.99" py="393.525"/>
<point px="484.72" py="402.131"/>
<point px="489.085" py="410.036"/>
<point px="494.908" py="416.938"/>
<point px="501.958" py="422.579"/>
<point px="509.973" py="426.738"/>
<point px="518.648" py="429.241"/>
<point px="527.646" py="430.0"/>
<point px="536.691" py="430.0"/>
<point px="545.735" py="430.0"/>
<point px="554.779" py="430.0"/>
<point px="563.823" py="430.0"/>
<point px="572.867" py="430.0"/>
<point px="581.912" py="430.0"/>
<point px="590.956" py="430.0"/>
<point px="605.0" py="430.0"/>
<point px="605.0" py="430.0"/>
</track>
<track>
<point px="0.0" py="82.0"/>
<point px="9.01221" py="82.0"/>
<point px="18.0244" py="82.0"/>
<point px="27.0366" py="82.0"/>
<point px="36.0489" py="82.0"/>
<point px="45.0611" py="82.0"/>
<point px="54.0733" py="82.0"/>
<point px="63.0855" py="82.0"/>
<point px="72.0977" py="82.0"/>
<point px="81.1099" py="82.0"/>
<point px="90.1221" py="82.0"/>
<point px="99.1343" py="82.0"/>
<point px="108.147" py="82.0"/>
<point px="117.159" py="82.0"/>
<point px="126.171" py="82.0"/>
<point px="135.183" py="82.0"/>
<point px="144.195" py="82.0"/>
<point px="153.208" py="82.0"/>
<point px="162.22" py="82.0"/>
<point px="171.232" py="82.0"/>
<point px="180.244" py="82.0"/>
<point px="189.256" py="82.0"/>
<point px="198.269" py="82.0"/>
<point px="207.281" py="82.0"/>
<point px="216.293" py="82.0"/>
<point px="225.305" py="82.0"/>
<point px="234.317" py="82.0"/>
<point px="243.33" py="82.0"/>
<point px="252.342" py="82.0"/>
<point px="261.354" py="82.0"/>
<point px="270.366" py="82.0"/>
<point px="279.379" py="82.0"/>
<point px="288.391" py="82.0"/>
<point px="297.403" py="82.0"/>
<point px="306.415" py="82.0"/>
<point px="315.427" py="82.0"/>
<point px="324.44" py="82.0"/>
<point px="333.452" py="82.0"/>
<point px="342.464" py="82.0"/>
<point px="351.476" py="82.0"/>
<point px="360.488" py="82.0"/>
<point px="369.501" py="82.0"/>
<point px="378.513" py="82.0"/>
<point px="387.525" py="82.0"/>
<point px="396.537" py="82.0"/>
<point px="405.55" py="82.0"/>
<point px="414.562" py="82.0"/>
<point px="423.574" py="82.0"/>
<point px="432.586" py="82.0"/>
<point px="441.598" py="82.0"/>
<point px="450.61" py="82.0625"/>
<point px="459.534" py="83.239"/>
<point px="468.137" py="85.8883"/>
<point px="476.175" py="89.9395"/>
<point px="483.43" py="95.2681"/>
<point px="489.707" py="101.721"/>
<point px="494.832" py="109.121"/>
<point px="498.656" py="117.27"/>
<point px="501.061" py="125.944"/>
<point px="501.988" py="134.898"/>
<point px="502.0" py="143.91"/>
<point px="502.0" py="152.923"/>
<point px="502.0" py="161.935"/>
<point px="502.0" py="170.947"/>
<point px="502.0" py="179.959"/>
<point px="502.0" py="188.971"/>
<point px="502.0" py="197.984"/>
<point px="502.0" py="206.996"/>
<point px="502.0" py="216.008"/>
<point px="502.0" py="225.02"/>
<point px="502.0" py="234.032"/>
<point px="502.0" py="243.045"/>
<point px="502.0" py="252.057"/>
<point px="502.0" py="261.069"/>
<point px="502.0" py="270.081"/>
<point px="502.0" py="279.093"/>
<point px="502.0" py="288.106"/>
<point px="502.0" py="297.118"/>
<point px="502.0" py="306.13"/>
<point px="502.0" py="315.142"/>
<point px="502.0" py="324.154"/>
<point px="502.0" py="333.167"/>
<point px="502.0" py="342.179"/>
<point px="502.0" py="351.191"/>
<point px="502.0" py="360.203"/>
<point px="502.0" py="369.215"/>
<point px="502.02" py="378.227"/>
<point px="503.402" py="387.11"/>
<point px="506.898" py="395.393"/>
<point px="512.288" py="402.587"/>
<point px="519.246" py="408.28"/>
<point px="527.37" py="412.131"/>
<point px="536.185" py="413.893"/>
<point px="545.194" py="414.0"/>
<point px="554.206" py="414.0"/>
<point px="563.219" py="414.0"/>
<point px="572.231" py="414.0"/>
<point px="581.243" py="414.0"/>
<point px="590.255" py="414.0"/>
<point px="605.0" py="414.0"/>
<point px="605.0" py="414.0"/>
</track>
<track>
<point px="495.0" py="0.0"/>
<point px="495.0" py="9.21082"/>
<point px="495.0" py="18.4216"/>
<point px="495.0" py="27.6324"/>
<point px="495.0" py="36.8432"/>
<point px="495.0" py="46.0541"/>
<point px="495.0" py="55.2649"/>
<point px="495.0" py="64.4757"/>
<point px="495.0" py="73.6865"/>
<point px="495.0" py="82.8973"/>
<point px="495.0" py="92.1081"/>
<point px="495.0" py="101.319"/>
<point px="495.0" py="110.53"/>
<point px="495.0" py="119.741"/>
<point px="495.0" py="128.951"/>
<point px="495.0" py="138.162"/>
<point px="495.0" py="147.373"/>
<point px="495.0" py="156.584"/>
<point px="495.0" py="165.795"/>
<point px="495.0" py="175.005"/>
<point px="495.0" py="184.216"/>
<point px="495.0" py="193.427"/>
<point px="495.0" py="202.638"/>
<point px="495.0" py="211.849"/>
<point px="495.0" py="221.06"/>
<point px="495.0" py="230.27"/>
<point px="495.0" py="239.481"/>
<point px="495.0" py="248.692"/>
<point px="495.0" py="257.903"/>
<point px="495.0" py="267.114"/>
<point px="495.0" py="276.324"/>
<point px="495.0" py="285.535"/>
<point px="495.0" py="294.746"/>
<point px="495.0" py="303.957"/>
<point px="495.0" py="313.168"/>
<point px="495.0" py="322.378"/>
<point px="495.0" py="331.589"/>
<point px="495.0" py="340.8"/>
<point px="495.0" py="350.011"/>
<point px="495.0" py="359.222"/>
<point px="495.0" py="368.432"/>
<point px="495.0" py="377.643"/>
<point px="495.0" py="386.854"/>
<point px="495.0" py="396.065"/>
<point px="495.0" py="405.276"/>
<point px="493.334" py="414.184"/>
<point px="487.008" py="420.779"/>
<point px="478.802" py="424.893"/>
<point px="469.751" py="426.317"/>
<point px="460.54" py="426.317"/>
<point px="451.33" py="426.317"/>
<point px="442.119" py="426.317"/>
<point px="432.908" py="426.317"/>
<point px="423.697" py="426.317"/>
<point px="414.486" py="426.317"/>
<point px="405.276" py="426.317"/>
<point px="396.065" py="426.317"/>
<point px="386.854" py="426.317"/>
<point px="377.643" py="426.317"/>
<point px="368.432" py="426.318"/>
<point px="359.222" py="426.317"/>
<point px="350.011" py="426.317"/>
<point px="340.8" py="426.318"/>
<point px="331.589" py="426.317"/>
<point px="322.378" py="426.317"/>
<point px="313.167" py="426.317"/>
<point px="303.957" py="426.317"/>
<point px="294.746" py="426.317"/>
<point px="285.535" py="426.317"/>
<point px="276.324" py="426.317"/>
<point px="267.113" py="426.317"/>
<point px="257.903" py="426.317"/>
<point px="248.692" py="426.317"/>
<point px="239.481" py="426.317"/>
<point px="230.27" py="426.317"/>
<point px="221.059" py="426.317"/>
<point px="211.849" py="426.317"/>
<point px="202.638" py="426.317"/>
<point px="193.427" py="426.317"/>
<point px="184.216" py="426.317"/>
<point px="175.005" py="426.317"/>
<point px="165.795" py="426.317"/>
<point px="156.584" py="426.317"/>
<point px="147.373" py="426.317"/>
<point px="138.162" py="426.317"/>
<point px="128.951" py="426.317"/>
<point px="119.741" py="426.317"/>
<point px="110.53" py="426.317"/>
<point px="101.319" py="426.317"/>
<point px="92.1081" py="426.317"/>
<point px="82.8973" py="426.317"/>
<point px="73.6865" py="426.317"/>
<point px="64.4757" py="426.317"/>
<point px="55.2649" py="426.317"/>
<point px="46.054" py="426.317"/>
<point px="36.8432" py="426.317"/>
<point px="27.6324" py="426.317"/>
<point px="18.4216" py="426.317"/>
<point px="9.21082" py="426.317"/>
<point px="0.0" py="426.317"/>
<point px="0.0" py="426.317"/>
</track>
<track>
<point px="477.0" py="1.52588e-005"/>
<point px="477.0" py="8.90286"/>
<point px="477.0" py="17.8057"/>
<point px="477.0" py="26.7085"/>
<point px="477.0" py="35.6114"/>
<point px="477.0" py="44.5142"/>
<point px="477.0" py="53.4171"/>
<point px="477.0" py="62.3199"/>
<point px="477.0" py="71.2228"/>
<point px="477.0" py="80.1256"/>
<point px="477.0" py="89.0284"/>
<point px="477.0" py="97.9313"/>
<point px="477.0" py="106.834"/>
<point px="477.0" py="115.737"/>
<point px="477.0" py="124.64"/>
<point px="477.0" py="133.543"/>
<point px="477.0" py="142.445"/>
<point px="477.0" py="151.348"/>
<point px="477.0" py="160.251"/>
<point px="477.0" py="169.154"/>
<point px="477.0" py="178.057"/>
<point px="477.0" py="186.96"/>
<point px="477.0" py="195.863"/>
<point px="477.0" py="204.765"/>
<point px="477.0" py="213.668"/>
<point px="477.0" py="222.571"/>
<point px="477.0" py="231.474"/>
<point px="477.0" py="240.377"/>
<point px="477.0" py="249.28"/>
<point px="477.0" py="258.182"/>
<point px="477.0" py="267.085"/>
<point px="477.0" py="275.988"/>
<point px="477.0" py="284.891"/>
<point px="477.0" py="293.794"/>
<point px="477.0" py="302.697"/>
<point px="477.0" py="311.599"/>
<point px="477.0" py="320.502"/>
<point px="477.0" py="329.405"/>
<point px="477.0" py="338.308"/>
<point px="477.0" py="347.211"/>
<point px="477.0" py="356.114"/>
<point px="477.0" py="365.017"/>
<point px="477.0" py="373.919"/>
<point px="477.0" py="382.822"/>
<point px="477.0" py="391.725"/>
<point px="475.836" py="400.482"/>
<point px="470.72" py="407.662"/>
<point px="462.9" py="411.748"/>
<point px="454.045" py="412.317"/>
<point px="445.142" py="412.316"/>
<point px="436.239" py="412.315"/>
<point px="427.336" py="412.313"/>
<point px="418.433" py="412.311"/>
<point px="409.531" py="412.309"/>
<point px="400.628" py="412.307"/>
<point px="391.725" py="412.305"/>
<point px="382.822" py="412.302"/>
<point px="373.919" py="412.299"/>
<point px="365.016" py="412.297"/>
<point px="356.114" py="412.294"/>
<point px="347.211" py="412.291"/>
<point px="338.308" py="412.288"/>
<point px="329.405" py="412.286"/>
<point px="320.502" py="412.283"/>
<point px="311.599" py="412.28"/>
<point px="302.697" py="412.277"/>
<point px="293.794" py="412.274"/>
<point px="284.891" py="412.271"/>
<point px="275.988" py="412.268"/>
<point px="267.085" py="412.266"/>
<point px="258.182" py="412.263"/>
<point px="249.279" py="412.26"/>
<point px="240.377" py="412.257"/>
<point px="231.474" py="412.254"/>
<point px="222.571" py="412.251"/>
<point px="213.668" py="412.249"/>
<point px="204.765" py="412.246"/>
<point px="195.862" py="412.243"/>
<point px="186.96" py="412.24"/>
<point px="178.057" py="412.238"/>
<point px="169.154" py="412.235"/>
<point px="160.251" py="412.233"/>
<point px="151.348" py="412.23"/>
<point px="142.445" py="412.228"/>
<point px="133.543" py="412.226"/>
<point px="124.64" py="412.223"/>
<point px="115.737" py="412.221"/>
<point px="106.834" py="412.219"/>
<point px="97.9313" py="412.217"/>
<point px="89.0284" py="412.215"/>
<point px="80.1256" py="412.214"/>
<point px="71.2228" py="412.212"/>
<point px="62.3199" py="412.211"/>
<point px="53.4171" py="412.21"/>
<point px="44.5142" py="412.21"/>
<point px="35.6114" py="412.209"/>
<point px="26.7086" py="412.209"/>
<point px="17.8058" py="412.21"/>
<point px="8.90289" py="412.212"/>
<point px="0.0" py="412.215"/>
<point px="0.0" py="412.215"/>
</track>
</Level>
</Points>
;
(mapnumber == levelsXML.Level[(currentlevel - 1)].@mapnumber);
loadTracks();
setFon(mapnumber);
}
private function readClientsParams():void{
clientsParamsXML = new XML();
clientsParamsXML.ignoreWhitespace = true;
clientsParamsXML = <Clients>
<Client type="1" name="">
<params speed="2.0" maxtemptation="25" moneyaward="4"/>
</Client>
<Client type="2" name="">
<params speed="2.5" maxtemptation="100" moneyaward="5"/>
</Client>
<Client type="3" name="">
<params speed="2.8" maxtemptation="150" moneyaward="6"/>
</Client>
<Client type="4" name="">
<params speed="2.8" maxtemptation="200" moneyaward="8"/>
</Client>
<Client type="5" name="">
<params speed="2.9" maxtemptation="250" moneyaward="10"/>
</Client>
<Client type="6" name="">
<params speed="4.5" maxtemptation="300" moneyaward="15"/>
</Client>
<Client type="7" name="">
<params speed="1.8" maxtemptation="400" moneyaward="13"/>
</Client>
<Client type="8" name="">
<params speed="2.0" maxtemptation="25" moneyaward="10"/>
</Client>
<Client type="9" name="">
<params speed="2.7" maxtemptation="100" moneyaward="10"/>
</Client>
<Client type="10" name="">
<params speed="2.0" maxtemptation="25" moneyaward="3"/>
</Client>
<Client type="11" name="">
<params speed="4.0" maxtemptation="200" moneyaward="11"/>
</Client>
<Client type="12" name="">
<params speed="2.5" maxtemptation="100" moneyaward="8"/>
</Client>
<Client type="13" name="">
<params speed="2.0" maxtemptation="50" moneyaward="4"/>
</Client>
<Client type="14" name="">
<params speed="2.8" maxtemptation="150" moneyaward="5"/>
</Client>
<Client type="15" name="">
<params speed="4.0" maxtemptation="135" moneyaward="11"/>
</Client>
<Client type="16" name="">
<params speed="2.5" maxtemptation="25" moneyaward="4"/>
</Client>
<Client type="17" name="">
<params speed="1.8" maxtemptation="400" moneyaward="4"/>
</Client>
<Client type="18" name="">
<params speed="1.8" maxtemptation="300" moneyaward="40"/>
</Client>
<Client type="19" name="">
<params speed="2.5" maxtemptation="25" moneyaward="4"/>
</Client>
<Client type="20" name="">
<params speed="1.8" maxtemptation="300" moneyaward="40"/>
</Client>
<Client type="21" name="">
<params speed="1.8" maxtemptation="300" moneyaward="40"/>
</Client>
<Client type="22" name="">
<params speed="1.8" maxtemptation="300" moneyaward="40"/>
</Client>
<Client type="23" name="">
<params speed="1.8" maxtemptation="300" moneyaward="40"/>
</Client>
<Client type="24" name="">
<params speed="1.8" maxtemptation="300" moneyaward="40"/>
</Client>
<Client type="25" name="">
<params speed="1.8" maxtemptation="300" moneyaward="40"/>
</Client>
<Client type="26" name="">
<params speed="1.8" maxtemptation="300" moneyaward="40"/>
</Client>
<Client type="27" name="">
<params speed="1.8" maxtemptation="300" moneyaward="40"/>
</Client>
<Client type="28" name="">
<params speed="1.8" maxtemptation="300" moneyaward="40"/>
</Client>
</Clients>
;
}
public function soundsButtonClicked(_arg1:MouseEvent):void{
soundsPlaying = !(soundsPlaying);
sfxBut.x = -40;
nosfxBut.x = 8.8;
removeCarSounds();
}
public function restartWave(_arg1:MouseEvent):void{
if (soundsPlaying){
gamepanel.sound.Play2DSnd("startgame");
};
upgwin.y = -100;
selectionBut.y = -100;
setTargetsToUndefined();
removeUnits();
removeClients();
removeHoles();
currentwave = 1;
gamepanel.progressbar[("l" + currentlevel)].gotoAndStop(2);
gamepanel.waveprogress.gotoAndStop((currentwave + 1));
money = levelsXML.Level[(currentlevel - 1)].@startmoney;
respect = levelsXML.Level[(currentlevel - 1)].@startrespect;
setInitialChars(1, money, respect);
gamepanel.checkUnitPrices(money);
waveStarted = false;
gamepanel.noWavwBut.visible = false;
if (GameOverWnd){
removeChild(GameOverWnd);
};
}
public function checkDescription():void{
if (descOpened){
if (gamepanel.descr.desc1.y > -6){
gamepanel.descr.desc1y = (gamepanel.descr.desc1y - 2);
};
};
}
public function getPrice():Number{
var _local1:*;
if (currentUpgUnit.upgradeLevel == 5){
return (500);
};
_local1 = unitsParamsXML.Unit[(currentUpgUnitFrame - 1)].upgrades.upgrade[(currentUpgUnit.upgradeLevel - 1)].@price;
return (_local1);
}
public function createSmoke(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{
var _local5:MovieClip;
_local5 = new particle_smoke_mc();
_local5.scaleX = (_arg3 / 114);
_local5.rotation = (_arg4 + 180);
_local5.x = _arg1;
_local5.y = _arg2;
aExp.push(_local5);
addChild(_local5);
}
public function wayLoaded(_arg1:Event):void{
if (way_loader.data){
wayXML = new XML();
wayXML.ignoreWhitespace = true;
wayXML = XML(way_loader.data);
(mapnumber == levelsXML.Level[(currentlevel - 1)].@mapnumber);
loadTracks();
setFon(mapnumber);
};
}
public function createHole(_arg1:Number, _arg2:Number):void{
var _local3:MovieClip;
if (soundsPlaying){
gamepanel.sound.Play2DSnd("tnt");
};
_local3 = new damage_road();
_local3.x = _arg1;
_local3.y = _arg2;
_local3.rotation = (Math.random() * 360);
_local3.scaleX = 0.8;
_local3.scaleY = 0.8;
lHole.addChild(_local3);
aHole.push(_local3);
money = (money - unitsParamsXML.Unit[4].params.@price);
gamepanel.writeMoney(money);
gamepanel.checkUnitPrices(money);
}
public function createMoneyAwardInfo(_arg1:Number, _arg2:Number, _arg3:int):void{
var _local4:MovieClip;
var _local5:Tween;
_local4 = new bonus_mc();
_local4.txt.embedFonts = true;
_local4.txt.text = ("$" + _arg3);
_local4.x = _arg1;
_local4.y = (_arg2 - 10);
aExp.push(_local4);
addChild(_local4);
_local5 = new Tween(_local4, "y", Regular.easeIn, _local4.y, (_local4.y - 20), 1.4, true);
}
public function disablePromoteBut():void{
upgwin.upg_but_dis.x = upgwin.upg_but.x;
upgwin.upg_but_dis.y = upgwin.upg_but.y;
upgwin.upg_but_dis.visible = true;
}
public function mouseLiveSidewalk(_arg1:MouseEvent):void{
MouseOnSidewalk = false;
}
public function hideUnitCollision():void{
var _local1:Unit;
var _local2:int;
_local2 = all_units.length;
if (_local2 > 0){
for each (_local1 in all_units) {
_local1 = all_units[(_local2 - 1)];
_local1.units.uc.alpha = 0;
_local2--;
};
};
}
public function startCarSounds():void{
var _local1:int;
_local1 = all_clients.length;
while (_local1 > 0) {
all_clients[(_local1 - 1)].startSound();
_local1--;
};
}
}
}//package main
Section 28
//HudPanel (main.HudPanel)
package main {
import flash.events.*;
import fl.controls.*;
import flash.display.*;
import fl.transitions.*;
import flash.media.*;
import fl.transitions.easing.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
public dynamic class HudPanel extends MovieClip {
public var startWaveBut:SimpleButton;
public var descHead:TextField;
public var ui1:MovieClip;
public var ui2:MovieClip;
public var ui4:MovieClip;
public var ui5:MovieClip;
public var waveprogress:MovieClip;
public var ui3:MovieClip;
var draggedUnit:Object;
var myTween:Tween;
var normalTransform:ColorTransform;
var grayTransform;
public var txtCost:TextField;
public var noWavwBut:MovieClip;
public var db:MovieClip;
public var fon:MovieClip;
public var progressbar:MovieClip;
public var money:MovieClip;
public var pauseButton:SimpleButton;
var unitDrag:Boolean;// = false
var channel:SoundChannel;
var game_mc:Game;
public var unit_desc_popup:MovieClip;
var sound:Sounds;
public var мм:MovieClip;
var greenTransform;
public var desc2:TextField;
public var resp:MovieClip;
var redTransform:ColorTransform;
var myTween1:Tween;
var myTween2:Tween;
var showMenu:Boolean;// = false
public function HudPanel(){
showMenu = false;
unitDrag = false;
super();
addFrameScript(0, frame1);
sound = new Sounds();
sound.init();
draggedUnit = new Object();
addEventListener(MouseEvent.MOUSE_DOWN, handlerMouseDownHud);
addEventListener(Event.ENTER_FRAME, Update);
startMusic();
pauseButton.addEventListener(MouseEvent.MOUSE_DOWN, setPause);
addEventListener(Event.ENTER_FRAME, updateHudPanel);
startWaveBut.addEventListener(MouseEvent.MOUSE_DOWN, startWaveClicked);
initUnitIcons();
normalTransform = new ColorTransform(1, 1, 1, 1, 0, 0, 0, 0);
grayTransform = new ColorTransform(1, 1, 1, 1, -132, -132, -132, 0);
greenTransform = new ColorTransform(1, 1, 1, 1, -255, 0xFF, -255, 0);
redTransform = new ColorTransform(1, 1, 1, 1, 0xFF, -255, -255, 0);
money.txtMoney.selectable = false;
resp.txtRespect.selectable = false;
resp.text_mask1.mask = resp.txtRespect;
db.addEventListener(MouseEvent.MOUSE_OVER, showDesc);
db.addEventListener(MouseEvent.MOUSE_OUT, hideDesc);
db.buttonMode = true;
descHead.selectable = false;
descHead.mouseEnabled = false;
fon.mask = desc2;
desc2.mouseEnabled = false;
desc2.selectable = false;
myTween = new Tween(desc2, "y", Regular.easeIn, 0, -160, 0.5, true);
myTween.stop();
myTween1 = new Tween(descHead, "y", Regular.easeIn, 0, -180, 0.5, true);
myTween1.stop();
myTween2 = new Tween(descHead, "x", Regular.easeIn, descHead.x, (descHead.x - 50), 0.5, true);
myTween2.stop();
unit_desc_popup.visible = false;
unit_desc_popup.alpha = 0;
unit_desc_popup.txt.selectable = false;
unit_desc_popup.txt.wordWrap = true;
unit_desc_popup.txt_cost.selectable = false;
money.text_mask1.mask = money.txtMoney;
noWavwBut.visible = false;
waveprogress.gotoAndStop(1);
}
public function checkUnitPrices(_arg1:Number):void{
var _local2:int;
var _local3:*;
_local2 = 1;
while (_local2 < 6) {
if ((parent as Game).unitsParamsXML.Unit[(_local2 - 1)].params.@price > _arg1){
this[("ui" + _local2)].lock.visible = true;
this[("ui" + _local2)].icons_units.visible = false;
} else {
this[("ui" + _local2)].lock.visible = false;
this[("ui" + _local2)].icons_units.visible = true;
if (_local2 == 5){
if ((parent as Game).all_units.length < 1){
this[("ui" + _local2)].lock.visible = true;
this[("ui" + _local2)].icons_units.visible = false;
};
};
};
_local2++;
};
if ((parent as Game).upgwin_.y > 0){
_local3 = (parent as Game).getPrice();
trace(_local3);
if (_local3 <= _arg1){
(parent as Game).enablePromoteBut();
};
};
}
public function writeMoney(_arg1:Number):void{
money.txtMoney.text = ("$" + _arg1.toString());
}
public function hideMail(_arg1:MouseEvent):void{
}
public function removeGlow(_arg1:MouseEvent):void{
_arg1.currentTarget.filters = [];
}
public function exitGame(_arg1:MouseEvent):void{
trace("exit game");
}
function frame1(){
stop();
}
public function showGameMenu(_arg1:MouseEvent):void{
showMenu = true;
}
public function setText(_arg1:String):void{
desc2.text = _arg1;
}
public function setPause(_arg1:MouseEvent):void{
(parent as Game).pauseGame();
}
public function handlerMouseDown(_arg1:MouseEvent):void{
var _local2:int;
var _local3:Boolean;
var _local4:Number;
var _local5:Number;
(parent as Game).gameMouseDown(_arg1);
if (_arg1.currentTarget.currentFrame == 6){
return;
};
if ((parent as Game).unitsParamsXML.Unit[((_arg1.currentTarget as MovieClip).currentFrame - 1)].params.@price > (parent as Game).money){
return;
};
_local3 = false;
unit_desc_popup.visible = false;
if (!unitDrag){
(parent as Game).mc_01_.visible = true;
if ((((parent as Game).tutorial) && (((parent as Game).tutorial.currentFrame == 12)))){
(parent as Game).tutorial.play();
(parent as Game).tutorial.mouseChildren = false;
(parent as Game).tutorial.mouseEnabled = false;
};
if ((_arg1.currentTarget as MovieClip).name == "ui5"){
if ((parent as Game).all_units.length > 0){
_local2 = 4;
_arg1.currentTarget.unit_drag.startDrag(true);
_arg1.currentTarget.unit_drag.visible = true;
unitDrag = true;
draggedUnit = _arg1.currentTarget;
(_arg1.currentTarget as MovieClip).alpha = 0.5;
_arg1.currentTarget.unit_drag.sr.visible = true;
_local2 = _arg1.currentTarget.currentFrame;
(parent as Game).showUnitCollision();
};
} else {
if ((_arg1.currentTarget as MovieClip).name == "ui1"){
_local2 = 0;
};
if ((_arg1.currentTarget as MovieClip).name == "ui2"){
_local2 = 1;
};
if ((_arg1.currentTarget as MovieClip).name == "ui3"){
_local2 = 2;
};
if ((_arg1.currentTarget as MovieClip).name == "ui4"){
_local2 = 3;
};
_arg1.currentTarget.unit_drag.startDrag(true);
_arg1.currentTarget.unit_drag.visible = true;
unitDrag = true;
draggedUnit = _arg1.currentTarget;
(_arg1.currentTarget as MovieClip).alpha = 0.5;
_arg1.currentTarget.unit_drag.sr.visible = true;
_local2 = _arg1.currentTarget.currentFrame;
(parent as Game).showUnitCollision();
};
} else {
if ((_arg1.currentTarget.unit_drag as MovieClip).y < -25){
(parent as Game).mc_01_.visible = false;
(parent as Game).hideUnitCollision();
_arg1.currentTarget.unit_drag.sr.visible = false;
_arg1.currentTarget.unit_drag.stopDrag();
unitDrag = false;
draggedUnit = undefined;
(_arg1.currentTarget as MovieClip).alpha = 1;
_local4 = _arg1.currentTarget.unit_drag.x;
_local5 = _arg1.currentTarget.unit_drag.y;
if (((parent as Game).fon[("mask" + (parent as Game).mapnumber)] as MovieClip).hitTestPoint(mouseX, (500 + mouseY), true)){
if (!(parent as Game).mouseOnUnit){
if ((_arg1.currentTarget as MovieClip).currentFrame != 5){
(parent as Game).createUnit((_arg1.currentTarget as MovieClip).currentFrame, mouseX, (500 + mouseY), _local3);
checkUnitPrices((parent as Game).money);
if ((parent as Game).tutorial){
(parent as Game).tutorial.play();
(parent as Game).tutorial.mouseChildren = true;
(parent as Game).tutorial.mouseEnabled = true;
_arg1.currentTarget.unit_drag.x = _arg1.currentTarget.unit_drag.old_x;
_arg1.currentTarget.unit_drag.y = _arg1.currentTarget.unit_drag.old_y;
_arg1.currentTarget.transform.colorTransform = normalTransform;
_arg1.currentTarget.unit_drag.visible = false;
};
};
};
} else {
if ((_arg1.currentTarget as MovieClip).currentFrame == 5){
(parent as Game).createHole(mouseX, (500 + mouseY));
};
};
if ((parent as Game).tutorial){
if (((((parent as Game).tutorial.currentFrame == 22)) && ((unitDrag == false)))){
} else {
_arg1.currentTarget.unit_drag.x = _arg1.currentTarget.unit_drag.old_x;
_arg1.currentTarget.unit_drag.y = _arg1.currentTarget.unit_drag.old_y;
_arg1.currentTarget.transform.colorTransform = normalTransform;
_arg1.currentTarget.unit_drag.visible = false;
};
} else {
_arg1.currentTarget.unit_drag.x = _arg1.currentTarget.unit_drag.old_x;
_arg1.currentTarget.unit_drag.y = _arg1.currentTarget.unit_drag.old_y;
_arg1.currentTarget.transform.colorTransform = normalTransform;
_arg1.currentTarget.unit_drag.visible = false;
};
};
};
}
public function initUnitIcons():void{
var _local1:int;
ui1.gotoAndStop(1);
ui2.gotoAndStop(2);
ui3.gotoAndStop(3);
ui4.gotoAndStop(4);
ui5.gotoAndStop(5);
_local1 = 1;
while (_local1 < 6) {
this[("ui" + _local1)].old_x = this[("ui" + _local1)].unit_drag.x;
this[("ui" + _local1)].old_y = this[("ui" + _local1)].unit_drag.y;
this[("ui" + _local1)].addEventListener(MouseEvent.MOUSE_UP, handlerMouseDown);
this[("ui" + _local1)].addEventListener(MouseEvent.MOUSE_DOWN, handlerMouseDown);
this[("ui" + _local1)].addEventListener(MouseEvent.MOUSE_OVER, handlerMouseOver);
this[("ui" + _local1)].addEventListener(MouseEvent.MOUSE_OUT, handlerMouseOut);
this[("ui" + _local1)].unit_drag.sr.width = 20;
this[("ui" + _local1)].unit_drag.sr.visible = false;
this[("ui" + _local1)].unit_drag.visible = false;
this[("ui" + _local1)].unit_drag.buttonMode = true;
this[("ui" + _local1)].lock.visible = false;
this[("ui" + _local1)].lock.mouseEnabled = false;
this[("ui" + _local1)].unit_drag.gotoAndStop(_local1);
this[("ui" + _local1)].icons_units.gotoAndStop(_local1);
this[("ui" + _local1)].icons_units.mouseEnabled = false;
_local1++;
};
}
public function startMusic():void{
var _local1:String;
_local1 = "music1";
sound.Play2DSnd(_local1);
}
public function returnDraggedUnit():void{
if (unitDrag){
draggedUnit.unit_drag.sr.visible = false;
draggedUnit.unit_drag.stopDrag();
unitDrag = false;
draggedUnit.unit_drag.x = draggedUnit.unit_drag.old_x;
draggedUnit.unit_drag.y = draggedUnit.unit_drag.old_y;
draggedUnit.transform.colorTransform = normalTransform;
draggedUnit.unit_drag.visible = false;
draggedUnit = undefined;
};
}
public function Update(_arg1:Event):void{
if (unit_desc_popup.visible){
unit_desc_popup.alpha = (unit_desc_popup.alpha + 0.1);
};
}
public function writeRespect(_arg1:Number):void{
resp.txtRespect.text = _arg1.toString();
}
public function handlerMouseOver(_arg1:MouseEvent):void{
if (!unitDrag){
if ((parent as Game).tutorial){
if (mouseY > 9){
unit_desc_popup.visible = true;
};
} else {
unit_desc_popup.visible = true;
};
};
unit_desc_popup.txt_cost.text = ("$ " + (parent as Game).unitsParamsXML.Unit[((_arg1.currentTarget as MovieClip).currentFrame - 1)].params.@price);
unit_desc_popup.txt.text = (parent as Game).unitsParamsXML.Unit[((_arg1.currentTarget as MovieClip).currentFrame - 1)].params.@desc;
}
public function hideDesc(_arg1:MouseEvent):void{
myTween.yoyo();
myTween1.yoyo();
myTween2.yoyo();
}
public function handlerMouseDownHud(_arg1:MouseEvent):void{
}
public function startWaveClicked(_arg1:MouseEvent):void{
if ((parent as Game).tutorial){
(parent as Game).tutorial.play();
};
(parent as Game).startWave();
noWavwBut.visible = true;
}
public function showDesc(_arg1:MouseEvent):void{
myTween.start();
myTween1.start();
myTween2.start();
}
public function setGlow(_arg1:MouseEvent):void{
var _local2:Array;
_local2 = new Array();
_local2.push(new GlowFilter(0x999999, 10, 18, 18));
_arg1.currentTarget.filters = _local2;
}
public function updateHudPanel(_arg1:Event):void{
var _local2:Unit;
var _local3:int;
if (((unitDrag) && (draggedUnit))){
if ((((parent as Game).mouseOnUnit) || (!((parent as Game).MouseOnSidewalk)))){
this[draggedUnit.name].unit_drag.sr.transform.colorTransform = redTransform;
if (draggedUnit.currentFrame == 5){
this[draggedUnit.name].unit_drag.sr.transform.colorTransform = greenTransform;
};
} else {
this[draggedUnit.name].unit_drag.sr.transform.colorTransform = greenTransform;
if (draggedUnit.currentFrame == 5){
this[draggedUnit.name].unit_drag.sr.transform.colorTransform = redTransform;
};
};
};
}
public function handlerMouseUp(_arg1:MouseEvent):void{
var _local2:Number;
var _local3:Number;
_arg1.currentTarget.unit_drag.sr.visible = false;
_arg1.currentTarget.stopDrag();
_arg1.currentTarget.fotki.visible = true;
_arg1.currentTarget.u_ramka.visible = true;
unitDrag = false;
draggedUnit = undefined;
(_arg1.currentTarget as MovieClip).alpha = 1;
_local2 = _arg1.currentTarget.x;
_local3 = _arg1.currentTarget.y;
trace(_local3);
if (_local3 < -12){
if (((parent as Game).fon[("mask" + (parent as Game).mapnumber)] as MovieClip).hitTestPoint(_arg1.currentTarget.x, (_arg1.currentTarget.y + 500), true)){
if (!(parent as Game).mouseOnUnit){
(parent as Game).createUnit((_arg1.currentTarget as MovieClip).currentFrame, _local2, (500 + _local3));
};
};
};
_arg1.currentTarget.x = _arg1.currentTarget.old_x;
_arg1.currentTarget.y = _arg1.currentTarget.old_y;
_arg1.currentTarget.transform.colorTransform = normalTransform;
}
public function wantSell(_arg1:MouseEvent):void{
(parent as Game).WantSell = !((parent as Game).WantSell);
if ((parent as Game).WantSell){
(parent as Game).dollar.x = mouseX;
(parent as Game).dollar.y = (mouseY + 500);
(parent as Game).dollar.visible = true;
Mouse.hide();
(parent as Game).dollar.startDrag();
} else {
(parent as Game).dollar.visible = false;
(parent as Game).dollar.stopDrag();
Mouse.show();
};
}
public function handlerMouseOut(_arg1:MouseEvent):void{
unit_desc_popup.visible = false;
unit_desc_popup.alpha = 0;
}
public function hideGameMenu(_arg1:MouseEvent):void{
showMenu = false;
}
public function setMusicVolume(_arg1:Number):void{
var _local2:SoundTransform;
trace(_arg1);
if (sound){
_local2 = channel.soundTransform;
_local2.volume = _arg1;
channel.soundTransform = _local2;
};
}
}
}//package main
Section 29
//Intro (main.Intro)
package main {
import flash.events.*;
import flash.display.*;
public class Intro extends MovieClip {
public function Intro(){
addFrameScript(200, frame201);
stage.showDefaultContextMenu = false;
addEventListener(Event.ENTER_FRAME, update);
buttonMode = true;
addEventListener(MouseEvent.MOUSE_DOWN, down);
}
function frame201(){
stop();
(parent as MovieClip).play();
}
public function down(_arg1:MouseEvent):void{
goTasty();
}
public function goTasty():void{
}
public function update(_arg1:Event):void{
if (currentFrame == totalFrames){
removeEventListener(Event.ENTER_FRAME, update);
removeEventListener(MouseEvent.MOUSE_DOWN, down);
(parent as MovieClip).play();
};
}
}
}//package main
Section 30
//Intro1 (main.Intro1)
package main {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public class Intro1 extends MovieClip {
public function Intro1(){
addFrameScript(0, frame1, 217, frame218);
addEventListener(Event.ENTER_FRAME, update);
buttonMode = true;
addEventListener(MouseEvent.MOUSE_DOWN, down);
}
function frame218(){
}
function frame1(){
gotoAndPlay(2);
}
public function down(_arg1:MouseEvent):void{
goTasty();
}
public function goTasty():void{
navigateToURL(new URLRequest("http://www.armorgames.com/"), "_blank");
}
public function update(_arg1:Event):void{
if (currentFrame == totalFrames){
removeEventListener(Event.ENTER_FRAME, update);
removeEventListener(MouseEvent.MOUSE_DOWN, down);
(parent as MovieClip).play();
};
}
}
}//package main
Section 31
//MainMenu (main.MainMenu)
package main {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.text.*;
import flash.net.*;
public dynamic class MainMenu extends MovieClip {
var sound:Sounds;
public var log:TextField;
var _mochiads_game_id:String;// = "fa1dfa942f973f08"
var so:SharedObject;
public var newGameBut:SimpleButton;
public var tpBut:SimpleButton;
public var sl_but:SimpleButton;
public var continueGameBut:SimpleButton;
public var aglogo:MovieClip;
public function MainMenu(){
var _local1:int;
_mochiads_game_id = "fa1dfa942f973f08";
super();
stage.showDefaultContextMenu = false;
if (isUrl(["armorgames.com", "localhost", ""])){
newGameBut.visible = true;
continueGameBut.visible = true;
sl_but.visible = false;
} else {
newGameBut.visible = false;
continueGameBut.visible = false;
sl_but.visible = true;
};
sl_but.addEventListener(MouseEvent.MOUSE_DOWN, goTasty);
newGameBut.addEventListener(MouseEvent.MOUSE_DOWN, startNewGame);
continueGameBut.addEventListener(MouseEvent.MOUSE_DOWN, continueGame);
newGameBut.addEventListener(MouseEvent.MOUSE_OVER, glowButton);
continueGameBut.addEventListener(MouseEvent.MOUSE_OVER, glowButton);
tpBut.addEventListener(MouseEvent.MOUSE_DOWN, goTasty);
aglogo.addEventListener(MouseEvent.MOUSE_DOWN, goAdGames);
aglogo.buttonMode = true;
sound = new Sounds();
sound.init();
_local1 = 2;
language.Language = _local1;
}
public function goSponsor(_arg1:MouseEvent):void{
if (language.language_nr == 2){
request = new URLRequest(language.url1);
} else {
request = new URLRequest((language.url1 + "&utm_content=button_mainscreen_moregames"));
};
navigateToURL(request, "_blank");
}
public function glowButton(_arg1:MouseEvent):void{
sound.Play2DSnd("menuclick");
}
public function removeGlow(_arg1:MouseEvent):void{
}
public function continueGame(_arg1:MouseEvent):void{
(parent as MovieClip).play();
}
public function goAdGames(_arg1:MouseEvent):void{
navigateToURL(new URLRequest("http://www.armorgames.com/"), "_blank");
}
public function goTasty(_arg1:MouseEvent):void{
}
public function showButtons():void{
newGameBut.visible = true;
continueGameBut.visible = true;
}
public function isUrl(_arg1:Array):Boolean{
var _local2:String;
var _local3:Number;
var _local4:Number;
var _local5:String;
var _local6:Number;
var _local7:Number;
var _local8:int;
_local2 = parent.stage.loaderInfo.url;
_local3 = (_local2.indexOf("://") + 3);
_local4 = _local2.indexOf("/", _local3);
_local5 = _local2.substring(_local3, _local4);
_local6 = (_local5.lastIndexOf(".") - 1);
_local7 = (_local5.lastIndexOf(".", _local6) + 1);
_local5 = _local5.substring(_local7, _local5.length);
trace(_local5);
_local8 = 0;
while (_local8 < _arg1.length) {
if (_local5 == _arg1[_local8]){
return (true);
};
_local8++;
};
return (false);
}
public function hideButtons():void{
newGameBut.visible = false;
continueGameBut.visible = false;
}
public function startNewGame(_arg1:MouseEvent):void{
sound.Play2DSnd("startgame");
so = SharedObject.getLocal("favelatd");
so.data.currentlevel = 1;
so.flush();
(parent as MovieClip).play();
}
}
}//package main
Section 32
//Sounds (main.Sounds)
package main {
import flash.events.*;
import flash.media.*;
public dynamic class Sounds {
var chnl:SoundChannel;
var sfx:Boolean;// = true
var snd:Object;
var winchnl:SoundChannel;
public function Sounds(){
sfx = true;
super();
}
public function init1():void{
createSnd();
snd["menuclick"] = new menuclick();
snd["startgame"] = new startgame();
}
public function stopWinMusic():void{
if (!winchnl){
return;
};
winchnl.stop();
winchnl.removeEventListener(Event.SOUND_COMPLETE, replayWinMusic);
}
public function createSnd():void{
if (snd){
return;
};
snd = new Object();
}
public function init(_arg1:Number=600, _arg2:Number=600){
trace("Sounds");
snd = new Object();
snd["music1"] = new music1();
snd["car1"] = new car1();
snd["car2"] = new car2();
snd["car3"] = new car3();
snd["tnt"] = new tnt();
snd["explosion"] = new explosion();
snd["menuclick"] = new menuclick();
snd["sale"] = new sale();
snd["succeswhite1"] = new succeswhite1();
snd["succeswhite2"] = new succeswhite2();
snd["succeswhite3"] = new succeswhite3();
snd["support1"] = new support1();
snd["grened1"] = new grened1();
snd["base1"] = new base1();
snd["tommy1"] = new tommy1();
snd["tommy2"] = new tommy2();
snd["tommy3"] = new tommy3();
snd["updress1"] = new updress1();
snd["upg_window"] = new upg_window();
snd["game_win"] = new game_win();
snd["game_over"] = new game_over();
snd["menuclick"] = new menuclick();
snd["startgame"] = new startgame();
}
public function replayMusic(_arg1:Event):void{
Play2DSnd("music1");
}
public function replayWinMusic(_arg1:Event):void{
Play2DSnd("game_win");
}
public function Play2DSnd(_arg1:String, _arg2:Number=0, _arg3:Number=0, _arg4:Number=1):void{
var _local5:SoundTransform;
var _local6:Vector;
_local6 = new Vector(_arg2, _arg3);
_local5 = new SoundTransform();
_local5.volume = _arg4;
if (_arg1 == "music1"){
chnl = snd[_arg1].play(0, 0, _local5);
chnl.addEventListener(Event.SOUND_COMPLETE, replayMusic);
} else {
if (_arg1 == "game_win"){
winchnl = snd[_arg1].play(0, 0, _local5);
winchnl.addEventListener(Event.SOUND_COMPLETE, replayWinMusic);
} else {
snd[_arg1].play(0, 0, _local5);
};
};
}
public function stopMusic():void{
chnl.stop();
chnl.removeEventListener(Event.SOUND_COMPLETE, replayMusic);
}
}
}//package main
Section 33
//TEndMenu (main.TEndMenu)
package main {
import flash.events.*;
import flash.display.*;
import flash.media.*;
public class TEndMenu extends MovieClip {
public var rb:SimpleButton;
public function TEndMenu(){
rb.addEventListener(MouseEvent.MOUSE_DOWN, replayGame);
}
public function replayGame(_arg1:MouseEvent):void{
(parent as MovieClip).gotoAndStop(2);
}
}
}//package main
Section 34
//TGameOver (main.TGameOver)
package main {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
public class TGameOver extends MovieClip {
var sound:Sounds;
public var rb:SimpleButton;
public function TGameOver(){
var _local1:int;
super();
rb.addEventListener(MouseEvent.MOUSE_DOWN, replayGame);
_local1 = 2;
language.Language = _local1;
}
public function goSponsor(_arg1:MouseEvent):void{
if (language.language_nr == 2){
request = new URLRequest(language.url1);
} else {
request = new URLRequest((language.url1 + "&utm_content=button_mainscreen_moregames"));
};
navigateToURL(request, "_blank");
}
public function replayGame(_arg1:MouseEvent):void{
(parent as Game).restartAfterGameOver(_arg1);
}
}
}//package main
Section 35
//TPreloader (main.TPreloader)
package main {
import flash.events.*;
import flash.display.*;
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.text.*;
import flash.net.*;
public dynamic class TPreloader extends MovieClip {
public var txt:TextField;
var tw:Tween;
public var progressbar:MovieClip;
public function TPreloader(){
buttonMode = true;
addEventListener(Event.ENTER_FRAME, Update);
addEventListener(MouseEvent.MOUSE_DOWN, onCLick1);
}
public function playnext(_arg1:TweenEvent):void{
tw.removeEventListener(TweenEvent.MOTION_FINISH, playnext);
(parent as MovieClip).play();
}
function onCLick1(_arg1:Event){
if (language.language_nr == 2){
request = new URLRequest(language.url1);
} else {
request = new URLRequest((language.url1 + "&utm_content=logo_intro"));
};
navigateToURL(request, "_blank");
}
public function isUrl(_arg1:Array):Boolean{
var _local2:String;
var _local3:Number;
var _local4:Number;
var _local5:String;
var _local6:Number;
var _local7:Number;
var _local8:int;
_local2 = parent.stage.loaderInfo.url;
_local3 = (_local2.indexOf("://") + 3);
_local4 = _local2.indexOf("/", _local3);
_local5 = _local2.substring(_local3, _local4);
_local6 = (_local5.lastIndexOf(".") - 1);
_local7 = (_local5.lastIndexOf(".", _local6) + 1);
_local5 = _local5.substring(_local7, _local5.length);
_local8 = 0;
while (_local8 < _arg1.length) {
if (_local5 == _arg1[_local8]){
return (true);
};
_local8++;
};
return (false);
}
public function Update(_arg1:Event):void{
var _local2:Number;
var _local3:Number;
var _local4:String;
var _local5:Number;
_local2 = stage.loaderInfo.bytesLoaded;
_local3 = stage.loaderInfo.bytesTotal;
_local4 = "";
_local5 = 0;
if (_local3 > 0){
_local5 = Math.floor(((_local2 / _local3) * 100));
_local4 = (((((_local5 + "% (") + Math.round((_local2 / 0x0400))) + "kb / ") + Math.round((_local3 / 0x0400))) + "kb)");
};
this.progressbar.gotoAndStop((_local5 + 1));
if ((((_local2 == _local3)) || ((_local3 == 0)))){
removeEventListener(Event.ENTER_FRAME, Update);
(parent as MovieClip).play();
};
}
}
}//package main
Section 36
//Unit (main.Unit)
package main {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
public dynamic class Unit extends Basic_object {
const uScale:Number = 1;
var sndTransform:SoundTransform;
var firstsidewalk:Boolean;// = false
var soundsExplosions:Array;
var v:Vector;
var tmpTime:int;// = 0
var sellMe:Boolean;// = false
var upgradePrice:int;
var splashDamage:Number;
var shoot_recharge:Number;
var angle:Number;
var upgradeLevel:int;// = 1
var unitType:int;
var u_2:Boolean;
var u_twice:Boolean;// = false
var active:Boolean;// = true
var sellPrice:int;
var sound:Sounds;
var shadow:DropShadowFilter;
var u_newdress:Boolean;// = false
var currentMovie:MovieClip;
var price:int;
var u_crit:Boolean;// = false
public var units:MovieClip;
var u_splash:Boolean;// = false
var freeze_time:Number;
var moneyNeed:Boolean;// = false
var shootSpeed:Number;
var moneyAward:Number;// = 0
var shootRadius:int;// = 80
public var usr:Range;
var u_freeze:Boolean;// = false
var radiusSpr:Sprite;
var freeze_value:Number;
var temptation:int;
var splashRadius:Number;
var crit:Number;
var critinc:Number;
var trgt:Client;
var u_fastwork:Boolean;// = false
public function Unit(){
shootRadius = 80;
sellMe = false;
u_crit = false;
u_freeze = false;
u_splash = false;
u_fastwork = false;
u_newdress = false;
u_twice = false;
active = true;
tmpTime = 0;
moneyNeed = false;
moneyAward = 0;
firstsidewalk = false;
upgradeLevel = 1;
super();
this.units.scaleX = uScale;
this.units.scaleY = uScale;
usr.visible = false;
usr.visible = false;
usr.alpha = 0.35;
rotation = -180;
units.uc.alpha = 0;
soundsExplosions = new Array();
sound = new Sounds();
sound.init();
}
public function shoot():void{
var _local1:int;
var _local2:Number;
var _local3:SoundChannel;
var _local4:String;
var _local5:Sound;
var _local6:SoundChannel;
var _local7:String;
var _local8:String;
var _local9:Number;
var _local10:Object;
if (!trgt){
return;
};
_local8 = ("client" + trgt.type);
_local1 = (parent.parent as Game).unitsParamsXML.Unit[(unitType - 1)].temptation.client[(trgt.type - 1)].@damage;
if (unitType == 1){
_local7 = "base1";
};
if (unitType == 2){
_local9 = Math.random();
_local7 = "tommy1";
if (_local9 < 0.33){
_local7 = "tommy2";
};
if (_local9 > 0.66){
_local7 = "tommy3";
};
};
if (unitType == 3){
_local7 = "grened1";
};
if (unitType == 4){
_local7 = "support1";
};
if ((parent.parent as Game).soundsPlaying){
sound.Play2DSnd(_local7);
};
_local2 = ((temptation * _local1) / 100);
if (u_crit){
if (Math.random() <= (crit / 100)){
_local2 = (((temptation * _local1) / 100) + ((((temptation * _local1) / 100) * critinc) / 100));
};
};
trgt.getDamage(_local2, splashRadius, splashDamage, u_splash, this);
if (u_freeze){
if (((!(trgt.freezed)) && (!(trgt.hasBeenFreezed)))){
trgt.getFreeze(freeze_value, freeze_time);
};
};
if ((((unitType == 3)) || ((unitType == 4)))){
_local10 = new Object();
_local10.starttime = getTimer();
_local10.trgt = trgt;
soundsExplosions.push(_local10);
};
}
public function onMOver(_arg1:MouseEvent):void{
ShowInfo();
}
override public function handlerMouseDown(_arg1:MouseEvent):void{
if ((parent.parent as Game).WantSell){
sellMe = true;
Mouse.show();
} else {
(parent.parent as Game).showUpgradeWindow(this, unitType, u_newdress);
};
}
public function FindTarget():void{
var _local1:Number;
var _local2:Number;
var _local3:Client;
var _local4:String;
var _local5:Vector;
var _local6:Array;
var _local7:Object;
_local6 = new Array();
for each (_local3 in (parent.parent as Game).all_clients) {
_local7 = new Object();
_local7.obj = _local3;
_local5 = new Vector((_local3.x - x), (_local3.y - y));
_local5.addVector(_local3.Velocity);
_local7.len = _local5.magnitude();
if ((((((((_local5.magnitude() <= shootRadius)) && (_local3.active))) && ((_local3.x > 0)))) && ((_local3.y > 0)))){
_local6.push(_local7);
};
};
if (!_local6.length){
return;
};
_local6.sortOn("len", Array.NUMERIC);
trgt = _local6[0].obj;
}
public function upgradeMe(_arg1:int):void{
if (_arg1 == 1){
u_newdress = true;
currentMovie = this.units[("upunit" + unitType)];
this.units[("unit" + unitType)].visible = false;
this.units[("unit_" + unitType)].visible = false;
this.units[("upunit_" + unitType)].visible = false;
this.units[("upunit" + unitType)].visible = true;
};
if (_arg1 == 2){
trace("splash");
u_splash = true;
u_2 = true;
};
if (_arg1 == 3){
trace("скорость");
u_fastwork = true;
shootSpeed = (shootSpeed - ((shootSpeed / 100) * (parent.parent as Game).unitsParamsXML.Unit[(unitType - 1)].params.@fastworkpercent));
u_2 = true;
};
if (_arg1 == 4){
u_crit = true;
u_2 = true;
};
if (_arg1 == 5){
u_freeze = true;
u_2 = true;
};
if (_arg1 == 6){
trace("добавим пару");
u_twice = true;
shootRadius = (parent.parent as Game).unitsParamsXML.Unit[(unitType - 1)].params.@shootradius2;
this.usr.width = (2 * shootRadius);
this.usr.height = (2 * shootRadius);
this.units[("unit" + unitType)].visible = false;
this.units[("unit_" + unitType)].visible = false;
this.units["upunit_5"].visible = true;
this.units[("upunit" + unitType)].visible = false;
currentMovie = this.units["upunit_5"];
u_2 = true;
};
}
public function mOver(_arg1:MouseEvent):void{
(parent.parent as Game).mouseOnUnit = true;
}
public function playExplsions():void{
var _local1:Sound;
var _local2:SoundChannel;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:Object;
var _local7:Point;
var _local8:Point;
_local3 = soundsExplosions.length;
if (_local3 > 0){
_local5 = getTimer();
for each (_local6 in soundsExplosions) {
_local6 = soundsExplosions[(_local3 - 1)];
if ((_local5 - _local6.starttime) > 250){
if ((parent.parent as Game).soundsPlaying){
sound.Play2DSnd("explosion");
};
_local7 = new Point(_local6.trgt.car.x, _local6.trgt.car.y);
_local8 = _local6.trgt.car.localToGlobal(_local7);
(parent.parent as Game).createSplahExplosion(_local8.x, _local8.y, unitType);
_local4 = (_local3 - 1);
soundsExplosions.splice(_local4);
};
_local3--;
};
};
}
public function hideUpgWindow(_arg1:MouseEvent):void{
}
override public function HideInfo():void{
var _local1:Point;
var _local2:Point;
_local1 = new Point(usr.x, usr.y);
_local2 = usr.localToGlobal(_local1);
(parent.parent as Game).showUsr(usr.height, _local2.x, _local2.y);
}
public function hideOthers():void{
var _local1:int;
var _local2:int;
var _local3:String;
_local1 = 1;
while (_local1 < 6) {
_local2 = 1;
while (_local2 < 6) {
_local3 = ((("unit" + _local1) + "_") + _local2);
this.units[_local3].gotoAndStop(1);
this.units[_local3].visible = false;
if (_local1 == unitType){
_local3 = (("unit" + _local1) + "_1");
currentMovie = new MovieClip();
currentMovie = this.units[_local3];
currentMovie.visible = true;
};
_local2++;
};
_local1++;
};
}
override public function ShowInfo():void{
var _local1:Point;
var _local2:Point;
_local1 = new Point(usr.x, usr.y);
_local2 = usr.localToGlobal(_local1);
(parent.parent as Game).showUsr(usr.height, _local2.x, _local2.y);
}
public function mOut(_arg1:MouseEvent):void{
(parent.parent as Game).mouseOnUnit = false;
}
public function incUpgradeLevel():void{
if (upgradeLevel < 5){
upgradeLevel++;
currentMovie.visible = false;
currentMovie = this.units[((("unit" + unitType) + "_") + upgradeLevel)];
currentMovie.visible = true;
temptation = (parent.parent as Game).unitsParamsXML.Unit[(unitType - 1)].upgrades.upgrade[(upgradeLevel - 2)].@temptation;
shootSpeed = ((parent.parent as Game).FR / (parent.parent as Game).unitsParamsXML.Unit[(unitType - 1)].upgrades.upgrade[(upgradeLevel - 2)].@shootspeed);
shoot_recharge = 0;
shootRadius = (parent.parent as Game).unitsParamsXML.Unit[(unitType - 1)].upgrades.upgrade[(upgradeLevel - 2)].@shootradius;
splashRadius = (parent.parent as Game).unitsParamsXML.Unit[(unitType - 1)].upgrades.upgrade[(upgradeLevel - 2)].@splashradius;
splashDamage = (parent.parent as Game).unitsParamsXML.Unit[(unitType - 1)].upgrades.upgrade[(upgradeLevel - 2)].@splashdamage;
crit = (parent.parent as Game).unitsParamsXML.Unit[(unitType - 1)].upgrades.upgrade[(upgradeLevel - 2)].@crit;
critinc = (parent.parent as Game).unitsParamsXML.Unit[(unitType - 1)].upgrades.upgrade[(upgradeLevel - 2)].@critinc;
usr.width = ((parent.parent as Game).unitsParamsXML.Unit[(unitType - 1)].upgrades.upgrade[(upgradeLevel - 2)].@shootradius * 2);
usr.height = ((parent.parent as Game).unitsParamsXML.Unit[(unitType - 1)].upgrades.upgrade[(upgradeLevel - 2)].@shootradius * 2);
freeze_value = (parent.parent as Game).unitsParamsXML.Unit[(unitType - 1)].upgrades.upgrade[(upgradeLevel - 2)].@freezevalue;
freeze_time = (parent.parent as Game).unitsParamsXML.Unit[(unitType - 1)].upgrades.upgrade[(upgradeLevel - 2)].@freezetime;
sellPrice = (parent.parent as Game).unitsParamsXML.Unit[(unitType - 1)].upgrades.upgrade[(upgradeLevel - 2)].@sellprice;
};
}
override public function move():void{
playExplsions();
if (trgt){
if (trgt.excitement >= trgt.maxTemptation){
trgt = undefined;
} else {
v = new Vector((trgt.x - x), ((trgt.y - y) + (trgt.height / 2)));
if ((v.magnitude() - trgt.height) > shootRadius){
trgt = undefined;
} else {
angle = ((v.getDirection() - 90) + 180);
if (angle > 180){
angle = (angle - 360);
} else {
if (angle < -180){
angle = (angle + 360);
};
};
this.units.rotation = angle;
if (shoot_recharge < shootSpeed){
shoot_recharge++;
};
if (shoot_recharge >= shootSpeed){
shoot_recharge = 0;
if ((((((((((trgt.x > 0)) && ((trgt.x < 600)))) && ((trgt.y > 0)))) && ((trgt.y < 500)))) && (!(trgt.livesmap)))){
currentMovie.gotoAndPlay(1);
shoot();
} else {
trgt = undefined;
};
};
};
};
};
if (!active){
tmpTime++;
alpha = (alpha - 0.05);
};
if (tmpTime == ((parent.parent as Game).FR * 8)){
tmpTime = 0;
active = true;
alpha = 1;
if (moneyNeed){
(parent.parent as Game).money = ((parent.parent as Game).money + moneyAward);
(parent.parent as Game).gamepanel.checkUnitPrices((parent.parent as Game).money);
(parent.parent as Game).gamepanel.writeMoney((parent.parent as Game).money);
};
};
if (((!(trgt)) && ((shootRadius > 0)))){
if (active){
FindTarget();
};
};
if (currentMovie.currentFrame == currentMovie.totalFrames){
currentMovie.gotoAndStop(1);
};
}
public function upgradeMe1():void{
var _local1:int;
_local1 = (parent.parent as Game).unitsParamsXML.Unit[(unitType - 1)].upgrades.@upgrade1type;
upgradeMe(_local1);
}
public function upgradeMe2():void{
var _local1:int;
_local1 = (parent.parent as Game).unitsParamsXML.Unit[(unitType - 1)].upgrades.@upgrade2type;
upgradeMe(_local1);
}
public function setParameters(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:Number, _arg7:int, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number, _arg13:Number):void{
var _local14:int;
unitType = _arg1;
price = _arg2;
upgradePrice = _arg3;
sellPrice = _arg4;
temptation = _arg5;
shootSpeed = _arg6;
shoot_recharge = _arg6;
shootRadius = _arg7;
splashRadius = _arg8;
splashDamage = _arg9;
crit = _arg10;
critinc = _arg11;
usr.width = (shootRadius * 2);
usr.height = (shootRadius * 2);
freeze_value = _arg12;
freeze_time = _arg13;
if (unitType == 2){
u_fastwork = true;
};
if ((((unitType == 3)) || ((unitType == 4)))){
u_splash = true;
};
hideOthers();
}
}
}//package main
Section 37
//Vector (main.Vector)
package main {
public class Vector {
var y:Number;
var x:Number;
public function Vector(_arg1:Number=0, _arg2:Number=0){
x = _arg1;
y = _arg2;
}
function magnitude2():Number{
return (((x * x) + (y * y)));
}
function subVector(_arg1:Vector):void{
x = (x - _arg1.x);
y = (y - _arg1.y);
}
function addVector(_arg1:Vector):void{
x = (x + _arg1.x);
y = (y + _arg1.y);
}
function mulScalar(_arg1:Number):void{
x = (x * _arg1);
y = (y * _arg1);
}
function getMulScalar(_arg1:Number):Vector{
return (new Vector((x * _arg1), (y * _arg1)));
}
function getDirection():Number{
return (((Math.atan2(y, x) / Math.PI) * 180));
}
function vectorProjectionOnto(_arg1:Vector):Vector{
var _local2:Vector;
_local2 = _arg1.getUnitVector();
_local2.mulScalar(scalarProjectionOnto(_arg1));
return (_local2);
}
function getUnitVector():Vector{
var _local1:Number;
var _local2:Vector;
_local1 = magnitude();
_local2 = new Vector(x, y);
if (_local1){
_local2.x = (_local2.x / _local1);
_local2.y = (_local2.y / _local1);
};
return (_local2);
}
function setMembers(_arg1:Number, _arg2:Number):void{
x = _arg1;
y = _arg2;
}
function copyVector(_arg1:Vector):void{
x = _arg1.x;
y = _arg1.y;
}
function scalarProjectionOnto(_arg1:Vector):Number{
return ((((x * _arg1.x) + (y * _arg1.y)) / _arg1.magnitude()));
}
function magnitude():Number{
return (Math.sqrt(((x * x) + (y * y))));
}
}
}//package main
Section 38
//ADV_162 (td_fla.ADV_162)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class ADV_162 extends MovieClip {
public function ADV_162(){
addFrameScript(7, frame8);
}
function frame8(){
stop();
}
}
}//package td_fla
Section 39
//ADVback_161 (td_fla.ADVback_161)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class ADVback_161 extends MovieClip {
public function ADVback_161(){
addFrameScript(8, frame9);
}
function frame9(){
stop();
}
}
}//package td_fla
Section 40
//branding_aligned_center_113 (td_fla.branding_aligned_center_113)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class branding_aligned_center_113 extends MovieClip {
public function branding_aligned_center_113(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(language.branding_nr);
}
}
}//package td_fla
Section 41
//button_sale_mc1_184 (td_fla.button_sale_mc1_184)
package td_fla {
import flash.display.*;
import flash.text.*;
public dynamic class button_sale_mc1_184 extends MovieClip {
public var sale_txt:TextField;
}
}//package td_fla
Section 42
//button_start_disabled_73 (td_fla.button_start_disabled_73)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class button_start_disabled_73 extends MovieClip {
public function button_start_disabled_73(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package td_fla
Section 43
//description_pause12_81 (td_fla.description_pause12_81)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class description_pause12_81 extends MovieClip {
public function description_pause12_81(){
addFrameScript(8, frame9);
}
function frame9(){
stop();
}
}
}//package td_fla
Section 44
//description_pause2_78 (td_fla.description_pause2_78)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class description_pause2_78 extends MovieClip {
public function description_pause2_78(){
addFrameScript(4, frame5);
}
function frame5(){
stop();
}
}
}//package td_fla
Section 45
//fade_in_58 (td_fla.fade_in_58)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class fade_in_58 extends MovieClip {
public function fade_in_58(){
addFrameScript(25, frame26);
}
function frame26(){
stop();
}
}
}//package td_fla
Section 46
//G_269 (td_fla.G_269)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class G_269 extends MovieClip {
public function G_269(){
addFrameScript(14, frame15);
}
function frame15(){
stop();
}
}
}//package td_fla
Section 47
//game_progress__82 (td_fla.game_progress__82)
package td_fla {
import flash.display.*;
public dynamic class game_progress__82 extends MovieClip {
public var l1:MovieClip;
public var l4:MovieClip;
public var l8:MovieClip;
public var l5:MovieClip;
public var l3:MovieClip;
public var l7:MovieClip;
public var l6:MovieClip;
public var l2:MovieClip;
public var l9:MovieClip;
}
}//package td_fla
Section 48
//infowindow_mc_35 (td_fla.infowindow_mc_35)
package td_fla {
import flash.display.*;
import flash.text.*;
public dynamic class infowindow_mc_35 extends MovieClip {
public var infoText:TextField;
}
}//package td_fla
Section 49
//intrmotextFX_17 (td_fla.intrmotextFX_17)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class intrmotextFX_17 extends MovieClip {
public function intrmotextFX_17(){
addFrameScript(75, frame76);
}
function frame76(){
stop();
}
}
}//package td_fla
Section 50
//MainTimeline (td_fla.MainTimeline)
package td_fla {
import flash.events.*;
import flash.display.*;
import main.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class MainTimeline extends MovieClip {
public var TDGame:Game;
public function MainTimeline(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7);
}
function frame3(){
stop();
}
function frame6(){
}
function frame7(){
}
function frame1(){
stop();
}
function frame4(){
stop();
}
function frame5(){
stop();
}
function frame2(){
stop();
}
}
}//package td_fla
Section 51
//maps_29 (td_fla.maps_29)
package td_fla {
import flash.display.*;
public dynamic class maps_29 extends MovieClip {
public var mask1:MovieClip;
public var mask6:MovieClip;
public var mask2:MovieClip;
public var mask3:MovieClip;
public var mask4:MovieClip;
}
}//package td_fla
Section 52
//mc_excitement_222 (td_fla.mc_excitement_222)
package td_fla {
import flash.display.*;
public dynamic class mc_excitement_222 extends MovieClip {
public var excL:MovieClip;
}
}//package td_fla
Section 53
//mmintrmotext_18 (td_fla.mmintrmotext_18)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class mmintrmotext_18 extends MovieClip {
public function mmintrmotext_18(){
addFrameScript(135, frame136);
}
function frame136(){
stop();
}
}
}//package td_fla
Section 54
//noupg_191 (td_fla.noupg_191)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class noupg_191 extends MovieClip {
public function noupg_191(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package td_fla
Section 55
//p_smoke_181 (td_fla.p_smoke_181)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class p_smoke_181 extends MovieClip {
public function p_smoke_181(){
addFrameScript(49, frame50);
}
function frame50(){
stop();
}
}
}//package td_fla
Section 56
//particle_g_smoke_270 (td_fla.particle_g_smoke_270)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class particle_g_smoke_270 extends MovieClip {
public function particle_g_smoke_270(){
addFrameScript(33, frame34);
}
function frame34(){
stop();
}
}
}//package td_fla
Section 57
//particle_smoke_248 (td_fla.particle_smoke_248)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class particle_smoke_248 extends MovieClip {
public function particle_smoke_248(){
addFrameScript(49, frame50);
}
function frame50(){
stop();
}
}
}//package td_fla
Section 58
//Pause_MC2_41 (td_fla.Pause_MC2_41)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class Pause_MC2_41 extends MovieClip {
public var pb:SimpleButton;
public function Pause_MC2_41(){
addFrameScript(42, frame43);
}
function frame43(){
stop();
}
}
}//package td_fla
Section 59
//pausewindow_mc_37 (td_fla.pausewindow_mc_37)
package td_fla {
import flash.display.*;
public dynamic class pausewindow_mc_37 extends MovieClip {
public var pb:SimpleButton;
}
}//package td_fla
Section 60
//reStart_glow_down_169 (td_fla.reStart_glow_down_169)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class reStart_glow_down_169 extends MovieClip {
public function reStart_glow_down_169(){
addFrameScript(9, frame10);
}
function frame10(){
stop();
}
}
}//package td_fla
Section 61
//sounds_init_88 (td_fla.sounds_init_88)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class sounds_init_88 extends MovieClip {
public function sounds_init_88(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package td_fla
Section 62
//Start_glow_down_68 (td_fla.Start_glow_down_68)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class Start_glow_down_68 extends MovieClip {
public function Start_glow_down_68(){
addFrameScript(9, frame10);
}
function frame10(){
stop();
}
}
}//package td_fla
Section 63
//Start_tne_wave_67 (td_fla.Start_tne_wave_67)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class Start_tne_wave_67 extends MovieClip {
public function Start_tne_wave_67(){
addFrameScript(30, frame31);
}
function frame31(){
stop();
}
}
}//package td_fla
Section 64
//Symbol15copy_97 (td_fla.Symbol15copy_97)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class Symbol15copy_97 extends MovieClip {
public function Symbol15copy_97(){
addFrameScript(4, frame5);
}
function frame5(){
stop();
}
}
}//package td_fla
Section 65
//Symbol15copy2_100 (td_fla.Symbol15copy2_100)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class Symbol15copy2_100 extends MovieClip {
public function Symbol15copy2_100(){
addFrameScript(4, frame5);
}
function frame5(){
stop();
}
}
}//package td_fla
Section 66
//task01_277 (td_fla.task01_277)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class task01_277 extends MovieClip {
public function task01_277(){
addFrameScript(12, frame13);
}
function frame13(){
stop();
}
}
}//package td_fla
Section 67
//task02_280 (td_fla.task02_280)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class task02_280 extends MovieClip {
public function task02_280(){
addFrameScript(12, frame13);
}
function frame13(){
stop();
}
}
}//package td_fla
Section 68
//task03_283 (td_fla.task03_283)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class task03_283 extends MovieClip {
public function task03_283(){
addFrameScript(12, frame13);
}
function frame13(){
stop();
}
}
}//package td_fla
Section 69
//task04_285 (td_fla.task04_285)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class task04_285 extends MovieClip {
public function task04_285(){
addFrameScript(12, frame13);
}
function frame13(){
stop();
}
}
}//package td_fla
Section 70
//tastyplay_logo_4 (td_fla.tastyplay_logo_4)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class tastyplay_logo_4 extends MovieClip {
public function tastyplay_logo_4(){
addFrameScript(101, frame102);
}
function frame102(){
stop();
}
}
}//package td_fla
Section 71
//txtMoney_mc_69 (td_fla.txtMoney_mc_69)
package td_fla {
import flash.display.*;
import flash.text.*;
public dynamic class txtMoney_mc_69 extends MovieClip {
public var txtMoney:TextField;
public var text_mask1:MovieClip;
}
}//package td_fla
Section 72
//txtRespect_mc_71 (td_fla.txtRespect_mc_71)
package td_fla {
import flash.display.*;
import flash.text.*;
public dynamic class txtRespect_mc_71 extends MovieClip {
public var text_mask1:MovieClip;
public var txtRespect:TextField;
}
}//package td_fla
Section 73
//unit_collision_218 (td_fla.unit_collision_218)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class unit_collision_218 extends MovieClip {
public function unit_collision_218(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package td_fla
Section 74
//unit_desc_popup_72 (td_fla.unit_desc_popup_72)
package td_fla {
import flash.display.*;
import flash.text.*;
public dynamic class unit_desc_popup_72 extends MovieClip {
public var txt_cost:TextField;
public var txt:TextField;
}
}//package td_fla
Section 75
//unit_drag_60 (td_fla.unit_drag_60)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class unit_drag_60 extends MovieClip {
public var sr:Range;
public function unit_drag_60(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package td_fla
Section 76
//unit_mc_196 (td_fla.unit_mc_196)
package td_fla {
import flash.display.*;
public dynamic class unit_mc_196 extends MovieClip {
public var unit4_2:MovieClip;
public var unit4_3:MovieClip;
public var unit3_2:MovieClip;
public var unit3_3:MovieClip;
public var unit3_5:MovieClip;
public var unit3_4:MovieClip;
public var unit3_1:MovieClip;
public var unit2_4:MovieClip;
public var unit2_3:MovieClip;
public var unit2_5:MovieClip;
public var unit2_2:MovieClip;
public var uc:MovieClip;
public var unit2_1:MovieClip;
public var unit1_1:MovieClip;
public var unit1_3:MovieClip;
public var unit5_4:MovieClip;
public var unit5_5:MovieClip;
public var unit1_4:MovieClip;
public var unit5_3:MovieClip;
public var unit1_2:MovieClip;
public var unit5_2:MovieClip;
public var unit5_1:MovieClip;
public var unit1_5:MovieClip;
public var unit4_4:MovieClip;
public var unit4_5:MovieClip;
public var unit4_1:MovieClip;
}
}//package td_fla
Section 77
//uniticon_55 (td_fla.uniticon_55)
package td_fla {
import flash.display.*;
public dynamic class uniticon_55 extends MovieClip {
public var unit_drag:MovieClip;
public var icons_units:MovieClip;
public var lock:MovieClip;
}
}//package td_fla
Section 78
//upg_but_mc1_188 (td_fla.upg_but_mc1_188)
package td_fla {
import flash.display.*;
import flash.text.*;
public dynamic class upg_but_mc1_188 extends MovieClip {
public var upg_txt:TextField;
public var upg_but:SimpleButton;
}
}//package td_fla
Section 79
//upgrade111_193 (td_fla.upgrade111_193)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class upgrade111_193 extends MovieClip {
public function upgrade111_193(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package td_fla
Section 80
//volume_94 (td_fla.volume_94)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class volume_94 extends MovieClip {
public function volume_94(){
addFrameScript(7, frame8);
}
function frame8(){
stop();
}
}
}//package td_fla
Section 81
//waves_progress__83 (td_fla.waves_progress__83)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class waves_progress__83 extends MovieClip {
public function waves_progress__83(){
addFrameScript(0, frame1, 6, frame7);
}
function frame7(){
}
function frame1(){
stop();
}
}
}//package td_fla
Section 82
//waves_progress_empty__86 (td_fla.waves_progress_empty__86)
package td_fla {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class waves_progress_empty__86 extends MovieClip {
public function waves_progress_empty__86(){
addFrameScript(0, frame1, 6, frame7);
}
function frame7(){
}
function frame1(){
stop();
}
}
}//package td_fla
Section 83
//base1 (base1)
package {
import flash.media.*;
public dynamic class base1 extends Sound {
}
}//package
Section 84
//bonus_mc (bonus_mc)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class bonus_mc extends MovieClip {
public var txt:TextField;
public function bonus_mc(){
addFrameScript(34, frame35);
}
function frame35(){
stop();
}
}
}//package
Section 85
//Button_disabledSkin (Button_disabledSkin)
package {
import flash.display.*;
public dynamic class Button_disabledSkin extends MovieClip {
}
}//package
Section 86
//Button_downSkin (Button_downSkin)
package {
import flash.display.*;
public dynamic class Button_downSkin extends MovieClip {
}
}//package
Section 87
//Button_emphasizedSkin (Button_emphasizedSkin)
package {
import flash.display.*;
public dynamic class Button_emphasizedSkin extends MovieClip {
}
}//package
Section 88
//Button_overSkin (Button_overSkin)
package {
import flash.display.*;
public dynamic class Button_overSkin extends MovieClip {
}
}//package
Section 89
//Button_selectedDisabledSkin (Button_selectedDisabledSkin)
package {
import flash.display.*;
public dynamic class Button_selectedDisabledSkin extends MovieClip {
}
}//package
Section 90
//Button_selectedDownSkin (Button_selectedDownSkin)
package {
import flash.display.*;
public dynamic class Button_selectedDownSkin extends MovieClip {
}
}//package
Section 91
//Button_selectedOverSkin (Button_selectedOverSkin)
package {
import flash.display.*;
public dynamic class Button_selectedOverSkin extends MovieClip {
}
}//package
Section 92
//Button_selectedUpSkin (Button_selectedUpSkin)
package {
import flash.display.*;
public dynamic class Button_selectedUpSkin extends MovieClip {
}
}//package
Section 93
//Button_upSkin (Button_upSkin)
package {
import flash.display.*;
public dynamic class Button_upSkin extends MovieClip {
}
}//package
Section 94
//car1 (car1)
package {
import flash.media.*;
public dynamic class car1 extends Sound {
}
}//package
Section 95
//car2 (car2)
package {
import flash.media.*;
public dynamic class car2 extends Sound {
}
}//package
Section 96
//car3 (car3)
package {
import flash.media.*;
public dynamic class car3 extends Sound {
}
}//package
Section 97
//damage_road (damage_road)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class damage_road extends MovieClip {
public function damage_road(){
addFrameScript(11, frame12);
}
function frame12(){
stop();
}
}
}//package
Section 98
//explosion (explosion)
package {
import flash.media.*;
public dynamic class explosion extends Sound {
}
}//package
Section 99
//explosion_mc (explosion_mc)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class explosion_mc extends MovieClip {
public function explosion_mc(){
addFrameScript(62, frame63);
}
function frame63(){
stop();
}
}
}//package
Section 100
//fary_mask_mc (fary_mask_mc)
package {
import flash.display.*;
public dynamic class fary_mask_mc extends MovieClip {
}
}//package
Section 101
//fary_mc (fary_mc)
package {
import flash.display.*;
public dynamic class fary_mc extends MovieClip {
}
}//package
Section 102
//focusRectSkin (focusRectSkin)
package {
import flash.display.*;
public dynamic class focusRectSkin extends MovieClip {
}
}//package
Section 103
//game_over (game_over)
package {
import flash.media.*;
public dynamic class game_over extends Sound {
}
}//package
Section 104
//game_win (game_win)
package {
import flash.media.*;
public dynamic class game_win extends Sound {
}
}//package
Section 105
//gblow_MC (gblow_MC)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class gblow_MC extends MovieClip {
public function gblow_MC(){
addFrameScript(26, frame27);
}
function frame27(){
stop();
}
}
}//package
Section 106
//grened1 (grened1)
package {
import flash.media.*;
public dynamic class grened1 extends Sound {
}
}//package
Section 107
//language (language)
package {
import flash.net.*;
public class language {
public static var localConnection = new LocalConnection();
public static var _languageNum:uint = 0;
public static var _languageBox:Array = new Array();
public static var SpillGroupUrl:Array = new Array();
public static var gamename = "favela_heroes";
public static function get url2():String{
var _local1:int;
_local1 = 0;
while (_local1 < SpillGroupUrl.length) {
if (localConnection.domain == SpillGroupUrl[_local1]){
return (_languageBox[_languageNum].url2);
};
_local1++;
};
return (_languageBox[_languageNum].url2);
}
public static function get language_nr():String{
return (_languageBox[_languageNum].language_nr);
}
public static function get portal():String{
return (_languageBox[_languageNum].portal);
}
public static function set Language(_arg1:Object):void{
var returnDomain:*;
var hostingdomain:String;
var myList:String;
var myArray:Array;
var language1:*;
var language2:*;
var language3:*;
var language4:*;
var language5:*;
var language6:*;
var language7:*;
var language8:*;
var language9:*;
var language10:*;
var language11:*;
var language12:*;
var language13:*;
var language14:*;
var language15:*;
var language16:*;
var language17:*;
var language18:*;
var domainextention:int;
var domainname:int;
var languageVersion = _arg1;
returnDomain = function (_arg1:String):String{
var _local2:String;
var _local3:uint;
_local2 = new String();
_local3 = 7;
while (_local3 < _arg1.length) {
if (_arg1.charAt(_local3) == "/"){
break;
};
_local2 = (_local2 + _arg1.charAt(_local3));
_local3++;
};
return (_local2);
};
hostingdomain = "";
myList = localConnection.domain;
myArray = myList.split(".");
if (myArray.length <= 3){
domainextention = (myArray.length - 1);
domainname = (myArray.length - 2);
hostingdomain = ((myArray[domainname] + ".") + myArray[domainextention]);
} else {
hostingdomain = localConnection.domain;
};
language1 = new languageItem();
language1.url1 = ((("http://www.agame.com/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language1.url2 = ((("http://www.agame.com/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language1.language_nr = 1;
language1.branding_nr = 1;
language1.portal = "tweens";
_languageBox.push(language1);
language2 = new languageItem();
language2.url1 = ((("http://www.a10.com/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language2.url2 = ((("http://www.a10.com/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language2.language_nr = 2;
language2.branding_nr = 2;
language2.portal = "a10";
_languageBox.push(language2);
language3 = new languageItem();
language3.url1 = ((("http://www.spel.nl/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language3.url2 = ((("http://www.spel.nl/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language3.language_nr = 3;
language3.branding_nr = 4;
language3.portal = "tweens";
_languageBox.push(language3);
language4 = new languageItem();
language4.url1 = ((("http://www.jeu.fr/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language4.url2 = ((("http://www.jeu.fr/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language4.language_nr = 4;
language4.branding_nr = 5;
language4.portal = "tweens";
_languageBox.push(language4);
language5 = new languageItem();
language5.url1 = ((("http://www.spielen.com/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language5.url2 = ((("http://www.spielen.com/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language5.language_nr = 5;
language5.branding_nr = 6;
language5.portal = "tweens";
_languageBox.push(language5);
language6 = new languageItem();
language6.url1 = ((("http://www.minigry.pl/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language6.url2 = ((("http://www.minigry.pl/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language6.language_nr = 6;
language6.branding_nr = 14;
language6.portal = "tweens";
_languageBox.push(language6);
language7 = new languageItem();
language7.url1 = ((("http://www.spel.se/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language7.url2 = ((("http://www.spel.se/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language7.language_nr = 7;
language7.branding_nr = 9;
language7.portal = "tweens";
_languageBox.push(language7);
language8 = new languageItem();
language8.url1 = ((("http://www.giocaregratis.it/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language8.url2 = ((("http://www.giocaregratis.it/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language8.language_nr = 8;
language8.branding_nr = 8;
language8.portal = "tweens";
_languageBox.push(language8);
language9 = new languageItem();
language9.url1 = ((("http://www.zapjuegos.com/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language9.url2 = ((("http://www.zapjuegos.com/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language9.language_nr = 9;
language9.branding_nr = 3;
language9.portal = "tweens";
_languageBox.push(language9);
language10 = new languageItem();
language10.url1 = ((("http://www.clickjogos.com/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language10.url2 = ((("http://www.clickjogos.com/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language10.language_nr = 11;
language10.branding_nr = 7;
language10.portal = "tweens";
_languageBox.push(language10);
language11 = new languageItem();
language11.url1 = ((("http://www.games.co.id/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language11.url2 = ((("http://www.games.co.id/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language11.language_nr = 13;
language11.branding_nr = 13;
language11.portal = "tweens";
_languageBox.push(language11);
language12 = new languageItem();
language12.url1 = ((("http://www.flashgames.ru/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language12.url2 = ((("http://www.flashgames.ru/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language12.language_nr = 12;
language12.branding_nr = 11;
language12.portal = "tweens";
_languageBox.push(language12);
language13 = new languageItem();
language13.url1 = ((("http://www.mygames.co.uk/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language13.url2 = ((("http://www.mygames.co.uk/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language13.language_nr = 16;
language13.branding_nr = 10;
language13.portal = "tweens";
_languageBox.push(language13);
language14 = new languageItem();
language14.url1 = ((("http://www.ojogos.pt/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language14.url2 = ((("http://www.ojogos.pt/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language14.language_nr = 10;
language14.branding_nr = 42;
language14.portal = "family";
_languageBox.push(language14);
language15 = new languageItem();
language15.url1 = ((("http://www.egames.jp/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language15.url2 = ((("http://www.egames.jp/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language15.language_nr = 18;
language15.branding_nr = 44;
language15.portal = "tweens";
_languageBox.push(language15);
language16 = new languageItem();
language16.url1 = ((("http://www.game.co.in/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language16.url2 = ((("http://www.game.co.in/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language16.language_nr = 16;
language16.branding_nr = 12;
language16.portal = "tweens";
_languageBox.push(language16);
language17 = new languageItem();
language17.url1 = ((("http://www.egames.jp/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language17.url2 = ((("http://www.egames.jp/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language17.language_nr = 170;
language17.branding_nr = 44;
language17.portal = "tweens";
_languageBox.push(language17);
language18 = new languageItem();
language18.url1 = ((("http://www.egames.jp/moregames/?utm_medium=brandedgames_external&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language18.url2 = ((("http://www.egames.jp/moregames/?utm_medium=brandedgames_internal&utm_campaign=" + gamename) + "&utm_source=") + hostingdomain);
language18.language_nr = 17;
language18.branding_nr = 44;
language18.portal = "tweens";
_languageBox.push(language18);
SpillGroupUrl.push("localhost");
SpillGroupUrl.push("www8.agame.com");
if ((((((languageVersion is Number)) || ((languageVersion is uint)))) || ((languageVersion is int)))){
_languageNum = (Number(languageVersion) - 1);
};
}
public static function get url1():String{
var _local1:int;
_local1 = 0;
while (_local1 < SpillGroupUrl.length) {
if (localConnection.domain == SpillGroupUrl[_local1]){
return (_languageBox[_languageNum].url2);
};
_local1++;
};
return (_languageBox[_languageNum].url1);
}
public static function get branding_nr():String{
return (_languageBox[_languageNum].branding_nr);
}
}
}//package
class languageItem {
public var url1:String;
public var url2:String;
public var branding_nr:int;
public var language_nr:int;
public var portal:String;
private function languageItem(){
}
}
Section 108
//level_pause_mc (level_pause_mc)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class level_pause_mc extends MovieClip {
public var but1:MovieClip;
public function level_pause_mc(){
addFrameScript(12, frame13);
}
function frame13(){
stop();
}
}
}//package
Section 109
//light_stop (light_stop)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class light_stop extends MovieClip {
public function light_stop(){
addFrameScript(7, frame8);
}
function frame8(){
stop();
stop();
}
}
}//package
Section 110
//mc_01 (mc_01)
package {
import flash.display.*;
public dynamic class mc_01 extends MovieClip {
}
}//package
Section 111
//menuclick (menuclick)
package {
import flash.media.*;
public dynamic class menuclick extends Sound {
}
}//package
Section 112
//music1 (music1)
package {
import flash.media.*;
public dynamic class music1 extends Sound {
}
}//package
Section 113
//particle_smoke_mc (particle_smoke_mc)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class particle_smoke_mc extends MovieClip {
public function particle_smoke_mc(){
addFrameScript(26, frame27);
}
function frame27(){
stop();
}
}
}//package
Section 114
//Range (Range)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class Range extends MovieClip {
public function Range(){
addFrameScript(4, frame5);
}
function frame5(){
stop();
}
}
}//package
Section 115
//sale (sale)
package {
import flash.media.*;
public dynamic class sale extends Sound {
}
}//package
Section 116
//selection (selection)
package {
import flash.display.*;
public dynamic class selection extends MovieClip {
}
}//package
Section 117
//skipbtn_mc (skipbtn_mc)
package {
import flash.display.*;
public dynamic class skipbtn_mc extends MovieClip {
}
}//package
Section 118
//SliderThumb_disabledSkin (SliderThumb_disabledSkin)
package {
import flash.display.*;
public dynamic class SliderThumb_disabledSkin extends MovieClip {
}
}//package
Section 119
//SliderThumb_downSkin (SliderThumb_downSkin)
package {
import flash.display.*;
public dynamic class SliderThumb_downSkin extends MovieClip {
}
}//package
Section 120
//SliderThumb_overSkin (SliderThumb_overSkin)
package {
import flash.display.*;
public dynamic class SliderThumb_overSkin extends MovieClip {
}
}//package
Section 121
//SliderThumb_upSkin (SliderThumb_upSkin)
package {
import flash.display.*;
public dynamic class SliderThumb_upSkin extends MovieClip {
}
}//package
Section 122
//SliderTick_skin (SliderTick_skin)
package {
import flash.display.*;
public dynamic class SliderTick_skin extends MovieClip {
}
}//package
Section 123
//SliderTrack_disabledSkin (SliderTrack_disabledSkin)
package {
import flash.display.*;
public dynamic class SliderTrack_disabledSkin extends MovieClip {
}
}//package
Section 124
//SliderTrack_skin (SliderTrack_skin)
package {
import flash.display.*;
public dynamic class SliderTrack_skin extends MovieClip {
}
}//package
Section 125
//sparks_MC (sparks_MC)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class sparks_MC extends MovieClip {
public function sparks_MC(){
addFrameScript(3, frame4);
}
function frame4(){
stop();
}
}
}//package
Section 126
//splash_explosion (splash_explosion)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class splash_explosion extends MovieClip {
public function splash_explosion(){
addFrameScript(42, frame43);
}
function frame43(){
stop();
}
}
}//package
Section 127
//startgame (startgame)
package {
import flash.media.*;
public dynamic class startgame extends Sound {
}
}//package
Section 128
//succeswhite1 (succeswhite1)
package {
import flash.media.*;
public dynamic class succeswhite1 extends Sound {
}
}//package
Section 129
//succeswhite2 (succeswhite2)
package {
import flash.media.*;
public dynamic class succeswhite2 extends Sound {
}
}//package
Section 130
//succeswhite3 (succeswhite3)
package {
import flash.media.*;
public dynamic class succeswhite3 extends Sound {
}
}//package
Section 131
//support1 (support1)
package {
import flash.media.*;
public dynamic class support1 extends Sound {
}
}//package
Section 132
//tnt (tnt)
package {
import flash.media.*;
public dynamic class tnt extends Sound {
}
}//package
Section 133
//tommy1 (tommy1)
package {
import flash.media.*;
public dynamic class tommy1 extends Sound {
}
}//package
Section 134
//tommy2 (tommy2)
package {
import flash.media.*;
public dynamic class tommy2 extends Sound {
}
}//package
Section 135
//tommy3 (tommy3)
package {
import flash.media.*;
public dynamic class tommy3 extends Sound {
}
}//package
Section 136
//tuturial_mc (tuturial_mc)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class tuturial_mc extends MovieClip {
public var task3:MovieClip;
public function tuturial_mc(){
addFrameScript(11, frame12, 21, frame22, 30, frame31, 39, frame40, 44, frame45);
}
function frame12(){
stop();
}
function frame22(){
stop();
}
function frame31(){
stop();
}
function frame40(){
stop();
}
function frame45(){
stop();
}
}
}//package
Section 137
//updress1 (updress1)
package {
import flash.media.*;
public dynamic class updress1 extends Sound {
}
}//package
Section 138
//upg_window (upg_window)
package {
import flash.media.*;
public dynamic class upg_window extends Sound {
}
}//package
Section 139
//upgrade_window_new (upgrade_window_new)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class upgrade_window_new extends MovieClip {
public var sel_but:MovieClip;
public var ranktext:TextField;
public var upg_but_dis:MovieClip;
public var upg_but:MovieClip;
public function upgrade_window_new(){
addFrameScript(0, frame1);
}
function frame1(){
trace("stop");
stop();
}
}
}//package
Section 140
//WinGame_MC (WinGame_MC)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.utils.*;
import flash.text.*;
import flash.net.*;
import flash.geom.*;
import flash.filters.*;
import flash.ui.*;
import flash.system.*;
import flash.accessibility.*;
import flash.errors.*;
public dynamic class WinGame_MC extends MovieClip {
public function WinGame_MC(){
addFrameScript(73, frame74);
}
function frame74(){
stop();
}
}
}//package