STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228048
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2560 · P5120

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/33188780?noj=FRM33188780-24DC" width="1" height="1"></div>

Shattered Colony Survivors.swf

This is the info page for
Flash #100766

(Click the ID number above for more basic data on this flash file.)


Text
<p align="center"><font face="Bitstream Vera Sans" size="24" color="#ffffff" letterSpacing="0.000000" kerning="1">Progress: 99%</font></p>

EXPLOSIVE GAMES

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>99</b></font></p>

<p align="left"><font face="Stencil Std" size="20" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Quota</b></font></p>

Set Charges

Workshop

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>99</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>99</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>99</b></font></p>

<p align="center"><font face="Stencil Std" size="20" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Left to Extract</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>999</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>999</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>999</b></font></p>

Accuracy

Sniper

<p align="left"><font face="Stencil Std" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Quota</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>999</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>99</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>999</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>99</b></font></p>

Tower Plan

Depot

<p align="left"><font face="Stencil Std" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Quota</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>999</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>99</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>99</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>999</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>999</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>99</b></font></p>

Barricade

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>99</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>999</b></font></p>

<p align="left"><font face="Stencil Std" size="20" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Quota</b></font></p>

<p align="center"><font face="Arial" size="36" color="#ff0000" letterSpacing="0.000000" kerning="1"><b>No Survivors</b></font></p>

Back

Level Design
Symphony of Specters
(Selcuk Bor)
&
DaemonLord
(golynskiy at msn dot
com )
Playtesting and Ideas
Bryce Anderson
Mike Austin
Nathan Heard
Nala Rogers
Special thanks
Epic Shadow
Entertainment
Dedicated To
My Wife,
Mandy Giles

Designer & Coder
Jonathon Duerig
Writer
Aaron Reed
Artist
Markham Carroll
Composer
Hans HiScore

Select Difficulty

Quartermaster

Expert

Veteran

Novice

Defeat

Main Menu

Retry Map

Load Game

View Replay

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Rate Map</font></p>

<p align="right"><font face="Arial" size="24" color="#cccccc" letterSpacing="0.000000" kerning="1"><b>Time: 3:15</b></font></p>

<p align="right"><font face="Arial" size="24" color="#cccccc" letterSpacing="0.000000" kerning="1"><b>Salt Lake City</b></font></p>

<p align="right"><font face="Arial" size="24" color="#cccccc" letterSpacing="0.000000" kerning="1"><b>Quartermaster</b></font></p>

<p align="center"><font face="Arial" size="48" color="#cccccc" letterSpacing="0.000000" kerning="1"><b>Quartermaster</b></font></p>

<p align="left"><font face="Prestige Elite Std" size="24" color="#333333" letterSpacing="0.000000" kerning="1">Anytown</font></p>

<p align="center"><font face="Prestige Elite Std" size="24" color="#000000" letterSpacing="0.000000" kerning="1">You can replay a map by typing in the same name.</font></p>

Name Your City

Play

SPONSORED BY

1.7

S

H

A

T

E

R

D

C

O

L

N

Y

Map Editor

Options

Zombipedia

Credits

New Game

Skip Tutorial

Play Tutorial

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Rate Map</font></p>

Victory

<p align="right"><font face="Arial" size="24" color="#cccccc" letterSpacing="0.000000" kerning="1"><b>Salt Lake City</b></font></p>

<p align="right"><font face="Arial" size="24" color="#cccccc" letterSpacing="0.000000" kerning="1"><b>Quartermaster</b></font></p>

<p align="right"><font face="Arial" size="24" color="#cccccc" letterSpacing="0.000000" kerning="1"><b>Time: 3:15</b></font></p>

Replay

<p align="center"><font face="Prestige Elite Std" size="14" color="#000000" letterSpacing="0.000000" kerning="1">Text Bar</font></p>

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Upload Map</font></p>

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Edit Map</font></p>

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Test Map</font></p>

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Save Map</font></p>

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Briefing</font></p>

Save Game

Resume Game

System Menu

<p align="right"><font face="Arial" size="36" color="#cccccc" letterSpacing="0.000000" kerning="1"><b>Bridges Left: 4</b></font></p>

<p align="right"><font face="Arial" size="36" color="#cccccc" letterSpacing="0.000000" kerning="1"><b>Zombies Left: 640</b></font></p>

<p align="right"><font face="Arial" size="36" color="#cccccc" letterSpacing="0.000000" kerning="1"><b>Quartermaster</b></font></p>

<p align="right"><font face="Arial" size="36" color="#cccccc" letterSpacing="0.000000" kerning="1"><b>Salt Lake City</b></font></p>

Options

Close

<p align="left"><font face="Arial" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">Sniper: Anyone who&apos;s handy with a rifle gets sent to man these towers, thrown together from boards and sweat. Send more survivors to a tower and they&apos;ll act as spotters, increasing the accuracy of your shots; and make damn sure to keep the ammo flowing by assigning as many civvies as you can spare. If you have the time and boards, you can upgrade a sniper tower by building it up higher to improve your range. </font></p><p align="left"></p><p align="left"><font face="Arial" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">Your snipers are good shots, and sharp: they&apos;ll obey tactical orders without question, like firing in the air to attract the zombies, or holding fire to avoid a swarm. But the towers themselves are rickety scrap</font></p>

Zombipedia

<p align="center"><font face="Arial" size="48" color="#cccccc" letterSpacing="0.000000" kerning="1"><b>Generating Map...</b></font></p>

<p align="left"><font face="Arial" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">TutorialClip</font></p>

Next

<p align="left"><font face="Arial" size="14" color="#ff00ff" letterSpacing="0.000000" kerning="1">ToolTipClip</font></p>

Paused

Stock
# of resources
currently available

Quota
# of resources
assigned here

Survivors
For Working,
Moving Resources

Boards
For Building,
Upgrading, Repairing

Ammo
For Shooting
Zombies

Boards
Each board blocks
one zombie hit

Build Up
Increase # of
boards here

Tear Down
Reduce # of
boards here

Build Depot
Builds and supplies
other structures

Build Barricade
Blocks zombies

Build Sniper
Shoots zombies

Build Workshop
Gathers resources
and sets charges

Change Quota
Increase/decrease
# of resources
assigned here

Remove Supply Line
Stop supplying
another structure

Add Supply LIne
Start supplying
another structure

Abandon Structure
Drop everything
and run

Upgrade
Increase range

Survivors
Extra survivors
improve accuracy

Toggle Hold Fire
Shooting attracts
zombies. Hold fire
to avoid attention.

Accuracy
Chances of hitting
a zombie

Shoot Into Air
Makes noise,
attracts zombies

Left to Extract
# of resources
left to be found

Set Charges
Progress towards
destroying bridge

Survivors
More survivors
work faster

Stock
# of resources
already found

Timer
Counts down until
next zombie horde

<p align="right"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Level 999</font></p>

<p align="right"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Survivors 999</font></p>

<p align="right"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Boards 999</font></p>

<p align="right"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Ammo 999</font></p>

<p align="right"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Zombies 999 </font></p>

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Change Type</font></p>

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Toggle Broken</font></p>

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Reflect</font></p>

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Rotate</font></p>

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Set Entrance</font></p>

<p align="center"><font face="Prestige Elite Std" size="16" color="#ff0000" letterSpacing="0.000000" kerning="1">Delete</font></p>

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Add Obstacle</font></p>

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Add Rubble</font></p>

<p align="left"><font face="Prestige Elite Std" size="24" color="#333333" letterSpacing="0.000000" kerning="1">65</font></p>

<p align="left"><font face="Prestige Elite Std" size="24" color="#333333" letterSpacing="0.000000" kerning="1">Anytown</font></p>

<p align="left"><font face="Prestige Elite Std" size="24" color="#333333" letterSpacing="0.000000" kerning="1">65</font></p>

Difficulty

Height

Width

City Name

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Create</font></p>

<p align="center"><font face="Bitstream Vera Sans" size="32" color="#333333" letterSpacing="0.000000" kerning="1">(888, 888)</font></p>

Build

Browse Maps

Paste Map

Download Map

Random Map

Campaign

Select Map

Ok

<p align="left"><font face="Arial" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">Sniper: Anyone who&apos;s handy with a rifle gets sent to man these towers, thrown together from boards and sweat. Send more survivors to a tower and they&apos;ll act as spotters, increasing the accuracy of your shots; and make damn sure to keep the ammo flowing by assigning as many civvies as you can spare. If you have the time and boards, you can upgrade a sniper tower by building it up higher to improve your range. </font></p><p align="left"></p><p align="left"><font face="Arial" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">Your snipers are good shots, and sharp: they&apos;ll obey tactical orders without question, like firing in the air to attract the zombies, or holding fire to avoid a swarm. But the towers themselves are rickety scrap</font></p>

Mission Briefing

<p align="left"><font face="Prestige Elite Std" size="12" color="#333333" letterSpacing="0.000000" kerning="1">http://auriga-squad.appspot.com/asdfasdf</font></p>

Enter URL

Load

Continue Map

Instructions

Edit New Map

Map Editor

<p align="left"></p>

Map Operation Failed

<p align="left"></p>

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Load</font></p>

Paste Map Code Below (Right Click -> Paste)

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Copy</font></p>

<p align="left"></p>

Save This Map Code and Keep it Safe

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>999</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>9999</b></font></p>

<p align="right"><font face="Arial" size="14" color="#000000" letterSpacing="0.000000" kerning="1"><b>9999</b></font></p>

<p align="left"><font face="Prestige Elite Std" size="12" color="#333333" letterSpacing="0.000000" kerning="1">http://auriga-squad.appspot.com/asdfasdf</font></p>

Save This URL

Copy

Difficulty

Fun

Submit

Survival

Bridge

Graduation

Bang

Boom

Boot Camp

Hide & Seek

<p align="center"><font face="Prestige Elite Std" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Most Recent</font></p>

96-100

Name

Name

Name

Name

Name

A  GAME  BY
-
JONATHON
DUERIG

ActionScript [AS3]

Section 1
//AddFeature (action.AddFeature) package action { import feature.*; import flash.*; public class AddFeature implements Interface { protected var feature:Root; protected var mapPos:Point; public function AddFeature(_arg1:Point=null, _arg2:Root=null):void{ if (!Boot.skip_constructor){ this.mapPos = _arg1; this.feature = _arg2; }; } public function run():void{ Game.map.getCell(this.mapPos.x, this.mapPos.y).feature = this.feature; } } }//package action
Section 2
//CloseTower (action.CloseTower) package action { import flash.*; public class CloseTower implements Interface { protected var x:int; protected var y:int; public function CloseTower(_arg1:int=0, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.x = _arg1; this.y = _arg2; }; } public function run():void{ Game.map.getCell(this.x, this.y).closeTower(); } } }//package action
Section 3
//DestroyBridge (action.DestroyBridge) package action { import logic.*; import ui.*; import flash.*; public class DestroyBridge implements Interface { protected var bridge:Bridge; public function DestroyBridge(_arg1:Bridge=null):void{ if (!Boot.skip_constructor){ this.bridge = _arg1; }; } public function run():void{ var _local1:Explosion; _local1 = new Explosion(this.bridge); } } }//package action
Section 4
//Interface (action.Interface) package action { public interface Interface { function run():void; } }//package action
Section 5
//KillTruck (action.KillTruck) package action { import flash.*; public class KillTruck implements Interface { protected var deadTruck:Truck; public function KillTruck(_arg1:Truck=null):void{ if (!Boot.skip_constructor){ this.deadTruck = _arg1; }; } public function run():void{ this.deadTruck.dropLoad(); this.deadTruck.spawnZombie(); } } }//package action
Section 6
//RemoveFeature (action.RemoveFeature) package action { import flash.*; public class RemoveFeature implements Interface { protected var mapPos:Point; public function RemoveFeature(_arg1:Point=null):void{ if (!Boot.skip_constructor){ this.mapPos = _arg1; }; } public function run():void{ var _local1:MapCell; _local1 = Game.map.getCell(this.mapPos.x, this.mapPos.y); if (_local1.feature != null){ _local1.feature.cleanup(); _local1.feature = null; }; } } }//package action
Section 7
//UpdateBlocked (action.UpdateBlocked) package action { import flash.*; public class UpdateBlocked implements Interface { protected var mapPos:Point; public function UpdateBlocked(_arg1:Point=null):void{ if (!Boot.skip_constructor){ this.mapPos = _arg1.clone(); }; } protected function updateBlocked(_arg1:int, _arg2:int):void{ var _local3:Tower; _local3 = Game.map.getCell(_arg1, _arg2).getTower(); if (_local3 != null){ _local3.updateBlocked(); }; } public function run():void{ var _local1:int; var _local2:Array; var _local3:Point; var _local4:int; var _local5:int; _local1 = 0; _local2 = Lib.delta; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local4 = (this.mapPos.x + _local3.x); _local5 = (this.mapPos.y + _local3.y); this.updateBlocked(_local4, _local5); }; this.updateBlocked(this.mapPos.x, this.mapPos.y); } } }//package action
Section 8
//png (background.png) package background { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package background
Section 9
//Dynamite (feature.Dynamite) package feature { import logic.*; import ui.*; import action.*; import flash.*; public class Dynamite extends Root { protected var bridge:Bridge; public function Dynamite(_arg1:Point=null, _arg2:int=0, _arg3:Bridge=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); this.type = Root.DYNAMITE; this.bridge = _arg3; }; } override public function getBuildTip():String{ return (Text.backgroundBuildDynamiteTip); } override public function getWorkshopTip():String{ return (Text.workshopDynamiteTip); } override public function load(_arg1):void{ super.load(_arg1.parent); this.bridge = Bridge.load(_arg1.bridge); Game.progress.addBridge(this.bridge, false); } override protected function getAction():Interface{ return (new DestroyBridge(this.bridge)); } override public function getHoverTip():String{ return (Text.hoverDynamiteTip); } override public function save(){ return ({parent:super.save(), bridge:this.bridge.save()}); } } }//package feature
Section 10
//Root (feature.Root) package feature { import ui.*; import action.*; import flash.*; public class Root { protected var display:Sprite; protected var counter:int; protected var max:int; protected var type:int; protected var mapPos:Point; protected static var DYNAMITE:int = 0; public function Root(_arg1:Point=null, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.type = 0; this.mapPos = _arg1; this.counter = _arg2; this.max = _arg2; this.display = new Sprite(_arg1.toPixel(), 0, 0, Animation.feature); this.display.update(); Game.actions.push(new AddFeature(this.mapPos, this)); }; } public function getBuildTip():String{ return (Text.backgroundBuildFeatureTip); } public function cleanup():void{ this.display.cleanup(); } public function load(_arg1):void{ this.max = _arg1.max; this.display = Sprite.load(_arg1.display); } protected function getAction():Interface{ return (null); } public function getHoverTip():String{ return (Text.hoverFeatureTip); } public function maxWork():int{ return (this.max); } public function workLeft():int{ return (this.counter); } public function doWork():Boolean{ var _local1:Boolean; var _local2:Interface; _local1 = false; if (this.counter > 0){ this.counter--; }; if (this.counter == 0){ _local2 = this.getAction(); if (_local2 != null){ Game.actions.push(new RemoveFeature(this.mapPos)); Game.actions.push(_local2); }; _local1 = true; }; return (_local1); } public function save(){ return ({type:this.type, mapPos:this.mapPos.save(), counter:this.counter, max:this.max, display:this.display.save()}); } public function getWorkshopTip():String{ return (Text.workshopFeatureTip); } public static function loadS(_arg1):Root{ var _local2:Root; _local2 = null; if (_arg1.parent.type == DYNAMITE){ _local2 = new Dynamite(Point.load(_arg1.parent.mapPos), _arg1.parent.max, null); _local2.load(_arg1); }; return (_local2); } public static function saveS(_arg1:Root){ return (_arg1.save()); } } }//package feature
Section 11
//BaseScrollPane (fl.containers.BaseScrollPane) package fl.containers { import fl.core.*; import fl.controls.*; import flash.display.*; import flash.events.*; import flash.geom.*; import fl.events.*; public class BaseScrollPane extends UIComponent { protected var defaultLineScrollSize:Number;// = 4 protected var _maxHorizontalScrollPosition:Number;// = 0 protected var vScrollBar:Boolean; protected var disabledOverlay:Shape; protected var hScrollBar:Boolean; protected var availableWidth:Number; protected var _verticalPageScrollSize:Number;// = 0 protected var vOffset:Number;// = 0 protected var _verticalScrollBar:ScrollBar; protected var useFixedHorizontalScrolling:Boolean;// = false protected var contentWidth:Number;// = 0 protected var contentHeight:Number;// = 0 protected var _horizontalPageScrollSize:Number;// = 0 protected var background:DisplayObject; protected var _useBitmpScrolling:Boolean;// = false protected var contentPadding:Number;// = 0 protected var availableHeight:Number; protected var _horizontalScrollBar:ScrollBar; protected var contentScrollRect:Rectangle; protected var _horizontalScrollPolicy:String; protected var _verticalScrollPolicy:String; protected static const SCROLL_BAR_STYLES:Object = {upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {repeatDelay:500, repeatInterval:35, skin:"ScrollPane_upSkin", contentPadding:0, disabledAlpha:0.5}; public function BaseScrollPane(){ contentWidth = 0; contentHeight = 0; contentPadding = 0; vOffset = 0; _maxHorizontalScrollPosition = 0; _horizontalPageScrollSize = 0; _verticalPageScrollSize = 0; defaultLineScrollSize = 4; useFixedHorizontalScrolling = false; _useBitmpScrolling = false; super(); } protected function handleWheel(_arg1:MouseEvent):void{ if (((((!(enabled)) || (!(_verticalScrollBar.visible)))) || ((contentHeight <= availableHeight)))){ return; }; _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * verticalLineScrollSize)); setVerticalScrollPosition(_verticalScrollBar.scrollPosition); dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _arg1.delta, horizontalScrollPosition)); } public function get verticalScrollPosition():Number{ return (_verticalScrollBar.scrollPosition); } protected function drawDisabledOverlay():void{ if (enabled){ if (contains(disabledOverlay)){ removeChild(disabledOverlay); }; } else { disabledOverlay.x = (disabledOverlay.y = contentPadding); disabledOverlay.width = availableWidth; disabledOverlay.height = availableHeight; disabledOverlay.alpha = (getStyleValue("disabledAlpha") as Number); addChild(disabledOverlay); }; } public function set verticalScrollPosition(_arg1:Number):void{ drawNow(); _verticalScrollBar.scrollPosition = _arg1; setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); } protected function setContentSize(_arg1:Number, _arg2:Number):void{ if ((((((contentWidth == _arg1)) || (useFixedHorizontalScrolling))) && ((contentHeight == _arg2)))){ return; }; contentWidth = _arg1; contentHeight = _arg2; invalidate(InvalidationType.SIZE); } public function get horizontalScrollPosition():Number{ return (_horizontalScrollBar.scrollPosition); } public function get horizontalScrollBar():ScrollBar{ return (_horizontalScrollBar); } override public function set enabled(_arg1:Boolean):void{ if (enabled == _arg1){ return; }; _verticalScrollBar.enabled = _arg1; _horizontalScrollBar.enabled = _arg1; super.enabled = _arg1; } public function get verticalLineScrollSize():Number{ return (_verticalScrollBar.lineScrollSize); } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } protected function calculateAvailableSize():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = ScrollBar.WIDTH; _local2 = (contentPadding = Number(getStyleValue("contentPadding"))); _local3 = ((height - (2 * _local2)) - vOffset); vScrollBar = (((_verticalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((contentHeight > _local3))))); _local4 = ((width - (vScrollBar) ? _local1 : 0) - (2 * _local2)); _local5 = (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - _local4); hScrollBar = (((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_local5 > 0))))); if (hScrollBar){ _local3 = (_local3 - _local1); }; if (((((((hScrollBar) && (!(vScrollBar)))) && ((_verticalScrollPolicy == ScrollPolicy.AUTO)))) && ((contentHeight > _local3)))){ vScrollBar = true; _local4 = (_local4 - _local1); }; availableHeight = (_local3 + vOffset); availableWidth = _local4; } public function get maxVerticalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentHeight - availableHeight))); } public function set horizontalScrollPosition(_arg1:Number):void{ drawNow(); _horizontalScrollBar.scrollPosition = _arg1; setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); } public function get horizontalLineScrollSize():Number{ return (_horizontalScrollBar.lineScrollSize); } public function set verticalPageScrollSize(_arg1:Number):void{ _verticalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function get useBitmapScrolling():Boolean{ return (_useBitmpScrolling); } protected function handleScroll(_arg1:ScrollEvent):void{ if (_arg1.target == _verticalScrollBar){ setVerticalScrollPosition(_arg1.position); } else { setHorizontalScrollPosition(_arg1.position); }; } public function set verticalLineScrollSize(_arg1:Number):void{ _verticalScrollBar.lineScrollSize = _arg1; } public function get verticalScrollBar():ScrollBar{ return (_verticalScrollBar); } protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function set horizontalPageScrollSize(_arg1:Number):void{ _horizontalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STATE)){ drawLayout(); }; updateChildren(); super.draw(); } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } override protected function configUI():void{ var _local1:Graphics; super.configUI(); contentScrollRect = new Rectangle(0, 0, 85, 85); _verticalScrollBar = new ScrollBar(); _verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _verticalScrollBar.visible = false; _verticalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_verticalScrollBar); copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); _horizontalScrollBar = new ScrollBar(); _horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL; _horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _horizontalScrollBar.visible = false; _horizontalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_horizontalScrollBar); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); disabledOverlay = new Shape(); _local1 = disabledOverlay.graphics; _local1.beginFill(0xFFFFFF); _local1.drawRect(0, 0, width, height); _local1.endFill(); addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true); } protected function calculateContentWidth():void{ } public function get verticalPageScrollSize():Number{ if (isNaN(availableHeight)){ drawNow(); }; return (((((_verticalPageScrollSize == 0)) && (!(isNaN(availableHeight))))) ? availableHeight : _verticalPageScrollSize); } protected function drawLayout():void{ calculateAvailableSize(); calculateContentWidth(); background.width = width; background.height = height; if (vScrollBar){ _verticalScrollBar.visible = true; _verticalScrollBar.x = ((width - ScrollBar.WIDTH) - contentPadding); _verticalScrollBar.y = contentPadding; _verticalScrollBar.height = availableHeight; } else { _verticalScrollBar.visible = false; }; _verticalScrollBar.setScrollProperties(availableHeight, 0, (contentHeight - availableHeight), verticalPageScrollSize); setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); if (hScrollBar){ _horizontalScrollBar.visible = true; _horizontalScrollBar.x = contentPadding; _horizontalScrollBar.y = ((height - ScrollBar.WIDTH) - contentPadding); _horizontalScrollBar.width = availableWidth; } else { _horizontalScrollBar.visible = false; }; _horizontalScrollBar.setScrollProperties(availableWidth, 0, (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - availableWidth), horizontalPageScrollSize); setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); drawDisabledOverlay(); } protected function drawBackground():void{ var _local1:DisplayObject; _local1 = background; background = getDisplayObjectInstance(getStyleValue("skin")); background.width = width; background.height = height; addChildAt(background, 0); if (((!((_local1 == null))) && (!((_local1 == background))))){ removeChild(_local1); }; } public function set horizontalLineScrollSize(_arg1:Number):void{ _horizontalScrollBar.lineScrollSize = _arg1; } public function get horizontalPageScrollSize():Number{ if (isNaN(availableWidth)){ drawNow(); }; return (((((_horizontalPageScrollSize == 0)) && (!(isNaN(availableWidth))))) ? availableWidth : _horizontalPageScrollSize); } public function get maxHorizontalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentWidth - availableWidth))); } protected function setStyles():void{ copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); } protected function updateChildren():void{ _verticalScrollBar.enabled = (_horizontalScrollBar.enabled = enabled); _verticalScrollBar.drawNow(); _horizontalScrollBar.drawNow(); } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } public function set useBitmapScrolling(_arg1:Boolean):void{ _useBitmpScrolling = _arg1; invalidate(InvalidationType.STATE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.containers
Section 12
//CellRenderer (fl.controls.listClasses.CellRenderer) package fl.controls.listClasses { import fl.controls.*; import flash.events.*; public class CellRenderer extends LabelButton implements ICellRenderer { protected var _data:Object; protected var _listData:ListData; private static var defaultStyles:Object = {upSkin:"CellRenderer_upSkin", downSkin:"CellRenderer_downSkin", overSkin:"CellRenderer_overSkin", disabledSkin:"CellRenderer_disabledSkin", selectedDisabledSkin:"CellRenderer_selectedDisabledSkin", selectedUpSkin:"CellRenderer_selectedUpSkin", selectedDownSkin:"CellRenderer_selectedDownSkin", selectedOverSkin:"CellRenderer_selectedOverSkin", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public function CellRenderer():void{ toggle = true; focusEnabled = false; } override protected function toggleSelected(_arg1:MouseEvent):void{ } override public function get selected():Boolean{ return (super.selected); } public function set listData(_arg1:ListData):void{ _listData = _arg1; label = _listData.label; setStyle("icon", _listData.icon); } override public function set selected(_arg1:Boolean):void{ super.selected = _arg1; } public function set data(_arg1:Object):void{ _data = _arg1; } public function get listData():ListData{ return (_listData); } override public function setSize(_arg1:Number, _arg2:Number):void{ super.setSize(_arg1, _arg2); } override protected function drawLayout():void{ var _local1:Number; var _local2:Number; var _local3:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = 0; if (icon != null){ icon.x = _local1; icon.y = Math.round(((height - icon.height) >> 1)); _local2 = (icon.width + _local1); }; if (label.length > 0){ textField.visible = true; _local3 = Math.max(0, ((width - _local2) - (_local1 * 2))); textField.width = _local3; textField.height = (textField.textHeight + 4); textField.x = (_local2 + _local1); textField.y = Math.round(((height - textField.height) >> 1)); } else { textField.visible = false; }; background.width = width; background.height = height; } public function get data():Object{ return (_data); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls.listClasses
Section 13
//ICellRenderer (fl.controls.listClasses.ICellRenderer) package fl.controls.listClasses { public interface ICellRenderer { function setSize(_arg1:Number, _arg2:Number):void; function get listData():ListData; function get data():Object; function setMouseState(_arg1:String):void; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function set data(_arg1:Object):void; function set selected(_arg1:Boolean):void; function set listData(_arg1:ListData):void; function get selected():Boolean; } }//package fl.controls.listClasses
Section 14
//ListData (fl.controls.listClasses.ListData) package fl.controls.listClasses { import fl.core.*; public class ListData { protected var _index:uint; protected var _owner:UIComponent; protected var _label:String; protected var _icon:Object;// = null protected var _row:uint; protected var _column:uint; public function ListData(_arg1:String, _arg2:Object, _arg3:UIComponent, _arg4:uint, _arg5:uint, _arg6:uint=0){ _icon = null; super(); _label = _arg1; _icon = _arg2; _owner = _arg3; _index = _arg4; _row = _arg5; _column = _arg6; } public function get owner():UIComponent{ return (_owner); } public function get label():String{ return (_label); } public function get row():uint{ return (_row); } public function get index():uint{ return (_index); } public function get icon():Object{ return (_icon); } public function get column():uint{ return (_column); } } }//package fl.controls.listClasses
Section 15
//BaseButton (fl.controls.BaseButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; 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 16
//Button (fl.controls.Button) package fl.controls { import fl.core.*; import flash.display.*; 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 17
//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 18
//ComboBox (fl.controls.ComboBox) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import fl.data.*; import fl.managers.*; import fl.events.*; import flash.ui.*; public class ComboBox extends UIComponent implements IFocusManagerComponent { protected var _dropdownWidth:Number; protected var highlightedCell:int;// = -1 protected var _prompt:String; protected var isOpen:Boolean;// = false protected var list:List; protected var _rowCount:uint;// = 5 protected var currentIndex:int; protected var isKeyDown:Boolean;// = false protected var _labels:Array; protected var background:BaseButton; protected var inputField:TextInput; protected var listOverIndex:uint; protected var editableValue:String; protected var _editable:Boolean;// = false private var collectionItemImport:SimpleCollectionItem; protected static const BACKGROUND_STYLES:Object = {overSkin:"overSkin", downSkin:"downSkin", upSkin:"upSkin", disabledSkin:"disabledSkin", repeatInterval:"repeatInterval"}; protected static const LIST_STYLES:Object = {upSkin:"comboListUpSkin", overSkin:"comboListOverSkin", downSkin:"comobListDownSkin", disabledSkin:"comboListDisabledSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval", textFormat:"textFormat", disabledAlpha:"disabledAlpha", skin:"listSkin"}; private static var defaultStyles:Object = {upSkin:"ComboBox_upSkin", downSkin:"ComboBox_downSkin", overSkin:"ComboBox_overSkin", disabledSkin:"ComboBox_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:3, buttonWidth:24, disabledAlpha:null, listSkin:null}; public static var createAccessibilityImplementation:Function; public function ComboBox(){ _rowCount = 5; _editable = false; isOpen = false; highlightedCell = -1; isKeyDown = false; super(); } protected function drawList():void{ list.rowCount = Math.max(0, Math.min(_rowCount, list.dataProvider.length)); } public function set imeMode(_arg1:String):void{ inputField.imeMode = _arg1; } public function get dropdown():List{ return (list); } public function get dropdownWidth():Number{ return (list.width); } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (list.sortItemsOn(_arg1, _arg2)); } protected function onEnter(_arg1:ComponentEvent):void{ _arg1.stopPropagation(); } public function removeItemAt(_arg1:uint):void{ list.removeItemAt(_arg1); invalidate(InvalidationType.DATA); } public function open():void{ currentIndex = selectedIndex; if (((isOpen) || ((length == 0)))){ return; }; dispatchEvent(new Event(Event.OPEN)); isOpen = true; addEventListener(Event.ENTER_FRAME, addCloseListener, false, 0, true); positionList(); list.scrollToSelected(); stage.addChild(list); } public function get selectedItem():Object{ return (list.selectedItem); } public function set text(_arg1:String):void{ if (!editable){ return; }; inputField.text = _arg1; } public function get labelField():String{ return (list.labelField); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; var _local3:uint; var _local4:Number; var _local5:int; isKeyDown = true; if (_arg1.ctrlKey){ switch (_arg1.keyCode){ case Keyboard.UP: if (highlightedCell > -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); break; case Keyboard.DOWN: open(); break; }; return; }; _arg1.stopPropagation(); _local2 = Math.max(((calculateAvailableHeight() / list.rowHeight) << 0), 1); _local3 = selectedIndex; _local4 = ((highlightedCell)==-1) ? selectedIndex : highlightedCell; _local5 = -1; switch (_arg1.keyCode){ case Keyboard.SPACE: if (isOpen){ close(); } else { open(); }; return; case Keyboard.ESCAPE: if (isOpen){ if (highlightedCell > -1){ selectedIndex = selectedIndex; }; close(); }; return; case Keyboard.UP: _local5 = Math.max(0, (_local4 - 1)); break; case Keyboard.DOWN: _local5 = Math.min((length - 1), (_local4 + 1)); break; case Keyboard.PAGE_UP: _local5 = Math.max((_local4 - _local2), 0); break; case Keyboard.PAGE_DOWN: _local5 = Math.min((_local4 + _local2), (length - 1)); break; case Keyboard.HOME: _local5 = 0; break; case Keyboard.END: _local5 = (length - 1); break; case Keyboard.ENTER: if (((_editable) && ((highlightedCell == -1)))){ editableValue = inputField.text; selectedIndex = -1; } else { if (((isOpen) && ((highlightedCell > -1)))){ editableValue = null; selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; }; dispatchEvent(new ComponentEvent(ComponentEvent.ENTER)); close(); return; default: if (editable){ break; }; _local5 = list.getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), _local4); break; }; if (_local5 > -1){ if (isOpen){ highlightCell(_local5); inputField.text = list.itemToLabel(getItemAt(_local5)); } else { highlightCell(); selectedIndex = _local5; dispatchEvent(new Event(Event.CHANGE)); }; }; } public function set dropdownWidth(_arg1:Number):void{ _dropdownWidth = _arg1; invalidate(InvalidationType.SIZE); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ super.focusInHandler(_arg1); if (editable){ stage.focus = inputField.textField; }; } protected function onStageClick(_arg1:MouseEvent):void{ if (!isOpen){ return; }; if (((!(contains((_arg1.target as DisplayObject)))) && (!(list.contains((_arg1.target as DisplayObject)))))){ if (highlightedCell != -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; } protected function handleDataChange(_arg1:DataChangeEvent):void{ invalidate(InvalidationType.DATA); } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ isKeyDown = false; } protected function onListItemUp(_arg1:MouseEvent):void{ var _local2:*; stage.removeEventListener(MouseEvent.MOUSE_UP, onListItemUp); if (((!((_arg1.target is ICellRenderer))) || (!(list.contains((_arg1.target as DisplayObject)))))){ return; }; editableValue = null; _local2 = selectedIndex; selectedIndex = _arg1.target.listData.index; if (_local2 != selectedIndex){ dispatchEvent(new Event(Event.CHANGE)); }; close(); } public function removeAll():void{ list.removeAll(); inputField.text = ""; invalidate(InvalidationType.DATA); } public function set selectedItem(_arg1:Object):void{ list.selectedItem = _arg1; invalidate(InvalidationType.SELECTED); } protected function highlightCell(_arg1:int=-1):void{ var _local2:ICellRenderer; if (highlightedCell > -1){ _local2 = list.itemToCellRenderer(getItemAt(highlightedCell)); if (_local2 != null){ _local2.setMouseState("up"); }; }; if (_arg1 == -1){ return; }; list.scrollToIndex(_arg1); list.drawNow(); _local2 = list.itemToCellRenderer(getItemAt(_arg1)); if (_local2 != null){ _local2.setMouseState("over"); highlightedCell = _arg1; }; } public function itemToLabel(_arg1:Object):String{ if (_arg1 == null){ return (""); }; return (list.itemToLabel(_arg1)); } public function addItemAt(_arg1:Object, _arg2:uint):void{ list.addItemAt(_arg1, _arg2); invalidate(InvalidationType.DATA); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (list.replaceItemAt(_arg1, _arg2)); } protected function showPrompt():void{ inputField.text = _prompt; } public function set rowCount(_arg1:uint):void{ _rowCount = _arg1; invalidate(InvalidationType.SIZE); } public function get restrict():String{ return (inputField.restrict); } protected function setEmbedFonts():void{ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ inputField.textField.embedFonts = _local1; }; } public function sortItems(... _args){ return (list.sortItems.apply(list, _args)); } public function set labelField(_arg1:String):void{ list.labelField = _arg1; invalidate(InvalidationType.DATA); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; drawTextField(); } public function set prompt(_arg1:String):void{ if (_arg1 == ""){ _prompt = null; } else { _prompt = _arg1; }; invalidate(InvalidationType.STATE); } public function get length():int{ return (list.length); } protected function drawTextField():void{ inputField.setStyle("upSkin", ""); inputField.setStyle("disabledSkin", ""); inputField.enabled = enabled; inputField.editable = _editable; inputField.textField.selectable = ((enabled) && (_editable)); inputField.mouseEnabled = (inputField.mouseChildren = ((enabled) && (_editable))); inputField.focusEnabled = false; if (_editable){ inputField.addEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus, false, 0, true); inputField.addEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut, false, 0, true); } else { inputField.removeEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus); inputField.removeEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut); }; } protected function onInputFieldFocusOut(_arg1:FocusEvent):void{ inputField.removeEventListener(ComponentEvent.ENTER, onEnter); selectedIndex = selectedIndex; } protected function passEvent(_arg1:Event):void{ dispatchEvent(_arg1); } public function get imeMode():String{ return (inputField.imeMode); } public function get labelFunction():Function{ return (list.labelFunction); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return ((list.height - (_local1 * 2))); } public function get selectedIndex():int{ return (list.selectedIndex); } override protected function focusOutHandler(_arg1:FocusEvent):void{ isKeyDown = false; if (isOpen){ if (((!(_arg1.relatedObject)) || (!(list.contains(_arg1.relatedObject))))){ if (((!((highlightedCell == -1))) && (!((highlightedCell == selectedIndex))))){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; }; super.focusOutHandler(_arg1); } public function get selectedLabel():String{ if (editableValue != null){ return (editableValue); }; if (selectedIndex == -1){ return (null); }; return (itemToLabel(selectedItem)); } public function get text():String{ return (inputField.text); } protected function onListChange(_arg1:Event):void{ editableValue = null; dispatchEvent(_arg1); invalidate(InvalidationType.SELECTED); if (isKeyDown){ return; }; close(); } protected function onToggleListVisibility(_arg1:MouseEvent):void{ _arg1.stopPropagation(); dispatchEvent(_arg1); if (isOpen){ close(); } else { open(); stage.addEventListener(MouseEvent.MOUSE_UP, onListItemUp, false, 0, true); }; } override protected function draw():void{ var _local1:*; _local1 = selectedIndex; if ((((_local1 == -1)) && (((((!((prompt == null))) || (editable))) || ((length == 0)))))){ _local1 = Math.max(-1, Math.min(_local1, (length - 1))); } else { editableValue = null; _local1 = Math.max(0, Math.min(_local1, (length - 1))); }; if (list.selectedIndex != _local1){ list.selectedIndex = _local1; invalidate(InvalidationType.SELECTED, false); }; if (isInvalid(InvalidationType.STYLES)){ setStyles(); setEmbedFonts(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.STATE)){ drawTextFormat(); drawLayout(); invalidate(InvalidationType.DATA); }; if (isInvalid(InvalidationType.DATA)){ drawList(); invalidate(InvalidationType.SELECTED, true); }; if (isInvalid(InvalidationType.SELECTED)){ if ((((_local1 == -1)) && (!((editableValue == null))))){ inputField.text = editableValue; } else { if (_local1 > -1){ if (length > 0){ inputField.horizontalScrollPosition = 0; inputField.text = itemToLabel(list.selectedItem); }; } else { if ((((_local1 == -1)) && (!((_prompt == null))))){ showPrompt(); } else { inputField.text = ""; }; }; }; if (((((editable) && ((selectedIndex > -1)))) && ((stage.focus == inputField.textField)))){ inputField.setSelection(0, inputField.length); }; }; drawTextField(); super.draw(); } public function addItem(_arg1:Object):void{ list.addItem(_arg1); invalidate(InvalidationType.DATA); } public function get rowCount():uint{ return (_rowCount); } override protected function configUI():void{ super.configUI(); background = new BaseButton(); background.focusEnabled = false; copyStylesToChild(background, BACKGROUND_STYLES); background.addEventListener(MouseEvent.MOUSE_DOWN, onToggleListVisibility, false, 0, true); addChild(background); inputField = new TextInput(); inputField.focusTarget = (this as IFocusManagerComponent); inputField.focusEnabled = false; inputField.addEventListener(Event.CHANGE, onTextInput, false, 0, true); addChild(inputField); list = new List(); list.focusEnabled = false; copyStylesToChild(list, LIST_STYLES); list.addEventListener(Event.CHANGE, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_CLICK, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OUT, passEvent, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OVER, passEvent, false, 0, true); list.verticalScrollBar.addEventListener(Event.SCROLL, passEvent, false, 0, true); } protected function positionList():void{ var _local1:Point; _local1 = localToGlobal(new Point(0, 0)); list.x = _local1.x; if (((_local1.y + height) + list.height) > stage.stageHeight){ list.y = (_local1.y - list.height); } else { list.y = (_local1.y + height); }; } public function get value():String{ var _local1:Object; if (editableValue != null){ return (editableValue); }; _local1 = selectedItem; if (((!(_editable)) && (!((_local1.data == null))))){ return (_local1.data); }; return (itemToLabel(_local1)); } public function get prompt():String{ return (_prompt); } public function set dataProvider(_arg1:DataProvider):void{ _arg1.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); list.dataProvider = _arg1; invalidate(InvalidationType.DATA); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; if (!_editable){ return; }; inputField.restrict = _arg1; } protected function onTextInput(_arg1:Event):void{ _arg1.stopPropagation(); if (!_editable){ return; }; editableValue = inputField.text; selectedIndex = -1; dispatchEvent(new Event(Event.CHANGE)); } protected function onInputFieldFocus(_arg1:FocusEvent):void{ inputField.addEventListener(ComponentEvent.ENTER, onEnter, false, 0, true); close(); } public function getItemAt(_arg1:uint):Object{ return (list.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (ComboBox.createAccessibilityImplementation != null){ ComboBox.createAccessibilityImplementation(this); }; } protected function drawLayout():void{ var _local1:Number; var _local2:Number; _local1 = (getStyleValue("buttonWidth") as Number); _local2 = (getStyleValue("textPadding") as Number); background.setSize(width, height); inputField.x = (inputField.y = _local2); inputField.setSize(((width - _local1) - _local2), (height - _local2)); list.width = (isNaN(_dropdownWidth)) ? width : _dropdownWidth; background.enabled = enabled; background.drawNow(); } public function removeItem(_arg1:Object):Object{ return (list.removeItem(_arg1)); } private function addCloseListener(_arg1:Event){ removeEventListener(Event.ENTER_FRAME, addCloseListener); if (!isOpen){ return; }; stage.addEventListener(MouseEvent.MOUSE_DOWN, onStageClick, false, 0, true); } public function get dataProvider():DataProvider{ return (list.dataProvider); } public function get textField():TextInput{ return (inputField); } protected function setStyles():void{ copyStylesToChild(background, BACKGROUND_STYLES); copyStylesToChild(list, LIST_STYLES); } public function set labelFunction(_arg1:Function):void{ list.labelFunction = _arg1; invalidate(InvalidationType.DATA); } protected function drawTextFormat():void{ var _local1:TextFormat; _local1 = (getStyleValue((_enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local1 == null){ _local1 = new TextFormat(); }; inputField.textField.defaultTextFormat = _local1; inputField.textField.setTextFormat(_local1); setEmbedFonts(); } public function set selectedIndex(_arg1:int):void{ list.selectedIndex = _arg1; highlightCell(); invalidate(InvalidationType.SELECTED); } public function close():void{ highlightCell(); highlightedCell = -1; if (!isOpen){ return; }; dispatchEvent(new Event(Event.CLOSE)); stage.removeEventListener(MouseEvent.MOUSE_DOWN, onStageClick); isOpen = false; stage.removeChild(list); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, List.getStyleDefinition())); } } }//package fl.controls
Section 19
//LabelButton (fl.controls.LabelButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import flash.text.*; import fl.managers.*; import fl.events.*; 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 20
//List (fl.controls.List) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.events.*; import flash.utils.*; import flash.geom.*; import fl.managers.*; import flash.ui.*; public class List extends SelectableList implements IFocusManagerComponent { protected var _labelField:String;// = "label" protected var _rowHeight:Number;// = 20 protected var _cellRenderer:Object; protected var _iconField:String;// = "icon" protected var _labelFunction:Function; protected var _iconFunction:Function; private static var defaultStyles:Object = {focusRectSkin:null, focusRectPadding:null}; public static var createAccessibilityImplementation:Function; public function List(){ _rowHeight = 20; _labelField = "label"; _iconField = "icon"; super(); } public function get iconField():String{ return (_iconField); } protected function doKeySelection(_arg1:int, _arg2:Boolean, _arg3:Boolean):void{ var _local4:Boolean; var _local5:int; var _local6:Array; var _local7:int; var _local8:int; _local4 = false; if (_arg2){ _local6 = []; _local7 = lastCaretIndex; _local8 = _arg1; if (_local7 == -1){ _local7 = ((caretIndex)!=-1) ? caretIndex : _arg1; }; if (_local7 > _local8){ _local8 = _local7; _local7 = _arg1; }; _local5 = _local7; while (_local5 <= _local8) { _local6.push(_local5); _local5++; }; selectedIndices = _local6; caretIndex = _arg1; _local4 = true; } else { selectedIndex = _arg1; caretIndex = (lastCaretIndex = _arg1); _local4 = true; }; if (_local4){ dispatchEvent(new Event(Event.CHANGE)); }; invalidate(InvalidationType.DATA); } override protected function drawList():void{ var _local1:Rectangle; var _local2:uint; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:ICellRenderer; var _local7:Dictionary; var _local8:Dictionary; var _local9:Boolean; var _local10:String; var _local11:Object; var _local12:Sprite; var _local13:String; listHolder.x = (listHolder.y = contentPadding); _local1 = listHolder.scrollRect; _local1.x = _horizontalScrollPosition; _local1.y = (Math.floor(_verticalScrollPosition) % rowHeight); listHolder.scrollRect = _local1; listHolder.cacheAsBitmap = useBitmapScrolling; _local2 = Math.floor((_verticalScrollPosition / rowHeight)); _local3 = Math.min(length, ((_local2 + rowCount) + 1)); _local7 = (renderedItems = new Dictionary(true)); _local4 = _local2; while (_local4 < _local3) { _local7[_dataProvider.getItemAt(_local4)] = true; _local4++; }; _local8 = new Dictionary(true); while (activeCellRenderers.length > 0) { _local6 = (activeCellRenderers.pop() as ICellRenderer); _local5 = _local6.data; if ((((_local7[_local5] == null)) || ((invalidItems[_local5] == true)))){ availableCellRenderers.push(_local6); } else { _local8[_local5] = _local6; invalidItems[_local5] = true; }; list.removeChild((_local6 as DisplayObject)); }; invalidItems = new Dictionary(true); _local4 = _local2; while (_local4 < _local3) { _local9 = false; _local5 = _dataProvider.getItemAt(_local4); if (_local8[_local5] != null){ _local9 = true; _local6 = _local8[_local5]; delete _local8[_local5]; } else { if (availableCellRenderers.length > 0){ _local6 = (availableCellRenderers.pop() as ICellRenderer); } else { _local6 = (getDisplayObjectInstance(getStyleValue("cellRenderer")) as ICellRenderer); _local12 = (_local6 as Sprite); if (_local12 != null){ _local12.addEventListener(MouseEvent.CLICK, handleCellRendererClick, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OVER, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OUT, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(Event.CHANGE, handleCellRendererChange, false, 0, true); _local12.doubleClickEnabled = true; _local12.addEventListener(MouseEvent.DOUBLE_CLICK, handleCellRendererDoubleClick, false, 0, true); if (_local12["setStyle"] != null){ for (_local13 in rendererStyles) { var _local16 = _local12; _local16["setStyle"](_local13, rendererStyles[_local13]); }; }; }; }; }; list.addChild((_local6 as Sprite)); activeCellRenderers.push(_local6); _local6.y = (rowHeight * (_local4 - _local2)); _local6.setSize((availableWidth + _maxHorizontalScrollPosition), rowHeight); _local10 = itemToLabel(_local5); _local11 = null; if (_iconFunction != null){ _local11 = _iconFunction(_local5); } else { if (_iconField != null){ _local11 = _local5[_iconField]; }; }; if (!_local9){ _local6.data = _local5; }; _local6.listData = new ListData(_local10, _local11, this, _local4, _local4, 0); _local6.selected = !((_selectedIndices.indexOf(_local4) == -1)); if ((_local6 is UIComponent)){ (_local6 as UIComponent).drawNow(); }; _local4++; }; } public function get iconFunction():Function{ return (_iconFunction); } public function set iconField(_arg1:String):void{ if (_arg1 == _iconField){ return; }; _iconField = _arg1; invalidate(InvalidationType.DATA); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.SPACE: if (caretIndex == -1){ caretIndex = 0; }; doKeySelection(caretIndex, _arg1.shiftKey, _arg1.ctrlKey); scrollToSelected(); break; default: _local2 = getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), selectedIndex); if (_local2 > -1){ selectedIndex = _local2; scrollToSelected(); }; break; }; _arg1.stopPropagation(); } override public function itemToLabel(_arg1:Object):String{ if (_labelFunction != null){ return (String(_labelFunction(_arg1))); }; return (((_arg1[_labelField])!=null) ? String(_arg1[_labelField]) : ""); } public function get labelField():String{ return (_labelField); } override protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ var _local4:int; var _local5:int; var _local6:int; _local4 = Math.max(Math.floor((calculateAvailableHeight() / rowHeight)), 1); _local5 = -1; _local6 = 0; switch (_arg1){ case Keyboard.UP: if (caretIndex > 0){ _local5 = (caretIndex - 1); }; break; case Keyboard.DOWN: if (caretIndex < (length - 1)){ _local5 = (caretIndex + 1); }; break; case Keyboard.PAGE_UP: if (caretIndex > 0){ _local5 = Math.max((caretIndex - _local4), 0); }; break; case Keyboard.PAGE_DOWN: if (caretIndex < (length - 1)){ _local5 = Math.min((caretIndex + _local4), (length - 1)); }; break; case Keyboard.HOME: if (caretIndex > 0){ _local5 = 0; }; break; case Keyboard.END: if (caretIndex < (length - 1)){ _local5 = (length - 1); }; break; }; if (_local5 >= 0){ doKeySelection(_local5, _arg2, _arg3); scrollToSelected(); }; } public function set labelField(_arg1:String):void{ if (_arg1 == _labelField){ return; }; _labelField = _arg1; invalidate(InvalidationType.DATA); } public function set rowCount(_arg1:uint):void{ var _local2:Number; var _local3:Number; _local2 = Number(getStyleValue("contentPadding")); _local3 = ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0; height = (((rowHeight * _arg1) + (2 * _local2)) + _local3); } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ list.x = -(_arg1); super.setHorizontalScrollPosition(_arg1, true); } public function set iconFunction(_arg1:Function):void{ if (_iconFunction == _arg1){ return; }; _iconFunction = _arg1; invalidate(InvalidationType.DATA); } public function get labelFunction():Function{ return (_labelFunction); } override protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ invalidate(InvalidationType.SCROLL); super.setVerticalScrollPosition(_arg1, true); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return (((height - (_local1 * 2)) - ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0)); } override protected function draw():void{ var _local1:Boolean; _local1 = !((contentHeight == (rowHeight * length))); contentHeight = (rowHeight * length); if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; if (_cellRenderer != getStyleValue("cellRenderer")){ _invalidateList(); _cellRenderer = getStyleValue("cellRenderer"); }; }; if (((isInvalid(InvalidationType.SIZE, InvalidationType.STATE)) || (_local1))){ drawLayout(); }; if (isInvalid(InvalidationType.RENDERER_STYLES)){ updateRendererStyles(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.SCROLL, InvalidationType.SELECTED)){ drawList(); }; updateChildren(); validate(); } override protected function configUI():void{ useFixedHorizontalScrolling = true; _horizontalScrollPolicy = ScrollPolicy.AUTO; _verticalScrollPolicy = ScrollPolicy.AUTO; super.configUI(); } override public function get rowCount():uint{ return (Math.ceil((calculateAvailableHeight() / rowHeight))); } override protected function initializeAccessibility():void{ if (List.createAccessibilityImplementation != null){ List.createAccessibilityImplementation(this); }; } override public function scrollToIndex(_arg1:int):void{ var _local2:uint; var _local3:uint; drawNow(); _local2 = (Math.floor(((_verticalScrollPosition + availableHeight) / rowHeight)) - 1); _local3 = Math.ceil((_verticalScrollPosition / rowHeight)); if (_arg1 < _local3){ verticalScrollPosition = (_arg1 * rowHeight); } else { if (_arg1 > _local2){ verticalScrollPosition = (((_arg1 + 1) * rowHeight) - availableHeight); }; }; } public function get rowHeight():Number{ return (_rowHeight); } public function set labelFunction(_arg1:Function):void{ if (_labelFunction == _arg1){ return; }; _labelFunction = _arg1; invalidate(InvalidationType.DATA); } public function set rowHeight(_arg1:Number):void{ _rowHeight = _arg1; invalidate(InvalidationType.SIZE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, SelectableList.getStyleDefinition())); } } }//package fl.controls
Section 21
//ScrollBar (fl.controls.ScrollBar) package fl.controls { import fl.core.*; import flash.events.*; import fl.events.*; public class ScrollBar extends UIComponent { private var _direction:String;// = "vertical" protected var inDrag:Boolean;// = false protected var upArrow:BaseButton; private var _pageScrollSize:Number;// = 0 protected var downArrow:BaseButton; private var _pageSize:Number;// = 10 private var thumbScrollOffset:Number; private var _maxScrollPosition:Number;// = 0 private var _scrollPosition:Number;// = 0 protected var track:BaseButton; private var _minScrollPosition:Number;// = 0 private var _lineScrollSize:Number;// = 1 protected var thumb:LabelButton; protected static const THUMB_STYLES:Object = {disabledSkin:"thumbDisabledSkin", downSkin:"thumbDownSkin", overSkin:"thumbOverSkin", upSkin:"thumbUpSkin", icon:"thumbIcon", textPadding:0}; public static const WIDTH:Number = 15; protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const TRACK_STYLES:Object = {disabledSkin:"trackDisabledSkin", downSkin:"trackDownSkin", overSkin:"trackOverSkin", upSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {downArrowDisabledSkin:"ScrollArrowDown_disabledSkin", downArrowDownSkin:"ScrollArrowDown_downSkin", downArrowOverSkin:"ScrollArrowDown_overSkin", downArrowUpSkin:"ScrollArrowDown_upSkin", thumbDisabledSkin:"ScrollThumb_upSkin", thumbDownSkin:"ScrollThumb_downSkin", thumbOverSkin:"ScrollThumb_overSkin", thumbUpSkin:"ScrollThumb_upSkin", trackDisabledSkin:"ScrollTrack_skin", trackDownSkin:"ScrollTrack_skin", trackOverSkin:"ScrollTrack_skin", trackUpSkin:"ScrollTrack_skin", upArrowDisabledSkin:"ScrollArrowUp_disabledSkin", upArrowDownSkin:"ScrollArrowUp_downSkin", upArrowOverSkin:"ScrollArrowUp_overSkin", upArrowUpSkin:"ScrollArrowUp_upSkin", thumbIcon:"ScrollBar_thumbIcon", repeatDelay:500, repeatInterval:35}; public function ScrollBar(){ _pageSize = 10; _pageScrollSize = 0; _lineScrollSize = 1; _minScrollPosition = 0; _maxScrollPosition = 0; _scrollPosition = 0; _direction = ScrollBarDirection.VERTICAL; inDrag = false; super(); setStyles(); focusEnabled = false; } public function get minScrollPosition():Number{ return (_minScrollPosition); } public function set minScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _arg1, _maxScrollPosition); } public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ var _local3:Number; _local3 = scrollPosition; _scrollPosition = Math.max(_minScrollPosition, Math.min(_maxScrollPosition, _arg1)); if (_local3 == _scrollPosition){ return; }; if (_arg2){ dispatchEvent(new ScrollEvent(_direction, (scrollPosition - _local3), scrollPosition)); }; updateThumb(); } public function set scrollPosition(_arg1:Number):void{ setScrollPosition(_arg1, true); } public function get pageScrollSize():Number{ return (((_pageScrollSize)==0) ? _pageSize : _pageScrollSize); } public function set pageSize(_arg1:Number):void{ if (_arg1 > 0){ _pageSize = _arg1; }; } public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ this.pageSize = _arg1; _minScrollPosition = _arg2; _maxScrollPosition = _arg3; if (_arg4 >= 0){ _pageScrollSize = _arg4; }; enabled = (_maxScrollPosition > _minScrollPosition); setScrollPosition(_scrollPosition, false); updateThumb(); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; downArrow.enabled = (track.enabled = (thumb.enabled = (upArrow.enabled = ((enabled) && ((_maxScrollPosition > _minScrollPosition)))))); updateThumb(); } protected function updateThumb():void{ var _local1:Number; _local1 = ((_maxScrollPosition - _minScrollPosition) + _pageSize); if ((((((track.height <= 12)) || ((_maxScrollPosition <= _minScrollPosition)))) || ((((_local1 == 0)) || (isNaN(_local1)))))){ thumb.height = 12; thumb.visible = false; } else { thumb.height = Math.max(13, ((_pageSize / _local1) * track.height)); thumb.y = (track.y + ((track.height - thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition)))); thumb.visible = enabled; }; } protected function thumbPressHandler(_arg1:MouseEvent):void{ inDrag = true; thumbScrollOffset = (mouseY - thumb.y); thumb.mouseStateLocked = true; mouseChildren = false; stage.addEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true); } protected function thumbReleaseHandler(_arg1:MouseEvent):void{ inDrag = false; mouseChildren = true; thumb.mouseStateLocked = false; stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag); stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler); } public function set pageScrollSize(_arg1:Number):void{ if (_arg1 >= 0){ _pageScrollSize = _arg1; }; } protected function handleThumbDrag(_arg1:MouseEvent):void{ var _local2:Number; _local2 = Math.max(0, Math.min((track.height - thumb.height), ((mouseY - track.y) - thumbScrollOffset))); setScrollPosition((((_local2 / (track.height - thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition)); } public function set direction(_arg1:String):void{ var _local2:Boolean; if (_direction == _arg1){ return; }; _direction = _arg1; if (isLivePreview){ return; }; setScaleY(1); _local2 = (_direction == ScrollBarDirection.HORIZONTAL); if (((_local2) && (componentInspectorSetting))){ if (rotation == 90){ return; }; setScaleX(-1); rotation = -90; }; if (!componentInspectorSetting){ if (((_local2) && ((rotation == 0)))){ rotation = -90; setScaleX(-1); } else { if (((!(_local2)) && ((rotation == -90)))){ rotation = 0; setScaleX(1); }; }; }; invalidate(InvalidationType.SIZE); } public function set lineScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _lineScrollSize = _arg1; }; } override public function get height():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height); } protected function scrollPressHandler(_arg1:ComponentEvent):void{ var _local2:Number; var _local3:Number; _arg1.stopImmediatePropagation(); if (_arg1.currentTarget == upArrow){ setScrollPosition((_scrollPosition - _lineScrollSize)); } else { if (_arg1.currentTarget == downArrow){ setScrollPosition((_scrollPosition + _lineScrollSize)); } else { _local2 = (((track.mouseY / track.height) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); _local3 = ((pageScrollSize)==0) ? pageSize : pageScrollSize; if (_scrollPosition < _local2){ setScrollPosition(Math.min(_local2, (_scrollPosition + _local3))); } else { if (_scrollPosition > _local2){ setScrollPosition(Math.max(_local2, (_scrollPosition - _local3))); }; }; }; }; } public function get pageSize():Number{ return (_pageSize); } public function set maxScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _minScrollPosition, _arg1); } public function get scrollPosition():Number{ return (_scrollPosition); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ var _local1:Number; if (isInvalid(InvalidationType.SIZE)){ _local1 = super.height; downArrow.move(0, Math.max(upArrow.height, (_local1 - downArrow.height))); track.setSize(WIDTH, Math.max(0, (_local1 - (downArrow.height + upArrow.height)))); updateThumb(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ setStyles(); }; downArrow.drawNow(); upArrow.drawNow(); track.drawNow(); thumb.drawNow(); validate(); } override protected function configUI():void{ super.configUI(); track = new BaseButton(); track.move(0, 14); track.useHandCursor = false; track.autoRepeat = true; track.focusEnabled = false; addChild(track); thumb = new LabelButton(); thumb.label = ""; thumb.setSize(WIDTH, 15); thumb.move(0, 15); thumb.focusEnabled = false; addChild(thumb); downArrow = new BaseButton(); downArrow.setSize(WIDTH, 14); downArrow.autoRepeat = true; downArrow.focusEnabled = false; addChild(downArrow); upArrow = new BaseButton(); upArrow.setSize(WIDTH, 14); upArrow.move(0, 0); upArrow.autoRepeat = true; upArrow.focusEnabled = false; addChild(upArrow); upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); track.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true); enabled = false; } public function get direction():String{ return (_direction); } public function get lineScrollSize():Number{ return (_lineScrollSize); } override public function setSize(_arg1:Number, _arg2:Number):void{ if (_direction == ScrollBarDirection.HORIZONTAL){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; } public function get maxScrollPosition():Number{ return (_maxScrollPosition); } override public function get width():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width); } protected function setStyles():void{ copyStylesToChild(downArrow, DOWN_ARROW_STYLES); copyStylesToChild(thumb, THUMB_STYLES); copyStylesToChild(track, TRACK_STYLES); copyStylesToChild(upArrow, UP_ARROW_STYLES); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 22
//ScrollBarDirection (fl.controls.ScrollBarDirection) package fl.controls { public class ScrollBarDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; } }//package fl.controls
Section 23
//ScrollPolicy (fl.controls.ScrollPolicy) package fl.controls { public class ScrollPolicy { public static const OFF:String = "off"; public static const ON:String = "on"; public static const AUTO:String = "auto"; } }//package fl.controls
Section 24
//SelectableList (fl.controls.SelectableList) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.events.*; import flash.utils.*; import fl.data.*; import fl.managers.*; import fl.events.*; import fl.containers.*; import flash.ui.*; public class SelectableList extends BaseScrollPane implements IFocusManagerComponent { protected var invalidItems:Dictionary; protected var renderedItems:Dictionary; protected var listHolder:Sprite; protected var _allowMultipleSelection:Boolean;// = false protected var lastCaretIndex:int;// = -1 protected var _selectedIndices:Array; protected var availableCellRenderers:Array; protected var list:Sprite; protected var caretIndex:int;// = -1 protected var updatedRendererStyles:Object; protected var preChangeItems:Array; protected var activeCellRenderers:Array; protected var rendererStyles:Object; protected var _verticalScrollPosition:Number; protected var _dataProvider:DataProvider; protected var _horizontalScrollPosition:Number; private var collectionItemImport:SimpleCollectionItem; protected var _selectable:Boolean;// = true private static var defaultStyles:Object = {skin:"List_skin", cellRenderer:CellRenderer, contentPadding:null, disabledAlpha:null}; public static var createAccessibilityImplementation:Function; public function SelectableList(){ _allowMultipleSelection = false; _selectable = true; caretIndex = -1; lastCaretIndex = -1; super(); activeCellRenderers = []; availableCellRenderers = []; invalidItems = new Dictionary(true); renderedItems = new Dictionary(true); _selectedIndices = []; if (dataProvider == null){ dataProvider = new DataProvider(); }; verticalScrollPolicy = ScrollPolicy.AUTO; rendererStyles = {}; updatedRendererStyles = {}; } protected function drawList():void{ } public function set allowMultipleSelection(_arg1:Boolean):void{ if (_arg1 == _allowMultipleSelection){ return; }; _allowMultipleSelection = _arg1; if (((!(_arg1)) && ((_selectedIndices.length > 1)))){ _selectedIndices = [_selectedIndices.pop()]; invalidate(InvalidationType.DATA); }; } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (_dataProvider.sortOn(_arg1, _arg2)); } public function removeItemAt(_arg1:uint):Object{ return (_dataProvider.removeItemAt(_arg1)); } public function get selectedItem():Object{ return (((_selectedIndices.length)==0) ? null : _dataProvider.getItemAt(selectedIndex)); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; }; } public function get selectable():Boolean{ return (_selectable); } public function itemToCellRenderer(_arg1:Object):ICellRenderer{ var _local2:*; var _local3:ICellRenderer; if (_arg1 != null){ for (_local2 in activeCellRenderers) { _local3 = (activeCellRenderers[_local2] as ICellRenderer); if (_local3.data == _arg1){ return (_local3); }; }; }; return (null); } public function getNextIndexAtLetter(_arg1:String, _arg2:int=-1):int{ var _local3:int; var _local4:Number; var _local5:Number; var _local6:Object; var _local7:String; if (length == 0){ return (-1); }; _arg1 = _arg1.toUpperCase(); _local3 = (length - 1); _local4 = 0; while (_local4 < _local3) { _local5 = ((_arg2 + 1) + _local4); if (_local5 > (length - 1)){ _local5 = (_local5 - length); }; _local6 = getItemAt(_local5); if (_local6 == null){ break; }; _local7 = itemToLabel(_local6); if (_local7 == null){ } else { if (_local7.charAt(0).toUpperCase() == _arg1){ return (_local5); }; }; _local4++; }; return (-1); } public function invalidateList():void{ _invalidateList(); invalidate(InvalidationType.DATA); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; list.mouseChildren = _enabled; } public function get selectedIndices():Array{ return (_selectedIndices.concat()); } public function set selectable(_arg1:Boolean):void{ if (_arg1 == _selectable){ return; }; if (!_arg1){ selectedIndices = []; }; _selectable = _arg1; } public function itemToLabel(_arg1:Object):String{ return (_arg1["label"]); } public function addItemAt(_arg1:Object, _arg2:uint):void{ _dataProvider.addItemAt(_arg1, _arg2); invalidateList(); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (_dataProvider.replaceItemAt(_arg1, _arg2)); } protected function handleDataChange(_arg1:DataChangeEvent):void{ var _local2:int; var _local3:int; var _local4:String; var _local5:uint; _local2 = _arg1.startIndex; _local3 = _arg1.endIndex; _local4 = _arg1.changeType; if (_local4 == DataChangeType.INVALIDATE_ALL){ clearSelection(); invalidateList(); } else { if (_local4 == DataChangeType.INVALIDATE){ _local5 = 0; while (_local5 < _arg1.items.length) { invalidateItem(_arg1.items[_local5]); _local5++; }; } else { if (_local4 == DataChangeType.ADD){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ _selectedIndices[_local5] = (_selectedIndices[_local5] + (_local2 - _local3)); }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ if (_selectedIndices[_local5] <= _local3){ delete _selectedIndices[_local5]; } else { _selectedIndices[_local5] = (_selectedIndices[_local5] - ((_local2 - _local3) + 1)); }; }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE_ALL){ clearSelection(); } else { if (_local4 == DataChangeType.REPLACE){ } else { selectedItems = preChangeItems; preChangeItems = null; }; }; }; }; }; }; invalidate(InvalidationType.DATA); } protected function _invalidateList():void{ availableCellRenderers = []; while (activeCellRenderers.length > 0) { list.removeChild((activeCellRenderers.pop() as DisplayObject)); }; } protected function updateRendererStyles():void{ var _local1:Array; var _local2:uint; var _local3:uint; var _local4:String; _local1 = availableCellRenderers.concat(activeCellRenderers); _local2 = _local1.length; _local3 = 0; while (_local3 < _local2) { if (_local1[_local3].setStyle == null){ } else { for (_local4 in updatedRendererStyles) { _local1[_local3].setStyle(_local4, updatedRendererStyles[_local4]); }; _local1[_local3].drawNow(); }; _local3++; }; updatedRendererStyles = {}; } public function set selectedItem(_arg1:Object):void{ var _local2:int; _local2 = _dataProvider.getItemIndex(_arg1); selectedIndex = _local2; } public function sortItems(... _args){ return (_dataProvider.sort.apply(_dataProvider, _args)); } public function removeAll():void{ _dataProvider.removeAll(); } protected function handleCellRendererChange(_arg1:Event):void{ var _local2:ICellRenderer; var _local3:uint; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; _dataProvider.invalidateItemAt(_local3); } protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _horizontalScrollPosition){ return; }; _local3 = (_arg1 - _horizontalScrollPosition); _horizontalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.HORIZONTAL, _local3, _arg1)); }; } public function scrollToSelected():void{ scrollToIndex(selectedIndex); } public function invalidateItem(_arg1:Object):void{ if (renderedItems[_arg1] == null){ return; }; invalidItems[_arg1] = true; invalidate(InvalidationType.DATA); } protected function handleCellRendererClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; var _local4:int; var _local5:int; var _local6:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; if (((!(dispatchEvent(new ListEvent(ListEvent.ITEM_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)))) || (!(_selectable)))){ return; }; _local4 = selectedIndices.indexOf(_local3); if (!_allowMultipleSelection){ if (_local4 != -1){ return; }; _local2.selected = true; _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); } else { if (_arg1.shiftKey){ _local6 = ((_selectedIndices.length)>0) ? _selectedIndices[0] : _local3; _selectedIndices = []; if (_local6 > _local3){ _local5 = _local6; while (_local5 >= _local3) { _selectedIndices.push(_local5); _local5--; }; } else { _local5 = _local6; while (_local5 <= _local3) { _selectedIndices.push(_local5); _local5++; }; }; caretIndex = _local3; } else { if (_arg1.ctrlKey){ if (_local4 != -1){ _local2.selected = false; _selectedIndices.splice(_local4, 1); } else { _local2.selected = true; _selectedIndices.push(_local3); }; caretIndex = _local3; } else { _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); }; }; }; dispatchEvent(new Event(Event.CHANGE)); invalidate(InvalidationType.DATA); } public function get length():uint{ return (_dataProvider.length); } public function get allowMultipleSelection():Boolean{ return (_allowMultipleSelection); } protected function onPreChange(_arg1:DataChangeEvent):void{ switch (_arg1.changeType){ case DataChangeType.REMOVE: case DataChangeType.ADD: case DataChangeType.INVALIDATE: case DataChangeType.REMOVE_ALL: case DataChangeType.REPLACE: case DataChangeType.INVALIDATE_ALL: break; default: preChangeItems = selectedItems; break; }; } public function getRendererStyle(_arg1:String, _arg2:int=-1):Object{ return (rendererStyles[_arg1]); } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _verticalScrollPosition){ return; }; _local3 = (_arg1 - _verticalScrollPosition); _verticalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _local3, _arg1)); }; } protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } public function set selectedIndices(_arg1:Array):void{ if (!_selectable){ return; }; _selectedIndices = ((_arg1)==null) ? [] : _arg1.concat(); invalidate(InvalidationType.SELECTED); } public function get selectedIndex():int{ return (((_selectedIndices.length)==0) ? -1 : _selectedIndices[(_selectedIndices.length - 1)]); } override protected function draw():void{ super.draw(); } override protected function configUI():void{ super.configUI(); listHolder = new Sprite(); addChild(listHolder); listHolder.scrollRect = contentScrollRect; list = new Sprite(); listHolder.addChild(list); } public function addItem(_arg1:Object):void{ _dataProvider.addItem(_arg1); invalidateList(); } protected function handleCellRendererMouseEvent(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:String; _local2 = (_arg1.target as ICellRenderer); _local3 = ((_arg1.type)==MouseEvent.ROLL_OVER) ? ListEvent.ITEM_ROLL_OVER : ListEvent.ITEM_ROLL_OUT; dispatchEvent(new ListEvent(_local3, false, false, _local2.listData.column, _local2.listData.row, _local2.listData.index, _local2.data)); } public function clearRendererStyle(_arg1:String, _arg2:int=-1):void{ delete rendererStyles[_arg1]; updatedRendererStyles[_arg1] = null; invalidate(InvalidationType.RENDERER_STYLES); } protected function handleCellRendererDoubleClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; dispatchEvent(new ListEvent(ListEvent.ITEM_DOUBLE_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)); } public function get rowCount():uint{ return (0); } public function isItemSelected(_arg1:Object):Boolean{ return ((selectedItems.indexOf(_arg1) > -1)); } public function set dataProvider(_arg1:DataProvider):void{ if (_dataProvider != null){ _dataProvider.removeEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange); _dataProvider.removeEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange); }; _dataProvider = _arg1; _dataProvider.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); _dataProvider.addEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange, false, 0, true); clearSelection(); invalidateList(); } override protected function drawLayout():void{ super.drawLayout(); contentScrollRect = listHolder.scrollRect; contentScrollRect.width = availableWidth; contentScrollRect.height = availableHeight; listHolder.scrollRect = contentScrollRect; } public function getItemAt(_arg1:uint):Object{ return (_dataProvider.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (SelectableList.createAccessibilityImplementation != null){ SelectableList.createAccessibilityImplementation(this); }; } public function scrollToIndex(_arg1:int):void{ } public function removeItem(_arg1:Object):Object{ return (_dataProvider.removeItem(_arg1)); } public function get dataProvider():DataProvider{ return (_dataProvider); } public function set maxHorizontalScrollPosition(_arg1:Number):void{ _maxHorizontalScrollPosition = _arg1; invalidate(InvalidationType.SIZE); } public function setRendererStyle(_arg1:String, _arg2:Object, _arg3:uint=0):void{ if (rendererStyles[_arg1] == _arg2){ return; }; updatedRendererStyles[_arg1] = _arg2; rendererStyles[_arg1] = _arg2; invalidate(InvalidationType.RENDERER_STYLES); } public function invalidateItemAt(_arg1:uint):void{ var _local2:Object; _local2 = _dataProvider.getItemAt(_arg1); if (_local2 != null){ invalidateItem(_local2); }; } public function set selectedItems(_arg1:Array):void{ var _local2:Array; var _local3:uint; var _local4:int; if (_arg1 == null){ selectedIndices = null; return; }; _local2 = []; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _dataProvider.getItemIndex(_arg1[_local3]); if (_local4 != -1){ _local2.push(_local4); }; _local3++; }; selectedIndices = _local2; } public function clearSelection():void{ selectedIndex = -1; } override public function get maxHorizontalScrollPosition():Number{ return (_maxHorizontalScrollPosition); } public function get selectedItems():Array{ var _local1:Array; var _local2:uint; _local1 = []; _local2 = 0; while (_local2 < _selectedIndices.length) { _local1.push(_dataProvider.getItemAt(_selectedIndices[_local2])); _local2++; }; return (_local1); } public function set selectedIndex(_arg1:int):void{ selectedIndices = ((_arg1)==-1) ? null : [_arg1]; } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseScrollPane.getStyleDefinition())); } } }//package fl.controls
Section 25
//TextInput (fl.controls.TextInput) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import flash.text.*; import fl.managers.*; import fl.events.*; import flash.ui.*; public class TextInput extends UIComponent implements IFocusManagerComponent { protected var _html:Boolean;// = false protected var _savedHTML:String; protected var background:DisplayObject; protected var _editable:Boolean;// = true public var textField:TextField; private static var defaultStyles:Object = {upSkin:"TextInput_upSkin", disabledSkin:"TextInput_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:0, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function TextInput(){ _editable = true; _html = false; super(); } override public function drawFocus(_arg1:Boolean):void{ if (focusTarget != null){ focusTarget.drawFocus(_arg1); return; }; super.drawFocus(_arg1); } public function set imeMode(_arg1:String):void{ _imeMode = _arg1; } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == textField)) || (super.isOurFocus(_arg1)))); } protected function handleKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true)); }; } public function set text(_arg1:String):void{ textField.text = _arg1; _html = false; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } protected function updateTextFieldType():void{ textField.type = (((enabled) && (editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC; textField.selectable = enabled; } public function get selectionEndIndex():int{ return (textField.selectionEndIndex); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (_arg1.target == this){ stage.focus = textField; }; _local2 = focusManager; if (((editable) && (_local2))){ _local2.showFocusIndicator = true; if (((textField.selectable) && ((textField.selectionBeginIndex == textField.selectionBeginIndex)))){ setSelection(0, textField.length); }; }; super.focusInHandler(_arg1); if (editable){ setIMEMode(true); }; } public function get selectionBeginIndex():int{ return (textField.selectionBeginIndex); } public function set alwaysShowSelection(_arg1:Boolean):void{ textField.alwaysShowSelection = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; updateTextFieldType(); } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } public function get horizontalScrollPosition():int{ return (textField.scrollH); } public function set condenseWhite(_arg1:Boolean):void{ textField.condenseWhite = _arg1; } public function set displayAsPassword(_arg1:Boolean):void{ textField.displayAsPassword = _arg1; } public function set horizontalScrollPosition(_arg1:int):void{ textField.scrollH = _arg1; } public function get restrict():String{ return (textField.restrict); } public function get textWidth():Number{ return (textField.textWidth); } public function get textHeight():Number{ return (textField.textHeight); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; updateTextFieldType(); } public function get maxChars():int{ return (textField.maxChars); } public function get length():int{ return (textField.length); } public function getLineMetrics(_arg1:int):TextLineMetrics{ return (textField.getLineMetrics(_arg1)); } public function get imeMode():String{ return (_imeMode); } override protected function focusOutHandler(_arg1:FocusEvent):void{ super.focusOutHandler(_arg1); if (editable){ setIMEMode(false); }; } public function set htmlText(_arg1:String):void{ if (_arg1 == ""){ text = ""; return; }; _html = true; _savedHTML = _arg1; textField.htmlText = _arg1; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } public function get text():String{ return (textField.text); } override public function get enabled():Boolean{ return (super.enabled); } public function get condenseWhite():Boolean{ return (textField.condenseWhite); } public function get alwaysShowSelection():Boolean{ return (textField.alwaysShowSelection); } override protected function draw():void{ var _local1:Object; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawTextFormat(); drawBackground(); _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function handleTextInput(_arg1:TextEvent):void{ _arg1.stopPropagation(); dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text)); } override protected function configUI():void{ super.configUI(); tabChildren = true; textField = new TextField(); addChild(textField); updateTextFieldType(); textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true); textField.addEventListener(Event.CHANGE, handleChange, false, 0, true); textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true); } public function setSelection(_arg1:int, _arg2:int):void{ textField.setSelection(_arg1, _arg2); } public function get displayAsPassword():Boolean{ return (textField.displayAsPassword); } public function appendText(_arg1:String):void{ textField.appendText(_arg1); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; textField.restrict = _arg1; } public function get htmlText():String{ return (textField.htmlText); } protected function drawBackground():void{ var _local1:DisplayObject; var _local2:String; _local1 = background; _local2 = (enabled) ? "upSkin" : "disabledSkin"; background = getDisplayObjectInstance(getStyleValue(_local2)); if (background == null){ return; }; addChildAt(background, 0); if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){ removeChild(_local1); }; } override public function setFocus():void{ stage.focus = textField; } protected function drawLayout():void{ var _local1:Number; _local1 = Number(getStyleValue("textPadding")); if (background != null){ background.width = width; background.height = height; }; textField.width = (width - (2 * _local1)); textField.height = (height - (2 * _local1)); textField.x = (textField.y = _local1); } public function set maxChars(_arg1:int):void{ textField.maxChars = _arg1; } public function get maxHorizontalScrollPosition():int{ return (textField.maxScrollH); } 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(); if (_html){ textField.htmlText = _savedHTML; }; } protected function handleChange(_arg1:Event):void{ _arg1.stopPropagation(); dispatchEvent(new Event(Event.CHANGE, true)); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 26
//UIScrollBar (fl.controls.UIScrollBar) package fl.controls { import fl.core.*; import flash.events.*; import flash.text.*; import fl.events.*; public class UIScrollBar extends ScrollBar { protected var inScroll:Boolean;// = false protected var _scrollTarget:TextField; protected var inEdit:Boolean;// = false private static var defaultStyles:Object = {}; public function UIScrollBar(){ inEdit = false; inScroll = false; super(); } protected function handleTargetScroll(_arg1:Event):void{ if (inDrag){ return; }; if (!enabled){ return; }; inEdit = true; updateScrollTargetProperties(); scrollPosition = ((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV; inEdit = false; } override public function set minScrollPosition(_arg1:Number):void{ super.minScrollPosition = ((_arg1)<0) ? 0 : _arg1; } override public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ super.setScrollPosition(_arg1, _arg2); if (!_scrollTarget){ inScroll = false; return; }; updateTargetScroll(); } override public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ var _local5:Number; var _local6:Number; _local5 = _arg3; _local6 = ((_arg2)<0) ? 0 : _arg2; if (_scrollTarget != null){ if (direction == ScrollBarDirection.HORIZONTAL){ _local5 = ((_arg3)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local5; } else { _local5 = ((_arg3)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local5; }; }; super.setScrollProperties(_arg1, _local6, _local5, _arg4); } public function get scrollTargetName():String{ return (_scrollTarget.name); } public function get scrollTarget():TextField{ return (_scrollTarget); } protected function updateScrollTargetProperties():void{ var _local1:Boolean; var _local2:Number; if (_scrollTarget == null){ setScrollProperties(pageSize, minScrollPosition, maxScrollPosition, pageScrollSize); scrollPosition = 0; } else { _local1 = (direction == ScrollBarDirection.HORIZONTAL); _local2 = (_local1) ? _scrollTarget.width : 10; setScrollProperties(_local2, (_local1) ? 0 : 1, (_local1) ? _scrollTarget.maxScrollH : _scrollTarget.maxScrollV, pageScrollSize); scrollPosition = (_local1) ? _scrollTarget.scrollH : _scrollTarget.scrollV; }; } public function update():void{ inEdit = true; updateScrollTargetProperties(); inEdit = false; } public function set scrollTargetName(_arg1:String):void{ var target = _arg1; try { scrollTarget = (parent.getChildByName(target) as TextField); } catch(error:Error) { throw (new Error("ScrollTarget not found, or is not a TextField")); }; } override public function set direction(_arg1:String):void{ if (isLivePreview){ return; }; super.direction = _arg1; updateScrollTargetProperties(); } protected function handleTargetChange(_arg1:Event):void{ inEdit = true; setScrollPosition(((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV, true); updateScrollTargetProperties(); inEdit = false; } override public function set maxScrollPosition(_arg1:Number):void{ var _local2:Number; _local2 = _arg1; if (_scrollTarget != null){ if (direction == ScrollBarDirection.HORIZONTAL){ _local2 = ((_local2)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local2; } else { _local2 = ((_local2)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local2; }; }; super.maxScrollPosition = _local2; } protected function updateTargetScroll(_arg1:ScrollEvent=null):void{ if (inEdit){ return; }; if (direction == ScrollBarDirection.HORIZONTAL){ _scrollTarget.scrollH = scrollPosition; } else { _scrollTarget.scrollV = scrollPosition; }; } override protected function draw():void{ if (isInvalid(InvalidationType.DATA)){ updateScrollTargetProperties(); }; super.draw(); } public function set scrollTarget(_arg1:TextField):void{ if (_scrollTarget != null){ _scrollTarget.removeEventListener(Event.CHANGE, handleTargetChange, false); _scrollTarget.removeEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false); _scrollTarget.removeEventListener(Event.SCROLL, handleTargetScroll, false); removeEventListener(ScrollEvent.SCROLL, updateTargetScroll, false); }; _scrollTarget = _arg1; if (_scrollTarget != null){ _scrollTarget.addEventListener(Event.CHANGE, handleTargetChange, false, 0, true); _scrollTarget.addEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false, 0, true); _scrollTarget.addEventListener(Event.SCROLL, handleTargetScroll, false, 0, true); addEventListener(ScrollEvent.SCROLL, updateTargetScroll, false, 0, true); }; invalidate(InvalidationType.DATA); } override public function get direction():String{ return (super.direction); } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.controls
Section 27
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 28
//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 29
//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.text.*; import fl.managers.*; import fl.events.*; 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 30
//DataProvider (fl.data.DataProvider) package fl.data { import flash.events.*; import fl.events.*; public class DataProvider extends EventDispatcher { protected var data:Array; public function DataProvider(_arg1:Object=null){ if (_arg1 == null){ data = []; } else { data = getDataFromObject(_arg1); }; } protected function dispatchPreChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.PRE_DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } public function invalidateItemAt(_arg1:int):void{ checkIndex(_arg1, (data.length - 1)); dispatchChangeEvent(DataChangeType.INVALIDATE, [data[_arg1]], _arg1, _arg1); } public function getItemIndex(_arg1:Object):int{ return (data.indexOf(_arg1)); } protected function getDataFromObject(_arg1:Object):Array{ var _local2:Array; var _local3:Array; var _local4:uint; var _local5:Object; var _local6:XML; var _local7:XMLList; var _local8:XML; var _local9:XMLList; var _local10:XML; var _local11:XMLList; var _local12:XML; if ((_arg1 is Array)){ _local3 = (_arg1 as Array); if (_local3.length > 0){ if ((((_local3[0] is String)) || ((_local3[0] is Number)))){ _local2 = []; _local4 = 0; while (_local4 < _local3.length) { _local5 = {label:String(_local3[_local4]), data:_local3[_local4]}; _local2.push(_local5); _local4++; }; return (_local2); }; }; return (_arg1.concat()); //unresolved jump }; if ((_arg1 is DataProvider)){ return (_arg1.toArray()); }; if ((_arg1 is XML)){ _local6 = (_arg1 as XML); _local2 = []; _local7 = _local6.*; for each (_local8 in _local7) { _arg1 = {}; _local9 = _local8.attributes(); for each (_local10 in _local9) { _arg1[_local10.localName()] = _local10.toString(); }; _local11 = _local8.*; for each (_local12 in _local11) { if (_local12.hasSimpleContent()){ _arg1[_local12.localName()] = _local12.toString(); }; }; _local2.push(_arg1); }; return (_local2); //unresolved jump }; throw (new TypeError((("Error: Type Coercion failed: cannot convert " + _arg1) + " to Array or DataProvider."))); } public function removeItemAt(_arg1:uint):Object{ var _local2:Array; checkIndex(_arg1, (data.length - 1)); dispatchPreChangeEvent(DataChangeType.REMOVE, data.slice(_arg1, (_arg1 + 1)), _arg1, _arg1); _local2 = data.splice(_arg1, 1); dispatchChangeEvent(DataChangeType.REMOVE, _local2, _arg1, _arg1); return (_local2[0]); } public function addItem(_arg1:Object):void{ dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); data.push(_arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); } public function sortOn(_arg1:Object, _arg2:Object=null){ var _local3:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local3 = data.sortOn(_arg1, _arg2); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local3); } public function sort(... _args){ var _local2:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local2 = data.sort.apply(data, _args); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local2); } public function addItems(_arg1:Object):void{ addItemsAt(_arg1, data.length); } public function concat(_arg1:Object):void{ addItems(_arg1); } public function clone():DataProvider{ return (new DataProvider(data)); } public function toArray():Array{ return (data.concat()); } public function get length():uint{ return (data.length); } public function addItemAt(_arg1:Object, _arg2:uint):void{ checkIndex(_arg2, data.length); dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); data.splice(_arg2, 0, _arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); } public function getItemAt(_arg1:uint):Object{ checkIndex(_arg1, (data.length - 1)); return (data[_arg1]); } override public function toString():String{ return ((("DataProvider [" + data.join(" , ")) + "]")); } public function invalidateItem(_arg1:Object):void{ var _local2:uint; _local2 = getItemIndex(_arg1); if (_local2 == -1){ return; }; invalidateItemAt(_local2); } protected function dispatchChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } protected function checkIndex(_arg1:int, _arg2:int):void{ if ((((_arg1 > _arg2)) || ((_arg1 < 0)))){ throw (new RangeError((((("DataProvider index (" + _arg1) + ") is not in acceptable range (0 - ") + _arg2) + ")"))); }; } public function addItemsAt(_arg1:Object, _arg2:uint):void{ var _local3:Array; checkIndex(_arg2, data.length); _local3 = getDataFromObject(_arg1); dispatchPreChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); data.splice.apply(data, [_arg2, 0].concat(_local3)); dispatchChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); } public function replaceItem(_arg1:Object, _arg2:Object):Object{ var _local3:int; _local3 = getItemIndex(_arg2); if (_local3 != -1){ return (replaceItemAt(_arg1, _local3)); }; return (null); } public function removeItem(_arg1:Object):Object{ var _local2:int; _local2 = getItemIndex(_arg1); if (_local2 != -1){ return (removeItemAt(_local2)); }; return (null); } public function merge(_arg1:Object):void{ var _local2:Array; var _local3:uint; var _local4:uint; var _local5:uint; var _local6:Object; _local2 = getDataFromObject(_arg1); _local3 = _local2.length; _local4 = data.length; dispatchPreChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); _local5 = 0; while (_local5 < _local3) { _local6 = _local2[_local5]; if (getItemIndex(_local6) == -1){ data.push(_local6); }; _local5++; }; if (data.length > _local4){ dispatchChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); } else { dispatchChangeEvent(DataChangeType.ADD, [], -1, -1); }; } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ var _local3:Array; checkIndex(_arg2, (data.length - 1)); _local3 = [data[_arg2]]; dispatchPreChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); data[_arg2] = _arg1; dispatchChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); return (_local3[0]); } public function invalidate():void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, DataChangeType.INVALIDATE_ALL, data.concat(), 0, data.length)); } public function removeAll():void{ var _local1:Array; _local1 = data.concat(); dispatchPreChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); data = []; dispatchChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); } } }//package fl.data
Section 31
//SimpleCollectionItem (fl.data.SimpleCollectionItem) package fl.data { public dynamic class SimpleCollectionItem { public var label:String; public var data:String; public function toString():String{ return ((((("[SimpleCollectionItem: " + label) + ",") + data) + "]")); } } }//package fl.data
Section 32
//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 33
//DataChangeEvent (fl.events.DataChangeEvent) package fl.events { import flash.events.*; public class DataChangeEvent extends Event { protected var _items:Array; protected var _endIndex:uint; protected var _changeType:String; protected var _startIndex:uint; public static const PRE_DATA_CHANGE:String = "preDataChange"; public static const DATA_CHANGE:String = "dataChange"; public function DataChangeEvent(_arg1:String, _arg2:String, _arg3:Array, _arg4:int=-1, _arg5:int=-1):void{ super(_arg1); _changeType = _arg2; _startIndex = _arg4; _items = _arg3; _endIndex = ((_arg5)==-1) ? _startIndex : _arg5; } public function get changeType():String{ return (_changeType); } public function get startIndex():uint{ return (_startIndex); } public function get items():Array{ return (_items); } override public function clone():Event{ return (new DataChangeEvent(type, _changeType, _items, _startIndex, _endIndex)); } override public function toString():String{ return (formatToString("DataChangeEvent", "type", "changeType", "startIndex", "endIndex", "bubbles", "cancelable")); } public function get endIndex():uint{ return (_endIndex); } } }//package fl.events
Section 34
//DataChangeType (fl.events.DataChangeType) package fl.events { public class DataChangeType { public static const ADD:String = "add"; public static const REMOVE:String = "remove"; public static const REMOVE_ALL:String = "removeAll"; public static const CHANGE:String = "change"; public static const REPLACE:String = "replace"; public static const INVALIDATE:String = "invalidate"; public static const INVALIDATE_ALL:String = "invalidateAll"; public static const SORT:String = "sort"; } }//package fl.events
Section 35
//ListEvent (fl.events.ListEvent) package fl.events { import flash.events.*; public class ListEvent extends Event { protected var _index:int; protected var _item:Object; protected var _columnIndex:int; protected var _rowIndex:int; public static const ITEM_DOUBLE_CLICK:String = "itemDoubleClick"; public static const ITEM_ROLL_OUT:String = "itemRollOut"; public static const ITEM_ROLL_OVER:String = "itemRollOver"; public static const ITEM_CLICK:String = "itemClick"; public function ListEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:int=-1, _arg5:int=-1, _arg6:int=-1, _arg7:Object=null){ super(_arg1, _arg2, _arg3); _rowIndex = _arg5; _columnIndex = _arg4; _index = _arg6; _item = _arg7; } public function get rowIndex():Object{ return (_rowIndex); } public function get index():int{ return (_index); } public function get item():Object{ return (_item); } public function get columnIndex():int{ return (_columnIndex); } override public function clone():Event{ return (new ListEvent(type, bubbles, cancelable, _columnIndex, _rowIndex)); } override public function toString():String{ return (formatToString("ListEvent", "type", "bubbles", "cancelable", "columnIndex", "rowIndex", "index", "item")); } } }//package fl.events
Section 36
//ScrollEvent (fl.events.ScrollEvent) package fl.events { import flash.events.*; public class ScrollEvent extends Event { private var _position:Number; private var _direction:String; private var _delta:Number; public static const SCROLL:String = "scroll"; public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Number){ super(ScrollEvent.SCROLL, false, false); _direction = _arg1; _delta = _arg2; _position = _arg3; } override public function clone():Event{ return (new ScrollEvent(_direction, _delta, _position)); } public function get position():Number{ return (_position); } override public function toString():String{ return (formatToString("ScrollEvent", "type", "bubbles", "cancelable", "direction", "delta", "position")); } public function get delta():Number{ return (_delta); } public function get direction():String{ return (_direction); } } }//package fl.events
Section 37
//FocusManager (fl.managers.FocusManager) package fl.managers { import fl.core.*; import fl.controls.*; import flash.display.*; import flash.events.*; 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 38
//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 39
//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 40
//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 41
//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 42
//Boot (flash.Boot) package flash { import flash.display.*; import flash.utils.*; import flash.text.*; public dynamic class Boot extends MovieClip { protected static var lastError:Error; protected static var tf:TextField; public static var skip_constructor:Boolean = false; protected static var lines:Array; public function Boot(_arg1:MovieClip=null):void{ var aproto:*; var cca:*; var c:MovieClip; var mc = _arg1; if (!Boot.skip_constructor){ super(); aproto = Array.prototype; aproto.copy = function (){ return (this.slice()); }; aproto.insert = function (_arg1, _arg2):void{ this.splice(_arg1, 0, _arg2); }; aproto.remove = function (_arg1):Boolean{ var _local2:int; _local2 = this.indexOf(_arg1); if (_local2 == -1){ return (false); }; this.splice(_local2, 1); return (true); }; aproto.iterator = function (){ var cur:int; var arr:Array; cur = 0; arr = this; return ({hasNext:function ():Boolean{ return ((cur < arr.length)); }, next:function (){ return (arr[cur++]); }}); }; aproto.setPropertyIsEnumerable("copy", false); aproto.setPropertyIsEnumerable("insert", false); aproto.setPropertyIsEnumerable("remove", false); aproto.setPropertyIsEnumerable("iterator", false); cca = String.prototype.charCodeAt; String.prototype.charCodeAt = function (_arg1){ var _local2:*; _local2 = cca.call(this, _arg1); if (isNaN(_local2)){ return (null); }; return (_local2); }; Boot.lines = new Array(); c = ((mc == null)) ? this : mc; Lib.current = c; try { if (((!((c.stage == null))) && ((c.stage.align == "")))){ c.stage.align = "TOP_LEFT"; //unresolved jump }; } catch(e) { }; if (Boot.init != null){ init(); }; }; } public static function __trace(_arg1, _arg2):void{ var _local3:TextField; var _local4:String; var _local5:Stage; _local3 = getTrace(); _local4 = ((_arg2 == null)) ? "(null)" : ((_arg2.fileName + ":") + _arg2.lineNumber); Boot.lines = lines.concat(((_local4 + ": ") + __string_rec(_arg1, "")).split("\n")); _local3.text = lines.join("\n"); _local5 = Lib.current.stage; if (_local5 == null){ return; }; while ((((lines.length > 1)) && ((_local3.height > _local5.stageHeight)))) { lines.shift(); _local3.text = lines.join("\n"); }; } public static function __string_rec(_arg1, _arg2:String):String{ var cname:String; var k:Array; var s:String; var first:Boolean; var _g1:int; var _g:int; var i:int; var key:String; var s2:String; var i2:*; var first2:Boolean; var a:Array; var _g12:int; var _g2:int; var i1:int; var v = _arg1; var str = _arg2; cname = getQualifiedClassName(v); switch (cname){ case "Object": k = function ():Array{ var _local1:*; var _local2:*; _local1 = new Array(); for (_local2 in v) { _local1.push(_local2); }; return (_local1); }(); s = "{"; first = true; _g1 = 0; _g = k.length; while (_g1 < _g) { _g1 = (_g1 + 1); i = _g1; key = k[i]; if (first){ first = false; } else { s = (s + ","); }; s = (s + (((" " + key) + " : ") + __string_rec(v[key], str))); }; if (!first){ s = (s + " "); }; s = (s + "}"); return (s); case "Array": s2 = "["; first2 = true; a = v; _g12 = 0; _g2 = a.length; while (_g12 < _g2) { _g12 = (_g12 + 1); i1 = _g12; if (first2){ first2 = false; } else { s2 = (s2 + ","); }; s2 = (s2 + __string_rec(a[i1], str)); }; return ((s2 + "]")); default: switch (typeof(v)){ case "function": return ("<function>"); }; break; }; return (new String(v)); } public static function __instanceof(_arg1, _arg2):Boolean{ var v = _arg1; var t = _arg2; try { if (t == Object){ return (true); }; return ((v is t)); } catch(e) { }; return (false); } public static function getTrace():TextField{ var _local1:MovieClip; var _local2:TextFormat; _local1 = Lib.current; if (Boot.tf == null){ Boot.tf = new TextField(); _local2 = tf.getTextFormat(); _local2.font = "_sans"; tf.defaultTextFormat = _local2; tf.selectable = false; tf.width = ((_local1.stage == null)) ? 800 : _local1.stage.stageWidth; tf.autoSize = TextFieldAutoSize.LEFT; tf.mouseEnabled = false; }; _local1.addChild(tf); return (tf); } private static function init():void{ Math["NaN"] = Number.NaN; Math["NEGATIVE_INFINITY"] = Number.NEGATIVE_INFINITY; Math["POSITIVE_INFINITY"] = Number.POSITIVE_INFINITY; Math["isFinite"] = function (_arg1:Number):Boolean{ return (isFinite(_arg1)); }; Math["isNaN"] = function (_arg1:Number):Boolean{ return (isNaN(_arg1)); }; Date["now"] = function ():Date{ return (new Date()); }; Date["fromTime"] = function (_arg1:Number):Date{ var _local2:Date; _local2 = new Date(); _local2.setTime(_arg1); return (_local2); }; Date["fromString"] = function (_arg1:String):Date{ var _local2:Array; var _local3:Date; var _local4:Array; var _local5:Array; var _local6:Array; var _local7:Array; switch (_arg1.length){ case 8: _local2 = _arg1.split(":"); _local3 = new Date(); _local3.setTime(0); _local3.setUTCHours(_local2[0]); _local3.setUTCMinutes(_local2[1]); _local3.setUTCSeconds(_local2[2]); return (_local3); case 10: _local4 = _arg1.split("-"); return (new Date(_local4[0], (_local4[1] - 1), _local4[2], 0, 0, 0)); case 19: _local5 = _arg1.split(" "); _local6 = _local5[0].split("-"); _local7 = _local5[1].split(":"); return (new Date(_local6[0], (_local6[1] - 1), _local6[2], _local7[0], _local7[1], _local7[2])); default: throw (("Invalid date format : " + _arg1)); }; }; Date.prototype["toString"] = function ():String{ var _local1:Date; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local1 = this; _local2 = (_local1.getMonth() + 1); _local3 = _local1.getDate(); _local4 = _local1.getHours(); _local5 = _local1.getMinutes(); _local6 = _local1.getSeconds(); return (((((((((((_local1.getFullYear() + "-") + ((_local2 < 10)) ? ("0" + _local2) : ("" + _local2)) + "-") + ((_local3 < 10)) ? ("0" + _local3) : ("" + _local3)) + " ") + ((_local4 < 10)) ? ("0" + _local4) : ("" + _local4)) + ":") + ((_local5 < 10)) ? ("0" + _local5) : ("" + _local5)) + ":") + ((_local6 < 10)) ? ("0" + _local6) : ("" + _local6))); }; } public static function __clear_trace():void{ if (Boot.tf == null){ return; }; Lib.current.removeChild(tf); Boot.tf = null; Boot.lines = new Array(); } protected static function __unprotect__(_arg1:String):String{ return (_arg1); } public static function enum_to_string(_arg1):String{ if (_arg1.params == null){ return (_arg1.tag); }; return ((((_arg1.tag + "(") + _arg1.params.join(",")) + ")")); } public static function __set_trace_color(_arg1:uint):void{ getTrace().textColor = _arg1; } } }//package flash
Section 43
//Lib (flash.Lib) package flash { import flash.display.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class Lib { public static var current:MovieClip; public static function trace(_arg1):void{ trace(_arg1); } public static function fscommand(_arg1:String, _arg2:String=null):void{ fscommand(_arg1, ((_arg2 == null)) ? "" : _arg2); } public static function _as(_arg1, _arg2:Class){ return ((_arg1 as _arg2)); } public static function getURL(_arg1:URLRequest, _arg2:String=null):void{ var _local3:Function; _local3 = navigateToURL; if (_arg2 == null){ _local3(_arg1); } else { _local3(_arg1, _arg2); }; } public static function eval(_arg1:String){ var p:Array; var fields:Array; var o:*; var _g:int; var f:String; var path = _arg1; p = path.split("."); fields = new Array(); o = null; while (p.length > 0) { try { o = getDefinitionByName(p.join(".")); } catch(e) { fields.unshift(p.pop()); }; if (o != null){ break; }; }; _g = 0; while (_g < fields.length) { f = fields[_g]; _g = (_g + 1); if (o == null){ return (null); }; o = o[f]; }; return (o); } public static function attach(_arg1:String):MovieClip{ var _local2:*; _local2 = (getDefinitionByName(_arg1) as Class); return (new (_local2)); } public static function _getTimer():int{ return (getTimer()); } } }//package flash
Section 44
//_Error (haxe.io._Error) package haxe.io { public class _Error extends enum { public static const __isenum:Boolean = true; public static var Overflow:_Error = new _Error("Overflow", 1); ; public static var OutsideBounds:_Error = new _Error("OutsideBounds", 2); ; public static var Blocked:_Error = new _Error("Blocked", 0); ; public static var __constructs__:Array = ["Blocked", "Overflow", "OutsideBounds", "Custom"]; public function _Error(_arg1:String, _arg2:int, _arg3:Array=null):void{ this.tag = _arg1; this.index = _arg2; this.params = _arg3; } public static function Custom(_arg1):_Error{ return (new _Error("Custom", 3, [_arg1])); } } }//package haxe.io
Section 45
//Bytes (haxe.io.Bytes) package haxe.io { import flash.utils.*; import flash.*; public class Bytes { protected var b:ByteArray; public var length:int; public function Bytes(_arg1:int=0, _arg2:ByteArray=null):void{ if (!Boot.skip_constructor){ this.length = _arg1; this.b = _arg2; }; } public function sub(_arg1:int, _arg2:int):Bytes{ var _local3:ByteArray; if ((((((_arg1 < 0)) || ((_arg2 < 0)))) || (((_arg1 + _arg2) > this.length)))){ throw (_Error.OutsideBounds); }; this.b.position = _arg1; _local3 = new ByteArray(); this.b.readBytes(_local3, 0, _arg2); return (new Bytes(_arg2, _local3)); } public function compare(_arg1:Bytes):int{ var _local2:int; var _local3:ByteArray; var _local4:ByteArray; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; _local2 = ((this.length)<_arg1.length) ? this.length : _arg1.length; _local3 = this.b; _local4 = _arg1.b; _local3.position = 0; _local4.position = 0; _local5 = 0; _local6 = (_local2 >> 2); while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local9 = _temp1; if (_local3.readUnsignedInt() != _local4.readUnsignedInt()){ _local3.position = (_local3.position - 4); _local4.position = (_local4.position - 4); return ((_local3.readUnsignedInt() - _local4.readUnsignedInt())); }; }; _local7 = 0; _local8 = (_local2 & 3); while (_local7 < _local8) { var _temp2 = _local7; _local7 = (_local7 + 1); _local10 = _temp2; if (_local3.readUnsignedByte() != _local4.readUnsignedByte()){ return ((_local3[(_local3.position - 1)] - _local4[(_local4.position - 1)])); }; }; return ((this.length - _arg1.length)); } public function set(_arg1:int, _arg2:int):void{ this.b[_arg1] = _arg2; } public function readString(_arg1:int, _arg2:int):String{ if ((((((_arg1 < 0)) || ((_arg2 < 0)))) || (((_arg1 + _arg2) > this.length)))){ throw (_Error.OutsideBounds); }; this.b.position = _arg1; return (this.b.readUTFBytes(_arg2)); } public function blit(_arg1:int, _arg2:Bytes, _arg3:int, _arg4:int):void{ if ((((((((((_arg1 < 0)) || ((_arg3 < 0)))) || ((_arg4 < 0)))) || (((_arg1 + _arg4) > this.length)))) || (((_arg3 + _arg4) > _arg2.length)))){ throw (_Error.OutsideBounds); }; this.b.position = _arg1; this.b.writeBytes(_arg2.b, _arg3, _arg4); } public function get(_arg1:int):int{ return (this.b[_arg1]); } public function getData():ByteArray{ return (this.b); } public function toString():String{ this.b.position = 0; return (this.b.readUTFBytes(this.length)); } public static function ofString(_arg1:String):Bytes{ var _local2:ByteArray; _local2 = new ByteArray(); _local2.writeUTFBytes(_arg1); return (new Bytes(_local2.length, _local2)); } public static function ofData(_arg1:ByteArray):Bytes{ return (new Bytes(_arg1.length, _arg1)); } public static function alloc(_arg1:int):Bytes{ var _local2:ByteArray; _local2 = new ByteArray(); _local2.length = _arg1; return (new Bytes(_arg1, _local2)); } } }//package haxe.io
Section 46
//BaseCode (haxe.BaseCode) package haxe { import haxe.io.*; import flash.*; public class BaseCode { protected var tbl:Array; protected var base:Bytes; protected var nbits:int; public function BaseCode(_arg1:Bytes=null):void{ var _local2:int; var _local3:int; super(); if (!Boot.skip_constructor){ _local2 = _arg1.length; _local3 = 1; while (_local2 > (1 << _local3)) { _local3++; }; if ((((_local3 > 8)) || (!((_local2 == (1 << _local3)))))){ throw ("BaseCode : base length must be a power of two."); }; this.base = _arg1; this.nbits = _local3; }; } public function encodeString(_arg1:String):String{ return (this.encodeBytes(Bytes.ofString(_arg1)).toString()); } public function encodeBytes(_arg1:Bytes):Bytes{ var _local2:int; var _local3:Bytes; var _local4:int; var _local5:Bytes; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; _local2 = this.nbits; _local3 = this.base; _local4 = Std._int(((_arg1.length * 8) / _local2)); _local5 = Bytes.alloc((_local4 + ((((_arg1.length * 8) % _local2))==0) ? 0 : 1)); _local6 = 0; _local7 = 0; _local8 = ((1 << _local2) - 1); _local9 = 0; _local10 = 0; while (_local10 < _local4) { while (_local7 < _local2) { _local7 = (_local7 + 8); _local6 = (_local6 << 8); var _temp1 = _local9; _local9 = (_local9 + 1); _local6 = (_local6 | _arg1.get(_temp1)); }; _local7 = (_local7 - _local2); var _temp2 = _local10; _local10 = (_local10 + 1); _local5.set(_temp2, _local3.get(((_local6 >> _local7) & _local8))); }; if (_local7 > 0){ var _temp3 = _local10; _local10 = (_local10 + 1); _local5.set(_temp3, _local3.get(((_local6 << (_local2 - _local7)) & _local8))); }; return (_local5); } public function decodeBytes(_arg1:Bytes):Bytes{ var _local2:int; var _local3:Bytes; var _local4:Array; var _local5:int; var _local6:Bytes; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; _local2 = this.nbits; _local3 = this.base; if (this.tbl == null){ this.initTable(); }; _local4 = this.tbl; _local5 = ((_arg1.length * _local2) >> 3); _local6 = Bytes.alloc(_local5); _local7 = 0; _local8 = 0; _local9 = 0; _local10 = 0; while (_local10 < _local5) { while (_local8 < 8) { _local8 = (_local8 + _local2); _local7 = (_local7 << _local2); var _temp1 = _local9; _local9 = (_local9 + 1); _local11 = _local4[_arg1.get(_temp1)]; if (_local11 == -1){ throw ("BaseCode : invalid encoded char"); }; _local7 = (_local7 | _local11); }; _local8 = (_local8 - 8); var _temp2 = _local10; _local10 = (_local10 + 1); _local6.set(_temp2, ((_local7 >> _local8) & 0xFF)); }; return (_local6); } protected function initTable():void{ var _local1:Array; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local1 = new Array(); _local2 = 0; while (_local2 < 0x0100) { var _temp1 = _local2; _local2 = (_local2 + 1); _local5 = _temp1; _local1[_local5] = -1; }; _local3 = 0; _local4 = this.base.length; while (_local3 < _local4) { var _temp2 = _local3; _local3 = (_local3 + 1); _local6 = _temp2; _local1[this.base.get(_local6)] = _local6; }; this.tbl = _local1; } public function decodeString(_arg1:String):String{ return (this.decodeBytes(Bytes.ofString(_arg1)).toString()); } public static function decode(_arg1:String, _arg2:String):String{ var _local3:BaseCode; _local3 = new BaseCode(Bytes.ofString(_arg2)); return (_local3.decodeString(_arg1)); } public static function encode(_arg1:String, _arg2:String):String{ var _local3:BaseCode; _local3 = new BaseCode(Bytes.ofString(_arg2)); return (_local3.encodeString(_arg1)); } } }//package haxe
Section 47
//Log (haxe.Log) package haxe { import flash.*; public class Log { public static var setColor:Function = function (_arg1:int):void{ Boot.__set_trace_color(_arg1); }; public static var trace:Function = function (_arg1, _arg2=null):void{ Boot.__trace(_arg1, _arg2); }; public static var clear:Function = function ():void{ Boot.__clear_trace(); }; } }//package haxe
Section 48
//Md5 (haxe.Md5) package haxe { public class Md5 { protected static var inst:Md5 = new (Md5); ; public function Md5():void{ } protected function ff(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (this.cmn(this.bitOR(this.bitAND(_arg2, _arg3), this.bitAND(~(_arg2), _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7)); } protected function hh(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (this.cmn(this.bitXOR(this.bitXOR(_arg2, _arg3), _arg4), _arg1, _arg2, _arg5, _arg6, _arg7)); } protected function cmn(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int):int{ return (this.addme(this.rol(this.addme(this.addme(_arg2, _arg1), this.addme(_arg4, _arg6)), _arg5), _arg3)); } protected function doEncode(_arg1:String):String{ var _local2:Array; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; _local2 = this.str2blks(_arg1); _local3 = 1732584193; _local4 = -271733879; _local5 = -1732584194; _local6 = 271733878; _local8 = 0; while (_local8 < _local2.length) { _local9 = _local3; _local10 = _local4; _local11 = _local5; _local12 = _local6; _local7 = 0; _local3 = this.ff(_local3, _local4, _local5, _local6, _local2[_local8], 7, -680876936); _local6 = this.ff(_local6, _local3, _local4, _local5, _local2[(_local8 + 1)], 12, -389564586); _local5 = this.ff(_local5, _local6, _local3, _local4, _local2[(_local8 + 2)], 17, 606105819); _local4 = this.ff(_local4, _local5, _local6, _local3, _local2[(_local8 + 3)], 22, -1044525330); _local3 = this.ff(_local3, _local4, _local5, _local6, _local2[(_local8 + 4)], 7, -176418897); _local6 = this.ff(_local6, _local3, _local4, _local5, _local2[(_local8 + 5)], 12, 1200080426); _local5 = this.ff(_local5, _local6, _local3, _local4, _local2[(_local8 + 6)], 17, -1473231341); _local4 = this.ff(_local4, _local5, _local6, _local3, _local2[(_local8 + 7)], 22, -45705983); _local3 = this.ff(_local3, _local4, _local5, _local6, _local2[(_local8 + 8)], 7, 1770035416); _local6 = this.ff(_local6, _local3, _local4, _local5, _local2[(_local8 + 9)], 12, -1958414417); _local5 = this.ff(_local5, _local6, _local3, _local4, _local2[(_local8 + 10)], 17, -42063); _local4 = this.ff(_local4, _local5, _local6, _local3, _local2[(_local8 + 11)], 22, -1990404162); _local3 = this.ff(_local3, _local4, _local5, _local6, _local2[(_local8 + 12)], 7, 1804603682); _local6 = this.ff(_local6, _local3, _local4, _local5, _local2[(_local8 + 13)], 12, -40341101); _local5 = this.ff(_local5, _local6, _local3, _local4, _local2[(_local8 + 14)], 17, -1502002290); _local4 = this.ff(_local4, _local5, _local6, _local3, _local2[(_local8 + 15)], 22, 1236535329); _local3 = this.gg(_local3, _local4, _local5, _local6, _local2[(_local8 + 1)], 5, -165796510); _local6 = this.gg(_local6, _local3, _local4, _local5, _local2[(_local8 + 6)], 9, -1069501632); _local5 = this.gg(_local5, _local6, _local3, _local4, _local2[(_local8 + 11)], 14, 643717713); _local4 = this.gg(_local4, _local5, _local6, _local3, _local2[_local8], 20, -373897302); _local3 = this.gg(_local3, _local4, _local5, _local6, _local2[(_local8 + 5)], 5, -701558691); _local6 = this.gg(_local6, _local3, _local4, _local5, _local2[(_local8 + 10)], 9, 38016083); _local5 = this.gg(_local5, _local6, _local3, _local4, _local2[(_local8 + 15)], 14, -660478335); _local4 = this.gg(_local4, _local5, _local6, _local3, _local2[(_local8 + 4)], 20, -405537848); _local3 = this.gg(_local3, _local4, _local5, _local6, _local2[(_local8 + 9)], 5, 568446438); _local6 = this.gg(_local6, _local3, _local4, _local5, _local2[(_local8 + 14)], 9, -1019803690); _local5 = this.gg(_local5, _local6, _local3, _local4, _local2[(_local8 + 3)], 14, -187363961); _local4 = this.gg(_local4, _local5, _local6, _local3, _local2[(_local8 + 8)], 20, 1163531501); _local3 = this.gg(_local3, _local4, _local5, _local6, _local2[(_local8 + 13)], 5, -1444681467); _local6 = this.gg(_local6, _local3, _local4, _local5, _local2[(_local8 + 2)], 9, -51403784); _local5 = this.gg(_local5, _local6, _local3, _local4, _local2[(_local8 + 7)], 14, 1735328473); _local4 = this.gg(_local4, _local5, _local6, _local3, _local2[(_local8 + 12)], 20, -1926607734); _local3 = this.hh(_local3, _local4, _local5, _local6, _local2[(_local8 + 5)], 4, -378558); _local6 = this.hh(_local6, _local3, _local4, _local5, _local2[(_local8 + 8)], 11, -2022574463); _local5 = this.hh(_local5, _local6, _local3, _local4, _local2[(_local8 + 11)], 16, 1839030562); _local4 = this.hh(_local4, _local5, _local6, _local3, _local2[(_local8 + 14)], 23, -35309556); _local3 = this.hh(_local3, _local4, _local5, _local6, _local2[(_local8 + 1)], 4, -1530992060); _local6 = this.hh(_local6, _local3, _local4, _local5, _local2[(_local8 + 4)], 11, 1272893353); _local5 = this.hh(_local5, _local6, _local3, _local4, _local2[(_local8 + 7)], 16, -155497632); _local4 = this.hh(_local4, _local5, _local6, _local3, _local2[(_local8 + 10)], 23, -1094730640); _local3 = this.hh(_local3, _local4, _local5, _local6, _local2[(_local8 + 13)], 4, 681279174); _local6 = this.hh(_local6, _local3, _local4, _local5, _local2[_local8], 11, -358537222); _local5 = this.hh(_local5, _local6, _local3, _local4, _local2[(_local8 + 3)], 16, -722521979); _local4 = this.hh(_local4, _local5, _local6, _local3, _local2[(_local8 + 6)], 23, 76029189); _local3 = this.hh(_local3, _local4, _local5, _local6, _local2[(_local8 + 9)], 4, -640364487); _local6 = this.hh(_local6, _local3, _local4, _local5, _local2[(_local8 + 12)], 11, -421815835); _local5 = this.hh(_local5, _local6, _local3, _local4, _local2[(_local8 + 15)], 16, 530742520); _local4 = this.hh(_local4, _local5, _local6, _local3, _local2[(_local8 + 2)], 23, -995338651); _local3 = this.ii(_local3, _local4, _local5, _local6, _local2[_local8], 6, -198630844); _local6 = this.ii(_local6, _local3, _local4, _local5, _local2[(_local8 + 7)], 10, 1126891415); _local5 = this.ii(_local5, _local6, _local3, _local4, _local2[(_local8 + 14)], 15, -1416354905); _local4 = this.ii(_local4, _local5, _local6, _local3, _local2[(_local8 + 5)], 21, -57434055); _local3 = this.ii(_local3, _local4, _local5, _local6, _local2[(_local8 + 12)], 6, 1700485571); _local6 = this.ii(_local6, _local3, _local4, _local5, _local2[(_local8 + 3)], 10, -1894986606); _local5 = this.ii(_local5, _local6, _local3, _local4, _local2[(_local8 + 10)], 15, -1051523); _local4 = this.ii(_local4, _local5, _local6, _local3, _local2[(_local8 + 1)], 21, -2054922799); _local3 = this.ii(_local3, _local4, _local5, _local6, _local2[(_local8 + 8)], 6, 1873313359); _local6 = this.ii(_local6, _local3, _local4, _local5, _local2[(_local8 + 15)], 10, -30611744); _local5 = this.ii(_local5, _local6, _local3, _local4, _local2[(_local8 + 6)], 15, -1560198380); _local4 = this.ii(_local4, _local5, _local6, _local3, _local2[(_local8 + 13)], 21, 1309151649); _local3 = this.ii(_local3, _local4, _local5, _local6, _local2[(_local8 + 4)], 6, -145523070); _local6 = this.ii(_local6, _local3, _local4, _local5, _local2[(_local8 + 11)], 10, -1120210379); _local5 = this.ii(_local5, _local6, _local3, _local4, _local2[(_local8 + 2)], 15, 718787259); _local4 = this.ii(_local4, _local5, _local6, _local3, _local2[(_local8 + 9)], 21, -343485551); _local3 = this.addme(_local3, _local9); _local4 = this.addme(_local4, _local10); _local5 = this.addme(_local5, _local11); _local6 = this.addme(_local6, _local12); _local8 = (_local8 + 16); }; return ((((this.rhex(_local3) + this.rhex(_local4)) + this.rhex(_local5)) + this.rhex(_local6))); } protected function rhex(_arg1:int):String{ var _local2:String; var _local3:String; var _local4:int; var _local5:int; _local2 = ""; _local3 = "0123456789abcdef"; _local4 = 0; while (_local4 < 4) { var _temp1 = _local4; _local4 = (_local4 + 1); _local5 = _temp1; _local2 = (_local2 + (_local3.charAt(((_arg1 >> ((_local5 * 8) + 4)) & 15)) + _local3.charAt(((_arg1 >> (_local5 * 8)) & 15)))); }; return (_local2); } protected function bitAND(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; _local3 = ((_arg1 & 1) & (_arg2 & 1)); _local4 = ((_arg1 >>> 1) & (_arg2 >>> 1)); return (((_local4 << 1) | _local3)); } protected function ii(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (this.cmn(this.bitXOR(_arg3, this.bitOR(_arg2, ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } protected function bitXOR(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; _local3 = ((_arg1 & 1) ^ (_arg2 & 1)); _local4 = ((_arg1 >>> 1) ^ (_arg2 >>> 1)); return (((_local4 << 1) | _local3)); } protected function rol(_arg1:int, _arg2:int):int{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } protected function bitOR(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; _local3 = ((_arg1 & 1) | (_arg2 & 1)); _local4 = ((_arg1 >>> 1) | (_arg2 >>> 1)); return (((_local4 << 1) | _local3)); } protected function str2blks(_arg1:String):Array{ var _local2:int; var _local3:Array; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; _local2 = (((_arg1.length + 8) >> 6) + 1); _local3 = new Array(); _local4 = 0; _local5 = (_local2 * 16); while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local9 = _temp1; _local3[_local9] = 0; }; _local6 = 0; while (_local6 < _arg1.length) { _local3[(_local6 >> 2)] = (_local3[(_local6 >> 2)] | (_arg1["charCodeAt"](_local6) << ((((_arg1.length * 8) + _local6) % 4) * 8))); _local6++; }; _local3[(_local6 >> 2)] = (_local3[(_local6 >> 2)] | (128 << ((((_arg1.length * 8) + _local6) % 4) * 8))); _local7 = (_arg1.length * 8); _local8 = ((_local2 * 16) - 2); _local3[_local8] = (_local7 & 0xFF); _local3[_local8] = (_local3[_local8] | (((_local7 >>> 8) & 0xFF) << 8)); _local3[_local8] = (_local3[_local8] | (((_local7 >>> 16) & 0xFF) << 16)); _local3[_local8] = (_local3[_local8] | (((_local7 >>> 24) & 0xFF) << 24)); return (_local3); } protected function gg(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (this.cmn(this.bitOR(this.bitAND(_arg2, _arg4), this.bitAND(_arg3, ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } protected function addme(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; _local3 = ((_arg1 & 0xFFFF) + (_arg2 & 0xFFFF)); _local4 = (((_arg1 >> 16) + (_arg2 >> 16)) + (_local3 >> 16)); return (((_local4 << 16) | (_local3 & 0xFFFF))); } public static function encode(_arg1:String):String{ return (inst.doEncode(_arg1)); } } }//package haxe
Section 49
//BuildMission (logic.mission.BuildMission) package logic.mission { import ui.*; import flash.*; public class BuildMission extends Mission { protected var buildType:int; protected var shadow:TowerSprite; public function BuildMission(_arg1:Point=null, _arg2:Point=null, _arg3:Resource=null, _arg4:int=0):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2, _arg3); this.buildType = _arg4; this.shadow = null; if (_arg1 != null){ this.takePayload(); this.shadow = Game.map.getCell(this.dest.x, this.dest.y).setShadow(this.buildType); if (this.buildType == Tower.BARRICADE){ this.sourceTower.addIncomingSurvivor(this.survivorType); }; }; this.type = Mission.BUILD; }; } override public function canSucceed():Boolean{ return ((Game.map.getCell(this.dest.x, this.dest.y).getShadow() == this.shadow)); } override public function fail():Mission{ var _local1:int; this.cleanup(); _local1 = Option.truckLoad; if (this.payload == Resource.SURVIVORS){ _local1 = 1; }; return (ReturnMission.create(this.dest, this.source, this.payload, _local1, this.survivorType)); } override public function cleanup():void{ if (this.shadow == Game.map.getCell(this.dest.x, this.dest.y).getShadow()){ Game.map.getCell(this.dest.x, this.dest.y).clearShadow(); }; if (this.buildType == Tower.BARRICADE){ this.sourceTower.removeIncomingSurvivor(this.survivorType); }; } override public function complete():Mission{ var _local1:Mission; var _local2:MapCell; _local1 = null; _local2 = Game.map.getCell(this.dest.x, this.dest.y); if (((((!(_local2.hasZombies())) && (!(_local2.hasTower())))) && (_local2.hasShadow()))){ this.cleanup(); _local2.createTower(this.buildType); this.destTower = _local2.getTower(); if (this.sourceExists()){ this.sourceTower.addTradeLink(this.dest); }; Game.map.noise(this.dest.x, this.dest.y, Option.buildNoise, this.destTower.getZombieGuide()); Main.sound.play(SoundPlayer.TOWER_BUILD); if (this.buildType == Tower.BARRICADE){ this.destTower.giveResource(new ResourceCount(this.payload, Lib.truckLoad(this.payload))); _local1 = ReturnMission.create(this.dest, this.source, Resource.SURVIVORS, Lib.truckLoad(Resource.SURVIVORS), this.survivorType); } else { this.destTower.giveSurvivor(this.survivorType); }; } else { _local1 = this.fail(); }; return (_local1); } override public function save(){ return ({parent:super.save(), buildType:this.buildType}); } public static function create(_arg1:Point, _arg2:Point, _arg3:Resource, _arg4:int):Mission{ var _local5:Mission; _local5 = null; if (((Mission.sourceHasPayload(_arg1, _arg3)) && (!(Game.map.getCell(_arg2.x, _arg2.y).hasTower())))){ _local5 = new BuildMission(_arg1, _arg2, _arg3, _arg4); }; return (_local5); } public static function load(_arg1):BuildMission{ var _local2:BuildMission; _local2 = new BuildMission(null, null, null, 0); _local2.buildType = _arg1.buildType; _local2.shadow = Game.map.getCell(_arg1.parent.dest.x, _arg1.parent.dest.y).getShadow(); return (_local2); } } }//package logic.mission
Section 50
//Mission (logic.mission.Mission) package logic.mission { import flash.*; public class Mission { protected var destTower:Tower; protected var survivorType:int; protected var source:Point; protected var payload:Resource; protected var dest:Point; protected var sourceTower:Tower; protected var type:int; public static var RETURN:int = 1; public static var SUPPLY:int = 2; public static var UPGRADE:int = 3; public static var BUILD:int = 0; public function Mission(_arg1:Point=null, _arg2:Point=null, _arg3:Resource=null):void{ if (!Boot.skip_constructor){ this.source = null; this.sourceTower = null; this.dest = null; this.destTower = null; this.payload = null; if (_arg1 != null){ this.source = new Point(_arg1.x, _arg1.y); this.sourceTower = Game.map.getCell(this.source.x, this.source.y).getTower(); this.dest = new Point(_arg2.x, _arg2.y); this.destTower = Game.map.getCell(this.dest.x, this.dest.y).getTower(); this.payload = _arg3; }; this.type = 0; }; } public function takeFood():int{ var _local1:int; var _local2:ResourceCount; _local1 = 0; if (this.sourceTower != null){ _local1 = this.sourceTower.getTruckSpeed(); if (this.sourceTower.shouldUseFood()){ _local2 = new ResourceCount(Resource.FOOD, this.sourceTower.getFoodCost()); if (this.sourceTower.hasResource(_local2)){ this.sourceTower.takeResource(_local2); _local1 = (Option.foodTruckSpeedMin + Lib.rand(Option.foodTruckSpeedRange)); }; }; }; return (_local1); } public function getSurvivorType():int{ return (this.survivorType); } public function getSource():Point{ return (this.source); } public function canSucceed():Boolean{ return (this.destExists()); } protected function takePayload():void{ if (this.payload != Resource.SURVIVORS){ this.sourceTower.takeResource(new ResourceCount(this.payload, Lib.truckLoad(this.payload))); }; this.survivorType = this.sourceTower.takeSurvivor(); } protected function sourceExists():Boolean{ return (((!((this.sourceTower == null))) && ((Game.map.getCell(this.source.x, this.source.y).getTower() == this.sourceTower)))); } public function getDest():Point{ return (this.dest); } protected function destExists():Boolean{ return (((!((this.destTower == null))) && ((Game.map.getCell(this.dest.x, this.dest.y).getTower() == this.destTower)))); } public function getPayload():Resource{ return (this.payload); } public function cleanup():void{ } public function fail():Mission{ return (null); } public function dropLoad(_arg1:int, _arg2:int):void{ if (this.payload != Resource.SURVIVORS){ Game.map.getCell(_arg1, _arg2).addRubble(this.payload, Option.truckLoad); }; } public function complete():Mission{ return (null); } public function save(){ return ({source:this.source.save(), dest:this.dest.save(), payload:Lib.resourceToIndex(this.payload), type:this.type, survivorType:this.survivorType}); } public static function loadMission(_arg1):Mission{ var _local2:Mission; _local2 = null; if (_arg1.parent.type == BUILD){ _local2 = BuildMission.load(_arg1); } else { if (_arg1.parent.type == RETURN){ _local2 = ReturnMission.load(_arg1); } else { if (_arg1.parent.type == SUPPLY){ _local2 = SupplyMission.load(_arg1); } else { _local2 = UpgradeMission.load(_arg1); }; }; }; _local2.source = Point.load(_arg1.parent.source); _local2.sourceTower = Game.map.getCell(_local2.source.x, _local2.source.y).getTower(); _local2.dest = Point.load(_arg1.parent.dest); _local2.destTower = Game.map.getCell(_local2.dest.x, _local2.dest.y).getTower(); _local2.payload = Lib.indexToResource(_arg1.parent.payload); _local2.type = _arg1.parent.type; _local2.survivorType = _arg1.parent.survivorType; return (_local2); } protected static function sourceHasPayload(_arg1:Point, _arg2:Resource):Boolean{ var _local3:Tower; _local3 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); return (((((!((_local3 == null))) && (_local3.hasResource(new ResourceCount(_arg2, Lib.truckLoad(_arg2)))))) && (_local3.hasResource(Lib.survivorLoad)))); } } }//package logic.mission
Section 51
//ReturnMission (logic.mission.ReturnMission) package logic.mission { import flash.*; public class ReturnMission extends Mission { protected var amount:int; public function ReturnMission(_arg1:Point=null, _arg2:Point=null, _arg3:Resource=null, _arg4:int=0, _arg5:int=0):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2, _arg3); this.survivorType = _arg5; this.amount = _arg4; if (_arg1 != null){ if (this.payload != Resource.SURVIVORS){ this.destTower.addIncoming(new ResourceCount(this.payload, this.amount)); }; this.destTower.addIncomingSurvivor(this.survivorType); }; this.type = Mission.RETURN; }; } override public function takeFood():int{ return ((Option.returnTruckSpeedMin + Lib.rand(Option.returnTruckSpeedRange))); } override public function fail():Mission{ var _local1:Mission; var _local2:Point; _local1 = null; _local2 = Game.progress.getRandomDepot(); if (_local2 != null){ _local1 = create(this.source, _local2, this.payload, this.amount, this.survivorType); }; this.cleanup(); return (_local1); } override public function cleanup():void{ if (this.destExists()){ if (this.payload != Resource.SURVIVORS){ this.destTower.removeIncoming(new ResourceCount(this.payload, this.amount)); }; this.destTower.removeIncomingSurvivor(this.survivorType); }; } override public function dropLoad(_arg1:int, _arg2:int):void{ if (this.payload != Resource.SURVIVORS){ Game.map.getCell(_arg1, _arg2).addRubble(this.payload, this.amount); }; } override public function complete():Mission{ var _local1:Mission; _local1 = null; if (this.destExists()){ this.cleanup(); if (this.payload != Resource.SURVIVORS){ this.destTower.giveResource(new ResourceCount(this.payload, this.amount)); }; this.destTower.giveSurvivor(this.survivorType); } else { _local1 = this.fail(); }; return (_local1); } override public function save(){ return ({parent:super.save(), amount:this.amount}); } protected static function isValid(_arg1:Point, _arg2:Resource, _arg3:int):Boolean{ var _local4:Tower; _local4 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); return (!((_local4 == null))); } public static function create(_arg1:Point, _arg2:Point, _arg3:Resource, _arg4:int, _arg5:int):Mission{ var _local6:Mission; var _local7:Point; _local6 = null; _local7 = Game.progress.getRandomDepot(); if (isValid(_arg2, _arg3, _arg4)){ _local6 = new ReturnMission(_arg1, _arg2, _arg3, _arg4, _arg5); } else { if (((!((_local7 == null))) && (isValid(_local7, _arg3, _arg4)))){ _local6 = new ReturnMission(_arg1, _local7, _arg3, _arg4, _arg5); }; }; return (_local6); } public static function load(_arg1):ReturnMission{ var _local2:ReturnMission; _local2 = new ReturnMission(null, null, null, 0, 0); _local2.amount = _arg1.amount; return (_local2); } } }//package logic.mission
Section 52
//SupplyMission (logic.mission.SupplyMission) package logic.mission { import flash.*; public class SupplyMission extends Mission { protected var amount:int; public function SupplyMission(_arg1:Point=null, _arg2:Point=null, _arg3:Resource=null, _arg4:int=0):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2, _arg3); this.amount = _arg4; if (_arg1 != null){ if (this.payload != Resource.SURVIVORS){ this.sourceTower.takeResource(new ResourceCount(this.payload, this.amount)); }; this.survivorType = this.sourceTower.takeSurvivor(); if (this.payload == Resource.SURVIVORS){ this.destTower.addIncomingSurvivor(this.survivorType); } else { this.destTower.addIncoming(new ResourceCount(this.payload, this.amount)); this.sourceTower.addIncomingSurvivor(this.survivorType); }; }; this.type = Mission.SUPPLY; }; } override public function fail():Mission{ this.cleanup(); return (ReturnMission.create(this.dest, this.source, this.payload, this.amount, this.survivorType)); } override public function cleanup():void{ if (this.payload == Resource.SURVIVORS){ if (this.destExists()){ this.destTower.removeIncomingSurvivor(this.survivorType); }; } else { if (this.destExists()){ this.destTower.removeIncoming(new ResourceCount(this.payload, this.amount)); }; if (this.sourceExists()){ this.sourceTower.removeIncomingSurvivor(this.survivorType); }; }; } override public function dropLoad(_arg1:int, _arg2:int):void{ if (this.payload != Resource.SURVIVORS){ Game.map.getCell(_arg1, _arg2).addRubble(this.payload, this.amount); }; } override public function complete():Mission{ var _local1:Mission; _local1 = null; if (this.destExists()){ this.cleanup(); if (this.payload == Resource.SURVIVORS){ this.destTower.giveSurvivor(this.survivorType); } else { this.destTower.giveResource(new ResourceCount(this.payload, this.amount)); }; if (this.payload != Resource.SURVIVORS){ this.payload = Resource.SURVIVORS; _local1 = ReturnMission.create(this.dest, this.source, Resource.SURVIVORS, 1, this.survivorType); }; Main.sound.play(SoundPlayer.TOWER_SUPPLY); } else { _local1 = this.fail(); }; return (_local1); } override public function save(){ return ({parent:super.save(), amount:this.amount}); } public static function create(_arg1:Point, _arg2:Point, _arg3:Resource, _arg4:int):Mission{ var _local5:Mission; var _local6:Tower; var _local7:Tower; _local5 = null; _local6 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); _local7 = Game.map.getCell(_arg2.x, _arg2.y).getTower(); if ((((((_local6.countResource(_arg3) >= _arg4)) && (_local6.hasResource(Lib.survivorLoad)))) && (!((_local7 == null))))){ _local5 = new SupplyMission(_arg1, _arg2, _arg3, _arg4); } else { if (_local6.countResource(_arg3) < _arg4){ Lib.trace("Source tower does not have resources"); }; if (!_local6.hasResource(Lib.survivorLoad)){ Lib.trace("Source tower does not have a survivor"); }; if (_local7 == null){ Lib.trace("No Dest Tower"); }; }; return (_local5); } public static function load(_arg1):SupplyMission{ var _local2:SupplyMission; _local2 = new SupplyMission(null, null, null, 0); _local2.amount = _arg1.amount; return (_local2); } } }//package logic.mission
Section 53
//UpgradeMission (logic.mission.UpgradeMission) package logic.mission { import flash.*; public class UpgradeMission extends Mission { public function UpgradeMission(_arg1:Point=null, _arg2:Point=null, _arg3:Resource=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2, _arg3); if (_arg1 != null){ this.takePayload(); this.sourceTower.addIncomingSurvivor(this.survivorType); this.destTower.reserveUpgrade(); }; this.type = Mission.UPGRADE; }; } override public function fail():Mission{ var _local1:int; this.cleanup(); _local1 = Option.truckLoad; if (this.payload == Resource.SURVIVORS){ _local1 = 1; }; return (ReturnMission.create(this.dest, this.source, this.payload, _local1, this.survivorType)); } override public function cleanup():void{ if (this.sourceExists()){ this.sourceTower.removeIncomingSurvivor(this.survivorType); }; if (this.destExists()){ this.destTower.freeUpgrade(); }; } override public function complete():Mission{ var _local1:Mission; _local1 = null; if (this.destExists()){ this.cleanup(); this.destTower.upgrade(); this.payload = Resource.SURVIVORS; _local1 = ReturnMission.create(this.dest, this.source, Resource.SURVIVORS, 1, this.survivorType); } else { _local1 = this.fail(); }; return (_local1); } override public function save(){ return ({parent:super.save()}); } public static function create(_arg1:Point, _arg2:Point, _arg3:Resource):Mission{ var _local4:Mission; var _local5:Tower; _local4 = null; _local5 = Game.map.getCell(_arg2.x, _arg2.y).getTower(); if (((((Mission.sourceHasPayload(_arg1, _arg3)) && (!((_local5 == null))))) && (_local5.canUpgrade()))){ _local4 = new UpgradeMission(_arg1, _arg2, _arg3); }; return (_local4); } public static function load(_arg1):UpgradeMission{ var _local2:UpgradeMission; _local2 = new UpgradeMission(null, null, null); return (_local2); } } }//package logic.mission
Section 54
//Bridge (logic.Bridge) package logic { import mapgen.*; import flash.*; public class Bridge { protected var spawnArea:Section; protected var lot:Section; protected var dir:Direction; protected var isBroken:Boolean; protected static var bridgeRadius:int = (Option.cellPixels * MapGenerator.waterCount); public function Bridge(_arg1:Direction=null, _arg2:Section=null, _arg3:Boolean=false):void{ if (!Boot.skip_constructor){ this.lot = new Section(_arg2.offset, _arg2.limit); this.dir = _arg1; this.spawnArea = this.lot.center().slice(Util.opposite(this.dir), 1); this.isBroken = _arg3; }; } public function cleanup():void{ } public function getOffset():Point{ return (this.lot.offset); } public function clear():void{ Util.fillClearTiles(this.lot); } protected function calculateFrame():int{ var _local1:int; _local1 = (Lib.directionToIndex(this.dir) + 1); if (this.isBroken){ _local1 = (_local1 + 4); }; return (_local1); } public function spawnDir():Direction{ return (this.dir); } public function explosionDir():Direction{ return (Util.opposite(this.dir)); } public function spawnPos():Point{ var _local1:int; var _local2:int; _local1 = Lib.rand((this.spawnArea.limit.x - this.spawnArea.offset.x)); _local2 = Lib.rand((this.spawnArea.limit.y - this.spawnArea.offset.y)); return (new Point((this.spawnArea.offset.x + _local1), (this.spawnArea.offset.y + _local2))); } public function destroy():void{ var _local1:int; var _local2:int; var _local3:PlaceBridge; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:MapCell; var _local9:Zombie; this.isBroken = true; Game.progress.destroyBridge(this); _local1 = this.lot.offset.y; _local2 = this.lot.limit.y; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local4 = _temp1; _local5 = this.lot.offset.x; _local6 = this.lot.limit.x; while (_local5 < _local6) { var _temp2 = _local5; _local5 = (_local5 + 1); _local7 = _temp2; _local8 = Game.map.getCell(_local7, _local4); while (_local8.hasZombies()) { _local9 = _local8.getZombie(); _local9.removeFromMap(); _local9.cleanup(); }; _local8.setBlocked(); _local8.setBackground(BackgroundType.WATER); Game.view.mini.updateCell(_local7, _local4); }; }; _local3 = new PlaceBridge(this.dir, this.isBroken); _local3.place(this.lot); Game.view.window.fillRegion(this.lot.offset, this.lot.limit); Game.spawner.reduceZombies(); Game.sprites.recalculateFov(); Main.replay.addBox(this.lot.offset, this.lot.limit, Option.waterColor); } public function getLot():Section{ return (this.lot); } public function save(){ return ({dir:Lib.directionToIndex(this.dir), lot:Section.save(this.lot), isBroken:this.isBroken}); } public static function load(_arg1):Bridge{ return (new Bridge(Lib.indexToDirection(_arg1.dir), Section.load(_arg1.lot), _arg1.isBroken)); } public static function saveS(_arg1:Bridge){ return (_arg1.save()); } } }//package logic
Section 55
//GameSettings (logic.GameSettings) package logic { import flash.utils.*; import ui.*; import haxe.io.*; import mapgen.*; import flash.*; import haxe.*; import native.*; public class GameSettings { protected var testing:Boolean; protected var normalName:String; protected var loseText:String; protected var winText:String; protected var briefingText:String; protected var cityName:String; protected var playTime:int; protected var customMap:ByteArray; protected var size:Point; protected var campaign:int; protected var difficulty:int; protected var easterEgg:int; protected var script:String; protected var key:String; protected var hasEdges:Boolean; protected var editor:Boolean; protected var custom:Boolean; protected var start:Point; protected var url:String; protected static var zombieSpeed:Array = [80, 80, 104, 135, 175]; public static var FIDDLERSGREEN:int = 5; protected static var zombieMultiplier:Array = [1, 1, 2, 2, 3]; protected static var difficultyText:Array = [Text.tutorialText, Text.noviceText, Text.veteranText, Text.expertText, Text.quartermasterText]; protected static var baseString:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; protected static var bridgeCount:Array = [1, 1, 2, 3, 4]; public static var NO_EASTER_EGG:int = 0; public static var SALTLAKECITY:int = 6; public static var LONDON:int = 1; protected static var baseBytes:Bytes = Bytes.ofString(baseString); public static var EASTLOSANGELES:int = 7; public static var CUMBERLAND:int = 3; public static var RACCOONCITY:int = 4; protected static var resourceMultiplier:Array = [3, 3, 3, 3, 3]; protected static var scarceCount:Array = [0, 0, 1, 1, 2]; public static var MONROEVILLE:int = 2; protected static var sizeList:Array = [46, 46, 56, 66, 76]; public function GameSettings():void{ if (!Boot.skip_constructor){ this.difficulty = 0; this.cityName = ""; this.playTime = 0; this.customMap = null; this.editor = false; this.testing = false; this.hasEdges = true; this.custom = false; this.size = new Point(0, 0); this.start = new Point(0, 0); this.key = null; this.url = null; this.script = null; this.campaign = -1; this.briefingText = Text.mainIntroText; this.winText = ""; this.loseText = ""; this.normalize(); }; } public function save(){ return ({difficulty:this.difficulty, cityName:this.cityName, playTime:this.playTime, map:this.saveMap(), editor:this.editor, testing:this.testing, hasEdges:this.hasEdges, custom:this.custom, size:this.size.save(), start:this.start.save(), key:this.key, url:this.url, script:this.script, campaign:this.campaign, briefingText:this.briefingText, winText:this.winText, loseText:this.loseText}); } public function getEasterEgg():int{ return (this.easterEgg); } public function isTesting():Boolean{ return (this.testing); } public function beginNewCustom(_arg1:String):void{ this.playTime = 0; this.editor = false; this.testing = false; this.custom = true; this.loadMap(_arg1); } public function getZombieSpeed():int{ var _local1:int; _local1 = zombieSpeed[this.difficulty]; if (this.easterEgg == LONDON){ _local1 = (_local1 * 2); }; return (_local1); } public function getCityName():String{ return (this.cityName); } public function getCampaign():int{ return (this.campaign); } public function setCampaign(_arg1:int):void{ this.campaign = _arg1; } protected function normalize():void{ this.updateDifficulty(); this.updateName(); this.updateEasterEgg(); } public function loadMap(_arg1:String):void{ var _local2:XML; var _local3:XMLList; var _local4:XMLList; if (_arg1.indexOf("<") == -1){ this.hasEdges = false; this.loadCustomMap(_arg1, true); this.script = null; } else { _local2 = new XML(_arg1); if ((((((((((((_local2.attribute("name").length() == 0)) || ((_local2.attribute("sizeX").length() == 0)))) || ((_local2.attribute("sizeY").length() == 0)))) || ((_local2.attribute("startX").length() == 0)))) || ((_local2.attribute("startY").length() == 0)))) || ((_local2.attribute("difficulty").length() == 0)))){ throw (new Error((("Could not find required tag.\n" + "Every map must have: name, sizeX, sizeY, ") + "startX, startY, difficulty"))); }; this.cityName = Std.string(_local2.attribute("name")); this.size = new Point(Std._parseInt(Std.string(_local2.attribute("sizeX"))), Std._parseInt(Std.string(_local2.attribute("sizeY")))); this.start = new Point(Std._parseInt(Std.string(_local2.attribute("startX"))), Std._parseInt(Std.string(_local2.attribute("startY")))); this.difficulty = Std._parseInt(Std.string(_local2.attribute("difficulty"))); _local3 = _local2.elements("briefing"); if (_local3.length() > 0){ this.briefingText = Std.string(_local3.text()); } else { this.briefingText = Text.mainIntroText; }; if (_local2.elements("terrain").length() > 0){ this.loadCustomMap(Std.string(_local2.elements("terrain")), false); }; this.script = null; _local4 = _local2.elements("script"); if (_local4.length() > 0){ this.script = _local4.toXMLString(); }; }; } public function getNormalName():String{ return (this.normalName); } public function setCityName(_arg1:String):void{ this.cityName = _arg1; this.normalize(); } public function setMap(_arg1:ByteArray):void{ this.customMap = _arg1; } public function setKey(_arg1:String):void{ this.key = _arg1; } public function getPlayTime():int{ return (this.playTime); } public function saveMap():String{ var _local1:String; _local1 = (("<map name=\"" + this.cityName) + "\" "); _local1 = (_local1 + (("difficulty=\"" + Std.string(this.difficulty)) + "\" ")); _local1 = (_local1 + (("sizeX=\"" + Std.string(this.size.x)) + "\" ")); _local1 = (_local1 + (("sizeY=\"" + Std.string(this.size.y)) + "\" ")); _local1 = (_local1 + (("startX=\"" + Std.string(this.start.x)) + "\" ")); _local1 = (_local1 + (("startY=\"" + Std.string(this.start.y)) + "\" ")); _local1 = (_local1 + ">\n"); if (this.briefingText != Text.mainIntroText){ _local1 = (_local1 + "<briefing>\n"); _local1 = (_local1 + (this.briefingText + "\n")); _local1 = (_local1 + "</briefing>\n"); }; if (this.customMap != null){ _local1 = (_local1 + "<terrain>\n"); _local1 = (_local1 + this.getCustomMap()); _local1 = (_local1 + "\n</terrain>\n"); }; if (this.script != null){ _local1 = (_local1 + this.script); }; _local1 = (_local1 + "</map>\n"); return (_local1); } public function setStart(_arg1:Point):void{ this.start = _arg1.clone(); } public function clearEditor():void{ this.editor = false; } public function getMap():ByteArray{ if (this.customMap != null){ this.customMap.position = 0; }; return (this.customMap); } public function getKey():String{ return (this.key); } public function getStart():Point{ return (this.start); } public function setUrl(_arg1:String):void{ this.url = _arg1; } public function incrementPlayTime():void{ this.playTime++; } public function getDifficulty():int{ return (this.difficulty); } public function isEditor():Boolean{ return (this.editor); } public function getUrl():String{ return (this.url); } public function isCustom():Boolean{ return (this.custom); } public function setDifficulty(_arg1:int):void{ this.difficulty = _arg1; this.normalize(); } public function getScript():String{ return (this.script); } public function getBridgeCount():int{ return (bridgeCount[this.difficulty]); } public function doesHaveEdges():Boolean{ return (this.hasEdges); } public function getLoseText():String{ return (this.loseText); } public function beginLoadEdit(_arg1:String, _arg2:String, _arg3:String):void{ this.playTime = 0; this.editor = true; this.testing = false; this.custom = true; this.winText = _arg2; this.loseText = _arg3; this.loadMap(_arg1); } public function beginNewRandom(_arg1:int, _arg2:String):void{ this.difficulty = _arg1; this.cityName = _arg2; this.playTime = 0; this.customMap = null; this.editor = false; this.testing = false; this.custom = false; this.normalize(); } public function getDifficultyName():String{ return (difficultyText[this.difficulty]); } public function clone():GameSettings{ var _local1:GameSettings; var _local2:ByteArray; _local1 = new GameSettings(); _local1.difficulty = this.difficulty; _local1.cityName = this.cityName; _local1.playTime = this.playTime; _local2 = this.getMap(); if (_local2 == null){ _local1.customMap = null; } else { _local1.customMap = new ByteArray(); _local1.customMap.writeBytes(_local2); }; _local1.editor = this.editor; _local1.testing = this.testing; _local1.hasEdges = this.hasEdges; _local1.custom = this.custom; _local1.size = this.size.clone(); _local1.start = this.start.clone(); _local1.key = this.key; _local1.url = this.url; _local1.script = this.script; _local1.campaign = this.campaign; _local1.briefingText = this.briefingText; _local1.winText = this.winText; _local1.loseText = this.loseText; _local1.normalize(); return (_local1); } public function beginLoadTest(_arg1:String):void{ this.playTime = 0; this.editor = false; this.testing = true; this.custom = true; this.loadMap(_arg1); } protected function updateDifficulty():void{ if (this.cityName.toLowerCase().indexOf("tutorial") != -1){ this.difficulty = 0; }; if (((!(this.custom)) && (!(this.editor)))){ this.size = new Point(sizeList[this.difficulty], sizeList[this.difficulty]); }; if (this.size.x < 15){ this.size.x = 15; }; if (this.size.x > 90){ this.size.x = 90; }; if (this.size.y < 15){ this.size.y = 15; }; if (this.size.y > 90){ this.size.y = 90; }; } protected function loadCustomMap(_arg1:String, _arg2:Boolean):void{ var _local3:String; var _local4:Array; var _local5:String; var _local6:String; var _local7:String; var _local8:Bytes; var _local9:BaseCode; var _local10:ByteArray; var _local11:ByteArray; if (_arg1 == null){ this.customMap = null; this.normalize(); } else { _local3 = NativeBase.removeWhitespace(_arg1); _local4 = _local3.split("."); if (_local4.length != 2){ throw (new Error("Could not find hash in terrain")); }; _local5 = _local4[0]; _local6 = _local4[1]; _local7 = Md5.encode(_local6); if (_local5 != _local7){ throw (new Error(((((("Could not verify terrain.\n" + "Specified Hash: ") + _local5) + "\n") + "Calculated Hash: ") + _local7))); }; _local8 = Bytes.ofString(_local6); _local9 = new BaseCode(baseBytes); _local10 = _local9.decodeBytes(_local8).getData(); _local10.uncompress(); _local11 = _local10; if (_arg2){ this.cityName = _local11.readUTF(); this.difficulty = _local11.readUnsignedByte(); this.size.x = (_local11.readUnsignedByte() + (Editor.edgeCount * 2)); this.size.y = (_local11.readUnsignedByte() + (Editor.edgeCount * 2)); this.start.x = _local11.readUnsignedByte(); this.start.y = _local11.readUnsignedByte(); }; this.customMap = new ByteArray(); _local11.readBytes(this.customMap); this.normalize(); }; } public function load(_arg1):void{ this.difficulty = _arg1.difficulty; this.cityName = _arg1.cityName; this.playTime = _arg1.playTime; this.editor = _arg1.editor; this.testing = _arg1.testing; this.hasEdges = _arg1.hasEdges; this.custom = _arg1.custom; this.size = Point.load(_arg1.size); this.start = Point.load(_arg1.start); this.key = _arg1.key; this.url = _arg1.url; this.script = _arg1.script; this.campaign = _arg1.campaign; this.briefingText = _arg1.briefingText; this.winText = _arg1.winText; this.loseText = _arg1.loseText; this.loadMap(_arg1.map); } public function setWinText(_arg1:String):void{ this.winText = _arg1; } public function beginNewEdit(_arg1:int, _arg2:String, _arg3:Point):void{ this.difficulty = _arg1; this.cityName = _arg2; this.playTime = 0; this.customMap = null; this.editor = true; this.testing = false; this.custom = false; this.size = _arg3.clone(); this.key = null; this.url = null; this.script = null; this.normalize(); } public function getBriefingText():String{ return (this.briefingText); } public function getResourceMultiplier():int{ return (resourceMultiplier[this.difficulty]); } public function setEditor():void{ this.editor = true; } protected function updateEasterEgg():void{ if (this.custom){ this.easterEgg = NO_EASTER_EGG; } else { if (this.normalName.indexOf("london") != -1){ this.easterEgg = LONDON; } else { if (this.normalName.indexOf("monroeville") != -1){ this.easterEgg = MONROEVILLE; } else { if (this.normalName.indexOf("cumberland") != -1){ this.easterEgg = CUMBERLAND; } else { if (this.normalName.indexOf("raccooncity") != -1){ this.easterEgg = RACCOONCITY; } else { if (this.normalName.indexOf("fiddlersgreen") != -1){ this.easterEgg = FIDDLERSGREEN; } else { if (this.normalName.indexOf("saltlakecity") != -1){ this.easterEgg = SALTLAKECITY; } else { if (this.normalName.indexOf("eastlosangeles") != -1){ this.easterEgg = EASTLOSANGELES; } else { this.easterEgg = NO_EASTER_EGG; }; }; }; }; }; }; }; }; if (((!((this.easterEgg == NO_EASTER_EGG))) && (!((Main.kongregate == null))))){ Main.kongregate.stats.submit("Easter Egg", 1); }; } public function getWinText():String{ return (this.winText); } protected function updateName():void{ this.normalName = Util.getNormal(this.cityName, this.difficulty); } protected function getCustomMap():String{ var _local1:String; var _local2:ByteArray; var _local3:BaseCode; var _local4:Bytes; var _local5:String; var _local6:String; var _local7:String; var _local8:Array; var _local9:int; var _local10:int; _local1 = null; if (this.customMap != null){ _local2 = new ByteArray(); _local2.writeBytes(this.customMap); _local2.compress(); _local3 = new BaseCode(baseBytes); _local4 = _local3.encodeBytes(Bytes.ofData(_local2)); _local5 = _local4.toString(); _local6 = Md5.encode(_local5); _local7 = ((_local6 + ".") + _local5); _local8 = []; _local9 = 0; _local10 = 50; while (_local9 < _local7.length) { _local8.push(_local7.substr(_local9, _local10)); _local9 = (_local9 + _local10); }; _local1 = _local8.join("\n"); }; return (_local1); } public function getScarceCount():int{ return (scarceCount[this.difficulty]); } public function getSize():Point{ return (this.size); } public function setLoseText(_arg1:String):void{ this.loseText = _arg1; } public function getZombieMultiplier():int{ return (zombieMultiplier[this.difficulty]); } public static function getDifficultyLimit():int{ return (difficultyText.length); } public static function getDifficultyNameS(_arg1:int):String{ return (difficultyText[_arg1]); } } }//package logic
Section 56
//Script (logic.Script) package logic { import ui.*; import flash.*; public class Script { protected var current:Array; protected var states:Hash; protected var sprite:ScriptView; public static var BUILD_SNIPER:int = 20; public static var CLICK_ADD_BOARDS:int = 42; public static var CLICK_SHOOT:int = 46; public static var ZOMBIE_HORDE_END:int = 33; public static var SELECT_DEPOT:int = 3; public static var CLICK_NEXT:int = 60; public static var BUILD_BARRICADE:int = 21; public static var SELECT_SNIPER:int = 1; public static var START_BUILD_BARRICADE:int = 11; public static var MOVE_WINDOW:int = 0; public static var CLICK_REMOVE_SURVIVORS:int = 45; public static var CLICK_HOLD_FIRE:int = 47; public static var COUNTDOWN_COMPLETE:int = 36; public static var DESTROY_BARRICADE:int = 25; public static var CLICK_UPGRADE:int = 48; public static var CLICK_ADD_AMMO:int = 40; public static var SELECT_BARRICADE:int = 2; public static var CANCEL_BUILD:int = 14; public static var CLICK_ADD_SURVIVORS:int = 44; public static var CLICK_REMOVE_BOARDS:int = 43; public static var CLICK_REMOVE_AMMO:int = 41; public static var DESTROY_WORKSHOP:int = 27; public static var BUILD_WORKSHOP:int = 23; public static var CREATE_TRADE_SOURCE:int = 30; public static var ZOMBIE_CLEAR:int = 34; public static var START_BUILD_SNIPER:int = 10; public static var CREATE_TRADE_DEST:int = 31; public static var ZOMBIE_HORDE_BEGIN:int = 32; public static var START_BUILD_DEPOT:int = 12; public static var SELECT_NOTHING:int = 5; public static var CLICK_FLEE:int = 49; public static var DESTROY_DEPOT:int = 26; public static var BUILD_DEPOT:int = 22; public static var DESTROY_SNIPER:int = 24; public static var START_BUILD_WORKSHOP:int = 13; public static var BRIDGE_CLEAR:int = 35; public static var SELECT_WORKSHOP:int = 4; public static var CLICK_SKIP:int = 61; public function Script(_arg1:ScriptView=null):void{ if (!Boot.skip_constructor){ this.sprite = _arg1; this.states = new Hash(); this.current = new Array(); this.sprite.setButtons(this.clickNext, this.clickSkip); this.sprite.update(this.current); }; } public function takeAction():void{ var _local1:int; var _local2:Array; var _local3:ScriptState; _local1 = 0; _local2 = this.current; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.takeAction(); }; } public function load(_arg1):void{ this.current = Load.loadArray(_arg1.current, this.loadState); } public function checkStates():Boolean{ var _local1:Boolean; var _local2:*; var _local3:ScriptState; _local1 = true; _local2 = this.states.iterator(); while (_local2.hasNext()) { _local3 = _local2.next(); _local1 = _local3.checkEdges(this.states); if (!_local1){ break; }; }; return (_local1); } protected function loadState(_arg1):ScriptState{ var _local2:String; _local2 = Std.string(_arg1); return (this.states.get(_local2)); } protected function clickSkip():void{ this.trigger(CLICK_SKIP); } public function addState(_arg1:ScriptState):void{ this.states.set(_arg1.getName(), _arg1); if (_arg1.getName() == "start"){ this.current.push(_arg1); this.sprite.update(this.current); }; } public function trigger(_arg1:int, _arg2:Point=null):void{ var _local3:int; var _local4:String; var _local5:ScriptState; _local3 = 0; while (_local3 < this.current.length) { _local4 = this.current[_local3].trigger(_arg1, _arg2); if (_local4 == null){ _local3++; } else { _local5 = this.states.get(_local4); if (_local5 != null){ this.current[_local3] = _local5; this.current[_local3].takeAction(); _local3++; } else { this.current.splice(_local3, 1); }; }; }; if (_arg1 == MOVE_WINDOW){ this.sprite.redraw(); } else { this.sprite.update(this.current); }; } public function addCurrentState(_arg1:String):void{ var _local2:ScriptState; _local2 = this.states.get(_arg1); if (_local2 != null){ this.current.push(_local2); _local2.takeAction(); }; } protected function clickNext():void{ this.trigger(CLICK_NEXT); } public function save(){ return ({current:Save.saveArray(this.current, Script.saveState)}); } public static function saveState(_arg1:ScriptState):String{ return (_arg1.getName()); } } }//package logic
Section 57
//ScriptAction (logic.ScriptAction) package logic { import ui.*; import action.*; import flash.*; public class ScriptAction implements Interface { protected var action:int; protected var arg:String; public static var WIN:int = 0; public static var HORDE:int = 3; public static var MOVE_MAP:int = 4; public static var COUNTDOWN:int = 2; public static var ADD_STATE:int = 5; public static var LOSE:int = 1; public function ScriptAction(_arg1:int=0, _arg2:String=null):void{ if (!Boot.skip_constructor){ this.action = _arg1; this.arg = _arg2; }; } public function run():void{ var _local1:String; var _local2:String; var _local3:*; var _local4:*; var _local5:Point; var _local6:Array; var _local7:*; var _local8:*; var _local9:Array; var _local10:*; var _local11:*; if (this.action == WIN){ _local1 = this.arg; if (_local1 == null){ _local1 = Text.mainWinText; }; Game.settings.setWinText(_local1); Game.endGame(GameOver.WIN); } else { if (this.action == LOSE){ _local2 = this.arg; if (_local2 == null){ _local2 = Text.mainLoseText; }; Game.settings.setLoseText(_local2); Game.endGame(GameOver.LOSE); } else { if (this.action == COUNTDOWN){ _local3 = Std._parseInt(this.arg); Game.spawner.startCountDown(_local3); } else { if (this.action == HORDE){ _local4 = null; _local5 = null; if (this.arg != null){ _local6 = this.arg.split(" "); if (_local6.length >= 1){ _local4 = Std._parseInt(_local6[0]); }; if (_local6.length >= 3){ _local7 = Std._parseInt(_local6[1]); _local8 = Std._parseInt(_local6[2]); if (((!((_local7 == null))) && (!((_local8 == null))))){ _local5 = new Point(_local7, _local8); }; }; }; Game.spawner.startHorde(_local4, _local5); } else { if (this.action == MOVE_MAP){ _local9 = this.arg.split(" "); if (_local9.length >= 2){ _local10 = Std._parseInt(_local9[0]); _local11 = Std._parseInt(_local9[1]); if (((!((_local10 == null))) && (!((_local11 == null))))){ Game.view.window.moveWindowCenter(_local10, _local11); }; }; } else { if (this.action == ADD_STATE){ Game.script.addCurrentState(this.arg); }; }; }; }; }; }; } } }//package logic
Section 58
//ScriptEdge (logic.ScriptEdge) package logic { import mapgen.*; import flash.*; public class ScriptEdge { protected var type:int; protected var next:String; protected var area:Section; public function ScriptEdge(_arg1:int=0, _arg2:Section=null, _arg3:String=null):void{ if (!Boot.skip_constructor){ this.type = _arg1; this.area = _arg2; this.next = _arg3; }; } public function trigger(_arg1:int, _arg2:Point):String{ var _local3:String; _local3 = null; if (_arg1 == this.type){ if ((((this.area == null)) || (((((!((this.area == null))) && (!((_arg2 == null))))) && (this.area.contains(_arg2)))))){ _local3 = this.next; }; }; return (_local3); } public function getNext():String{ return (this.next); } } }//package logic
Section 59
//ScriptParse (logic.ScriptParse) package logic { import mapgen.*; public class ScriptParse { protected static var stringToTransition:Hash = new Hash(); protected static var stringToButton:Hash = new Hash(); public static var defaultScript:String = " <script> <state name="start"> <action type="add-state" arg="countdown" /> <edge type="bridge-clear" next="bridge"/> <edge type="zombie-clear" next="zombie" /> </state> <state name="bridge"> <edge type="zombie-clear" next="bridge-zombie" /> </state> <state name="zombie"> <edge type="bridge-clear" next="bridge-zombie" /> <edge type="zombie-horde-begin" next="start" /> </state> <state name="bridge-zombie"> <action type="win" /> </state> <state name="countdown"> <action type="countdown" arg="150" /> <edge type="countdown-complete" next="horde" /> </state> <state name="horde"> <action type="horde" /> <edge type="zombie-horde-end" next="countdown" /> </state> </script> "; public static var editScript:String = "<script></script>"; protected static var stringToAction:Hash = new Hash(); public function ScriptParse():void{ } protected static function parseAction(_arg1:XML):ScriptAction{ var _local2:XMLList; var _local3:*; var _local4:String; var _local5:ScriptAction; _local2 = _arg1.attribute("type"); _local3 = stringToAction.get(Std.string(_local2)); _local4 = null; _local2 = _arg1.attribute("arg"); if (_local2.length() > 0){ _local4 = Std.string(_local2); } else { _local2 = _arg1.elements("arg"); if (_local2.length() > 0){ _local4 = Std.string(_local2); }; }; _local5 = new ScriptAction(_local3, _local4); return (_local5); } protected static function calculatePoint(_arg1:XMLList, _arg2:XMLList):Point{ var _local3:Point; var _local4:*; var _local5:*; _local3 = null; if ((((_arg1.length() > 0)) && ((_arg2.length() > 0)))){ _local4 = Std._parseInt(Std.string(_arg1)); _local5 = Std._parseInt(Std.string(_arg2)); if (((!((_local4 == null))) && (!((_local5 == null))))){ _local3 = new Point(_local4, _local5); }; }; return (_local3); } public static function init():void{ var _local1:Hash; var _local2:Hash; var _local3:Hash; _local1 = stringToTransition; _local1.set("move-window", Script.MOVE_WINDOW); _local1.set("select-sniper", Script.SELECT_SNIPER); _local1.set("select-barricade", Script.SELECT_BARRICADE); _local1.set("select-depot", Script.SELECT_DEPOT); _local1.set("select-workshop", Script.SELECT_WORKSHOP); _local1.set("select-nothing", Script.SELECT_NOTHING); _local1.set("start-build-sniper", Script.START_BUILD_SNIPER); _local1.set("start-build-barricade", Script.START_BUILD_BARRICADE); _local1.set("start-build-depot", Script.START_BUILD_DEPOT); _local1.set("start-build-workshop", Script.START_BUILD_WORKSHOP); _local1.set("cancel-build", Script.CANCEL_BUILD); _local1.set("build-sniper", Script.BUILD_SNIPER); _local1.set("build-barricade", Script.BUILD_BARRICADE); _local1.set("build-depot", Script.BUILD_DEPOT); _local1.set("build-workshop", Script.BUILD_WORKSHOP); _local1.set("destroy-sniper", Script.DESTROY_SNIPER); _local1.set("destroy-barricade", Script.DESTROY_BARRICADE); _local1.set("destroy-depot", Script.DESTROY_DEPOT); _local1.set("destroy-workshop", Script.DESTROY_WORKSHOP); _local1.set("create-trade-source", Script.CREATE_TRADE_SOURCE); _local1.set("create-trade-dest", Script.CREATE_TRADE_DEST); _local1.set("zombie-horde-begin", Script.ZOMBIE_HORDE_BEGIN); _local1.set("zombie-horde-end", Script.ZOMBIE_HORDE_END); _local1.set("zombie-clear", Script.ZOMBIE_CLEAR); _local1.set("bridge-clear", Script.BRIDGE_CLEAR); _local1.set("countdown-complete", Script.COUNTDOWN_COMPLETE); _local1.set("click-add-ammo", Script.CLICK_ADD_AMMO); _local1.set("click-remove-ammo", Script.CLICK_REMOVE_AMMO); _local1.set("click-add-boards", Script.CLICK_ADD_BOARDS); _local1.set("click-remove-boards", Script.CLICK_REMOVE_BOARDS); _local1.set("click-add-survivors", Script.CLICK_ADD_SURVIVORS); _local1.set("click-remove-survivors", Script.CLICK_REMOVE_SURVIVORS); _local1.set("click-shoot", Script.CLICK_SHOOT); _local1.set("click-hold-fire", Script.CLICK_HOLD_FIRE); _local1.set("click-upgrade", Script.CLICK_UPGRADE); _local1.set("click-flee", Script.CLICK_FLEE); _local1.set("click-next", Script.CLICK_NEXT); _local1.set("click-skip", Script.CLICK_SKIP); _local2 = stringToAction; _local2.set("win", ScriptAction.WIN); _local2.set("lose", ScriptAction.LOSE); _local2.set("countdown", ScriptAction.COUNTDOWN); _local2.set("horde", ScriptAction.HORDE); _local2.set("move-map", ScriptAction.MOVE_MAP); _local2.set("add-state", ScriptAction.ADD_STATE); _local3 = stringToButton; _local3.set("timer", ScriptState.TIMER); _local3.set("minimap", ScriptState.MINIMAP); _local3.set("system", ScriptState.SYSTEM); _local3.set("zombipedia", ScriptState.PEDIA); _local3.set("range", ScriptState.RANGE); _local3.set("build-sniper", ScriptState.BUILD_SNIPER); _local3.set("build-barricade", ScriptState.BUILD_BARRICADE); _local3.set("build-workshop", ScriptState.BUILD_WORKSHOP); _local3.set("build-depot", ScriptState.BUILD_DEPOT); _local3.set("depot-flee", ScriptState.DEPOT_FLEE); _local3.set("depot-resource", ScriptState.DEPOT_RESOURCE); _local3.set("barricade-increase", ScriptState.BARRICADE_INCREASE); _local3.set("barricade-decrease", ScriptState.BARRICADE_DECREASE); _local3.set("workshop-increase", ScriptState.WORKSHOP_INCREASE); _local3.set("workshop-decrease", ScriptState.WORKSHOP_DECREASE); _local3.set("workshop-flee", ScriptState.WORKSHOP_FLEE); _local3.set("workshop-extract", ScriptState.WORKSHOP_EXTRACT); _local3.set("sniper-shoot", ScriptState.SNIPER_SHOOT); _local3.set("sniper-hold-fire", ScriptState.SNIPER_HOLD_FIRE); _local3.set("sniper-upgrade", ScriptState.SNIPER_UPGRADE); _local3.set("sniper-flee", ScriptState.SNIPER_FLEE); _local3.set("sniper-resource", ScriptState.SNIPER_RESOURCE); _local3.set("sniper-increase-ammo", ScriptState.SNIPER_INCREASE_AMMO); _local3.set("sniper-increase-survivors", ScriptState.SNIPER_INCREASE_SURVIVORS); _local3.set("sniper-decrease-ammo", ScriptState.SNIPER_DECREASE_AMMO); _local3.set("sniper-decrease-survivors", ScriptState.SNIPER_DECREASE_SURVIVORS); _local3.set("depot-increase-ammo", ScriptState.DEPOT_INCREASE_AMMO); _local3.set("depot-decrease-ammo", ScriptState.DEPOT_DECREASE_AMMO); _local3.set("depot-increase-boards", ScriptState.DEPOT_INCREASE_BOARDS); _local3.set("depot-decrease-boards", ScriptState.DEPOT_DECREASE_BOARDS); _local3.set("depot-increase-survivors", ScriptState.DEPOT_INCREASE_SURVIVORS); _local3.set("depot-decrease-survivors", ScriptState.DEPOT_DECREASE_SURVIVORS); _local3.set("total-resources", ScriptState.TOTAL_RESOURCES); } public static function parse(_arg1:String, _arg2:Script):void{ var _local3:String; var _local4:XML; var _local5:XMLList; var _local6:int; var _local7:int; var _local8:Boolean; var _local9:int; var _local10:ScriptState; _local3 = _arg1; if (Game.settings.isEditor()){ _local3 = editScript; }; if (_local3 == null){ _local3 = defaultScript; }; _local4 = new XML(_local3); _local5 = _local4.child("state"); _local6 = 0; _local7 = _local5.length(); while (_local6 < _local7) { var _temp1 = _local6; _local6 = (_local6 + 1); _local9 = _temp1; _local10 = parseState(_local5[_local9]); _arg2.addState(_local10); }; _local8 = _arg2.checkStates(); if (!_local8){ Lib.trace("Failed sanity check"); }; } protected static function parseEdge(_arg1:XML):ScriptEdge{ var _local2:XMLList; var _local3:*; var _local4:Point; var _local5:Point; var _local6:Section; var _local7:String; var _local8:ScriptEdge; _local2 = _arg1.attribute("type"); _local3 = stringToTransition.get(Std.string(_local2)); _local4 = calculatePoint(_arg1.attribute("offsetX"), _arg1.attribute("offsetY")); _local5 = calculatePoint(_arg1.attribute("limitX"), _arg1.attribute("limitY")); if (((!((_local4 == null))) && ((_local5 == null)))){ _local5 = new Point((_local4.x + 1), (_local4.y + 1)); }; _local6 = null; if (_local4 != null){ _local6 = new Section(_local4, _local5); }; _local2 = _arg1.attribute("next"); _local7 = Std.string(_local2); _local8 = new ScriptEdge(_local3, _local6, _local7); return (_local8); } protected static function parseState(_arg1:XML):ScriptState{ var _local2:XMLList; var _local3:String; var _local4:String; var _local5:Point; var _local6:Boolean; var _local7:int; var _local8:ScriptState; var _local9:XMLList; var _local10:int; var _local11:int; var _local12:XMLList; var _local13:int; var _local14:int; var _local15:String; var _local16:int; var _local17:ScriptEdge; var _local18:int; var _local19:ScriptAction; _local2 = _arg1.attribute("name"); _local3 = Std.string(_local2); _local2 = _arg1.elements("text"); _local4 = null; if (_local2.length() > 0){ _local4 = Std.string(_local2); }; _local5 = calculatePoint(_arg1.attribute("posX"), _arg1.attribute("posY")); _local6 = false; _local2 = _arg1.child("next"); if (_local2.length() > 0){ _local6 = true; }; _local7 = ScriptState.NO_BUTTON; _local2 = _arg1.attribute("button"); if (_local2.length() > 0){ _local15 = Std.string(_local2); if (stringToButton.exists(_local15)){ _local7 = stringToButton.get(_local15); }; }; _local8 = new ScriptState(_local3, _local4, _local5, _local7, _local6); _local9 = _arg1.child("edge"); _local10 = 0; _local11 = _local9.length(); while (_local10 < _local11) { var _temp1 = _local10; _local10 = (_local10 + 1); _local16 = _temp1; _local17 = parseEdge(_local9[_local16]); _local8.addEdge(_local17); }; _local12 = _arg1.child("action"); _local13 = 0; _local14 = _local12.length(); while (_local13 < _local14) { var _temp2 = _local13; _local13 = (_local13 + 1); _local18 = _temp2; _local19 = parseAction(_local12[_local18]); _local8.addAction(_local19); }; return (_local8); } } }//package logic
Section 60
//ScriptState (logic.ScriptState) package logic { import ui.*; import flash.*; public class ScriptState { protected var buttonPos:int; protected var name:String; protected var mapPos:Point; protected var edges:Array; protected var text:String; protected var hasNext:Boolean; protected var actions:Array; public static var MINIMAP:int = 1; public static var BUILD_SNIPER:int = 5; public static var SNIPER_DECREASE_SURVIVORS:int = 25; public static var BUILD_BARRICADE:int = 6; public static var RANGE:int = 4; public static var WORKSHOP_FLEE:int = 15; public static var TIMER:int = 0; public static var WORKSHOP_EXTRACT:int = 16; public static var TOTAL_RESOURCES:int = 32; public static var SYSTEM:int = 2; public static var SNIPER_INCREASE_SURVIVORS:int = 23; public static var DEPOT_FLEE:int = 9; public static var SNIPER_UPGRADE:int = 19; public static var SNIPER_FLEE:int = 20; public static var SNIPER_SHOOT:int = 17; public static var DEPOT_INCREASE_AMMO:int = 26; public static var PEDIA:int = 3; public static var DEPOT_INCREASE_BOARDS:int = 28; public static var BARRICADE_DECREASE:int = 12; public static var WORKSHOP_DECREASE:int = 14; public static var BUILD_WORKSHOP:int = 7; public static var DEPOT_RESOURCE:int = 10; public static var SNIPER_INCREASE_AMMO:int = 22; public static var BUILD_DEPOT:int = 8; public static var DEPOT_DECREASE_AMMO:int = 27; public static var SNIPER_HOLD_FIRE:int = 18; public static var DEPOT_DECREASE_SURVIVORS:int = 31; public static var DEPOT_DECREASE_BOARDS:int = 29; public static var DEPOT_INCREASE_SURVIVORS:int = 30; public static var SNIPER_RESOURCE:int = 21; public static var NO_BUTTON:int = -1; public static var BARRICADE_INCREASE:int = 11; public static var WORKSHOP_INCREASE:int = 13; public static var SNIPER_DECREASE_AMMO:int = 24; public function ScriptState(_arg1:String=null, _arg2:String=null, _arg3:Point=null, _arg4:int=0, _arg5:Boolean=false):void{ if (!Boot.skip_constructor){ this.name = _arg1; this.text = _arg2; this.mapPos = _arg3; this.buttonPos = _arg4; this.hasNext = _arg5; this.edges = new Array(); this.actions = new Array(); }; } public function getName():String{ return (this.name); } public function shouldShowArrow():Boolean{ return (((!((this.mapPos == null))) || (!((this.buttonPos == NO_BUTTON))))); } public function takeAction():void{ var _local1:int; var _local2:Array; var _local3:ScriptAction; _local1 = 0; _local2 = this.actions; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; Game.actions.push(_local3); }; } public function getPos():Point{ var _local1:Point; var _local2:LayoutGame; _local1 = null; if (this.isMapPos()){ _local1 = this.mapPos; } else { if (this.buttonPos != NO_BUTTON){ _local1 = new Point(0, 0); _local2 = Game.view.layout; if (this.buttonPos == TIMER){ _local1.x = (_local2.countDownOffset.x + Math.floor((_local2.countDownSize.x / 2))); _local1.y = ((_local2.countDownOffset.y + _local2.countDownSize.y) - 30); } else { if (this.buttonPos == MINIMAP){ _local1.x = (_local2.miniOffset.x + Math.floor((_local2.miniSize.x / 2))); _local1.y = (_local2.miniOffset.y + _local2.miniSize.y); } else { if (this.buttonPos == SYSTEM){ _local1.x = (_local2.quickOffset.x + 30); _local1.y = ((_local2.quickOffset.y - 30) - 20); } else { if (this.buttonPos == PEDIA){ _local1.x = (_local2.quickOffset.x + 80); _local1.y = ((_local2.quickOffset.y - 30) - 20); } else { if (this.buttonPos == RANGE){ _local1.x = (_local2.quickOffset.x + 130); _local1.y = ((_local2.quickOffset.y - 30) - 20); } else { if (this.buttonPos == BUILD_SNIPER){ _local1.x = (_local2.buildMenuOffset.x + 43); _local1.y = ((_local2.buildMenuOffset.y - 106) - 20); } else { if (this.buttonPos == BUILD_BARRICADE){ _local1.x = (_local2.buildMenuOffset.x + 103); _local1.y = ((_local2.buildMenuOffset.y - 106) - 20); } else { if (this.buttonPos == BUILD_WORKSHOP){ _local1.x = (_local2.buildMenuOffset.x + 43); _local1.y = ((_local2.buildMenuOffset.y - 61) - 20); } else { if (this.buttonPos == BUILD_DEPOT){ _local1.x = (_local2.buildMenuOffset.x + 103); _local1.y = ((_local2.buildMenuOffset.y - 61) - 20); } else { if (this.buttonPos == DEPOT_FLEE){ _local1.x = ((_local2.sideMenuOffset.x + 370) - 15); _local1.y = ((_local2.sideMenuOffset.y + 520) - 15); } else { if (this.buttonPos == DEPOT_RESOURCE){ _local1.x = ((_local2.sideMenuOffset.x + 30) + 150); _local1.y = (_local2.sideMenuOffset.y + 525); } else { if (this.buttonPos == BARRICADE_INCREASE){ _local1.x = ((_local2.sideMenuOffset.x + 385) - 8); _local1.y = (_local2.sideMenuOffset.y + 538); } else { if (this.buttonPos == BARRICADE_DECREASE){ _local1.x = ((_local2.sideMenuOffset.x + 385) - 8); _local1.y = (_local2.sideMenuOffset.y + 558); } else { if (this.buttonPos == WORKSHOP_INCREASE){ _local1.x = ((_local2.sideMenuOffset.x + 375) - 8); _local1.y = (_local2.sideMenuOffset.y + 510); } else { if (this.buttonPos == WORKSHOP_DECREASE){ _local1.x = ((_local2.sideMenuOffset.x + 375) - 8); _local1.y = (_local2.sideMenuOffset.y + 530); } else { if (this.buttonPos == WORKSHOP_FLEE){ _local1.x = ((_local2.sideMenuOffset.x + 368) - 15); _local1.y = ((_local2.sideMenuOffset.y + 568) - 15); } else { if (this.buttonPos == WORKSHOP_EXTRACT){ _local1.x = ((_local2.sideMenuOffset.x + 183) + 30); _local1.y = ((_local2.sideMenuOffset.y + 515) - 15); } else { if (this.buttonPos == SNIPER_SHOOT){ _local1.x = ((_local2.sideMenuOffset.x + 320) - 15); _local1.y = ((_local2.sideMenuOffset.y + 463) - 15); } else { if (this.buttonPos == SNIPER_HOLD_FIRE){ _local1.x = ((_local2.sideMenuOffset.x + 365) - 15); _local1.y = ((_local2.sideMenuOffset.y + 463) - 15); } else { if (this.buttonPos == SNIPER_UPGRADE){ _local1.x = ((_local2.sideMenuOffset.x + 365) - 15); _local1.y = ((_local2.sideMenuOffset.y + 508) - 15); } else { if (this.buttonPos == SNIPER_FLEE){ _local1.x = ((_local2.sideMenuOffset.x + 365) - 15); _local1.y = ((_local2.sideMenuOffset.y + 568) - 15); } else { if (this.buttonPos == SNIPER_RESOURCE){ _local1.x = ((_local2.sideMenuOffset.x + 12) + 220); _local1.y = ((_local2.sideMenuOffset.y + 525) - 10); } else { if (this.buttonPos == SNIPER_INCREASE_AMMO){ _local1.x = (((_local2.sideMenuOffset.x + 12) + 159) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 45) - 8); } else { if (this.buttonPos == SNIPER_INCREASE_SURVIVORS){ _local1.x = (((_local2.sideMenuOffset.x + 12) + 219) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 45) - 8); } else { if (this.buttonPos == SNIPER_DECREASE_AMMO){ _local1.x = (((_local2.sideMenuOffset.x + 12) + 159) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 65) - 8); } else { if (this.buttonPos == SNIPER_DECREASE_SURVIVORS){ _local1.x = (((_local2.sideMenuOffset.x + 12) + 219) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 65) - 8); } else { if (this.buttonPos == DEPOT_INCREASE_AMMO){ _local1.x = (((_local2.sideMenuOffset.x + 30) + 104) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 45) - 8); } else { if (this.buttonPos == DEPOT_DECREASE_AMMO){ _local1.x = (((_local2.sideMenuOffset.x + 30) + 104) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 65) - 8); } else { if (this.buttonPos == DEPOT_INCREASE_BOARDS){ _local1.x = (((_local2.sideMenuOffset.x + 30) + 159) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 45) - 8); } else { if (this.buttonPos == DEPOT_DECREASE_BOARDS){ _local1.x = (((_local2.sideMenuOffset.x + 30) + 159) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 65) - 8); } else { if (this.buttonPos == DEPOT_INCREASE_SURVIVORS){ _local1.x = (((_local2.sideMenuOffset.x + 30) + 219) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 45) - 8); } else { if (this.buttonPos == DEPOT_DECREASE_SURVIVORS){ _local1.x = (((_local2.sideMenuOffset.x + 30) + 219) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 65) - 8); } else { if (this.buttonPos == TOTAL_RESOURCES){ _local1.x = _local2.totalResourceOffset.x; _local1.y = (_local2.totalResourceOffset.y + 40); }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; return (_local1); } public function isMapPos():Boolean{ return ((this.buttonPos == NO_BUTTON)); } public function shouldShowNext():Boolean{ return (this.hasNext); } public function shouldShowText():Boolean{ return (!((this.text == null))); } public function getText():String{ return (this.text); } public function checkEdges(_arg1:Hash):Boolean{ var _local2:Boolean; var _local3:int; var _local4:Array; var _local5:ScriptEdge; var _local6:String; var _local7:ScriptState; _local2 = true; _local3 = 0; _local4 = this.edges; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local6 = _local5.getNext(); if (_local6 != ""){ _local7 = _arg1.get(_local6); if (_local7 == null){ _local2 = false; break; }; }; }; return (_local2); } public function addAction(_arg1:ScriptAction):void{ this.actions.push(_arg1); } public function trigger(_arg1:int, _arg2:Point):String{ var _local3:String; var _local4:int; var _local5:Array; var _local6:ScriptEdge; _local3 = null; _local4 = 0; _local5 = this.edges; while (_local4 < _local5.length) { _local6 = _local5[_local4]; _local4++; _local3 = _local6.trigger(_arg1, _arg2); if (_local3 != null){ break; }; }; return (_local3); } public function addEdge(_arg1:ScriptEdge):void{ this.edges.push(_arg1); } } }//package logic
Section 61
//BlockApartment (mapgen.BlockApartment) package mapgen { import flash.*; public class BlockApartment extends BlockRoot { protected var baseLot:Section; protected var walkLot:Section; protected var parkingLot:Section; protected var doPlaceRubble:Boolean; protected var primaryCornerLot:Section; protected var secondaryCornerLot:Section; protected var primaryLot:Section; protected var secondaryDir:Direction; protected var primaryDir:Direction; protected var entranceLot:Section; protected var baseDir:Direction; protected var secondaryLot:Section; protected static var longs:Array = [[-1, -1, 903, 861], [-1, -1, 883, 921], [886, 928, -1, -1], [887, 925, -1, -1]]; protected static var tiling:int = 872; protected static var trees:Array = [[-1, -1, 922, 882], [-1, -1, 862, 902], [905, 907, -1, -1], [908, 906, -1, -1]]; protected static var shorts:Array = [[-1, -1, 924, 880], [-1, -1, 864, 900], [865, 947, -1, -1], [868, 946, -1, -1]]; protected static var entrances:Array = [[-1, -1, 923, 881], [-1, -1, 863, 901], [885, 927, -1, -1], [888, 926, -1, -1]]; protected static var corners:Array = [[-1, -1, 904, 860], [-1, -1, 884, 920], [866, 948, -1, -1], [867, 945, -1, -1]]; public function BlockApartment(_arg1:Direction=null, _arg2:Direction=null, _arg3:Direction=null, _arg4=null):void{ if (!Boot.skip_constructor){ this.baseDir = _arg1; this.primaryDir = _arg2; this.secondaryDir = _arg3; this.doPlaceRubble = true; if (_arg4 == false){ this.doPlaceRubble = false; }; }; } protected function setLots(_arg1:Section):void{ var _local2:int; var _local3:int; var _local4:Section; var _local5:Section; var _local6:Section; _local2 = 2; if (_arg1.dirSize(this.baseDir) > 5){ _local2 = 3; }; _local3 = 3; _local4 = _arg1; _local5 = _local4.slice(this.primaryDir, _local3); this.primaryCornerLot = _local5.slice(this.baseDir, _local2); this.primaryLot = _local5.remainder(this.baseDir, _local2); _local4 = _local4.remainder(this.primaryDir, _local3); this.secondaryLot = null; this.secondaryCornerLot = null; if (this.secondaryDir != null){ _local6 = _local4.slice(this.secondaryDir, _local3); this.secondaryCornerLot = _local6.slice(this.baseDir, _local2); this.secondaryLot = _local6.remainder(this.baseDir, _local2); _local4 = _local4.remainder(this.secondaryDir, _local3); }; this.baseLot = _local4.slice(this.baseDir, _local2); _local4 = _local4.remainder(this.baseDir, _local2); _local5 = _local4.slice(this.baseDir, 1); this.entranceLot = _local5.slice(this.primaryDir, 1); this.walkLot = _local5.remainder(this.primaryDir, 1); _local4 = _local4.remainder(this.baseDir, 1); this.parkingLot = _local4; } public function placeBuilding(_arg1:Section):Building{ var _local2:Building; this.setDirections(_arg1); this.setLots(_arg1); _local2 = this.placeApartment(); this.placeEntrance(); this.placeParking(); return (_local2); } protected function setDirections(_arg1:Section):void{ var _local2:Array; var _local3:int; var _local4:Array; if ((((this.baseDir == null)) || ((this.primaryDir == null)))){ _local2 = [[Direction.NORTH, Direction.SOUTH], [Direction.EAST, Direction.WEST]]; Util.shuffle(_local2); _local3 = 0; while (_local3 < _local2.length) { _local4 = _local2[_local3]; _local3++; Util.shuffle(_local4); }; this.baseDir = _local2[0][0]; this.primaryDir = _local2[1][0]; this.secondaryDir = _local2[1][1]; }; if (_arg1.dirSize(this.primaryDir) < 8){ this.secondaryDir = null; }; } override public function place(_arg1:Section):void{ this.placeBuilding(_arg1); } protected function placeEntrance():void{ var _local1:Point; var _local2:Point; var _local3:Point; var _local4:Point; var _local5:int; var _local6:int; _local1 = this.entranceLot.offset; _local2 = this.primaryLot.slice(this.baseDir, 1).slice(Util.opposite(this.primaryDir), 1).offset; _local3 = this.baseLot.slice(this.primaryDir, 1).slice(Util.opposite(this.baseDir), 1).offset; _local4 = this.primaryCornerLot.slice(Util.opposite(this.baseDir), 1).slice(Util.opposite(this.primaryDir), 1).offset; _local5 = Lib.directionToIndex(this.baseDir); _local6 = Lib.directionToIndex(this.primaryDir); Util.addTile(_local1, entrances[_local5][_local6]); Util.addTile(_local2, shorts[_local5][_local6]); Util.addTile(_local3, longs[_local5][_local6]); Util.addTile(_local4, corners[_local5][_local6]); Util.setArea(this.walkLot, this.placeWalkTile, new Point(_local5, _local6)); } protected function placeApartment():Building{ var _local1:Direction; var _local2:Array; var _local3:Building; var _local4:int; var _local5:BuildingApartment; var _local6:Array; var _local7:Section; _local1 = Util.opposite(this.baseDir); _local2 = [this.baseLot, this.primaryLot, this.primaryCornerLot, this.secondaryLot, this.secondaryCornerLot, this.entranceLot]; _local3 = new Building(Util.APARTMENT); _local4 = 0; while (_local4 < _local2.length) { _local7 = _local2[_local4]; _local4++; if (_local7 != null){ _local3.addLot(_local7); }; }; _local3.setEntrance(this.entranceLot.offset, _local1); Game.map.addBuilding(_local3); _local3.attach(); _local5 = new BuildingApartment(_local3); _local6 = [this.primaryDir]; if (this.secondaryDir != null){ _local6.push(this.secondaryDir); }; _local5.setDirs(_local6); _local5.place(this.baseLot); _local5.setDirs([this.baseDir]); _local5.place(this.primaryLot); _local5.setDirs([_local1, Util.opposite(this.primaryDir)]); _local5.place(this.primaryCornerLot); if (this.secondaryDir != null){ _local5.setDirs([this.baseDir]); _local5.place(this.secondaryLot); _local5.setDirs([_local1, Util.opposite(this.secondaryDir)]); _local5.place(this.secondaryCornerLot); }; return (_local3); } protected function placeParking():void{ var _local1:Building; var _local2:Section; var _local3:Point; var _local4:Point; _local1 = Util.createBuilding(this.parkingLot, Util.PARKING_LOT); _local2 = this.parkingLot.slice(Util.opposite(this.baseDir), 1); _local3 = _local2.getSize(); _local4 = new Point((_local2.offset.x + Math.floor((_local3.x / 2))), (_local2.offset.y + Math.floor((_local3.y / 2)))); _local1.setEntrance(_local4, Util.opposite(this.baseDir)); Util.drawBuilding(this.parkingLot, _local1, this.doPlaceRubble); } protected function placeWalkTile(_arg1:Point, _arg2:Point):void{ if (Util.rand(2) == 0){ Util.addTile(_arg1, trees[_arg2.x][_arg2.y]); Util.changeBlocked(_arg1, true); } else { Util.addTile(_arg1, tiling); Util.changeBlocked(_arg1, false); }; Util.setBackground(_arg1, BackgroundType.STREET); } } }//package mapgen
Section 62
//BlockChurch (mapgen.BlockChurch) package mapgen { import flash.*; public class BlockChurch extends BlockRoot { protected var fillGaps:Boolean; protected var primary:Direction; protected static var pathTiles:Array = [703, 707, 711, 715]; protected static var NORTH:int = 0; protected static var SOUTH:int = 1; protected static var WEST:int = 1; protected static var NEITHER:int = 2; protected static var parkCornerTiles:Array = [215, 216, 195, 196]; protected static var parkEdgeTiles:Array = [[68, 66, 67], [108, 106, 107], [88, 86, 87]]; protected static var parkCornerDelta:Array = [new Point(1, -1), new Point(-1, -1), new Point(1, 1), new Point(-1, 1)]; protected static var EAST:int = 0; public function BlockChurch(_arg1=null, _arg2:Direction=null):void{ if (!Boot.skip_constructor){ this.fillGaps = true; if (_arg1 == false){ this.fillGaps = false; }; this.primary = _arg2; }; } protected function isPark(_arg1:Point, _arg2:Direction):Boolean{ return (this.isParkDelta(_arg1, Lib.directionToDelta(_arg2))); } protected function isParkDelta(_arg1:Point, _arg2:Point):Boolean{ var _local3:MapCell; _local3 = Game.map.getCell((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return ((_local3.getBackground() == BackgroundType.PARK)); } protected function addPath(_arg1:Point, _arg2:Building):void{ var _local3:int; _local3 = Lib.directionToIndex(_arg2.getEntranceDir()); Util.addTile(_arg1, pathTiles[_local3]); } protected function addBlocked(_arg1:Point):void{ Util.addRandTile(_arg1, Tile.trees); Util.changeBlocked(_arg1, true); } protected function placeScenery(_arg1:Section, _arg2:Building):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:Point; _local3 = _arg1.offset.y; _local4 = _arg1.limit.y; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = _arg1.offset.x; _local7 = _arg1.limit.x; while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local8 = _temp2; _local9 = new Point(_local8, _local5); this.addPark(_local9); this.addOverlay(_local9, _arg2); }; }; } protected function findChurchDir(_arg1:Section, _arg2:Section):Direction{ var _local3:Direction; var _local4:int; var _local5:int; var _local6:int; var _local7:Direction; var _local8:int; _local3 = Direction.NORTH; _local4 = this.boxDiff(_arg1, _arg2, _local3); _local5 = 0; while (_local5 < 4) { var _temp1 = _local5; _local5 = (_local5 + 1); _local6 = _temp1; _local7 = Lib.indexToDirection(_local6); _local8 = this.boxDiff(_arg1, _arg2, _local7); if (_local8 > _local4){ _local3 = _local7; _local4 = _local8; }; }; return (_local3); } protected function placeChurch(_arg1:Section):Building{ var _local2:Section; var _local3:Direction; var _local4:Building; _local2 = this.findChurchLot(_arg1); _local3 = this.primary; if (_local3 == null){ _local3 = this.findChurchDir(_arg1, _local2); }; _local4 = Util.createBuilding(_local2, Util.CHURCH, _local3); Util.drawBuilding(_local2, _local4); return (_local4); } protected function boxDiff(_arg1:Section, _arg2:Section, _arg3:Direction):int{ var _local4:int; var _local5:enum; _local4 = 0; _local5 = _arg3; switch (_local5.index){ case 0: _local4 = (_arg2.offset.y - _arg1.offset.y); break; case 1: _local4 = (_arg1.limit.y - _arg2.limit.y); break; case 2: _local4 = (_arg1.limit.x - _arg2.limit.x); break; case 3: _local4 = (_arg2.offset.x - _arg1.offset.x); break; }; return (_local4); } protected function findChurchLot(_arg1:Section):Section{ var _local2:Section; var _local3:int; var _local4:int; _local2 = _arg1.randSublot(new Point(3, 3)); if ((((_local2.offset.x == (_arg1.offset.x + 1))) || ((_local2.limit.x == (_arg1.limit.x - 1))))){ _local3 = this.randAdjust(); _local2.offset.x = (_local2.offset.x + _local3); _local2.limit.x = (_local2.limit.x + _local3); }; if ((((_local2.offset.y == (_arg1.offset.y + 1))) || ((_local2.limit.y == (_arg1.limit.y - 1))))){ _local4 = this.randAdjust(); _local2.offset.y = (_local2.offset.y + _local4); _local2.limit.y = (_local2.limit.y + _local4); }; return (_local2); } protected function addPark(_arg1:Point):void{ var _local2:int; var _local3:int; var _local4:int; if (Game.map.getCell(_arg1.x, _arg1.y).getBackground() == BackgroundType.PARK){ _local2 = NEITHER; if (!this.isPark(_arg1, Direction.NORTH)){ _local2 = NORTH; } else { if (!this.isPark(_arg1, Direction.SOUTH)){ _local2 = SOUTH; }; }; _local3 = NEITHER; if (!this.isPark(_arg1, Direction.EAST)){ _local3 = EAST; } else { if (!this.isPark(_arg1, Direction.WEST)){ _local3 = WEST; }; }; _local4 = parkEdgeTiles[_local2][_local3]; if ((((_local2 == NEITHER)) && ((_local3 == NEITHER)))){ _local4 = this.getCornerPark(_arg1); }; Util.addTile(_arg1, _local4); }; } protected function randAdjust():int{ var _local1:int; var _local2:int; _local1 = 0; _local2 = Util.rand(2); if (_local2 == 0){ _local1 = 1; } else { _local1 = -1; }; return (_local1); } protected function getCornerPark(_arg1:Point):int{ var _local2:int; var _local3:int; var _local4:int; _local2 = 87; _local3 = 0; while (_local3 < 4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local4 = _temp1; if (!this.isParkDelta(_arg1, parkCornerDelta[_local4])){ _local2 = parkCornerTiles[_local4]; }; }; return (_local2); } override public function place(_arg1:Section):void{ this.placeBuilding(_arg1); } public function placeEditBox(_arg1:Section):Building{ var _local2:PlaceTerrain; var _local3:Section; var _local4:Building; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:Point; _local2 = new PlaceTerrain(); _local2.place(_arg1, PlaceTerrain.park); _local3 = _arg1.slice(Util.opposite(this.primary), 3); _local3 = _local3.randSublot(new Point(3, 3)); _local4 = Util.createBuilding(_local3, Util.CHURCH, this.primary); Util.drawBuilding(_local3, _local4); _local5 = _arg1.offset.y; _local6 = _arg1.limit.y; while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local7 = _temp1; _local8 = _arg1.offset.x; _local9 = _arg1.limit.x; while (_local8 < _local9) { var _temp2 = _local8; _local8 = (_local8 + 1); _local10 = _temp2; _local11 = new Point(_local10, _local7); this.addOverlay(_local11, _local4); }; }; return (_local4); } public function placeBuilding(_arg1:Section):Building{ var _local2:Building; Util.fillUnblocked(_arg1); Util.fillBackground(_arg1, BackgroundType.PARK); _local2 = this.placeChurch(_arg1); this.placeScenery(_arg1, _local2); if (this.fillGaps){ Util.fillBlockedGaps(_arg1); }; return (_local2); } protected function isPath(_arg1:Point, _arg2:Building):Boolean{ var _local3:Boolean; var _local4:Direction; var _local5:Point; var _local6:enum; _local3 = false; _local4 = _arg2.getEntranceDir(); _local5 = _arg2.getEntrance(); _local6 = _local4; switch (_local6.index){ case 0: _local3 = (((_arg1.x == _local5.x)) && ((_arg1.y < _local5.y))); break; case 1: _local3 = (((_arg1.x == _local5.x)) && ((_arg1.y > _local5.y))); break; case 2: _local3 = (((_arg1.x > _local5.x)) && ((_arg1.y == _local5.y))); break; case 3: _local3 = (((_arg1.x < _local5.x)) && ((_arg1.y == _local5.y))); break; }; return (_local3); } protected function addOverlay(_arg1:Point, _arg2:Building):void{ var _local3:BackgroundType; _local3 = Game.map.getCell(_arg1.x, _arg1.y).getBackground(); if (_local3 == BackgroundType.PARK){ if (this.isPath(_arg1, _arg2)){ this.addPath(_arg1, _arg2); } else { if (((this.fillGaps) && ((Util.rand(100) < 30)))){ this.addBlocked(_arg1); }; }; }; } } }//package mapgen
Section 63
//BlockHouses (mapgen.BlockHouses) package mapgen { public class BlockHouses extends BlockRoot { protected static var drivewayTiles:Array = [683, 687, 691, 695]; protected static var startOffsets:Array = [new Point(0, -1), new Point(1, 2), new Point(2, 0), new Point(-1, 1)]; public function BlockHouses():void{ } protected function middleLot(_arg1:Section):Section{ var _local2:Point; var _local3:Section; _local2 = _arg1.centerPoint(); _local3 = new Section(_local2, new Point((_local2.x + 2), (_local2.y + 2))); _local3.north = _arg1.north; _local3.south = _arg1.south; _local3.east = _arg1.east; _local3.west = _arg1.west; return (_local3); } override public function place(_arg1:Section):void{ var _local2:List; var _local3:*; var _local4:Section; var _local5:Section; var _local6:Building; Util.fillWithBorder(_arg1, Tile.parkTiles); Util.fillUnblocked(_arg1); Util.fillBackground(_arg1, BackgroundType.PARK); _local2 = new List(); Util.subdivide(_arg1, Option.minHouseSize, _local2); _local3 = _local2.iterator(); while (_local3.hasNext()) { _local4 = _local3.next(); _local5 = _local4.randSublot(new Point(Option.minHouseSize, Option.minHouseSize)); _local6 = Util.createBuilding(_local5, Util.HOUSE); Util.drawBuilding(_local5, _local6); addDriveway(_local5.offset, _local6.getEntranceDir(), _arg1); }; Util.fillBlockedGaps(_arg1); } protected static function addDriveway(_arg1:Point, _arg2:Direction, _arg3:Section):void{ var _local4:int; var _local5:Point; _local4 = Lib.directionToIndex(_arg2); _local5 = new Point((_arg1.x + startOffsets[_local4].x), (_arg1.y + startOffsets[_local4].y)); while (_arg3.contains(_local5)) { Util.addTile(_local5, drivewayTiles[_local4]); _local5.x = (_local5.x + Lib.directionToDelta(_arg2).x); _local5.y = (_local5.y + Lib.directionToDelta(_arg2).y); }; } public static function placeEditBox(_arg1:Section, _arg2:Direction, _arg3:Direction):Building{ var _local4:PlaceTerrain; var _local5:Section; var _local6:Building; _local4 = new PlaceTerrain(); _local4.place(_arg1, PlaceTerrain.park); _local5 = _arg1.slice(Util.opposite(_arg2), 2); _local5 = _local5.slice(Util.opposite(_arg3), 2); _local6 = Util.createBuilding(_local5, Util.HOUSE, _arg2); Util.drawBuilding(_local5, _local6); addDriveway(_local5.offset, _arg2, _arg1); return (_local6); } } }//package mapgen
Section 64
//BlockMall (mapgen.BlockMall) package mapgen { import flash.*; public class BlockMall extends BlockRoot { protected var primary:Direction; protected var vertTileLot:Section; protected var placeRubble:Boolean; protected var horizTileLot:Section; protected var secondary:Direction; protected static var horizDirs:Array = [Direction.EAST, Direction.WEST, Direction.EAST, Direction.WEST]; protected static var EDGE_CORNER:int = 0; protected static var EDGE_BEGIN:int = 1; protected static var EDGE_MIDDLE:int = 2; protected static var tileCornerTile:int = 746; protected static var vertCornerTile:Array = [748, 747, 808, 807]; protected static var edges:Array = [[746, 826, 827, 828], [746, 846, 847, 848], [746, 810, 830, 850], [746, 809, 829, 849]]; protected static var mallCornerTile:Array = [0x0300, 767, 788, 787]; protected static var EDGE_END:int = 3; protected static var tileTile:int = 746; protected static var vertDirs:Array = [Direction.NORTH, Direction.NORTH, Direction.SOUTH, Direction.SOUTH]; protected static var horizCornerTile:Array = [769, 766, 789, 786]; public function BlockMall(_arg1=null, _arg2:Direction=null, _arg3:Direction=null):void{ if (!Boot.skip_constructor){ this.placeRubble = true; if (_arg1 == false){ this.placeRubble = false; }; this.primary = _arg2; this.secondary = _arg3; }; } protected function setupTiles(_arg1:Section, _arg2:Direction, _arg3:Direction):Section{ var _local4:Section; _local4 = _arg1; this.horizTileLot = null; this.vertTileLot = null; if (_local4.getSize().x > 5){ this.horizTileLot = _local4.slice(Util.opposite(_arg2), 1); _local4 = _local4.slice(_arg2, (_local4.getSize().x - 1)); }; if (_local4.getSize().y > 5){ this.vertTileLot = _local4.slice(Util.opposite(_arg3), 1); _local4 = _local4.slice(_arg3, (_local4.getSize().y - 1)); }; return (_local4); } override public function place(_arg1:Section):void{ this.placeBuilding(_arg1); } protected function placeEdgeTiles(_arg1:Section, _arg2:Direction, _arg3:Point):void{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; if (_arg1 != null){ Util.fillClearTiles(_arg1); Util.fillUnblocked(_arg1); Util.fillBackground(_arg1, BackgroundType.STREET); _local4 = Lib.directionToIndex(_arg2); _local5 = _arg1.offset.y; _local6 = _arg1.limit.y; while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local7 = _temp1; _local8 = _arg1.offset.x; _local9 = _arg1.limit.x; while (_local8 < _local9) { var _temp2 = _local8; _local8 = (_local8 + 1); _local10 = _temp2; _local11 = this.findEdgeIndex(_local10, _local7, _arg1, _arg2, _arg3); Util.addTile(new Point(_local10, _local7), edges[_local4][_local11]); }; }; }; } protected function placeParkingLots(_arg1:Section, _arg2:int, _arg3:Direction, _arg4:Direction):Section{ var _local5:Section; var _local6:Direction; var _local7:Direction; var _local8:int; var _local9:int; var _local10:Section; var _local11:Section; var _local12:Section; var _local13:Section; var _local14:Section; _local5 = _arg1; _local6 = null; _local7 = null; if (_arg1.getSize().x > _arg1.getSize().y){ _local6 = _arg4; _local7 = _arg3; } else { _local6 = _arg3; _local7 = _arg4; }; _local5 = this.placeParkingStrip(_local5, _local6, _local7, true, this.getParkingSize(_arg1.dirSize(_local6)), this.getParkingSize(_arg1.dirSize(_local7))); _local5 = this.placeParkingStrip(_local5, _local7, _local6, false, this.getParkingSize(_arg1.dirSize(_local7)), this.getParkingSize(_arg1.dirSize(_local6))); _local8 = this.getParkingSize(_arg1.getSize().x); _local9 = this.getParkingSize(_arg1.getSize().y); if ((((_local8 == 2)) && ((_local9 == 2)))){ _local10 = _arg1.slice(Util.opposite(_local6), this.getParkingSize(_arg1.dirSize(_local6))); _local11 = _local10.slice(Util.opposite(_local7), 2); _local12 = _local11.slice(_local7, 1); _local12 = _local12.slice(_local6, 1); _local13 = _local11.slice(Util.opposite(_local7), 1); _local14 = _local13.slice(_local6, 1); _local13 = _local13.slice(Util.opposite(_local6), 1); PlaceParkingLot.fixCorner(_local12, _local13, _local14, PlaceRoot.oppositeCorner(_arg2), (_local6 == _arg4)); }; return (_local5); } protected function getCornerIndex(_arg1:Direction, _arg2:Direction):int{ var _local3:int; _local3 = PlaceRoot.NORTHEAST; if ((((_arg2 == Direction.NORTH)) && ((_arg1 == Direction.WEST)))){ _local3 = PlaceRoot.NORTHWEST; } else { if ((((_arg2 == Direction.SOUTH)) && ((_arg1 == Direction.EAST)))){ _local3 = PlaceRoot.SOUTHEAST; } else { if ((((_arg2 == Direction.SOUTH)) && ((_arg1 == Direction.WEST)))){ _local3 = PlaceRoot.SOUTHWEST; }; }; }; return (_local3); } public function placeBuilding(_arg1:Section):Building{ var _local2:Direction; var _local3:Direction; var _local4:int; var _local5:Section; var _local6:Building; _local2 = this.primary; _local3 = this.secondary; if ((((this.primary == Direction.NORTH)) || ((this.primary == Direction.SOUTH)))){ _local2 = this.secondary; _local3 = this.primary; }; _local4 = 0; if ((((this.primary == null)) || ((this.secondary == null)))){ _local4 = Util.rand(4); _local2 = horizDirs[_local4]; _local3 = vertDirs[_local4]; } else { _local4 = PlaceRoot.lessCorner(_local2); if (_local3 == Direction.SOUTH){ _local4 = PlaceRoot.greaterCorner(_local2); }; }; _local5 = _arg1; _local5 = this.placeParkingLots(_local5, _local4, _local2, _local3); _local5 = this.setupTiles(_local5, _local2, _local3); _local6 = this.placeMall(_local5, _local2, _local3); this.placeTiles(_local5, _local6, _local2, _local3); return (_local6); } protected function findEdgeIndex(_arg1:int, _arg2:int, _arg3:Section, _arg4:Direction, _arg5:Point):int{ var _local6:int; _local6 = EDGE_CORNER; if ((((Lib.intAbs((_arg1 - _arg5.x)) <= 1)) && ((Lib.intAbs((_arg2 - _arg5.y)) <= 1)))){ if ((((_arg4 == Direction.NORTH)) || ((_arg4 == Direction.SOUTH)))){ _local6 = this.edgeEntranceIndex(_arg1, _arg5.x); } else { _local6 = this.edgeEntranceIndex(_arg2, _arg5.y); }; } else { if ((((_arg4 == Direction.NORTH)) || ((_arg4 == Direction.SOUTH)))){ _local6 = this.edgeNormalIndex(_arg1, _arg3.offset.x, _arg3.limit.x); } else { _local6 = this.edgeNormalIndex(_arg2, _arg3.offset.y, _arg3.limit.y); }; }; return (_local6); } protected function getParkingSize(_arg1:int):int{ if (_arg1 <= 6){ return (0); }; if (_arg1 <= 9){ return (2); }; return (3); } protected function placeParkingStrip(_arg1:Section, _arg2:Direction, _arg3:Direction, _arg4:Boolean, _arg5:int, _arg6:int):Section{ var _local7:Section; var _local8:int; var _local9:Section; var _local10:PlaceParkingLot; var _local11:List; var _local12:Section; var _local13:Section; var _local14:Section; var _local15:Section; var _local16:Section; var _local17:Section; _local7 = _arg1; _local8 = _arg1.dirSize(_arg2); if (_arg5 > 0){ _local9 = _local7.slice(Util.opposite(_arg2), _arg5); _local7 = _local7.slice(_arg2, (_local8 - _arg5)); _local10 = new PlaceParkingLot(); _local11 = new List(); if (_arg6 > 0){ if (_arg4){ _local12 = _local9.slice(Util.opposite(_arg3), 2); _local12 = _local12.slice(_arg3, 1); _local12 = _local12.slice(_arg2, 1); _local11.add(_local12.offset); } else { if (_arg5 == 3){ _local13 = _local9.slice(Util.opposite(_arg3), 1); _local13 = _local13.slice(_arg2, 2); _local13 = _local13.slice(Util.opposite(_arg2), 1); _local11.add(_local13.offset); } else { if (_arg5 == 2){ _local9 = _local9.slice(_arg3, (_local9.dirSize(_arg3) + 1)); }; }; }; }; if (_arg5 == 3){ _local14 = _local9.slice(_arg3, 1); _local14 = _local14.slice(_arg2, 2); _local14 = _local14.slice(Util.opposite(_arg2), 1); _local11.add(_local14.offset); PlaceParkingLot.addCrossStreet(_local14, _local14.offset, _arg3, CrossStreet.PARKING_ENTRANCE); } else { _local15 = _local9.slice(_arg3, 1); _local16 = _local15.slice(_arg2, 1); _local11.add(_local16.offset); _local17 = _local15.slice(Util.opposite(_arg2), 1); _local11.add(_local17.offset); if ((((_local16.offset.x < _local17.offset.x)) || ((_local16.offset.y < _local17.offset.y)))){ PlaceParkingLot.addCrossStreet(_local16, _local16.offset, _arg3, CrossStreet.BEGIN_PARKING_ENTRANCE); PlaceParkingLot.addCrossStreet(_local17, _local17.offset, _arg3, CrossStreet.END_PARKING_ENTRANCE); } else { PlaceParkingLot.addCrossStreet(_local16, _local16.offset, _arg3, CrossStreet.END_PARKING_ENTRANCE); PlaceParkingLot.addCrossStreet(_local17, _local17.offset, _arg3, CrossStreet.BEGIN_PARKING_ENTRANCE); }; }; _local10.place(_local9, _local11, this.placeRubble, _arg2); }; return (_local7); } protected function edgeNormalIndex(_arg1:int, _arg2:int, _arg3:int):int{ if (_arg1 == _arg2){ return (EDGE_BEGIN); }; if (_arg1 == (_arg3 - 1)){ return (EDGE_END); }; return (EDGE_MIDDLE); } protected function placeMall(_arg1:Section, _arg2:Direction, _arg3:Direction):Building{ var _local4:Array; var _local5:Direction; var _local6:Building; _local4 = [_arg2, _arg3]; _local5 = Util.opposite(_local4[Util.rand(2)]); if (this.primary != null){ _local5 = Util.opposite(this.primary); }; _local6 = Util.createBuilding(_arg1, Util.MALL, _local5); Util.drawBuilding(_arg1, _local6); return (_local6); } protected function placeTiles(_arg1:Section, _arg2:Building, _arg3:Direction, _arg4:Direction):void{ var _local5:int; var _local6:Section; var _local7:Section; var _local8:Section; var _local9:Section; var _local10:Section; this.placeEdgeTiles(this.horizTileLot, Util.opposite(_arg3), _arg2.getEntrance()); this.placeEdgeTiles(this.vertTileLot, Util.opposite(_arg4), _arg2.getEntrance()); if (((!((this.horizTileLot == null))) && (!((this.vertTileLot == null))))){ _local5 = this.getCornerIndex(Util.opposite(_arg3), Util.opposite(_arg4)); _local6 = _arg1; _local6 = _local6.slice(Util.opposite(_arg3), 1); _local6 = _local6.slice(Util.opposite(_arg4), 1); Util.addTile(_local6.offset, mallCornerTile[_local5]); _local7 = this.horizTileLot.slice(Util.opposite(_arg4), 2); _local8 = _local7.slice(Util.opposite(_arg4), 1); Util.addTile(_local8.offset, tileCornerTile); _local9 = _local7.slice(_arg4, 1); Util.addTile(_local9.offset, horizCornerTile[_local5]); _local10 = this.vertTileLot.slice(Util.opposite(_arg3), 1); Util.addTile(_local10.offset, vertCornerTile[_local5]); }; } protected function edgeEntranceIndex(_arg1:int, _arg2:int):int{ if (_arg1 < _arg2){ return (EDGE_END); }; if (_arg1 > _arg2){ return (EDGE_BEGIN); }; return (EDGE_CORNER); } } }//package mapgen
Section 65
//BlockPark (mapgen.BlockPark) package mapgen { import flash.*; public class BlockPark extends BlockRoot { protected var addTrees:Boolean; public function BlockPark(_arg1=null):void{ if (!Boot.skip_constructor){ this.addTrees = true; if (_arg1 == false){ this.addTrees = false; }; }; } override public function place(_arg1:Section):void{ Util.fillWithBorder(_arg1, Tile.parkTiles); Util.fillUnblocked(_arg1); Util.fillBackground(_arg1, BackgroundType.PARK); if (this.addTrees){ Util.blockRandom(_arg1, [Tile.trees, Tile.rocks, Tile.lakes], [3, 1, 1]); Util.fillBlockedGaps(_arg1); }; } } }//package mapgen
Section 66
//BlockRoot (mapgen.BlockRoot) package mapgen { public class BlockRoot extends PlaceRoot { public function place(_arg1:Section):void{ } } }//package mapgen
Section 67
//BlockStandard (mapgen.BlockStandard) package mapgen { public class BlockStandard extends BlockRoot { public function BlockStandard():void{ } override public function place(_arg1:Section):void{ var _local2:List; var _local3:*; var _local4:Section; var _local5:Building; _local2 = new List(); Util.subdivide(_arg1, Option.minGenericSize, _local2); _local3 = _local2.iterator(); while (_local3.hasNext()) { _local4 = _local3.next(); _local5 = Util.createBuilding(_local4); Util.drawBuilding(_local4, _local5); }; } } }//package mapgen
Section 68
//BuildingApartment (mapgen.BuildingApartment) package mapgen { import flash.*; public class BuildingApartment extends BuildingRoot { protected var dirs:Array; protected static var middle:int = 963; protected static var EXTENDS_BOTH:int = 3; protected static var STOPS:int = 0; protected static var EXTENDS_HORIZ:int = 1; protected static var EXTENDS_VERT:int = 2; protected static var EXTENDS:int = 1; protected static var edges:Array = [[943, 963], [983, 963], [964, 963], [962, 963]]; protected static var corners:Array = [[944, 943, 964, 960], [942, 943, 962, 961], [984, 983, 964, 940], [982, 983, 962, 941]]; public function BuildingApartment(_arg1:Building=null):void{ if (!Boot.skip_constructor){ super(_arg1); this.dirs = []; }; } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ var _local6:int; _local6 = STOPS; if (this.doesExtend(PlaceRoot.cornerToVert(_arg2))){ _local6 = (_local6 | EXTENDS_VERT); }; if (this.doesExtend(PlaceRoot.cornerToHoriz(_arg2))){ _local6 = (_local6 | EXTENDS_HORIZ); }; Util.addTile(_arg1, corners[_arg2][_local6]); } override protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ var _local5:int; _local5 = STOPS; if (this.doesExtend(Lib.indexToDirection(_arg2))){ _local5 = EXTENDS; }; Util.fillAddTile(_arg1, edges[_arg2][_local5]); } public function setDirs(_arg1:Array):void{ this.dirs = _arg1; } protected function doesExtend(_arg1:Direction):Boolean{ var _local2:Boolean; var _local3:int; var _local4:Array; var _local5:Direction; _local2 = false; _local3 = 0; _local4 = this.dirs; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; if (_arg1 == _local5){ _local2 = true; }; }; return (_local2); } override protected function placeMiddle(_arg1:Section, _arg2:int):void{ Util.fillAddTile(_arg1, middle); } } }//package mapgen
Section 69
//BuildingChurch (mapgen.BuildingChurch) package mapgen { import flash.*; public class BuildingChurch extends BuildingRoot { protected static var center:Array = [701, 705, 709, 713]; protected static var edges:Array = [[723, 685, 689, 693], [721, 727, 729, 733], [702, 706, 731, 714], [700, 704, 708, 735]]; protected static var corners:Array = [[682, 686, 690, 694], [680, 684, 688, 692], [722, 726, 730, 734], [720, 724, 728, 732]]; public function BuildingChurch(_arg1:Building=null):void{ if (!Boot.skip_constructor){ super(_arg1); }; } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ Util.addTile(_arg1, corners[_arg2][this.getDir()]); } override protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ Util.addTile(_arg1.offset, edges[_arg2][this.getDir()]); } protected function getDir():int{ return (Lib.directionToIndex(this.building.getEntranceDir())); } override protected function placeMiddle(_arg1:Section, _arg2:int):void{ Util.addTile(_arg1.offset, center[this.getDir()]); } } }//package mapgen
Section 70
//BuildingFringe (mapgen.BuildingFringe) package mapgen { import flash.*; public class BuildingFringe extends BuildingRoot { protected static var ROAD:int = 1; protected static var start:int = 320; protected static var colors:Array = [0, 5, 10]; protected static var FRINGE:int = 0; protected static var BUILDING:int = 2; protected static var corner:Array = [[[4, 64, 104, 4], [1, 4, 4, 4], [61, 4, 4, 4], [4, 4, 4, 4]], [[2, 62, 102, 2], [0, 2, 2, 2], [60, 2, 2, 2], [2, 2, 2, 2]], [[44, 84, 124, 44], [41, 44, 44, 44], [101, 44, 44, 44], [44, 44, 44, 44]], [[42, 82, 122, 42], [40, 42, 42, 42], [100, 42, 42, 42], [42, 42, 42, 42]]]; protected static var ENTRANCE:int = 3; protected static var center:int = 23; protected static var edge:Array = [[63, 3, 3, 103], [83, 43, 43, 123], [21, 24, 24, 81], [20, 22, 22, 80]]; public function BuildingFringe(_arg1:Building=null):void{ if (!Boot.skip_constructor){ super(_arg1); }; } override protected function getColorCount():int{ return (colors.length); } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ var _local6:int; var _local7:int; var _local8:int; _local6 = BUILDING; if (this.building.getEntrance().y == _arg1.y){ _local6 = FRINGE; } else { if (_arg3 != null){ _local6 = ROAD; }; }; _local7 = BUILDING; if (this.building.getEntrance().x == _arg1.x){ _local7 = FRINGE; } else { if (_arg4 != null){ _local7 = ROAD; }; }; _local8 = ((BuildingFringe.start + colors[_arg5]) + corner[_arg2][_local6][_local7]); Util.addTile(_arg1, _local8); if (((!((_local6 == FRINGE))) && (!((_local7 == FRINGE))))){ Util.addRoofOverlay(_arg1, Tile.cornerRoof); }; } override protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:Point; var _local13:int; _local5 = BUILDING; if (_arg1.contains(this.building.getEntrance())){ _local5 = FRINGE; } else { if (_arg3 != null){ _local5 = ROAD; }; }; _local6 = _arg1.offset.y; _local7 = _arg1.limit.y; while (_local6 < _local7) { var _temp1 = _local6; _local6 = (_local6 + 1); _local8 = _temp1; _local9 = _arg1.offset.x; _local10 = _arg1.limit.x; while (_local9 < _local10) { var _temp2 = _local9; _local9 = (_local9 + 1); _local11 = _temp2; _local12 = new Point(_local11, _local8); _local13 = Tile.NO_TILE; if (Point.isEqual(_local12, this.building.getEntrance())){ _local13 = ((BuildingFringe.start + colors[_arg4]) + edge[_arg2][ENTRANCE]); } else { _local13 = ((BuildingFringe.start + colors[_arg4]) + edge[_arg2][_local5]); }; Util.addTile(_local12, _local13); if (_local5 != FRINGE){ Util.addRoofOverlay(_local12, Tile.edgeRoof[_arg2]); }; }; }; } override protected function placeMiddle(_arg1:Section, _arg2:int):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; _local3 = ((BuildingFringe.start + colors[_arg2]) + center); Util.fillAddTile(_arg1, _local3); _local4 = _arg1.offset.y; _local5 = _arg1.limit.y; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; _local7 = _arg1.offset.x; _local8 = _arg1.limit.x; while (_local7 < _local8) { var _temp2 = _local7; _local7 = (_local7 + 1); _local9 = _temp2; Util.addRoofOverlay(new Point(_local9, _local6), Tile.centerRoof); }; }; } } }//package mapgen
Section 71
//BuildingGeneric (mapgen.BuildingGeneric) package mapgen { import flash.*; public class BuildingGeneric extends BuildingRoot { public function BuildingGeneric(_arg1:Building=null):void{ if (!Boot.skip_constructor){ super(_arg1); }; } override public function place(_arg1:Section):void{ var _local2:Array; var _local3:int; _local2 = [new BuildingFringe(this.building), new BuildingPlant(this.building)]; _local3 = Util.rand(_local2.length); _local2[_local3].place(_arg1); } } }//package mapgen
Section 72
//BuildingHardware (mapgen.BuildingHardware) package mapgen { import flash.*; public class BuildingHardware extends BuildingRoot { protected var orientation:int; protected static var signCorners:Array = [[876, 877], [878, 879], [839, 859], [838, 858]]; protected static var lumberEdges:Array = [[699, 739], [719, 759], [612, 749], [632, 806]]; protected static var corners:Array = [[752, 758, 755, 698], [750, 756, 753, 696], [792, 798, 795, 738], [790, 796, 793, 736]]; protected static var entrance:Array = [779, 799, 819, 818]; protected static var LUMBER:int = 4; protected static var lumberCorners:Array = [659, 658, 679, 678]; protected static var edges:Array = [[751, 757, 754, 697], [791, 797, 794, 737], [772, 778, 775, 718], [770, 776, 773, 716]]; protected static var signMiddle:Array = [[851, 852, 853], [873, 874, 875], [815, 835, 855], [814, 834, 854]]; protected static var centers:Array = [0x0303, 777, 774, 717]; public function BuildingHardware(_arg1:Building=null):void{ if (!Boot.skip_constructor){ super(_arg1); this.orientation = 0; }; } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ var _local6:Direction; var _local7:Direction; var _local8:Direction; var _local9:Direction; var _local10:int; Util.addTile(_arg1, corners[_arg2][this.orientation]); _local6 = PlaceRoot.cornerToVert(_arg2); _local7 = PlaceRoot.cornerToHoriz(_arg2); _local8 = this.building.getEntranceDir(); _local9 = null; if (_local6 == _local8){ _local9 = _local7; } else { if (_local7 == _local8){ _local9 = _local6; }; }; if (_local9 != null){ _local10 = -1; if ((((_local9 == Direction.NORTH)) || ((_local9 == Direction.WEST)))){ _local10 = signCorners[Lib.directionToIndex(_local8)][0]; } else { _local10 = signCorners[Lib.directionToIndex(_local8)][1]; }; Util.addTile(_arg1, _local10); }; } override protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ Util.fillAddTile(_arg1, edges[_arg2][this.orientation]); if (Lib.indexToDirection(_arg2) == this.building.getEntranceDir()){ Util.addTile(this.building.getEntrance(), entrance[_arg2]); Util.fillAddTile(_arg1, signMiddle[_arg2][Util.rand(3)]); }; } override public function place(_arg1:Section):void{ var _local2:Direction; var _local3:Section; var _local4:Direction; var _local5:Section; super.setupMap(_arg1); _local2 = this.building.getEntranceDir(); this.orientation = Lib.directionToIndex(_local2); _local3 = _arg1.slice(_local2, 3); this.setupTiles(_local3); _local4 = Util.opposite(_local2); _local5 = _arg1.slice(_local4, (_arg1.dirSize(_local4) - 3)); while (_local5.dirSize(_local4) > 0) { _local5 = this.placeLumber(_local5, _local4); }; } protected function placeLumber(_arg1:Section, _arg2:Direction):Section{ var _local3:Section; var _local4:Section; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; _local3 = _arg1.slice(Util.opposite(_arg2), (_arg1.dirSize(_arg2) - 1)); _local4 = _arg1.slice(_arg2, 1); _local5 = Lib.directionToIndex(_arg2); _local6 = _local4.offset.y; _local7 = _local4.limit.y; while (_local6 < _local7) { var _temp1 = _local6; _local6 = (_local6 + 1); _local8 = _temp1; _local9 = _local4.offset.x; _local10 = _local4.limit.x; while (_local9 < _local10) { var _temp2 = _local9; _local9 = (_local9 + 1); _local11 = _temp2; _local12 = Util.rand(2); Util.addTile(new Point(_local11, _local8), lumberEdges[_local5][_local12]); }; }; Util.addTile(_local4.offset, lumberCorners[PlaceRoot.lessCorner(_arg2)]); Util.addTile(new Point((_local4.limit.x - 1), (_local4.limit.y - 1)), lumberCorners[PlaceRoot.greaterCorner(_arg2)]); return (_local3); } override protected function placeMiddle(_arg1:Section, _arg2:int):void{ Util.fillAddTile(_arg1, centers[this.orientation]); } } }//package mapgen
Section 73
//BuildingHospital (mapgen.BuildingHospital) package mapgen { import flash.*; public class BuildingHospital extends BuildingRoot { protected static var ROAD_BOTH:int = 1; protected static var ROAD_NONE_EDGE:int = 0; protected static var BEFORE_ENTRANCE:int = 1; protected static var ROAD_BOTH_VERT:int = 0; protected static var center:int = 243; protected static var edges:Array = [[[226, 223], [283, 283], [284, 284], [285, 285]], [[266, 263], [303, 303], [304, 304], [305, 305]], [[247, 244], [241, 241], [261, 261], [281, 281]], [[245, 242], [240, 240], [260, 260], [280, 280]]]; protected static var overlay:int = 228; protected static var AFTER_ENTRANCE:int = 3; protected static var ROAD_BOTH_EDGE:int = 1; protected static var ROAD_BOTH_HORIZ:int = 1; protected static var ROAD_VERT:int = 2; protected static var BUILDING:int = 0; protected static var ENTRANCE:int = 2; protected static var ROAD_NONE:int = 0; protected static var ROAD_HORIZ:int = 3; protected static var corners:Array = [[[227, 224, 286, 221], [-1, 252, -1, 292], [-1, -1, -1, -1], [288, -1, 290, -1]], [[225, 222, 282, 220], [287, 251, 289, 291], [-1, -1, -1, -1], [-1, -1, -1, -1]], [[267, 264, 306, 301], [-1, -1, -1, -1], [-1, -1, -1, -1], [308, 272, 310, 312]], [[265, 262, 302, 300], [307, -1, 309, -1], [-1, -1, -1, -1], [-1, 271, -1, 311]]]; public function BuildingHospital(_arg1:Building=null):void{ if (!Boot.skip_constructor){ super(_arg1); }; } protected function getNextEdgeType(_arg1:Point, _arg2:int):int{ var _local3:int; _local3 = BUILDING; if (_arg2 == BEFORE_ENTRANCE){ _local3 = ENTRANCE; } else { if (_arg2 == ENTRANCE){ _local3 = AFTER_ENTRANCE; } else { if ((((_arg2 == BUILDING)) && (Point.isAdjacent(_arg1, this.building.getEntrance())))){ _local3 = BEFORE_ENTRANCE; }; }; }; return (_local3); } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ var _local6:int; var _local7:int; _local6 = ROAD_NONE; if (((!((_arg3 == null))) && (!((_arg4 == null))))){ _local6 = ROAD_BOTH; } else { if (_arg3 != null){ _local6 = ROAD_VERT; } else { if (_arg4 != null){ _local6 = ROAD_HORIZ; }; }; }; _local7 = BUILDING; if (Point.isVerticallyAdjacent(_arg1, this.building.getEntrance())){ if (_local6 == ROAD_BOTH){ _local6 = ROAD_BOTH_HORIZ; } else { _local6 = ROAD_HORIZ; }; if ((((_arg2 == PlaceRoot.NORTHWEST)) || ((_arg2 == PlaceRoot.NORTHEAST)))){ _local7 = BEFORE_ENTRANCE; } else { _local7 = AFTER_ENTRANCE; }; } else { if (Point.isHorizontallyAdjacent(_arg1, this.building.getEntrance())){ if (_local6 == ROAD_BOTH){ _local6 = ROAD_BOTH_VERT; } else { _local6 = ROAD_VERT; }; if ((((_arg2 == PlaceRoot.NORTHWEST)) || ((_arg2 == PlaceRoot.SOUTHWEST)))){ _local7 = BEFORE_ENTRANCE; } else { _local7 = AFTER_ENTRANCE; }; }; }; Util.addTile(_arg1, corners[_arg2][_local7][_local6]); } override protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:Point; _local5 = ROAD_NONE_EDGE; _local6 = BUILDING; if (Point.isEqual(_arg1.offset, this.building.getEntrance())){ _local6 = BEFORE_ENTRANCE; }; if (_arg3 != null){ _local5 = ROAD_BOTH_EDGE; }; _local7 = _arg1.offset.y; _local8 = _arg1.limit.y; while (_local7 < _local8) { var _temp1 = _local7; _local7 = (_local7 + 1); _local9 = _temp1; _local10 = _arg1.offset.x; _local11 = _arg1.limit.x; while (_local10 < _local11) { var _temp2 = _local10; _local10 = (_local10 + 1); _local12 = _temp2; _local13 = new Point(_local12, _local9); _local6 = this.getNextEdgeType(_local13, _local6); Util.addTile(_local13, edges[_arg2][_local6][_local5]); }; }; } override protected function placeOverlay(_arg1:Point):void{ var _local2:Point; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; _local2 = new Point((_arg1.x - 1), (_arg1.y - 1)); _local3 = 0; while (_local3 < 3) { var _temp1 = _local3; _local3 = (_local3 + 1); _local4 = _temp1; _local5 = 0; while (_local5 < 3) { var _temp2 = _local5; _local5 = (_local5 + 1); _local6 = _temp2; _local7 = ((BuildingHospital.overlay + (_local4 * Tile.X_COUNT)) + _local6); Util.addTile(new Point((_local2.x + _local6), (_local2.y + _local4)), _local7); }; }; } override protected function placeMiddle(_arg1:Section, _arg2:int):void{ Util.fillAddTile(_arg1, center); } } }//package mapgen
Section 74
//BuildingHouse (mapgen.BuildingHouse) package mapgen { import flash.*; public class BuildingHouse extends BuildingRoot { protected static var colors:Array = [600, 604]; protected static var corner:Array = [[1, 3, 41, 43], [0, 2, 40, 42], [21, 23, 61, 63], [20, 22, 60, 62]]; public function BuildingHouse(_arg1:Building=null):void{ if (!Boot.skip_constructor){ super(_arg1); }; } override protected function getColorCount():int{ return (colors.length); } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ var _local6:int; _local6 = Lib.directionToIndex(this.building.getEntranceDir()); Util.addTile(_arg1, (corner[_arg2][_local6] + colors[_arg5])); } } }//package mapgen
Section 75
//BuildingMall (mapgen.BuildingMall) package mapgen { import flash.*; public class BuildingMall extends BuildingRoot { protected var center:Point; protected static var BEGIN:int = 1; protected static var centerTiles:Array = [[761, 762, 763, 764, 761], [781, 782, 783, 784, 781], [801, 802, 803, 804, 801], [821, 822, 823, 824, 821], [761, 762, 763, 764, 761]]; protected static var MIDDLE:int = 2; protected static var END:int = 3; protected static var AFTER:int = 4; protected static var edges:Array = [[741, 742, 743, 744, 741], [841, 842, 843, 844, 841], [765, 785, 805, 825, 765], [760, 780, 800, 820, 760]]; protected static var corners:Array = [745, 740, 845, 840]; protected static var BEFORE:int = 0; public function BuildingMall(_arg1:Building=null, _arg2:Section=null):void{ var _local3:Point; var _local4:Point; var _local5:Point; var _local6:int; var _local7:int; if (!Boot.skip_constructor){ super(_arg1); this.center = new Point(0, 0); _local3 = _arg2.offset; _local4 = _arg2.limit; _local5 = _arg1.getEntrance(); if ((((_local5.x > _local3.x)) && ((_local5.x < (_local4.x - 1))))){ this.center.x = _local5.x; } else { _local6 = ((_local4.x - _local3.x) - 4); this.center.x = ((Util.rand(_local6) + _local3.x) + 2); }; if ((((_local5.y > _local3.y)) && ((_local5.y < (_local4.y - 1))))){ this.center.y = _local5.y; } else { _local7 = ((_local4.y - _local3.y) - 4); this.center.y = ((Util.rand(_local7) + _local3.y) + 2); }; }; } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ Util.addTile(_arg1, corners[_arg2]); } override protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; _local5 = _arg1.offset.y; _local6 = _arg1.limit.y; while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local7 = _temp1; _local8 = _arg1.offset.x; _local9 = _arg1.limit.x; while (_local8 < _local9) { var _temp2 = _local8; _local8 = (_local8 + 1); _local10 = _temp2; _local11 = 0; if ((((_arg2 == PlaceRoot.NORTH)) || ((_arg2 == PlaceRoot.SOUTH)))){ _local11 = this.findIndex(_local10, this.center.x); } else { _local11 = this.findIndex(_local7, this.center.y); }; Util.addTile(new Point(_local10, _local7), edges[_arg2][_local11]); }; }; } protected function findIndex(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; _local3 = BEFORE; _local4 = (_arg1 - _arg2); if (_local4 < -1){ _local3 = BEFORE; } else { if (_local4 == -1){ _local3 = BEGIN; } else { if (_local4 == 0){ _local3 = MIDDLE; } else { if (_local4 == 1){ _local3 = END; } else { _local3 = AFTER; }; }; }; }; return (_local3); } override protected function placeMiddle(_arg1:Section, _arg2:int):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; _local3 = _arg1.offset.y; _local4 = _arg1.limit.y; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = _arg1.offset.x; _local7 = _arg1.limit.x; while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local8 = _temp2; _local9 = this.findIndex(_local8, this.center.x); _local10 = this.findIndex(_local5, this.center.y); Util.addTile(new Point(_local8, _local5), centerTiles[_local10][_local9]); }; }; } } }//package mapgen
Section 76
//BuildingPlant (mapgen.BuildingPlant) package mapgen { import flash.*; public class BuildingPlant extends BuildingRoot { protected var ignoreStreets:Boolean; protected static var edgeWeights:Array = [1, 0, 1, 1, 0, 0, 6]; protected static var END_SHRUB:int = 1; protected static var WIDE_ENTRANCE:int = 5; protected static var colors:Array = [0, 5, 10]; protected static var SIMPLE:int = 6; protected static var SINGLE_SHRUB:int = 3; protected static var BEGIN_SHRUB:int = 0; protected static var edges:Array = [[522, 523, 524, 562, 563, 564, 463], [542, 543, 544, 582, 583, 584, 503], [461, 481, 501, 521, 541, 561, 484], [460, 480, 500, 520, 540, 560, 482]]; protected static var center:int = 483; protected static var NARROW_ENTRANCE:int = 4; protected static var DOUBLE_SHRUB:int = 2; protected static var corners:Array = [464, 462, 504, 502]; public function BuildingPlant(_arg1:Building=null, _arg2=null):void{ if (!Boot.skip_constructor){ super(_arg1); this.ignoreStreets = false; if (_arg2 == true){ this.ignoreStreets = true; }; }; } override protected function getColorCount():int{ return (colors.length); } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ Util.addTile(_arg1, (corners[_arg2] + colors[_arg5])); Util.addRoofOverlay(_arg1, Tile.cornerRoof); } override protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:Point; var _local13:Boolean; var _local14:int; _local5 = SIMPLE; _local6 = _arg1.offset.y; _local7 = _arg1.limit.y; while (_local6 < _local7) { var _temp1 = _local6; _local6 = (_local6 + 1); _local8 = _temp1; _local9 = _arg1.offset.x; _local10 = _arg1.limit.x; while (_local9 < _local10) { var _temp2 = _local9; _local9 = (_local9 + 1); _local11 = _temp2; _local12 = new Point(_local11, _local8); _local13 = (((_local8 == (_arg1.limit.y - 1))) && ((_local11 == (_arg1.limit.x - 1)))); _local5 = this.findEdge(_local12, this.building.getEntrance(), _local5, _arg3, _local13); _local14 = (edges[_arg2][_local5] + colors[_arg4]); Util.addTile(_local12, _local14); if (_local5 == SIMPLE){ Util.addRoofOverlay(_local12, Tile.edgeRoof[_arg2]); }; }; }; } override protected function placeMiddle(_arg1:Section, _arg2:int):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; Util.fillAddTile(_arg1, (BuildingPlant.center + colors[_arg2])); _local3 = _arg1.offset.y; _local4 = _arg1.limit.y; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = _arg1.offset.x; _local7 = _arg1.limit.x; while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local8 = _temp2; Util.addRoofOverlay(new Point(_local8, _local5), Tile.centerRoof); }; }; } protected function findEdge(_arg1:Point, _arg2:Point, _arg3:int, _arg4:Street, _arg5:Boolean):int{ var _local6:int; _local6 = SIMPLE; if (Point.isEqual(_arg1, _arg2)){ _local6 = (BuildingPlant.NARROW_ENTRANCE + Util.rand(2)); } else { if (_arg3 == BEGIN_SHRUB){ _local6 = END_SHRUB; } else { if ((((_arg3 == NARROW_ENTRANCE)) || ((((_arg3 == WIDE_ENTRANCE)) && (((!((_arg4 == null))) || (this.ignoreStreets))))))){ _local6 = Util.randWeightedIndex(edgeWeights); if (_local6 != BEGIN_SHRUB){ _local6 = SIMPLE; }; } else { if (Point.isAdjacent(_arg1, _arg2)){ _local6 = SIMPLE; } else { if ((((_arg3 == SIMPLE)) && (((!((_arg4 == null))) || (this.ignoreStreets))))){ _local6 = Util.randWeightedIndex(edgeWeights); } else { _local6 = SIMPLE; }; }; }; }; }; if (((_arg5) && ((_local6 == BEGIN_SHRUB)))){ _local6 = SIMPLE; }; return (_local6); } } }//package mapgen
Section 77
//BuildingPolice (mapgen.BuildingPolice) package mapgen { import flash.*; public class BuildingPolice extends BuildingRoot { protected var baseDir:Direction; protected var currentLevel:int; protected var placeRubble:Boolean; protected var legDir:Direction; protected var currentEndings:Array; protected static var FLOOR_1:int = 1; protected static var centers:Array = [-1, 890, 991]; protected static var GROUND:int = 0; protected static var edges:Array = [[[-1, -1, -1], [870, 890, 890], [1014, 971, 991]], [[-1, -1, -1], [910, 890, 890], [974, 1011, 991]], [[-1, -1, -1], [891, 890, 890], [993, 992, 991]], [[-1, -1, -1], [889, 890, 890], [995, 990, 991]]]; protected static var walkTile:int = 872; protected static var helipad:Array = [[967, 968], [987, 988]]; protected static var entrances:Array = [[-1, -1, 952, 953], [-1, -1, 932, 933], [952, 932, -1, -1], [953, 933, -1, -1]]; protected static var corners:Array = [[[[-1, -1, -1], [-1, -1, -1], [-1, -1, -1]], [[871, 870, 870], [891, 950, 950], [891, 950, 950]], [[935, 893, 1014], [895, 897, 958], [993, 918, 1013]]], [[[-1, -1, -1], [-1, -1, -1], [-1, -1, -1]], [[869, 870, 870], [889, 951, 951], [889, 951, 951]], [[934, 892, 1014], [894, 896, 959], [995, 919, 1015]]], [[[-1, -1, -1], [-1, -1, -1], [-1, -1, -1]], [[911, 910, 910], [891, 930, 930], [891, 930, 930]], [[955, 913, 974], [915, 917, 938], [993, 898, 973]]], [[[-1, -1, -1], [-1, -1, -1], [-1, -1, -1]], [[909, 910, 910], [889, 931, 931], [889, 931, 931]], [[954, 912, 974], [914, 916, 939], [995, 899, 975]]]]; protected static var FLOOR_2:int = 2; public function BuildingPolice(_arg1:Building=null, _arg2=null, _arg3:Direction=null, _arg4:Direction=null):void{ if (!Boot.skip_constructor){ super(_arg1); this.placeRubble = true; if (_arg2 == false){ this.placeRubble = false; }; this.baseDir = _arg3; this.legDir = _arg4; }; } override protected function placeMiddle(_arg1:Section, _arg2:int):void{ Util.fillAddTile(_arg1, centers[this.currentLevel]); } protected function placePolice(_arg1:Section, _arg2:Section, _arg3:Section):void{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:Array; _local4 = Lib.directionToIndex(Util.opposite(this.legDir)); _local5 = Lib.directionToIndex(Util.opposite(this.baseDir)); _local6 = Util.rand((_arg2.dirSize(this.baseDir) + 1)); _local7 = Util.rand((_arg3.dirSize(this.legDir) + 1)); _local8 = this.placeLeg(_arg3, _local7, this.legDir); _local9 = this.placeLeg(_arg2, _local6, this.baseDir); _local10 = [GROUND, GROUND, GROUND, GROUND]; _local10[_local4] = _local8; _local10[_local5] = _local9; this.placePoliceSection(_arg1, FLOOR_2, _local10); this.placeHelipad(_arg1); } protected function placeLeg(_arg1:Section, _arg2:int, _arg3:Direction):int{ var _local4:int; var _local5:int; var _local6:Section; var _local7:Section; var _local8:int; var _local9:int; var _local10:Array; var _local11:Array; _local4 = Lib.directionToIndex(_arg3); _local5 = Lib.directionToIndex(Util.opposite(_arg3)); _local6 = _arg1.slice(_arg3, _arg2); _local7 = _arg1.remainder(_arg3, _arg2); _local8 = GROUND; if (_arg2 < _arg1.dirSize(_arg3)){ _local8 = FLOOR_1; _local10 = [GROUND, GROUND, GROUND, GROUND]; _local10[_local4] = FLOOR_2; this.placePoliceSection(_local7, _local8, _local10); }; if (_arg2 > 0){ _local11 = [GROUND, GROUND, GROUND, GROUND]; _local11[_local4] = FLOOR_2; _local11[_local5] = _local8; this.placePoliceSection(_local6, FLOOR_2, _local11); }; _local9 = FLOOR_2; if (_arg2 == 0){ _local9 = FLOOR_1; }; return (_local9); } override public function place(_arg1:Section):void{ this.setDirections(_arg1); this.divideAndPlace(_arg1); this.building.attach(); } protected function divideAndPlace(_arg1:Section):void{ var _local2:int; var _local3:Section; var _local4:Section; var _local5:Section; var _local6:Section; var _local7:Direction; var _local8:Direction; _local2 = 2; _local3 = _arg1.slice(this.baseDir, _local2); _local4 = _arg1.remainder(this.baseDir, _local2); _local5 = _local3.slice(this.legDir, _local2); _local3 = _local3.remainder(this.legDir, _local2); _local6 = _local4.slice(this.legDir, _local2); _local4 = _local4.remainder(this.legDir, _local2); this.placePolice(_local5, _local6, _local3); _local7 = this.baseDir; _local8 = this.legDir; if (_local4.dirSize(this.legDir) > _local4.dirSize(this.baseDir)){ _local7 = this.legDir; _local8 = this.baseDir; }; this.placeOutside(_local4, _local7, _local8); } protected function placeHelipad(_arg1:Section):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; _local2 = 0; while (_local2 < 2) { var _temp1 = _local2; _local2 = (_local2 + 1); _local3 = _temp1; _local4 = 0; while (_local4 < 2) { var _temp2 = _local4; _local4 = (_local4 + 1); _local5 = _temp2; Util.addTile(new Point((_arg1.offset.x + _local5), (_arg1.offset.y + _local3)), helipad[_local3][_local5]); }; }; } protected function placeEntrance(_arg1:Section):void{ var _local2:int; var _local3:int; _local2 = Lib.directionToIndex(this.baseDir); _local3 = Lib.directionToIndex(this.legDir); Util.fillAddTile(_arg1, entrances[_local2][_local3]); Util.fillBackground(_arg1, BackgroundType.ENTRANCE); Util.fillUnblocked(_arg1); this.building.addLot(_arg1); this.building.setEntrance(_arg1.offset, Util.opposite(this.baseDir)); } protected function placeOutside(_arg1:Section, _arg2:Direction, _arg3:Direction):void{ var _local4:Section; var _local5:Section; var _local6:Section; _local4 = _arg1.slice(_arg2, 1); _local5 = _arg1.remainder(_arg2, 1); _local6 = _local4.slice(_arg3, 1); _local4 = _local4.remainder(_arg3, 1); this.placeWalk(_local4); this.placeParking(_local5); this.placeEntrance(_local6); } protected function placePoliceSection(_arg1:Section, _arg2:int, _arg3:Array):void{ var _local4:Direction; var _local5:int; this.currentEndings = _arg3; this.currentLevel = _arg2; this.setupMap(_arg1); if ((((_arg1.dirSize(this.baseDir) > 1)) && ((_arg1.dirSize(this.legDir) > 1)))){ this.setupTiles(_arg1); } else { _local4 = this.legDir; if (_arg1.dirSize(this.baseDir) == 1){ _local4 = this.baseDir; }; if (this.getEnd(_local4) != GROUND){ _local4 = Util.opposite(_local4); }; _local5 = PlaceRoot.lessCorner(_local4); this.placeCorner(_arg1.corner(_local5), _local5, null, null, 0); _local5 = PlaceRoot.greaterCorner(_local4); this.placeCorner(_arg1.corner(_local5), _local5, null, null, 0); this.placeEdge(_arg1.edge(_local4), Lib.directionToIndex(_local4), null, 0); }; this.building.addLot(_arg1); } override protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ var _local5:int; _local5 = this.currentEndings[_arg2]; Util.fillAddTile(_arg1, edges[_arg2][this.currentLevel][_local5]); } protected function getEnd(_arg1:Direction):int{ return (this.currentEndings[Lib.directionToIndex(_arg1)]); } protected function setDirections(_arg1:Section):void{ var _local2:Array; var _local3:int; var _local4:Array; var _local5:Direction; if ((((this.baseDir == null)) || ((this.legDir == null)))){ _local2 = []; _local3 = 0; _local4 = Lib.directions; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; if (_arg1.getStreet(_local5) != null){ _local2.push(_local5); }; }; if (_local2.length == 0){ _local2 = Lib.directions.copy(); }; this.baseDir = Util.opposite(_local2[Util.rand(_local2.length)]); this.legDir = Lib.rotateCW(this.baseDir); if (Util.rand(2) == 0){ this.legDir = Lib.rotateCCW(this.baseDir); }; }; } protected function placeWalk(_arg1:Section):void{ Util.fillAddTile(_arg1, walkTile); Util.fillBackground(_arg1, BackgroundType.STREET); Util.fillUnblocked(_arg1); } protected function placeParking(_arg1:Section):void{ var _local2:Building; if ((((_arg1.dirSize(this.baseDir) > 1)) && ((_arg1.dirSize(this.legDir) > 1)))){ _local2 = Util.createBuilding(_arg1, Util.PARKING_LOT); Util.drawBuilding(_arg1, _local2, this.placeRubble); } else { this.placeWalk(_arg1); }; } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ var _local6:Direction; var _local7:int; var _local8:Direction; var _local9:int; var _local10:int; _local6 = PlaceRoot.cornerToVert(_arg2); _local7 = this.getEnd(_local6); _local8 = PlaceRoot.cornerToHoriz(_arg2); _local9 = this.getEnd(_local8); _local10 = corners[_arg2][this.currentLevel][_local7][_local9]; Util.addTile(_arg1, _local10); } } }//package mapgen
Section 78
//BuildingRoot (mapgen.BuildingRoot) package mapgen { import flash.*; public class BuildingRoot extends PlaceRoot { protected var building:Building; public function BuildingRoot(_arg1:Building=null):void{ if (!Boot.skip_constructor){ this.building = _arg1; }; } protected function getColorCount():int{ return (1); } protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ } protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ } public function place(_arg1:Section):void{ this.setupMap(_arg1); this.setupTiles(_arg1); } protected function setupTiles(_arg1:Section):void{ var _local2:int; var _local3:Direction; var _local4:Direction; var _local5:Direction; var _local6:Direction; _local2 = Util.rand(this.getColorCount()); this.placeCorner(_arg1.northwest(), PlaceRoot.NORTHWEST, _arg1.north, _arg1.west, _local2); this.placeCorner(_arg1.northeast(), PlaceRoot.NORTHEAST, _arg1.north, _arg1.east, _local2); this.placeCorner(_arg1.southwest(), PlaceRoot.SOUTHWEST, _arg1.south, _arg1.west, _local2); this.placeCorner(_arg1.southeast(), PlaceRoot.SOUTHEAST, _arg1.south, _arg1.east, _local2); _local3 = Direction.NORTH; _local4 = Direction.SOUTH; _local5 = Direction.EAST; _local6 = Direction.WEST; this.placeEdge(_arg1.edge(_local3), PlaceRoot.NORTH, _arg1.north, _local2); this.placeEdge(_arg1.edge(_local4), PlaceRoot.SOUTH, _arg1.south, _local2); this.placeEdge(_arg1.edge(_local5), PlaceRoot.EAST, _arg1.east, _local2); this.placeEdge(_arg1.edge(_local6), PlaceRoot.WEST, _arg1.west, _local2); this.placeMiddle(_arg1.center(), _local2); this.placeOverlay(_arg1.centerPoint()); } protected function placeOverlay(_arg1:Point):void{ } protected function placeMiddle(_arg1:Section, _arg2:int):void{ } protected function setupMap(_arg1:Section):void{ var _local2:Point; Util.fillBackground(_arg1, BackgroundType.BUILDING); Util.fillBlocked(_arg1); _local2 = this.building.getEntrance(); if (_local2 != null){ Util.setBackground(_local2, BackgroundType.ENTRANCE); Util.changeBlocked(_local2, false); }; } } }//package mapgen
Section 79
//CrossStreet (mapgen.CrossStreet) package mapgen { public class CrossStreet extends enum { public static const __isenum:Boolean = true; public static var ROAD:CrossStreet = new CrossStreet("ROAD", 4); ; public static var END_PARKING_ENTRANCE:CrossStreet = new CrossStreet("END_PARKING_ENTRANCE", 1); ; public static var BEGIN_PARKING_ENTRANCE:CrossStreet = new CrossStreet("BEGIN_PARKING_ENTRANCE", 0); ; public static var ALLEY:CrossStreet = new CrossStreet("ALLEY", 3); ; public static var NONE:CrossStreet = new CrossStreet("NONE", 5); ; public static var __constructs__:Array = ["BEGIN_PARKING_ENTRANCE", "END_PARKING_ENTRANCE", "PARKING_ENTRANCE", "ALLEY", "ROAD", "NONE"]; public static var PARKING_ENTRANCE:CrossStreet = new CrossStreet("PARKING_ENTRANCE", 2); ; public function CrossStreet(_arg1:String, _arg2:int, _arg3:Array=null):void{ this.tag = _arg1; this.index = _arg2; this.params = _arg3; } } }//package mapgen
Section 80
//Division (mapgen.Division) package mapgen { import logic.*; import flash.*; public class Division { protected var middle:Street; protected var left:Section; protected var minBuildingSize:int; protected var right:Section; public function Division(_arg1:int=0):void{ if (!Boot.skip_constructor){ this.left = null; this.right = null; this.middle = null; this.minBuildingSize = _arg1; }; } public function getRight():Section{ return (this.right); } public function getBottom():Section{ return (this.right); } public function getMiddle():Street{ return (this.middle); } protected function randSplit(_arg1:int, _arg2:int, _arg3:int):int{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; _local4 = (((_arg2 - _arg1) - (2 * this.minBuildingSize)) - _arg3); _local5 = 0; if (Game.settings.getEasterEgg() == GameSettings.SALTLAKECITY){ _local5 = Math.floor((_local4 / 2)); } else { _local6 = Math.floor((_local4 / _arg3)); _local7 = ((_local4 % _arg3) + _arg3); _local8 = 0; while (_local8 < _arg3) { var _temp1 = _local8; _local8 = (_local8 + 1); _local9 = _temp1; _local5 = (_local5 + Util.rand(_local6)); }; _local5 = (_local5 + Util.rand(_local7)); }; return (((_local5 + _arg1) + this.minBuildingSize)); } public function split(_arg1:Section, _arg2:int):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; this.left = null; this.right = null; this.middle = null; _local3 = (_arg2 + (this.minBuildingSize * 2)); _local4 = (_arg1.limit.x - _arg1.offset.x); _local5 = (_arg1.limit.y - _arg1.offset.y); if ((((((_local4 <= _local5)) && ((_local5 >= _local3)))) && (((((!((_arg1.west == null))) || (!((_arg1.east == null))))) || (((!((_arg1.north == null))) && (!((_arg1.south == null))))))))){ this.left = _arg1.clone(); this.right = _arg1.clone(); _local6 = this.randSplit(_arg1.offset.y, _arg1.limit.y, _arg2); if (_arg2 > 0){ this.middle = new Street(new Point(_arg1.offset.x, _local6), _arg2, (_arg1.limit.x - _arg1.offset.x), false, _arg1.west, _arg1.east); }; this.left.limit.y = _local6; this.left.south = this.middle; this.right.offset.y = (_local6 + _arg2); this.right.north = this.middle; } else { if ((((_local4 >= _local3)) && (((((!((_arg1.north == null))) || (!((_arg1.south == null))))) || (((!((_arg1.east == null))) && (!((_arg1.west == null))))))))){ this.left = _arg1.clone(); this.right = _arg1.clone(); _local7 = this.randSplit(_arg1.offset.x, _arg1.limit.x, _arg2); if (_arg2 > 0){ this.middle = new Street(new Point(_local7, _arg1.offset.y), _arg2, (_arg1.limit.y - _arg1.offset.y), true, _arg1.north, _arg1.south); }; this.left.limit.x = _local7; this.left.east = this.middle; this.right.offset.x = (_local7 + _arg2); this.right.west = this.middle; }; }; } public function getLeft():Section{ return (this.left); } public function getTop():Section{ return (this.left); } } }//package mapgen
Section 81
//EditBox (mapgen.EditBox) package mapgen { import logic.*; import flash.utils.*; import ui.*; import action.*; import feature.*; import flash.*; public class EditBox { protected var primary:Direction; protected var street:Street; protected var zombies:int; protected var bridge:Bridge; protected var resources:Array; protected var isBroken:Boolean; protected var building:Building; protected var entrance:Point; protected var isSpawnPoint:Boolean; protected var type:EditType; protected var lot:Section; protected var isBridge:Boolean; protected var color:int; protected var isBreakable:Boolean; protected var hasTwoEnds:Boolean; protected var secondary:Direction; protected var dynamitePos:Point; public static var HOUSE:EditType = new EditType(38, 2, Text.editHouse); public static var STREET:EditType = new EditType(9, 1, Text.editStreet); public static var BRIDGE:EditType = new EditType(8, 3, Text.editBridge); public static var PARKING_LOT:EditType = new EditType(3, 2, Text.editParking); public static var STREET_H:EditType = new EditType(1, 1, Text.editStreetH); public static var FRINGE:EditType = new EditType(32, 3, Text.editFringe); public static var INTERSECTION:EditType = new EditType(11, 1, Text.editIntersection); public static var APARTMENT:EditType = new EditType(36, 5, Text.editApartment); public static var MALL:EditType = new EditType(39, 5, Text.editMall); public static var STREET_V:EditType = new EditType(2, 1, Text.editStreetV); public static var POLICE:EditType = new EditType(40, 3, Text.editPolice); public static var CHURCH:EditType = new EditType(37, 3, Text.editChurch); public static var UNKNOWN:EditType = new EditType(0, 1, Text.editUnknown); public static var PLAZA:EditType = new EditType(5, 1, Text.editPlaza); public static var BUILDING_END:int = POLICE.number; public static var HOSPITAL:EditType = new EditType(35, 3, Text.editHospital); public static var BUILDING_BEGIN:int = FRINGE.number; public static var PLANT:EditType = new EditType(33, 3, Text.editPlant); public static var CORNER:EditType = new EditType(10, 1, Text.editCorner); public static var DEEP_WATER:EditType = new EditType(7, 1, Text.editDeepWater); public static var HARDWARE:EditType = new EditType(34, 3, Text.editHardware); public static var PARK:EditType = new EditType(4, 1, Text.editPark); public static var SHALLOW_WATER:EditType = new EditType(6, 1, Text.editShallowWater); public static var typeList:Array = [UNKNOWN, STREET_H, STREET_V, INTERSECTION, CORNER, FRINGE, PLANT, HARDWARE, HOSPITAL, APARTMENT, CHURCH, HOUSE, MALL, POLICE, PARKING_LOT, PARK, PLAZA, SHALLOW_WATER, DEEP_WATER, BRIDGE]; public function EditBox(_arg1:Point=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ this.color = (0x808080 | Util.rand(16777216)); this.type = UNKNOWN; this.lot = new Section(_arg1, _arg2); this.building = null; this.bridge = null; this.dynamitePos = null; this.street = null; this.zombies = 0; this.resources = Lib.newResourceArray(); this.entrance = null; this.primary = Util.randDirection(); this.secondary = Lib.rotateCW(this.primary); this.isBroken = false; this.checkEntrance(); }; } public function addResources(_arg1:Resource, _arg2:int):void{ var _local3:int; var _local4:int; _local3 = Lib.resourceToIndex(_arg1); _local4 = (Lib.truckLoad(_arg1) * _arg2); this.resources[_local3] = (this.resources[_local3] + _local4); if (this.building != null){ this.building.getSalvage().addResource(_arg1, _local4); }; } public function getLimit():Point{ return (this.lot.limit); } public function removeResources(_arg1:Resource, _arg2:int):void{ var _local3:int; var _local4:int; _local3 = Lib.resourceToIndex(_arg1); _local4 = (Lib.truckLoad(_arg1) * _arg2); this.resources[_local3] = (this.resources[_local3] - _local4); if (this.resources[_local3] < 0){ this.resources[_local3] = 0; }; if (this.building != null){ this.building.getSalvage().addResource(_arg1, -(_local4)); }; } public function getOffset():Point{ return (this.lot.offset); } public function changeType(_arg1:EditType, _arg2=null):void{ var _local3:EditType; _local3 = this.type; this.type = _arg1; if (_arg2 != true){ this.show(); this.refreshStreets(); }; } public function isAlley():Boolean{ if (this.type == STREET_H){ return ((this.lot.dirSize(Direction.NORTH) == 1)); }; if (this.type == STREET_V){ return ((this.lot.dirSize(Direction.EAST) == 1)); }; return (false); } public function drawPixels():void{ if (!EditLoader.isLoading){ if (this.type == UNKNOWN){ Game.view.window.fillSolid(this.lot.offset.toPixel(), this.lot.limit.toPixel(), this.color); } else { Game.view.window.fillEdit(this.lot.offset, this.lot.limit); }; }; } public function remove():void{ Game.view.window.fillSolid(this.lot.offset.toPixel(), this.lot.limit.toPixel(), Color.editEmpty); this.free(); this.clear(); Game.editor.clickSquare(null); Game.editor.removeBoxFromList(this); Game.view.window.refresh(); this.refreshStreets(); } protected function addRefreshStreet(_arg1:int, _arg2:int, _arg3:List):void{ var _local4:Point; var _local5:EditBox; _local4 = new Point(_arg1, _arg2); if (((!(Lib.outsideMap(_local4))) && (!((Game.map.getCell(_arg1, _arg2).edit == null))))){ _local5 = Game.map.getCell(_arg1, _arg2).edit; _arg3.remove(_local5); _arg3.add(_local5); }; } public function saveMap(_arg1:ByteArray):void{ _arg1.writeByte(this.type.number); EditLoader.savePos(this.lot.offset.x, this.lot.offset.y, _arg1); EditLoader.savePos(this.lot.getSize().x, this.lot.getSize().y, _arg1); if (isBuilding(this.type)){ EditLoader.savePos(this.entrance.x, this.entrance.y, _arg1); _arg1.writeByte(this.zombies); EditLoader.saveResources(this.resources, _arg1); }; if (this.type == BRIDGE){ EditLoader.saveBool(this.isBroken, _arg1); }; EditLoader.saveDirections(this.type, this.primary, this.secondary, _arg1); } protected function doesIntersect(_arg1:EditType):Boolean{ var _local2:Boolean; _local2 = false; _local2 = ((_local2) || ((((this.type == STREET_H)) && ((_arg1 == STREET_V))))); _local2 = ((_local2) || ((((this.type == STREET_V)) && ((_arg1 == STREET_H))))); _local2 = ((_local2) || ((((((this.type == BRIDGE)) && ((_arg1 == STREET_H)))) && ((((this.primary == Direction.NORTH)) || ((this.primary == Direction.SOUTH))))))); _local2 = ((_local2) || ((((((this.type == BRIDGE)) && ((_arg1 == STREET_V)))) && ((((this.primary == Direction.EAST)) || ((this.primary == Direction.WEST))))))); return (_local2); } public function addZombies(_arg1:int):void{ this.zombies = (this.zombies + _arg1); if (this.building != null){ this.building.addZombies(_arg1); }; if (this.zombies < 0){ this.zombies = 0; }; } protected function getCrossStreet(_arg1:Point):CrossStreet{ var _local2:CrossStreet; _local2 = CrossStreet.NONE; if (this.type == STREET_V){ _local2 = CrossStreet.ROAD; if (this.lot.getSize().x == 1){ _local2 = CrossStreet.ALLEY; }; } else { if (this.type == STREET_H){ _local2 = CrossStreet.ROAD; if (this.lot.getSize().y == 1){ _local2 = CrossStreet.ALLEY; }; } else { if ((((this.type == BRIDGE)) && (this.lot.edge(this.primary).contains(_arg1)))){ _local2 = CrossStreet.ROAD; }; }; }; return (_local2); } public function getType():EditType{ return (this.type); } public function setEntrance(_arg1:Point, _arg2=null):void{ if (_arg1 != null){ this.entrance = _arg1.clone(); if (_arg2 != true){ this.show(); }; }; } public function resize(_arg1:Point, _arg2:Point):void{ Game.view.window.fillSolid(this.lot.offset.toPixel(), this.lot.limit.toPixel(), Color.editEmpty); this.free(); this.clear(); this.refreshStreets(); this.lot = new Section(_arg1, _arg2); this.checkEntrance(); this.bind(); this.show(); this.refreshStreets(); } public function bind():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local1 = this.lot.offset.y; _local2 = this.lot.limit.y; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = this.lot.offset.x; _local5 = this.lot.limit.x; while (_local4 < _local5) { var _temp2 = _local4; _local4 = (_local4 + 1); _local6 = _temp2; Game.map.getCell(_local6, _local3).edit = this; }; }; } protected function populateBuilding():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:Resource; if (this.zombies > 0){ this.building.addZombies(this.zombies); }; _local1 = 0; _local2 = Option.resourceCount; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = Lib.indexToResource(_local3); if (this.resources[_local3] > 0){ this.building.getSalvage().addResource(_local4, this.resources[_local3]); }; }; } public function reflect():void{ this.primary = Util.opposite(this.primary); this.show(); this.refreshStreets(); } public function showObstacles():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:MapCell; var _local8:*; var _local9:Array; var _local10:int; _local1 = this.lot.offset.y; _local2 = this.lot.limit.y; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = this.lot.offset.x; _local5 = this.lot.limit.x; while (_local4 < _local5) { var _temp2 = _local4; _local4 = (_local4 + 1); _local6 = _temp2; _local7 = Game.map.getCell(_local6, _local3); _local8 = _local7.getObstacle(); if (_local8 != null){ _local9 = Tile.obstacles[_local8]; _local10 = Util.rand(_local9.length); _local7.addTile(_local9[_local10]); _local7.setBlocked(); if (_local8 == Tile.OBSTACLE_LAKE){ _local7.setBackground(BackgroundType.WATER); }; }; }; }; } protected function setIntersections(_arg1:Street):void{ var _local2:int; var _local3:int; var _local4:Boolean; var _local5:Boolean; var _local6:int; var _local7:int; var _local8:int; var _local9:int; _local2 = 0; _local3 = _arg1.getLength(); while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local8 = _temp1; this.addIntersection(_local8, -1, _arg1.addLess); this.addIntersection(_local8, _arg1.getWidth(), _arg1.addGreater); }; _local4 = true; _local5 = true; _local6 = 0; _local7 = _arg1.getWidth(); while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local9 = _temp2; if (!this.isStreet(-1, _local9)){ _local4 = false; }; if (!this.isStreet(_arg1.getLength(), _local9)){ _local5 = false; }; }; if (_local4){ _arg1.setDrawLess(); }; if (_local5){ _arg1.setDrawGreater(); }; } public function toggleBroken():void{ this.isBroken = !(this.isBroken); this.show(); } protected function addIntersection(_arg1:int, _arg2:int, _arg3:Function):void{ var _local4:Point; var _local5:EditBox; var _local6:CrossStreet; _local4 = new Point((this.lot.offset.x + _arg2), (this.lot.offset.y + _arg1)); if (this.type == STREET_H){ _local4.x = (this.lot.offset.x + _arg1); _local4.y = (this.lot.offset.y + _arg2); }; if (((!(Lib.outsideMap(_local4))) && (!((Game.map.getCell(_local4.x, _local4.y).edit == null))))){ _local5 = Game.map.getCell(_local4.x, _local4.y).edit; if (_local5.doesIntersect(this.type)){ _local6 = _local5.getCrossStreet(_local4); _arg3(_local4, 1, _local6); }; }; } protected function clear():void{ Util.fillClearTiles(this.lot); Util.fillBlocked(this.lot); Util.fillBackground(this.lot, BackgroundType.STREET); if (this.building != null){ Game.map.getBuildings().remove(this.building); this.building.clearZombies(); this.building.detach(); this.building = null; }; if (this.bridge != null){ Game.progress.clearBridge(this.bridge); this.bridge = null; }; if (this.dynamitePos != null){ Game.actions.push(new RemoveFeature(this.dynamitePos)); this.dynamitePos = null; }; } protected function findBridgeLot(_arg1:Direction, _arg2:Direction):Section{ var _local3:Section; _local3 = this.lot.slice(this.primary, 8); _local3 = _local3.slice(this.secondary, 6); return (_local3); } protected function createBuilding(_arg1:int):void{ var _local2:Direction; this.building = new Building(_arg1); _local2 = Util.calculateDir(this.entrance, this.lot); if (_arg1 != Util.POLICE_STATION){ this.building.addLot(this.lot); this.building.setEntrance(this.entrance, _local2); }; if (_arg1 != Util.PARKING_LOT){ Game.map.addBuilding(this.building); if (_arg1 != Util.POLICE_STATION){ this.building.attach(); }; }; this.populateBuilding(); } protected function isStreet(_arg1:int, _arg2:int):Boolean{ var _local3:Boolean; var _local4:Point; var _local5:EditBox; _local3 = false; _local4 = new Point((this.lot.offset.x + _arg2), (this.lot.offset.y + _arg1)); if (this.type == STREET_H){ _local4.x = (this.lot.offset.x + _arg1); _local4.y = (this.lot.offset.y + _arg2); }; if (((!(Lib.outsideMap(_local4))) && (!((Game.map.getCell(_local4.x, _local4.y).edit == null))))){ _local5 = Game.map.getCell(_local4.x, _local4.y).edit; _local3 = (((((((this.type == STREET_H)) && ((_local5.type == STREET_V)))) || ((((this.type == STREET_V)) && ((_local5.type == STREET_H)))))) || ((_local5.type == INTERSECTION))); }; return (_local3); } public function setDirections(_arg1:Direction, _arg2:Direction):void{ this.primary = _arg1; this.secondary = _arg2; } public function canSetEntrance():Boolean{ return ((((((((this.type == FRINGE)) || ((this.type == PLANT)))) || ((this.type == HARDWARE)))) || ((this.type == HOSPITAL)))); } public function rotate():void{ this.primary = Lib.rotateCW(this.primary); this.secondary = Lib.rotateCW(this.secondary); this.show(); this.refreshStreets(); } protected function checkEntrance():void{ if (((!((this.entrance == null))) && (!(this.lot.contains(this.entrance))))){ this.entrance = null; }; if (this.entrance == null){ this.entrance = Util.chooseEntrance(this.lot, Lib.randDirection(), Util.STANDARD); }; } public function getZombies():int{ return (this.zombies); } public function free():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local1 = this.lot.offset.y; _local2 = this.lot.limit.y; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = this.lot.offset.x; _local5 = this.lot.limit.x; while (_local4 < _local5) { var _temp2 = _local4; _local4 = (_local4 + 1); _local6 = _temp2; Game.map.getCell(_local6, _local3).edit = null; }; }; } public function getResources(_arg1:Resource):int{ var _local2:int; _local2 = Lib.resourceToIndex(_arg1); return (this.resources[_local2]); } public function refreshStreets():void{ var _local1:List; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:*; var _local7:int; var _local8:int; var _local9:EditBox; _local1 = new List(); _local2 = (this.lot.offset.x - 1); _local3 = (this.lot.limit.x + 1); while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local7 = _temp1; this.addRefreshStreet(_local7, (this.lot.offset.y - 1), _local1); this.addRefreshStreet(_local7, this.lot.limit.y, _local1); }; _local4 = this.lot.offset.y; _local5 = this.lot.limit.y; while (_local4 < _local5) { var _temp2 = _local4; _local4 = (_local4 + 1); _local8 = _temp2; this.addRefreshStreet((this.lot.offset.x - 1), _local8, _local1); this.addRefreshStreet(this.lot.limit.x, _local8, _local1); }; _local6 = _local1.iterator(); while (_local6.hasNext()) { _local9 = _local6.next(); _local9.show(); }; } public function setBroken(_arg1:Boolean, _arg2=null):void{ this.isBroken = _arg1; if (_arg2 != true){ this.show(); }; } public function show():void{ var _local1:PlaceParkingLot; var _local2:Section; var _local3:Section; var _local4:List; var _local5:PlaceTerrain; var _local6:PlacePlaza; var _local7:PlaceTerrain; var _local8:PlaceTerrain; var _local9:PlaceBridge; var _local10:Section; var _local11:Dynamite; var _local12:PlaceIntersection; var _local13:PlaceStreetCorner; var _local14:BuildingFringe; var _local15:BuildingPlant; var _local16:BuildingHardware; var _local17:BuildingHospital; var _local18:BlockApartment; var _local19:BlockChurch; var _local20:BlockMall; var _local21:BuildingPolice; this.clear(); if (this.type == STREET_H){ this.street = new Street(this.lot.offset, (this.lot.limit.y - this.lot.offset.y), (this.lot.limit.x - this.lot.offset.x), false, null, null); this.setIntersections(this.street); this.street.draw(Game.map, false); } else { if (this.type == STREET_V){ this.street = new Street(this.lot.offset, (this.lot.limit.x - this.lot.offset.x), (this.lot.limit.y - this.lot.offset.y), true, null, null); this.setIntersections(this.street); this.street.draw(Game.map, false); } else { if (this.type == PARKING_LOT){ this.createBuilding(Util.PARKING_LOT); _local1 = new PlaceParkingLot(); _local2 = this.lot.edge(this.primary); _local3 = _local2.randSublot(new Point(1, 1)); _local4 = new List(); _local4.push(_local3.offset); _local1.place(this.lot, _local4, false); } else { if (this.type == PARK){ _local5 = new PlaceTerrain(); _local5.place(this.lot, PlaceTerrain.park); } else { if (this.type == PLAZA){ _local6 = new PlacePlaza(); _local6.place(this.lot); } else { if (this.type == SHALLOW_WATER){ _local7 = new PlaceTerrain(); _local7.place(this.lot, PlaceTerrain.shallowWater); } else { if (this.type == DEEP_WATER){ _local8 = new PlaceTerrain(); _local8.place(this.lot, PlaceTerrain.deepWater); } else { if (this.type == BRIDGE){ _local9 = new PlaceBridge(this.primary, this.isBroken); _local9.place(this.lot); this.bridge = new Bridge(this.primary, this.lot, this.isBroken); Game.progress.addBridge(this.bridge, this.isBroken); if (!this.isBroken){ _local10 = this.lot.extend(this.primary, 1); _local10 = _local10.slice(this.primary, 1); this.dynamitePos = _local10.centerPoint(); if (Lib.outsideMap(this.dynamitePos)){ this.dynamitePos = null; } else { _local11 = new Dynamite(this.dynamitePos, Option.dynamiteWork, this.bridge); }; }; } else { if (this.type == INTERSECTION){ _local12 = new PlaceIntersection(); _local12.place(this.lot); } else { if (this.type == CORNER){ _local13 = new PlaceStreetCorner(); _local13.place(this.lot, this.primary); } else { if (this.type == FRINGE){ this.createBuilding(Util.STANDARD); _local14 = new BuildingFringe(this.building); _local14.place(this.lot); } else { if (this.type == PLANT){ this.createBuilding(Util.STANDARD); _local15 = new BuildingPlant(this.building, true); _local15.place(this.lot); } else { if (this.type == HARDWARE){ this.createBuilding(Util.HARDWARE_STORE); _local16 = new BuildingHardware(this.building); _local16.place(this.lot); } else { if (this.type == HOSPITAL){ this.createBuilding(Util.HOSPITAL); _local17 = new BuildingHospital(this.building); _local17.place(this.lot); } else { if (this.type == APARTMENT){ _local18 = new BlockApartment(this.primary, this.secondary, Util.opposite(this.secondary), false); this.building = _local18.placeBuilding(this.lot); this.populateBuilding(); } else { if (this.type == CHURCH){ _local19 = new BlockChurch(false, this.primary); this.building = _local19.placeEditBox(this.lot); this.populateBuilding(); } else { if (this.type == HOUSE){ this.building = BlockHouses.placeEditBox(this.lot, this.primary, this.secondary); this.populateBuilding(); } else { if (this.type == MALL){ _local20 = new BlockMall(false, this.primary, this.secondary); this.building = _local20.placeBuilding(this.lot); this.populateBuilding(); } else { if (this.type == POLICE){ this.createBuilding(Util.POLICE_STATION); _local21 = new BuildingPolice(this.building, false, this.primary, this.secondary); _local21.place(this.lot); }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; this.showObstacles(); this.drawPixels(); if (!EditLoader.isLoading){ Game.sprites.recalculateFov(); }; } public static function hasDirection(_arg1:EditType):Boolean{ return ((((((((((((((((((_arg1 == BRIDGE)) || ((_arg1 == PARKING_LOT)))) || ((_arg1 == CHURCH)))) || ((_arg1 == HOUSE)))) || ((_arg1 == APARTMENT)))) || ((_arg1 == MALL)))) || ((_arg1 == POLICE)))) || ((_arg1 == STREET)))) || ((_arg1 == CORNER)))); } public static function intToType(_arg1:int):EditType{ var _local2:EditType; var _local3:int; var _local4:Array; var _local5:EditType; _local2 = null; _local3 = 0; _local4 = typeList; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; if (_arg1 == _local5.number){ _local2 = _local5; break; }; }; return (_local2); } public static function isBuilding(_arg1:EditType):Boolean{ return ((((_arg1.number >= BUILDING_BEGIN)) && ((_arg1.number <= BUILDING_END)))); } } }//package mapgen
Section 82
//EditChange (mapgen.EditChange) package mapgen { import ui.*; public class EditChange { public static function removeLevel(_arg1:Point):void{ var _local2:Tower; if (canRemoveLevel(_arg1)){ _local2 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); _local2.downgrade(); }; } public static function addLevel(_arg1:Point):void{ var _local2:Tower; if (canAddLevel(_arg1)){ _local2 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); _local2.upgradeLevel(); }; } public static function remove(_arg1:Point):void{ var _local2:MapCell; if (canRemove(_arg1)){ _local2 = Game.map.getCell(_arg1.x, _arg1.y); if (_local2.hasTower()){ _local2.destroyTower(); } else { if (_local2.hasRubble()){ _local2.clearRubble(); } else { if (_local2.hasObstacle()){ _local2.removeObstacle(); }; }; }; }; } public static function changeObstacle(_arg1:Point):void{ var _local2:MapCell; var _local3:*; var _local4:int; if (canChangeObstacle(_arg1)){ _local2 = Game.map.getCell(_arg1.x, _arg1.y); _local3 = _local2.getObstacle(); _local4 = ((_local3 + 1) % Tile.obstacles.length); _local2.removeObstacle(); _local2.addObstacle(_local4); }; } public static function addZombie(_arg1:Point, _arg2:int):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:MapCell; var _local7:Zombie; if (canAddZombie(_arg1)){ _local3 = Math.round(Math.abs(_arg2)); _local4 = 0; while (_local4 < _local3) { var _temp1 = _local4; _local4 = (_local4 + 1); _local5 = _temp1; if (_arg2 > 0){ Util.forcePlaceZombie(_arg1.x, _arg1.y); } else { _local6 = Game.map.getCell(_arg1.x, _arg1.y); _local7 = _local6.getZombie(); if (_local7 != null){ _local6.removeZombie(_local7); _local7.cleanup(); }; }; }; }; } public static function canCreateRubble(_arg1:Point):Boolean{ var _local2:MapCell; _local2 = Game.map.getCell(_arg1.x, _arg1.y); return (((((((!(_local2.isBlocked())) && (!(_local2.hasTower())))) && (!(_local2.hasRubble())))) && (!((_local2.getBackground() == BackgroundType.ENTRANCE))))); } public static function addResourceRubble(_arg1:Point, _arg2:Resource, _arg3:int, _arg4=null):void{ var _local5:MapCell; _local5 = Game.map.getCell(_arg1.x, _arg1.y); if (_local5.hasRubble()){ _local5.addRubble(_arg2, (_arg3 * Lib.truckLoad(_arg2)), _arg4); }; } public static function createTower(_arg1:Point, _arg2:int, _arg3=null, _arg4:Array=null, _arg5:Array=null):void{ var _local6:MapCell; var _local7:Tower; var _local8:int; var _local9:int; var _local10:int; var _local11:Resource; var _local12:int; var _local13:int; if (canCreateTower(_arg1, _arg2)){ _local6 = Game.map.getCell(_arg1.x, _arg1.y); _local6.createTower(_arg2); _local7 = _local6.getTower(); while (((((!((_arg3 == null))) && ((_local7.getLevel() < _arg3)))) && (_local7.canUpgrade()))) { _local7.upgradeLevel(); }; if (((!((_arg4 == null))) && (!((_arg5 == null))))){ _local8 = 0; _local9 = Option.resourceCount; while (_local8 < _local9) { var _temp1 = _local8; _local8 = (_local8 + 1); _local10 = _temp1; _local11 = Lib.indexToResource(_local10); addResourceTower(_arg1, _local11, _arg4[_local10]); _local12 = _local7.countReserve(_local11); _local13 = (Lib.truckLoad(_local11) * _arg5[_local10]); _local7.addReserve(new ResourceCount(_local11, (_local13 - _local12))); }; }; }; } public static function addResource(_arg1:Point, _arg2:Resource, _arg3:int):void{ if (canAddResource(_arg1)){ if (Game.map.getCell(_arg1.x, _arg1.y).hasTower()){ addResourceTower(_arg1, _arg2, _arg3); } else { addResourceRubble(_arg1, _arg2, _arg3); }; }; } public static function canRemoveLevel(_arg1:Point):Boolean{ var _local2:Tower; _local2 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); return (((!((_local2 == null))) && (_local2.canDowngrade()))); } public static function addObstacle(_arg1:Point, _arg2=null):void{ var _local3:int; var _local4:MapCell; _local3 = Tile.OBSTACLE_START; if (_arg2 != null){ _local3 = _arg2; }; if (canAddObstacle(_arg1)){ _local4 = Game.map.getCell(_arg1.x, _arg1.y); _local4.addObstacle(_local3); }; } public static function canAddLevel(_arg1:Point):Boolean{ var _local2:Tower; _local2 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); return (((!((_local2 == null))) && (_local2.canUpgrade()))); } public static function canRemove(_arg1:Point):Boolean{ var _local2:MapCell; _local2 = Game.map.getCell(_arg1.x, _arg1.y); return (((((((_local2.hasRubble()) && (!((_local2.getBackground() == BackgroundType.ENTRANCE))))) || (_local2.hasTower()))) || (_local2.hasObstacle()))); } public static function canChangeObstacle(_arg1:Point):Boolean{ var _local2:MapCell; _local2 = Game.map.getCell(_arg1.x, _arg1.y); return (_local2.hasObstacle()); } public static function canAddZombie(_arg1:Point):Boolean{ var _local2:MapCell; _local2 = Game.map.getCell(_arg1.x, _arg1.y); return (((((!(_local2.isBlocked())) && (!(_local2.hasTower())))) && (!((_local2.getBackground() == BackgroundType.ENTRANCE))))); } public static function createRubble(_arg1:Point, _arg2:Array=null):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; if (canCreateRubble(_arg1)){ _local3 = Util.randWeightedIndex(Parameter.rubbleWeight); Game.map.getCell(_arg1.x, _arg1.y).addRubble(Resource.AMMO, 0); if (_arg2 != null){ _local4 = 0; _local5 = _arg2.length; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; addResourceRubble(_arg1, Lib.indexToResource(_local6), _arg2[_local6], _local3); }; }; }; } public static function canAddObstacle(_arg1:Point):Boolean{ var _local2:MapCell; _local2 = Game.map.getCell(_arg1.x, _arg1.y); return (((((((((((((!(_local2.isBlocked())) && (!(_local2.hasRubble())))) && (!(_local2.hasObstacle())))) && (!(_local2.hasZombies())))) && (!(_local2.hasTower())))) && (!((_local2.getBackground() == BackgroundType.ENTRANCE))))) && (!((_local2.getBackground() == BackgroundType.BUILDING))))); } public static function addResourceTower(_arg1:Point, _arg2:Resource, _arg3:int):void{ var _local4:Tower; var _local5:int; var _local6:int; var _local7:int; var _local8:ResourceCount; _local4 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); if (_local4 != null){ if (_arg2 == Resource.SURVIVORS){ _local5 = 0; while (_local5 < _arg3) { var _temp1 = _local5; _local5 = (_local5 + 1); _local6 = _temp1; _local7 = Util.rand(Animation.carryAmmo.getTypeCount()); _local4.giveSurvivor(_local7); }; } else { _local8 = new ResourceCount(_arg2, (_arg3 * Lib.truckLoad(_arg2))); _local4.giveResource(_local8); }; }; } public static function canCreateTower(_arg1:Point, _arg2:int):Boolean{ return (Tower.canPlace(_arg2, _arg1.x, _arg1.y, true)); } public static function canAddResource(_arg1:Point):Boolean{ var _local2:MapCell; var _local3:Boolean; _local2 = Game.map.getCell(_arg1.x, _arg1.y); _local3 = ((_local2.hasRubble()) && (!((_local2.getBackground() == BackgroundType.ENTRANCE)))); return (((_local3) || (_local2.hasTower()))); } } }//package mapgen
Section 83
//EditLoader (mapgen.EditLoader) package mapgen { import flash.utils.*; public class EditLoader { public static var SUPPLY_LINE:int = 131; public static var OBSTACLE:int = 132; public static var ZOMBIE:int = 128; public static var TOWER:int = 130; public static var isLoading:Boolean = false; public static var RUBBLE:int = 129; protected static function loadRubble(_arg1:ByteArray):void{ var _local2:Point; var _local3:Array; _local2 = loadPos(_arg1); _local3 = loadResources(_arg1); if (!Lib.outsideMap(_local2)){ EditChange.createRubble(_local2, _local3); }; } protected static function loadTower(_arg1:ByteArray):void{ var _local2:Point; var _local3:uint; var _local4:uint; var _local5:Array; var _local6:Array; _local2 = loadPos(_arg1); _local3 = _arg1.readUnsignedByte(); _local4 = _arg1.readUnsignedByte(); _local5 = loadResources(_arg1); _local6 = loadResources(_arg1); if (!Lib.outsideMap(_local2)){ EditChange.createTower(_local2, _local3, _local4, _local5, _local6); }; } protected static function loadSupplyLine(_arg1:ByteArray):void{ var _local2:Point; var _local3:Point; var _local4:Tower; var _local5:Tower; _local2 = loadPos(_arg1); _local3 = loadPos(_arg1); if (((!(Lib.outsideMap(_local2))) && (!(Lib.outsideMap(_local3))))){ _local4 = Game.map.getCell(_local2.x, _local2.y).getTower(); _local5 = Game.map.getCell(_local3.x, _local3.y).getTower(); if (((!((_local4 == null))) && (!((_local5 == null))))){ _local4.addTradeLink(_local3); }; }; } protected static function loadPos(_arg1:ByteArray, _arg2=null):Point{ var _local3:uint; var _local4:uint; _local3 = _arg1.readUnsignedByte(); _local4 = _arg1.readUnsignedByte(); if (((!(Game.settings.doesHaveEdges())) && (!((_arg2 == true))))){ _local3 = (_local3 + 5); _local4 = (_local4 + 5); }; return (new Point(_local3, _local4)); } protected static function drawPixels(_arg1:List):void{ var _local2:*; var _local3:EditBox; if (Game.settings.isEditor()){ _local2 = _arg1.iterator(); while (_local2.hasNext()) { _local3 = _local2.next(); _local3.drawPixels(); }; } else { Game.view.window.fillBitmap(); }; } protected static function loadObstacle(_arg1:ByteArray):void{ var _local2:Point; var _local3:uint; _local2 = loadPos(_arg1); _local3 = _arg1.readUnsignedByte(); if (!Lib.outsideMap(_local2)){ EditChange.addObstacle(_local2, _local3); }; } public static function loadMap(_arg1:ByteArray, _arg2:List):void{ var _local3:Section; var _local4:Boolean; var _local5:*; var _local6:uint; var _local7:EditType; var _local8:*; var _local9:EditBox; var _local10:*; var _local11:EditBox; var _local12:EditBox; EditLoader.isLoading = true; _local3 = new Section(new Point(Editor.edgeCount, Editor.edgeCount), new Point((Game.map.size().x - Editor.edgeCount), (Game.map.size().y - Editor.edgeCount))); Util.fillBlocked(_local3); Util.fillBackground(_local3, BackgroundType.STREET); _local4 = false; while (_arg1.bytesAvailable > 0) { _local6 = _arg1.readUnsignedByte(); _local7 = EditBox.intToType(_local6); if (((!(_local4)) && ((((((((((_local6 == ZOMBIE)) || ((_local6 == RUBBLE)))) || ((_local6 == TOWER)))) || ((_local6 == SUPPLY_LINE)))) || ((_local6 == OBSTACLE)))))){ _local8 = _arg2.iterator(); while (_local8.hasNext()) { _local9 = _local8.next(); _local9.show(); }; _local4 = true; }; if (_local6 == ZOMBIE){ loadZombie(_arg1); } else { if (_local6 == RUBBLE){ loadRubble(_arg1); } else { if (_local6 == TOWER){ loadTower(_arg1); } else { if (_local6 == SUPPLY_LINE){ loadSupplyLine(_arg1); } else { if (_local6 == OBSTACLE){ loadObstacle(_arg1); } else { if ((((((((((((((((((((((((_local7 == EditBox.UNKNOWN)) || ((_local7 == EditBox.STREET_H)))) || ((_local7 == EditBox.STREET_V)))) || ((_local7 == EditBox.PARKING_LOT)))) || ((_local7 == EditBox.PARK)))) || ((_local7 == EditBox.PLAZA)))) || ((_local7 == EditBox.SHALLOW_WATER)))) || ((_local7 == EditBox.DEEP_WATER)))) || ((_local7 == EditBox.BRIDGE)))) || ((_local7 == EditBox.STREET)))) || ((_local7 == EditBox.CORNER)))) || ((_local7 == EditBox.INTERSECTION)))){ loadSimple(_local7, _arg1, _arg2); } else { if (EditBox.isBuilding(_local7)){ loadStandardBuilding(_local7, _arg1, _arg2); }; }; }; }; }; }; }; }; if (!_local4){ _local10 = _arg2.iterator(); while (_local10.hasNext()) { _local11 = _local10.next(); _local11.show(); }; }; sanityCheck(); EditLoader.isLoading = false; _local5 = _arg2.iterator(); while (_local5.hasNext()) { _local12 = _local5.next(); _local12.showObstacles(); }; drawPixels(_arg2); Game.sprites.recalculateFov(); } public static function savePos(_arg1:int, _arg2:int, _arg3:ByteArray):void{ _arg3.writeByte(_arg1); _arg3.writeByte(_arg2); } protected static function addSaveLink(_arg1:Route, _arg2:Array, _arg3:Array):void{ var _local4:Boolean; var _local5:int; var _local6:int; var _local7:int; _local4 = false; _local5 = 0; _local6 = _arg2.length; while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local7 = _temp1; if (((((Point.isEqual(_arg1.source, _arg2[_local7])) && (Point.isEqual(_arg1.dest, _arg3[_local7])))) || (((Point.isEqual(_arg1.source, _arg3[_local7])) && (Point.isEqual(_arg1.dest, _arg2[_local7])))))){ _local4 = true; break; }; }; if (!_local4){ _arg2.push(_arg1.source); _arg3.push(_arg1.dest); }; } protected static function loadDirections(_arg1:EditType, _arg2:EditBox, _arg3:ByteArray):void{ var _local4:uint; var _local5:int; var _local6:int; if (EditBox.hasDirection(_arg1)){ _local4 = _arg3.readUnsignedByte(); _local5 = (_local4 & 3); _local6 = ((_local4 >> 2) & 3); _arg2.setDirections(Lib.indexToDirection(_local5), Lib.indexToDirection(_local6)); }; } protected static function cleanupMapSquare(_arg1:Point):void{ var _local2:MapCell; var _local3:Zombie; var _local4:Building; var _local5:Salvage; var _local6:int; var _local7:Array; var _local8:Resource; var _local9:int; _local2 = Game.map.getCell(_arg1.x, _arg1.y); if (_local2.hasTower()){ _local2.destroyTower(); }; if (_local2.hasRubble()){ _local2.clearRubble(); }; while (_local2.hasZombies()) { _local3 = _local2.getZombie(); if (_local3 != null){ _local2.removeZombie(_local3); _local3.cleanup(); }; }; if (_local2.getBackground() == BackgroundType.ENTRANCE){ _local4 = _local2.getBuilding(); _local4.clearZombies(); _local5 = _local4.getSalvage(); _local6 = 0; _local7 = Lib.resource; while (_local6 < _local7.length) { _local8 = _local7[_local6]; _local6++; _local9 = _local5.getResourceCount(_local8); _local5.addResource(_local8, -(_local9)); }; }; _local2.setBlocked(); } protected static function loadStandardBuilding(_arg1:EditType, _arg2:ByteArray, _arg3:List):void{ var _local4:Section; var _local5:Point; var _local6:uint; var _local7:Array; var _local8:EditBox; var _local9:int; var _local10:int; var _local11:int; var _local12:Resource; _local4 = loadSection(_arg2); _local5 = loadPos(_arg2); _local6 = _arg2.readUnsignedByte(); _local7 = loadResources(_arg2); if (((((!(Lib.outsideMap(_local4.offset))) && ((_local4.limit.x <= Game.map.sizeX())))) && ((_local4.limit.y <= Game.map.sizeY())))){ _local8 = new EditBox(_local4.offset, _local4.limit); _arg3.add(_local8); _local8.changeType(_arg1, true); _local8.bind(); _local8.setEntrance(_local5, true); _local8.addZombies(_local6); _local9 = 0; _local10 = _local7.length; while (_local9 < _local10) { var _temp1 = _local9; _local9 = (_local9 + 1); _local11 = _temp1; if (_local7[_local11] > 0){ _local12 = Lib.indexToResource(_local11); _local8.addResources(_local12, _local7[_local11]); }; }; loadDirections(_arg1, _local8, _arg2); } else { if (EditBox.hasDirection(_arg1)){ _arg2.readUnsignedByte(); }; }; } public static function saveMap(_arg1:ByteArray, _arg2:List):void{ var _local3:*; var _local4:Array; var _local5:Array; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:EditBox; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:MapCell; var _local16:int; _local3 = _arg2.iterator(); while (_local3.hasNext()) { _local10 = _local3.next(); _local10.saveMap(_arg1); }; _local4 = []; _local5 = []; _local6 = 0; _local7 = Game.map.sizeY(); while (_local6 < _local7) { var _temp1 = _local6; _local6 = (_local6 + 1); _local11 = _temp1; _local12 = 0; _local13 = Game.map.sizeX(); while (_local12 < _local13) { var _temp2 = _local12; _local12 = (_local12 + 1); _local14 = _temp2; _local15 = Game.map.getCell(_local14, _local11); saveCell(_local14, _local11, _local15, _arg1, _local4, _local5); }; }; _local8 = 0; _local9 = _local4.length; while (_local8 < _local9) { var _temp3 = _local8; _local8 = (_local8 + 1); _local16 = _temp3; _arg1.writeByte(SUPPLY_LINE); savePos(_local4[_local16].x, _local4[_local16].y, _arg1); savePos(_local5[_local16].x, _local5[_local16].y, _arg1); }; } protected static function sanityCheck():void{ var _local1:Section; var _local2:int; var _local3:Array; var _local4:Point; var _local5:Direction; var _local6:Section; var _local7:PathFinder; _local1 = new Section(new Point(0, 0), Game.map.size().clone()); _local2 = 0; _local3 = Lib.directions; while (_local2 < _local3.length) { _local5 = _local3[_local2]; _local2++; _local6 = _local1.slice(_local5, 1); Util.fillBlocked(_local6); }; _local4 = Game.progress.getRandomDepot(); if (_local4 != null){ _local7 = new PathFinder(_local4, null, true, null); _local7.setupVisit(); _local7.startCalculation(); while (!(_local7.isDone())) { _local7.step(100); }; cleanupMap(_local7); }; } protected static function checkRubble(_arg1:Point):void{ var _local2:MapCell; var _local3:Boolean; var _local4:int; var _local5:Array; var _local6:int; _local2 = Game.map.getCell(_arg1.x, _arg1.y); if (_local2.hasRubble()){ _local3 = true; _local4 = 0; _local5 = _local2.getAllRubbleCounts(); while (_local4 < _local5.length) { _local6 = _local5[_local4]; _local4++; if (_local6 != 0){ _local3 = false; break; }; }; if (_local3){ _local2.clearRubble(); }; }; } protected static function cleanupMap(_arg1:PathFinder):void{ var _local2:Point; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; _local2 = new Point(0, 0); _local3 = 0; _local4 = Game.map.sizeY(); while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = 0; _local7 = Game.map.sizeX(); while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local8 = _temp2; _local2.x = _local8; _local2.y = _local5; if (!_arg1.isVisited(_local2)){ cleanupMapSquare(_local2); }; checkRubble(_local2); }; }; } public static function saveResources(_arg1:Array, _arg2:ByteArray):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:Resource; var _local7:int; _local3 = 0; _local4 = _arg1.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = Lib.indexToResource(_local5); if (_local6 != Resource.FOOD){ _local7 = Math.floor((_arg1[_local5] / Lib.truckLoad(_local6))); _arg2.writeByte(_local7); }; }; } protected static function loadZombie(_arg1:ByteArray):void{ var _local2:Point; var _local3:uint; _local2 = loadPos(_arg1); _local3 = _arg1.readUnsignedByte(); if (!Lib.outsideMap(_local2)){ EditChange.addZombie(_local2, _local3); }; } protected static function loadSection(_arg1:ByteArray):Section{ var _local2:Point; var _local3:Point; _local2 = loadPos(_arg1); _local3 = _local2.clone(); _local3.plusEquals(loadPos(_arg1, true)); return (new Section(_local2, _local3)); } protected static function loadBool(_arg1:ByteArray):Boolean{ var _local2:uint; _local2 = _arg1.readUnsignedByte(); if (_local2 == 0){ return (false); }; return (true); } public static function saveDirections(_arg1:EditType, _arg2:Direction, _arg3:Direction, _arg4:ByteArray):void{ var _local5:int; var _local6:int; var _local7:int; if (EditBox.hasDirection(_arg1)){ _local5 = Lib.directionToIndex(_arg2); _local6 = Lib.directionToIndex(_arg3); _local7 = (_local5 & 3); _local7 = (_local7 | ((_local6 & 3) << 2)); _arg4.writeByte(_local7); }; } public static function saveBool(_arg1:Boolean, _arg2:ByteArray):void{ if (_arg1){ _arg2.writeByte(1); } else { _arg2.writeByte(0); }; } protected static function loadResources(_arg1:ByteArray):Array{ var _local2:Array; var _local3:int; var _local4:int; var _local5:int; _local2 = Lib.newResourceArray(); _local3 = 0; _local4 = _local2.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; if (_local5 != Lib.resourceToIndex(Resource.FOOD)){ _local2[_local5] = _arg1.readUnsignedByte(); }; }; return (_local2); } protected static function loadSimple(_arg1:EditType, _arg2:ByteArray, _arg3:List):void{ var _local4:Section; var _local5:EditBox; _local4 = loadSection(_arg2); if (((((!(Lib.outsideMap(_local4.offset))) && ((_local4.limit.x <= Game.map.sizeX())))) && ((_local4.limit.y <= Game.map.sizeY())))){ _local5 = new EditBox(_local4.offset, _local4.limit); _arg3.add(_local5); _local5.bind(); _local5.changeType(_arg1, true); if (_arg1 == EditBox.BRIDGE){ _local5.setBroken(loadBool(_arg2), true); }; loadDirections(_arg1, _local5, _arg2); } else { if (_arg1 == EditBox.BRIDGE){ loadBool(_arg2); }; if (EditBox.hasDirection(_arg1)){ _arg2.readUnsignedByte(); }; }; } protected static function saveCell(_arg1:int, _arg2:int, _arg3:MapCell, _arg4:ByteArray, _arg5:Array, _arg6:Array):void{ var _local7:Tower; var _local8:List; var _local9:*; var _local10:Route; if (_arg3.hasZombies()){ _arg4.writeByte(ZOMBIE); savePos(_arg1, _arg2, _arg4); _arg4.writeByte(_arg3.zombieCount()); }; if (((_arg3.hasRubble()) && (!((_arg3.getBackground() == BackgroundType.ENTRANCE))))){ _arg4.writeByte(RUBBLE); savePos(_arg1, _arg2, _arg4); saveResources(_arg3.getAllRubbleCounts(), _arg4); }; if (_arg3.hasTower()){ _local7 = _arg3.getTower(); _arg4.writeByte(TOWER); savePos(_arg1, _arg2, _arg4); _arg4.writeByte(_local7.getType()); _arg4.writeByte(_local7.getLevel()); _local7.saveEditResources(_arg4); _local8 = _local7.getTradeLinks(); _local9 = _local8.iterator(); while (_local9.hasNext()) { _local10 = _local9.next(); addSaveLink(_local10, _arg5, _arg6); }; }; if (_arg3.hasObstacle()){ _arg4.writeByte(OBSTACLE); savePos(_arg1, _arg2, _arg4); _arg4.writeByte(_arg3.getObstacle()); }; } } }//package mapgen
Section 84
//EditMenu (mapgen.EditMenu) package mapgen { import flash.display.*; import flash.events.*; import ui.*; import flash.text.*; import flash.*; public class EditMenu { protected var posClip:EditPosClip; protected var sprites:Array; protected var clip:EditMenuClip; protected var selectedSquare:Point; protected var buttons:ButtonList; protected var selected:EditBox; public function EditMenu(_arg1:DisplayObjectContainer=null):void{ var _local2:int; var _local3:Array; var _local4:TextFormat; var _local5:*; super(); if (!Boot.skip_constructor){ this.selected = null; this.selectedSquare = null; this.posClip = new EditPosClip(); _arg1.addChild(this.posClip); this.clip = new EditMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; _local2 = 0; _local3 = [this.clip.zombies, this.clip.ammo, this.clip.boards, this.clip.survivors, this.clip.setEntranceLabel, this.clip.deleteBoxLabel, this.clip.addRubbleLabel, this.clip.addObstacleLabel, this.clip.rotateLabel, this.clip.reflectLabel, this.clip.brokenLabel, this.clip.changeTypeLabel]; while (_local2 < _local3.length) { _local5 = _local3[_local2]; _local2++; _local5.mouseEnabled = false; }; this.clip.type.focusEnabled = false; this.clip.type.addEventListener(Event.CHANGE, this.changeType); _local4 = new TextFormat(); _local4.size = FontSize.comboListTitle; this.clip.type.textField.setStyle("textFormat", _local4); this.clip.type.dropdown.setStyle("cellRenderer", CustomCellRenderer); this.initSprites(); this.buttons = new ButtonList(this.click, null, [this.clip.zombiesDown, this.clip.zombiesUp, this.clip.ammoDown, this.clip.ammoUp, this.clip.boardsDown, this.clip.boardsUp, this.clip.survivorsDown, this.clip.survivorsUp, this.clip.setEntrance, this.clip.deleteBox, this.clip.addRubble, this.clip.addObstacle, this.clip.rotate, this.clip.reflect, this.clip.levelsDown, this.clip.levelsUp, this.clip.broken, this.clip.changeType]); }; } protected function removeResources(_arg1:Resource):void{ if (this.selectedSquare == null){ this.selected.removeResources(_arg1, 1); } else { EditChange.addResource(this.selectedSquare, _arg1, -1); }; } protected function addResources(_arg1:Resource):void{ if (this.selectedSquare == null){ this.selected.addResources(_arg1, 1); } else { EditChange.addResource(this.selectedSquare, _arg1, 1); }; } protected function updateSquare():void{ var _local1:int; var _local2:int; var _local3:MapCell; var _local4:int; var _local5:int; var _local6:Array; var _local7:int; var _local8:int; var _local9:int; var _local10:*; var _local11:int; if (this.selectedSquare != null){ _local1 = this.selectedSquare.x; _local2 = this.selectedSquare.y; _local3 = Game.map.getCell(_local1, _local2); if (EditChange.canAddZombie(this.selectedSquare)){ this.clip.zombiesUp.visible = true; this.clip.zombiesDown.visible = true; this.clip.zombies.visible = true; _local4 = _local3.zombieCount(); this.clip.zombies.text = Text.zombiesEdit(Std.string(_local4)); }; if (EditChange.canAddResource(this.selectedSquare)){ _local5 = 0; _local6 = [this.clip.ammoUp, this.clip.ammoDown, this.clip.ammo, this.clip.boardsUp, this.clip.boardsDown, this.clip.boards, this.clip.survivorsUp, this.clip.survivorsDown, this.clip.survivors]; while (_local5 < _local6.length) { _local10 = _local6[_local5]; _local5++; _local10.visible = true; }; _local7 = _local3.getRubbleCount(Resource.AMMO); _local8 = _local3.getRubbleCount(Resource.BOARDS); _local9 = _local3.getRubbleCount(Resource.SURVIVORS); if (_local3.hasTower()){ _local7 = _local3.getTower().countResource(Resource.AMMO); _local8 = _local3.getTower().countResource(Resource.BOARDS); _local9 = _local3.getTower().countResource(Resource.SURVIVORS); }; this.clip.ammo.text = Text.ammoEdit(Std.string(_local7)); this.clip.boards.text = Text.boardsEdit(Std.string(_local8)); this.clip.survivors.text = Text.survivorsEdit(Std.string(_local9)); }; if (((EditChange.canAddLevel(this.selectedSquare)) || (EditChange.canRemoveLevel(this.selectedSquare)))){ this.clip.levels.visible = true; _local11 = _local3.getTower().getLevel(); this.clip.levels.text = Text.levelsEdit(Std.string(_local11)); }; if (EditChange.canRemoveLevel(this.selectedSquare)){ this.clip.levelsDown.visible = true; }; if (EditChange.canAddLevel(this.selectedSquare)){ this.clip.levelsUp.visible = true; }; if (EditChange.canCreateRubble(this.selectedSquare)){ this.clip.addRubble.visible = true; this.clip.addRubbleLabel.visible = true; }; if (EditChange.canAddObstacle(this.selectedSquare)){ this.clip.addObstacle.visible = true; this.clip.addObstacleLabel.visible = true; }; if (EditChange.canChangeObstacle(this.selectedSquare)){ this.clip.changeType.visible = true; this.clip.changeTypeLabel.visible = true; }; if (EditChange.canRemove(this.selectedSquare)){ this.clip.deleteBox.visible = true; this.clip.deleteBoxLabel.visible = true; }; }; } public function update(_arg1:EditBox, _arg2:Point):void{ var _local3:int; var _local4:Array; var _local5:DisplayObject; this.selected = _arg1; this.selectedSquare = _arg2; if (this.selected == null){ this.clip.visible = false; } else { this.clip.visible = true; _local3 = 0; _local4 = this.sprites; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local5.visible = false; }; this.updateType(); this.updateBuilding(); this.updateDirections(); if (this.selectedSquare == null){ this.clip.deleteBox.visible = true; this.clip.deleteBoxLabel.visible = true; if (this.selected.getType() == EditBox.BRIDGE){ this.clip.broken.visible = true; this.clip.brokenLabel.visible = true; }; }; this.updateSquare(); }; Game.settings.setMap(Game.editor.saveMap()); Main.setEditSave(Game.settings.saveMap()); } protected function changeType(_arg1:Event):void{ Game.editor.changeType(this.clip.type.selectedItem.data); Game.view.window.refresh(); Game.view.mini.update(); } protected function reflect():void{ if (this.selected != null){ this.selected.reflect(); }; } protected function click(_arg1:int):void{ if (this.selected == null){ return; }; if (_arg1 == 0){ this.addZombies(-1); } else { if (_arg1 == 1){ this.addZombies(1); } else { if (_arg1 == 2){ this.removeResources(Resource.AMMO); } else { if (_arg1 == 3){ this.addResources(Resource.AMMO); } else { if (_arg1 == 4){ this.removeResources(Resource.BOARDS); } else { if (_arg1 == 5){ this.addResources(Resource.BOARDS); } else { if (_arg1 == 6){ this.removeResources(Resource.SURVIVORS); } else { if (_arg1 == 7){ this.addResources(Resource.SURVIVORS); } else { if (_arg1 == 8){ this.selected.setEntrance(this.selectedSquare); } else { if (_arg1 == 9){ this.removeSelected(); } else { if (_arg1 == 10){ if (this.selectedSquare != null){ EditChange.createRubble(this.selectedSquare); }; } else { if (_arg1 == 11){ if (this.selectedSquare != null){ EditChange.addObstacle(this.selectedSquare); this.selected.show(); }; } else { if (_arg1 == 12){ this.rotate(); } else { if (_arg1 == 13){ this.reflect(); } else { if (_arg1 == 14){ if (this.selectedSquare != null){ EditChange.removeLevel(this.selectedSquare); }; } else { if (_arg1 == 15){ if (this.selectedSquare != null){ EditChange.addLevel(this.selectedSquare); }; } else { if (_arg1 == 16){ this.selected.toggleBroken(); } else { if (_arg1 == 17){ if (this.selectedSquare != null){ EditChange.changeObstacle(this.selectedSquare); this.selected.show(); }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; Game.view.mini.update(); Game.view.window.refresh(); Game.editor.updateSelect(); } protected function rotate():void{ if (this.selected != null){ this.selected.rotate(); }; } protected function updateBuilding():void{ var _local1:int; var _local2:Array; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:*; var _local8:int; var _local9:Array; var _local10:*; if (EditBox.isBuilding(this.selected.getType())){ if (this.selectedSquare == null){ _local1 = 0; _local2 = [this.clip.zombiesDown, this.clip.zombiesUp, this.clip.zombies, this.clip.ammoDown, this.clip.ammoUp, this.clip.ammo, this.clip.boardsDown, this.clip.boardsUp, this.clip.boards, this.clip.survivorsDown, this.clip.survivorsUp, this.clip.survivors]; while (_local1 < _local2.length) { _local7 = _local2[_local1]; _local1++; _local7.visible = true; }; _local3 = this.selected.getZombies(); _local4 = this.selected.getResources(Resource.AMMO); _local5 = this.selected.getResources(Resource.BOARDS); _local6 = this.selected.getResources(Resource.SURVIVORS); this.clip.zombies.text = Text.zombiesEdit(Std.string(_local3)); this.clip.ammo.text = Text.ammoEdit(Std.string(_local4)); this.clip.boards.text = Text.boardsEdit(Std.string(_local5)); this.clip.survivors.text = Text.survivorsEdit(Std.string(_local6)); } else { if (this.selected.canSetEntrance()){ _local8 = 0; _local9 = [this.clip.setEntrance, this.clip.setEntranceLabel]; while (_local8 < _local9.length) { _local10 = _local9[_local8]; _local8++; _local10.visible = true; }; }; }; }; } protected function initSprites():void{ this.sprites = [function (_arg1:EditMenu):DisplayObject{ var $r:*; var tmp:*; var $this = _arg1; tmp = $this.clip.zombiesDown; $r = (Std._is(tmp, DisplayObject)) ? tmp : function (_arg1:EditMenu):MovieClip{ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this), this.clip.zombiesUp, this.clip.zombies, this.clip.ammoDown, this.clip.ammoUp, this.clip.ammo, this.clip.boardsDown, this.clip.boardsUp, this.clip.boards, this.clip.survivorsDown, this.clip.survivorsUp, this.clip.survivors, this.clip.setEntrance, this.clip.setEntranceLabel, this.clip.deleteBox, this.clip.deleteBoxLabel, this.clip.addRubble, this.clip.addRubbleLabel, this.clip.addObstacle, this.clip.addObstacleLabel, this.clip.rotate, this.clip.rotateLabel, this.clip.reflect, this.clip.reflectLabel, this.clip.levelsDown, this.clip.levelsUp, this.clip.levels, this.clip.broken, this.clip.brokenLabel, this.clip.changeType, this.clip.changeTypeLabel]; } protected function updateType():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:Array; var _local5:EditType; _local1 = Math.floor(Math.min((this.selected.getLimit().x - this.selected.getOffset().x), (this.selected.getLimit().y - this.selected.getOffset().y))); this.clip.type.removeAll(); _local2 = 0; _local3 = 0; _local4 = EditBox.typeList; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; if (_local1 >= _local5.minSize){ this.clip.type.addItem(_local5.item); if (_local5 == this.selected.getType()){ this.clip.type.selectedIndex = _local2; }; _local2++; }; }; } public function cleanup():void{ this.buttons.cleanup(); this.clip.type.removeEventListener(Event.CHANGE, this.changeType); this.clip.parent.removeChild(this.clip); this.posClip.parent.removeChild(this.posClip); } protected function addZombies(_arg1:int):void{ if (this.selectedSquare == null){ this.selected.addZombies(_arg1); } else { EditChange.addZombie(this.selectedSquare, _arg1); }; } public function hover(_arg1:Point):void{ this.posClip.pos.text = _arg1.toString(); } protected function updateDirections():void{ var _local1:int; var _local2:Array; var _local3:*; if (((!((this.selected == null))) && ((this.selectedSquare == null)))){ if (EditBox.hasDirection(this.selected.getType())){ _local1 = 0; _local2 = [this.clip.rotate, this.clip.rotateLabel, this.clip.reflect, this.clip.reflectLabel]; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.visible = true; }; }; }; } protected function removeSelected():void{ if (this.selectedSquare == null){ this.selected.remove(); } else { EditChange.remove(this.selectedSquare); this.selected.show(); }; } } }//package mapgen
Section 85
//EditMenuClip (mapgen.EditMenuClip) package mapgen { import fl.controls.*; import flash.display.*; import flash.text.*; import fl.data.*; public dynamic class EditMenuClip extends MovieClip { public var ammoUp:MovieClip; public var changeTypeLabel:TextField; public var deleteBox:MovieClip; public var brokenLabel:TextField; public var reflectLabel:TextField; public var survivors:TextField; public var addObstacle:MovieClip; public var rotateLabel:TextField; public var boards:TextField; public var levelsUp:MovieClip; public var addRubbleLabel:TextField; public var survivorsDown:MovieClip; public var addRubble:MovieClip; public var zombiesUp:MovieClip; public var ammoDown:MovieClip; public var boardsDown:MovieClip; public var setEntranceLabel:TextField; public var addObstacleLabel:TextField; public var levelsDown:MovieClip; public var deleteBoxLabel:TextField; public var reflect:MovieClip; public var collProps1:Array; public var ammo:TextField; public var i1:int; public var zombies:TextField; public var j1; public var changeType:MovieClip; public var collObj1:DataProvider; public var setEntrance:MovieClip; public var type:ComboBox; public var zombiesDown:MovieClip; public var rotate:MovieClip; public var levels:TextField; public var collProp1:Object; public var boardsUp:MovieClip; public var itemObj1:SimpleCollectionItem; public var survivorsUp:MovieClip; public var broken:MovieClip; public function EditMenuClip(){ __setProp_type_EditMenuClip_Layer2_1(); } function __setProp_type_EditMenuClip_Layer2_1(){ try { type["componentInspectorSetting"] = true; } catch(e:Error) { }; collObj1 = new DataProvider(); collProps1 = []; i1 = 0; while (i1 < collProps1.length) { itemObj1 = new SimpleCollectionItem(); collProp1 = collProps1[i1]; for (j1 in collProp1) { itemObj1[j1] = collProp1[j1]; }; collObj1.addItem(itemObj1); i1++; }; type.dataProvider = collObj1; type.editable = false; type.enabled = true; type.prompt = ""; type.restrict = ""; type.rowCount = 15; type.visible = true; try { type["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package mapgen
Section 86
//Editor (mapgen.Editor) package mapgen { import flash.display.*; import flash.utils.*; import ui.*; import flash.*; public class Editor { protected var selectedClip:Shape; protected var dragCurrent:Point; protected var selectedSquare:Point; protected var selected:EditBox; protected var menu:EditMenu; protected var dragBox:Shape; protected var boxes:List; protected var dragOrigin:Point; public static var edgeCount:int = 5; protected static var dragBoxBorder:int = 2; protected static var selectedBorder:int = 4; protected static var waterCount:int = 3; public function Editor(_arg1:DisplayObjectContainer=null):void{ if (!Boot.skip_constructor){ this.boxes = new List(); this.selected = null; this.selectedSquare = null; this.dragOrigin = null; this.dragCurrent = null; this.selectedClip = new Shape(); _arg1.addChild(this.selectedClip); this.dragBox = new Shape(); _arg1.addChild(this.dragBox); this.menu = new EditMenu(_arg1); }; } protected function isOverlap(_arg1:Point, _arg2:Point):Boolean{ var _local3:Boolean; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:EditBox; var _local11:BackgroundType; _local3 = false; _local4 = _arg1.y; _local5 = _arg2.y; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; _local7 = _arg1.x; _local8 = _arg2.x; while (_local7 < _local8) { var _temp2 = _local7; _local7 = (_local7 + 1); _local9 = _temp2; _local10 = Game.map.getCell(_local9, _local6).edit; _local11 = Game.map.getCell(_local9, _local6).getBackground(); if ((((_local11 == BackgroundType.EDGE)) || (!((((_local10 == null)) || ((_local10 == this.selected))))))){ _local3 = true; break; }; }; if (_local3){ break; }; }; return (_local3); } public function clickSquare(_arg1:Point):void{ var _local2:EditBox; if (_arg1 == null){ this.selected = null; this.selectedSquare = null; } else { _local2 = Game.map.getCell(_arg1.x, _arg1.y).edit; if (((!((this.selected == _local2))) || (!((this.selectedSquare == null))))){ this.selected = _local2; this.selectedSquare = null; } else { this.selectedSquare = _arg1.clone(); }; }; this.updateSelect(); } public function changeType(_arg1:EditType):void{ if (this.selected != null){ this.selected.changeType(_arg1); this.updateSelect(); Game.view.mini.update(); Game.view.window.refresh(); }; } public function getSelectedSquare():Point{ return (this.selectedSquare); } protected function tooSmall(_arg1:Point, _arg2:Point):Boolean{ var _local3:Boolean; var _local4:EditType; _local3 = false; if (this.selected != null){ _local4 = this.selected.getType(); _local3 = ((((_arg2.x - _arg1.x) < _local4.minSize)) || (((_arg2.y - _arg1.y) < _local4.minSize))); }; return (_local3); } public function loadMap(_arg1:ByteArray):void{ EditLoader.loadMap(_arg1, this.boxes); } public function updateDrag(_arg1:Point=null):void{ var _local2:EditBox; var _local3:Point; var _local4:Point; var _local5:Point; var _local6:Point; var _local7:int; if (_arg1 != null){ this.dragCurrent = _arg1.clone(); }; if (((((((!((this.dragOrigin == null))) && (!((this.dragCurrent == null))))) && (!(Lib.outsideMap(this.dragOrigin))))) && (!(Lib.outsideMap(this.dragCurrent))))){ _local2 = Game.map.getCell(this.dragOrigin.x, this.dragOrigin.y).edit; if (this.selected != _local2){ this.selected = _local2; }; this.selectedSquare = null; this.updateSelect(); _local3 = Lib.getOffset(this.dragOrigin, this.dragCurrent); _local4 = Lib.getLimit(this.dragOrigin, this.dragCurrent); _local5 = Game.view.window.toRelative(_local3.x, _local3.y).toPixel(); _local6 = new Point((_local4.x - _local3.x), (_local4.y - _local3.y)).toPixel(); _local7 = Color.allowEditBox; if (((this.isOverlap(_local3, _local4)) || (this.tooSmall(_local3, _local4)))){ _local7 = Color.denyEditBox; }; this.dragBox.graphics.clear(); this.dragBox.graphics.lineStyle(dragBoxBorder, Color.editBoxBorder); this.dragBox.graphics.beginFill(_local7); this.dragBox.graphics.drawRect(_local5.x, _local5.y, _local6.x, _local6.y); this.dragBox.graphics.endFill(); }; } public function saveMap():ByteArray{ var _local1:ByteArray; _local1 = new ByteArray(); EditLoader.saveMap(_local1, this.boxes); return (_local1); } public function cleanup():void{ this.menu.cleanup(); this.dragBox.parent.removeChild(this.dragBox); this.selectedClip.parent.removeChild(this.selectedClip); } protected function createBorderEdge(_arg1:Section, _arg2:Direction, _arg3:int, _arg4:EditType):Section{ var _local5:Section; var _local6:Section; var _local7:EditBox; _local5 = _arg1.remainder(_arg2, _arg3); _local6 = _arg1.slice(_arg2, _arg3); _local7 = new EditBox(_local6.offset, _local6.limit); _local7.bind(); _local7.changeType(_arg4); this.boxes.add(_local7); return (_local5); } public function createBorders():void{ var _local1:Section; var _local2:int; var _local3:Array; var _local4:int; var _local5:Array; var _local6:Direction; var _local7:Direction; _local1 = new Section(new Point(edgeCount, edgeCount), new Point((Game.map.size().x - edgeCount), (Game.map.size().y - edgeCount))); Util.fillBlocked(_local1); Util.fillBackground(_local1, BackgroundType.STREET); _local2 = 0; _local3 = Lib.directions; while (_local2 < _local3.length) { _local6 = _local3[_local2]; _local2++; _local1 = this.createBorderEdge(_local1, _local6, (Editor.waterCount - 1), EditBox.DEEP_WATER); }; _local4 = 0; _local5 = Lib.directions; while (_local4 < _local5.length) { _local7 = _local5[_local4]; _local4++; _local1 = this.createBorderEdge(_local1, _local7, 1, EditBox.SHALLOW_WATER); }; } public function updateSelect():void{ var _local1:Point; var _local2:Point; var _local3:Point; var _local4:Point; this.selectedClip.graphics.clear(); if (this.selected != null){ if (this.selectedSquare == null){ _local1 = Game.view.window.toRelative(this.selected.getOffset().x, this.selected.getOffset().y).toPixel(); _local2 = Game.view.window.toRelative(this.selected.getLimit().x, this.selected.getLimit().y).toPixel(); this.selectedClip.graphics.lineStyle(selectedBorder, Color.editSelected); this.selectedClip.graphics.drawRect(_local1.x, _local1.y, (_local2.x - _local1.x), (_local2.y - _local1.y)); } else { _local3 = Game.view.window.toRelative(this.selectedSquare.x, this.selectedSquare.y).toPixel(); _local4 = new Point((_local3.x + Option.cellPixels), (_local3.y + Option.cellPixels)); this.selectedClip.graphics.lineStyle(selectedBorder, Color.editSelected); this.selectedClip.graphics.drawRect(_local3.x, _local3.y, (_local4.x - _local3.x), (_local4.y - _local3.y)); }; }; if (this.selectedSquare == null){ Game.update.changeSelect(null); }; this.menu.update(this.selected, this.selectedSquare); } public function endDrag(_arg1:Point):void{ var _local2:Point; var _local3:Point; var _local4:Point; var _local5:EditBox; if (((((!((this.dragOrigin == null))) && (!(Lib.outsideMap(this.dragOrigin))))) && (!(Lib.outsideMap(_arg1))))){ _local2 = this.dragOrigin; _local3 = Lib.getOffset(_local2, _arg1); _local4 = Lib.getLimit(_local2, _arg1); if (((!(this.isOverlap(_local3, _local4))) && (!(this.tooSmall(_local3, _local4))))){ if (this.selected == null){ _local5 = new EditBox(_local3, _local4); _local5.bind(); _local5.show(); this.boxes.add(_local5); this.clickSquare(_arg1); } else { this.selected.resize(_local3, _local4); this.selectedSquare = null; this.updateSelect(); }; }; this.dragOrigin = null; this.dragCurrent = null; this.dragBox.graphics.clear(); Game.view.mini.update(); Game.view.window.refresh(); }; } public function hover(_arg1:Point):void{ this.menu.hover(_arg1); } public function beginDrag(_arg1:Point):void{ var _local2:EditBox; var _local3:Point; var _local4:Point; _local2 = Game.map.getCell(_arg1.x, _arg1.y).edit; if (_local2 != null){ _local3 = _local2.getOffset(); _local4 = _local2.getLimit(); if ((((((_arg1.x == _local3.x)) || ((_arg1.x == (_local4.x - 1))))) && ((((_arg1.y == _local3.y)) || ((_arg1.y == (_local4.y - 1))))))){ this.dragOrigin = _local3.clone(); if (_arg1.x == _local3.x){ this.dragOrigin.x = (_local4.x - 1); }; if (_arg1.y == _local3.y){ this.dragOrigin.y = (_local4.y - 1); }; }; } else { if (_local2 == null){ this.dragOrigin = _arg1.clone(); this.dragCurrent = null; this.clickSquare(null); } else { this.dragOrigin = null; this.dragCurrent = null; }; }; } public function removeBoxFromList(_arg1:EditBox):void{ this.boxes.remove(_arg1); Game.view.mini.update(); Game.view.window.refresh(); } public static function createEdges():void{ var _local1:Section; var _local2:int; var _local3:Array; var _local4:Direction; var _local5:Section; _local1 = new Section(new Point(0, 0), Game.map.size().clone()); _local2 = 0; _local3 = Lib.directions; while (_local2 < _local3.length) { _local4 = _local3[_local2]; _local2++; _local5 = _local1.slice(_local4, edgeCount); Util.fillBlocked(_local5); Util.fillBackground(_local5, BackgroundType.EDGE); Util.fillAddTile(_local5, Tile.EDGE); Game.view.window.fillRegion(_local5.offset, _local5.limit); _local1 = _local1.remainder(_local4, edgeCount); }; } } }//package mapgen
Section 87
//EditPosClip (mapgen.EditPosClip) package mapgen { import flash.display.*; import flash.text.*; public dynamic class EditPosClip extends MovieClip { public var pos:TextField; } }//package mapgen
Section 88
//EditType (mapgen.EditType) package mapgen { import flash.*; import native.*; public class EditType { public var number:int; public var minSize:int; public var item:EditMenuItem; public function EditType(_arg1:int=0, _arg2:int=0, _arg3:String=null):void{ if (!Boot.skip_constructor){ this.number = _arg1; this.minSize = _arg2; this.item = new EditMenuItem(_arg3, this); }; } } }//package mapgen
Section 89
//Parameter (mapgen.Parameter) package mapgen { public class Parameter { public static var roofOverlayChance:int = 5; public static var rubbleWeight:Array = [0, 0, 0, 0, 10, 10, 30, 30, 30, 30, 30, 30, 30, 10, 30, 5, 5, 5, 5, 5]; public static var zombieStreetFactor:Number = 0.1; public static var rubbleStreetFactor:Number = 0.15; } }//package mapgen
Section 90
//PlaceBridge (mapgen.PlaceBridge) package mapgen { import flash.*; public class PlaceBridge { protected var isBroken:Boolean; protected var dir:Direction; protected static var firstCenter:Array = [202, 182, 213, 214]; protected static var secondEnd:Array = [205, 185, 273, 274]; protected static var secondCenter:Array = [203, 183, 233, 234]; protected static var rightTile:Array = [207, 187, 314, 313]; protected static var firstEnd:Array = [204, 184, 253, 254]; protected static var threeBroken:Array = [1207, 1186, 1206, 1187]; protected static var leftTile:Array = [206, 186, 294, 293]; protected static var firstBegin:Array = [200, 180, 173, 174]; protected static var randBroken:Array = [[1207, 1247], [1186, 1226], [1206, 1246], [1187, 1227]]; protected static var secondBegin:Array = [201, 181, 193, 194]; public function PlaceBridge(_arg1:Direction=null, _arg2:Boolean=false):void{ if (!Boot.skip_constructor){ this.dir = _arg1; this.isBroken = _arg2; }; } public function intersectStreet(_arg1:Section):void{ var _local2:Section; var _local3:Street; var _local4:enum; _local2 = _arg1.edge(Util.opposite(this.dir)); _local3 = _arg1.getStreet(Util.opposite(this.dir)); if (_local3 != null){ _local4 = this.dir; switch (_local4.index){ case 0: _local3.addLess(_local2.offset, 4, CrossStreet.ROAD); break; case 1: _local3.addGreater(_local2.offset, 4, CrossStreet.ROAD); break; case 2: _local3.addGreater(_local2.offset, 4, CrossStreet.ROAD); break; case 3: _local3.addLess(_local2.offset, 4, CrossStreet.ROAD); break; }; }; } public function place(_arg1:Section):void{ var _local2:PlaceTerrain; var _local3:Direction; var _local4:Section; var _local5:Section; var _local6:Section; var _local7:int; _local2 = new PlaceTerrain(); _local2.place(_arg1, PlaceTerrain.shallowWater); _local3 = Lib.rotateCW(this.dir); if (_local3 == Direction.SOUTH){ _local3 = Direction.NORTH; }; if (_local3 == Direction.EAST){ _local3 = Direction.WEST; }; _local4 = _arg1.slice(_local3, 1); _local5 = _arg1.slice(Util.opposite(_local3), 1); _local6 = _arg1.remainder(_local3, 1).remainder(Util.opposite(_local3), 1); Util.fillBlocked(_local4); Util.fillBlocked(_local5); if (this.isBroken){ this.placeBrokenEdge(_arg1, this.dir); } else { Util.fillBackground(_local6, BackgroundType.BRIDGE); Util.fillUnblocked(_local6); _local7 = Lib.directionToIndex(this.dir); Util.fillAddTile(_local4, leftTile[_local7]); Util.fillAddTile(_local5, rightTile[_local7]); this.placeInside(_local6); Main.replay.addBox(_local6.offset, _local6.limit, Option.roadMiniColor); }; } protected function placeBrokenEdge(_arg1:Section, _arg2:Direction):void{ var _local3:int; var _local4:Section; var _local5:int; var _local6:int; var _local7:Point; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:Array; _local3 = Lib.directionToIndex(_arg2); _local4 = _arg1.slice(_arg2, 1); _local5 = 0; _local6 = (Math.floor(Math.max(_local4.getSize().x, _local4.getSize().y)) - 1); _local7 = new Point(0, 0); _local8 = _local4.offset.y; _local9 = _local4.limit.y; while (_local8 < _local9) { var _temp1 = _local8; _local8 = (_local8 + 1); _local10 = _temp1; _local11 = _local4.offset.x; _local12 = _local4.limit.x; while (_local11 < _local12) { var _temp2 = _local11; _local11 = (_local11 + 1); _local13 = _temp2; _local14 = Tile.NO_TILE; if ((((_local5 == 1)) && ((_local6 == 2)))){ _local14 = threeBroken[_local3]; } else { if (_local5 == 0){ _local14 = firstBegin[_local3]; } else { if (_local5 == 1){ _local14 = secondBegin[_local3]; } else { if (_local5 == (_local6 - 1)){ _local14 = firstEnd[_local3]; } else { if (_local5 == _local6){ _local14 = secondEnd[_local3]; } else { if ((((((_local6 + 1) % 2) == 0)) && ((_local5 == (Math.floor(((_local6 + 1) / 2)) - 1))))){ _local14 = firstCenter[_local3]; } else { if ((((((_local6 + 1) % 2) == 0)) && ((_local5 == Math.floor(((_local6 + 1) / 2)))))){ _local14 = secondCenter[_local3]; } else { _local15 = randBroken[_local3]; _local14 = _local15[Util.rand(_local15.length)]; }; }; }; }; }; }; }; _local7.x = _local13; _local7.y = _local10; Util.addTile(_local7, _local14); _local5++; }; }; } protected function placeInside(_arg1:Section):void{ var _local2:Boolean; var _local3:Point; var _local4:int; var _local5:int; var _local6:Street; _local2 = (((this.dir == Direction.NORTH)) || ((this.dir == Direction.SOUTH))); _local3 = _arg1.getSize(); _local4 = _local3.x; _local5 = _local3.y; if (!_local2){ _local4 = _local3.y; _local5 = _local3.x; }; _local6 = new Street(_arg1.offset, _local4, _local5, _local2, null, null); _local6.draw(Game.map, false); } } }//package mapgen
Section 91
//PlaceIntersection (mapgen.PlaceIntersection) package mapgen { public class PlaceIntersection extends PlaceRoot { protected static var STREET:int = 3; protected static var MIDDLE:int = 1; protected static var BEGIN:int = 0; protected static var INTERSECTION:int = 0; protected static var BUILDING:int = 2; protected static var ALLEY:int = 1; protected static var END:int = 2; protected static var edges:Array = [[[1200, 198, 1201], [138, 138, 138], [98, 98, 98], [133, 178, 134]], [[1220, 198, 1221], [158, 158, 158], [118, 118, 118], [153, 218, 154]], [[1201, 198, 1221], [96, 96, 96], [94, 94, 94], [136, 199, 156]], [[1200, 198, 1220], [95, 95, 95], [93, 93, 93], [135, 197, 155]]]; protected static var corners:Array = [[[1181, 96, 94, 136], [138, 1189, 1229, 139], [98, 1189, 1221, 99], [134, 76, 74, 179]], [[1180, 95, 93, 135], [138, 1188, 1188, 137], [98, 1228, 1220, 97], [133, 75, 73, 177]], [[1201, 96, 94, 156], [158, 1209, 1209, 159], [118, 1249, 1241, 119], [154, 116, 114, 219]], [[1200, 95, 93, 155], [158, 1208, 1248, 157], [118, 1208, 1240, 117], [153, 115, 113, 217]]]; public function PlaceIntersection():void{ } protected function getEdit(_arg1:Point):EditBox{ var _local2:EditBox; _local2 = null; if (!Lib.outsideMap(_arg1)){ _local2 = Game.map.getCell(_arg1.x, _arg1.y).edit; }; return (_local2); } protected function placeCorner(_arg1:Point, _arg2:int):void{ var _local3:int; var _local4:int; var _local5:int; _local3 = this.getType(_arg1, PlaceRoot.cornerToVert(_arg2)); _local4 = this.getType(_arg1, PlaceRoot.cornerToHoriz(_arg2)); _local5 = corners[_arg2][_local3][_local4]; Util.addTile(_arg1, _local5); } protected function placeAllCorners(_arg1:Section):void{ var _local2:int; var _local3:int; var _local4:int; _local2 = 0; _local3 = PlaceRoot.CORNER_COUNT; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; this.placeCorner(_arg1.corner(_local4), _local4); }; } public function place(_arg1:Section):void{ var _local2:Point; Util.fillUnblocked(_arg1); Util.fillBackground(_arg1, BackgroundType.STREET); Util.fillClearTiles(_arg1); _local2 = _arg1.getSize(); if ((((_local2.x <= 1)) || ((_local2.y <= 1)))){ Util.fillAddTile(_arg1, 1064); } else { Util.fillAddTile(_arg1.center(), 198); this.placeAllCorners(_arg1); this.placeAllEdges(_arg1); }; } protected function hop(_arg1:Point, _arg2:Direction):Point{ var _local3:Point; _local3 = Lib.directionToDelta(_arg2); return (new Point((_arg1.x + _local3.x), (_arg1.y + _local3.y))); } protected function getTransition(_arg1:Point, _arg2:Direction):int{ var _local3:int; var _local4:Direction; var _local5:Direction; var _local6:Point; var _local7:Point; var _local8:Point; var _local9:EditBox; _local3 = MIDDLE; _local4 = Direction.WEST; _local5 = Direction.EAST; if ((((_arg2 == Direction.EAST)) || ((_arg2 == Direction.WEST)))){ _local4 = Direction.NORTH; _local5 = Direction.SOUTH; }; _local6 = this.hop(_arg1, _arg2); _local7 = this.hop(_local6, _local4); _local8 = this.hop(_local6, _local5); _local9 = this.getEdit(_local6); if (_local9 != this.getEdit(_local7)){ _local3 = BEGIN; } else { if (_local9 != this.getEdit(_local8)){ _local3 = END; }; }; return (_local3); } protected function getType(_arg1:Point, _arg2:Direction):int{ var _local3:Point; var _local4:int; var _local5:EditBox; _local3 = this.hop(_arg1, _arg2); _local4 = BUILDING; _local5 = this.getEdit(_local3); if (_local5 != null){ if (_local5.getType() == EditBox.INTERSECTION){ _local4 = INTERSECTION; } else { if ((((((((_local5.getType() == EditBox.STREET)) || ((_local5.getType() == EditBox.CORNER)))) || ((_local5.getType() == EditBox.STREET_H)))) || ((_local5.getType() == EditBox.STREET_V)))){ if (_local5.isAlley()){ _local4 = ALLEY; } else { _local4 = STREET; }; }; }; }; return (_local4); } protected function placeEdgeTile(_arg1:Point, _arg2:Direction):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local3 = Lib.directionToIndex(_arg2); _local4 = this.getType(_arg1, _arg2); _local5 = this.getTransition(_arg1, _arg2); _local6 = edges[_local3][_local4][_local5]; Util.addTile(_arg1, _local6); } protected function placeAllEdges(_arg1:Section):void{ var _local2:int; var _local3:Array; var _local4:Direction; _local2 = 0; _local3 = Lib.directions; while (_local2 < _local3.length) { _local4 = _local3[_local2]; _local2++; Util.setArea(_arg1.edge(_local4), this.placeEdgeTile, _local4); }; } } }//package mapgen
Section 92
//PlaceParkingLot (mapgen.PlaceParkingLot) package mapgen { public class PlaceParkingLot { protected static var END_BUILDING:int = 4; protected static var horizontalLot:Array = [[[517, 617], [515, 615], [535, 537], [557, 637], [555, 635]], [[455, 575], [457, 577], [475, 477], [495, 595], [497, 597]], [[518, 618], [458, 578], [478, 478], [558, 638], [498, 598]], [[519, 619], [516, 616], [536, 539], [559, 639], [556, 636]], [[456, 576], [459, 579], [476, 479], [496, 596], [499, 599]]]; protected static var MIDDLE:int = 2; protected static var BEGIN_ROAD:int = 0; protected static var HORIZ:int = 1; protected static var outsideCorner:Array = [[657, 616, 653, 655], [656, 615, 652, 654], [677, 636, 673, 675], [676, 635, 672, 674]]; protected static var END_ROAD:int = 3; protected static var NORMAL:int = 0; protected static var entranceCorner:Array = [[279, 458], [277, 458], [279, 498], [277, 498]]; protected static var insideCorner:Array = [210, 235, 212, 211]; protected static var VERT:int = 0; protected static var BEGIN_BUILDING:int = 1; protected static var verticalLot:Array = [[[357, 355], [417, 415], [418, 358], [359, 356], [419, 416]], [[317, 315], [0x0101, 0xFF], [318, 258], [319, 316], [259, 0x0100]], [[377, 375], [277, 275], [378, 378], [379, 376], [279, 276]], [[397, 395], [437, 435], [438, 398], [399, 396], [439, 436]], [[337, 335], [297, 295], [338, 298], [339, 336], [299, 296]]]; protected static var ENTRANCE:int = 1; public function PlaceParkingLot():void{ } protected function entranceIndex(_arg1:int, _arg2:int, _arg3:Boolean, _arg4:List):int{ var _local5:int; var _local6:int; var _local7:int; var _local8:*; var _local9:Point; _local5 = _arg1; _local6 = _arg2; if (!_arg3){ _local5 = _arg2; _local6 = _arg1; }; _local7 = NORMAL; _local8 = _arg4.iterator(); while (_local8.hasNext()) { _local9 = _local8.next(); if ((((_local5 == _local9.x)) && ((_local6 == _local9.y)))){ _local7 = ENTRANCE; break; }; }; return (_local7); } protected function placeVertical(_arg1:Section, _arg2:List):void{ var _local3:Array; var _local4:Array; _local3 = this.createWithArray(_arg1.getSize().y, _arg1.north, _arg1.south); _local4 = this.createCrossArray(_arg1.getSize().x, _arg1.west, _arg1.east); this.placeTiles(_arg1.offset.y, _arg1.limit.y, _local3, _arg1.offset.x, _arg1.limit.x, _local4, verticalLot, false, _arg2); } public function place(_arg1:Section, _arg2:List, _arg3:Boolean, _arg4:Direction=null):void{ var _local5:List; var _local6:Point; var _local7:*; var _local8:Point; _local5 = new List(); _local6 = null; _local7 = _arg2.iterator(); while (_local7.hasNext()) { _local8 = _local7.next(); _local6 = _local8; _local5.add(_local8.clone()); }; if (_arg4 == null){ if (_local6 != null){ if ((((_local6.y == _arg1.offset.y)) || ((_local6.y == (_arg1.limit.y - 1))))){ _arg4 = Direction.NORTH; } else { _arg4 = Direction.WEST; }; } else { _arg4 = Direction.NORTH; }; }; Util.fillClearTiles(_arg1); Util.fillUnblocked(_arg1); Util.fillBackground(_arg1, BackgroundType.STREET); if ((((_arg4 == Direction.NORTH)) || ((_arg4 == Direction.SOUTH)))){ this.placeHorizontal(_arg1, _local5); } else { this.placeVertical(_arg1, _local5); }; if (_arg3){ this.placeRubble(_arg1); }; } protected function fixEdges(_arg1:Array, _arg2:Street, _arg3:Street):void{ if (_arg2 == null){ _arg1[0] = BEGIN_BUILDING; } else { _arg1[0] = BEGIN_ROAD; }; if (_arg3 == null){ _arg1[(_arg1.length - 1)] = END_BUILDING; } else { _arg1[(_arg1.length - 1)] = END_ROAD; }; } protected function placeRubble(_arg1:Section):void{ var _local2:Point; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; _local2 = _arg1.getSize(); _local3 = (Math.ceil(((_local2.x * _local2.y) * Parameter.rubbleStreetFactor)) + 1); _local4 = Util.rand(_local3); _local5 = 0; while (_local5 < _local4) { var _temp1 = _local5; _local5 = (_local5 + 1); _local6 = _temp1; _local7 = (_arg1.offset.x + Util.rand(_local2.x)); _local8 = (_arg1.offset.y + Util.rand(_local2.y)); Util.placeSingleSalvage(Game.map, _local7, _local8); }; } protected function placeHorizontal(_arg1:Section, _arg2:List):void{ var _local3:Array; var _local4:Array; _local3 = this.createWithArray(_arg1.getSize().x, _arg1.west, _arg1.east); _local4 = this.createCrossArray(_arg1.getSize().y, _arg1.north, _arg1.south); this.placeTiles(_arg1.offset.x, _arg1.limit.x, _local3, _arg1.offset.y, _arg1.limit.y, _local4, horizontalLot, true, _arg2); } protected function createCrossArray(_arg1:int, _arg2:Street, _arg3:Street):Array{ var _local4:Array; var _local5:int; _local4 = []; _local5 = _arg1; if ((_local5 % 3) != 0){ _local4.push(BEGIN_BUILDING); _local4.push(END_BUILDING); _local5 = (_local5 - 2); }; while (_local5 >= 3) { _local4.push(BEGIN_BUILDING); _local4.push(MIDDLE); _local4.push(END_BUILDING); _local5 = (_local5 - 3); }; if (_local5 == 2){ _local4.push(BEGIN_BUILDING); _local4.push(END_BUILDING); }; this.fixEdges(_local4, _arg2, _arg3); return (_local4); } protected function createWithArray(_arg1:int, _arg2:Street, _arg3:Street):Array{ var _local4:Array; var _local5:int; var _local6:int; _local4 = []; _local5 = 0; while (_local5 < _arg1) { var _temp1 = _local5; _local5 = (_local5 + 1); _local6 = _temp1; _local4.push(MIDDLE); }; this.fixEdges(_local4, _arg2, _arg3); return (_local4); } protected function getPoint(_arg1:int, _arg2:int, _arg3:Boolean):Point{ var _local4:Point; _local4 = new Point(_arg1, _arg2); if (!_arg3){ _local4.x = _arg2; _local4.y = _arg1; }; return (_local4); } protected function addEntrances(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Array, _arg6:Boolean, _arg7:List):void{ var _local8:int; var _local9:int; var _local10:int; var _local11:int; _local8 = Math.floor(((_arg1 + _arg2) / 2)); _local9 = 1; _local10 = (_arg5.length - 1); while (_local9 < _local10) { var _temp1 = _local9; _local9 = (_local9 + 1); _local11 = _temp1; if ((((_arg5[_local11] == BEGIN_BUILDING)) || ((_arg5[_local11] == END_BUILDING)))){ _arg7.add(this.getPoint(_local8, (_arg3 + _local11), _arg6)); }; }; } protected function placeSingleTile(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean):void{ var _local5:int; var _local6:int; _local5 = _arg1; _local6 = _arg2; if (!_arg4){ _local5 = _arg2; _local6 = _arg1; }; Util.addTile(new Point(_local5, _local6), _arg3); } protected function placeTiles(_arg1:int, _arg2:int, _arg3:Array, _arg4:int, _arg5:int, _arg6:Array, _arg7:Array, _arg8:Boolean, _arg9:List):void{ var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:int; var _local16:int; var _local17:int; var _local18:int; this.addEntrances(_arg1, _arg2, _arg4, _arg5, _arg6, _arg8, _arg9); _local10 = _arg1; while (_local10 < _arg2) { var _temp1 = _local10; _local10 = (_local10 + 1); _local11 = _temp1; _local12 = (_local11 - _arg1); _local13 = _arg4; while (_local13 < _arg5) { var _temp2 = _local13; _local13 = (_local13 + 1); _local14 = _temp2; _local15 = (_local14 - _arg4); _local16 = _arg3[_local12]; _local17 = _arg6[_local15]; _local18 = this.entranceIndex(_local11, _local14, _arg8, _arg9); this.placeSingleTile(_local11, _local14, _arg7[_local16][_local17][_local18], _arg8); }; }; } public static function addCrossStreet(_arg1:Section, _arg2:Point, _arg3:Direction, _arg4:CrossStreet):void{ if ((((_arg3 == Direction.NORTH)) && (!((_arg1.north == null))))){ _arg1.north.addGreater(_arg2, 1, _arg4); } else { if ((((_arg3 == Direction.SOUTH)) && (!((_arg1.south == null))))){ _arg1.south.addLess(_arg2, 1, _arg4); } else { if ((((_arg3 == Direction.EAST)) && (!((_arg1.east == null))))){ _arg1.east.addLess(_arg2, 1, _arg4); } else { if ((((_arg3 == Direction.WEST)) && (!((_arg1.west == null))))){ _arg1.west.addGreater(_arg2, 1, _arg4); }; }; }; }; } public static function fixCorner(_arg1:Section, _arg2:Section, _arg3:Section, _arg4:int, _arg5:Boolean):void{ var _local6:Direction; var _local7:Direction; var _local8:int; Util.addTile(_arg1.offset, insideCorner[_arg4]); _local6 = PlaceRoot.cornerToVert(_arg4); _local7 = PlaceRoot.cornerToHoriz(_arg4); _local8 = 0; if (_arg2.getStreet(_local6) != null){ _local8 = (_local8 + 2); }; if (_arg2.getStreet(_local7) != null){ _local8 = (_local8 + 1); }; Util.addTile(_arg2.offset, outsideCorner[_arg4][_local8]); _local8 = 0; if (!_arg5){ _local8 = 1; }; Util.addTile(_arg3.offset, entranceCorner[_arg4][_local8]); } } }//package mapgen
Section 93
//PlacePlaza (mapgen.PlacePlaza) package mapgen { public class PlacePlaza extends PlaceRoot { public function PlacePlaza():void{ } public function place(_arg1:Section):void{ Util.fillAddTile(_arg1, 872); Util.fillUnblocked(_arg1); Util.fillBackground(_arg1, BackgroundType.STREET); } } }//package mapgen
Section 94
//PlaceRoot (mapgen.PlaceRoot) package mapgen { public class PlaceRoot { public static var CORNER_COUNT:int = 4; protected static var oppositeCornerTable:Array = [SOUTHWEST, SOUTHEAST, NORTHWEST, NORTHEAST]; public static var NORTHWEST:int = 1; public static var NORTHEAST:int = 0; public static var SOUTHWEST:int = 3; protected static var NORTH:int = 0; public static var SOUTHEAST:int = 2; protected static var SOUTH:int = 1; protected static var WEST:int = 3; protected static var EAST:int = 2; public static function cornerToVert(_arg1:int):Direction{ if ((((_arg1 == NORTHEAST)) || ((_arg1 == NORTHWEST)))){ return (Direction.NORTH); }; return (Direction.SOUTH); } protected static function lessCorner(_arg1:Direction):int{ var _local2:int; var _local3:enum; _local2 = NORTHWEST; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = NORTHWEST; break; case 1: _local2 = SOUTHWEST; break; case 2: _local2 = NORTHEAST; break; case 3: _local2 = NORTHWEST; break; }; return (_local2); } public static function oppositeCorner(_arg1:int):int{ return (oppositeCornerTable[_arg1]); } protected static function clockwiseCorner(_arg1:Direction):int{ var _local2:int; var _local3:enum; _local2 = NORTHEAST; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = NORTHEAST; break; case 1: _local2 = SOUTHWEST; break; case 2: _local2 = SOUTHEAST; break; case 3: _local2 = NORTHWEST; break; }; return (_local2); } public static function cornerToHoriz(_arg1:int):Direction{ if ((((_arg1 == NORTHEAST)) || ((_arg1 == SOUTHEAST)))){ return (Direction.EAST); }; return (Direction.WEST); } protected static function greaterCorner(_arg1:Direction):int{ var _local2:int; var _local3:enum; _local2 = NORTHEAST; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = NORTHEAST; break; case 1: _local2 = SOUTHEAST; break; case 2: _local2 = SOUTHEAST; break; case 3: _local2 = SOUTHWEST; break; }; return (_local2); } } }//package mapgen
Section 95
//PlaceStreetCorner (mapgen.PlaceStreetCorner) package mapgen { public class PlaceStreetCorner extends PlaceRoot { protected static var TWO_LEFT:int = 1; protected static var MULTI_PATCH:int = 11; protected static var VERTICAL:int = 0; protected static var LARGE_ROAD:int = 1; protected static var corners:Array = [[1141, 84, 103, 84, 1151, 1204, 1155, 1157, 1153, 1159, 1143, 1204, 1149], [1140, 81, 102, 81, 1150, 1203, 1154, 1156, 1152, 1158, 1142, 1203, 1148], [1161, 144, 123, 144, 1171, 1224, 1175, 1177, 1173, 1179, 1163, 1224, 1169], [1160, 141, 122, 141, 1170, 1223, 1174, 1176, 1172, 1178, 1162, 1223, 1168]]; protected static var FOUR_MIDDLE:int = 12; protected static var edges:Array = [[20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 29, 24, 25], [11, 31, 51, 71, 91, 111, 131, 151, 171, 191, 191, 91, 111]]; protected static var MULTI_A:int = 3; protected static var MULTI_B:int = 4; protected static var MULTI_C:int = 5; protected static var MULTI_D:int = 6; protected static var MULTI_E:int = 7; protected static var MULTI_F:int = 8; protected static var MULTI_G:int = 9; protected static var HORIZONTAL:int = 1; protected static var TWO_RIGHT:int = 2; protected static var transitions:Array = [[[104, 1145], [83, 1147]], [[101, 1146], [82, 1144]], [[124, 1167], [143, 1165]], [[121, 1164], [142, 1166]]]; protected static var ALLEY:int = 0; protected static var THREE_MIDDLE:int = 10; protected static var types:Array = [[ALLEY], [TWO_LEFT, TWO_RIGHT], [MULTI_A, THREE_MIDDLE, MULTI_F], [MULTI_A, FOUR_MIDDLE, MULTI_D, MULTI_F]]; protected static var SMALL_ROAD:int = 0; public function PlaceStreetCorner():void{ } protected function getType(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:Boolean; _local3 = Tile.NO_TILE; if (_arg2 <= 4){ _local3 = types[(_arg2 - 1)][_arg1]; } else { _local4 = ((_arg2 % 2) == 0); if (_arg1 == 0){ _local3 = MULTI_A; } else { if (_arg1 == (_arg2 - 1)){ _local3 = MULTI_F; } else { if (((_local4) && ((_arg1 == (Math.floor((_arg2 / 2)) - 1))))){ _local3 = MULTI_C; } else { if (((_local4) && ((_arg1 == Math.floor((_arg2 / 2)))))){ _local3 = MULTI_D; } else { if (((!(_local4)) && ((_arg1 == Math.floor((_arg2 / 2)))))){ _local3 = MULTI_G; } else { if (_arg1 < Math.floor((_arg2 / 2))){ if (_arg1 > 1){ _local3 = MULTI_PATCH; } else { _local3 = MULTI_B; }; } else { _local3 = MULTI_E; }; }; }; }; }; }; }; return (_local3); } protected function placeEdge(_arg1:Section, _arg2:Direction, _arg3:int, _arg4:int):void{ var _local5:int; var _local6:int; var _local7:int; _local5 = this.getType(_arg3, _arg4); if ((((_arg2 == Direction.EAST)) || ((_arg2 == Direction.SOUTH)))){ _local5 = this.getType(((_arg4 - _arg3) - 1), _arg4); }; _local6 = VERTICAL; if ((((_arg2 == Direction.SOUTH)) || ((_arg2 == Direction.NORTH)))){ _local6 = HORIZONTAL; }; _local7 = edges[_local6][_local5]; Util.fillAddTile(_arg1, _local7); } public function place(_arg1:Section, _arg2:Direction):void{ var _local3:int; var _local4:Point; var _local5:int; var _local6:Section; var _local7:int; var _local8:int; Util.fillUnblocked(_arg1); Util.fillBackground(_arg1, BackgroundType.STREET); Util.fillClearTiles(_arg1); _local3 = PlaceRoot.clockwiseCorner(_arg2); _local4 = _arg1.getSize(); _local5 = Math.floor(Math.min(_local4.x, _local4.y)); _local6 = _arg1; _local7 = _local5; _local8 = 0; while (_local5 > 0) { _local6 = this.placeNext(_local6, _local3, _local8, _local7); _local4 = _local6.getSize(); _local5 = Math.floor(Math.min(_local4.x, _local4.y)); _local8++; }; } protected function placeNext(_arg1:Section, _arg2:int, _arg3:int, _arg4:int):Section{ var _local5:Direction; var _local6:Direction; var _local7:Section; var _local8:Section; var _local9:Point; var _local10:Section; var _local11:Section; var _local12:Section; _local5 = PlaceRoot.cornerToVert(_arg2); _local6 = PlaceRoot.cornerToHoriz(_arg2); _local7 = _arg1.slice(_local6, 1).remainder(_local5, 1); _local8 = _arg1.slice(_local5, 1).remainder(_local6, 1); _local9 = _arg1.corner(_arg2); if ((((_arg3 == 0)) && ((_arg4 > 1)))){ _local11 = _local7.slice(_local5, 1); _local7 = _local7.remainder(_local5, 1); _local12 = _local8.slice(_local6, 1); _local8 = _local8.remainder(_local6, 1); this.placeTransition(_local11, _local6, _arg2, _arg4); this.placeTransition(_local12, _local5, _arg2, _arg4); }; this.placeEdge(_local7, _local6, _arg3, _arg4); this.placeEdge(_local8, _local5, _arg3, _arg4); this.placeCorner(_local9, _arg2, _arg3, _arg4); _local10 = _arg1.remainder(_local6, 1).remainder(_local5, 1); return (_local10); } protected function placeTransition(_arg1:Section, _arg2:Direction, _arg3:int, _arg4:int):void{ var _local5:int; var _local6:int; var _local7:int; _local5 = VERTICAL; if ((((_arg2 == Direction.NORTH)) || ((_arg2 == Direction.SOUTH)))){ _local5 = HORIZONTAL; }; _local6 = SMALL_ROAD; if (_arg4 > 2){ _local6 = LARGE_ROAD; }; _local7 = transitions[_arg3][_local5][_local6]; Util.fillAddTile(_arg1, _local7); } protected function placeCorner(_arg1:Point, _arg2:int, _arg3:int, _arg4:int):void{ var _local5:int; var _local6:int; _local5 = this.getType(_arg3, _arg4); _local6 = corners[_arg2][_local5]; Util.addTile(_arg1, _local6); } } }//package mapgen
Section 96
//PlaceTerrain (mapgen.PlaceTerrain) package mapgen { public class PlaceTerrain extends PlaceRoot { public static var shallowWater:Terrain = new Terrain(PlaceTerrain.isWater, true, BackgroundType.WATER, [989, 160, 165, 161, 60, 80, 949, 1119, 65, 969, 145, 1118, 64, 1139, 1138, 929]); protected static var cornerOffset:Array = [[new Point(0, -1), new Point(1, -1), new Point(1, 0)], [new Point(0, -1), new Point(-1, -1), new Point(-1, 0)], [new Point(0, 1), new Point(1, 1), new Point(1, 0)], [new Point(0, 1), new Point(-1, 1), new Point(-1, 0)]]; public static var park:Terrain = new Terrain(PlaceTerrain.isPark, false, BackgroundType.PARK, [87, 215, 216, 67, 195, 88, 231, 68, 196, 232, 86, 66, 107, 108, 106, 246]); public static var deepWater:Terrain = new Terrain(PlaceTerrain.isDeepWater, true, BackgroundType.WATER, [147, 166, 168, 167, 126, 146, 1082, 1097, 128, 1086, 148, 1096, 127, 1077, 1095, 994]); public function PlaceTerrain():void{ } public function place(_arg1:Section, _arg2:Terrain):void{ var _local3:Point; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; Util.fillChangeBlocked(_arg1, _arg2.isBlocked()); Util.fillBackground(_arg1, _arg2.getBackground()); Util.fillClearTiles(_arg1); _local3 = new Point(0, 0); _local4 = _arg1.offset.y; _local5 = _arg1.limit.y; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; _local7 = _arg1.offset.x; _local8 = _arg1.limit.x; while (_local7 < _local8) { var _temp2 = _local7; _local7 = (_local7 + 1); _local9 = _temp2; _local3.x = _local9; _local3.y = _local6; _local10 = this.checkCorners(_local3, _arg2); Util.addTile(_local3, _arg2.getCorner(_local10)); }; }; } protected function checkCorners(_arg1:Point, _arg2:Terrain):int{ var _local3:int; var _local4:Point; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:Array; var _local10:Point; var _local11:MapCell; _local3 = 0; _local4 = new Point(0, 0); _local5 = 0; _local6 = PlaceRoot.CORNER_COUNT; while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local7 = _temp1; _local8 = 0; _local9 = cornerOffset[_local7]; while (_local8 < _local9.length) { _local10 = _local9[_local8]; _local8++; _local4.x = (_arg1.x + _local10.x); _local4.y = (_arg1.y + _local10.y); if (!Lib.outsideMap(_local4)){ _local11 = Game.map.getCell(_local4.x, _local4.y); if ((((((((_local11.edit == null)) || (!(_arg2.isTerrain(_local11.edit.getType()))))) && (((!((_local11.getBackground() == _arg2.getBackground()))) || (!((_arg2 == shallowWater))))))) && (!((_local11.getBackground() == BackgroundType.EDGE))))){ _local3 = (_local3 | (1 << _local7)); }; }; }; }; return (_local3); } protected static function isDeepWater(_arg1:EditType):Boolean{ return ((_arg1 == EditBox.DEEP_WATER)); } protected static function isWater(_arg1:EditType):Boolean{ return ((((((_arg1 == EditBox.SHALLOW_WATER)) || ((_arg1 == EditBox.DEEP_WATER)))) || ((_arg1 == EditBox.BRIDGE)))); } protected static function isPark(_arg1:EditType):Boolean{ return ((((((((((_arg1 == EditBox.SHALLOW_WATER)) || ((_arg1 == EditBox.CHURCH)))) || ((_arg1 == EditBox.HOUSE)))) || ((_arg1 == EditBox.PARK)))) || ((_arg1 == EditBox.BRIDGE)))); } } }//package mapgen
Section 97
//Section (mapgen.Section) package mapgen { import flash.*; public class Section { public var east:Street; public var north:Street; public var south:Street; public var offset:Point; public var limit:Point; public var west:Street; public function Section(_arg1:Point=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ this.offset = _arg1.clone(); this.limit = _arg2.clone(); this.north = null; this.south = null; this.east = null; this.west = null; }; } public function northeast():Point{ return (new Point((this.limit.x - 1), this.offset.y)); } public function setStreet(_arg1:Direction, _arg2:Street):void{ var _local3:enum; _local3 = _arg1; switch (_local3.index){ case 0: this.north = _arg2; break; case 1: this.south = _arg2; break; case 2: this.east = _arg2; break; case 3: this.west = _arg2; break; }; } public function southeast():Point{ return (new Point((this.limit.x - 1), (this.limit.y - 1))); } public function slice(_arg1:Direction, _arg2:int):Section{ var _local3:Section; var _local4:enum; _local3 = null; _local4 = _arg1; switch (_local4.index){ case 0: _local3 = new Section(this.offset, new Point(this.limit.x, (this.offset.y + _arg2))); break; case 1: _local3 = new Section(new Point(this.offset.x, (this.limit.y - _arg2)), this.limit); break; case 2: _local3 = new Section(new Point((this.limit.x - _arg2), this.offset.y), this.limit); break; case 3: _local3 = new Section(this.offset, new Point((this.offset.x + _arg2), this.limit.y)); break; }; _local3.north = this.north; _local3.south = this.south; _local3.east = this.east; _local3.west = this.west; _local3.setStreet(Util.opposite(_arg1), null); return (_local3); } public function corner(_arg1:int):Point{ var _local2:Point; _local2 = null; if (_arg1 == PlaceRoot.NORTHEAST){ _local2 = this.northeast(); } else { if (_arg1 == PlaceRoot.NORTHWEST){ _local2 = this.northwest(); } else { if (_arg1 == PlaceRoot.SOUTHEAST){ _local2 = this.southeast(); } else { if (_arg1 == PlaceRoot.SOUTHWEST){ _local2 = this.southwest(); }; }; }; }; return (_local2); } public function randSublot(_arg1:Point):Section{ var _local2:int; var _local3:int; var _local4:Section; _local2 = Util.rand((((this.limit.x - this.offset.x) - _arg1.x) + 1)); _local3 = Util.rand((((this.limit.y - this.offset.y) - _arg1.y) + 1)); _local4 = new Section(new Point((this.offset.x + _local2), (this.offset.y + _local3)), new Point(((this.offset.x + _local2) + _arg1.x), ((this.offset.y + _local3) + _arg1.y))); _local4.north = this.north; _local4.south = this.south; _local4.east = this.east; _local4.west = this.west; return (_local4); } public function extend(_arg1:Direction, _arg2:int):Section{ var _local3:Section; var _local4:enum; _local3 = null; _local4 = _arg1; switch (_local4.index){ case 0: _local3 = new Section(new Point(this.offset.x, (this.offset.y - _arg2)), this.limit); break; case 1: _local3 = new Section(this.offset, new Point(this.limit.x, (this.limit.y + _arg2))); break; case 2: _local3 = new Section(this.offset, new Point((this.limit.x + _arg2), this.limit.y)); break; case 3: _local3 = new Section(new Point((this.offset.x - _arg2), this.offset.y), this.limit); break; }; return (_local3); } public function center():Section{ return (new Section(new Point((this.offset.x + 1), (this.offset.y + 1)), new Point((this.limit.x - 1), (this.limit.y - 1)))); } public function clone():Section{ var _local1:Section; _local1 = new Section(this.offset, this.limit); _local1.north = this.north; _local1.south = this.south; _local1.east = this.east; _local1.west = this.west; return (_local1); } public function contains(_arg1:Point):Boolean{ return ((((((((_arg1.x >= this.offset.x)) && ((_arg1.x < this.limit.x)))) && ((_arg1.y >= this.offset.y)))) && ((_arg1.y < this.limit.y)))); } public function remainder(_arg1:Direction, _arg2:int):Section{ return (this.slice(Util.opposite(_arg1), (this.dirSize(_arg1) - _arg2))); } public function dirSize(_arg1:Direction):int{ var _local2:int; _local2 = 0; if ((((_arg1 == Direction.NORTH)) || ((_arg1 == Direction.SOUTH)))){ _local2 = (this.limit.y - this.offset.y); } else { _local2 = (this.limit.x - this.offset.x); }; return (_local2); } public function isNear(_arg1:Point, _arg2:int):Boolean{ var _local3:int; var _local4:int; _local3 = 0; if (_arg1.x < this.offset.x){ _local3 = (this.offset.x - _arg1.x); } else { if (_arg1.x >= this.limit.x){ _local3 = ((_arg1.x - this.limit.x) + 1); }; }; _local4 = 0; if (_arg1.y < this.offset.y){ _local4 = (this.offset.y - _arg1.y); } else { if (_arg1.y >= this.limit.y){ _local4 = ((_arg1.y - this.limit.y) + 1); }; }; return ((((_local3 < _arg2)) && ((_local4 < _arg2)))); } public function northwest():Point{ return (this.offset.clone()); } public function getSize():Point{ return (new Point((this.limit.x - this.offset.x), (this.limit.y - this.offset.y))); } public function getStreet(_arg1:Direction):Street{ var _local2:Street; var _local3:enum; _local2 = this.north; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = this.north; break; case 1: _local2 = this.south; break; case 2: _local2 = this.east; break; case 3: _local2 = this.west; break; }; return (_local2); } public function centerPoint():Point{ var _local1:int; var _local2:int; _local1 = ((this.limit.x + this.offset.x) - 1); _local2 = ((this.limit.y + this.offset.y) - 1); return (new Point(Math.floor((_local1 / 2)), Math.floor((_local2 / 2)))); } public function southwest():Point{ return (new Point(this.offset.x, (this.limit.y - 1))); } public function edge(_arg1:Direction):Section{ var _local2:Section; var _local3:enum; _local2 = null; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = new Section(new Point((this.offset.x + 1), this.offset.y), new Point((this.limit.x - 1), (this.offset.y + 1))); _local2.north = this.north; break; case 1: _local2 = new Section(new Point((this.offset.x + 1), (this.limit.y - 1)), new Point((this.limit.x - 1), this.limit.y)); _local2.south = this.south; break; case 2: _local2 = new Section(new Point((this.limit.x - 1), (this.offset.y + 1)), new Point(this.limit.x, (this.limit.y - 1))); _local2.east = this.east; break; case 3: _local2 = new Section(new Point(this.offset.x, (this.offset.y + 1)), new Point((this.offset.x + 1), (this.limit.y - 1))); break; }; return (_local2); } public static function save(_arg1:Section){ return ({offset:_arg1.offset.save(), limit:_arg1.limit.save()}); } public static function load(_arg1):Section{ return (new Section(Point.load(_arg1.offset), Point.load(_arg1.limit))); } } }//package mapgen
Section 98
//Street (mapgen.Street) package mapgen { import logic.*; import flash.*; public class Street { protected var isVertical:Boolean; protected var width:int; protected var greater:Array; protected var drawLessEnd:Boolean; protected var less:Array; protected var start:Point; protected var drawGreaterEnd:Boolean; protected var length:int; protected static var road:Array = [[Tile.alley], [Tile.twoLaneLeft, Tile.twoLaneRight], [Tile.multiLaneA, Tile.multiLaneG, Tile.multiLaneF], [Tile.multiLaneA, Tile.multiLaneC, Tile.multiLaneD, Tile.multiLaneF]]; protected static var greaterEdgeHoriz:Array = [[Tile.swCornerFadeBoth, Tile.swCornerFadeBoth, Tile.swCornerFadeBoth, Tile.fadeWestWalkSouth, Tile.fadeWestAlleySouth], [Tile.swCornerFadeSouth, Tile.seCornerFadeSouth, Tile.fadeFromSouth, Tile.walkSouth, Tile.alleySouth], [Tile.seCornerFadeBoth, Tile.seCornerFadeBoth, Tile.seCornerFadeBoth, Tile.fadeEastWalkSouth, Tile.fadeEastAlleySouth]]; protected static var centerVert:Array = [Tile.fadeFromNorth, Tile.centerRoad, Tile.fadeFromSouth]; protected static var centerHoriz:Array = [Tile.fadeFromWest, Tile.centerRoad, Tile.fadeFromEast]; protected static var greaterEdgeVert:Array = [[Tile.neCornerFadeBoth, Tile.neCornerFadeBoth, Tile.neCornerFadeBoth, Tile.fadeNorthWalkEast, Tile.fadeNorthAlleyEast], [Tile.neCornerFadeEast, Tile.seCornerFadeEast, Tile.fadeFromEast, Tile.walkEast, Tile.alleyEast], [Tile.seCornerFadeBoth, Tile.seCornerFadeBoth, Tile.seCornerFadeBoth, Tile.fadeSouthWalkEast, Tile.fadeSouthAlleyEast]]; protected static var lessEdgeVert:Array = [[Tile.nwCornerFadeBoth, Tile.nwCornerFadeBoth, Tile.nwCornerFadeBoth, Tile.fadeNorthWalkWest, Tile.fadeNorthAlleyWest], [Tile.nwCornerFadeWest, Tile.swCornerFadeWest, Tile.fadeFromWest, Tile.walkWest, Tile.alleyWest], [Tile.swCornerFadeBoth, Tile.swCornerFadeBoth, Tile.swCornerFadeBoth, Tile.fadeSouthWalkWest, Tile.fadeSouthAlleyWest]]; protected static var parkingAlleyOverlay:Array = [[649, 650, 648], [669, 670, 668], [609, 629, 628], [610, 630, 608]]; protected static var parkingOverlay:Array = [[590, 591, 236], [450, 451, 238], [651, 671, 239], [611, 631, 237]]; protected static var lessEdgeHoriz:Array = [[Tile.nwCornerFadeBoth, Tile.nwCornerFadeBoth, Tile.nwCornerFadeBoth, Tile.fadeWestWalkNorth, Tile.fadeWestAlleyNorth], [Tile.nwCornerFadeNorth, Tile.neCornerFadeNorth, Tile.fadeFromNorth, Tile.walkNorth, Tile.alleyNorth], [Tile.neCornerFadeBoth, Tile.neCornerFadeBoth, Tile.neCornerFadeBoth, Tile.fadeEastWalkNorth, Tile.fadeEastAlleyNorth]]; public function Street(_arg1:Point=null, _arg2:int=0, _arg3:int=0, _arg4:Boolean=false, _arg5:Street=null, _arg6:Street=null):void{ var _local7:int; var _local8:int; var _local9:CrossStreet; var _local10:int; super(); if (!Boot.skip_constructor){ this.start = _arg1.clone(); this.width = _arg2; this.length = _arg3; this.isVertical = _arg4; this.less = []; this.greater = []; _local7 = 0; _local8 = this.length; while (_local7 < _local8) { var _temp1 = _local7; _local7 = (_local7 + 1); _local10 = _temp1; this.less.push(CrossStreet.NONE); this.greater.push(CrossStreet.NONE); }; _local9 = CrossStreet.NONE; if (this.width == 1){ _local9 = CrossStreet.ALLEY; } else { if (this.width > 1){ _local9 = CrossStreet.ROAD; }; }; if (_arg5 != null){ _arg5.addGreater(this.start, this.width, _local9); }; if (_arg6 != null){ _arg6.addLess(this.start, this.width, _local9); }; this.drawLessEnd = !((_arg5 == null)); this.drawGreaterEnd = !((_arg6 == null)); }; } public function edgeCol(_arg1:int, _arg2:int, _arg3:Array, _arg4:Array):int{ if (((this.isRoad(_arg1, _arg4)) && (!(this.isRoad((_arg1 - 1), _arg4))))){ return (_arg3[_arg2][0]); }; if (((this.isRoad(_arg1, _arg4)) && (!(this.isRoad((_arg1 + 1), _arg4))))){ return (_arg3[_arg2][1]); }; if (this.isRoad(_arg1, _arg4)){ return (_arg3[_arg2][2]); }; if (_arg4[_arg1] == CrossStreet.ALLEY){ return (_arg3[_arg2][4]); }; return (_arg3[_arg2][3]); } public function draw(_arg1:Map, _arg2=null):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; _local3 = 0; _local4 = this.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = 0; _local7 = this.width; while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local8 = _temp2; this.drawTile(_arg1, _local5, _local8); }; }; if (_arg2 != false){ this.fillStreet(_arg1, Parameter.rubbleStreetFactor, this.placeUnbiasedSalvage); if (Game.settings.getEasterEgg() != GameSettings.FIDDLERSGREEN){ this.fillStreet(_arg1, Parameter.zombieStreetFactor, Util.placeSingleZombie); }; }; } protected function calculateOverlay(_arg1:int, _arg2:int):int{ var _local3:int; _local3 = this.calculateLessOverlay(_arg1, _arg2); if (_local3 == Tile.NO_TILE){ _local3 = this.calculateGreaterOverlay(_arg1, _arg2); }; return (_local3); } public function getWidth():int{ return (this.width); } protected function drawTile(_arg1:Map, _arg2:int, _arg3:int):void{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; _local4 = this.calculateTile(_arg2, _arg3); _local5 = 0; _local6 = 0; if (this.isVertical){ _local5 = (this.start.x + _arg3); _local6 = (this.start.y + _arg2); } else { _local5 = (this.start.x + _arg2); _local6 = (this.start.y + _arg3); }; _arg1.getCell(_local5, _local6).clearTiles(); _arg1.getCell(_local5, _local6).addTile(_local4); _local7 = Tile.NO_TILE; _local8 = Tile.NO_TILE; if (this.width > 1){ _local7 = this.calculateOverlay(_arg2, _arg3); } else { _local7 = this.calculateLessOverlay(_arg2, _arg3); _local8 = this.calculateGreaterOverlay(_arg2, _arg3); }; if (_local7 != Tile.NO_TILE){ _arg1.getCell(_local5, _local6).addTile(_local7); }; if (_local8 != Tile.NO_TILE){ _arg1.getCell(_local5, _local6).addTile(_local8); }; if (this.width > 1){ _arg1.getCell(_local5, _local6).setBackground(BackgroundType.STREET); } else { _arg1.getCell(_local5, _local6).setBackground(BackgroundType.ALLEY); }; _arg1.getCell(_local5, _local6).clearBlocked(); } public function setDrawGreater():void{ this.drawGreaterEnd = true; } protected function isCrossed(_arg1:int):Boolean{ return ((((this.less[_arg1] == CrossStreet.ROAD)) || ((this.greater[_arg1] == CrossStreet.ROAD)))); } protected function calculateIntersection(_arg1:int, _arg2:int):int{ if (((!(this.isCrossed((_arg1 - 1)))) && (!(this.isCrossed((_arg1 - 2)))))){ return (this.calculateCol(_arg1, _arg2, Tile.BEGIN)); }; if (((!(this.isCrossed((_arg1 + 1)))) && (!(this.isCrossed((_arg1 + 2)))))){ return (this.calculateCol(_arg1, _arg2, Tile.END)); }; return (this.calculateCol(_arg1, _arg2, Tile.MIDDLE)); } public function addGreater(_arg1:Point, _arg2:int, _arg3:CrossStreet):void{ this.addChild(_arg1, _arg2, _arg3, this.greater); } public function addLess(_arg1:Point, _arg2:int, _arg3:CrossStreet):void{ this.addChild(_arg1, _arg2, _arg3, this.less); } protected function hasAlley(_arg1:int, _arg2:int):Boolean{ return ((((((_arg2 == 0)) && ((this.less[_arg1] == CrossStreet.ALLEY)))) || ((((_arg2 == (this.width - 1))) && ((this.greater[_arg1] == CrossStreet.ALLEY)))))); } public function getLength():int{ return (this.length); } protected function getNormal(_arg1:int, _arg2:int, _arg3:int):int{ var _local4:int; var _local5:int; var _local6:int; _local4 = 0; _local5 = 0; _local6 = 0; if (this.hasAlley(_arg1, _arg2)){ _local5 = this.getAlleyOffset(_arg2); if (this.isVertical){ _local4 = Tile.alleyVertical[_arg3]; _local6 = Tile.verticalFactor; } else { _local4 = Tile.alleyHorizontal[_arg3]; _local6 = Tile.horizontalFactor; }; } else { if (this.width <= 4){ _local5 = road[(this.width - 1)][_arg2]; } else { _local5 = this.roadTile(this.width, _arg2); }; if (this.isVertical){ _local4 = Tile.roadVertical[_arg3]; _local6 = Tile.verticalFactor; } else { _local4 = Tile.roadHorizontal[_arg3]; _local6 = Tile.horizontalFactor; }; }; return ((_local4 + (_local5 * _local6))); } protected function getAlleyOffset(_arg1:int):int{ var _local2:int; _local2 = 0; if (_arg1 == 0){ if (this.width == 2){ _local2 = Tile.alleyCrossTwoLeft; } else { _local2 = Tile.alleyCrossMultiLeft; }; } else { if (this.width == 2){ _local2 = Tile.alleyCrossTwoRight; } else { _local2 = Tile.alleyCrossMultiRight; }; }; return (_local2); } protected function crossedBy(_arg1:int, _arg2:CrossStreet):Boolean{ return ((((this.less[_arg1] == _arg2)) || ((this.greater[_arg1] == _arg2)))); } protected function fillStreet(_arg1:Map, _arg2:Number, _arg3:Function):void{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; _local4 = (Math.ceil(((this.length * this.width) * _arg2)) + 1); _local5 = Util.rand(_local4); _local6 = 0; while (_local6 < _local5) { var _temp1 = _local6; _local6 = (_local6 + 1); _local7 = _temp1; _local8 = 0; _local9 = 0; if (this.isVertical){ _local8 = (this.start.x + Util.rand(this.width)); _local9 = (this.start.y + Util.rand(this.length)); } else { _local8 = (this.start.x + Util.rand(this.length)); _local9 = (this.start.y + Util.rand(this.width)); }; _arg3(_arg1, _local8, _local9); }; } protected function isRoad(_arg1:int, _arg2:Array):Boolean{ return ((_arg2[_arg1] == CrossStreet.ROAD)); } protected function roadTile(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:Boolean; _local3 = Tile.multiLaneG; _local4 = ((_arg1 % 2) == 0); if (_arg2 == 0){ _local3 = Tile.multiLaneA; } else { if (_arg2 == (_arg1 - 1)){ _local3 = Tile.multiLaneF; } else { if (((_local4) && ((_arg2 == (Math.floor((_arg1 / 2)) - 1))))){ _local3 = Tile.multiLaneC; } else { if (((_local4) && ((_arg2 == Math.floor((_arg1 / 2)))))){ _local3 = Tile.multiLaneD; } else { if (((!(_local4)) && ((_arg2 == Math.floor((_arg1 / 2)))))){ _local3 = Tile.multiLaneG; } else { if (_arg2 < Math.floor((_arg1 / 2))){ _local3 = Tile.multiLaneB; } else { _local3 = Tile.multiLaneE; }; }; }; }; }; }; return (_local3); } protected function placeUnbiasedSalvage(_arg1:Map, _arg2:int, _arg3:int):void{ Util.placeSingleSalvage(_arg1, _arg2, _arg3); } protected function calculateLessOverlay(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; _local3 = Tile.NO_TILE; if (_arg2 == 0){ _local4 = 0; if (this.isVertical){ _local4 = 2; }; _local3 = this.genericOverlay(this.less[_arg1], _local4); }; return (_local3); } protected function calculateTile(_arg1:int, _arg2:int):int{ var _local3:int; _local3 = 0; if (_arg1 == 0){ if (this.drawLessEnd){ _local3 = this.getNormal(_arg1, _arg2, Tile.BEGIN); } else { _local3 = this.getNormal(_arg1, _arg2, Tile.MIDDLE); }; } else { if (_arg1 == (this.length - 1)){ if (this.drawGreaterEnd){ _local3 = this.getNormal(_arg1, _arg2, Tile.END); } else { _local3 = this.getNormal(_arg1, _arg2, Tile.MIDDLE); }; } else { if (((((!(this.isCrossed(_arg1))) && (!(this.isCrossed((_arg1 - 1)))))) && (this.isCrossed((_arg1 + 1))))){ if (((!(this.crossedBy(_arg1, CrossStreet.BEGIN_PARKING_ENTRANCE))) && (!(this.crossedBy(_arg1, CrossStreet.PARKING_ENTRANCE))))){ _local3 = this.getNormal(_arg1, _arg2, Tile.END); } else { _local3 = this.getNormal(_arg1, _arg2, Tile.MIDDLE); }; } else { if (((((!(this.isCrossed(_arg1))) && (!(this.isCrossed((_arg1 + 1)))))) && (this.isCrossed((_arg1 - 1))))){ if (((!(this.crossedBy(_arg1, CrossStreet.END_PARKING_ENTRANCE))) && (!(this.crossedBy(_arg1, CrossStreet.PARKING_ENTRANCE))))){ _local3 = this.getNormal(_arg1, _arg2, Tile.BEGIN); } else { _local3 = this.getNormal(_arg1, _arg2, Tile.MIDDLE); }; } else { if (((((this.isCrossed(_arg1)) || (this.isCrossed((_arg1 - 1))))) || (this.isCrossed((_arg1 + 1))))){ _local3 = this.calculateIntersection(_arg1, _arg2); } else { _local3 = this.getNormal(_arg1, _arg2, Tile.MIDDLE); }; }; }; }; }; return (_local3); } protected function genericOverlay(_arg1:CrossStreet, _arg2:int):int{ var _local3:int; var _local4:Array; _local3 = 0; _local4 = parkingOverlay; if (this.width == 1){ _local4 = parkingAlleyOverlay; }; if (_arg1 == CrossStreet.BEGIN_PARKING_ENTRANCE){ _local3 = 0; } else { if (_arg1 == CrossStreet.END_PARKING_ENTRANCE){ _local3 = 1; } else { if (_arg1 == CrossStreet.PARKING_ENTRANCE){ _local3 = 2; } else { return (Tile.NO_TILE); }; }; }; return (_local4[_arg2][_local3]); } public function calculateCol(_arg1:int, _arg2:int, _arg3:int):int{ if (_arg2 == 0){ if (this.isVertical){ return (this.edgeCol(_arg1, _arg3, lessEdgeVert, this.less)); }; return (this.edgeCol(_arg1, _arg3, lessEdgeHoriz, this.less)); } else { if (_arg2 == (this.width - 1)){ if (this.isVertical){ return (this.edgeCol(_arg1, _arg3, greaterEdgeVert, this.greater)); }; return (this.edgeCol(_arg1, _arg3, greaterEdgeHoriz, this.greater)); } else { if (this.isVertical){ return (centerVert[_arg3]); }; }; }; return (!NULL!); } public function addChild(_arg1:Point, _arg2:int, _arg3:CrossStreet, _arg4:Array):void{ var _local5:int; var _local6:int; var _local7:int; var _local8:int; _local5 = 0; if (this.isVertical){ _local5 = (_arg1.y - this.start.y); } else { _local5 = (_arg1.x - this.start.x); }; _local6 = _local5; _local7 = (_local5 + _arg2); while (_local6 < _local7) { var _temp1 = _local6; _local6 = (_local6 + 1); _local8 = _temp1; _arg4[_local8] = _arg3; }; } protected function calculateGreaterOverlay(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; _local3 = Tile.NO_TILE; if (_arg2 == (this.width - 1)){ _local4 = 0; if (this.isVertical){ _local4 = 2; }; _local3 = this.genericOverlay(this.greater[_arg1], (_local4 + 1)); }; return (_local3); } public function setDrawLess():void{ this.drawLessEnd = true; } } }//package mapgen
Section 99
//Terrain (mapgen.Terrain) package mapgen { import flash.*; public class Terrain { protected var blocked:Boolean; protected var background:BackgroundType; protected var terrainFunc:Function; protected var corners:Array; public function Terrain(_arg1:Function=null, _arg2:Boolean=false, _arg3:BackgroundType=null, _arg4:Array=null):void{ if (!Boot.skip_constructor){ this.terrainFunc = _arg1; this.blocked = _arg2; this.background = _arg3; this.corners = _arg4; }; } public function isBlocked():Boolean{ return (this.blocked); } public function getBackground():BackgroundType{ return (this.background); } public function getCorner(_arg1:int):int{ return (this.corners[_arg1]); } public function isTerrain(_arg1:EditType):Boolean{ return (this.terrainFunc(_arg1)); } } }//package mapgen
Section 100
//Util (mapgen.Util) package mapgen { import logic.*; import twister.*; import haxe.*; public class Util { public static var HOUSE:int = 8; public static var PARKING_LOT:int = 9; public static var APARTMENT:int = 1; public static var MALL:int = 7; protected static var churchEntrances:Array = [new Point(1, 0), new Point(1, 2), new Point(2, 1), new Point(0, 1)]; public static var CHURCH:int = 5; public static var HARDWARE_STORE:int = 4; public static var HOSPITAL:int = 6; public static var STANDARD:int = 0; protected static var houseEntrances:Array = [new Point(1, 0), new Point(0, 1), new Point(1, 1), new Point(0, 0)]; protected static var generator:Twister = null; public static var SUPERMARKET:int = 2; public static var POLICE_STATION:int = 3; protected static function fillInGaps(_arg1:Point, _arg2, _arg3:Grid):void{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:Point; _local4 = 1; _local5 = (_arg2.y - 1); while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; _local7 = 1; _local8 = (_arg2.x - 1); while (_local7 < _local8) { var _temp2 = _local7; _local7 = (_local7 + 1); _local9 = _temp2; if (neitherTouchBlockedGap(_local9, _local6, _arg1, _arg3)){ _local10 = new Point((_local9 + _arg1.x), (_local6 + _arg1.y)); addRandTile(_local10, Tile.trees); changeBlocked(_local10, true); }; }; }; } public static function setArea(_arg1:Section, _arg2:Function, _arg3):void{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:Point; _local4 = _arg1.offset.y; _local5 = _arg1.limit.y; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; _local7 = _arg1.offset.x; _local8 = _arg1.limit.x; while (_local7 < _local8) { var _temp2 = _local7; _local7 = (_local7 + 1); _local9 = _temp2; _local10 = new Point(_local9, _local6); _arg2(_local10, _arg3); }; }; } public static function fillBackground(_arg1:Section, _arg2:BackgroundType):void{ setArea(_arg1, Util.setBackground, _arg2); } public static function drawBuilding(_arg1:Section, _arg2:Building, _arg3=null):void{ var _local4:Boolean; var _local5:int; var _local6:PlaceParkingLot; var _local7:Point; var _local8:Direction; var _local9:Point; var _local10:List; var _local11:Direction; var _local12:int; var _local13:BuildingRoot; _local4 = true; if (_arg3 == false){ _local4 = false; }; _local5 = _arg2.getType(); if (_local5 == PARKING_LOT){ _local6 = new PlaceParkingLot(); _local7 = _arg2.getEntrance(); _local8 = _arg2.getEntranceDir(); _local9 = null; if ((((_local7.x == (_arg1.limit.x - 1))) && ((((_local8 == Direction.NORTH)) || ((_local8 == Direction.SOUTH)))))){ _local9 = new Point(_arg1.offset.x, _local7.y); }; if ((((_local7.y == (_arg1.limit.y - 1))) && ((((_local8 == Direction.EAST)) || ((_local8 == Direction.WEST)))))){ _local9 = new Point(_local7.x, _arg1.offset.y); }; _local10 = new List(); _local10.add(_local7); if (_local9 == null){ PlaceParkingLot.addCrossStreet(_arg1, _local7, _local8, CrossStreet.PARKING_ENTRANCE); } else { _local10.add(_local9); PlaceParkingLot.addCrossStreet(_arg1, _local9, _local8, CrossStreet.BEGIN_PARKING_ENTRANCE); PlaceParkingLot.addCrossStreet(_arg1, _local7, _local8, CrossStreet.END_PARKING_ENTRANCE); }; _local11 = Lib.rotateCW(_local8); _local12 = _arg1.dirSize(_local11); if ((((_local12 == 2)) || ((_local12 == 3)))){ _local6.place(_arg1, _local10, _local4, Lib.rotateCW(_local8)); } else { _local6.place(_arg1, _local10, _local4, _local8); }; } else { _local13 = null; if (_local5 == CHURCH){ _local13 = new BuildingChurch(_arg2); } else { if (_local5 == HOSPITAL){ _local13 = new BuildingHospital(_arg2); } else { if (_local5 == HOUSE){ _local13 = new BuildingHouse(_arg2); } else { if (_local5 == MALL){ _local13 = new BuildingMall(_arg2, _arg1); } else { if (_local5 == HARDWARE_STORE){ _local13 = new BuildingHardware(_arg2); } else { if (_local5 == POLICE_STATION){ _local13 = new BuildingPolice(_arg2); } else { _local13 = new BuildingGeneric(_arg2); }; }; }; }; }; }; _local13.place(_arg1); }; } public static function fillClearTiles(_arg1:Section):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; _local2 = _arg1.offset.y; _local3 = _arg1.limit.y; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local5 = _arg1.offset.x; _local6 = _arg1.limit.x; while (_local5 < _local6) { var _temp2 = _local5; _local5 = (_local5 + 1); _local7 = _temp2; clearTiles(new Point(_local7, _local4)); }; }; } public static function changeBlocked(_arg1:Point, _arg2:Boolean):void{ if (_arg2){ Game.map.getCell(_arg1.x, _arg1.y).setBlocked(); } else { Game.map.getCell(_arg1.x, _arg1.y).clearBlocked(); }; } public static function forcePlaceZombie(_arg1:int, _arg2:int):void{ var _local3:int; var _local4:Zombie; _local3 = Lib.directionToAngle(randDirection()); _local4 = new Zombie(_arg1, _arg2, _local3, _arg1, _arg2, Zombie.START_SPAWN); } public static function rand(_arg1:int):int{ return ((generator.getPositiveInt() % _arg1)); } public static function setBackground(_arg1:Point, _arg2:BackgroundType):void{ Game.map.getCell(_arg1.x, _arg1.y).setBackground(_arg2); } protected static function chooseRandEntrance(_arg1:Section, _arg2:Direction, _arg3:int):Point{ if (_arg2 == Direction.NORTH){ return (new Point((rand(((_arg1.limit.x - _arg1.offset.x) - (_arg3 * 2))) + _arg3), 0)); }; if (_arg2 == Direction.SOUTH){ return (new Point((rand(((_arg1.limit.x - _arg1.offset.x) - (_arg3 * 2))) + _arg3), ((_arg1.limit.y - _arg1.offset.y) - 1))); }; if (_arg2 == Direction.EAST){ return (new Point(((_arg1.limit.x - _arg1.offset.x) - 1), (rand(((_arg1.limit.y - _arg1.offset.y) - (_arg3 * 2))) + _arg3))); }; return (new Point(0, (rand(((_arg1.limit.y - _arg1.offset.y) - (_arg3 * 2))) + _arg3))); } public static function addRandTile(_arg1:Point, _arg2:Array):void{ var _local3:int; _local3 = rand(_arg2.length); addTile(_arg1, _arg2[_local3]); } public static function placeSingleZombie(_arg1:Map, _arg2:int, _arg3:int):void{ var _local4:Point; var _local5:int; var _local6:int; _local4 = Game.settings.getStart(); _local5 = Math.floor(Math.abs((_arg2 - _local4.x))); _local6 = Math.floor(Math.abs((_arg3 - _local4.y))); if ((((_local5 > Option.hqInfluence)) || ((_local6 > Option.hqInfluence)))){ if (_arg1.getCell(_arg2, _arg3).getBuilding() != null){ _arg1.getCell(_arg2, _arg3).getBuilding().addZombies(1); } else { if (!_arg1.getCell(_arg2, _arg3).isBlocked()){ forcePlaceZombie(_arg2, _arg3); }; }; }; } protected static function neitherTouchBlockedGap(_arg1:int, _arg2:int, _arg3:Point, _arg4:Grid):Boolean{ return (((!(_arg4.get(_arg1, _arg2))) && (!(Game.map.getCell((_arg1 + _arg3.x), (_arg2 + _arg3.y)).isBlocked())))); } public static function blockRandom(_arg1:Section, _arg2:Array, _arg3:Array):void{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:Point; var _local11:int; _local4 = ((_arg1.limit.x - _arg1.offset.x) * (_arg1.limit.y - _arg1.offset.y)); _local5 = Math.floor((_local4 / 3)); _local6 = 0; while (_local6 < _local5) { var _temp1 = _local6; _local6 = (_local6 + 1); _local7 = _temp1; _local8 = (rand((_arg1.limit.x - _arg1.offset.x)) + _arg1.offset.x); _local9 = (rand((_arg1.limit.y - _arg1.offset.y)) + _arg1.offset.y); if (Game.map.getCell(_local8, _local9).getTiles().length <= 1){ _local10 = new Point(_local8, _local9); _local11 = randWeightedIndex(_arg3); addRandTile(_local10, _arg2[_local11]); changeBlocked(_local10, true); }; }; } public static function clearTiles(_arg1:Point):void{ Game.map.getCell(_arg1.x, _arg1.y).clearTiles(); } public static function subdivide(_arg1:Section, _arg2:int, _arg3:List):void{ var _local4:Division; _local4 = new Division(_arg2); _local4.split(_arg1, 0); if ((((_local4.getLeft() == null)) || ((_local4.getRight() == null)))){ _arg3.add(_arg1); } else { subdivide(_local4.getLeft(), _arg2, _arg3); subdivide(_local4.getRight(), _arg2, _arg3); }; } protected static function chooseBuildingType(_arg1:Section, _arg2):int{ var _local3:int; _local3 = STANDARD; if (_arg2 == null){ if (_arg1.isNear(Game.settings.getStart(), Option.hqInfluence)){ _local3 = randWeightedIndex(Option.hqBuildingDistribution); } else { if ((((Game.settings.getEasterEgg() == GameSettings.CUMBERLAND)) && ((rand(10) < 2)))){ _local3 = HOSPITAL; } else { _local3 = randWeightedIndex(Option.buildingDistribution); if ((((_local3 == STANDARD)) && ((Game.settings.getEasterEgg() == GameSettings.RACCOONCITY)))){ _local3 = randWeightedIndex(Option.buildingDistribution); }; }; }; } else { _local3 = _arg2; }; return (_local3); } public static function calculateDir(_arg1:Point, _arg2:Section):Direction{ var _local3:Direction; _local3 = Direction.EAST; if (_arg1 != null){ if (_arg1.x == _arg2.offset.x){ _local3 = Direction.WEST; } else { if (_arg1.y == _arg2.offset.y){ _local3 = Direction.NORTH; } else { if (_arg1.y == (_arg2.limit.y - 1)){ _local3 = Direction.SOUTH; }; }; }; }; return (_local3); } protected static function markGaps(_arg1:Point, _arg2:Point, _arg3:List, _arg4:Grid):void{ var _local5:Array; var _local6:Point; var _local7:int; var _local8:int; var _local9:int; var _local10:int; _local5 = [new Point(0, -1), new Point(0, 1), new Point(1, 0), new Point(-1, 0)]; while (!(_arg3.isEmpty())) { _local6 = _arg3.pop(); _local7 = 0; while (_local7 < 4) { var _temp1 = _local7; _local7 = (_local7 + 1); _local8 = _temp1; _local9 = (_local6.x + _local5[_local8].x); _local10 = (_local6.y + _local5[_local8].y); if ((((((((((_local9 >= 0)) && ((_local9 < _arg2.x)))) && ((_local10 >= 0)))) && ((_local10 < _arg2.y)))) && (neitherTouchBlockedGap(_local9, _local10, _arg1, _arg4)))){ _arg4.set(_local9, _local10, true); _arg3.add(new Point(_local9, _local10)); }; }; }; } public static function createBuilding(_arg1:Section, _arg2=null, _arg3:Direction=null):Building{ var _local4:int; var _local5:Building; var _local6:Direction; var _local7:Point; _local4 = chooseBuildingType(_arg1, _arg2); _local5 = new Building(_local4); _local6 = _arg3; if (_local6 == null){ _local6 = chooseEntranceDir(_arg1); }; _local7 = chooseEntrance(_arg1, _local6, _local4); if (_local4 != POLICE_STATION){ _local5.addLot(_arg1); _local5.setEntrance(_local7, _local6); }; if (_local4 != PARKING_LOT){ Game.map.addBuilding(_local5); if (_local4 != POLICE_STATION){ _local5.attach(); }; }; return (_local5); } public static function randWeightedIndex(_arg1:Array):int{ return (Lib.randWeightedIndex(_arg1, generator)); } public static function fillChangeBlocked(_arg1:Section, _arg2:Boolean):void{ setArea(_arg1, Util.changeBlocked, _arg2); } public static function randDirection():Direction{ return (Lib.randDirection(generator)); } public static function getNormal(_arg1:String, _arg2:int):String{ var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:String; var _local8:StringBuf; var _local9:int; var _local10:int; var _local11:int; var _local12:*; _local3 = "a"["charCodeAt"](0); _local4 = "z"["charCodeAt"](0); _local5 = "0"["charCodeAt"](0); _local6 = "9"["charCodeAt"](0); _local7 = (_arg1.toLowerCase() + Std.string(_arg2)); _local8 = new StringBuf(); _local9 = 0; _local10 = _local7.length; while (_local9 < _local10) { var _temp1 = _local9; _local9 = (_local9 + 1); _local11 = _temp1; _local12 = _local7["charCodeAt"](_local11); if ((((((_local12 >= _local3)) && ((_local12 <= _local4)))) || ((((_local12 >= _local5)) && ((_local12 <= _local6)))))){ _local8.addChar(_local12); }; }; return (_local8.toString()); } protected static function chooseEntranceDir(_arg1:Section):Direction{ var _local2:Array; var _local3:Array; var _local4:Array; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; _local2 = [_arg1.north, _arg1.south, _arg1.east, _arg1.west]; _local3 = [Direction.NORTH, Direction.SOUTH, Direction.EAST, Direction.WEST]; _local4 = []; _local5 = 0; _local6 = 0; _local7 = _local2.length; while (_local6 < _local7) { var _temp1 = _local6; _local6 = (_local6 + 1); _local9 = _temp1; if (_local2[_local9] != null){ if (_local2[_local9].getWidth() > _local5){ while (_local4.length > 0) { _local4.pop(); }; _local5 = _local2[_local9].getWidth(); }; if (_local2[_local9].getWidth() >= _local5){ _local4.push(_local9); }; }; }; _local8 = _local4[rand(_local4.length)]; return (_local3[_local8]); } public static function fillBlockedGaps(_arg1:Section):void{ var _local2:Point; var _local3:Point; var _local4:Grid; var _local5:int; var _local6:int; var _local7:List; var _local8:int; var _local9:int; var _local10:int; var _local11:int; _local2 = new Point(_arg1.offset.x, _arg1.offset.y); _local3 = new Point(_arg1.getSize().x, _arg1.getSize().y); _local4 = new Grid(_local3.x, _local3.y); _local5 = 0; _local6 = _local3.y; while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local8 = _temp1; _local9 = 0; _local10 = _local3.x; while (_local9 < _local10) { var _temp2 = _local9; _local9 = (_local9 + 1); _local11 = _temp2; _local4.set(_local11, _local8, false); }; }; _local7 = new List(); setupGapQueue(_arg1, _local3, _local7, _local4); markGaps(_local2, _local3, _local7, _local4); fillInGaps(_local2, _local3, _local4); } public static function opposite(_arg1:Direction):Direction{ var _local2:Direction; var _local3:enum; _local2 = Direction.SOUTH; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = Direction.SOUTH; break; case 1: _local2 = Direction.NORTH; break; case 2: _local2 = Direction.WEST; break; case 3: _local2 = Direction.EAST; break; }; return (_local2); } public static function fillBlocked(_arg1:Section):void{ setArea(_arg1, Util.changeBlocked, true); } public static function fillAddTile(_arg1:Section, _arg2:int):void{ setArea(_arg1, Util.addTile, _arg2); } public static function chooseEntrance(_arg1:Section, _arg2:Direction, _arg3:int):Point{ var _local4:int; var _local5:Point; _local4 = Lib.directionToIndex(_arg2); _local5 = null; if (_arg3 == CHURCH){ _local5 = churchEntrances[_local4]; } else { if (_arg3 == HOUSE){ _local5 = houseEntrances[_local4]; } else { if (_arg3 == MALL){ _local5 = chooseRandEntrance(_arg1, _arg2, 2); } else { _local5 = chooseRandEntrance(_arg1, _arg2, 1); }; }; }; return (new Point((_arg1.offset.x + _local5.x), (_arg1.offset.y + _local5.y))); } public static function addTile(_arg1:Point, _arg2:int):void{ Game.map.getCell(_arg1.x, _arg1.y).addTile(_arg2); } public static function fillUnblocked(_arg1:Section):void{ setArea(_arg1, Util.changeBlocked, false); } public static function seed(_arg1:String, _arg2:Point=null, _arg3:Point=null):void{ var _local4:String; var _local5:Array; var _local6:String; var _local7:int; var _local8:int; var _local9:int; var _local10:String; var _local11:*; _local4 = _arg1; if (_arg2 != null){ _local4 = (_local4 + _arg2.toString()); }; if (_arg3 != null){ _local4 = (_local4 + _arg3.toString()); }; _local5 = []; _local6 = Md5.encode(_local4); _local7 = 0; while (_local7 < 4) { var _temp1 = _local7; _local7 = (_local7 + 1); _local8 = _temp1; _local9 = (_local8 * 4); _local10 = ("0x" + _local6.substr(_local9, 4)); _local11 = Std._parseInt(_local10); if (_local11 == null){ Lib.trace(("nextSeed is null: " + _local10)); } else { _local5.push(_local11); }; }; Util.generator = new Twister(null, _local5); } public static function fillWithBorder(_arg1:Section, _arg2:Array):void{ fillClearTiles(_arg1); addTile(_arg1.northwest(), _arg2[0]); addTile(_arg1.northeast(), _arg2[2]); addTile(_arg1.southwest(), _arg2[6]); addTile(_arg1.southeast(), _arg2[8]); fillAddTile(_arg1.edge(Direction.NORTH), _arg2[1]); fillAddTile(_arg1.edge(Direction.WEST), _arg2[3]); fillAddTile(_arg1.edge(Direction.EAST), _arg2[5]); fillAddTile(_arg1.edge(Direction.SOUTH), _arg2[7]); if (_arg2[4] != Tile.NO_TILE){ fillAddTile(_arg1.center(), _arg2[4]); }; } protected static function addToGapQueue(_arg1:Point, _arg2:List, _arg3:Grid):void{ _arg3.set(_arg1.x, _arg1.y, true); _arg2.add(_arg1); } protected static function setupGapQueue(_arg1:Section, _arg2:Point, _arg3:List, _arg4:Grid):void{ var _local5:Section; var _local6:int; var _local7:Array; var _local8:Direction; var _local9:Section; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:int; _local5 = _arg1.clone(); _local5.limit = _arg1.getSize(); _local5.offset = new Point(0, 0); _local6 = 0; _local7 = Lib.directions; while (_local6 < _local7.length) { _local8 = _local7[_local6]; _local6++; if (_local5.getStreet(_local8) != null){ _local9 = _local5.edge(_local8); _local10 = _local9.offset.y; _local11 = _local9.limit.y; while (_local10 < _local11) { var _temp1 = _local10; _local10 = (_local10 + 1); _local12 = _temp1; _local13 = _local9.offset.x; _local14 = _local9.limit.x; while (_local13 < _local14) { var _temp2 = _local13; _local13 = (_local13 + 1); _local15 = _temp2; addToGapQueue(new Point(_local15, _local12), _arg3, _arg4); }; }; }; }; if (((!((_local5.north == null))) || (!((_local5.west == null))))){ addToGapQueue(_local5.northwest(), _arg3, _arg4); }; if (((!((_local5.north == null))) || (!((_local5.east == null))))){ addToGapQueue(_local5.northeast(), _arg3, _arg4); }; if (((!((_local5.south == null))) || (!((_local5.west == null))))){ addToGapQueue(_local5.southwest(), _arg3, _arg4); }; if (((!((_local5.south == null))) || (!((_local5.east == null))))){ addToGapQueue(_local5.southeast(), _arg3, _arg4); }; } public static function shuffle(_arg1:Array):void{ Lib.shuffle(_arg1, generator); } public static function addRoofOverlay(_arg1:Point, _arg2:Array):void{ var _local3:int; if (rand(100) < Parameter.roofOverlayChance){ _local3 = rand(_arg2.length); addTile(_arg1, _arg2[_local3]); }; } public static function placeSingleSalvage(_arg1:Map, _arg2:int, _arg3:int, _arg4:Resource=null):void{ var _local5:Building; var _local6:Array; var _local7:int; var _local8:Resource; var _local9:int; var _local10:int; _local5 = _arg1.getCell(_arg2, _arg3).getBuilding(); _local6 = Option.groundSalvageDistribution; if (_local5 != null){ _local6 = Option.salvageDistribution[_local5.getType()]; }; _local7 = randWeightedIndex(_local6); _local8 = Lib.indexToResource(_local7); if (_arg4 != null){ _local7 = Lib.resourceToIndex(_arg4); _local8 = _arg4; }; _local9 = Lib.truckLoad(_local8); if (_local5 != null){ _local5.getSalvage().addResource(_local8, _local9); } else { if (((((!(_arg1.getCell(_arg2, _arg3).isBlocked())) && (!((_local8 == Resource.SURVIVORS))))) && (!(_arg1.getCell(_arg2, _arg3).hasTower())))){ _local10 = randWeightedIndex(Parameter.rubbleWeight); _arg1.getCell(_arg2, _arg3).addRubble(_local8, _local9, _local10); }; }; } } }//package mapgen
Section 101
//EditMenuItem (native.EditMenuItem) package native { public class EditMenuItem { public var label:String; public var icon:String; public var data; public function EditMenuItem(_arg1:String, _arg2):void{ label = _arg1; data = _arg2; icon = ""; } } }//package native
Section 102
//NativeBase (native.NativeBase) package native { public class NativeBase { public static function removeWhitespace(_arg1:String):String{ var _local2:*; _local2 = new RegExp("\\s", "g"); return (_arg1.replace(_local2, "")); } public static function nativeTrace(_arg1):void{ trace(_arg1); } } }//package native
Section 103
//Twister (twister.Twister) package twister { import flash.*; public class Twister { protected var statePos:int; protected var state:Array; protected static var MAG01:Array = [0, -1727483681]; protected static var LOWER_MASK:int = 2147483647; protected static var UPPER_MASK:int = -2147483648; protected static var M:int = 397; protected static var N:int = 624; public function Twister(_arg1=null, _arg2:Array=null):void{ var _local3:int; var _local4:int; var _local5:int; super(); if (!Boot.skip_constructor){ this.state = new Array(); if (_arg2 != null){ this.init(19650218); _local3 = 1; _local4 = 0; _local5 = ((Twister.N > _arg2.length)) ? N : _arg2.length; while (_local5 > 0) { this.state[_local3] = (((this.state[_local3] ^ this.unsignedMultiply((this.state[(_local3 - 1)] ^ (this.state[(_local3 - 1)] >>> 30)), 1664525)) + _arg2[_local4]) + _local4); ++_local3; if (_local3 >= N){ this.state[0] = this.state[(Twister.N - 1)]; _local3 = 1; }; ++_local4; if (_local4 >= _arg2.length){ _local4 = 0; }; _local5--; }; _local5 = (Twister.N - 1); while (_local5 > 0) { this.state[_local3] = ((this.state[_local3] ^ this.unsignedMultiply((this.state[(_local3 - 1)] ^ (this.state[(_local3 - 1)] >>> 30)), 1566083941)) - _local3); ++_local3; if (_local3 >= N){ this.state[0] = this.state[(Twister.N - 1)]; _local3 = 1; }; _local5--; }; this.state[0] = UPPER_MASK; } else { if (_arg1 == null){ _arg1 = Math.floor(Date["now"]().getTime()); }; this.init(_arg1); }; this.statePos = N; }; } public function getInt():int{ var _local1:int; var _local2:int; if (this.statePos >= N){ _local2 = 0; while (_local2 < (Twister.N - M)) { _local1 = ((this.state[_local2] & UPPER_MASK) | (this.state[(_local2 + 1)] & LOWER_MASK)); this.state[_local2] = ((this.state[(_local2 + M)] ^ (_local1 >>> 1)) ^ MAG01[(_local1 & 1)]); _local2++; }; while (_local2 < (Twister.N - 1)) { _local1 = ((this.state[_local2] & UPPER_MASK) | (this.state[(_local2 + 1)] & LOWER_MASK)); this.state[_local2] = ((this.state[(_local2 + (Twister.M - N))] ^ (_local1 >>> 1)) ^ MAG01[(_local1 & 1)]); _local2++; }; _local1 = ((this.state[(Twister.N - 1)] & UPPER_MASK) | (this.state[0] & LOWER_MASK)); this.state[(Twister.N - 1)] = ((this.state[(Twister.M - 1)] ^ (_local1 >>> 1)) ^ MAG01[(_local1 & 1)]); this.statePos = 0; }; _local1 = this.state[this.statePos++]; _local1 = (_local1 ^ (_local1 >>> 11)); _local1 = (_local1 ^ ((_local1 << 7) & -1658038656)); _local1 = (_local1 ^ ((_local1 << 15) & -272236544)); _local1 = (_local1 ^ (_local1 >>> 18)); return (_local1); } public function getFloat():Number{ return ((this.getInt() / 4294967295)); } public function getPositiveInt():int{ return ((this.getInt() >>> 1)); } protected function init(_arg1:int):void{ var _local2:int; var _local3:int; var _local4:int; this.state[0] = _arg1; _local2 = 1; _local3 = N; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; this.state[_local4] = (this.unsignedMultiply(1812433253, (this.state[(_local4 - 1)] ^ (this.state[(_local4 - 1)] >>> 30))) + _local4); }; } public function getFloatExclusive():Number{ return ((this.getInt() / 4294967296)); } protected function unsignedMultiply(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; _arg1 = (_arg1 & -1); _arg2 = (_arg2 & -1); _local3 = 1; _local4 = 0; _local5 = 0; while (_local5 < 32) { var _temp1 = _local5; _local5 = (_local5 + 1); _local6 = _temp1; if ((_arg2 & _local3) != 0){ _local4 = (_local4 + _arg1); }; _arg1 = (_arg1 << 1); _local3 = (_local3 << 1); }; return (_local4); } } }//package twister
Section 104
//AccuracyClip (ui.menu.AccuracyClip) package ui.menu { import flash.display.*; public dynamic class AccuracyClip extends MovieClip { public var bar:MovieClip; } }//package ui.menu
Section 105
//BarricadeMenuClip (ui.menu.BarricadeMenuClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class BarricadeMenuClip extends MovieClip { public var boardsQuota:TextField; public var boardsIcon:MovieClip; public var quota:TextField; public var boardsDown:ButtonMinus; public var boardsQuotaBackground:MovieClip; public var boardsStock:TextField; public var boardsUp:ButtonPlus; public var boardsStockBackground:MovieClip; public function BarricadeMenuClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 106
//Bookmark (ui.menu.Bookmark) package ui.menu { import flash.*; public class Bookmark { public var pos:int; public var name:String; public function Bookmark(_arg1:String=null, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.name = _arg1; this.pos = _arg2; }; } } }//package ui.menu
Section 107
//BuildMenu (ui.menu.BuildMenu) package ui.menu { import flash.display.*; import flash.events.*; import logic.*; import ui.*; import flash.*; public class BuildMenu { protected var clip:BuildMenuClip; protected var action:int; protected var buttonList:ButtonList; protected static var DEPOT:int = 1; protected static var SNIPER:int = 2; protected static var WORKSHOP:int = 3; protected static var BARRICADE:int = 0; protected static var NO_ACTION:int = -1; public function BuildMenu(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ if (!Boot.skip_constructor){ this.clip = new BuildMenuClip(); _arg1.addChild(this.clip); this.clip.visible = true; this.clip.mouseEnabled = false; this.buttonList = new ButtonList(this.click, this.hover, [this.clip.barricade, this.clip.depot, this.clip.sniper, this.clip.workshop]); this.clip.addEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.resize(_arg2); this.action = NO_ACTION; }; } public function clickTower(_arg1:Point):void{ var _local2:Point; _local2 = Game.select.getSelected(); if (this.action == NO_ACTION){ this.changeSelect(_arg1); Util.success(); } else { Util.failure(); if (!Main.key.shift()){ this.resetAction(); }; Game.view.warning.show(Text.towerWarning); }; } public function cleanup():void{ this.clip.removeEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.buttonList.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function resetAction():void{ this.action = NO_ACTION; Game.floater.stop(); Game.script.trigger(Script.CANCEL_BUILD); } public function hoverBackground(_arg1:Point):void{ var _local2:String; var _local3:MapCell; var _local4:int; _local2 = null; _local3 = Game.map.getCell(_arg1.x, _arg1.y); if (this.action == NO_ACTION){ if (_local3.hasShadow()){ _local2 = Text.hoverPlanTip; } else { if (_local3.feature != null){ _local2 = _local3.feature.getHoverTip(); } else { if (_local3.hasZombies()){ _local2 = Text.hoverZombieTip; } else { if (_local3.getBuilding() != null){ _local2 = _local3.getBuilding().getToolTip(); } else { if (_local3.hasRubble()){ _local2 = Text.hoverRubbleTip; }; }; }; }; }; } else { if (_local3.hasShadow()){ _local2 = Text.backgroundBuildShadowTip; } else { if (_local3.hasZombies()){ _local2 = Text.backgroundBuildZombieTip; } else { if (_local3.getBackground() == BackgroundType.BRIDGE){ _local2 = Text.backgroundBuildBridgeTip; } else { if (!Tower.isSupplied(_arg1.x, _arg1.y)){ _local2 = Text.backgroundBuildSupplyTip(Std.string(Option.supplyRange)); } else { if (this.getBuildType(this.action) == Tower.WORKSHOP){ if (((!((_local3.getBuilding() == null))) && (_local3.getBuilding().hasZombies()))){ _local2 = Text.workshopBuildingZombiesTip; } else { if (((!((_local3.getBuilding() == null))) && (!(_local3.getBuilding().hasResources())))){ _local2 = Text.workshopBuildingEmptyTip; } else { if (_local3.getBackground() == BackgroundType.BUILDING){ _local2 = Text.workshopBuildingTip; } else { if (_local3.isBlocked()){ _local2 = Text.backgroundBuildBlockedTip; } else { if (_local3.getBackground() == BackgroundType.ENTRANCE){ _local2 = Text.workshopEntranceTip; } else { if (_local3.feature != null){ _local2 = _local3.feature.getWorkshopTip(); } else { if (_local3.hasRubble()){ _local2 = Text.workshopRubbleTip; } else { _local2 = Text.workshopBackgroundTip; }; }; }; }; }; }; }; } else { _local4 = this.getBuildType(this.action); if (_local3.isBlocked()){ _local2 = Text.backgroundBuildBlockedTip; } else { if (_local3.feature != null){ _local2 = _local3.feature.getBuildTip(); } else { if ((((_local3.getBackground() == BackgroundType.ENTRANCE)) && (_local3.getBuilding().hasResources()))){ _local2 = Text.backgroundEntranceTip; } else { if (_local3.getBackground() == BackgroundType.ENTRANCE){ _local2 = Text.backgroundEmptyEntranceTip; } else { if (_local3.hasRubble()){ _local2 = Text.backgroundBuildRubbleTip; } else { if (_local4 == Tower.BARRICADE){ _local2 = Text.backgroundBarricadeTip; } else { if (_local4 == Tower.SNIPER){ _local2 = Text.backgroundSniperTip; } else { _local2 = Text.backgroundDepotTip; }; }; }; }; }; }; }; }; }; }; }; }; }; Game.view.toolTip.show(_local2); } protected function changeSelect(_arg1:Point):void{ Game.view.changeSelect(_arg1); } public function hoverTower(_arg1:Point):void{ var _local2:String; var _local3:Tower; var _local4:int; _local2 = null; if (this.action == NO_ACTION){ _local3 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); _local4 = _local3.getType(); if (_local4 == Tower.DEPOT){ _local2 = Text.hoverDepotTip; } else { if (_local4 == Tower.WORKSHOP){ _local2 = Text.hoverWorkshopTip; } else { if (_local4 == Tower.SNIPER){ if (_local3.countResource(Resource.SURVIVORS) == 0){ _local2 = Text.hoverSniperNoSurvivorsTip; } else { if (_local3.countResource(Resource.AMMO) == 0){ _local2 = Text.hoverSniperNoAmmoTip; } else { if (_local3.isHoldingFire()){ _local2 = Text.hoverSniperHoldFireTip; } else { _local2 = Text.hoverSniperTip; }; }; }; } else { if (_local3.countResource(Resource.BOARDS) == 0){ _local2 = Text.hoverBarricadeNoBoardsTip; } else { _local2 = Text.hoverBarricadeTip; }; }; }; }; } else { _local2 = Text.towerBuildTip; }; Game.view.toolTip.show(_local2); } protected function rollOver(_arg1:MouseEvent):void{ Game.view.toolTip.hide(); } public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg1 == "s")) || ((_arg1 == "S")))){ this.click(SNIPER); } else { if ((((_arg1 == "b")) || ((_arg1 == "B")))){ this.click(BARRICADE); } else { if ((((_arg1 == "d")) || ((_arg1 == "D")))){ this.click(DEPOT); } else { if ((((_arg1 == "w")) || ((_arg1 == "W")))){ this.click(WORKSHOP); } else { if (((!((this.action == NO_ACTION))) && ((_arg2 == Keyboard.escapeCode)))){ Util.success(); this.resetAction(); } else { _local3 = false; }; }; }; }; }; return (_local3); } public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.buildMenuOffset.x; this.clip.y = _arg1.buildMenuOffset.y; } public function clickBackground(_arg1:Point):void{ var _local2:int; var _local3:Tower; var _local4:List; var _local5:*; var _local6:Point; var _local7:Tower; var _local8:int; var _local9:MapCell; var _local10:String; if (this.action == NO_ACTION){ this.changeSelect(_arg1); Util.success(); } else { _local2 = this.getBuildType(this.action); if (Tower.canPlace(_local2, _arg1.x, _arg1.y)){ Game.map.getCell(_arg1.x, _arg1.y).createTower(_local2); _local3 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); _local4 = Game.map.findTowers(_arg1.x, _arg1.y, Option.supplyRange); _local5 = _local4.iterator(); while (_local5.hasNext()) { _local6 = _local5.next(); _local7 = Game.map.getCell(_local6.x, _local6.y).getTower(); _local8 = _local7.getType(); if ((((_local2 == Tower.DEPOT)) || ((_local8 == Tower.DEPOT)))){ _local3.addTradeLink(_local6); }; }; Util.success(); if (!Main.key.shift()){ this.resetAction(); } else { Game.floater.updatePublic(); }; } else { _local9 = Game.map.getCell(_arg1.x, _arg1.y); if (!Main.key.shift()){ this.resetAction(); }; Util.failure(); _local10 = null; if (((_local9.hasTower()) || (_local9.hasShadow()))){ _local10 = Text.towerWarning; } else { if (_local9.hasZombies()){ _local10 = Text.placeZombieWarning; } else { if (_local9.isBlocked()){ _local10 = Text.placeBlockedWarning; } else { if (_local9.getBackground() == BackgroundType.BRIDGE){ _local10 = Text.placeBridgeWarning; } else { if (!Tower.isSupplied(_arg1.x, _arg1.y)){ _local10 = Text.placeSupplyWarning; } else { if (_local2 == Tower.WORKSHOP){ if (((!((_local9.getBuilding() == null))) && (_local9.getBuilding().hasZombies()))){ _local10 = Text.placeZombieWarning; } else { if (((!(_local9.hasRubble())) && ((_local9.feature == null)))){ _local10 = Text.placeBoringWarning; }; }; } else { if (_local9.hasRubble()){ _local10 = Text.placeRubbleWarning; } else { if (_local9.feature != null){ _local10 = Text.placeFeatureWarning; } else { if ((((_local9.getBackground() == BackgroundType.ENTRANCE)) || ((_local9.getBackground() == BackgroundType.BUILDING)))){ _local10 = Text.placeBuildingWarning; }; }; }; }; }; }; }; }; }; Game.view.warning.show(_local10); }; }; } protected function click(_arg1:int):void{ var _local2:int; if (this.action == NO_ACTION){ this.action = _arg1; Util.success(); _local2 = this.getBuildType(this.action); if (_local2 == Tower.SNIPER){ Game.script.trigger(Script.START_BUILD_SNIPER); } else { if (_local2 == Tower.BARRICADE){ Game.script.trigger(Script.START_BUILD_BARRICADE); } else { if (_local2 == Tower.DEPOT){ Game.script.trigger(Script.START_BUILD_DEPOT); } else { if (_local2 == Tower.WORKSHOP){ Game.script.trigger(Script.START_BUILD_WORKSHOP); }; }; }; }; Game.floater.start(_local2); } else { this.resetAction(); }; } protected function getBuildType(_arg1:int):int{ var _local2:int; _local2 = Tower.SNIPER; if (_arg1 == BARRICADE){ _local2 = Tower.BARRICADE; } else { if (_arg1 == DEPOT){ _local2 = Tower.DEPOT; } else { if (_arg1 == WORKSHOP){ _local2 = Tower.WORKSHOP; }; }; }; return (_local2); } protected function hover(_arg1:int):String{ var _local2:String; _local2 = Text.buildWorkshopTip; if (_arg1 == SNIPER){ _local2 = Text.buildSniperTip; } else { if (_arg1 == BARRICADE){ _local2 = Text.buildBarricadeTip; } else { if (_arg1 == DEPOT){ _local2 = Text.buildDepotTip; }; }; }; return (_local2); } } }//package ui.menu
Section 108
//BuildMenuClip (ui.menu.BuildMenuClip) package ui.menu { import flash.display.*; public dynamic class BuildMenuClip extends MovieClip { public var depot:ButtonBuildDepot; public var workshop:ButtonBuildWorkshop; public var barricade:ButtonBuildBarricade; public var sniper:ButtonBuildSniper; } }//package ui.menu
Section 109
//CenterMenu (ui.menu.CenterMenu) package ui.menu { import flash.display.*; import ui.*; public class CenterMenu { protected var menus:Array; protected var oldState:int; protected var state:int; protected var backdrop:Sprite; public static var SAVE_MAP_FAIL:int = 6; public static var OPTIONS:int = 2; public static var PEDIA:int = 3; public static var BRIEFING:int = 5; public static var UPLOAD_MAP:int = 9; public static var SYSTEM:int = 1; public static var UPLOAD_MAP_WAIT:int = 8; public static var SAVE_WAIT:int = 4; public static var NONE:int = 0; public static var SAVE_MAP:int = 7; public function CenterMenu():void{ } public function cleanup():void{ var _local1:int; var _local2:Array; var _local3:MenuRoot; _local1 = 0; _local2 = this.menus; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.cleanup(); }; this.menus = null; this.backdrop.parent.removeChild(this.backdrop); this.backdrop = null; } public function changeState(_arg1:int):void{ this.menus[this.state].hide(); this.menus[_arg1].show(); this.oldState = this.state; this.state = _arg1; Game.view.toolTip.hide(); if (this.state == NONE){ Game.view.sideMenu.enableHover(); this.backdrop.visible = false; Game.pause.systemResume(); } else { Game.update.changeSelect(null); Game.view.sideMenu.disableHover(); this.backdrop.visible = true; Game.pause.systemPause(); }; } public function lookup(_arg1:String):void{ this.changeState(PEDIA); this.menus[PEDIA].visitPage(_arg1); } public function systemTutorial():void{ this.changeState(SYSTEM); this.menus[this.state].showTutorial(); } public function init(_arg1:DisplayObjectContainer, _arg2:LayoutGame):void{ var _local3:Point; var _local4:String; this.backdrop = new Sprite(); _arg1.addChild(this.backdrop); this.backdrop.visible = false; this.backdrop.mouseEnabled = true; this.backdrop.useHandCursor = false; this.state = NONE; this.oldState = NONE; _local3 = Util.minSize(_arg2.screenSize); _local4 = Text.playPediaRoot; if (Game.settings.isEditor()){ _local4 = Text.editPediaRoot; }; this.menus = []; this.menus.push(new MenuRoot()); this.menus.push(new CenterSystem(_arg1, _local3)); this.menus.push(new CenterOptions(_arg1, _local3, true)); this.menus.push(new CenterPedia(_arg1, _local3, _local4, true)); this.menus.push(new WaitMenu(_arg1, _local3, WaitMenu.SAVE_GAME)); this.menus.push(new StoryMenu(_arg1, _local3, StoryMenu.CENTER)); this.menus.push(new MainFail(_arg1, _local3, true)); this.menus.push(new SaveMapMenu(_arg1, _local3)); this.menus.push(new WaitMenu(_arg1, _local3, WaitMenu.UPLOAD_MAP)); this.menus.push(new UploadMapMenu(_arg1, _local3)); this.drawBackdrop(_arg2.screenSize); } public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:int; _local3 = this.state; this.menus[this.state].hotkey(_arg1, _arg2); return (!((_local3 == NONE))); } public function resize(_arg1:LayoutGame):void{ var _local2:Point; var _local3:int; var _local4:Array; var _local5:MenuRoot; this.drawBackdrop(_arg1.screenSize); _local2 = Util.minSize(_arg1.screenSize); _local3 = 0; _local4 = this.menus; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local5.resize(_local2); }; } protected function drawBackdrop(_arg1:Point):void{ Util.drawBase(this.backdrop.graphics, new Point(0, 0), _arg1, Color.centerGhost, Color.centerGhostAlpha); } public function revertState():void{ this.changeState(this.oldState); } } }//package ui.menu
Section 110
//CenterOptions (ui.menu.CenterOptions) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class CenterOptions extends MenuRoot { protected var buttons:ButtonList; protected var clip:OptionsMenuClip; protected var isCenter:Boolean; public function CenterOptions(_arg1:DisplayObjectContainer=null, _arg2:Point=null, _arg3:Boolean=false):void{ if (!Boot.skip_constructor){ super(); this.isCenter = _arg3; this.clip = new OptionsMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.soundUp, this.clip.soundDown, this.clip.musicUp, this.clip.musicDown, this.clip.scrollUp, this.clip.scrollDown, this.clip.back]); this.clip.music.barText.text = Text.musicBarLabel; this.clip.sound.barText.text = Text.soundBarLabel; this.clip.scroll.barText.text = Text.scrollBarLabel; if (this.isCenter){ this.clip.background.visible = false; }; this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function showMusic():void{ this.showBar(Config.MUSIC, this.clip.music, this.clip.musicUp, this.clip.musicDown); Main.music.setVolume(Main.config.getProportion(Config.MUSIC)); } protected function showScroll():void{ this.showBar(Config.SCROLL, this.clip.scroll, this.clip.scrollUp, this.clip.scrollDown); } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(6); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } protected function showBar(_arg1:int, _arg2:StatusClip, _arg3:MovieClip, _arg4:MovieClip):void{ var _local5:Number; _local5 = Main.config.getProportion(_arg1); _arg2.bar.width = (_local5 * Option.statusBarSize); if (Main.config.canIncrease(_arg1)){ this.buttons.setNormal(_arg3); } else { this.buttons.setGhosted(_arg3); }; if (Main.config.canDecrease(_arg1)){ this.buttons.setNormal(_arg4); } else { this.buttons.setGhosted(_arg4); }; } protected function click(_arg1:int):void{ if ((((_arg1 == 0)) && (Main.config.canIncrease(Config.SOUND)))){ Main.config.increase(Config.SOUND); this.showSound(); Util.success(); } else { if ((((_arg1 == 1)) && (Main.config.canDecrease(Config.SOUND)))){ Main.config.decrease(Config.SOUND); this.showSound(); Util.success(); } else { if ((((_arg1 == 2)) && (Main.config.canIncrease(Config.MUSIC)))){ Main.config.increase(Config.MUSIC); this.showMusic(); Util.success(); } else { if ((((_arg1 == 3)) && (Main.config.canDecrease(Config.MUSIC)))){ Main.config.decrease(Config.MUSIC); this.showMusic(); Util.success(); } else { if ((((_arg1 == 4)) && (Main.config.canIncrease(Config.SCROLL)))){ Main.config.increase(Config.SCROLL); this.showScroll(); Util.success(); } else { if ((((_arg1 == 5)) && (Main.config.canDecrease(Config.SCROLL)))){ Main.config.decrease(Config.SCROLL); this.showScroll(); Util.success(); } else { if (_arg1 == 6){ Util.success(); if (this.isCenter){ Game.view.centerMenu.changeState(CenterMenu.SYSTEM); } else { Main.menu.changeState(MainMenu.START); }; } else { Util.failure(); }; }; }; }; }; }; }; } protected function showSound():void{ this.showBar(Config.SOUND, this.clip.sound, this.clip.soundUp, this.clip.soundDown); Main.sound.setVolume(Main.config.getProportion(Config.SOUND)); } override public function show():void{ this.clip.visible = true; this.showSound(); this.showMusic(); this.showScroll(); } } }//package ui.menu
Section 111
//CenterPedia (ui.menu.CenterPedia) package ui.menu { import flash.display.*; import flash.events.*; import ui.*; import flash.text.*; import flash.*; public class CenterPedia extends MenuRoot { protected var clip:PediaMenuClip; protected var history:Array; protected var buttons:ButtonList; protected var isCenter:Boolean; protected var root:String; protected var current:int; protected static var maxHistory:int = 20; protected static var hash:PediaHash = new PediaHash(); public function CenterPedia(_arg1:DisplayObjectContainer=null, _arg2:Point=null, _arg3:String=null, _arg4:Boolean=false):void{ var _local5:StyleSheet; if (!Boot.skip_constructor){ super(); this.root = _arg3; this.isCenter = _arg4; this.clip = new PediaMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.back, this.clip.up, this.clip.forward, this.clip.returnToMenu]); this.clip.entry.multiline = true; this.clip.entry.wordWrap = true; this.clip.entry.autoSize = TextFieldAutoSize.NONE; this.clip.entry.addEventListener(TextEvent.LINK, this.link); _local5 = new StyleSheet(); _local5.parseCSS(Text.pediaStyleSheet); this.clip.entry.styleSheet = _local5; this.history = [new Bookmark(this.root, 1)]; this.current = 0; this.moveCursor(0); if (this.isCenter){ this.clip.background.visible = false; this.clip.splash.visible = false; }; this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } protected function click(_arg1:int):void{ var _local2:Boolean; _local2 = true; if (_arg1 == 0){ _local2 = this.moveCursor(-1); } else { if (_arg1 == 1){ if (this.history[this.current].name == this.root){ this.exitPedia(); } else { this.visitPage(this.root); }; } else { if (_arg1 == 2){ _local2 = this.moveCursor(1); } else { if (_arg1 == 3){ this.exitPedia(); }; }; }; }; if (_local2){ Util.success(); } else { Util.failure(); }; } protected function moveCursor(_arg1:int):Boolean{ var _local2:Boolean; _local2 = true; if (((((this.current + _arg1) >= 0)) && (((this.current + _arg1) < this.history.length)))){ this.history[this.current].pos = this.clip.entry.scrollV; this.current = (this.current + _arg1); this.clip.entry.htmlText = hash.lookup(this.history[this.current].name); this.clip.entry.scrollV = this.history[this.current].pos; this.clip.scrollBar.update(); } else { _local2 = false; }; if (this.current == 0){ this.buttons.setGhosted(this.clip.back); } else { this.buttons.setNormal(this.clip.back); }; if (this.current == (this.history.length - 1)){ this.buttons.setGhosted(this.clip.forward); } else { this.buttons.setNormal(this.clip.forward); }; return (_local2); } protected function link(_arg1:TextEvent):void{ Util.success(); this.visitPage(_arg1.text); } override public function cleanup():void{ this.clip.entry.removeEventListener(TextEvent.LINK, this.link); this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function componentUpdate(_arg1:Event):void{ this.clip.scrollBar.update(); this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); } protected function exitPedia():void{ if (this.isCenter){ Game.view.centerMenu.revertState(); } else { Main.menu.revertState(); }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(3); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ var _local2:int; Util.centerHorizontally(this.clip.returnToMenu, _arg1); Util.alignBottom(this.clip.returnToMenu, _arg1); Util.scaleToFit(this.clip.background, _arg1); Util.scaleToFit(this.clip.splash, _arg1); _local2 = (_arg1.x - 60); if (_local2 > 600){ _local2 = 600; }; this.clip.entry.x = (((_arg1.x - _local2) / 2) - 10); this.clip.entry.width = _local2; this.clip.entry.height = (_arg1.y - 200); this.clip.scrollBar.x = ((this.clip.entry.x + this.clip.entry.width) + 5); this.clip.scrollBar.height = (_arg1.y - 200); this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } override public function visitPage(_arg1:String):void{ var _local2:int; var _local3:int; _local2 = ((this.current - maxHistory) + 1); if (_local2 < 0){ _local2 = 0; }; _local3 = Math.floor(Math.min((this.current + 1), (_local2 + maxHistory))); this.history = this.history.slice(_local2, _local3); this.history.push(new Bookmark(_arg1, 1)); this.current = (this.current - _local2); this.moveCursor(1); } override public function showTutorial():void{ this.show(); } override public function show():void{ this.clip.visible = true; } } }//package ui.menu
Section 112
//CenterSystem (ui.menu.CenterSystem) package ui.menu { import flash.display.*; import ui.*; import flash.text.*; import flash.*; public class CenterSystem extends MenuRoot { protected var clip:SystemMenuClip; protected var buttons:ButtonList; public function CenterSystem(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ var _local3:int; var _local4:Array; var _local5:TextField; var _local6:int; var _local7:Array; var _local8:*; var _local9:int; var _local10:Array; var _local11:*; var _local12:int; var _local13:Array; var _local14:*; if (!Boot.skip_constructor){ super(); this.clip = new SystemMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; _local3 = 0; _local4 = [this.clip.saveMapLabel, this.clip.uploadMapLabel, this.clip.testMapLabel, this.clip.editMapLabel, this.clip.briefingLabel]; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local5.mouseEnabled = false; }; if (Game.settings.isEditor()){ _local6 = 0; _local7 = [this.clip.pedia, this.clip.options, this.clip.saveGame, this.clip.loadGame, this.clip.retryGame, this.clip.editMapLabel, this.clip.editMap, this.clip.briefing, this.clip.briefingLabel]; while (_local6 < _local7.length) { _local8 = _local7[_local6]; _local6++; _local8.visible = false; }; } else { if (Game.settings.isTesting()){ _local9 = 0; _local10 = [this.clip.saveMap, this.clip.saveMapLabel, this.clip.uploadMap, this.clip.uploadMapLabel, this.clip.testMap, this.clip.testMapLabel, this.clip.loadGame, this.clip.mainMenu]; while (_local9 < _local10.length) { _local11 = _local10[_local9]; _local9++; _local11.visible = false; }; } else { _local12 = 0; _local13 = [this.clip.saveMap, this.clip.saveMapLabel, this.clip.uploadMap, this.clip.uploadMapLabel, this.clip.testMap, this.clip.testMapLabel, this.clip.editMap, this.clip.editMapLabel]; while (_local12 < _local13.length) { _local14 = _local13[_local12]; _local12++; _local14.visible = false; }; }; }; this.buttons = new ButtonList(this.click, null, [this.clip.resume, this.clip.pedia, this.clip.options, this.clip.saveGame, this.clip.loadGame, this.clip.retryGame, this.clip.mainMenu, this.clip.saveMap, this.clip.uploadMap, this.clip.testMap, this.clip.editMap, this.clip.briefing]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ if (_arg1 == 0){ Util.success(); Game.view.centerMenu.changeState(CenterMenu.NONE); } else { if (_arg1 == 1){ Util.success(); Game.view.centerMenu.changeState(CenterMenu.PEDIA); } else { if (_arg1 == 2){ Util.success(); Game.view.centerMenu.changeState(CenterMenu.OPTIONS); } else { if (_arg1 == 3){ Util.success(); this.hide(); Game.attemptSave(); } else { if (_arg1 == 4){ if (Main.canLoad()){ Util.success(); Game.endGame(GameOver.RESTART_LOAD); } else { Util.failure(); }; } else { if (_arg1 == 5){ Util.success(); Game.endGame(GameOver.RESTART); } else { if (_arg1 == 6){ Util.success(); Game.endGame(GameOver.END); } else { if ((((_arg1 == 7)) && (Game.settings.isEditor()))){ Util.success(); Game.settings.setMap(Game.editor.saveMap()); Game.settings.setStart(Game.view.window.getCenter()); Game.view.centerMenu.changeState(CenterMenu.SAVE_MAP); } else { if ((((_arg1 == 8)) && (Game.settings.isEditor()))){ Util.success(); Game.settings.setMap(Game.editor.saveMap()); Game.settings.setStart(Game.view.window.getCenter()); Game.view.centerMenu.changeState(CenterMenu.UPLOAD_MAP_WAIT); } else { if ((((_arg1 == 9)) && (Game.settings.isEditor()))){ Util.success(); Game.settings.setMap(Game.editor.saveMap()); Game.settings.setStart(Game.view.window.getCenter()); Game.loadMap = Game.settings.saveMap(); Game.endGame(GameOver.TRY_MAP); } else { if ((((_arg1 == 10)) && (Game.settings.isTesting()))){ Util.success(); Game.endGame(GameOver.EDIT_MAP); } else { if (_arg1 == 11){ Util.success(); Game.view.centerMenu.changeState(CenterMenu.BRIEFING); } else { Util.failure(); }; }; }; }; }; }; }; }; }; }; }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(0); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.alignRight(this.clip.city, _arg1); Util.alignRight(this.clip.difficulty, _arg1); Util.alignRight(this.clip.zombies, _arg1); Util.alignRight(this.clip.bridges, _arg1); } override public function showTutorial():void{ this.show(); } override public function show():void{ var _local1:String; var _local2:String; this.clip.visible = true; this.clip.city.text = Game.settings.getCityName(); this.clip.difficulty.text = Game.settings.getDifficultyName(); _local1 = Std.string(Game.progress.getZombieCount()); this.clip.zombies.text = Text.zombiesLeft(_local1); _local2 = Std.string(Game.progress.getBridgeCount()); this.clip.bridges.text = Text.bridgesLeft(_local2); if (Main.canLoad()){ this.buttons.setNormal(this.clip.loadGame); } else { this.buttons.setGhosted(this.clip.loadGame); }; this.buttons.setNormal(this.clip.saveGame); } } }//package ui.menu
Section 113
//DepotMenuClip (ui.menu.DepotMenuClip) package ui.menu { import flash.display.*; public dynamic class DepotMenuClip extends MovieClip { public var resource:ResourceMenuClip; public var abandon:ButtonAbandon; public var gather:ButtonJumpToDepot; public function DepotMenuClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 114
//MainBrowse (ui.menu.MainBrowse) package ui.menu { import flash.display.*; import ui.*; import flash.net.*; import flash.*; public class MainBrowse extends MenuRoot { protected var clip:MainBrowseClip; protected var cursor:int; protected var names:Array; protected var buttons:ButtonList; protected var maxCursor:int; protected var dbKeys:Array; protected var dbNames:Array; protected var levels:Array; public static var dbValues:String; public static var EASY:int = 4; public static var LOAD_STEP:int = 5; public static var typeToString:Array = ["fun", "recent", "hard", "medium", "easy"]; public static var RECENT:int = 1; protected static var cursorLength:int = 5; public static var FUN:int = 0; public static var typeToButton:Array = ["Most Fun", "Most Recent", "Hardest", "Moderate", "Easiest"]; public static var start:int = 0; public static var HARD:int = 2; public static var TYPE_COUNT:int = 5; public static var MEDIUM:int = 3; public static var type:int = FUN; public function MainBrowse(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainBrowseClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.clip.sortText.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.level1, this.clip.level2, this.clip.level3, this.clip.level4, this.clip.level5, this.clip.prev, this.clip.next, this.clip.sort, this.clip.back]); this.levels = [this.clip.level1, this.clip.level2, this.clip.level3, this.clip.level4, this.clip.level5]; this.names = [this.clip.name1, this.clip.name2, this.clip.name3, this.clip.name4, this.clip.name5]; this.cursor = 0; this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } protected function click(_arg1:int):void{ var _local2:String; if (_arg1 == 5){ if (this.cursor > 0){ this.cursor = (this.cursor - cursorLength); this.update(); } else { if (MainBrowse.start > 0){ MainBrowse.start = (MainBrowse.start - LOAD_STEP); Main.menu.changeState(MainMenu.BROWSE_WAIT); }; }; } else { if (_arg1 == 6){ if (this.cursor < (this.maxCursor - cursorLength)){ this.cursor = (this.cursor + cursorLength); this.update(); } else { if (this.cursor == (this.maxCursor - cursorLength)){ MainBrowse.start = (MainBrowse.start + this.maxCursor); Main.menu.changeState(MainMenu.BROWSE_WAIT); }; }; } else { if (_arg1 == 7){ MainBrowse.type = ((MainBrowse.type + 1) % TYPE_COUNT); MainBrowse.start = 0; Main.menu.changeState(MainMenu.BROWSE_WAIT); } else { if (_arg1 == 8){ Main.menu.changeState(MainMenu.PLAY); } else { _local2 = this.dbKeys[(this.cursor + _arg1)]; Main.menu.rateState = MainMenu.BROWSE; Main.menu.getSettings().setUrl(("http://auriga-squad.appspot.com/get/" + _local2)); Main.menu.changeState(MainMenu.DOWNLOAD_MAP_WAIT); }; }; }; }; } protected function update():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; if ((((this.cursor == 0)) && ((MainBrowse.start == 0)))){ this.buttons.setGhosted(this.clip.prev); } else { this.buttons.setNormal(this.clip.prev); }; if ((this.cursor + cursorLength) > this.maxCursor){ this.buttons.setGhosted(this.clip.next); } else { this.buttons.setNormal(this.clip.next); }; this.clip.sortText.text = typeToButton[type]; _local1 = Math.floor(Math.min(cursorLength, (this.maxCursor - this.cursor))); this.clip.page.text = ((Std.string(((MainBrowse.start + this.cursor) + 1)) + " - ") + Std.string(((MainBrowse.start + this.cursor) + _local1))); _local2 = 0; while (_local2 < _local1) { var _temp1 = _local2; _local2 = (_local2 + 1); _local5 = _temp1; this.names[_local5].visible = true; this.levels[_local5].visible = true; this.names[_local5].text = this.dbNames[(_local5 + this.cursor)]; }; _local3 = _local1; _local4 = cursorLength; while (_local3 < _local4) { var _temp2 = _local3; _local3 = (_local3 + 1); _local6 = _temp2; this.names[_local6].visible = false; this.levels[_local6].visible = false; }; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(8); } else { _local3 = false; }; return (_local3); } protected function parse():void{ var _local1:URLVariables; var _local2:int; var _local3:int; var _local4:int; this.dbNames = []; this.dbKeys = []; _local1 = new URLVariables(dbValues); _local2 = Reflect.field(_local1, "size"); _local3 = 0; while (_local3 < _local2) { var _temp1 = _local3; _local3 = (_local3 + 1); _local4 = _temp1; this.dbNames.push(Reflect.field(_local1, ("name" + Std.string(_local4)))); this.dbKeys.push(Reflect.field(_local1, ("key" + Std.string(_local4)))); }; this.maxCursor = _local2; } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } override public function show():void{ this.clip.visible = true; this.parse(); this.cursor = 0; this.update(); } } }//package ui.menu
Section 115
//MainBrowseClip (ui.menu.MainBrowseClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class MainBrowseClip extends MovieClip { public var name1:TextField; public var name3:TextField; public var name4:TextField; public var next:MovieClip; public var sortText:TextField; public var name2:TextField; public var name5:TextField; public var level1:MovieClip; public var background:MovieClip; public var level5:MovieClip; public var prev:MovieClip; public var level2:MovieClip; public var level3:MovieClip; public var level4:MovieClip; public var level7:MovieClip; public var page:TextField; public var sort:MovieClip; public var back:MovieClip; public function MainBrowseClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 116
//MainCampaign (ui.menu.MainCampaign) package ui.menu { import flash.display.*; import ui.*; import flash.net.*; import flash.*; public class MainCampaign extends MenuRoot { protected var clip:MainCampaignClip; protected var levels:Array; protected var buttons:ButtonList; public function MainCampaign(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainCampaignClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.level1, this.clip.level2, this.clip.level3, this.clip.level4, this.clip.level5, this.clip.level6, this.clip.level7, this.clip.back]); this.levels = [this.clip.level1, this.clip.level2, this.clip.level3, this.clip.level4, this.clip.level5, this.clip.level6, this.clip.level7]; this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 7){ Main.menu.changeState(MainMenu.PLAY); } else { Main.menu.rateState = MainMenu.CAMPAIGN; WaitMenu.loadMap(Text.levels[_arg1]); Main.menu.getSettings().setCampaign(_arg1); }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(7); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } override public function show():void{ var _local1:Boolean; var _local2:Array; var _local3:int; var _local4:int; var _local5:int; var _local6:MovieClip; this.clip.visible = true; _local1 = true; _local2 = getComplete(); _local3 = 0; _local4 = _local2.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = this.levels[_local5]; if (_local2[_local5] == 1){ this.buttons.setGhosted(_local6); } else { if (_local1){ this.buttons.setGreen(_local6); _local1 = false; } else { this.buttons.setNormal(_local6); }; }; }; } public static function setComplete(_arg1:int):void{ var _local2:SharedObject; var _local3:Array; _local2 = Main.gameDisk; _local3 = getComplete(); if ((((_arg1 >= 0)) && ((_arg1 < _local3.length)))){ _local3[_arg1] = 1; }; _local2.data.campaign = _local3; } public static function getComplete():Array{ var _local1:SharedObject; var _local2:*; var _local3:Array; _local1 = Main.gameDisk; _local2 = _local1.data.campaign; _local3 = []; if (_local2 == null){ _local3 = [0, 0, 0, 0, 0, 0, 0]; _local1.data.campaign = _local3; } else { _local3 = Load.loadArrayInt(_local2); }; return (_local3); } } }//package ui.menu
Section 117
//MainCampaignClip (ui.menu.MainCampaignClip) package ui.menu { import flash.display.*; public dynamic class MainCampaignClip extends MovieClip { public var level1:MovieClip; public var background:MovieClip; public var level4:MovieClip; public var level5:MovieClip; public var level6:MovieClip; public var level7:MovieClip; public var level2:MovieClip; public var level3:MovieClip; public var back:MovieClip; public function MainCampaignClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 118
//MainCredits (ui.menu.MainCredits) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class MainCredits extends MenuRoot { protected var buttons:ButtonList; protected var clip:MainCreditsClip; protected var credits:ScrollingText; public function MainCredits(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ var scrolls:Array; var parent = _arg1; var screenSize = _arg2; if (!Boot.skip_constructor){ super(); this.clip = new MainCreditsClip(); parent.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.returnClick, null, [this.clip.back]); scrolls = [function (_arg1:MainCredits):DisplayObject{ var $r:*; var tmp:*; var $this = _arg1; tmp = $this.clip.credits; $r = (Std._is(tmp, DisplayObject)) ? tmp : function (_arg1:MainCredits):MovieClip{ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this)]; this.credits = new ScrollingText(parent, scrolls, [-130], screenSize); this.resize(screenSize); }; } override public function hide():void{ this.clip.visible = false; this.credits.end(); } override public function cleanup():void{ this.credits.cleanup(); this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.returnClick(0); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ var _local2:int; Util.scaleToFit(this.clip.background, _arg1); _local2 = Math.floor((this.clip.back.x + this.clip.back.width)); this.clip.credits.x = (_local2 + (((_arg1.x - _local2) - this.clip.credits.width) / 2)); this.credits.resize(_arg1); } protected function returnClick(_arg1:int):void{ Util.success(); Main.menu.changeState(MainMenu.START); } override public function show():void{ this.clip.visible = true; this.credits.begin(); } } }//package ui.menu
Section 119
//MainCreditsClip (ui.menu.MainCreditsClip) package ui.menu { import flash.display.*; public dynamic class MainCreditsClip extends MovieClip { public var background:MovieClip; public var credits:MovieClip; public var back:MovieClip; public function MainCreditsClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 120
//MainDifficulty (ui.menu.MainDifficulty) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class MainDifficulty extends MenuRoot { protected var clip:MainDifficultyClip; protected var buttons:ButtonList; public function MainDifficulty(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainDifficultyClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.novice, this.clip.veteran, this.clip.expert, this.clip.quartermaster, this.clip.back]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 4){ Main.menu.changeState(MainMenu.PLAY); } else { Main.menu.getSettings().setDifficulty((_arg1 + 1)); Main.menu.changeState(MainMenu.NAME); }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(4); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } override public function show():void{ this.clip.visible = true; } public static function tutorialClick():void{ } } }//package ui.menu
Section 121
//MainDifficultyClip (ui.menu.MainDifficultyClip) package ui.menu { import flash.display.*; public dynamic class MainDifficultyClip extends MovieClip { public var quartermaster:MovieClip; public var background:MovieClip; public var expert:MovieClip; public var novice:MovieClip; public var veteran:MovieClip; public var back:MovieClip; public function MainDifficultyClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 122
//MainDownloadMap (ui.menu.MainDownloadMap) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class MainDownloadMap extends MenuRoot { protected var clip:MainDownloadMapClip; protected var buttons:ButtonList; public function MainDownloadMap(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainDownloadMapClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; Util.setupInputText(this.clip.url); this.buttons = new ButtonList(this.click, null, [this.clip.loadButton, this.clip.back]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 0){ if (this.clip.url.text != ""){ Main.menu.rateState = MainMenu.DOWNLOAD_MAP; Main.menu.getSettings().setUrl(this.clip.url.text); Main.menu.changeState(MainMenu.DOWNLOAD_MAP_WAIT); }; } else { if (_arg1 == 1){ if (Main.menu.getSettings().isEditor()){ Main.menu.changeState(MainMenu.EDIT_SELECT); } else { Main.menu.changeState(MainMenu.PLAY); }; }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(1); } else { if (_arg2 == Keyboard.enterCode){ this.click(0); } else { _local3 = false; }; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } override public function show():void{ this.clip.visible = true; this.clip.url.text = ""; this.clip.stage.focus = this.clip.url; } } }//package ui.menu
Section 123
//MainDownloadMapClip (ui.menu.MainDownloadMapClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class MainDownloadMapClip extends MovieClip { public var background:MovieClip; public var url:TextField; public var loadButton:MovieClip; public var back:MovieClip; public function MainDownloadMapClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 124
//MainEdit (ui.menu.MainEdit) package ui.menu { import flash.display.*; import logic.*; import ui.*; import flash.*; public class MainEdit extends MenuRoot { protected var difficulty:int; protected var clip:MainEditClip; protected var buttons:ButtonList; public function MainEdit(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.difficulty = 1; this.clip = new MainEditClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; Util.setupInputText(this.clip.cityName, Text.nameConstraint, Util.NAME_MAX_CHARS); Util.setupInputText(this.clip.widthText, Text.sizeConstraint, Util.SIZE_MAX_CHARS); Util.setupInputText(this.clip.heightText, Text.sizeConstraint, Util.SIZE_MAX_CHARS); this.clip.cityName.tabEnabled = true; this.clip.cityName.tabIndex = 1; this.clip.widthText.tabEnabled = true; this.clip.widthText.tabIndex = 2; this.clip.heightText.tabEnabled = true; this.clip.heightText.tabIndex = 3; this.clip.newMapLabel.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.difficultyDown, this.clip.difficultyUp, this.clip.newMap, this.clip.back]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ var _local2:*; var _local3:int; var _local4:*; var _local5:int; var _local6:GameSettings; if (_arg1 == 0){ if (this.difficulty > 1){ this.difficulty--; Util.success(); } else { Util.failure(); }; this.updateDifficulty(); } else { if (_arg1 == 1){ if (this.difficulty < (GameSettings.getDifficultyLimit() - 1)){ this.difficulty++; Util.success(); } else { Util.failure(); }; this.updateDifficulty(); } else { if (_arg1 == 2){ Util.success(); _local2 = Std._parseInt(this.clip.widthText.text); _local3 = 0; if (_local2 != null){ _local3 = _local2; }; _local4 = Std._parseInt(this.clip.heightText.text); _local5 = 0; if (_local4 != null){ _local5 = _local4; }; _local6 = new GameSettings(); _local6.beginNewEdit(this.difficulty, this.clip.cityName.text, new Point(_local3, _local5)); Main.menu.setSettings(_local6); Main.menu.changeState(MainMenu.EDIT_WAIT); } else { if (_arg1 == 3){ Util.success(); Main.menu.changeState(MainMenu.EDIT_SELECT); }; }; }; }; } protected function updateDifficulty():void{ var _local1:int; var _local2:int; this.clip.difficulty.barText.text = GameSettings.getDifficultyNameS(this.difficulty); _local1 = this.difficulty; _local2 = (GameSettings.getDifficultyLimit() - 1); this.clip.difficulty.bar.width = ((_local1 / _local2) * Option.statusBarSize); if (this.difficulty == 0){ this.buttons.setGhosted(this.clip.difficultyDown); } else { this.buttons.setNormal(this.clip.difficultyDown); }; if (this.difficulty == (GameSettings.getDifficultyLimit() - 1)){ this.buttons.setGhosted(this.clip.difficultyUp); } else { this.buttons.setNormal(this.clip.difficultyUp); }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(3); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } override public function show():void{ var _local1:int; var _local2:int; this.clip.visible = true; this.difficulty = 1; this.clip.cityName.setSelection(0, 0); _local1 = Lib.rand(Text.cities.length); this.clip.cityName.text = Text.cities[_local1]; _local2 = this.clip.cityName.text.length; this.clip.cityName.setSelection(0, _local2); this.clip.stage.focus = this.clip.cityName; this.clip.widthText.setSelection(0, 0); this.clip.widthText.text = "50"; this.clip.widthText.setSelection(0, _local2); this.clip.heightText.setSelection(0, 0); this.clip.heightText.text = "50"; this.clip.heightText.setSelection(0, _local2); this.updateDifficulty(); } } }//package ui.menu
Section 125
//MainEditClip (ui.menu.MainEditClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class MainEditClip extends MovieClip { public var widthText:TextField; public var heightText:TextField; public var background:MovieClip; public var cityName:TextField; public var difficulty:StatusClip; public var difficultyUp:MovieClip; public var newMap:MovieClip; public var newMapLabel:TextField; public var back:MovieClip; public var difficultyDown:MovieClip; public function MainEditClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 126
//MainEditSelect (ui.menu.MainEditSelect) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class MainEditSelect extends MenuRoot { protected var clip:MainEditSelectClip; protected var buttons:ButtonList; public function MainEditSelect(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainEditSelectClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.newMap, this.clip.continueMap, this.clip.downloadMap, this.clip.loadMap, this.clip.instructions, this.clip.back]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); } protected function click(_arg1:int):void{ if (_arg1 == 0){ Main.menu.changeState(MainMenu.EDIT); Util.success(); }; if (_arg1 == 1){ if (Main.getEditSave() != null){ MainPasteMap.shouldContinue = true; Main.menu.changeState(MainMenu.PASTE_MAP); }; Util.success(); } else { if (_arg1 == 2){ Main.menu.changeState(MainMenu.DOWNLOAD_MAP); Util.success(); } else { if (_arg1 == 3){ Main.menu.changeState(MainMenu.PASTE_MAP); Util.success(); } else { if (_arg1 == 4){ Main.menu.changeState(MainMenu.EDIT_PEDIA); Util.success(); } else { if (_arg1 == 5){ Main.menu.changeState(MainMenu.START); Util.success(); }; }; }; }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(5); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } override public function show():void{ this.clip.visible = true; Main.menu.getSettings().setEditor(); if (Main.getEditSave() == null){ this.buttons.setGhosted(this.clip.continueMap); } else { this.buttons.setNormal(this.clip.continueMap); }; } } }//package ui.menu
Section 127
//MainEditSelectClip (ui.menu.MainEditSelectClip) package ui.menu { import flash.display.*; public dynamic class MainEditSelectClip extends MovieClip { public var background:MovieClip; public var continueMap:MovieClip; public var loadMap:MovieClip; public var instructions:MovieClip; public var downloadMap:MovieClip; public var newMap:MovieClip; public var back:MovieClip; public function MainEditSelectClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 128
//MainFail (ui.menu.MainFail) package ui.menu { import flash.display.*; import flash.events.*; import ui.*; import flash.text.*; import flash.*; public class MainFail extends MenuRoot { protected var clip:MainFailClip; protected var buttons:ButtonList; protected var isCenter:Boolean; public function MainFail(_arg1:DisplayObjectContainer=null, _arg2:Point=null, _arg3:Boolean=false):void{ if (!Boot.skip_constructor){ super(); this.isCenter = _arg3; this.clip = new MainFailClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.back]); this.clip.entry.multiline = true; this.clip.entry.wordWrap = true; this.clip.entry.autoSize = TextFieldAutoSize.NONE; this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function componentUpdate(_arg1:Event):void{ this.clip.scrollBar.update(); this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); } protected function click(_arg1:int):void{ Util.success(); if (this.isCenter){ Game.view.centerMenu.changeState(CenterMenu.SYSTEM); } else { Main.menu.changeState(Main.menu.rateState); }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg2 == Keyboard.escapeCode)) || ((_arg2 == Keyboard.enterCode)))){ this.click(0); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ var _local2:int; Util.centerHorizontally(this.clip.back, _arg1); Util.alignBottom(this.clip.back, _arg1); Util.scaleToFit(this.clip.background, _arg1); _local2 = (_arg1.x - 60); if (_local2 > 600){ _local2 = 600; }; this.clip.entry.x = (((_arg1.x - _local2) / 2) - 10); this.clip.entry.width = _local2; this.clip.entry.height = (_arg1.y - 140); this.clip.scrollBar.x = ((this.clip.entry.x + this.clip.entry.width) + 5); this.clip.scrollBar.height = (_arg1.y - 140); this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } override public function show():void{ this.clip.visible = true; this.clip.entry.text = Main.error; this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } } }//package ui.menu
Section 129
//MainFailClip (ui.menu.MainFailClip) package ui.menu { import fl.controls.*; import flash.display.*; import flash.text.*; public dynamic class MainFailClip extends MovieClip { public var scrollBar:UIScrollBar; public var background:MovieClip; public var entry:TextField; public var back:MovieClip; public function MainFailClip(){ addFrameScript(0, frame1); __setProp_scrollBar_MainFailClip_Layer1_1(); } function frame1(){ stop(); } function __setProp_scrollBar_MainFailClip_Layer1_1(){ try { scrollBar["componentInspectorSetting"] = true; } catch(e:Error) { }; scrollBar.direction = "vertical"; scrollBar.scrollTargetName = "background"; scrollBar.visible = true; try { scrollBar["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package ui.menu
Section 130
//MainLose (ui.menu.MainLose) package ui.menu { import flash.display.*; import logic.*; import ui.*; import flash.*; public class MainLose extends MenuRoot { protected var clip:MainLoseClip; protected var buttons:ButtonList; public function MainLose(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainLoseClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.clip.rateLabel.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.replay, this.clip.loadGame, this.clip.retryMap, this.clip.mainMenu, this.clip.rateButton]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ if (_arg1 == 0){ Util.success(); Main.beginReplay(); } else { if (_arg1 == 1){ if (Main.canLoad()){ Util.success(); Main.menu.changeState(MainMenu.LOAD_WAIT); } else { Util.failure(); }; } else { if (_arg1 == 2){ Util.success(); Main.menu.changeState(MainMenu.GENERATE_MAP); } else { if (_arg1 == 3){ Util.success(); Main.menu.setSettings(new GameSettings()); Main.menu.changeState(MainMenu.START); } else { if (_arg1 == 4){ Main.menu.rateState = MainMenu.LOSE; Main.menu.changeState(MainMenu.RATE_MAP); }; }; }; }; }; } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); Util.alignRight(this.clip.city, _arg1); Util.alignRight(this.clip.difficulty, _arg1); Util.alignRight(this.clip.time, _arg1); Util.alignBottom(this.clip.rateButton, _arg1); Util.alignLabel(this.clip.rateButton, this.clip.rateLabel); } override public function show():void{ var _local1:int; this.clip.visible = true; if (Main.canLoad()){ this.buttons.setNormal(this.clip.loadGame); } else { this.buttons.setGhosted(this.clip.loadGame); }; this.clip.city.text = Main.menu.getSettings().getCityName(); this.clip.difficulty.text = Main.menu.getSettings().getDifficultyName(); _local1 = Main.menu.getSettings().getPlayTime(); this.clip.time.text = new Time(_local1).toString(); if (Main.menu.getSettings().getKey() == null){ this.clip.rateButton.visible = false; this.clip.rateLabel.visible = false; } else { this.clip.rateButton.visible = true; this.clip.rateLabel.visible = true; }; } } }//package ui.menu
Section 131
//MainLoseClip (ui.menu.MainLoseClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class MainLoseClip extends MovieClip { public var rateLabel:TextField; public var background:MovieClip; public var rateButton:MovieClip; public var city:TextField; public var retryMap:MovieClip; public var difficulty:TextField; public var time:TextField; public var mainMenu:MovieClip; public var replay:MovieClip; public var loadGame:MovieClip; public function MainLoseClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 132
//MainMenu (ui.menu.MainMenu) package ui.menu { import flash.display.*; import logic.*; import ui.*; import flash.*; public class MainMenu { protected var menus:Array; protected var oldState:int; protected var settings:GameSettings; protected var state:int; public var rateState:int; public var rateDifficulty:String; public var rateFun:String; public static var CREDITS:int = 3; public static var DOWNLOAD_MAP:int = 18; public static var EDIT_WAIT:int = 11; public static var NAME:int = 2; public static var OPTIONS:int = 7; public static var CAMPAIGN:int = 25; public static var EDIT:int = 12; public static var LOSE:int = 5; public static var RATE_MAP_WAIT:int = 24; public static var BROWSE:int = 26; public static var LOAD_WAIT:int = 10; public static var PLAY:int = 14; public static var BROWSE_WAIT:int = 27; public static var DIFFICULTY:int = 1; public static var WIN:int = 4; public static var STORY_LOSE:int = 17; public static var START:int = 0; public static var PEDIA:int = 8; public static var EDIT_SELECT:int = 20; public static var EDIT_PEDIA:int = 13; public static var STORY_BRIEFING:int = 15; public static var RATE_MAP:int = 23; public static var TUTORIAL:int = 6; public static var STORY_WIN:int = 16; public static var DOWNLOAD_MAP_WAIT:int = 19; public static var PASTE_MAP:int = 22; public static var GENERATE_MAP:int = 9; public static var LOAD_MAP_FAIL:int = 21; public function MainMenu(_arg1:DisplayObjectContainer=null, _arg2:LayoutMain=null):void{ var _local3:Point; super(); if (!Boot.skip_constructor){ this.rateState = WIN; this.rateFun = ""; this.rateDifficulty = ""; Main.key.addHandler(this.hotkey); _local3 = Util.minSize(_arg2.screenSize); this.oldState = START; this.state = START; this.menus = []; this.menus.push(new MainStart(_arg1, _local3)); this.menus.push(new MainDifficulty(_arg1, _local3)); this.menus.push(new MainName(_arg1, _local3)); this.menus.push(new MainCredits(_arg1, _local3)); this.menus.push(new MainWin(_arg1, _local3)); this.menus.push(new MainLose(_arg1, _local3)); this.menus.push(new MainTutorial(_arg1, _local3)); this.menus.push(new CenterOptions(_arg1, _local3, false)); this.menus.push(new CenterPedia(_arg1, _local3, Text.playPediaRoot, false)); this.menus.push(new WaitMenu(_arg1, _local3, WaitMenu.GENERATE_MAP)); this.menus.push(new WaitMenu(_arg1, _local3, WaitMenu.LOAD_GAME)); this.menus.push(new WaitMenu(_arg1, _local3, WaitMenu.EDIT_MAP)); this.menus.push(new MainEdit(_arg1, _local3)); this.menus.push(new CenterPedia(_arg1, _local3, Text.editPediaRoot, false)); this.menus.push(new MainPlay(_arg1, _local3)); this.menus.push(new StoryMenu(_arg1, _local3, StoryMenu.BRIEFING)); this.menus.push(new StoryMenu(_arg1, _local3, StoryMenu.WIN)); this.menus.push(new StoryMenu(_arg1, _local3, StoryMenu.LOSE)); this.menus.push(new MainDownloadMap(_arg1, _local3)); this.menus.push(new WaitMenu(_arg1, _local3, WaitMenu.DOWNLOAD_MAP)); this.menus.push(new MainEditSelect(_arg1, _local3)); this.menus.push(new MainFail(_arg1, _local3, false)); this.menus.push(new MainPasteMap(_arg1, _local3)); this.menus.push(new MainRate(_arg1, _local3)); this.menus.push(new WaitMenu(_arg1, _local3, WaitMenu.RATE_MAP)); this.menus.push(new MainCampaign(_arg1, _local3)); this.menus.push(new MainBrowse(_arg1, _local3)); this.menus.push(new WaitMenu(_arg1, _local3, WaitMenu.BROWSE)); this.menus[this.state].show(); this.settings = new GameSettings(); }; } public function cleanup():void{ var _local1:int; var _local2:Array; var _local3:MenuRoot; _local1 = 0; _local2 = this.menus; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.cleanup(); }; this.menus = null; Main.key.clearHandlers(); } public function setSettings(_arg1:GameSettings):void{ this.settings = _arg1; } public function changeState(_arg1:int):void{ this.oldState = this.state; this.menus[this.state].hide(); this.menus[_arg1].show(); this.state = _arg1; } public function revertState():void{ this.changeState(this.oldState); } public function hotkey(_arg1:String, _arg2:int):Boolean{ return (this.menus[this.state].hotkey(_arg1, _arg2)); } public function resize(_arg1:LayoutMain):void{ var _local2:Point; var _local3:int; var _local4:Array; var _local5:MenuRoot; _local2 = Util.minSize(_arg1.screenSize); _local3 = 0; _local4 = this.menus; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local5.resize(_local2); }; } public function getSettings():GameSettings{ return (this.settings); } } }//package ui.menu
Section 133
//MainName (ui.menu.MainName) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class MainName extends MenuRoot { protected var clip:MainNameClip; protected var buttons:ButtonList; public function MainName(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainNameClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; Util.setupInputText(this.clip.cityName, Text.nameConstraint, Util.NAME_MAX_CHARS); this.buttons = new ButtonList(this.click, null, [this.clip.playGame, this.clip.back]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 0){ Main.menu.getSettings().setCityName(this.clip.cityName.text); Main.menu.changeState(MainMenu.STORY_BRIEFING); } else { if (_arg1 == 1){ Main.menu.changeState(MainMenu.DIFFICULTY); }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(1); } else { if (_arg2 == Keyboard.enterCode){ this.click(0); } else { _local3 = false; }; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); Util.alignRight(this.clip.notice, _arg1); Util.alignBottom(this.clip.difficulty, _arg1); Util.centerHorizontally(this.clip.difficulty, _arg1); } override public function show():void{ var _local1:int; var _local2:int; this.clip.visible = true; this.clip.cityName.setSelection(0, 0); _local1 = Lib.rand(Text.cities.length); this.clip.cityName.text = Text.cities[_local1]; _local2 = this.clip.cityName.text.length; this.clip.cityName.setSelection(0, _local2); this.clip.stage.focus = this.clip.cityName; this.clip.difficulty.text = Main.menu.getSettings().getDifficultyName(); } } }//package ui.menu
Section 134
//MainNameClip (ui.menu.MainNameClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class MainNameClip extends MovieClip { public var notice:TextField; public var background:MovieClip; public var playGame:MovieClip; public var cityName:TextField; public var difficulty:TextField; public var back:MovieClip; public function MainNameClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 135
//MainPasteMap (ui.menu.MainPasteMap) package ui.menu { import flash.display.*; import flash.events.*; import ui.*; import flash.text.*; import flash.*; public class MainPasteMap extends MenuRoot { protected var clip:MainPasteMapClip; protected var buttons:ButtonList; public static var shouldContinue:Boolean = false; public function MainPasteMap(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainPasteMapClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.clip.loadLabel.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.back, this.clip.loadButton]); this.clip.entry.multiline = true; this.clip.entry.wordWrap = true; this.clip.entry.autoSize = TextFieldAutoSize.NONE; this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function componentUpdate(_arg1:Event):void{ this.clip.scrollBar.update(); this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 0){ if (Main.menu.getSettings().isEditor()){ Main.menu.changeState(MainMenu.EDIT_SELECT); } else { Main.menu.changeState(MainMenu.PLAY); }; } else { if (_arg1 == 1){ Main.menu.rateState = MainMenu.PASTE_MAP; WaitMenu.loadMap(this.clip.entry.text); }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(0); } else { if (_arg2 == Keyboard.enterCode){ this.click(1); } else { _local3 = false; }; }; return (_local3); } override public function resize(_arg1:Point):void{ var _local2:int; Util.alignBottom(this.clip.back, _arg1); Util.alignBottom(this.clip.loadButton, _arg1); Util.centerHorizontally(this.clip.loadButton, _arg1); Util.alignLabel(this.clip.loadButton, this.clip.loadLabel); Util.scaleToFit(this.clip.background, _arg1); _local2 = (_arg1.x - 60); if (_local2 > 600){ _local2 = 600; }; this.clip.entry.x = (((_arg1.x - _local2) / 2) - 10); this.clip.entry.width = _local2; this.clip.entry.height = (_arg1.y - 140); this.clip.scrollBar.x = ((this.clip.entry.x + this.clip.entry.width) + 5); this.clip.scrollBar.height = (_arg1.y - 140); this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } override public function show():void{ Main.error = ""; this.clip.visible = true; this.clip.entry.text = ""; if (shouldContinue){ this.clip.entry.text = Main.getEditSave(); MainPasteMap.shouldContinue = false; }; this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } } }//package ui.menu
Section 136
//MainPasteMapClip (ui.menu.MainPasteMapClip) package ui.menu { import fl.controls.*; import flash.display.*; import flash.text.*; public dynamic class MainPasteMapClip extends MovieClip { public var scrollBar:UIScrollBar; public var background:MovieClip; public var entry:TextField; public var loadLabel:TextField; public var loadButton:MovieClip; public var back:MovieClip; public function MainPasteMapClip(){ addFrameScript(0, frame1); __setProp_scrollBar_MainPasteMapClip_Layer1_1(); } function __setProp_scrollBar_MainPasteMapClip_Layer1_1(){ try { scrollBar["componentInspectorSetting"] = true; } catch(e:Error) { }; scrollBar.direction = "vertical"; scrollBar.scrollTargetName = "background"; scrollBar.visible = true; try { scrollBar["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } } }//package ui.menu
Section 137
//MainPlay (ui.menu.MainPlay) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class MainPlay extends MenuRoot { protected var clip:MainPlayClip; protected var buttons:ButtonList; public function MainPlay(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainPlayClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.campaign, this.clip.randomMap, this.clip.browse, this.clip.downloadMap, this.clip.loadMap, this.clip.back]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 0){ Main.menu.changeState(MainMenu.CAMPAIGN); } else { if (_arg1 == 1){ Main.menu.changeState(MainMenu.DIFFICULTY); } else { if (_arg1 == 2){ Main.menu.changeState(MainMenu.BROWSE_WAIT); } else { if (_arg1 == 3){ Main.menu.changeState(MainMenu.DOWNLOAD_MAP); } else { if (_arg1 == 4){ Main.menu.changeState(MainMenu.PASTE_MAP); } else { if (_arg1 == 5){ Main.menu.changeState(MainMenu.START); }; }; }; }; }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(5); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } override public function show():void{ Main.menu.getSettings().clearEditor(); this.clip.visible = true; } } }//package ui.menu
Section 138
//MainPlayClip (ui.menu.MainPlayClip) package ui.menu { import flash.display.*; public dynamic class MainPlayClip extends MovieClip { public var campaign:MovieClip; public var background:MovieClip; public var browse:MovieClip; public var randomMap:MovieClip; public var loadMap:MovieClip; public var downloadMap:MovieClip; public var back:MovieClip; public function MainPlayClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 139
//MainRate (ui.menu.MainRate) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class MainRate extends MenuRoot { protected var difficulty:int; protected var clip:MainRateClip; protected var buttons:ButtonList; protected var fun:int; protected static var funRatings:Array = [Text.rateBad, Text.rateOk, Text.rateGood]; protected static var difficultyLabels:Array = ["easy", "medium", "hard"]; protected static var difficultyRatings:Array = [Text.rateEasy, Text.rateMedium, Text.rateHard]; protected static var funLabels:Array = ["bad", "ok", "good"]; public function MainRate(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.difficulty = 1; this.fun = 1; this.clip = new MainRateClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.back, this.clip.submitButton, this.clip.difficultyDown, this.clip.difficultyUp, this.clip.funDown, this.clip.funUp]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ if (_arg1 == 0){ Main.menu.revertState(); } else { if (_arg1 == 1){ Main.menu.rateFun = funLabels[this.fun]; Main.menu.rateDifficulty = difficultyLabels[this.difficulty]; Main.menu.changeState(MainMenu.RATE_MAP_WAIT); } else { if (_arg1 == 2){ if (this.difficulty > 0){ this.difficulty--; Util.success(); } else { Util.failure(); }; this.updateDifficulty(); } else { if (_arg1 == 3){ if (this.difficulty < 2){ this.difficulty++; Util.success(); } else { Util.failure(); }; this.updateDifficulty(); } else { if (_arg1 == 4){ if (this.fun > 0){ this.fun--; Util.success(); } else { Util.failure(); }; this.updateFun(); } else { if (_arg1 == 5){ if (this.fun < 2){ this.fun++; Util.success(); } else { Util.failure(); }; this.updateFun(); }; }; }; }; }; }; } protected function updateDifficulty():void{ var _local1:int; var _local2:int; this.clip.difficulty.barText.text = difficultyRatings[this.difficulty]; _local1 = this.difficulty; _local2 = 2; this.clip.difficulty.bar.width = ((_local1 / _local2) * Option.statusBarSize); if (this.difficulty == 0){ this.buttons.setGhosted(this.clip.difficultyDown); } else { this.buttons.setNormal(this.clip.difficultyDown); }; if (this.difficulty == 2){ this.buttons.setGhosted(this.clip.difficultyUp); } else { this.buttons.setNormal(this.clip.difficultyUp); }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(0); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } protected function updateFun():void{ var _local1:int; var _local2:int; this.clip.fun.barText.text = funRatings[this.fun]; _local1 = this.fun; _local2 = 2; this.clip.fun.bar.width = ((_local1 / _local2) * Option.statusBarSize); if (this.fun == 0){ this.buttons.setGhosted(this.clip.funDown); } else { this.buttons.setNormal(this.clip.funDown); }; if (this.fun == 2){ this.buttons.setGhosted(this.clip.funUp); } else { this.buttons.setNormal(this.clip.funUp); }; } override public function show():void{ this.clip.visible = true; this.difficulty = 1; this.fun = 1; this.updateDifficulty(); this.updateFun(); } } }//package ui.menu
Section 140
//MainRateClip (ui.menu.MainRateClip) package ui.menu { import flash.display.*; public dynamic class MainRateClip extends MovieClip { public var background:MovieClip; public var submitButton:MovieClip; public var fun:StatusClip; public var funUp:MovieClip; public var difficulty:StatusClip; public var difficultyUp:MovieClip; public var funDown:MovieClip; public var back:MovieClip; public var difficultyDown:MovieClip; public function MainRateClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 141
//MainStart (ui.menu.MainStart) package ui.menu { import flash.display.*; import logic.*; import ui.*; import flash.*; public class MainStart extends MenuRoot { protected var clip:MainStartClip; protected var buttons:ButtonList; public function MainStart(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainStartClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.newGame, this.clip.loadGame, this.clip.pedia, this.clip.options, this.clip.editor, this.clip.credits]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ if (_arg1 == 0){ Util.success(); Main.menu.getSettings().clearEditor(); if (Main.firstGame()){ Main.menu.changeState(MainMenu.TUTORIAL); } else { Main.menu.changeState(MainMenu.PLAY); }; } else { if (_arg1 == 1){ if (Main.canLoad()){ Util.success(); Main.menu.changeState(MainMenu.LOAD_WAIT); } else { Util.failure(); }; } else { if (_arg1 == 2){ Util.success(); Main.menu.changeState(MainMenu.PEDIA); } else { if (_arg1 == 3){ Util.success(); Main.menu.changeState(MainMenu.OPTIONS); } else { if (_arg1 == 4){ Util.success(); Main.menu.changeState(MainMenu.EDIT_SELECT); } else { if (_arg1 == 5){ Util.success(); Main.menu.changeState(MainMenu.CREDITS); }; }; }; }; }; }; } override public function resize(_arg1:Point):void{ var _local2:int; Util.scaleToFit(this.clip.background, _arg1); _local2 = Math.floor((this.clip.newGame.x + this.clip.newGame.width)); this.clip.title.x = ((_local2 + (((_arg1.x - _local2) - this.clip.title.width) / 2)) + 10); this.clip.mb2.x = _arg1.x; this.clip.mb2.y = _arg1.y; } override public function show():void{ if (Main.menu != null){ Main.menu.setSettings(new GameSettings()); }; this.clip.visible = true; if (Main.canLoad()){ this.buttons.setNormal(this.clip.loadGame); } else { this.buttons.setGhosted(this.clip.loadGame); }; } } }//package ui.menu
Section 142
//MainStartClip (ui.menu.MainStartClip) package ui.menu { import flash.display.*; import flash.events.*; import flash.net.*; public dynamic class MainStartClip extends MovieClip { public var background:MovieClip; public var mb2:SimpleButton; public var title:MovieClip; public var editor:MovieClip; public var pedia:MovieClip; public var credits:MovieClip; public var options:MovieClip; public var newGame:MovieClip; public var loadGame:MovieClip; public function MainStartClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); if (mb2 != null){ mb2.addEventListener(MouseEvent.CLICK, clickHandler, false, 0, true); }; } public function clickHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.arcadebomb.com"), "_blank"); } } }//package ui.menu
Section 143
//MainTutorial (ui.menu.MainTutorial) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class MainTutorial extends MenuRoot { protected var clip:MainTutorialClip; protected var buttons:ButtonList; public function MainTutorial(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainTutorialClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.playTutorial, this.clip.skipTutorial, this.clip.back]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 0){ Main.menu.rateState = MainMenu.CAMPAIGN; WaitMenu.loadMap(Text.levels[0]); Main.menu.getSettings().setCampaign(0); } else { if (_arg1 == 1){ Main.menu.changeState(MainMenu.PLAY); } else { if (_arg1 == 2){ Main.menu.changeState(MainMenu.START); }; }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(2); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } override public function show():void{ this.clip.visible = true; } } }//package ui.menu
Section 144
//MainTutorialClip (ui.menu.MainTutorialClip) package ui.menu { import flash.display.*; public dynamic class MainTutorialClip extends MovieClip { public var background:MovieClip; public var playTutorial:MovieClip; public var back:MovieClip; public var skipTutorial:MovieClip; public function MainTutorialClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 145
//MainWin (ui.menu.MainWin) package ui.menu { import flash.display.*; import logic.*; import ui.*; import mapgen.*; import flash.*; public class MainWin extends MenuRoot { protected var clip:MainWinClip; protected var buttons:ButtonList; public function MainWin(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainWinClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.clip.rateLabel.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.replay, this.clip.mainMenu, this.clip.rateButton]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } protected function hintText():String{ var _local1:String; var _local2:int; var _local3:int; _local1 = ""; _local2 = Main.menu.getSettings().getDifficulty(); Util.seed(Main.menu.getSettings().getNormalName()); if (_local2 == 1){ _local1 = Text.easter[0]; } else { if (_local2 == 2){ _local1 = Text.easter[1]; } else { if (_local2 >= 3){ _local3 = Util.rand((Text.easter.length - 2)); _local1 = Text.easter[(_local3 + 2)]; }; }; }; return (_local1); } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ var _local2:int; Util.success(); if (_arg1 == 0){ Main.beginReplay(); } else { if (_arg1 == 1){ _local2 = MainMenu.START; if (Main.menu.getSettings().getCampaign() != -1){ _local2 = MainMenu.CAMPAIGN; }; Main.menu.setSettings(new GameSettings()); Main.menu.changeState(_local2); } else { if (_arg1 == 2){ Main.menu.rateState = MainMenu.WIN; Main.menu.changeState(MainMenu.RATE_MAP); }; }; }; } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); Util.alignRight(this.clip.city, _arg1); Util.alignRight(this.clip.difficulty, _arg1); Util.alignRight(this.clip.time, _arg1); Util.alignBottom(this.clip.rateButton, _arg1); Util.alignLabel(this.clip.rateButton, this.clip.rateLabel); this.clip.mb2.x = _arg1.x; this.clip.mb2.y = _arg1.y; } override public function show():void{ var _local1:int; this.clip.visible = true; this.clip.city.text = Main.menu.getSettings().getCityName(); this.clip.difficulty.text = Main.menu.getSettings().getDifficultyName(); _local1 = Main.menu.getSettings().getPlayTime(); this.clip.time.text = new Time(_local1).toString(); if (Main.menu.getSettings().getKey() == null){ this.clip.rateButton.visible = false; this.clip.rateLabel.visible = false; } else { this.clip.rateButton.visible = true; this.clip.rateLabel.visible = true; }; } } }//package ui.menu
Section 146
//MainWinClip (ui.menu.MainWinClip) package ui.menu { import flash.display.*; import flash.events.*; import flash.net.*; import flash.text.*; public dynamic class MainWinClip extends MovieClip { public var rateLabel:TextField; public var background:MovieClip; public var rateButton:MovieClip; public var mb2:SimpleButton; public var city:TextField; public var difficulty:TextField; public var time:TextField; public var mainMenu:MovieClip; public var replay:MovieClip; public function MainWinClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); if (mb2 != null){ mb2.addEventListener(MouseEvent.CLICK, clickHandler, false, 0, true); }; } public function clickHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.arcadebomb.com"), "_blank"); } } }//package ui.menu
Section 147
//MenuRoot (ui.menu.MenuRoot) package ui.menu { public class MenuRoot { public function MenuRoot():void{ } public function hotkey(_arg1:String, _arg2:int):Boolean{ return (false); } public function cleanup():void{ } public function hide():void{ } public function showTutorial():void{ this.show(); } public function resize(_arg1:Point):void{ } public function visitPage(_arg1:String):void{ } public function show():void{ } } }//package ui.menu
Section 148
//OptionsMenuClip (ui.menu.OptionsMenuClip) package ui.menu { import flash.display.*; public dynamic class OptionsMenuClip extends MovieClip { public var scrollDown:MovieClip; public var soundUp:MovieClip; public var music:StatusClip; public var background:MovieClip; public var sound:StatusClip; public var scrollUp:MovieClip; public var soundDown:MovieClip; public var musicDown:MovieClip; public var musicUp:MovieClip; public var scroll:StatusClip; public var back:MovieClip; } }//package ui.menu
Section 149
//PediaHash (ui.menu.PediaHash) package ui.menu { import ui.*; import flash.*; public class PediaHash { protected var hash:Hash; public function PediaHash():void{ var _local1:int; var _local2:String; var _local3:String; super(); if (!Boot.skip_constructor){ this.hash = new Hash(); _local1 = 0; while (_local1 < (Text.pedia.length - 1)) { _local2 = Text.pedia[_local1]; _local2 = StringTools.trim(_local2); _local3 = Text.pedia[(_local1 + 1)]; this.hash.set(_local2, _local3); _local1 = (_local1 + 2); }; }; } public function lookup(_arg1:String):String{ var _local2:String; _local2 = (("ERROR: " + _arg1) + " not found"); if (this.hash.exists(_arg1)){ _local2 = this.hash.get(_arg1); }; return (_local2); } } }//package ui.menu
Section 150
//PediaMenuClip (ui.menu.PediaMenuClip) package ui.menu { import fl.controls.*; import flash.display.*; import flash.text.*; public dynamic class PediaMenuClip extends MovieClip { public var scrollBar:UIScrollBar; public var background:MovieClip; public var splash:MovieClip; public var entry:TextField; public var up:ButtonUpgrade; public var forward:MovieClip; public var returnToMenu:MovieClip; public var back:MovieClip; public function PediaMenuClip(){ __setProp_scrollBar_PediaMenuClip_Layer1_1(); } function __setProp_scrollBar_PediaMenuClip_Layer1_1(){ try { scrollBar["componentInspectorSetting"] = true; } catch(e:Error) { }; scrollBar.direction = "vertical"; scrollBar.scrollTargetName = "entry"; scrollBar.visible = true; try { scrollBar["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package ui.menu
Section 151
//PlanMenuClip (ui.menu.PlanMenuClip) package ui.menu { import flash.display.*; public dynamic class PlanMenuClip extends MovieClip { public var abandon:ButtonAbandon; public function PlanMenuClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 152
//Quick (ui.menu.Quick) package ui.menu { import flash.display.*; import flash.events.*; import ui.*; import flash.*; public class Quick { protected var clip:QuickClip; protected var buttonList:ButtonList; protected static var HELP:int = 1; protected static var RANGE_ON:int = 3; protected static var RANGE_OFF:int = 2; protected static var SYSTEM:int = 0; public function Quick(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ if (!Boot.skip_constructor){ this.clip = new QuickClip(); _arg1.addChild(this.clip); this.clip.visible = true; this.clip.mouseEnabled = false; this.clip.rangeOn.visible = false; if (Game.settings.isEditor()){ this.clip.rangeOff.visible = false; this.clip.rangeOn.visible = false; }; this.buttonList = new ButtonList(this.click, this.hover, [this.clip.system, this.clip.help, this.clip.rangeOff, this.clip.rangeOn]); this.clip.addEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.resize(_arg2); }; } protected function findDepot(_arg1:Point):Point{ var _local2:Point; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; _local2 = _arg1.clone(); if (this.hasDepot(_local2)){ return (_local2); }; _local3 = Math.floor(Math.max(Game.map.sizeX(), Game.map.sizeY())); _local4 = 1; while (_local4 < _local3) { var _temp1 = _local4; _local4 = (_local4 + 1); _local5 = _temp1; _local6 = -(_local5); _local7 = _local5; while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local8 = _temp2; _local2.y = (_arg1.y + _local8); _local2.x = (_arg1.x - _local5); if (this.hasDepot(_local2)){ return (_local2); }; _local2.x = (_arg1.x + _local5); if (this.hasDepot(_local2)){ return (_local2); }; _local2.x = (_arg1.x + _local8); _local2.y = (_arg1.y - _local5); if (this.hasDepot(_local2)){ return (_local2); }; _local2.y = (_arg1.y + _local5); if (this.hasDepot(_local2)){ return (_local2); }; }; }; return (null); } public function cleanup():void{ this.clip.removeEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.buttonList.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == SYSTEM){ Game.view.centerMenu.changeState(CenterMenu.SYSTEM); } else { if (_arg1 == HELP){ Game.view.centerMenu.changeState(CenterMenu.PEDIA); } else { if ((((_arg1 == RANGE_ON)) || ((_arg1 == RANGE_OFF)))){ Game.view.window.toggleRanges(); }; }; }; } public function updateView(_arg1:Boolean):void{ if (_arg1){ this.clip.rangeOn.visible = true; this.clip.rangeOff.visible = false; } else { this.clip.rangeOn.visible = false; this.clip.rangeOff.visible = true; }; } protected function rollOver(_arg1:MouseEvent):void{ Game.view.toolTip.hide(); } public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg1 == "/")) || ((_arg1 == "?")))){ this.click(HELP); } else { if (_arg1 == " "){ Game.pause.toggle(); } else { if (_arg1 == "v"){ this.click(RANGE_ON); } else { _local3 = false; }; }; }; return (_local3); } protected function centerOn(_arg1:int, _arg2:int):void{ var _local3:LayoutGame; _local3 = Game.view.layout; Game.view.window.moveWindow((_arg1 - _local3.windowCenter.x), (_arg2 - _local3.windowCenter.y)); } protected function hasDepot(_arg1:Point):Boolean{ var _local2:Boolean; var _local3:Tower; _local2 = false; if (!Lib.outsideMap(_arg1)){ _local3 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); if (((!((_local3 == null))) && ((_local3.getType() == Tower.DEPOT)))){ _local2 = true; }; }; return (_local2); } public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.quickOffset.x; this.clip.y = _arg1.quickOffset.y; } protected function hover(_arg1:int):String{ var _local2:String; _local2 = null; if (_arg1 == SYSTEM){ _local2 = Text.systemTip; } else { if (_arg1 == HELP){ _local2 = Text.pediaTip; } else { if ((((_arg1 == RANGE_ON)) || ((_arg1 == RANGE_OFF)))){ if (Game.view.window.isShowingRanges()){ _local2 = Text.hideRangeTip; } else { _local2 = Text.showRangeTip; }; }; }; }; return (_local2); } } }//package ui.menu
Section 153
//QuickClip (ui.menu.QuickClip) package ui.menu { import flash.display.*; public dynamic class QuickClip extends MovieClip { public var rangeOn:ButtonRangeOn; public var system:ButtonSystem; public var help:ButtonHelp; public var rangeOff:ButtonRangeOff; } }//package ui.menu
Section 154
//ReplayMenuClip (ui.menu.ReplayMenuClip) package ui.menu { import flash.display.*; public dynamic class ReplayMenuClip extends MovieClip { public var slow:MovieClip; public var speed:StatusClip; public var fast:MovieClip; public var back:MovieClip; } }//package ui.menu
Section 155
//ResourceMenuClip (ui.menu.ResourceMenuClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class ResourceMenuClip extends MovieClip { public var ammoUp:ButtonPlus; public var boardsQuota:TextField; public var ammoQuotaBackground:MovieClip; public var ammoStockBackground:MovieClip; public var survivorsQuota:TextField; public var boardsIcon:MovieClip; public var ammoQuota:TextField; public var quota:TextField; public var survivorsIcon:MovieClip; public var ammoDown:ButtonMinus; public var boardsDown:ButtonMinus; public var ammoIcon:MovieClip; public var boardsQuotaBackground:MovieClip; public var survivorsDown:ButtonMinus; public var survivorsQuotaBackground:MovieClip; public var boardsUp:ButtonPlus; public var boardsStock:TextField; public var boardsStockBackground:MovieClip; public var survivorsStock:TextField; public var survivorsUp:ButtonPlus; public var ammoStock:TextField; public var survivorsStockBackground:MovieClip; } }//package ui.menu
Section 156
//SaveMapMenu (ui.menu.SaveMapMenu) package ui.menu { import flash.display.*; import flash.events.*; import ui.*; import flash.text.*; import flash.*; import flash.system.*; public class SaveMapMenu extends MenuRoot { protected var clip:SaveMapMenuClip; protected var buttons:ButtonList; public function SaveMapMenu(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new SaveMapMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.clip.copyLabel.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.back, this.clip.copyButton]); this.clip.entry.multiline = true; this.clip.entry.wordWrap = true; this.clip.entry.autoSize = TextFieldAutoSize.NONE; this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function componentUpdate(_arg1:Event):void{ this.clip.scrollBar.update(); this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 0){ Game.view.centerMenu.changeState(CenterMenu.SYSTEM); } else { if (_arg1 == 1){ System.setClipboard(this.clip.entry.text); }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(0); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ var _local2:int; Util.centerHorizontally(this.clip.back, _arg1); Util.alignBottom(this.clip.back, _arg1); Util.alignBottom(this.clip.copyButton, _arg1); Util.alignLabel(this.clip.copyButton, this.clip.copyLabel); _local2 = (_arg1.x - 60); if (_local2 > 600){ _local2 = 600; }; this.clip.entry.x = (((_arg1.x - _local2) / 2) - 10); this.clip.entry.width = _local2; this.clip.entry.height = (_arg1.y - 140); this.clip.scrollBar.x = ((this.clip.entry.x + this.clip.entry.width) + 5); this.clip.scrollBar.height = (_arg1.y - 140); this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } override public function show():void{ this.clip.visible = true; this.clip.entry.text = Game.settings.saveMap(); this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } } }//package ui.menu
Section 157
//SaveMapMenuClip (ui.menu.SaveMapMenuClip) package ui.menu { import fl.controls.*; import flash.display.*; import flash.text.*; public dynamic class SaveMapMenuClip extends MovieClip { public var scrollBar:UIScrollBar; public var copyButton:MovieClip; public var copyLabel:TextField; public var entry:TextField; public var back:MovieClip; public function SaveMapMenuClip(){ __setProp_scrollBar_SaveMapMenuClip_Layer1_1(); } function __setProp_scrollBar_SaveMapMenuClip_Layer1_1(){ try { scrollBar["componentInspectorSetting"] = true; } catch(e:Error) { }; scrollBar.direction = "vertical"; scrollBar.scrollTargetName = "entry"; scrollBar.visible = true; try { scrollBar["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package ui.menu
Section 158
//ScrollMenu (ui.menu.ScrollMenu) package ui.menu { import flash.display.*; import flash.events.*; import ui.*; import flash.*; public class ScrollMenu { protected var hoverDir:Direction; protected var arrows:Array; public function ScrollMenu(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ var _local3:int; var _local4:Array; var _local5:Direction; var _local6:ScrollArrowClip; super(); if (!Boot.skip_constructor){ this.arrows = []; _local3 = 0; _local4 = Lib.directions; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local6 = new ScrollArrowClip(); _arg1.addChild(_local6); _local6.rotation = Lib.directionToAngle(_local5); _local6.gotoAndStop(1); _local6.addEventListener(MouseEvent.ROLL_OVER, this.rollOver); _local6.addEventListener(MouseEvent.ROLL_OUT, this.rollOut); this.arrows.push(_local6); if (!Game.settings.isEditor()){ _local6.visible = false; }; }; this.hoverDir = null; this.resize(_arg2); }; } public function cleanup():void{ var _local1:int; var _local2:Array; var _local3:MovieClip; _local1 = 0; _local2 = this.arrows; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.removeEventListener(MouseEvent.ROLL_OVER, this.rollOver); _local3.removeEventListener(MouseEvent.ROLL_OUT, this.rollOut); _local3.parent.removeChild(_local3); }; } protected function rollOut(_arg1:MouseEvent):void{ var _local2:int; if (this.hoverDir != null){ _local2 = Lib.directionToIndex(this.hoverDir); this.arrows[_local2].gotoAndStop(1); this.hoverDir = null; }; } public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; var _local4:Direction; var _local5:Window; _local3 = true; _local4 = Direction.NORTH; _local5 = Game.view.window; if ((((_arg2 == 38)) || ((_arg2 == 104)))){ _local4 = Direction.NORTH; _local5.scrollWindow(_local4, 1); } else { if ((((_arg2 == 40)) || ((_arg2 == 98)))){ _local4 = Direction.SOUTH; _local5.scrollWindow(_local4, 1); } else { if ((((_arg2 == 39)) || ((_arg2 == 102)))){ _local4 = Direction.EAST; _local5.scrollWindow(_local4, 1); } else { if ((((_arg2 == 37)) || ((_arg2 == 100)))){ _local4 = Direction.WEST; _local5.scrollWindow(_local4, 1); } else { _local3 = false; }; }; }; }; return (_local3); } public function resize(_arg1:Point):void{ this.arrows[0].x = (_arg1.x / 2); this.arrows[0].y = 50; this.arrows[1].x = (_arg1.x / 2); this.arrows[1].y = _arg1.y; this.arrows[2].x = _arg1.x; this.arrows[2].y = (_arg1.y / 2); this.arrows[3].x = 0; this.arrows[3].y = (_arg1.y / 2); } public function enterFrame():void{ if (this.hoverDir != null){ Game.view.window.scrollWindow(this.hoverDir, 1); }; } protected function rollOver(_arg1:MouseEvent):void{ var _local2:int; var _local3:Boolean; var _local4:int; var _local5:Array; var _local6:MovieClip; this.hoverDir = null; _local2 = 0; _local3 = false; _local4 = 0; _local5 = this.arrows; while (_local4 < _local5.length) { _local6 = _local5[_local4]; _local4++; if (_local6 == _arg1.target){ _local6.gotoAndStop(2); _local3 = true; break; }; _local2++; }; if (_local3){ this.hoverDir = Lib.indexToDirection(_local2); }; } } }//package ui.menu
Section 159
//SetChargesClip (ui.menu.SetChargesClip) package ui.menu { import flash.display.*; public dynamic class SetChargesClip extends MovieClip { public var bar:MovieClip; } }//package ui.menu
Section 160
//SideBar (ui.menu.SideBar) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class SideBar { protected var state:int; protected var sideBars:Array; protected var useHover:Boolean; public static var WORKSHOP:int = 3; public static var PLAN:int = 4; public static var SNIPER:int = 1; public static var BARRICADE:int = 0; public static var DEPOT:int = 2; public static var NONE:int = 5; public function SideBar(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ if (!Boot.skip_constructor){ this.state = NONE; this.sideBars = []; this.sideBars.push(new SideBarricade(_arg1, _arg2)); this.sideBars.push(new SideSniper(_arg1, _arg2)); this.sideBars.push(new SideDepot(_arg1, _arg2)); this.sideBars.push(new SideWorkshop(_arg1, _arg2)); this.sideBars.push(new SidePlan(_arg1, _arg2)); this.sideBars.push(new SideRoot(null)); this.useHover = true; }; } public function cleanup():void{ var _local1:int; var _local2:Array; var _local3:SideRoot; _local1 = 0; _local2 = this.sideBars; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.cleanup(); }; this.sideBars = null; } public function clickTower(_arg1:Point):void{ this.changeState(this.sideBars[this.state].tower(_arg1)); } public function hoverBackground(_arg1:Point):void{ if (this.useHover){ this.sideBars[this.state].hoverBackground(_arg1); }; } public function changeSelect():void{ var _local1:int; var _local2:Point; var _local3:MapCell; _local1 = NONE; _local2 = Game.select.getSelected(); if (_local2 != null){ _local3 = Game.map.getCell(_local2.x, _local2.y); if (_local3.hasTower()){ _local1 = _local3.getTower().getType(); } else { if (_local3.hasShadow()){ _local1 = PLAN; }; }; }; this.changeState(_local1); } public function hoverTower(_arg1:Point):void{ if (this.useHover){ this.sideBars[this.state].hoverTower(_arg1); }; } protected function changeState(_arg1:int):void{ if (_arg1 != this.state){ this.sideBars[this.state].hide(); this.sideBars[_arg1].show(); this.state = _arg1; }; } public function hotkey(_arg1:String, _arg2:int):Boolean{ return (this.sideBars[this.state].hotkey(_arg1, _arg2)); } public function resize(_arg1:LayoutGame):void{ var _local2:int; var _local3:Array; var _local4:SideRoot; _local2 = 0; _local3 = this.sideBars; while (_local2 < _local3.length) { _local4 = _local3[_local2]; _local2++; _local4.resize(_arg1); }; } public function enterFrame():void{ var _local1:int; var _local2:int; var _local3:int; _local1 = 0; _local2 = this.sideBars.length; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; if (_local3 == this.state){ this.sideBars[_local3].stepShow(); } else { this.sideBars[_local3].stepHide(); }; }; } public function clickBackground(_arg1:Point):void{ this.changeState(this.sideBars[this.state].background(_arg1)); } public function enableHover():void{ this.useHover = true; } public function disableHover():void{ this.useHover = false; } public function show():void{ this.sideBars[this.state].show(); } } }//package ui.menu
Section 161
//SideBarricade (ui.menu.SideBarricade) package ui.menu { import flash.display.*; import ui.*; import flash.text.*; import flash.*; public class SideBarricade extends SideRoot { protected var clip:BarricadeMenuClip; protected var hoverBase:HoverList; protected static var BOARDS_DOWN:int = 1; protected static var BOARDS_UP:int = 0; public function SideBarricade(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ var parent = _arg1; var l = _arg2; if (!Boot.skip_constructor){ this.clip = new BarricadeMenuClip(); parent.addChild(this.clip); this.clip.visible = false; this.resize(l); super(this.clip, [this.clip.boardsUp, this.clip.boardsDown]); this.hoverBase = new HoverList([function (_arg1:SideBarricade):DisplayObject{ var $r:*; var tmp:*; var $this = _arg1; tmp = $this.clip.boardsStock; $r = (Std._is(tmp, DisplayObject)) ? tmp : function (_arg1:SideBarricade):TextField{ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this), this.clip.boardsIcon, this.clip.boardsStockBackground, this.clip.boardsQuota, this.clip.boardsQuotaBackground, this.clip.quota], [Text.boardsTip, Text.boardsTip, Text.boardsTip, Text.boardsQuotaTip, Text.boardsQuotaTip, Text.quotaTip]); }; } protected function barClick(_arg1:Resource, _arg2:Boolean):void{ this.changeReserve(Resource.BOARDS, _arg2); } override protected function click(_arg1:int):void{ if (_arg1 == BOARDS_UP){ this.barClick(Resource.BOARDS, true); } else { if (_arg1 == BOARDS_DOWN){ this.barClick(Resource.BOARDS, false); }; }; } override protected function hover(_arg1:int):String{ if (_arg1 == BOARDS_UP){ return (this.boardHover(Resource.BOARDS, true)); }; if (_arg1 == BOARDS_DOWN){ return (this.boardHover(Resource.BOARDS, false)); }; return (null); } override public function cleanup():void{ this.hoverBase.cleanup(); super.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg1 == "-")) || ((_arg1 == "_")))){ this.click(BOARDS_DOWN); } else { if ((((_arg1 == "=")) || ((_arg1 == "+")))){ this.click(BOARDS_UP); } else { _local3 = false; }; }; return (_local3); } override public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.sideMenuOffset.x; this.clip.y = _arg1.sideMenuOffset.y; } protected function boardHover(_arg1:Resource, _arg2:Boolean):String{ var _local3:String; _local3 = null; if (_arg2){ return (Text.barricadeBoardsIncreaseTip); }; return (Text.barricadeBoardsDecreaseTip); } override public function show():void{ var _local1:Point; var _local2:Tower; super.show(); _local1 = Game.select.getSelected(); _local2 = Game.map.getCell(_local1.x, _local1.y).getTower(); this.clip.boardsStock.text = Std.string(_local2.countResource(Resource.BOARDS)); this.clip.boardsQuota.text = Std.string(_local2.countReserve(Resource.BOARDS)); } } }//package ui.menu
Section 162
//SideDepot (ui.menu.SideDepot) package ui.menu { import flash.display.*; import ui.*; import flash.text.*; import flash.*; public class SideDepot extends SideRoot { protected var quotaText:Array; protected var hoverBase:HoverList; protected var clip:DepotMenuClip; protected var stockText:Array; protected static var SURVIVORS_DOWN:int = 4; protected static var resources:Array = [Resource.AMMO, Resource.BOARDS, Resource.SURVIVORS]; protected static var AMMO_UP:int = 5; protected static var BOARDS_UP:int = 6; protected static var AMMO_DOWN:int = 2; protected static var BOARDS_DOWN:int = 3; protected static var ABANDON:int = 0; protected static var barDecreaseTip:Array = [Text.depotAmmoDecreaseTip, Text.depotBoardsDecreaseTip, null, Text.depotSurvivorsDecreaseTip]; protected static var GATHER:int = 1; protected static var SURVIVORS_UP:int = 7; protected static var barIncreaseTip:Array = [Text.depotAmmoIncreaseTip, Text.depotBoardsIncreaseTip, null, Text.depotSurvivorsIncreaseTip]; public function SideDepot(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ var parent = _arg1; var l = _arg2; if (!Boot.skip_constructor){ this.clip = new DepotMenuClip(); parent.addChild(this.clip); this.clip.visible = false; this.resize(l); this.quotaText = [this.clip.resource.ammoQuota, this.clip.resource.boardsQuota, this.clip.resource.survivorsQuota]; this.stockText = [this.clip.resource.ammoStock, this.clip.resource.boardsStock, this.clip.resource.survivorsStock]; super(this.clip, [this.clip.abandon, this.clip.gather, this.clip.resource.ammoDown, this.clip.resource.boardsDown, this.clip.resource.survivorsDown, this.clip.resource.ammoUp, this.clip.resource.boardsUp, this.clip.resource.survivorsUp]); this.setResourceClip(this.clip, this.clip.resource); this.hoverBase = new HoverList([function (_arg1:SideDepot):DisplayObject{ var $r:*; var tmp:*; var $this = _arg1; tmp = $this.clip.resource.ammoStock; $r = (Std._is(tmp, DisplayObject)) ? tmp : function (_arg1:SideDepot):TextField{ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this), this.clip.resource.ammoIcon, this.clip.resource.ammoStockBackground, this.clip.resource.boardsStock, this.clip.resource.boardsIcon, this.clip.resource.boardsStockBackground, this.clip.resource.survivorsStock, this.clip.resource.survivorsIcon, this.clip.resource.survivorsStockBackground, this.clip.resource.quota, this.clip.resource.ammoQuota, this.clip.resource.ammoQuotaBackground, this.clip.resource.boardsQuota, this.clip.resource.boardsQuotaBackground, this.clip.resource.survivorsQuota, this.clip.resource.survivorsQuotaBackground], [Text.ammoTip, Text.ammoTip, Text.ammoTip, Text.boardsTip, Text.boardsTip, Text.boardsTip, Text.survivorsTip, Text.survivorsTip, Text.survivorsTip, Text.quotaTip, Text.ammoQuotaTip, Text.ammoQuotaTip, Text.boardsQuotaTip, Text.boardsQuotaTip, Text.survivorsQuotaTip, Text.survivorsQuotaTip]); if (Game.settings.isEditor()){ this.clip.abandon.visible = false; }; }; } override public function hide():void{ super.hide(); } protected function showButtons():void{ this.showReserveButtons([this.clip.resource.ammoDown, this.clip.resource.boardsDown, this.clip.resource.survivorsDown], [Resource.AMMO, Resource.BOARDS, Resource.SURVIVORS]); if (Game.progress.getDepotCount() <= 1){ this.buttonList.setGhosted(this.clip.abandon); } else { this.buttonList.setNormal(this.clip.abandon); }; } override protected function click(_arg1:int):void{ var _local2:Tower; var _local3:int; var _local4:Array; var _local5:Resource; var _local6:Boolean; var _local7:Resource; if (_arg1 == ABANDON){ if (Game.progress.getDepotCount() <= 1){ Util.failure(); } else { Util.fleeClick(); Util.success(); }; } else { if (_arg1 == GATHER){ _local2 = this.getTower(); _local3 = 0; _local4 = Lib.resource; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local2.addSand(new ResourceCount(_local5, 100)); }; Util.success(); } else { _local6 = this.getIncreasing(_arg1); _local7 = this.getResource(_arg1); this.barClick(_local7, _local6); }; }; if (_arg1 != ABANDON){ this.show(); }; } override protected function hover(_arg1:int):String{ var _local2:String; var _local3:Boolean; var _local4:Resource; _local2 = null; if (_arg1 == ABANDON){ if (Game.progress.getDepotCount() <= 1){ _local2 = Text.noFleeTip; } else { _local2 = Text.fleeTip; }; } else { if (_arg1 == GATHER){ _local2 = Text.gatherResourcesTip; } else { _local3 = this.getIncreasing(_arg1); _local4 = this.getResource(_arg1); _local2 = this.barHover(_local4, _local3); }; }; return (_local2); } protected function getIncreasing(_arg1:int):Boolean{ var _local2:Boolean; _local2 = true; if ((((((_arg1 == AMMO_DOWN)) || ((_arg1 == BOARDS_DOWN)))) || ((_arg1 == SURVIVORS_DOWN)))){ _local2 = false; }; return (_local2); } protected function barHover(_arg1:Resource, _arg2:Boolean):String{ var _local3:String; var _local4:int; _local3 = null; _local4 = Lib.resourceToIndex(_arg1); if (_arg2){ _local3 = barIncreaseTip[_local4]; } else { if (this.getTower().countReserve(_arg1) > 0){ _local3 = barDecreaseTip[_local4]; } else { _local3 = SideRoot.barNoDecreaseTip[_local4]; }; }; return (_local3); } protected function barClick(_arg1:Resource, _arg2:Boolean):void{ this.changeReserve(_arg1, _arg2); } protected function getResource(_arg1:int):Resource{ var _local2:Resource; _local2 = Resource.SURVIVORS; if ((((_arg1 == AMMO_DOWN)) || ((_arg1 == AMMO_UP)))){ _local2 = Resource.AMMO; } else { if ((((_arg1 == BOARDS_DOWN)) || ((_arg1 == BOARDS_UP)))){ _local2 = Resource.BOARDS; }; }; return (_local2); } override public function cleanup():void{ this.hoverBase.cleanup(); super.removeResourceClip(this.clip); super.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ Util.success(); this.show(); } else { if ((((_arg1 == "-")) || ((_arg1 == "_")))){ this.click(SURVIVORS_DOWN); } else { if ((((_arg1 == "=")) || ((_arg1 == "+")))){ this.click(SURVIVORS_UP); } else { _local3 = Util.towerMenuHotkey(_arg1, _arg2); }; }; }; return (_local3); } override public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.sideMenuOffset.x; this.clip.y = _arg1.sideMenuOffset.y; } override public function show():void{ super.show(); showResources(this.quotaText, this.stockText); this.showButtons(); } protected static function showResources(_arg1:Array, _arg2:Array):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:Resource; var _local7:Tower; var _local8:int; var _local9:int; var _local10:int; _local3 = 0; _local4 = _arg1.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = resources[_local5]; _local7 = SideRoot.getSelectedTower(); _local8 = 1; _local9 = Math.floor((_local7.countReserve(_local6) / _local8)); _arg1[_local5].text = Std.string(_local9); _local10 = Math.floor((_local7.countResource(_local6) / _local8)); _arg2[_local5].text = Std.string(_local10); }; } } }//package ui.menu
Section 163
//SidePlan (ui.menu.SidePlan) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class SidePlan extends SideRoot { protected var clip:PlanMenuClip; public function SidePlan(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ if (!Boot.skip_constructor){ this.clip = new PlanMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.resize(_arg2); super(this.clip, [this.clip.abandon]); }; } protected function cancelClick():void{ var _local1:Point; _local1 = Game.select.getSelected(); Game.map.getCell(_local1.x, _local1.y).clearShadow(); Game.update.changeSelect(null); Util.success(); } override protected function click(_arg1:int):void{ this.cancelClick(); } override protected function hover(_arg1:int):String{ return (this.cancelHover()); } override public function cleanup():void{ super.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg2 == Keyboard.deleteCode)) || ((_arg2 == Keyboard.backSpaceCode)))){ this.cancelClick(); } else { if (_arg2 == Keyboard.escapeCode){ Game.update.changeSelect(null); Util.success(); } else { _local3 = false; }; }; return (_local3); } override public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.sideMenuOffset.x; this.clip.y = _arg1.sideMenuOffset.y; } protected function cancelHover():String{ return (Text.planCancelTip); } } }//package ui.menu
Section 164
//SideRoot (ui.menu.SideRoot) package ui.menu { import flash.display.*; import flash.events.*; import logic.*; import ui.*; import flash.*; public class SideRoot { protected var base:MovieClip; protected var alpha:int; protected var buttonList:ButtonList; protected var resourceClip:MovieClip; protected static var maxAlpha:int = 3; protected static var barNoDecreaseTip:Array = [Text.ammoNoDecreaseTip, Text.boardsNoDecreaseTip, Text.foodNoDecreaseTip, Text.survivorsNoDecreaseTip]; public function SideRoot(_arg1:MovieClip=null, _arg2:Array=null):void{ var _local3:Array; super(); if (!Boot.skip_constructor){ this.base = _arg1; this.alpha = 0; if (this.base != null){ this.base.alpha = 0; this.base.addEventListener(MouseEvent.ROLL_OVER, this.baseOver); }; this.resourceClip = null; _local3 = []; if (_arg2 != null){ _local3 = _arg2; }; this.buttonList = new ButtonList(this.click, this.hover, _local3); }; } protected function setResourceClip(_arg1:MovieClip, _arg2:MovieClip):void{ this.resourceClip = _arg2; this.resourceClip.y = Game.view.layout.resourceShownOffset; _arg1.addEventListener(MouseEvent.ROLL_OVER, this.rollOver); _arg1.addEventListener(MouseEvent.ROLL_OUT, this.rollOut); } public function hide():void{ } protected function baseOver(_arg1:MouseEvent):void{ Game.view.toolTip.hide(); } protected function click(_arg1:int):void{ } public function tower(_arg1:Point):int{ Util.success(); return (this.changeSelect(_arg1)); } public function hoverBackground(_arg1:Point):void{ var _local2:MapCell; var _local3:String; _local2 = Game.map.getCell(_arg1.x, _arg1.y); _local3 = null; if (_local2.hasShadow()){ _local3 = Text.hoverPlanTip; } else { if (_local2.feature != null){ _local3 = _local2.feature.getHoverTip(); } else { if (_local2.hasZombies()){ _local3 = Text.hoverZombieTip; } else { if (_local2.getBuilding() != null){ _local3 = _local2.getBuilding().getToolTip(); } else { if (_local2.hasRubble()){ _local3 = Text.hoverRubbleTip; }; }; }; }; }; Game.view.toolTip.show(_local3); } protected function changeSelect(_arg1:Point):int{ var _local2:MapCell; if (_arg1 == null){ Game.update.changeSelect(null); } else { _local2 = Game.map.getCell(_arg1.x, _arg1.y); if (((_local2.hasTower()) || (_local2.hasShadow()))){ if (((!(Game.settings.isEditor())) || (Point.isEqual(Game.editor.getSelectedSquare(), _arg1)))){ Game.update.changeSelect(_arg1); } else { Game.update.changeSelect(null); }; } else { Game.update.changeSelect(null); }; }; return (SideBar.NONE); } protected function rollOut(_arg1:MouseEvent):void{ } protected function getTower():Tower{ return (getSelectedTower()); } protected function showReserveButtons(_arg1:Array, _arg2:Array):void{ var _local3:Tower; var _local4:int; var _local5:int; var _local6:int; _local3 = this.getTower(); _local4 = 0; _local5 = _arg1.length; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; if (_local3.countReserve(_arg2[_local6]) < Lib.truckLoad(_arg2[_local6])){ this.buttonList.setGhosted(_arg1[_local6]); } else { this.buttonList.setNormal(_arg1[_local6]); }; }; } protected function removeResourceClip(_arg1:MovieClip):void{ if (this.resourceClip != null){ _arg1.removeEventListener(MouseEvent.ROLL_OVER, this.rollOver); _arg1.removeEventListener(MouseEvent.ROLL_OUT, this.rollOut); this.resourceClip = null; }; } public function cleanup():void{ if (this.base != null){ this.base.removeEventListener(MouseEvent.ROLL_OVER, this.baseOver); }; this.buttonList.cleanup(); } public function stepShow():void{ if (this.base != null){ if (this.alpha < maxAlpha){ this.alpha++; if (this.alpha == maxAlpha){ this.base.alpha = 1; } else { this.base.alpha = (this.alpha / maxAlpha); }; }; }; } protected function changeReserve(_arg1:Resource, _arg2:Boolean):void{ var _local3:Boolean; var _local4:int; var _local5:int; var _local6:int; var _local7:ResourceCount; var _local8:Point; var _local9:Tower; _local3 = false; _local4 = 1; if (Main.key.shift()){ _local4 = 5; }; _local5 = 0; while (_local5 < _local4) { var _temp1 = _local5; _local5 = (_local5 + 1); _local6 = _temp1; _local7 = new ResourceCount(_arg1, Lib.truckLoad(_arg1)); _local8 = Game.select.getSelected(); if (_arg2){ _local9 = this.getTower(); if (((((!((_local9.getType() == Tower.SNIPER))) || (!((_arg1 == Resource.SURVIVORS))))) || ((_local9.countReserve(Resource.SURVIVORS) < Sniper.maxSurvivors)))){ _local9.addReserve(_local7); if (!_local3){ Util.success(); _local3 = true; }; if (_arg1 == Resource.AMMO){ Game.script.trigger(Script.CLICK_ADD_AMMO, _local8); } else { if (_arg1 == Resource.BOARDS){ Game.script.trigger(Script.CLICK_ADD_BOARDS, _local8); } else { if (_arg1 == Resource.SURVIVORS){ Game.script.trigger(Script.CLICK_ADD_SURVIVORS, _local8); }; }; }; } else { if (!_local3){ Util.failure(); _local3 = true; }; }; } else { if (this.getTower().countReserve(_arg1) > 0){ this.getTower().removeReserve(_local7); if (!_local3){ Util.success(); _local3 = true; }; if (_arg1 == Resource.AMMO){ Game.script.trigger(Script.CLICK_REMOVE_AMMO, _local8); } else { if (_arg1 == Resource.BOARDS){ Game.script.trigger(Script.CLICK_REMOVE_BOARDS, _local8); } else { if (_arg1 == Resource.SURVIVORS){ Game.script.trigger(Script.CLICK_REMOVE_SURVIVORS, _local8); }; }; }; } else { if (!_local3){ Util.failure(); _local3 = true; }; }; }; }; } public function hoverTower(_arg1:Point):void{ var _local2:String; var _local3:Tower; var _local4:int; _local2 = null; _local3 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); _local4 = _local3.getType(); if (_local4 == Tower.DEPOT){ _local2 = Text.hoverDepotTip; } else { if (_local4 == Tower.WORKSHOP){ _local2 = Text.hoverWorkshopTip; } else { if (_local4 == Tower.SNIPER){ if (_local3.countResource(Resource.SURVIVORS) == 0){ _local2 = Text.hoverSniperNoSurvivorsTip; } else { if (_local3.countResource(Resource.AMMO) == 0){ _local2 = Text.hoverSniperNoAmmoTip; } else { if (_local3.isHoldingFire()){ _local2 = Text.hoverSniperHoldFireTip; } else { _local2 = Text.hoverSniperTip; }; }; }; } else { if (_local3.countResource(Resource.BOARDS) == 0){ _local2 = Text.hoverBarricadeNoBoardsTip; } else { _local2 = Text.hoverBarricadeTip; }; }; }; }; Game.view.toolTip.show(_local2); } public function background(_arg1:Point):int{ if (Game.select.getSelected() != null){ Util.success(); }; return (this.changeSelect(_arg1)); } protected function rollOver(_arg1:MouseEvent):void{ } public function hotkey(_arg1:String, _arg2:int):Boolean{ return (false); } public function resize(_arg1:LayoutGame):void{ } public function stepHide():void{ if (this.base != null){ if (this.alpha > 0){ this.alpha--; if (this.alpha == 0){ this.base.alpha = 0; this.base.visible = false; } else { this.base.alpha = (this.alpha / maxAlpha); }; }; }; } protected function hover(_arg1:int):String{ return (null); } public function show():void{ if (this.base != null){ this.base.visible = true; }; } protected static function getSelectedTower():Tower{ var _local1:Point; _local1 = Game.select.getSelected(); return (Game.map.getCell(_local1.x, _local1.y).getTower()); } } }//package ui.menu
Section 165
//SideSniper (ui.menu.SideSniper) package ui.menu { import flash.display.*; import logic.*; import ui.*; import flash.*; public class SideSniper extends SideRoot { protected var stocks:Array; protected var resources:Array; protected var hoverBase:HoverList; protected var clip:SniperMenuClip; protected var quotas:Array; protected static var SURVIVORS_UP:int = 8; protected static var FIRE_AT_WILL:int = 3; protected static var SURVIVORS_DOWN:int = 6; protected static var SHOOT_INTO_AIR:int = 1; protected static var barIncreaseTip:Array = [Text.sniperAmmoIncreaseTip, null, null, Text.sniperSurvivorsIncreaseTip]; protected static var AMMO_DOWN:int = 5; protected static var ABANDON:int = 0; protected static var barDecreaseTip:Array = [Text.sniperAmmoDecreaseTip, null, null, Text.sniperSurvivorsDecreaseTip]; protected static var accuracySize:int = 92; protected static var AMMO_UP:int = 7; protected static var UPGRADE:int = 4; protected static var HOLD_FIRE:int = 2; public function SideSniper(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ var parent = _arg1; var l = _arg2; if (!Boot.skip_constructor){ this.clip = new SniperMenuClip(); parent.addChild(this.clip); this.clip.visible = false; this.clip.accuracy.mouseChildren = false; this.resize(l); super(this.clip, [this.clip.abandon, this.clip.shootIntoAir, this.clip.holdFire, this.clip.fireAtWill, this.clip.upgrade, this.clip.resource.ammoDown, this.clip.resource.survivorsDown, this.clip.resource.ammoUp, this.clip.resource.survivorsUp]); this.setResourceClip(this.clip, this.clip.resource); this.stocks = [this.clip.resource.ammoStock, this.clip.resource.survivorsStock]; this.quotas = [this.clip.resource.ammoQuota, this.clip.resource.survivorsQuota]; this.resources = [Resource.AMMO, Resource.SURVIVORS]; this.hoverBase = new HoverList([function (_arg1:SideSniper):DisplayObject{ var $r:*; var tmp:*; var $this = _arg1; tmp = $this.clip.accuracy; $r = (Std._is(tmp, DisplayObject)) ? tmp : function (_arg1:SideSniper):AccuracyClip{ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this), this.clip.resource.ammoStock, this.clip.resource.ammoIcon, this.clip.resource.ammoStockBackground, this.clip.resource.survivorsStock, this.clip.resource.survivorsIcon, this.clip.resource.survivorsStockBackground, this.clip.resource.quota, this.clip.resource.ammoQuota, this.clip.resource.ammoQuotaBackground, this.clip.resource.survivorsQuota, this.clip.resource.survivorsQuotaBackground], [Text.accuracyBarTip, Text.ammoTip, Text.ammoTip, Text.ammoTip, Text.survivorsTip, Text.survivorsTip, Text.survivorsTip, Text.quotaTip, Text.ammoQuotaTip, Text.ammoQuotaTip, Text.survivorsQuotaTip, Text.survivorsQuotaTip]); if (Game.settings.isEditor()){ this.clip.abandon.visible = false; this.clip.shootIntoAir.visible = false; this.clip.holdFire.visible = false; this.clip.fireAtWill.visible = false; this.clip.upgrade.visible = false; }; }; } protected function getResource(_arg1:int):Resource{ var _local2:Resource; _local2 = Resource.SURVIVORS; if ((((_arg1 == AMMO_DOWN)) || ((_arg1 == AMMO_UP)))){ _local2 = Resource.AMMO; }; return (_local2); } protected function upgradeHover():String{ var _local1:String; var _local2:Point; var _local3:Tower; var _local4:String; _local1 = null; _local2 = Game.select.getSelected(); _local3 = Game.map.getCell(_local2.x, _local2.y).getTower(); if (_local3.isUpgrading()){ _local1 = Text.upgradeInProgressTip; } else { if (!_local3.canUpgrade()){ _local1 = Text.upgradeMaxTip; } else { if (_local3.getUpgradeSupplier() != null){ _local4 = _local3.getUpgradeLeftText(); _local1 = Text.upgradeSniperTip(_local4); } else { _local1 = Text.upgradeNoResourceTip; }; }; }; return (_local1); } override protected function click(_arg1:int):void{ var _local2:Boolean; var _local3:Resource; if (_arg1 == ABANDON){ Util.fleeClick(); Util.success(); } else { if (_arg1 == SHOOT_INTO_AIR){ this.wasteShotClick(); } else { if ((((_arg1 == HOLD_FIRE)) || ((_arg1 == FIRE_AT_WILL)))){ this.toggleFireClick(); } else { if (_arg1 == UPGRADE){ this.upgradeClick(); } else { _local2 = this.getIncreasing(_arg1); _local3 = this.getResource(_arg1); this.barClick(_local3, _local2); }; }; }; }; } override public function cleanup():void{ this.hoverBase.cleanup(); super.removeResourceClip(this.clip); super.cleanup(); this.clip.parent.removeChild(this.clip); } protected function toggleFireHover():String{ var _local1:Point; var _local2:Tower; _local1 = Game.select.getSelected(); _local2 = Game.map.getCell(_local1.x, _local1.y).getTower(); if (_local2.isHoldingFire()){ return (Text.enableFireTip); }; return (Text.disableFireTip); } override public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.sideMenuOffset.x; this.clip.y = _arg1.sideMenuOffset.y; } protected function barClick(_arg1:Resource, _arg2:Boolean):void{ this.changeReserve(_arg1, _arg2); } protected function wasteShotClick():void{ var _local1:Point; var _local2:Tower; _local1 = Game.select.getSelected(); _local2 = Game.map.getCell(_local1.x, _local1.y).getTower(); if (_local2.canWasteShot()){ Util.success(); _local2.wasteShot(); Game.script.trigger(Script.CLICK_SHOOT, _local1); } else { Util.failure(); if (_local2.countResource(Resource.SURVIVORS) == 0){ Game.view.warning.show(Text.noSurvivorsWarning); } else { if (_local2.countResource(Resource.AMMO) == 0){ Game.view.warning.show(Text.noAmmoWarning); } else { Game.view.warning.show(Text.noBoardsWarning); }; }; }; this.show(); } override protected function hover(_arg1:int):String{ var _local2:String; var _local3:Boolean; var _local4:Resource; _local2 = null; if (_arg1 == ABANDON){ _local2 = Util.fleeHover(); } else { if (_arg1 == SHOOT_INTO_AIR){ _local2 = this.wasteShotHover(); } else { if ((((_arg1 == HOLD_FIRE)) || ((_arg1 == FIRE_AT_WILL)))){ _local2 = this.toggleFireHover(); } else { if (_arg1 == UPGRADE){ _local2 = this.upgradeHover(); } else { _local3 = this.getIncreasing(_arg1); _local4 = this.getResource(_arg1); _local2 = this.barHover(_local4, _local3); }; }; }; }; return (_local2); } protected function upgradeClick():void{ var _local1:Point; var _local2:Tower; var _local3:Boolean; _local1 = Game.select.getSelected(); _local2 = Game.map.getCell(_local1.x, _local1.y).getTower(); _local3 = _local2.startUpgradeTruck(); if (_local3){ Game.script.trigger(Script.CLICK_UPGRADE, _local1); Util.success(); } else { Util.failure(); if (_local2.isUpgrading()){ Game.view.warning.show(Text.upgradeInProgressWarning); } else { Game.view.warning.show(Text.noUpgradeResourcesWarning); }; }; this.show(); } protected function wasteShotHover():String{ var _local1:Point; var _local2:Tower; _local1 = Game.select.getSelected(); _local2 = Game.map.getCell(_local1.x, _local1.y).getTower(); if (_local2.canWasteShot()){ return (Text.wasteShotTip); }; return (Text.noWasteShotTip); } protected function barHover(_arg1:Resource, _arg2:Boolean):String{ var _local3:String; var _local4:int; _local3 = null; _local4 = Lib.resourceToIndex(_arg1); if (_arg2){ _local3 = barIncreaseTip[_local4]; } else { if (this.getTower().countReserve(_arg1) > 0){ _local3 = barDecreaseTip[_local4]; } else { _local3 = SideRoot.barNoDecreaseTip[_local4]; }; }; return (_local3); } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg1 == "a")) || ((_arg1 == "A")))){ this.wasteShotClick(); } else { if ((((_arg1 == "f")) || ((_arg1 == "F")))){ this.toggleFireClick(); } else { if ((((_arg1 == "u")) || ((_arg1 == "U")))){ this.upgradeClick(); } else { if ((((_arg1 == "-")) || ((_arg1 == "_")))){ this.click(SURVIVORS_DOWN); } else { if ((((_arg1 == "=")) || ((_arg1 == "+")))){ this.click(SURVIVORS_UP); } else { _local3 = Util.towerMenuHotkey(_arg1, _arg2); }; }; }; }; }; return (_local3); } protected function getIncreasing(_arg1:int):Boolean{ var _local2:Boolean; _local2 = true; if ((((_arg1 == AMMO_DOWN)) || ((_arg1 == SURVIVORS_DOWN)))){ _local2 = false; }; return (_local2); } override public function show():void{ var _local1:Point; var _local2:Tower; var _local3:int; var _local4:int; var _local5:int; super.show(); _local1 = Game.select.getSelected(); _local2 = Game.map.getCell(_local1.x, _local1.y).getTower(); _local3 = 0; _local4 = this.resources.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; this.stocks[_local5].text = Std.string(_local2.countResource(this.resources[_local5])); this.quotas[_local5].text = Std.string(_local2.countReserve(this.resources[_local5])); }; this.clip.accuracy.bar.width = ((_local2.getAccuracy() / 100) * accuracySize); if (_local2.canWasteShot()){ this.buttonList.setNormal(this.clip.shootIntoAir); } else { this.buttonList.setGhosted(this.clip.shootIntoAir); }; if (!Game.settings.isEditor()){ if (_local2.isHoldingFire()){ this.clip.holdFire.visible = true; this.clip.fireAtWill.visible = false; } else { this.clip.holdFire.visible = false; this.clip.fireAtWill.visible = true; }; if (_local2.isUpgrading()){ this.buttonList.setProgress(this.clip.upgrade); this.clip.upgrade.visible = true; } else { if (!_local2.canUpgrade()){ this.clip.upgrade.visible = false; } else { if (_local2.getUpgradeSupplier() == null){ this.buttonList.setGhosted(this.clip.upgrade); this.clip.upgrade.visible = true; } else { this.buttonList.setNormal(this.clip.upgrade); this.clip.upgrade.visible = true; }; }; }; }; this.showReserveButtons([this.clip.resource.ammoDown, this.clip.resource.survivorsDown], [Resource.AMMO, Resource.SURVIVORS]); if (_local2.countReserve(Resource.SURVIVORS) >= Sniper.maxSurvivors){ this.buttonList.setGhosted(this.clip.resource.survivorsUp); } else { this.buttonList.setNormal(this.clip.resource.survivorsUp); }; } protected function toggleFireClick():void{ var _local1:Point; var _local2:Tower; _local1 = Game.select.getSelected(); _local2 = Game.map.getCell(_local1.x, _local1.y).getTower(); _local2.toggleHoldFire(); Game.script.trigger(Script.CLICK_HOLD_FIRE, _local1); Util.success(); this.show(); } } }//package ui.menu
Section 166
//SideWorkshop (ui.menu.SideWorkshop) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class SideWorkshop extends SideRoot { protected var clip:WorkshopMenuClip; protected var hoverBase:HoverList; protected var lefts:Array; protected var stocks:Array; protected static var ABANDON:int = 0; protected static var resources:Array = [Resource.AMMO, Resource.BOARDS, Resource.SURVIVORS]; protected static var SURVIVORS_DOWN:int = 1; protected static var SURVIVORS_UP:int = 2; protected static var setChargesSize:int = 128; public function SideWorkshop(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ var parent = _arg1; var l = _arg2; if (!Boot.skip_constructor){ this.clip = new WorkshopMenuClip(); parent.addChild(this.clip); this.clip.visible = false; this.clip.setCharges.mouseChildren = false; this.resize(l); super(this.clip, [this.clip.abandon, this.clip.survivorsDown, this.clip.survivorsUp]); this.stocks = [this.clip.ammoStock, this.clip.boardsStock, this.clip.survivorsStock]; this.lefts = [this.clip.ammoLeft, this.clip.boardsLeft, this.clip.survivorsLeft]; this.hoverBase = new HoverList([function (_arg1:SideWorkshop):DisplayObject{ var $r:*; var tmp:*; var $this = _arg1; tmp = $this.clip.setCharges; $r = (Std._is(tmp, DisplayObject)) ? tmp : function (_arg1:SideWorkshop):SetChargesClip{ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this), this.clip.ammoStock, this.clip.ammoIcon, this.clip.ammoStockBackground, this.clip.boardsStock, this.clip.boardsIcon, this.clip.boardsStockBackground, this.clip.survivorsStock, this.clip.survivorsIcon, this.clip.survivorsStockBackground, this.clip.quota, this.clip.survivorsQuota, this.clip.survivorsQuotaBackground, this.clip.leftToExtract, this.clip.ammoLeft, this.clip.ammoLeftBackground, this.clip.boardsLeft, this.clip.boardsLeftBackground, this.clip.survivorsLeft, this.clip.survivorsLeftBackground], [Text.setChargesBarTip, Text.ammoTip, Text.ammoTip, Text.ammoTip, Text.boardsTip, Text.boardsTip, Text.boardsTip, Text.survivorsTip, Text.survivorsTip, Text.survivorsTip, Text.quotaTip, Text.survivorsQuotaTip, Text.survivorsQuotaTip, Text.leftToExtractTip, Text.ammoLeftTip, Text.ammoLeftTip, Text.boardsLeftTip, Text.boardsLeftTip, Text.survivorsLeftTip, Text.survivorsLeftTip]); if (Game.settings.isEditor()){ this.clip.abandon.visible = false; }; }; } override public function hide():void{ } protected function barClick(_arg1:Resource, _arg2:Boolean):void{ if (_arg1 == Resource.SURVIVORS){ this.changeReserve(_arg1, _arg2); }; } override protected function click(_arg1:int):void{ if (_arg1 == ABANDON){ Util.fleeClick(); Util.success(); } else { if (_arg1 == SURVIVORS_DOWN){ this.barClick(Resource.SURVIVORS, false); } else { this.barClick(Resource.SURVIVORS, true); }; }; } override protected function hover(_arg1:int):String{ var _local2:String; _local2 = null; if (_arg1 == ABANDON){ _local2 = Util.fleeHover(); } else { if (_arg1 == SURVIVORS_DOWN){ _local2 = this.barHover(Resource.SURVIVORS, false); } else { _local2 = this.barHover(Resource.SURVIVORS, true); }; }; return (_local2); } protected function barHover(_arg1:Resource, _arg2:Boolean):String{ var _local3:String; _local3 = null; if (_arg1 == Resource.SURVIVORS){ if (_arg2){ _local3 = Text.workshopSurvivorsIncreaseTip; } else { if (this.getTower().countReserve(_arg1) > 0){ _local3 = Text.workshopSurvivorsDecreaseTip; } else { _local3 = Text.survivorsNoDecreaseTip; }; }; }; return (_local3); } override public function cleanup():void{ this.hoverBase.cleanup(); super.cleanup(); this.clip.parent.removeChild(this.clip); } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg1 == "-")) || ((_arg1 == "_")))){ this.click(SURVIVORS_DOWN); } else { if ((((_arg1 == "=")) || ((_arg1 == "+")))){ this.click(SURVIVORS_UP); } else { _local3 = Util.towerMenuHotkey(_arg1, _arg2); }; }; return (_local3); } override public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.sideMenuOffset.x; this.clip.y = _arg1.sideMenuOffset.y; } override public function show():void{ var _local1:Point; var _local2:MapCell; var _local3:Tower; var _local4:int; var _local5:int; var _local6:int; var _local7:Resource; var _local8:int; var _local9:int; var _local10:Number; super.show(); _local1 = Game.select.getSelected(); _local2 = Game.map.getCell(_local1.x, _local1.y); _local3 = _local2.getTower(); this.clip.survivorsQuota.text = Std.string(_local3.countReserve(Resource.SURVIVORS)); _local4 = 0; _local5 = this.stocks.length; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; _local7 = resources[_local6]; this.stocks[_local6].text = Std.string(_local3.countResource(_local7)); this.lefts[_local6].text = Std.string(_local2.getRubbleCount(_local7)); }; if (_local2.feature != null){ _local8 = _local2.feature.workLeft(); _local9 = _local2.feature.maxWork(); _local10 = ((_local9 - _local8) / _local9); this.clip.setCharges.visible = true; this.clip.setCharges.bar.width = (_local10 * setChargesSize); } else { this.clip.setCharges.visible = false; }; this.showReserveButtons([this.clip.survivorsDown], [Resource.SURVIVORS]); } } }//package ui.menu
Section 167
//SniperMenuClip (ui.menu.SniperMenuClip) package ui.menu { import flash.display.*; public dynamic class SniperMenuClip extends MovieClip { public var resource:SniperResourceMenuClip; public var upgrade:ButtonUpgrade; public var abandon:ButtonAbandon; public var fireAtWill:ButtonFireAtWill; public var holdFire:ButtonFireHold; public var shootIntoAir:ButtonFlare; public var accuracy:AccuracyClip; public function SniperMenuClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 168
//SniperResourceMenuClip (ui.menu.SniperResourceMenuClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class SniperResourceMenuClip extends MovieClip { public var ammoUp:ButtonPlus; public var ammoQuotaBackground:MovieClip; public var ammoStockBackground:MovieClip; public var survivorsQuota:TextField; public var survivorsIcon:MovieClip; public var ammoQuota:TextField; public var quota:TextField; public var ammoDown:ButtonMinus; public var survivorsDown:ButtonMinus; public var ammoIcon:MovieClip; public var survivorsQuotaBackground:MovieClip; public var survivorsUp:ButtonPlus; public var survivorsStock:TextField; public var ammoStock:TextField; public var survivorsStockBackground:MovieClip; } }//package ui.menu
Section 169
//StatusClip (ui.menu.StatusClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class StatusClip extends MovieClip { public var bar:MovieClip; public var barText:TextField; } }//package ui.menu
Section 170
//StoryMenu (ui.menu.StoryMenu) package ui.menu { import flash.display.*; import flash.events.*; import ui.*; import flash.text.*; import flash.*; public class StoryMenu extends MenuRoot { protected var clip:StoryMenuClip; protected var context:int; protected var buttons:ButtonList; public static var CENTER:int = 3; public static var LOSE:int = 1; public static var WIN:int = 0; public static var BRIEFING:int = 2; public function StoryMenu(_arg1:DisplayObjectContainer=null, _arg2:Point=null, _arg3:int=0):void{ if (!Boot.skip_constructor){ super(); this.context = _arg3; this.clip = new StoryMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.okButton]); this.clip.briefing.multiline = true; this.clip.briefing.wordWrap = true; this.clip.briefing.autoSize = TextFieldAutoSize.NONE; this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function componentUpdate(_arg1:Event):void{ this.clip.scrollBar.update(); this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); } protected function click(_arg1:int):void{ Util.success(); if (this.context == WIN){ if (Main.menu.getSettings().isEditor()){ Main.menu.changeState(MainMenu.GENERATE_MAP); } else { Main.menu.changeState(MainMenu.WIN); }; } else { if (this.context == LOSE){ if (Main.menu.getSettings().isEditor()){ Main.menu.changeState(MainMenu.GENERATE_MAP); } else { Main.menu.changeState(MainMenu.LOSE); }; } else { if (this.context == BRIEFING){ Main.menu.changeState(MainMenu.GENERATE_MAP); } else { if (this.context == CENTER){ Game.view.centerMenu.revertState(); }; }; }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg2 == Keyboard.escapeCode)) || ((_arg2 == Keyboard.enterCode)))){ this.click(0); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ var _local2:int; Util.centerHorizontally(this.clip.okButton, _arg1); Util.alignBottom(this.clip.okButton, _arg1); Util.scaleToFit(this.clip.background, _arg1); Util.scaleToFit(this.clip.splash, _arg1); Util.scaleToFit(this.clip.splashWin, _arg1); Util.scaleToFit(this.clip.splashLose, _arg1); _local2 = (_arg1.x - 60); if (_local2 > 600){ _local2 = 600; }; this.clip.briefing.x = (((_arg1.x - _local2) / 2) - 10); this.clip.briefing.width = _local2; this.clip.briefing.height = (_arg1.y - 140); this.clip.scrollBar.x = ((this.clip.briefing.x + this.clip.briefing.width) + 5); this.clip.scrollBar.height = (_arg1.y - 140); this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } override public function show():void{ this.clip.visible = true; this.clip.splash.visible = false; this.clip.splashWin.visible = false; this.clip.splashLose.visible = false; if (this.context == WIN){ MainCampaign.setComplete(Main.menu.getSettings().getCampaign()); this.clip.splashWin.visible = true; this.clip.briefing.text = Main.menu.getSettings().getWinText(); } else { if (this.context == LOSE){ this.clip.splashLose.visible = true; this.clip.briefing.text = Main.menu.getSettings().getLoseText(); } else { if (this.context == BRIEFING){ this.clip.splash.visible = true; this.clip.briefing.text = Main.menu.getSettings().getBriefingText(); } else { if (this.context == CENTER){ this.clip.background.visible = false; this.clip.briefing.text = Game.settings.getBriefingText(); }; }; }; }; this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } } }//package ui.menu
Section 171
//StoryMenuClip (ui.menu.StoryMenuClip) package ui.menu { import fl.controls.*; import flash.display.*; import flash.text.*; public dynamic class StoryMenuClip extends MovieClip { public var splashWin:MovieClip; public var scrollBar:UIScrollBar; public var splashLose:MovieClip; public var background:MovieClip; public var okButton:MovieClip; public var splash:MovieClip; public var briefing:TextField; public function StoryMenuClip(){ __setProp_scrollBar_StoryMenuClip_Layer1_1(); } function __setProp_scrollBar_StoryMenuClip_Layer1_1(){ try { scrollBar["componentInspectorSetting"] = true; } catch(e:Error) { }; scrollBar.direction = "vertical"; scrollBar.scrollTargetName = "briefing"; scrollBar.visible = true; try { scrollBar["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package ui.menu
Section 172
//SystemMenuClip (ui.menu.SystemMenuClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class SystemMenuClip extends MovieClip { public var zombies:TextField; public var saveGame:MovieClip; public var editMapLabel:TextField; public var bridges:TextField; public var resume:MovieClip; public var uploadMapLabel:TextField; public var testMap:MovieClip; public var city:TextField; public var pedia:MovieClip; public var briefing:MovieClip; public var saveMapLabel:TextField; public var saveMap:MovieClip; public var briefingLabel:TextField; public var options:MovieClip; public var testMapLabel:TextField; public var uploadMap:MovieClip; public var retryGame:MovieClip; public var difficulty:TextField; public var mainMenu:MovieClip; public var editMap:MovieClip; public var loadGame:MovieClip; } }//package ui.menu
Section 173
//UploadMapMenu (ui.menu.UploadMapMenu) package ui.menu { import flash.display.*; import ui.*; import flash.text.*; import flash.*; import flash.system.*; public class UploadMapMenu extends MenuRoot { protected var clip:UploadMapMenuClip; protected var buttons:ButtonList; public function UploadMapMenu(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new UploadMapMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.clip.url.selectable = true; this.clip.url.autoSize = TextFieldAutoSize.NONE; this.clip.url.mouseEnabled = true; this.clip.url.multiline = false; this.clip.url.wordWrap = false; this.clip.url.alwaysShowSelection = true; this.buttons = new ButtonList(this.click, null, [this.clip.back, this.clip.copyButton]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 0){ Game.view.centerMenu.changeState(CenterMenu.SYSTEM); } else { if (_arg1 == 1){ System.setClipboard(this.clip.url.text); }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(0); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ } override public function show():void{ this.clip.visible = true; this.clip.url.text = Game.settings.getUrl(); this.clip.url.setSelection(0, this.clip.url.text.length); this.clip.stage.focus = this.clip.url; } } }//package ui.menu
Section 174
//UploadMapMenuClip (ui.menu.UploadMapMenuClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class UploadMapMenuClip extends MovieClip { public var copyButton:MovieClip; public var url:TextField; public var back:MovieClip; public function UploadMapMenuClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 175
//WaitMenu (ui.menu.WaitMenu) package ui.menu { import flash.display.*; import flash.events.*; import logic.*; import ui.*; import flash.net.*; import flash.*; import haxe.*; public class WaitMenu extends MenuRoot { protected var loader:URLLoader; protected var frame:int; protected var usage:int; protected var clip:WaitMenuClip; public static var DOWNLOAD_MAP:int = 4; public static var EDIT_MAP:int = 3; protected static var frameWait:int = 2; public static var LOAD_GAME:int = 1; protected static var waitText:Array = [Text.waitGenerateMap, Text.waitLoadGame, Text.waitSaveGame, Text.waitEditMap, Text.waitDownloadMap, Text.waitUploadMap, Text.waitRateMap, Text.waitBrowse]; public static var BROWSE:int = 7; public static var GENERATE_MAP:int = 0; public static var SAVE_GAME:int = 2; public static var RATE_MAP:int = 6; public static var UPLOAD_MAP:int = 5; public function WaitMenu(_arg1:DisplayObjectContainer=null, _arg2:Point=null, _arg3:int=0):void{ if (!Boot.skip_constructor){ super(); this.usage = _arg3; this.clip = new WaitMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.clip.message.text = waitText[this.usage]; this.frame = 0; this.loader = new URLLoader(); this.loader.dataFormat = URLLoaderDataFormat.VARIABLES; this.loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, this.status); this.loader.addEventListener(IOErrorEvent.IO_ERROR, this.ioError); this.loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.securityError); this.loader.addEventListener(Event.COMPLETE, this.complete); this.resize(_arg2); }; } protected function complete(_arg1:Event):void{ var _local2:URLVariables; var _local3:String; var _local4:String; _local2 = this.loader.data; _local3 = _local2.error; _local4 = _local2.result; if (_local3 != null){ Main.error = (Main.error + (("Server Error: " + _local3) + "\n")); errorSwitch(this.usage); } else { if (this.usage == RATE_MAP){ Main.menu.changeState(Main.menu.rateState); } else { if (_local4 == null){ Main.error = (Main.error + "No Result From Server\n"); } else { if (this.usage == DOWNLOAD_MAP){ loadMap(_local4, _local2.key); } else { if (this.usage == UPLOAD_MAP){ Game.settings.setUrl(_local4); Game.view.centerMenu.changeState(CenterMenu.UPLOAD_MAP); } else { if (this.usage == BROWSE){ MainBrowse.dbValues = _local4; Main.menu.changeState(MainMenu.BROWSE); }; }; }; }; }; }; } override public function hide():void{ this.clip.visible = false; this.clip.removeEventListener(Event.ENTER_FRAME, this.enterFrame); } override public function cleanup():void{ this.loader.removeEventListener(HTTPStatusEvent.HTTP_STATUS, this.status); this.loader.removeEventListener(IOErrorEvent.IO_ERROR, this.ioError); this.loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, this.securityError); this.loader.removeEventListener(Event.COMPLETE, this.complete); this.clip.removeEventListener(Event.ENTER_FRAME, this.enterFrame); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function securityError(_arg1:SecurityErrorEvent):void{ Main.error = (Main.error + "Could not access network (Security Error)\n"); errorSwitch(this.usage); } protected function ioError(_arg1:IOErrorEvent):void{ Main.error = (Main.error + "Could not access network (IO Error)\n"); errorSwitch(this.usage); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); Util.alignBottom(this.clip.message, _arg1); Util.centerHorizontally(this.clip.message, _arg1); } protected function enterFrame(_arg1:Event):void{ var _local2:URLRequest; var _local3:String; var _local4:URLVariables; var _local5:String; var _local6:String; var _local7:URLVariables; var _local8:URLVariables; this.frame--; if (this.frame == 0){ _local2 = new URLRequest(); if (this.usage == GENERATE_MAP){ Main.beginPlay(); } else { if (this.usage == LOAD_GAME){ Main.loadGame(); } else { if (this.usage == SAVE_GAME){ Game.saveGame(); Game.view.centerMenu.changeState(CenterMenu.SYSTEM); } else { if (this.usage == EDIT_MAP){ Main.beginPlay(); } else { if (this.usage == DOWNLOAD_MAP){ Main.error = "Map Download Failed:\n"; _local2.url = Main.menu.getSettings().getUrl(); this.loader.load(_local2); } else { if (this.usage == UPLOAD_MAP){ _local3 = "men judge generally more by the eye than by the hand, because it belongs to everybody to see you, to few to come in touch with you."; Main.error = "Map Upload Failed:\n"; _local2.method = URLRequestMethod.POST; _local4 = new URLVariables(); _local5 = Game.settings.saveMap(); _local4.name = Game.settings.getCityName(); _local4.map = _local5; _local4.verify = Md5.encode((_local3 + _local5)); _local2.data = _local4; _local2.url = "http://auriga-squad.appspot.com/upload"; this.loader.load(_local2); } else { if (this.usage == RATE_MAP){ Main.error = "Map Rate Failed:\n"; _local2.method = URLRequestMethod.POST; _local6 = Main.menu.getSettings().getKey(); _local7 = new URLVariables(); _local7.fun = Main.menu.rateFun; _local7.difficulty = Main.menu.rateDifficulty; _local2.data = _local7; _local2.url = ("http://auriga-squad.appspot.com/rate/" + _local6); this.loader.load(_local2); } else { if (this.usage == BROWSE){ Main.error = "Download Map List Failed:\n"; _local2.method = URLRequestMethod.POST; _local8 = new URLVariables(); _local8.type = MainBrowse.typeToString[MainBrowse.type]; _local8.start = Std.string(MainBrowse.start); _local8.count = Std.string(MainBrowse.LOAD_STEP); _local2.data = _local8; _local2.url = "http://auriga-squad.appspot.com/find"; this.loader.load(_local2); }; }; }; }; }; }; }; }; }; } protected function status(_arg1:HTTPStatusEvent):void{ if (_arg1.status != 200){ Main.error = (Main.error + (("HTML Status: " + Std.string(_arg1.status)) + "\n")); }; } override public function show():void{ this.clip.visible = true; this.clip.addEventListener(Event.ENTER_FRAME, this.enterFrame); this.frame = frameWait; } protected static function errorSwitch(_arg1:int):void{ if ((((((_arg1 == DOWNLOAD_MAP)) || ((_arg1 == RATE_MAP)))) || ((_arg1 == BROWSE)))){ Main.menu.changeState(MainMenu.LOAD_MAP_FAIL); } else { if (_arg1 == UPLOAD_MAP){ Game.view.centerMenu.changeState(CenterMenu.SAVE_MAP_FAIL); }; }; } public static function loadMap(_arg1:String, _arg2:String=null):void{ var map = _arg1; var key = _arg2; try { if (Main.menu.getSettings().isEditor()){ Main.menu.setSettings(new GameSettings()); Main.menu.getSettings().beginLoadEdit(map, "", ""); Main.menu.changeState(MainMenu.EDIT_WAIT); } else { Main.menu.setSettings(new GameSettings()); Main.menu.getSettings().setKey(key); Main.menu.getSettings().beginNewCustom(map); Main.menu.changeState(MainMenu.STORY_BRIEFING); }; } catch(e:Error) { Main.error = (Main.error + (("Failed to load map: " + e.message) + "\n")); errorSwitch(DOWNLOAD_MAP); }; } } }//package ui.menu
Section 176
//WaitMenuClip (ui.menu.WaitMenuClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class WaitMenuClip extends MovieClip { public var message:TextField; public var background:MovieClip; public function WaitMenuClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 177
//WorkshopMenuClip (ui.menu.WorkshopMenuClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class WorkshopMenuClip extends MovieClip { public var ammoLeft:TextField; public var survivorsLeft:TextField; public var ammoLeftBackground:MovieClip; public var boardsLeft:TextField; public var survivorsLeftBackground:MovieClip; public var ammoStockBackground:MovieClip; public var survivorsQuota:TextField; public var leftToExtract:TextField; public var survivorsIcon:MovieClip; public var boardsIcon:MovieClip; public var abandon:ButtonAbandon; public var boardsLeftBackground:MovieClip; public var quota:TextField; public var setCharges:SetChargesClip; public var survivorsDown:ButtonMinus; public var ammoIcon:MovieClip; public var survivorsQuotaBackground:MovieClip; public var boardsStock:TextField; public var boardsStockBackground:MovieClip; public var survivorsStock:TextField; public var survivorsUp:ButtonPlus; public var survivorsStockBackground:MovieClip; public var ammoStock:TextField; public function WorkshopMenuClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 178
//AbstractFrame (ui.AbstractFrame) package ui { public interface AbstractFrame { function fixedStep():void; } }//package ui
Section 179
//AmbientMusic (ui.AmbientMusic) package ui { import flash.net.*; import flash.media.*; import flash.*; public class AmbientMusic extends Sound { public function AmbientMusic(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package ui
Section 180
//Animation (ui.Animation) package ui { import flash.*; public class Animation { protected var advance:Array; protected var linkage:Array; protected var number:int; protected var doRotate:Boolean; protected var layer:int; protected var scale:Number; protected var doReverse:Boolean; protected var doFace:Boolean; protected var doWait:Boolean; protected var doOffset:Boolean; protected var moveCount:int; protected static var survivorAdvanceTable:Array = null; public static var zombieDeathWait:int = 7; public static var carryAmmo:Animation = null; public static var carryFood:Animation = null; public static var sniperScale:Number = 1; protected static var validSurvivors:Array = [1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20]; public static var attackTower:Animation = null; public static var fireRifle:Animation = null; public static var bodyLinkage:Array = linkageTable("gunCycle_midlayer_", "", validSurvivors); public static var headLinkage:Array = linkageTable("gunCycle_toplayer_", "", validSurvivors); public static var carryBoards:Animation = null; protected static var mobileScale:Number = 0.9; protected static var fireAdvanceTable:Array = null; public static var attackSurvivor:Animation = null; public static var carrySurvivors:Animation = null; public static var zombieDeath:Animation = null; public static var animations:Array = null; public static var fireShotgun:Animation = null; public static var feature:Animation = null; public static var headShot:Animation = null; public static var zombieShamble:Animation = null; public static var rubble:Animation = null; public function Animation(_arg1:int=0, _arg2:Array=null, _arg3:Array=null, _arg4:int=0, _arg5:int=0):void{ if (!Boot.skip_constructor){ this.moveCount = _arg1; this.advance = _arg2; this.linkage = _arg3; this.layer = _arg4; this.doReverse = false; this.doFace = false; this.doRotate = true; this.doWait = false; this.scale = 1; this.number = _arg5; this.doOffset = false; }; } public function getTypeCount():int{ return (this.linkage.length); } public function getMove(_arg1:int):int{ var _local2:int; _local2 = 0; if (this.advance[_arg1] > 0){ _local2 = this.advance[_arg1]; }; return (_local2); } public function getMoveCount():int{ return (this.moveCount); } public function getLinkage(_arg1:int):String{ return (this.linkage[_arg1]); } public function getScale():Number{ return (this.scale); } public function shouldWait():Boolean{ return (this.doWait); } public function getFrameCount():int{ return (this.advance.length); } public function getLayer():int{ return (this.layer); } public function shouldOffset():Boolean{ return (this.doOffset); } public function getWait(_arg1:int):int{ var _local2:int; _local2 = 0; if (this.advance[_arg1] < 0){ _local2 = -(this.advance[_arg1]); }; return (_local2); } public function shouldRotate():Boolean{ return (this.doRotate); } public function shouldReverse():Boolean{ return (this.doReverse); } public function shouldFace():Boolean{ return (this.doFace); } public function getNumber():int{ return (this.number); } protected static function linkageTable(_arg1:String, _arg2:String, _arg3:Array):Array{ var _local4:Array; var _local5:int; var _local6:int; _local4 = []; _local5 = 0; while (_local5 < _arg3.length) { _local6 = _arg3[_local5]; _local5++; _local4.push(((_arg1 + Std.string(_local6)) + _arg2)); }; return (_local4); } public static function init():void{ Animation.carryAmmo = new Animation(32, survivorAdvance(), survivorLinkage(0), SpriteDisplay.SURVIVOR_LAYER, 0); carryAmmo.scale = mobileScale; Animation.carryBoards = new Animation(32, survivorAdvance(), survivorLinkage(1), SpriteDisplay.SURVIVOR_LAYER, 1); carryBoards.scale = mobileScale; Animation.carryFood = new Animation(32, survivorAdvance(), survivorLinkage(2), SpriteDisplay.SURVIVOR_LAYER, 2); carryFood.scale = mobileScale; Animation.carrySurvivors = new Animation(32, survivorAdvance(), survivorLinkage(3), SpriteDisplay.SURVIVOR_LAYER, 3); carrySurvivors.scale = mobileScale; Animation.fireRifle = new Animation(20, fireAdvance(), fireLinkage(2), SpriteDisplay.SNIPER_LAYER, 4); fireRifle.scale = sniperScale; fireRifle.doWait = true; Animation.fireShotgun = new Animation(20, fireAdvance(), fireLinkage(1), SpriteDisplay.SNIPER_LAYER, 5); fireShotgun.scale = sniperScale; fireShotgun.doWait = true; Animation.attackTower = new Animation(60, attackTowerAdvance(), zombieLinkage("attack"), SpriteDisplay.CREATURE_LAYER, 6); attackTower.doReverse = true; attackTower.doFace = true; attackTower.doRotate = false; attackTower.scale = mobileScale; attackTower.doOffset = true; Animation.attackSurvivor = new Animation(72, attackSurvivorAdvance(), zombieLinkage("attack"), SpriteDisplay.CREATURE_LAYER, 7); attackSurvivor.scale = mobileScale; attackSurvivor.doFace = true; attackSurvivor.doRotate = false; attackSurvivor.scale = mobileScale; attackSurvivor.doOffset = true; Animation.zombieDeath = new Animation(34, zombieDeathAdvance(), zombieLinkage("death"), SpriteDisplay.CREATURE_LAYER, 8); zombieDeath.doWait = true; zombieDeath.scale = mobileScale; zombieDeath.doOffset = true; Animation.zombieShamble = new Animation(32, zombieShambleAdvance(), zombieLinkage("shamble"), SpriteDisplay.CREATURE_LAYER, 9); zombieShamble.scale = mobileScale; Animation.headShot = new Animation(12, headShotAdvance(), ["zombie_headshot"], SpriteDisplay.SURVIVOR_LAYER, 10); headShot.doWait = true; headShot.doOffset = true; Animation.rubble = new Animation(1, [wait(1)], ["RubbleClip"], SpriteDisplay.FLOOR_LAYER, 11); Animation.feature = new Animation(1, [wait(1)], ["FeatureClip"], SpriteDisplay.FLOOR_LAYER, 12); Animation.animations = [carryAmmo, carryBoards, carryFood, carrySurvivors, fireRifle, fireShotgun, attackTower, attackSurvivor, zombieDeath, zombieShamble, headShot, rubble, feature]; } public static function carry(_arg1:Resource):Animation{ var _local2:Animation; var _local3:enum; _local2 = null; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = carryAmmo; break; case 1: _local2 = carryBoards; break; case 2: _local2 = carryFood; break; case 3: _local2 = carrySurvivors; break; }; return (_local2); } protected static function survivorAdvance():Array{ var _local1:int; var _local2:int; if (Animation.survivorAdvanceTable == null){ Animation.survivorAdvanceTable = []; _local1 = 0; while (_local1 < 8) { var _temp1 = _local1; _local1 = (_local1 + 1); _local2 = _temp1; survivorAdvanceTable.push(move(8)); }; }; return (survivorAdvanceTable); } protected static function headShotAdvance():Array{ var _local1:Array; var _local2:int; var _local3:int; _local1 = []; _local1.push(wait(zombieDeathWait)); _local2 = 0; while (_local2 < 5) { var _temp1 = _local2; _local2 = (_local2 + 1); _local3 = _temp1; _local1.push(wait(1)); }; return (_local1); } protected static function attackTowerAdvance():Array{ var _local1:Array; var _local2:int; var _local3:int; _local1 = []; _local2 = 0; while (_local2 < 60) { var _temp1 = _local2; _local2 = (_local2 + 1); _local3 = _temp1; _local1.push(move(1)); }; return (_local1); } protected static function zombieDeathAdvance():Array{ var _local1:Array; var _local2:int; var _local3:int; _local1 = []; _local1.push(wait(zombieDeathWait)); _local2 = 0; while (_local2 < 27) { var _temp1 = _local2; _local2 = (_local2 + 1); _local3 = _temp1; _local1.push(wait(1)); }; return (_local1); } protected static function fireLinkage(_arg1:int):Array{ var _local2:Array; var _local3:String; var _local4:int; var _local5:Array; var _local6:int; _local2 = []; _local3 = "gunCycle_"; _local4 = 0; _local5 = validSurvivors; while (_local4 < _local5.length) { _local6 = _local5[_local4]; _local4++; _local2.push((((_local3 + Std.string(_local6)) + "_gun") + Std.string(_arg1))); }; return (_local2); } protected static function zombieLinkage(_arg1:String):Array{ var _local2:Array; var _local3:String; var _local4:int; var _local5:int; _local2 = []; _local3 = "zombieCycle_"; _local4 = 0; while (_local4 < 12) { var _temp1 = _local4; _local4 = (_local4 + 1); _local5 = _temp1; _local2.push((((_local3 + _arg1) + "_") + Std.string((_local5 + 1)))); }; return (_local2); } protected static function attackSurvivorAdvance():Array{ var _local1:Array; var _local2:int; var _local3:int; _local1 = []; _local2 = 0; while (_local2 < 72) { var _temp1 = _local2; _local2 = (_local2 + 1); _local3 = _temp1; _local1.push(move(1)); }; return (_local1); } protected static function move(_arg1:int):int{ return (_arg1); } protected static function fireAdvance():Array{ var _local1:int; var _local2:int; if (Animation.fireAdvanceTable == null){ Animation.fireAdvanceTable = []; _local1 = 0; while (_local1 < 20) { var _temp1 = _local1; _local1 = (_local1 + 1); _local2 = _temp1; fireAdvanceTable.push(wait(1)); }; }; return (fireAdvanceTable); } protected static function wait(_arg1:int):int{ return (-(_arg1)); } protected static function zombieShambleAdvance():Array{ var _local1:Array; var _local2:int; var _local3:int; var _local4:int; var _local5:int; _local1 = []; _local1.push(move(2)); _local2 = 0; while (_local2 < 5) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local1.push(move(1)); _local1.push(wait(1)); }; _local1.push(move(1)); _local3 = 0; while (_local3 < 6) { var _temp2 = _local3; _local3 = (_local3 + 1); _local5 = _temp2; _local1.push(move(2)); _local1.push(move(2)); }; return (_local1); } protected static function survivorLinkage(_arg1:int):Array{ var _local2:Array; var _local3:String; var _local4:int; var _local5:Array; var _local6:int; _local2 = []; _local3 = "Survivor_"; _local4 = 0; _local5 = validSurvivors; while (_local4 < _local5.length) { _local6 = _local5[_local4]; _local4++; _local2.push((((_local3 + Std.string(_arg1)) + "_") + Std.string(_local6))); }; return (_local2); } } }//package ui
Section 181
//ButtonList (ui.ButtonList) package ui { import flash.display.*; import flash.events.*; import flash.*; public class ButtonList { protected var frame:int; protected var hoverAction:Function; protected var clickAction:Function; protected var lastHovered; protected var buttonList:Array; protected var lastClicked:DisplayObject; public static var GREEN:int = 5; public static var IN_PROGRESS:int = 4; public static var GREEN_OVER:int = 6; public static var OVER:int = 2; public static var NORMAL:int = 1; protected static var mouseWait:int = 6; public static var GHOSTED:int = 3; public function ButtonList(_arg1:Function=null, _arg2:Function=null, _arg3:Array=null):void{ var _local4:int; var _local5:Array; var _local6:MovieClip; super(); if (!Boot.skip_constructor){ this.clickAction = _arg1; this.hoverAction = _arg2; this.buttonList = _arg3; _local4 = 0; _local5 = this.buttonList; while (_local4 < _local5.length) { _local6 = _local5[_local4]; _local4++; _local6.mouseChildren = false; _local6.addEventListener(MouseEvent.MOUSE_DOWN, this.buttonDown); _local6.addEventListener(MouseEvent.MOUSE_UP, this.buttonUp); _local6.addEventListener(MouseEvent.MOUSE_OVER, this.buttonOver); _local6.addEventListener(MouseEvent.MOUSE_OUT, this.buttonOut); _local6.gotoAndStop(NORMAL); }; this.lastHovered = null; this.lastClicked = null; this.frame = mouseWait; }; } protected function changeState(_arg1:MovieClip, _arg2:int):void{ _arg1.gotoAndStop(_arg2); } protected function buttonOut(_arg1:MouseEvent):void{ var _local2:*; _local2 = this.getButtonIndex(_arg1.target); if (_local2 != null){ if (this.buttonList[_local2].currentFrame == OVER){ this.buttonList[_local2].gotoAndStop(NORMAL); } else { if (this.buttonList[_local2].currentFrame == GREEN_OVER){ this.buttonList[_local2].gotoAndStop(GREEN); }; }; }; if (this.hoverAction != null){ Game.view.toolTip.hide(); }; this.lastHovered = null; Main.getRoot().removeEventListener(Event.ENTER_FRAME, this.enterFrame); } protected function getButtonIndex(_arg1){ var _local2:*; var _local3:int; var _local4:int; var _local5:int; _local2 = null; _local3 = 0; _local4 = this.buttonList.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; if (this.buttonList[_local5] == _arg1){ _local2 = _local5; break; }; }; return (_local2); } public function setGreen(_arg1:MovieClip):void{ var _local2:*; _local2 = this.getButtonIndex(_arg1); if (((!((this.lastHovered == null))) && ((_local2 == this.lastHovered)))){ this.changeState(_arg1, GREEN_OVER); } else { this.changeState(_arg1, GREEN); }; } public function get(_arg1:int):MovieClip{ return (this.buttonList[_arg1]); } public function cleanup():void{ var _local1:int; var _local2:Array; var _local3:MovieClip; _local1 = 0; _local2 = this.buttonList; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.removeEventListener(MouseEvent.MOUSE_DOWN, this.buttonDown); _local3.removeEventListener(MouseEvent.MOUSE_UP, this.buttonUp); _local3.removeEventListener(MouseEvent.MOUSE_OVER, this.buttonOver); _local3.removeEventListener(MouseEvent.MOUSE_OUT, this.buttonOut); }; Main.getRoot().removeEventListener(Event.ENTER_FRAME, this.enterFrame); } protected function buttonOver(_arg1:MouseEvent):void{ var _local2:*; var _local3:String; _local2 = this.getButtonIndex(_arg1.target); if (this.hoverAction != null){ _local3 = null; if (_local2 != null){ _local3 = this.hoverAction(_local2); }; if (_local3 == null){ Game.view.toolTip.hide(); } else { Game.view.toolTip.show(_local3); }; }; if (_local2 != null){ if (this.buttonList[_local2].currentFrame == NORMAL){ this.buttonList[_local2].gotoAndStop(OVER); } else { if (this.buttonList[_local2].currentFrame == GREEN){ this.buttonList[_local2].gotoAndStop(GREEN_OVER); }; }; }; this.lastHovered = _local2; } public function setNormal(_arg1:MovieClip):void{ var _local2:*; _local2 = this.getButtonIndex(_arg1); if (((!((this.lastHovered == null))) && ((_local2 == this.lastHovered)))){ this.changeState(_arg1, OVER); } else { this.changeState(_arg1, NORMAL); }; } public function setGhosted(_arg1:MovieClip):void{ this.changeState(_arg1, GHOSTED); } protected function buttonUp(_arg1:MouseEvent):void{ Main.getRoot().removeEventListener(Event.ENTER_FRAME, this.enterFrame); } public function setProgress(_arg1:MovieClip):void{ this.changeState(_arg1, IN_PROGRESS); } protected function buttonDown(_arg1:MouseEvent):void{ var event = _arg1; this.lastClicked = function (_arg1:ButtonList):DisplayObject{ var $r:*; var tmp:*; var $this = _arg1; tmp = event.target; $r = (Std._is(tmp, DisplayObject)) ? tmp : function (_arg1:ButtonList){ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this); Main.getRoot().addEventListener(Event.ENTER_FRAME, this.enterFrame); this.frame = mouseWait; this.buttonClick(); } protected function enterFrame(_arg1:Event):void{ this.frame--; if ((((((((this.frame <= 0)) && (this.lastClicked.visible))) && (this.lastClicked.parent.visible))) && (this.lastClicked.parent.parent.visible))){ this.buttonClick(); this.frame = mouseWait; }; } protected function buttonClick():void{ var _local1:*; var _local2:*; _local1 = this.getButtonIndex(this.lastClicked); _local2 = null; if (_local1 != null){ this.clickAction(_local1); }; } } }//package ui
Section 182
//Check (ui.Check) package ui { public class Check { public static var ADD_OK:int = 0; public static var ADD_SAME:int = 1; public static var REMOVE_NO_DEST:int = 2; public static var ADD_NO_DEST:int = 3; public static var REMOVE_NO_SUPPLY:int = 1; public static var REMOVE_OK:int = 0; public static var ADD_EXISTS:int = 2; public static var ADD_NO_SELECT:int = 4; public static var REMOVE_NO_SELECT:int = 3; public static function checkAddSupply(_arg1:Point):int{ var _local2:Point; var _local3:Tower; var _local4:Tower; _local2 = Game.select.getSelected(); if (_local2 == null){ return (ADD_NO_SELECT); }; _local3 = Game.map.getCell(_local2.x, _local2.y).getTower(); _local4 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); if (_local3 == null){ return (ADD_NO_SELECT); }; if (_local4 == null){ return (ADD_NO_DEST); }; if (_local3 == _local4){ return (ADD_SAME); }; if (_local3.getRoute(_arg1) != null){ return (ADD_EXISTS); }; return (ADD_OK); } public static function checkRemoveSupply(_arg1:Point):int{ var _local2:Point; var _local3:Tower; var _local4:Tower; _local2 = Game.select.getSelected(); if (_local2 == null){ return (REMOVE_NO_SELECT); }; _local3 = Game.map.getCell(_local2.x, _local2.y).getTower(); _local4 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); if (_local3 == null){ return (REMOVE_NO_SELECT); }; if (_local4 == null){ return (REMOVE_NO_DEST); }; if (_local3.getRoute(_arg1) == null){ return (REMOVE_NO_SUPPLY); }; return (REMOVE_OK); } } }//package ui
Section 183
//Color (ui.Color) package ui { import flash.geom.*; public class Color { public static var editBoxBorder:int = 0; public static var buttonBackground:int = 0x9999; public static var plannedTransform:ColorTransform = new ColorTransform(0.6, 0.6, 0.6, 0.8, 0, 0, 0, 0); public static var shadowAllow:int = 0xFF00; public static var supplyDepotLine:int = 6711039; public static var toggledOnBackground:int = 0x999900; public static var countDownText:int = 0xDDDDDD; public static var shouldAvoidRollOverBackground:int = 0xFF0000; public static var allowTransform:ColorTransform = new ColorTransform(0.5, 1.5, 0.5, 2, 0, 0, 0, 0); public static var shadowAlpha:Number = 0.3; public static var tutorialBorder:int = 0xFFFFFF; public static var tutorialBackground:int = 0; public static var mainMenuBackdrop:int = 0x404040; public static var barricadeReplay:int = 0x6D4900; public static var supplyLineThickness:int = 10; public static var shadowBuild:int = 0; public static var menuTitle:int = 0xFFFFFF; public static var centerGhost:int = 0; public static var depotReplay:int = 204; public static var inProgressBackground:int = 0x9900; public static var ghostedBackground:int = 0x999999; public static var centerGhostAlpha:Number = 0.85; public static var normalTransform:ColorTransform = new ColorTransform(1, 1, 1, 1, 0, 0, 0, 0); public static var shadowDeny:int = 0xFF0000; public static var resourceBarOverflow:int = -16746633; public static var shouldAvoidBackground:int = 0x990000; public static var resourceBarQuota:int = -16746752; public static var workshopReplay:int = 8454143; public static var countDownBackground:int = 0x404040; public static var fpsCounterBackground:int = 0xFFFFFF; public static var supplyInterruptedLine:int = 16737894; public static var gameMenuAlpha:Number = 1; public static var progressBarBackground:int = 0x300000; public static var shadowPlanAlpha:Number = 0.7; public static var announceBackground:int = 0x400000; public static var progressBarBorder:int = 0xFFFFFF; public static var mouseLureOn:int = 0xFF0000; public static var shouldClickRollOverBackground:int = 0xFF00; public static var editEmpty:int = 0xFFFFFF; public static var mainMenuAlpha:Number = 0.4; public static var progressBarForeground:int = 0x7700; public static var announceForeground:int = 0xDDDDDD; public static var miniCursor:int = 0xAAAAAA; public static var countDownForeground:int = 0x400000; public static var supplyLineAlpha:Number = 1; public static var textBoxAlpha:Number = 1; public static var shouldClickBackground:int = 0x9900; public static var tutorialAlpha:Number = 0.8; public static var resourceBarBorder:int = -13619152; public static var denyEditBox:int = 0x800000; public static var sniperReplay:int = 0xCC0000; public static var denyTransform:ColorTransform = new ColorTransform(1.5, 0.5, 0.5, 2, 0, 0, 0, 0); public static var editSelected:int = 0; public static var mainMenuBackdropAlpha:Number = 1; public static var buttonRollOverBackground:int = 0xFFFF; public static var allowEditBox:int = 0x8000; public static var countDownBorder:int = 0; public static var noShoot:int = 0xEE0000; public static var toolTip:int = 16777130; public static var nameNoteText:int = 0xFFFFFF; public static var menuBackground:int = 0x4000; public static var toggledOnRollOverBackground:int = 0xFFFF00; public static var resourceBarText:int = 0; public static var progressBarText:int = 0xFFFFFF; public static var supplyOtherLine:int = 0xDDDDDD; public static var mouseLureOff:int = 0xFFFF00; public static var buttonBorder:int = 0; } }//package ui
Section 184
//CustomCellRenderer (ui.CustomCellRenderer) package ui { import fl.controls.listClasses.*; import flash.text.*; import flash.*; public class CustomCellRenderer extends CellRenderer { public function CustomCellRenderer():void{ var _local1:TextFormat; if (!Boot.skip_constructor){ super(); _local1 = new TextFormat(); _local1.size = FontSize.comboList; this.setStyle("textFormat", _local1); }; } } }//package ui
Section 185
//Explosion (ui.Explosion) package ui { import flash.display.*; import logic.*; import flash.*; public class Explosion implements AbstractFrame { protected var bigPoints:Array; protected var bridge:Bridge; protected var smallPoints:Array; protected var bigImages:Array; protected var bridgeBitmap:Bitmap; protected var imageStacks:Array; protected var frame:int; protected var smallImages:Array; protected var bridgeClip:MovieClip; protected var bridgeTiles:BitmapData; protected static var bigFrameCount:int = 90; protected static var bigRadius:int = 375; protected static var smallFrameCount:int = 36; protected static var sideTable:Array = [new Point(1, 0), new Point(1, 0), new Point(0, 1), new Point(0, 1)]; protected static var forwardTable:Array = [new Point(0, 1), new Point(0, 1), new Point(1, 0), new Point(1, 0)]; protected static var smallRadius:int = 40; public function Explosion(_arg1:Bridge=null):void{ if (!Boot.skip_constructor){ this.imageStacks = []; if (_arg1 != null){ this.bigImages = []; this.smallImages = []; this.bridge = _arg1; this.frame = 0; this.setupPoints(); this.setupBridgeClip(); Main.sound.play(SoundPlayer.BRIDGE_EXPLOSION); }; Game.view.frameAdvance.add(this); Game.view.explosions.add(this); if (((!(Game.settings.isCustom())) && (!((Main.kongregate == null))))){ Main.kongregate.stats.submit("Bridge", 1); }; }; } protected function setupPoints():void{ var _local1:Point; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; _local1 = this.bridge.getLot().getSize(); _local2 = _local1.x; _local3 = _local1.y; if ((((this.bridge.spawnDir() == Direction.NORTH)) || ((this.bridge.spawnDir() == Direction.SOUTH)))){ _local2 = _local1.y; _local3 = _local1.x; }; this.smallPoints = []; _local4 = 1; while (_local4 < _local2) { this.smallPoints.push(new Point(_local4, 1)); this.smallPoints.push(new Point(_local4, (_local3 - 1))); _local4 = (_local4 + 2); }; Lib.shuffle(this.smallPoints); this.bigPoints = []; _local5 = 0; _local6 = (_local3 - 1); while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local7 = _temp1; _local8 = 0; while (_local8 < _local2) { var _temp2 = _local8; _local8 = (_local8 + 1); _local9 = _temp2; if (((((_local7 % 2) == 1)) && ((((_local9 + _local7) % 3) == 2)))){ this.bigPoints.push(new Point(_local9, _local7)); }; }; }; Lib.shuffle(this.bigPoints); } protected function addSmallExplosion(_arg1:Point):void{ var _local2:ImageStack; var _local3:VirtualImage; _local2 = new ImageStack(smallRadius); _local3 = new VirtualImage(SpriteDisplay.SMALL_EXPLOSION_LAYER, new Point(0, 0), Label.smallExplosion); _local2.addImage(_local3); _local2.setPixel(this.getExplosionPos(_arg1, true)); _local2.update(); this.imageStacks.push(_local2); this.smallImages.push(_local3); } protected function setupBridgeClip():void{ var _local1:DisplayObjectContainer; var _local2:Point; _local1 = Game.sprites.getLayer(SpriteDisplay.BRIDGE_LAYER); this.bridgeClip = new MovieClip(); _local1.addChild(this.bridgeClip); this.bridgeClip.mouseEnabled = false; this.bridgeClip.mouseChildren = false; this.bridgeClip.cacheAsBitmap = true; _local2 = this.bridge.getLot().getSize(); this.bridgeTiles = new BitmapData(Lib.cellToPixel(_local2.x), Lib.cellToPixel(_local2.y), true, 0xFFFFFF); this.bridgeBitmap = new Bitmap(this.bridgeTiles); this.bridgeClip.addChild(this.bridgeBitmap); Game.view.window.fillBitmapRegion(this.bridgeBitmap, this.bridge.getOffset(), this.bridge.getLot().offset, this.bridge.getLot().limit, false); this.moveWindow(); } public function cleanupBridgeBitmap():void{ if (this.bridgeBitmap != null){ this.bridgeBitmap.bitmapData.dispose(); this.bridgeBitmap.parent.removeChild(this.bridgeBitmap); this.bridgeBitmap = null; this.bridgeClip.parent.removeChild(this.bridgeClip); this.bridgeClip = null; }; } public function fixedStep():void{ var _local1:Boolean; var _local2:int; var _local3:Array; var _local4:int; var _local5:Array; var _local6:VirtualImage; var _local7:VirtualImage; this.frame--; _local1 = true; _local2 = 0; _local3 = this.bigImages; while (_local2 < _local3.length) { _local6 = _local3[_local2]; _local2++; if (_local6.getFrame() != bigFrameCount){ _local6.advanceFrame(); _local6.update(); _local1 = false; }; }; _local4 = 0; _local5 = this.smallImages; while (_local4 < _local5.length) { _local7 = _local5[_local4]; _local4++; if (_local7.getFrame() != smallFrameCount){ _local7.advanceFrame(); _local7.update(); _local1 = false; }; }; if (this.smallPoints.length > 0){ this.addSmallExplosion(this.smallPoints.pop()); this.frame = 21; } else { if (this.bigPoints.length > 0){ if (this.frame <= 0){ this.addBigExplosion(this.bigPoints.pop()); this.frame = 3; if (this.bigPoints.length == 0){ this.frame = 10; }; }; } else { if (this.frame == 0){ this.bridge.destroy(); this.cleanupBridgeBitmap(); this.bridge = null; } else { if (_local1){ this.cleanup(); }; }; }; }; } public function moveWindow():void{ var _local1:Point; if (this.bridgeClip != null){ _local1 = Game.view.window.toRelative(this.bridge.getOffset().x, this.bridge.getOffset().y); this.bridgeClip.x = Lib.cellToPixel(_local1.x); this.bridgeClip.y = Lib.cellToPixel(_local1.y); }; } public function cleanup():void{ var _local1:int; var _local2:Array; var _local3:ImageStack; _local1 = 0; _local2 = this.imageStacks; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.cleanup(); }; Game.view.frameAdvance.remove(this); Game.view.explosions.remove(this); this.cleanupBridgeBitmap(); } protected function getExplosionPos(_arg1:Point, _arg2:Boolean):Point{ var _local3:int; var _local4:Point; var _local5:Point; var _local6:Point; var _local7:int; var _local8:int; var _local9:Point; _local3 = Lib.directionToIndex(this.bridge.explosionDir()); _local4 = forwardTable[_local3]; _local5 = sideTable[_local3]; _local6 = this.bridge.getOffset(); _local7 = ((_local6.x + (_arg1.x * _local4.x)) + (_arg1.y * _local5.x)); _local8 = ((_local6.y + (_arg1.x * _local4.y)) + (_arg1.y * _local5.y)); _local9 = new Point(_local7, _local8).toPixel(); if (_arg2){ _local9.x = (_local9.x - Option.halfCell); _local9.y = (_local9.y - Option.halfCell); }; return (_local9); } protected function addBigExplosion(_arg1:Point):void{ var _local2:ImageStack; var _local3:VirtualImage; _local2 = new ImageStack(bigRadius); _local3 = new VirtualImage(SpriteDisplay.EXPLOSION_LAYER, new Point(0, 0), Label.largeExplosion); _local2.addImage(_local3); _local2.setPixel(this.getExplosionPos(_arg1, false)); _local2.update(); this.imageStacks.push(_local2); this.bigImages.push(_local3); } public function save(){ return ({bigImages:Save.saveArray(this.bigImages, VirtualImage.saveS), smallImages:Save.saveArray(this.smallImages, VirtualImage.saveS), bridge:Save.maybe(this.bridge, Bridge.saveS), frame:this.frame, bigPoints:Save.saveArray(this.bigPoints, Point.saveS), smallPoints:Save.saveArray(this.smallPoints, Point.saveS)}); } public static function load(_arg1):Explosion{ var _local2:Explosion; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:ImageStack; var _local9:int; var _local10:ImageStack; _local2 = new Explosion(null); _local2.bigImages = Load.loadArray(_arg1.bigImages, VirtualImage.load); _local3 = 0; _local4 = _local2.bigImages.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local7 = _temp1; _local8 = new ImageStack(bigRadius); _local8.setPixel(_local2.bigImages[_local7].getPos()); _local8.addImage(_local2.bigImages[_local7]); _local8.update(); _local2.imageStacks.push(_local8); }; _local2.smallImages = Load.loadArray(_arg1.smallImages, VirtualImage.load); _local5 = 0; _local6 = _local2.smallImages.length; while (_local5 < _local6) { var _temp2 = _local5; _local5 = (_local5 + 1); _local9 = _temp2; _local10 = new ImageStack(smallRadius); _local10.setPixel(_local2.smallImages[_local9].getPos()); _local10.addImage(_local2.smallImages[_local9]); _local10.update(); _local2.imageStacks.push(_local10); }; _local2.bridge = Load.maybe(_arg1.bridge, Bridge.load); if (_local2.bridge != null){ Game.progress.addBridge(_local2.bridge, false); _local2.setupBridgeClip(); }; _local2.frame = _arg1.frame; _local2.bigPoints = Load.loadArray(_arg1.bigPoints, Point.load); _local2.smallPoints = Load.loadArray(_arg1.smallPoints, Point.load); return (_local2); } public static function saveS(_arg1:Explosion){ return (_arg1.save()); } } }//package ui
Section 186
//FailClip (ui.FailClip) package ui { import flash.display.*; import flash.text.*; public dynamic class FailClip extends MovieClip { public var fail:TextField; } }//package ui
Section 187
//FailWarning (ui.FailWarning) package ui { import flash.display.*; import flash.text.*; import flash.*; public class FailWarning { protected var clip:FailClip; protected var frame:int; protected static var maxFrame:int = 15; protected static var alphaFrame:int = 10; public function FailWarning(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ this.clip = new FailClip(); this.clip.mouseEnabled = false; this.clip.mouseChildren = false; _arg1.addChild(this.clip); this.clip.visible = false; this.clip.fail.wordWrap = true; this.clip.fail.autoSize = TextFieldAutoSize.LEFT; this.frame = (FailWarning.maxFrame + 1); this.resize(_arg2); }; } public function cleanup():void{ this.clip.parent.removeChild(this.clip); } public function enterFrame():void{ if (this.frame < alphaFrame){ this.clip.visible = true; this.clip.alpha = 1; this.frame++; } else { if (this.frame < maxFrame){ this.clip.visible = true; this.clip.alpha = ((FailWarning.maxFrame - this.frame) / (FailWarning.maxFrame - alphaFrame)); this.frame++; } else { if (this.frame == maxFrame){ this.clip.visible = false; this.frame++; }; }; }; } public function resize(_arg1:Point):void{ Util.centerHorizontally(this.clip.fail, _arg1); Util.centerVertically(this.clip.fail, _arg1); } public function show(_arg1:String):void{ if (_arg1 != null){ this.clip.fail.text = _arg1; this.resize(Game.view.layout.screenSize); this.frame = 0; this.clip.visible = true; this.clip.alpha = 1; }; } } }//package ui
Section 188
//FontSize (ui.FontSize) package ui { public class FontSize { public static var resourceBar:int = 12; public static var announce:int = 36; public static var countDown:int = 18; public static var comboListTitle:int = 18; public static var pause:int = 36; public static var button:int = 12; public static var comboList:int = 14; } }//package ui
Section 189
//FpsCounter (ui.FpsCounter) package ui { import flash.display.*; import flash.text.*; public class FpsCounter { protected var timeCount:int; protected var lastTime:Number; protected var counter:TextField; public function FpsCounter(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ } public function cleanup():void{ } public function enterFrame():void{ } } }//package ui
Section 190
//FrameAdvance (ui.FrameAdvance) package ui { import flash.*; public class FrameAdvance { protected var frames:Array; public function FrameAdvance():void{ if (!Boot.skip_constructor){ this.frames = []; }; } public function fixedStep():void{ var _local1:int; var _local2:Array; var _local3:AbstractFrame; _local1 = 0; _local2 = this.frames; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.fixedStep(); }; } public function remove(_arg1:AbstractFrame):void{ this.frames.remove(_arg1); } public function add(_arg1:AbstractFrame):void{ this.frames.push(_arg1); } } }//package ui
Section 191
//HoverList (ui.HoverList) package ui { import flash.display.*; import flash.events.*; import flash.*; public class HoverList { protected var textList:Array; protected var clipList:Array; public function HoverList(_arg1:Array=null, _arg2:Array=null):void{ var _local3:int; var _local4:Array; var _local5:DisplayObject; super(); if (!Boot.skip_constructor){ this.clipList = _arg1; this.textList = _arg2; _local3 = 0; _local4 = this.clipList; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local5.addEventListener(MouseEvent.MOUSE_OVER, this.rollOver); _local5.addEventListener(MouseEvent.MOUSE_OUT, this.rollOut); }; }; } protected function rollOut(_arg1:MouseEvent):void{ Game.view.toolTip.hide(); } protected function rollOver(_arg1:MouseEvent):void{ var _local2:*; _local2 = this.getIndex(_arg1); if (_local2 != null){ Game.view.toolTip.show(this.textList[_local2]); }; } public function cleanup():void{ var _local1:int; var _local2:Array; var _local3:DisplayObject; _local1 = 0; _local2 = this.clipList; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.removeEventListener(MouseEvent.MOUSE_OVER, this.rollOver); _local3.removeEventListener(MouseEvent.MOUSE_OUT, this.rollOut); }; } protected function getIndex(_arg1:MouseEvent){ var _local2:*; var _local3:int; var _local4:int; var _local5:int; _local2 = null; _local3 = 0; _local4 = this.clipList.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; if (this.clipList[_local5] == _arg1.target){ _local2 = _local5; break; }; }; return (_local2); } } }//package ui
Section 192
//ImageStack (ui.ImageStack) package ui { import flash.*; public class ImageStack { protected var pixel:Point; protected var maxRadius:int; protected var source:Point; protected var stepNum:int; protected var dest:Point; protected var danceBase:int; protected var totalSteps:int; protected var shouldShow:Boolean; protected var danceCounter:int; protected var control:Point; protected var shouldRotate:Boolean; protected var images:List; protected var rotation:int; protected static var stepDenom:int = Math.floor((Option.cellPixels / 2)); public function ImageStack(_arg1=null):void{ if (!Boot.skip_constructor){ this.shouldShow = true; this.images = new List(); this.pixel = new Point(0, 0); this.shouldRotate = true; this.rotation = 0; this.source = new Point(0, 0); this.dest = new Point(0, 0); this.control = new Point(0, 0); this.stepNum = 1; this.totalSteps = 1; this.maxRadius = Option.cellPixels; this.danceCounter = 0; this.danceBase = 0; if (_arg1 != null){ this.maxRadius = _arg1; }; Game.view.imageList.add(this); }; } public function show():void{ this.shouldShow = true; this.update(); } protected function findScalar(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ var _local5:Number; var _local6:Number; var _local7:Number; _local5 = ((_arg4 - (2 * _arg3)) + _arg2); _local6 = ((2 * _arg3) - (2 * _arg2)); _local7 = _arg2; return (((((_local5 * _arg1) * _arg1) + (_local6 * _arg1)) + _local7)); } public function travel(_arg1:int, _arg2:Point, _arg3:Point=null):void{ this.totalSteps = _arg1; this.source = this.pixel.clone(); this.dest = _arg2.clone(); if (_arg3 == null){ this.control = new Point(Math.floor(((this.dest.x + this.source.x) / 2)), Math.floor(((this.dest.y + this.source.y) / 2))); } else { this.control = _arg3.clone(); }; this.stepNum = 0; } public function getPos():Point{ return (this.pixel.clone()); } public function isDancing():Boolean{ return (!((this.danceCounter == 0))); } public function cleanup():void{ var _local1:*; var _local2:VirtualImage; _local1 = this.images.iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); _local2.cleanup(); }; this.images = null; Game.view.imageList.remove(this); } public function faceEnemy(_arg1:int):int{ var _local2:int; var _local3:Boolean; _local2 = 0; _local3 = true; while ((((_local2 < _arg1)) && (_local3))) { _local3 = this.stepRotate(this.source.x, this.source.y, this.control.x, this.control.y); if (_local3){ _local2++; }; }; return (_local2); } public function forbidRotation():void{ this.shouldRotate = false; } public function addImage(_arg1:VirtualImage):void{ this.images.add(_arg1); } public function hide():void{ this.shouldShow = false; this.update(); } public function setPixel(_arg1:Point):void{ this.pixel = _arg1.clone(); this.dest = _arg1.clone(); this.control = _arg1.clone(); } public function stepRotate(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Boolean{ var _local5:Boolean; var _local6:int; _local5 = false; while (true) { _local6 = 0; if (this.danceCounter == 0){ _local6 = Lib.slopeToAngle((_arg1 - _arg3), (_arg2 - _arg4)); } else { if (this.danceCounter > 0){ _local6 = (((this.danceBase + Option.danceMoves[this.danceCounter]) + 360) % 360); } else { _local6 = (((this.danceBase - Option.danceMoves[-(this.danceCounter)]) + 360) % 360); }; }; _local5 = this.tryRotate(_local6); if (_local5){ break; } else { if (this.danceCounter > 0){ this.danceCounter--; } else { if (this.danceCounter < 0){ this.danceCounter++; } else { break; }; }; }; }; return (_local5); } public function update():void{ var _local1:LayoutGame; var _local2:Point; var _local3:Point; var _local4:*; var _local5:VirtualImage; var _local6:*; var _local7:VirtualImage; _local1 = Game.view.layout; _local2 = Game.view.window.toAbsolute(0, 0).toPixel(); _local3 = new Point((this.pixel.x - _local2.x), (this.pixel.y - _local2.y)); if (((((((((!(this.shouldShow)) || ((_local3.x <= -(this.maxRadius))))) || ((_local3.x >= (Lib.cellToPixel(_local1.windowSize.x) + this.maxRadius))))) || ((_local3.y <= -(this.maxRadius))))) || ((_local3.y >= (Lib.cellToPixel(_local1.windowSize.y) + this.maxRadius))))){ _local4 = this.images.iterator(); while (_local4.hasNext()) { _local5 = _local4.next(); _local5.setPos(this.pixel); _local5.setRotation(this.rotation); _local5.outside(_local2); }; } else { _local6 = this.images.iterator(); while (_local6.hasNext()) { _local7 = _local6.next(); _local7.setPos(this.pixel); _local7.setRotation(this.rotation); _local7.inside(_local2); }; }; } public function step(_arg1:int):int{ var _local2:int; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Point; var _local8:Boolean; _local2 = 0; _local3 = this.findScalarX((this.stepNum - 1)); _local4 = this.findScalarY((this.stepNum - 1)); _local5 = this.findScalarX(this.stepNum); _local6 = this.findScalarY(this.stepNum); _local7 = new Point(Math.floor(_local5), Math.floor(_local6)); while ((((_local2 < _arg1)) && ((this.stepNum <= this.totalSteps)))) { _local5 = this.findScalarX(this.stepNum); _local6 = this.findScalarY(this.stepNum); _local7.x = Math.floor(_local5); _local7.y = Math.floor(_local6); _local8 = false; if (((this.shouldRotate) && (!(Point.isEqual(this.pixel, _local7))))){ _local8 = this.stepRotate(_local3, _local4, _local5, _local6); }; if (!_local8){ this.pixel = _local7; this.stepNum++; _local3 = _local5; _local4 = _local6; }; _local2++; }; return (_local2); } public function getPixel():Point{ return (this.pixel); } public function rotate(_arg1:int):void{ this.rotation = _arg1; if (this.rotation > 180){ this.rotation = (this.rotation - 360); }; if (this.rotation <= -180){ this.rotation = (this.rotation + 360); }; } public function allowRotation():void{ this.shouldRotate = true; } public function startDance(_arg1:int):void{ this.danceCounter = _arg1; this.danceBase = this.rotation; } protected function findScalarX(_arg1:int):Number{ if (_arg1 >= 0){ return (this.findScalar((_arg1 / this.totalSteps), this.source.x, this.control.x, this.dest.x)); }; return (this.source.x); } protected function findScalarY(_arg1:int):Number{ if (_arg1 >= 0){ return (this.findScalar((_arg1 / this.totalSteps), this.source.y, this.control.y, this.dest.y)); }; return (this.source.y); } public function tryRotate(_arg1:int):Boolean{ var _local2:Boolean; var _local3:int; _local2 = false; _local3 = Util.angleDistance(this.rotation, _arg1); if (Util.angleDistance(this.rotation, _arg1) < Option.rotateStep){ this.rotate(_arg1); } else { if (Util.angleDistance((this.rotation + Option.rotateStep), _arg1) < _local3){ this.rotate((this.rotation + Option.rotateStep)); _local2 = true; } else { this.rotate((this.rotation - Option.rotateStep)); _local2 = true; }; }; return (_local2); } public function save(){ return ({shouldShow:this.shouldShow, pixel:this.pixel.save(), shouldRotate:this.shouldRotate, rotation:this.rotation, stepNum:this.stepNum, totalSteps:this.totalSteps, source:this.source.save(), dest:this.dest.save(), control:this.control.save(), maxRadius:this.maxRadius, danceCounter:this.danceCounter, danceBase:this.danceBase}); } public static function load(_arg1):ImageStack{ var _local2:ImageStack; _local2 = new (ImageStack); _local2.shouldShow = _arg1.shouldShow; _local2.pixel = Point.load(_arg1.pixel); _local2.shouldRotate = _arg1.shouldRotate; _local2.rotation = _arg1.rotation; _local2.stepNum = _arg1.stepNum; _local2.totalSteps = _arg1.totalSteps; _local2.source = Point.load(_arg1.source); _local2.dest = Point.load(_arg1.dest); _local2.control = Point.load(_arg1.control); _local2.maxRadius = _arg1.maxRadius; _local2.danceCounter = _arg1.danceCounter; _local2.danceBase = _arg1.danceBase; return (_local2); } } }//package ui
Section 193
//Label (ui.Label) package ui { public class Label { public static var workshopScreen:String = "WorkshopScreen"; public static var barricadeScreen:String = "BarricadeScreen"; public static var configDisk:String = "ZomLogConfig"; public static var tower:String = "towerclip"; public static var smallExplosion:String = "ExplosionSmallClip"; public static var bridge:String = "BridgeClip"; public static var timerScreen:String = "TimerScreen"; public static var depotMiscScreen:String = "DepotMiscScreen"; public static var floater:String = "FloaterClip"; public static var largeExplosion:String = "ExplosionLargeClip"; public static var depotBuildScreen:String = "DepotBuildScreen"; public static var background:String = "backgroundtiles"; public static var gameDisk:String = "ZomLog"; public static var depotResourceScreen:String = "DepotResourceScreen"; public static var pause:String = "PauseClip"; public static var sniperScreen:String = "SniperScreen"; public static var select:String = "SelectClip"; public static var towerNeed:String = "TowerNeedClip"; } }//package ui
Section 194
//LayoutGame (ui.LayoutGame) package ui { import logic.*; import flash.*; public class LayoutGame { public var tutorialBoxOffset:Point; public var sideMenuOffset:Point; public var fpsSize:Point; public var resourceHiddenOffset:int; public var screenSize:Point; public var mapOffset:Point; public var windowSize:Point; public var resourceShownOffset:int; public var pauseToggleOffset:Point; public var tutorialTextOffset:Point; public var margin:int; public var monitorOffset:Point; public var totalResourceOffset:Point; public var miniScreenSize:Point; public var monitorScaleX:Number; public var monitorScaleY:Number; public var countDownOffset:Point; public var scrollOutMargin:int; public var miniOffset:Point; public var scrollMargin:int; public var fpsOffset:Point; public var buildMenuOffset:Point; public var playToggleOffset:Point; public var windowCenter:Point; public var quickOffset:Point; public var tipWidth:int; public var countDownSize:Point; public var miniSize:Point; public var miniCellSize:int; public var monitorSize:Point; public var mapSize:Point; public var tutorialSize:Point; public function LayoutGame(_arg1:int=0, _arg2:int=0, _arg3:GameSettings=null):void{ if (!Boot.skip_constructor){ this.screenSize = new Point(_arg1, _arg2); this.margin = 10; this.scrollMargin = 5; this.scrollOutMargin = 100; this.initMiniMap(_arg3); this.initWindow(_arg3); this.initFpsCounter(); this.initMenu(); this.initQuick(); this.initZombieSpawner(); this.initToolTip(); this.initTutorial(); }; } protected function initFpsCounter():void{ this.fpsSize = new Point(60, 15); this.fpsOffset = new Point(0, (this.screenSize.y - this.fpsSize.y)); } protected function initTutorial():void{ this.tutorialBoxOffset = new Point(5, 200); this.tutorialTextOffset = new Point((this.tutorialBoxOffset.x + 10), (this.tutorialBoxOffset.y + 10)); this.tutorialSize = new Point(200, 50); } protected function initWindow(_arg1:GameSettings):void{ this.windowSize = new Point(Math.ceil((this.screenSize.x / Option.cellPixels)), Math.ceil((this.screenSize.y / Option.cellPixels))); if (this.windowSize.x > _arg1.getSize().x){ this.windowSize.x = _arg1.getSize().x; }; if (this.windowSize.y > _arg1.getSize().y){ this.windowSize.y = _arg1.getSize().y; }; this.mapOffset = new Point(0, 0); this.mapSize = new Point(Lib.cellToPixel(this.windowSize.x), Lib.cellToPixel(this.windowSize.y)); this.windowCenter = new Point(Math.floor((this.windowSize.x / 2)), Math.floor((this.windowSize.y / 2))); } protected function initMenu():void{ this.sideMenuOffset = new Point((this.screenSize.x - 400), (this.screenSize.y - 600)); this.resourceHiddenOffset = 565; this.resourceShownOffset = 525; } protected function initZombieSpawner():void{ this.playToggleOffset = new Point(157, 39); this.pauseToggleOffset = new Point(160, 60); this.countDownSize = new Point(221, 140); if (this.screenSize.x < 800){ this.countDownSize = new Point(166, 105); }; this.countDownOffset = new Point(0, 0); } protected function initQuick():void{ this.quickOffset = new Point(0, this.screenSize.y); this.totalResourceOffset = new Point(Math.floor((this.screenSize.x / 2)), 0); this.buildMenuOffset = new Point(0, (this.quickOffset.y - 20)); } protected function initToolTip():void{ this.tipWidth = Math.floor((this.screenSize.x / 3)); if (this.tipWidth > 200){ this.tipWidth = 200; }; } protected function initMiniMap(_arg1:GameSettings):void{ var _local2:int; this.miniCellSize = 2; if ((((_arg1.getSize().x > 65)) && ((_arg1.getSize().y > 65)))){ this.miniCellSize = 1; }; _local2 = 10; this.miniSize = new Point((_arg1.getSize().x * this.miniCellSize), (_arg1.getSize().y * this.miniCellSize)); this.miniScreenSize = new Point(160, 160); this.monitorScaleX = (this.miniSize.x / this.miniScreenSize.x); this.monitorScaleY = (this.miniSize.y / this.miniScreenSize.y); this.monitorSize = new Point(Math.ceil((245 * this.monitorScaleX)), Math.ceil((217 * this.monitorScaleY))); this.monitorOffset = new Point(((this.screenSize.x - this.monitorSize.x) + _local2), -(_local2)); this.miniOffset = new Point((Math.ceil((27 * this.monitorScaleX)) + this.monitorOffset.x), (Math.ceil((30 * this.monitorScaleY)) + this.monitorOffset.y)); } } }//package ui
Section 195
//LayoutMain (ui.LayoutMain) package ui { import flash.*; public class LayoutMain { public var screenSize:Point; public function LayoutMain(_arg1:int=0, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.screenSize = new Point(_arg1, _arg2); }; } } }//package ui
Section 196
//MainIntroMusic (ui.MainIntroMusic) package ui { import flash.net.*; import flash.media.*; import flash.*; public class MainIntroMusic extends Sound { public function MainIntroMusic(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package ui
Section 197
//MainLoopMusic (ui.MainLoopMusic) package ui { import flash.net.*; import flash.media.*; import flash.*; public class MainLoopMusic extends Sound { public function MainLoopMusic(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package ui
Section 198
//MiniMap (ui.MiniMap) package ui { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.*; public class MiniMap { protected var foreground:Bitmap; protected var clip:DisplayObjectContainer; protected var glare:MovieClip; protected var monitor:MonitorClip; protected var background:Bitmap; protected var supply:Shape; protected var window:Shape; public function MiniMap(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ var _local3:BitmapData; var _local4:BitmapData; super(); if (!Boot.skip_constructor){ this.monitor = new MonitorClip(); _arg1.addChild(this.monitor); this.monitor.visible = true; this.monitor.scaleX = _arg2.monitorScaleX; this.monitor.scaleY = _arg2.monitorScaleY; this.clip = new Sprite(); _arg1.addChild(this.clip); this.clip.visible = true; this.clip.addEventListener(MouseEvent.MOUSE_DOWN, this.bitmapPress); this.clip.addEventListener(MouseEvent.MOUSE_UP, this.bitmapRelease); this.glare = new MonitorOverlayClip(); _arg1.addChild(this.glare); this.glare.visible = true; this.glare.scaleX = _arg2.monitorScaleX; this.glare.scaleY = _arg2.monitorScaleY; this.glare.mouseEnabled = false; _local3 = new BitmapData(_arg2.miniSize.x, _arg2.miniSize.y, false, Option.roadMiniColor); this.background = new Bitmap(_local3); this.clip.addChild(this.background); this.background.visible = true; this.supply = new Shape(); this.clip.addChild(this.supply); this.supply.visible = true; this.window = new Shape(); this.clip.addChild(this.window); this.window.visible = true; _local4 = new BitmapData(_arg2.miniSize.x, _arg2.miniSize.y, true, 0xFFFFFF); this.foreground = new Bitmap(_local4); this.clip.addChild(this.foreground); this.foreground.visible = true; this.monitor.addEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.resize(_arg2); }; } public function update():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local1 = 0; _local2 = Game.map.sizeY(); while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = 0; _local5 = Game.map.sizeX(); while (_local4 < _local5) { var _temp2 = _local4; _local4 = (_local4 + 1); _local6 = _temp2; this.updateCell(_local6, _local3); }; }; } public function updateCell(_arg1:int, _arg2:int):void{ var _local3:MapCell; var _local4:int; var _local5:BitmapData; var _local6:int; var _local7:enum; _local3 = Game.map.getCell(_arg1, _arg2); _local4 = Option.roadMiniColor; _local5 = this.background.bitmapData; if (_local3.hasZombies()){ _local4 = Option.zombieMiniColor; _local5 = this.foreground.bitmapData; } else { if (Point.isEqual(new Point(_arg1, _arg2), Game.select.getSelected())){ _local4 = Option.selectedMiniColor; _local5 = this.foreground.bitmapData; } else { if (_local3.hasTower()){ _local4 = Option.towerMiniColor; _local5 = this.foreground.bitmapData; } else { if (_local3.hasTrucks()){ _local4 = Option.truckMiniColor; _local5 = this.foreground.bitmapData; } else { if (_local3.buildingHasZombies()){ _local6 = _local3.getBuilding().getZombieCount(); _local4 = Lib.zombieColor(_local6); } else { _local7 = _local3.getBackground(); switch (_local7.index){ case 0: _local4 = Option.emptyBuildingMiniColor; break; case 1: _local4 = Option.emptyBuildingMiniColor; break; case 2: _local4 = Option.roadMiniColor; break; case 3: _local4 = Option.roadMiniColor; break; case 4: _local4 = Option.roadMiniColor; break; case 5: _local4 = Option.roadMiniColor; break; case 6: _local4 = Option.waterColor; break; case 7: _local4 = Option.waterColor; break; }; }; }; }; }; }; this.setCell(_arg1, _arg2, _local4, _local5); } protected function showSupply(_arg1:int, _arg2:int):void{ var _local3:LayoutGame; var _local4:Number; var _local5:Tower; var _local6:*; var _local7:Route; _local3 = Game.view.layout; _local4 = (_local3.miniCellSize / 2); this.supply.graphics.clear(); this.supply.graphics.lineStyle(Option.miniSupplyThickness, Option.miniSupplyColor); _local5 = Game.map.getCell(_arg1, _arg2).getTower(); _local6 = _local5.getTradeLinks().iterator(); while (_local6.hasNext()) { _local7 = _local6.next(); this.supply.graphics.moveTo(((_arg1 * _local3.miniCellSize) + _local4), ((_arg2 * _local3.miniCellSize) + _local4)); this.supply.graphics.lineTo(((_local7.dest.x * _local3.miniCellSize) + _local4), ((_local7.dest.y * _local3.miniCellSize) + _local4)); }; } protected function drawWindow(_arg1:LayoutGame):void{ var _local2:Point; _local2 = new Point((_arg1.windowSize.x * _arg1.miniCellSize), (_arg1.windowSize.y * _arg1.miniCellSize)); this.window.graphics.clear(); this.window.graphics.lineStyle(1, Color.miniCursor); this.window.graphics.moveTo(0, 0); this.window.graphics.lineTo(_local2.x, 0); this.window.graphics.lineTo(_local2.x, _local2.y); this.window.graphics.lineTo(0, _local2.y); this.window.graphics.lineTo(0, 0); } public function updateSupply():void{ var _local1:Point; _local1 = Game.select.getSelected(); if ((((_local1 == null)) || ((Game.map.getCell(_local1.x, _local1.y).getTower() == null)))){ this.clearSupply(); } else { this.showSupply(_local1.x, _local1.y); }; } public function bitmapPress(_arg1:MouseEvent):void{ this.clip.addEventListener(MouseEvent.MOUSE_MOVE, this.bitmapMouseMove); this.bitmapUpdate(Math.floor(_arg1.localX), Math.floor(_arg1.localY)); } protected function clearSupply():void{ this.supply.graphics.clear(); } public function bitmapRelease(_arg1:MouseEvent):void{ this.clip.removeEventListener(MouseEvent.MOUSE_MOVE, this.bitmapMouseMove); } public function moveWindow(_arg1:int, _arg2:int):void{ var _local3:LayoutGame; _local3 = Game.view.layout; this.window.x = (_arg1 * _local3.miniCellSize); this.window.y = (_arg2 * _local3.miniCellSize); } public function cleanup():void{ this.monitor.removeEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.foreground.parent.removeChild(this.foreground); this.foreground.bitmapData.dispose(); this.foreground = null; this.window.parent.removeChild(this.window); this.window = null; this.supply.parent.removeChild(this.supply); this.supply = null; this.background.parent.removeChild(this.background); this.background.bitmapData.dispose(); this.background = null; this.glare.parent.removeChild(this.glare); this.glare = null; this.clip.removeEventListener(MouseEvent.MOUSE_DOWN, this.bitmapPress); this.clip.removeEventListener(MouseEvent.MOUSE_UP, this.bitmapRelease); this.clip.removeEventListener(MouseEvent.MOUSE_MOVE, this.bitmapMouseMove); this.clip.parent.removeChild(this.clip); this.clip = null; this.monitor.parent.removeChild(this.monitor); this.monitor = null; } public function bitmapMouseMove(_arg1:MouseEvent):void{ if (_arg1.buttonDown){ this.bitmapUpdate(Math.floor(_arg1.localX), Math.floor(_arg1.localY)); } else { this.bitmapRelease(_arg1); }; } protected function setCell(_arg1:int, _arg2:int, _arg3:int, _arg4:BitmapData):void{ var _local5:int; var _local6:Rectangle; _local5 = Game.view.layout.miniCellSize; _local6 = new Rectangle((_arg1 * _local5), (_arg2 * _local5), _local5, _local5); _arg4.fillRect(_local6, _arg3); if (_arg4 == this.background.bitmapData){ this.foreground.bitmapData.fillRect(_local6, 0xFFFFFF); }; } protected function bitmapUpdate(_arg1:int, _arg2:int):void{ var _local3:LayoutGame; var _local4:int; var _local5:int; var _local6:int; _local3 = Game.view.layout; _local4 = _local3.miniCellSize; _local5 = (Math.floor((_arg1 / _local4)) - _local3.windowCenter.x); _local6 = (Math.floor((_arg2 / _local4)) - _local3.windowCenter.y); Game.view.window.moveWindow(_local5, _local6); } protected function rollOver(_arg1:MouseEvent):void{ Game.view.toolTip.hide(); } public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.miniOffset.x; this.clip.y = _arg1.miniOffset.y; this.monitor.x = _arg1.monitorOffset.x; this.monitor.y = _arg1.monitorOffset.y; this.glare.x = _arg1.monitorOffset.x; this.glare.y = _arg1.monitorOffset.y; this.drawWindow(_arg1); } } }//package ui
Section 199
//MonitorClip (ui.MonitorClip) package ui { import flash.display.*; public dynamic class MonitorClip extends MovieClip { } }//package ui
Section 200
//MonitorOverlayClip (ui.MonitorOverlayClip) package ui { import flash.display.*; public dynamic class MonitorOverlayClip extends MovieClip { } }//package ui
Section 201
//MouseFloater (ui.MouseFloater) package ui { import flash.display.*; import flash.events.*; import flash.*; public class MouseFloater { protected var buildType:int; protected var supplies:Shape; protected var isActive:Boolean; protected var shadow:CenteredImage; protected var parent:DisplayObjectContainer; protected var oldPos:Point; protected var range:Range; public static var REMOVE_SUPPLY:int = 5; public static var ADD_SUPPLY:int = 4; public function MouseFloater(_arg1:DisplayObjectContainer=null):void{ if (!Boot.skip_constructor){ this.parent = _arg1; this.range = new Range(this.parent, Option.newRangeColor, Option.newRangeOpacity); this.supplies = new Shape(); this.parent.addChild(this.supplies); this.supplies.visible = false; this.shadow = new CenteredImage(this.parent, Label.floater); this.shadow.setCenter(new Point(0, 0)); this.shadow.hide(); this.isActive = false; this.oldPos = null; this.buildType = 0; }; } public function stop():void{ if (this.isActive){ this.parent.removeEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.shadow.hide(); this.isActive = false; this.range.clear(); this.supplies.visible = false; }; } protected function updateShadow(_arg1:Point):void{ var _local2:Point; _local2 = Game.view.window.toRelative(_arg1.x, _arg1.y); this.shadow.goto(Lib.cellToPixel(_local2.x), Lib.cellToPixel(_local2.y)); } protected function updateOverlay(_arg1:Point):void{ if (this.isValid(_arg1)){ this.shadow.setTransform(Color.allowTransform); this.updateSupplies(_arg1); } else { this.shadow.setTransform(Color.denyTransform); this.supplies.visible = false; }; } public function update(_arg1:Number, _arg2:Number, _arg3:Boolean):void{ var _local4:LayoutGame; var _local5:Point; var _local6:Point; _local4 = Game.view.layout; _local5 = new Point(Math.floor(_arg1), Math.floor(_arg2)); if ((((((((((_local5.x >= _local4.mapOffset.x)) && ((_local5.x < (_local4.mapSize.x + _local4.mapOffset.x))))) && ((_local5.y >= _local4.mapOffset.y)))) && ((_local5.y < (_local4.mapSize.y + _local4.mapOffset.y))))) && (this.isActive))){ this.shadow.show(); _local6 = Game.view.window.toAbsolute(Lib.pixelToCell((_local5.x - _local4.mapOffset.x)), Lib.pixelToCell((_local5.y - _local4.mapOffset.y))); if ((((((this.oldPos == null)) || (!(Point.isEqual(_local6, this.oldPos))))) || (_arg3))){ this.oldPos = _local6; this.updateShadow(_local6); this.updateOverlay(_local6); this.updateRange(_local6); }; } else { this.shadow.hide(); this.range.clear(); this.supplies.visible = false; this.oldPos = null; }; } public function updatePublic():void{ this.update(Main.getRoot().mouseX, Main.getRoot().mouseY, true); } public function mouseMove(_arg1:MouseEvent):void{ this.update(_arg1.stageX, _arg1.stageY, false); } public function start(_arg1:int):void{ if (((!(this.isActive)) || (!((_arg1 == this.buildType))))){ this.buildType = _arg1; this.shadow.gotoFrame((this.buildType + 2)); this.shadow.show(); this.parent.addEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.isActive = true; this.oldPos = null; this.update(Main.getRoot().mouseX, Main.getRoot().mouseY, false); }; } public function cleanup():void{ this.parent.removeEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.parent = null; this.shadow.cleanup(); this.shadow = null; this.supplies.parent.removeChild(this.supplies); this.supplies = null; this.range.cleanup(); this.range = null; this.isActive = false; } protected function isValid(_arg1:Point):Boolean{ var _local2:Boolean; _local2 = true; if (this.buildType == ADD_SUPPLY){ _local2 = (Check.checkAddSupply(_arg1) == Check.ADD_OK); } else { if (this.buildType == REMOVE_SUPPLY){ _local2 = (Check.checkRemoveSupply(_arg1) == Check.REMOVE_OK); } else { _local2 = Tower.canPlace(this.buildType, _arg1.x, _arg1.y); }; }; return (_local2); } public function resize(_arg1:LayoutGame):void{ var _local2:Point; this.range.resize(_arg1); if (this.oldPos != null){ _local2 = this.oldPos; this.oldPos = null; this.update(_local2.x, _local2.y, false); }; } protected function updateSupplies(_arg1:Point):void{ var _local2:Point; var _local3:List; var _local4:*; var _local5:Point; var _local6:Tower; var _local7:int; var _local8:int; var _local9:int; _local2 = Game.view.window.toRelative(_arg1.x, _arg1.y); this.supplies.x = (Lib.cellToPixel(_local2.x) + Option.halfCell); this.supplies.y = (Lib.cellToPixel(_local2.y) + Option.halfCell); this.supplies.graphics.clear(); _local3 = Game.map.findTowers(_arg1.x, _arg1.y, Option.supplyRange); _local4 = _local3.iterator(); while (_local4.hasNext()) { _local5 = _local4.next(); _local6 = Game.map.getCell(_local5.x, _local5.y).getTower(); if ((((this.buildType == Tower.DEPOT)) || ((_local6.getType() == Tower.DEPOT)))){ _local7 = Color.supplyOtherLine; if ((((this.buildType == Tower.DEPOT)) && ((_local6.getType() == Tower.DEPOT)))){ _local7 = Color.supplyDepotLine; }; this.supplies.graphics.lineStyle(Color.supplyLineThickness, _local7, Color.supplyLineAlpha, true, LineScaleMode.NORMAL, CapsStyle.ROUND); _local8 = Lib.cellToPixel((_local5.x - _arg1.x)); _local9 = Lib.cellToPixel((_local5.y - _arg1.y)); this.supplies.graphics.moveTo(0, 0); this.supplies.graphics.lineTo(_local8, _local9); }; }; this.supplies.visible = true; } protected function updateRange(_arg1:Point):void{ var _local2:int; this.range.clear(); if ((((this.buildType == Tower.SNIPER)) && (Tower.canPlace(this.buildType, _arg1.x, _arg1.y)))){ _local2 = Option.sniperRange[0]; PermissiveFov.permissiveFov(_arg1.x, _arg1.y, _local2, Sniper.isBlocked, this.addNewSquare); this.range.draw(); }; } protected function addNewSquare(_arg1:int, _arg2:int):void{ if (!Sniper.isBlocked(_arg1, _arg2)){ this.range.set(_arg1, _arg2); }; } } }//package ui
Section 202
//MouseScroller (ui.MouseScroller) package ui { import flash.display.*; import flash.events.*; import flash.*; public class MouseScroller { protected var north:Boolean; protected var enabled:Boolean; protected var south:Boolean; protected var parent:InteractiveObject; protected var west:Boolean; protected var counter:int; protected var east:Boolean; protected static var basePos:Point = null; protected static var mouseOut:Boolean = false; protected static var mousePos:Point = null; protected static var maxScroll:int = 7; protected static var outMargin:int = 75; public function MouseScroller(_arg1:InteractiveObject=null):void{ if (!Boot.skip_constructor){ this.enabled = true; this.north = false; this.south = false; this.east = false; this.west = false; this.parent = _arg1; this.counter = 0; this.parent.stage.addEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.parent.stage.addEventListener(MouseEvent.ROLL_OVER, this.mouseMove); this.parent.stage.addEventListener(Event.MOUSE_LEAVE, this.mouseLeave); }; } public function enable():void{ this.enabled = true; } protected function mouseLeave(_arg1:Event):void{ this.parent.addEventListener(Event.ENTER_FRAME, this.enterFrame); Game.view.toolTip.hide(); this.updateMouse(Math.floor(this.parent.stage.mouseX), Math.floor(this.parent.stage.mouseY), Game.view.layout.scrollOutMargin); } public function mouseMove(_arg1:MouseEvent):void{ this.mouseClear(); this.updateMouse(Math.floor(_arg1.stageX), Math.floor(_arg1.stageY), Game.view.layout.scrollMargin); } protected function updateMouse(_arg1:int, _arg2:int, _arg3:int):void{ var _local4:Point; _local4 = Game.view.layout.screenSize; this.north = (((_arg2 <= _arg3)) && (this.withinGutter(_local4, _arg1, _arg2))); this.south = (((_arg2 > (_local4.y - _arg3))) && (this.withinGutter(_local4, _arg1, _arg2))); this.east = (((_arg1 > (_local4.x - _arg3))) && (this.withinGutter(_local4, _arg1, _arg2))); this.west = (((_arg1 <= _arg3)) && (this.withinGutter(_local4, _arg1, _arg2))); if (((((((this.north) || (this.south))) || (this.east))) || (this.west))){ this.parent.addEventListener(Event.ENTER_FRAME, this.enterFrame); } else { this.parent.removeEventListener(Event.ENTER_FRAME, this.enterFrame); }; } public function cleanup():void{ this.parent.stage.removeEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.parent.stage.removeEventListener(MouseEvent.ROLL_OVER, this.mouseMove); this.parent.stage.removeEventListener(Event.MOUSE_LEAVE, this.mouseLeave); this.parent.removeEventListener(Event.ENTER_FRAME, this.enterFrame); } protected function withinGutter(_arg1:Point, _arg2:int, _arg3:int):Boolean{ return ((((((((_arg2 >= -(outMargin))) && ((_arg3 >= -(outMargin))))) && ((_arg2 <= (_arg1.x + outMargin))))) && ((_arg3 <= (_arg1.y + outMargin))))); } public function mouseClear():void{ this.north = false; this.south = false; this.east = false; this.west = false; this.parent.removeEventListener(Event.ENTER_FRAME, this.enterFrame); } public function disable():void{ this.enabled = false; } protected function updateExternal():void{ } public function enterFrame(_arg1:Event):void{ if (((this.enabled) && (!(Game.pause.isSystemPaused())))){ this.updateExternal(); this.counter = (this.counter + (Main.config.getValue(Config.SCROLL) + 1)); if (this.counter >= maxScroll){ if (this.north){ Game.view.window.scrollWindow(Direction.NORTH, 1); }; if (this.south){ Game.view.window.scrollWindow(Direction.SOUTH, 1); }; if (this.east){ Game.view.window.scrollWindow(Direction.EAST, 1); }; if (this.west){ Game.view.window.scrollWindow(Direction.WEST, 1); }; this.counter = (this.counter - maxScroll); }; }; } protected static function setMouseOut():void{ MouseScroller.mouseOut = true; } protected static function setMousePosition(_arg1:int, _arg2:int):void{ if (MouseScroller.basePos != null){ MouseScroller.mousePos = new Point((_arg1 - basePos.x), (_arg2 - basePos.y)); } else { MouseScroller.mousePos = new Point(_arg1, _arg2); }; } protected static function getBasePos(_arg1:String):Point{ var _local2:Point; _local2 = null; return (_local2); } protected static function clearMouseOut():void{ MouseScroller.mouseOut = false; } public static function trackMouse():void{ } } }//package ui
Section 203
//MusicPlayer (ui.MusicPlayer) package ui { import flash.events.*; import flash.media.*; import flash.*; public class MusicPlayer { protected var channel:SoundChannel; protected var currentMusic:Sound; protected var pos:int; protected var transform:SoundTransform; public static var QUIET:int = 6; protected static var musicList:Array = [new MainIntroMusic(), new MainLoopMusic(), new Wave1Music(), new Wave2Music(), new Wave3Music(), new WaveEndMusic(), new QuietMusic(), new AmbientMusic()]; public static var WAVE_3:int = 4; public static var MAIN_INTRO:int = 0; public static var MAIN_LOOP:int = 1; public static var WAVE_1:int = 2; protected static var bufferLength:Number = 1000; protected static var nextMusic:Array = [MAIN_LOOP, MAIN_INTRO, WAVE_2, WAVE_3, WAVE_1, QUIET, AMBIENT, QUIET]; public static var WAVE_END:int = 5; public static var WAVE_2:int = 3; public static var AMBIENT:int = 7; public function MusicPlayer():void{ if (!Boot.skip_constructor){ this.pos = MAIN_INTRO; this.transform = new SoundTransform(); this.advance(); }; } public function stop():void{ if (this.channel != null){ this.channel.removeEventListener(Event.SOUND_COMPLETE, this.complete); this.channel.stop(); this.channel = null; }; } public function cleanup():void{ this.stop(); } protected function advance(_arg1=null):void{ var start:Number; var optStart = _arg1; try { start = 0; if (optStart != null){ start = optStart; }; this.stop(); this.currentMusic = musicList[this.pos]; this.transform.volume = Main.config.getProportion(Config.MUSIC); this.channel = this.currentMusic.play(start, 0, this.transform); this.channel.addEventListener(Event.SOUND_COMPLETE, this.complete); this.pos = nextMusic[this.pos]; } catch(e) { }; } protected function enterFrame(_arg1:Event):void{ var _local2:SoundChannel; var _local3:Number; var _local4:Number; if ((((this.pos == MAIN_INTRO)) || ((this.pos == MAIN_LOOP)))){ if (this.channel.position > (this.currentMusic.length - bufferLength)){ Lib.trace("within buffer"); _local2 = this.channel; this.stop(); _local3 = (musicList[this.pos].length - _local2.position); _local4 = (MusicPlayer.bufferLength - _local3); this.advance(_local4); }; }; } public function changeMusic(_arg1:int, _arg2:Boolean):void{ this.pos = _arg1; if (_arg2){ this.advance(); }; } protected function complete(_arg1:Event):void{ this.advance(); } public function setVolume(_arg1:Number):void{ if (this.channel != null){ this.transform.volume = _arg1; this.channel.soundTransform = this.transform; }; } public static function randomWave():int{ return ((Lib.rand(3) + WAVE_1)); } } }//package ui
Section 204
//QuietMusic (ui.QuietMusic) package ui { import flash.net.*; import flash.media.*; import flash.*; public class QuietMusic extends Sound { public function QuietMusic(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package ui
Section 205
//ResourceBar (ui.ResourceBar) package ui { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.*; public class ResourceBar { protected var allowedWidth:int; protected var clip:DisplayObjectContainer; protected var bar:Bitmap; protected var payload:Resource; protected var hoverAction:Function; protected var survivorImages:Array; protected var clickAction:Function; protected var truckLoad:int; protected var baseY:int; protected var text:TextField; protected var sourceRect:Rectangle; protected var survivorOffset:int; protected var middle:int; protected static var groupSize:int = (Option.truckLoad * 5); protected static var resourceRow:Array = [0, 2, 4, 0]; protected static var INCOMING:int = 2; protected static var STUFF:int = 1; protected static var iconWidth:int = 24; protected static var BACKGROUND:int = 0; protected static var evenOut:int = 1; protected static var margin:int = 35; protected static var backgroundColor:Array = [0xFF, 0xFF, 0xFF]; protected static var incomingColor:Array = [0, 119, 0]; public function ResourceBar(_arg1:DisplayObjectContainer=null, _arg2:Resource=null, _arg3:int=0, _arg4:int=0, _arg5:int=0, _arg6:Function=null, _arg7:Function=null, _arg8:LayoutGame=null):void{ var _local9:BitmapData; var _local10:TextFormat; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:String; super(); if (!Boot.skip_constructor){ this.payload = _arg2; this.clickAction = _arg6; this.hoverAction = _arg7; this.clip = new Sprite(); _arg1.addChild(this.clip); this.clip.x = _arg3; this.clip.y = _arg4; this.clip.visible = false; this.clip.addEventListener(MouseEvent.CLICK, this.release); this.clip.addEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.clip.addEventListener(MouseEvent.MOUSE_MOVE, this.rollOver); this.clip.addEventListener(MouseEvent.ROLL_OUT, this.rollOut); _local9 = new BitmapData(_arg5, Option.cellPixels, true, 0xFFFFFF); this.bar = new Bitmap(_local9); this.clip.addChild(this.bar); this.bar.visible = true; this.bar.x = 0; this.bar.y = 0; this.bar.width = _arg5; this.bar.height = Option.cellPixels; this.text = Util.createTextField(this.clip, new Point(0, 0), new Point(_arg5, Option.cellPixels)); this.text.visible = true; this.text.border = false; this.text.background = false; _local10 = Util.createTextFormat(); _local10.align = TextFormatAlign.RIGHT; _local10.size = FontSize.resourceBar; _local10.color = Color.resourceBarText; this.text.defaultTextFormat = _local10; this.survivorImages = null; if (this.payload == Resource.SURVIVORS){ this.survivorImages = []; _local12 = 0; _local13 = Animation.carryAmmo.getTypeCount(); while (_local12 < _local13) { var _temp1 = _local12; _local12 = (_local12 + 1); _local14 = _temp1; _local15 = Sprite.getSurvivorLinkage(Resource.SURVIVORS, _local14); this.survivorImages[_local14] = new CenteredImage(this.clip, _local15); this.survivorImages[_local14].detach(); this.survivorImages[_local14].setCenter(new Point(0, 0)); }; }; _local11 = Lib.resourceToIndex(this.payload); this.baseY = (resourceRow[_local11] * Option.cellPixels); this.sourceRect = new Rectangle(0, 0, Option.cellPixels, Option.cellPixels); this.truckLoad = Lib.truckLoad(this.payload); this.allowedWidth = _arg5; this.middle = Math.floor((this.allowedWidth / 2)); }; } public function hide():void{ this.clip.visible = false; } protected function draw(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:Boolean):void{ var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:int; var _local16:int; var _local17:int; var _local18:Point; var _local19:Tower; var _local20:int; var _local21:Array; this.sourceRect.x = Lib.cellToPixel(_arg4); _local9 = (Option.cellPixels - 8); _local10 = (Math.floor(((_arg2 / this.truckLoad) * _local9)) + 4); _local11 = (Math.floor(((_arg3 / this.truckLoad) * _local9)) + 4); this.sourceRect.y = (this.baseY + (Option.cellPixels - _local11)); if (_arg8){ this.sourceRect.y = (this.sourceRect.y + Option.cellPixels); }; _local12 = (_arg5 - 1); _local13 = _arg1; if (this.payload == Resource.SURVIVORS){ _local12 = (Math.ceil((_arg5 / 2)) - 1); _local13 = Math.floor((_arg1 / 2)); }; if (_local12 == 0){ _local12 = 1; _local13 = 0; }; _local14 = (Math.floor((((_arg7 - iconWidth) / _local12) * _local13)) + _arg6); if (_local14 > (Lib.cellToPixel(_local13) + _arg6)){ _local14 = (Lib.cellToPixel(_local13) + _arg6); }; this.sourceRect.height = (_local11 - _local10); if ((((this.payload == Resource.SURVIVORS)) && (((_arg3 - _arg2) > 0)))){ _local15 = Math.floor((Option.cellPixels / 2)); _local16 = Math.floor((Option.cellPixels / 4)); if ((_arg1 % 2) == 1){ _local16 = (_local16 * 3); }; _local17 = (this.survivorOffset + _arg1); _local18 = Game.select.getSelected(); _local19 = Game.map.getCell(_local18.x, _local18.y).getTower(); _local20 = _local19.getSurvivorType(_local17); _local21 = null; if (_arg4 == BACKGROUND){ _local21 = backgroundColor; } else { if (_arg4 == INCOMING){ _local21 = incomingColor; }; }; Workaround.drawOverPixels(this.bar, this.survivorImages[_local20].getImage(), (_local14 + _local15), _local16, _local21); } else { Workaround.copyOverPixels(this.bar, Game.view.barSource, this.sourceRect, _local14, (Option.cellPixels - _local11)); }; } protected function release(_arg1:MouseEvent):void{ var _local2:Point; var _local3:Boolean; _local2 = new Point(Math.floor(_arg1.stageX), Math.floor(_arg1.stageY)); _local3 = (_arg1.localX >= this.middle); this.clickAction(this.payload, _local3); } public function move(_arg1:int, _arg2:int):void{ this.clip.x = _arg1; this.clip.y = _arg2; } protected function drawHalf(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int):void{ var _local7:int; var _local8:int; var _local9:int; var _local10:int; _local7 = ((_arg3 - _arg4) - _arg5); _local8 = 0; _local9 = _arg4; if (this.payload != Resource.SURVIVORS){ _local10 = Math.floor((_arg4 / groupSize)); this.drawGroup(_local10, STUFF, _arg2, _arg1, _arg6); _local8 = (_local10 * this.truckLoad); _local9 = (_arg4 - (_local10 * groupSize)); if ((((_local10 > 0)) && ((_local9 > 0)))){ _local8 = (_local8 + this.truckLoad); _arg2 = (_arg2 + 1); }; }; this.drawRegion(_local8, _local9, STUFF, _arg2, _arg1, _arg6); _local8 = (_local8 + _arg4); this.drawRegion(_local8, _arg5, INCOMING, _arg2, _arg1, _arg6); _local8 = (_local8 + _arg5); this.drawRegion(_local8, _local7, BACKGROUND, _arg2, _arg1, _arg6); _local8 = (_local8 + _local7); } protected function drawRegion(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int):void{ var _local7:int; var _local8:int; var _local9:int; _local7 = Math.floor((_arg1 / this.truckLoad)); _local8 = (_arg1 % this.truckLoad); _local9 = _arg2; while ((_local9 + _local8) >= this.truckLoad) { this.draw(_local7, _local8, this.truckLoad, _arg3, _arg4, _arg5, _arg6, false); _local9 = ((_local9 - this.truckLoad) + _local8); _local7++; _local8 = 0; }; this.draw(_local7, _local8, (_local9 + _local8), _arg3, _arg4, _arg5, _arg6, false); } protected function drawGroup(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int):void{ var _local6:int; var _local7:int; _local6 = 0; while (_local6 < _arg1) { var _temp1 = _local6; _local6 = (_local6 + 1); _local7 = _temp1; this.draw(_local7, 0, this.truckLoad, _arg2, _arg3, _arg4, _arg5, true); }; } public function getPayload():Resource{ return (this.payload); } public function cleanup():void{ var _local1:int; var _local2:Array; var _local3:CenteredImage; if (this.survivorImages != null){ _local1 = 0; _local2 = this.survivorImages; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.cleanup(); }; this.survivorImages = null; }; this.text.parent.removeChild(this.text); this.text = null; this.bar.parent.removeChild(this.bar); this.bar.bitmapData.dispose(); this.bar = null; this.clip.removeEventListener(MouseEvent.CLICK, this.release); this.clip.removeEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.clip.removeEventListener(MouseEvent.MOUSE_MOVE, this.rollOver); this.clip.removeEventListener(MouseEvent.ROLL_OUT, this.rollOut); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function rollOut(_arg1:MouseEvent):void{ } protected function rollOver(_arg1:MouseEvent):void{ var _local2:Boolean; _local2 = (_arg1.localX >= this.middle); Game.view.toolTip.show(this.hoverAction(this.payload, _local2)); } public function show(_arg1:int, _arg2:int, _arg3:int, _arg4:int):void{ var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; this.middle = calculateMiddle(_arg1, _arg2, _arg3, this.payload, this.allowedWidth); this.clip.visible = true; this.bar.bitmapData.fillRect(new Rectangle(0, 0, this.allowedWidth, Option.cellPixels), Color.resourceBarBorder); this.bar.bitmapData.fillRect(new Rectangle(1, 1, this.middle, (Option.cellPixels - 2)), Color.resourceBarQuota); this.bar.bitmapData.fillRect(new Rectangle(this.middle, 1, (this.allowedWidth - 2), (Option.cellPixels - 2)), Color.resourceBarOverflow); if (_arg4 > 0){ this.text.htmlText = ((Lib.resourceToString(this.payload) + " left: ") + Std.string(_arg4)); } else { if ((((((((_arg1 == 0)) && ((_arg2 == 0)))) && ((_arg3 == 0)))) && ((_arg4 == 0)))){ this.text.htmlText = Lib.resourceToString(this.payload); } else { this.text.htmlText = ""; }; }; this.text.y = ((Option.cellPixels - this.text.textHeight) / 2); _local5 = (Math.ceil((_arg3 / this.truckLoad)) + 1); _local6 = Math.floor(Math.min(_arg3, _arg1)); if (this.payload != Resource.SURVIVORS){ _local5 = (_local5 - (4 * Math.floor((_local6 / groupSize)))); }; _local7 = Math.floor(Math.min((_arg3 - _local6), _arg2)); this.survivorOffset = 0; this.drawHalf(0, _local5, _arg3, _local6, _local7, this.middle); if ((_arg1 + _arg2) > _arg3){ _local8 = ((_arg1 + _arg2) - _arg3); _local9 = (Math.ceil((_local8 / this.truckLoad)) + 1); _local10 = (this.allowedWidth - this.middle); this.survivorOffset = Math.floor((_arg3 / this.truckLoad)); if (_arg1 >= _arg3){ if (this.payload != Resource.SURVIVORS){ _local9 = (_local9 - (4 * Math.floor(((_arg1 - _arg3) / groupSize)))); }; this.drawHalf(this.middle, _local9, _local8, (_arg1 - _arg3), _arg2, _local10); } else { this.drawHalf(this.middle, _local9, _local8, 0, _local8, _local10); }; }; } public static function calculateMiddle(_arg1:int, _arg2:int, _arg3:int, _arg4:Resource, _arg5:int):int{ var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; _local6 = Lib.truckLoad(_arg4); _local7 = Math.ceil((_arg3 / _local6)); _local8 = Math.ceil(((_arg1 + _arg2) / _local6)); _local9 = (Math.floor(Math.max(_local8, _local7)) + (ResourceBar.evenOut * 2)); _local10 = Math.floor((_arg5 * ((_local7 + evenOut) / _local9))); _local11 = ((_local7 + 1) * margin); _local10 = Math.floor(Math.min(_local10, _local11)); _local10 = Math.floor(Math.max(_local10, margin)); _local10 = Math.floor(Math.min(_local10, (_arg5 - margin))); return (_local10); } } }//package ui
Section 206
//ScriptView (ui.ScriptView) package ui { import flash.display.*; import flash.events.*; import logic.*; import flash.text.*; import flash.*; public class ScriptView { protected var clip:TutorialClip; protected var state:ScriptState; protected var buttons:ButtonList; protected var clickNext:Function; protected var clickSkip:Function; protected static var borderThickness:int = 2; public function ScriptView(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ if (!Boot.skip_constructor){ this.state = null; this.clickNext = null; this.clickSkip = null; this.clip = new TutorialClip(); _arg1.addChild(this.clip); this.clip.mouseEnabled = false; this.clip.back.mouseEnabled = false; this.clip.back.mouseChildren = false; this.buttons = new ButtonList(this.click, null, [this.clip.next]); this.clip.next.mouseEnabled = true; this.clip.next.mouseChildren = false; this.clip.text.wordWrap = true; this.clip.text.autoSize = TextFieldAutoSize.LEFT; this.clip.text.addEventListener(TextEvent.LINK, this.link); this.clip.arrow.mouseEnabled = false; this.clip.arrow.mouseChildren = false; this.clip.arrow.visible = false; this.resize(_arg2); }; } protected function click(_arg1:int):void{ if (_arg1 == 0){ this.clickNext(); } else { this.clickSkip(); }; } public function update(_arg1:Array):void{ var _local2:ScriptState; var _local3:int; var _local4:ScriptState; _local2 = null; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _arg1[_local3]; _local3++; if (((_local4.shouldShowText()) || (_local4.shouldShowArrow()))){ _local2 = _local4; break; }; }; if (this.state != _local2){ this.state = _local2; this.redraw(); }; } protected function showArrow(_arg1:Point):void{ var _local2:Number; var _local3:Number; var _local4:int; this.clip.arrow.visible = true; this.clip.arrow.x = _arg1.x; this.clip.arrow.y = _arg1.y; _local2 = (_arg1.x - (this.clip.text.x + (this.clip.text.width / 2))); _local3 = (_arg1.y - (this.clip.text.y + (this.clip.text.height / 2))); _local4 = Lib.slopeToAngle(_local2, _local3); this.clip.arrow.rotation = (180 + _local4); this.clip.arrow.tail.width = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); } protected function link(_arg1:TextEvent):void{ Util.success(); Game.view.centerMenu.lookup(_arg1.text); } protected function hideText():void{ this.clip.text.visible = false; this.clip.next.visible = false; this.clip.back.visible = false; } public function cleanup():void{ this.buttons.cleanup(); this.clip.text.removeEventListener(TextEvent.LINK, this.link); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function hideArrow():void{ this.clip.arrow.visible = false; } protected function setText():void{ var _local1:int; var _local2:int; var _local3:Point; this.clip.text.visible = true; this.clip.back.visible = true; this.clip.text.text = this.state.getText(); _local1 = Math.floor(this.clip.text.width); _local2 = Math.floor(this.clip.text.height); if (this.state.shouldShowNext()){ this.clip.next.visible = true; this.clip.next.x = (this.clip.text.x + 15); this.clip.next.y = ((this.clip.text.y + _local2) + 10); _local2 = (_local2 + (5 + Math.floor(this.clip.next.height))); } else { this.clip.next.visible = false; }; _local3 = new Point((_local1 + 10), (_local2 + 15)); this.clip.back.graphics.clear(); this.clip.back.graphics.lineStyle(); this.clip.back.graphics.beginFill(Color.tutorialBackground, Color.tutorialAlpha); this.clip.back.graphics.drawRoundRect(0, 0, _local3.x, _local3.y, 10, 10); this.clip.back.graphics.endFill(); } protected function updateGuide(_arg1:Point, _arg2:Boolean):void{ var _local3:Point; var _local4:Point; var _local5:Array; var _local6:Direction; var _local7:int; if (_arg2){ _local3 = Game.view.layout.screenSize; _local4 = new Point(Math.floor((_local3.x / 2)), Math.floor((_local3.y / 2))); _local5 = [new Point(_local4.x, 0), new Point(_local4.x, _local3.y), new Point(_local3.x, _local4.y), new Point(0, _local4.y)]; _local6 = Game.view.window.getDir(_arg1); if (_local6 == null){ _arg1 = Game.view.window.toRelative(_arg1.x, _arg1.y).toPixel(); _arg1.x = (_arg1.x + Option.halfCell); _arg1.y = (_arg1.y + Option.halfCell); } else { _local7 = Lib.directionToIndex(_local6); _arg1 = _local5[_local7]; }; }; this.showArrow(_arg1); } public function resize(_arg1:LayoutGame):void{ this.clip.back.x = _arg1.tutorialBoxOffset.x; this.clip.back.y = _arg1.tutorialBoxOffset.y; this.clip.text.x = _arg1.tutorialTextOffset.x; this.clip.text.y = _arg1.tutorialTextOffset.y; this.clip.text.width = _arg1.tutorialSize.x; this.redraw(); } public function redraw():void{ if (this.state == null){ this.clip.visible = false; this.hideArrow(); } else { this.clip.visible = true; if (this.state.shouldShowText()){ this.setText(); } else { this.hideText(); }; if (this.state.shouldShowArrow()){ this.updateGuide(this.state.getPos(), this.state.isMapPos()); } else { this.hideArrow(); }; }; } public function setButtons(_arg1:Function, _arg2:Function):void{ this.clickNext = _arg1; this.clickSkip = _arg2; } } }//package ui
Section 207
//ScrollArrowClip (ui.ScrollArrowClip) package ui { import flash.display.*; public dynamic class ScrollArrowClip extends MovieClip { } }//package ui
Section 208
//ScrollingText (ui.ScrollingText) package ui { import flash.display.*; import flash.events.*; import flash.*; public class ScrollingText { protected var parent:DisplayObjectContainer; protected var height:int; protected var starts:Array; protected var clips:Array; protected var offset:Number; protected static var delta:Number = 1; protected static var skipDelta:Number = 100; public function ScrollingText(_arg1:DisplayObjectContainer=null, _arg2:Array=null, _arg3:Array=null, _arg4:Point=null):void{ if (!Boot.skip_constructor){ this.parent = _arg1; this.clips = _arg2; this.starts = _arg3; this.height = _arg4.y; this.reset(); }; } public function cleanup():void{ this.end(); } public function update():void{ var _local1:int; var _local2:int; var _local3:int; _local1 = 0; _local2 = this.clips.length; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; this.clips[_local3].y = ((this.height + this.starts[_local3]) + this.offset); }; } protected function reset():void{ this.offset = 0; this.update(); } public function begin():void{ this.parent.addEventListener(Event.ENTER_FRAME, this.enterFrame); this.reset(); } public function resize(_arg1:Point):void{ this.height = _arg1.y; this.update(); } protected function enterFrame(_arg1:Event):void{ this.offset = (this.offset - delta); this.update(); } public function end():void{ this.parent.removeEventListener(Event.ENTER_FRAME, this.enterFrame); } public function skip():void{ this.offset = (this.offset - skipDelta); this.update(); } } }//package ui
Section 209
//SniperSprite (ui.SniperSprite) package ui { import flash.*; public class SniperSprite { protected var headAngle:int; protected var idle:ImageStack; protected var bodyAngle:int; protected var idleHead:VirtualImage; protected var type:int; protected var shooter:Sprite; protected var idleBody:VirtualImage; public function SniperSprite(_arg1:Point=null, _arg2:int=0):void{ var _local3:Point; super(); if (!Boot.skip_constructor){ if (_arg1 != null){ _local3 = _arg1.toPixel(); this.type = _arg2; this.shooter = new Sprite(_local3, 0, this.type, Animation.fireShotgun); this.idle = new ImageStack(); this.idle.setPixel(_local3); this.idleHead = new VirtualImage(SpriteDisplay.SNIPER_LAYER, new Point(0, 0), Animation.headLinkage[this.type]); this.idleHead.setScale(Animation.sniperScale); this.idle.addImage(this.idleHead); this.idleBody = new VirtualImage(SpriteDisplay.BODY_LAYER, new Point(0, 0), Animation.bodyLinkage[this.type]); this.idleBody.setScale(Animation.sniperScale); this.idle.addImage(this.idleBody); this.shooter.hide(); this.idle.show(); }; }; } public function cleanup():void{ this.shooter.cleanup(); this.shooter = null; this.idle.cleanup(); this.idle = null; this.idleHead = null; this.idleBody = null; } public function startShooting():void{ this.idle.hide(); this.shooter.setRotationOffset(this.bodyAngle); this.shooter.show(); this.shooter.resetWait(); } public function shootStep(_arg1:int):int{ return (this.shooter.step(_arg1)); } public function stopShooting():void{ this.idle.show(); this.shooter.hide(); } public function rotateStep(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local3 = 0; _local4 = _arg1; if (_local4 > 0){ _local5 = Option.sniperHeadRotate; _local3 = (_local3 + Util.homeInCount(_local4, _local5, this.headAngle, _arg2)); this.headAngle = Util.homeIn(_local4, _local5, this.headAngle, _arg2); this.idleHead.setRotationOffset(this.headAngle); }; if (_local4 > 0){ _local6 = Option.sniperBodyRotate; if (Util.angleDistance(this.headAngle, this.bodyAngle) >= 40){ _local3 = 0; }; _local4 = (_arg1 - _local3); _local3 = (_local3 + Util.homeInCount(_local4, _local6, this.bodyAngle, _arg2)); this.bodyAngle = Util.homeIn(_local4, _local6, this.bodyAngle, _arg2); this.idleBody.setRotationOffset(this.bodyAngle); }; this.idle.update(); return (_local3); } public function save(){ return ({type:this.type, shooter:Save.maybe(this.shooter, Sprite.saveS), idle:this.idle.save(), idleHead:this.idleHead.save(), idleBody:this.idleBody.save(), headAngle:this.headAngle, bodyAngle:this.bodyAngle}); } public static function load(_arg1):SniperSprite{ var _local2:SniperSprite; _local2 = new SniperSprite(null, 0); _local2.type = _arg1.type; _local2.shooter = Load.maybe(_arg1.shooter, Sprite.load); _local2.idle = ImageStack.load(_arg1.idle); _local2.idleHead = VirtualImage.load(_arg1.idleHead); _local2.idleBody = VirtualImage.load(_arg1.idleBody); _local2.idle.addImage(_local2.idleHead); _local2.idle.addImage(_local2.idleBody); _local2.headAngle = _arg1.headAngle; _local2.bodyAngle = _arg1.bodyAngle; return (_local2); } public static function saveS(_arg1:SniperSprite){ return (_arg1.save()); } } }//package ui
Section 210
//SpawnDisplay (ui.SpawnDisplay) package ui { import flash.display.*; import flash.events.*; import logic.*; import flash.*; public class SpawnDisplay { protected var timer:TimerClip; protected var oldCount:int; public function SpawnDisplay(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ if (!Boot.skip_constructor){ this.oldCount = 0; this.timer = new TimerClip(); _arg1.addChild(this.timer); if (Game.settings.isEditor()){ this.timer.visible = false; }; this.timer.mouseChildren = false; this.timer.addEventListener(MouseEvent.CLICK, this.click); this.timer.addEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.timer.addEventListener(MouseEvent.ROLL_OUT, this.rollOut); this.timer.addEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.resize(_arg2); this.setPlay(); }; } public function cleanup():void{ this.timer.removeEventListener(MouseEvent.CLICK, this.click); this.timer.removeEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.timer.removeEventListener(MouseEvent.ROLL_OUT, this.rollOut); this.timer.removeEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.timer.parent.removeChild(this.timer); this.timer = null; } public function showAnnounce():void{ } protected function click(_arg1:MouseEvent):void{ Game.pause.toggle(); this.updateTip(_arg1.localX, _arg1.localY); } public function update():void{ var _local1:int; var _local2:int; var _local3:int; _local1 = Game.spawner.getWaveCount(); if (((!((Game.settings.getEasterEgg() == GameSettings.FIDDLERSGREEN))) && ((((_local1 > 0)) || (!(Game.spawner.getIsCounting())))))){ this.timer.minutes.visible = false; this.timer.tens.visible = false; this.timer.seconds.visible = false; } else { this.timer.minutes.visible = true; this.timer.tens.visible = true; this.timer.seconds.visible = true; _local2 = Game.spawner.getFramesLeft(); _local3 = Math.floor((_local2 / Option.fps)); if ((((_local3 <= 10)) && (!((_local3 == this.oldCount))))){ Main.sound.play(SoundPlayer.TIMER_PIP); }; this.oldCount = _local3; if (Game.settings.getEasterEgg() != GameSettings.FIDDLERSGREEN){ this.outputTime(_local2); } else { this.outputTime(Math.floor((Game.settings.getPlayTime() / 60))); }; }; } public function step():void{ this.update(); } protected function outputTime(_arg1:int):void{ var _local2:Time; _local2 = new Time(_arg1); if ((_local2.minutes + 1) != this.timer.minutes.currentFrame){ this.timer.minutes.gotoAndStop((_local2.minutes + 1)); }; if ((_local2.tens + 1) != this.timer.tens.currentFrame){ this.timer.tens.gotoAndStop((_local2.tens + 1)); }; if ((_local2.seconds + 1) != this.timer.seconds.currentFrame){ this.timer.seconds.gotoAndStop((_local2.seconds + 1)); }; } protected function rollOver(_arg1:MouseEvent):void{ this.updateTip(_arg1.localX, _arg1.localY); } protected function updateTip(_arg1:Number, _arg2:Number):void{ if (_arg1 < 115){ Game.view.toolTip.show(Text.countDownTip); } else { if (Game.pause.isPaused()){ Game.view.toolTip.show(Text.unpauseTip); } else { Game.view.toolTip.show(Text.pauseTip); }; }; } public function resize(_arg1:LayoutGame):void{ this.timer.x = _arg1.countDownOffset.x; this.timer.y = _arg1.countDownOffset.y; this.timer.width = _arg1.countDownSize.x; this.timer.height = _arg1.countDownSize.y; } protected function mouseMove(_arg1:MouseEvent):void{ this.updateTip(_arg1.localX, _arg1.localY); } protected function rollOut(_arg1:MouseEvent):void{ Game.view.toolTip.hide(); } public function setPause():void{ this.timer.isPause.visible = true; this.timer.isPlay.visible = false; } public function setPlay():void{ this.timer.isPause.visible = false; this.timer.isPlay.visible = true; } } }//package ui
Section 211
//Sprite (ui.Sprite) package ui { import mapgen.*; import flash.filters.*; import flash.*; public class Sprite { protected var stack:ImageStack; protected var offset:Point; protected var currentFrame:int; protected var toWait:int; protected var anim:Animation; protected var toMove:int; protected var image:VirtualImage; protected var type:int; protected var maxWait:int; public function Sprite(_arg1:Point=null, _arg2:int=0, _arg3:int=0, _arg4:Animation=null):void{ if (!Boot.skip_constructor){ this.anim = _arg4; this.type = _arg3; if (_arg1 != null){ this.maxWait = 0; this.toWait = 0; this.toMove = 0; this.stack = new ImageStack(); this.image = new VirtualImage(this.anim.getLayer(), new Point(0, 0), this.anim.getLinkage(this.type)); this.image.setScale(this.anim.getScale()); this.image.setFrame(1); this.updateGlowFilter(); this.stack.addImage(this.image); this.stack.rotate(_arg2); this.offset = new Point(0, 0); this.setOffset(); if (this.anim.shouldRotate()){ this.stack.allowRotation(); } else { this.stack.forbidRotation(); }; if (_arg1 != null){ this.stack.setPixel(_arg1.plus(this.offset)); }; this.resetWait(); }; }; } public function hide():void{ this.stack.hide(); } public function save(){ return ({animNumber:this.anim.getNumber(), type:this.type, stack:this.stack.save(), image:this.image.save(), offset:this.offset.save(), currentFrame:this.currentFrame, maxWait:this.maxWait, toWait:this.toWait, toMove:this.toMove}); } public function update():void{ this.stack.update(); } public function dance(_arg1:Boolean):void{ var _local2:int; _local2 = (Option.danceMoves.length - 1); if (!_arg1){ _local2 = -(_local2); }; this.stack.startDance(_local2); } public function step(_arg1:int):int{ var _local2:int; _local2 = 0; if (((this.anim.shouldFace()) || (this.stack.isDancing()))){ _local2 = (_local2 + this.stack.faceEnemy((_arg1 - _local2))); }; if (_arg1 > _local2){ _local2 = (_local2 + this.move((_arg1 - _local2))); }; if (_local2 > 0){ this.stack.update(); }; return (_local2); } protected function updateGlowFilter():void{ if ((((((((this.anim == Animation.zombieDeath)) || ((this.anim == Animation.zombieShamble)))) || ((this.anim == Animation.attackTower)))) || ((this.anim == Animation.attackSurvivor)))){ this.image.setGlowFilter(new GlowFilter(0xFF0000, 1, 8, 8, 1)); }; } public function move(_arg1:int):int{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local2 = this.anim.getFrameCount(); _local3 = this.currentFrame; while ((((_arg1 > (this.toMove + this.toWait))) && (((!(this.anim.shouldWait())) || ((this.maxWait > 0)))))) { this.toWait = (this.toWait + this.anim.getWait(_local3)); this.maxWait = (this.maxWait - this.anim.getWait(_local3)); this.toMove = (this.toMove + this.anim.getMove(_local3)); _local3 = ((_local3 + 1) % _local2); }; _local4 = Math.floor(Math.min(this.toWait, _arg1)); this.toWait = (this.toWait - _local4); _local5 = 0; if (((!(this.anim.shouldWait())) && ((_local4 < _arg1)))){ _local5 = this.stack.step((_arg1 - _local4)); this.toMove = (this.toMove - _local5); }; if (_local3 != this.currentFrame){ _local6 = _local3; if (_local6 == 0){ _local6 = this.anim.getFrameCount(); }; if (((this.anim.shouldReverse()) && ((_local6 > Math.floor((_local2 / 2)))))){ _local6 = ((_local2 - _local6) + 1); }; this.image.setFrame(_local6); }; this.currentFrame = _local3; return ((_local4 + _local5)); } public function setPos(_arg1:Point):void{ this.stack.setPixel(_arg1.plus(this.offset)); } protected function setOffset():void{ if (this.anim.shouldOffset()){ this.offset.x = (Util.rand(7) - 3); this.offset.y = (Util.rand(7) - 3); }; } public function setAlpha(_arg1:Number):void{ this.image.setAlpha(_arg1); } public function getPos():Point{ return (this.stack.getPos().minus(this.offset)); } public function cleanup():void{ this.stack.cleanup(); } public function resetWait():void{ if (this.anim.shouldWait()){ this.maxWait = this.anim.getMoveCount(); this.toWait = 0; this.toMove = 0; this.currentFrame = 0; this.image.setFrame(1); this.stack.update(); } else { this.maxWait = 0; }; } public function travelSimple(_arg1:Point, _arg2:Point=null):void{ var _local3:Point; var _local4:Point; _local3 = _arg1.plus(this.offset); _local4 = _arg2; if (_local4 != null){ _local4.plusEquals(this.offset); }; this.stack.travel(this.anim.getMoveCount(), _local3, _local4); } public function setFrame(_arg1:int):void{ this.currentFrame = _arg1; this.image.setFrame(_arg1); } public function setRotationOffset(_arg1:int):void{ this.image.setRotationOffset(_arg1); } public function changeAnimation(_arg1:Animation):void{ var _local2:Animation; if (this.anim != _arg1){ _local2 = this.anim; this.anim = _arg1; if (!_local2.shouldOffset()){ this.setOffset(); }; this.currentFrame = 0; if (this.anim.shouldRotate()){ this.stack.allowRotation(); } else { this.stack.forbidRotation(); }; this.resetWait(); this.image.changeLinkage(this.anim.getLinkage(this.type)); }; } public function travelCurve(_arg1:Point, _arg2:Point, _arg3:Point):Boolean{ var _local4:Point; var _local5:Point; var _local6:Point; var _local7:Boolean; var _local8:Point; _local4 = _arg1.plus(this.offset); _local5 = _arg2.plus(this.offset); _local6 = _arg3; if (_local6 != null){ _local6.plusEquals(this.offset); }; _local7 = true; _local8 = this.averagePos(_local4, _local5); if (_local6 == null){ this.stack.travel(Math.floor((this.anim.getMoveCount() / 2)), _local5); } else { if (Point.isEqual(this.stack.getPixel(), _local8)){ this.stack.travel(this.anim.getMoveCount(), this.averagePos(_local5, _local6), _local5); } else { if (Point.isEqual(this.stack.getPixel(), _local4)){ this.stack.travel(Math.floor((this.anim.getMoveCount() / 2)), _local8, _local4); _local7 = false; } else { this.stack.travel(this.anim.getMoveCount(), _local8, _local4); _local7 = false; }; }; }; return (_local7); } protected function averagePos(_arg1:Point, _arg2:Point):Point{ return (new Point(Math.floor(((_arg1.x + _arg2.x) / 2)), Math.floor(((_arg1.y + _arg2.y) / 2)))); } public function getRotation():int{ return (this.image.getRotation()); } public function show():void{ this.stack.show(); } public static function getSurvivorLinkage(_arg1:Resource, _arg2:int):String{ return (Animation.carry(_arg1).getLinkage(_arg2)); } public static function load(_arg1):Sprite{ var _local2:Sprite; _local2 = new Sprite(null, 0, _arg1.type, Animation.animations[_arg1.animNumber]); _local2.stack = ImageStack.load(_arg1.stack); _local2.image = VirtualImage.load(_arg1.image); _local2.stack.addImage(_local2.image); _local2.offset = Point.load(_arg1.offset); _local2.currentFrame = _arg1.currentFrame; _local2.maxWait = _arg1.maxWait; _local2.toWait = _arg1.toWait; _local2.toMove = _arg1.toMove; return (_local2); } public static function saveS(_arg1:Sprite){ return (_arg1.save()); } } }//package ui
Section 212
//Text (ui.Text) package ui { public class Text { public static var hoverBarricadeNoBoardsTip:String = (((((("<p>" + "<span class=\"title\">") + "Barricade is Vulnerable ") + "</span>\n") + "There are no boards left in this barricade. The next hit will ") + "destroy it unless it is resupplied first. ") + "</p>"); public static var upgradeDepotTip:String = (((((("<p>" + "<span class=\"title\">") + "<span class=\"hotkey\">U</span>pgrade (30 Boards)") + "</span>\n") + "Increase the speed of this depot. The survivors at upgraded depots move 50% faster ") + "than normal survivors. ") + "</p>"); public static var boardsLeftTip:String = ((("<p>" + "<span class=\"title\">Survivors Left</span>\n") + "How many boards will be recovered before the tower is closed. ") + "</p>"); public static var sniperSurvivorsIncreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Increase Survivor Quota ") + "</span>\n") + "More survivors will make this sniper tower more accurate. ") + "</p>"); public static var upgradeInProgressTip:String = ((((("<p>" + "<span class=\"title\">") + "Upgrade In Progress ") + "</span>\n") + "The materials necessary to upgrade this structure are on the way. ") + "</p> "); public static var mainIntroText:String = ((((((((((((((((((((((("No one knows how it happened. Soon, there'll be no one left to " + "care. But the simple truth is that overnight a globe full of civilized ") + "people festered, and changed, and became something less than ") + "civilized. Less than human. And if you weren't the smartest, or the ") + "fastest, or the best-armed on your block, well... you're one of them ") + "now.\n\n") + "Auriga Squad was the best, and you were its leader. Your final ") + "orders before static filled the airwaves for good were ") + "simple. Parachute onto the island. Secure the city. Blow the ") + "bridges. And set up a secure command post surrounded by water, a safe ") + "haven from the roving, hungry packs.\n\n") + "But it didn't work out that way. There were so many of them, ") + "lurching through the streets, feeding in dark alleyways. Sure, it only ") + "took one shot to drop them, but it only took one bite to drop you. And ") + "those bites went through flak suits, through Kevlar, through ") + "bone...\n\n") + "Now everyone is dead. Except you and the handful of civilians ") + "you've rounded up, scared, defiant, looking for a leader. The ") + "explosives sit useless where the airdrop left them, ready to drop the ") + "bridges-- if only someone could reach them.\n\n") + "What the hell. Maybe there's still a chance. There'll be time to ") + "mourn later, but for now, you'd better get these people moving. ") + "Something tells you this quiet won't last.\n\n") + "The clock is ticking. "); public static var buildingHouseText:String = "House "; public static var spendFoodTip:String = ((((((("<p>" + "<span class=\"title\">") + "Begin spending <span class=\"hotkey\">F</span>ood") + "</span>\n") + "This depot is currently sending out slower survivors to conserve ") + "food. You can click here to begin spending food to double the speed ") + "of survivors. ") + "</p>"); public static var hoverFeatureTip:String = (((((("<p>" + "<span class=\"title\">") + "Special Feature ") + "</span>\n") + "There is a special feature here. You can build a workshop here to ") + "begin activate it. ") + "</p>"); public static var tutorialStyleSheet:String = ((((((((((((("p { " + "font-size: 12; ") + "color: #ffffff ") + "} ") + ".title { ") + "font-size: 14; ") + "font-weight: bold; ") + "color: #ffff00 ") + "} ") + "a { ") + "font-size: 12; ") + "text-decoration: underline; ") + "color: #ffaaaa ") + "} "); public static var sniperSurvivorsDecreaseTip:String = (((((("<p>" + "<span class=\"title\">") + "Decrease Survivor Quota ") + "</span>\n") + "Fewer survivors will make this sniper less accurate. This tower ") + "needs at least one survivor to shoot zombies. ") + "</p>"); public static var jumpToDepotTip:String = ((((("<p>" + "<span class=\"title\">") + "<span class=\"hotkey\">J</span>ump to Depot") + "</span>\n") + "Select the nearest depot and center it in the window. ") + "</p>"); public static var buildingMallText:String = "Mall "; public static var buildingPoliceStationText:String = "Police Station (Ammo) "; public static var showRangeTip:String = (((((("<p>" + "<span class=\"title\">") + "Show Range <span class=\"hotkey\">V</span>iew") + "</span>\n") + "Show global range view. The range of every sniper tower will be ") + "shown with a white overlay. ") + "</p>"); public static var pauseText:String = "Paused "; public static var backgroundBuildDynamiteTip:String = (((((((("<p>" + "<span class=\"title\">") + "Dynamite Here ") + "</span>\n") + "There is some dynamite here which blocks you from building a ") + "structure. You can build a workshop on the dynamite to place the charges ") + "and prevent more zombies from getting onto the island. You may press ") + "escape to cancel. ") + "</p>"); public static var editApartment:String = "Apartment Building "; public static var salvageProspectsHigh:String = "High "; public static var noBoardsWarning:String = "No Boards "; public static var editChurch:String = "Church "; public static var buildingHardwareStoreText:String = "Hardware Store (Boards) "; public static var towerWarning:String = "Structure Already There "; public static var unpauseTip:String = ((((("<p>" + "<span class=\"title\">") + "Resume Game <span class=\"hotkey\">[Space]</span>") + "</span>\n") + "Click to resume the game. ") + "</p>"); public static var waitBrowse:String = "Fetching Map List... "; public static var ammoLeftTip:String = ((("<p>" + "<span class=\"title\">Ammo Left</span>\n") + "How much ammo will be recovered before the tower is closed. ") + "</p>"); public static var survivorsQuotaTip:String = (((("<p>" + "<span class=\"title\">Survivor Quota</span>\n") + "How many survivors should stay here. Survivors transport resources, ") + "staff buildings, and increase accuracy at sniper towers. ") + "</p>"); public static var noAmmoWarning:String = "No Ammo "; public static var upgradeNoResourceTip:String = (((((("<p>" + "<span class=\"title\">") + "Not Enough Boards to Upgrade ") + "</span>\n") + "The suppliers to this structure do not have enough boards, or survivors ") + "to transport those boards. ") + "</p>"); public static var moveWindowWest:String = "<p>Move window West.</p>"; public static var rateMedium:String = "Medium "; public static var boardsQuotaTip:String = (((("<p>" + "<span class=\"title\">Board Quota</span>\n") + "How many boards you want to keep on hand here. You can use boards ") + "to build, upgrade, and repair structures. ") + "</p>"); public static var countDownTip:String = (((("<p>" + "<span class=\"title\">Countdown Timer</span>\n") + "The timer counts down till the next zombie horde invasion. You can ") + "also click here to pause the game. ") + "</p>"); public static var scrollBarLabel:String = "Scroll Speed "; public static var editPediaRootSecret:String = "map_editor "; public static var clickSniper:String = "<p>Click on your sniper tower to select it.</p>"; public static var survivorsInside:String = ("<span class=\"survivor\">Survivors Inside</span>" + "</p>"); public static var buildingDepotTip:String = (((((((("<p>" + "<span class=\"title\">") + "Place Depot ") + "</span>\n") + "Move the mouse to on an open square and click to build a depot ") + "there. It will take some time for a survivor to bring the ") + "construction materials to your planned building location. You may ") + "press escape to cancel. ") + "</p>"); public static var editDeepWater:String = "Deep Water "; public static var clickNext:String = "<p>Click Next to continue</p>"; public static var workshopSurvivorsIncreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Increase Survivor Quota ") + "</span>\n") + "More survivors will make this workshop faster. ") + "</p>"); public static var boardsLabel:String = "Boards "; public static var placeFeatureWarning:String = "Blocked by Dynamite "; public static var salvageProspectsLow:String = "Low "; public static var veteranText:String = "Veteran "; public static var sizeConstraint:String = "0-9 "; public static var ammoLabel:String = "Ammo "; public static var workshopSurvivorsDecreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Decrease Survivor Quota ") + "</span>\n") + "Fewer survivors will make this workshop slower. ") + "</p>"); public static var placeZombieWarning:String = "Blocked by Zombie "; public static var depotSurvivorsIncreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Increase Survivor Quota ") + "</span>\n") + "More survivors will be here ready to ferry supplies to nearby structures. ") + "</p>"); public static var pediaTip:String = ((("<p>" + "<span class=\"title\">Zombipedia</span>") + "Click here for more details on how the game works. ") + "</p>"); public static var soundBarLabel:String = "Sound Volume "; public static var buildingSniperTip:String = (((((((("<p>" + "<span class=\"title\">") + "Place Sniper ") + "</span>\n") + "Move the mouse to on an open square and click to build a sniper tower ") + "there. It will take some time for a survivor to bring the ") + "construction materials to your planned building location. You may ") + "press escape to cancel. ") + "</p>"); public static var hoverSniperNoAmmoTip:String = (((((("<p>" + "<span class=\"title\">") + "Sniper Tower Cannot Fire ") + "</span>\n") + "This sniper tower has run out of ammo. It cannot shoot until it is ") + "resupplied. ") + "</p>"); public static var noTowerWarning:String = "No Structure There "; public static var noUpgradeResourcesWarning:String = "No Resources "; public static var depotSurvivorsDecreaseTip:String = (((((("<p>" + "<span class=\"title\">") + "Decrease Survivor Quota ") + "</span>\n") + "Fewer survivors will be on hand to transfer supplies to nearby ") + "structures. ") + "</p>"); public static var eastLabel:String = "East "; public static var workshopNoSurvivorTip:String = (((((("<p>" + "<span class=\"title\">") + "Cannot Construct Workshop ") + "</span>\n") + "You cannot construct a workshop from this depot. There are no ") + "survivors here to build it. ") + "</p>"); public static var editCorner:String = "Street Corner "; public static var zombieThreatModerate:String = "Moderate "; public static var towerNoRemoveSupplyTip:String = ((((((("<p>" + "<span class=\"title\">") + "No Supply Line ") + "</span>\n") + "You cannot remove a supply line to this structure because there is no ") + "supply line from the source depot to here. You may press escape to ") + "cancel. ") + "</p>"); public static var placeBlockedWarning:String = "Blocked "; public static var northLabel:String = "North "; public static var removeSupplyTip:String = ((((((("<p>" + "<span class=\"title\">") + "<span class=\"hotkey\">R</span>emove Supply Line") + "</span>\n") + "Remove the supply line from this depot to another structure. After ") + "removing the supply line, no new survivors will be sent to carry ") + "resources between the two structures. ") + "</p>"); public static var rateEasy:String = "Easy "; public static var editPediaRoot:String = StringTools.trim(editPediaRootSecret); public static var backgroundBuildBlockedTip:String = (((((("<p>" + "<span class=\"title\">") + "Location Blocked ") + "</span>\n") + "This location is blocked by an obstruction. No structure may be built ") + "here. You may press escape to cancel. ") + "</p>"); public static var backgroundDepotTip:String = (((((("<p>" + "<span class=\"title\">") + "Click To Build Depot ") + "</span>\n") + "If you click here, a survivor will be dispatched to this location ") + "with some boards to build a depot. You may press escape to cancel. ") + "</p>"); public static var buildingParkingLotText:String = "Parking Lot "; public static var editPark:String = "Park "; public static var survivorsTip:String = ((((("<p>" + "<span class=\"title\">Survivors</span>\n") + "How many survivors are here right now. Once liberated, survivors can ") + "be put to work ferrying supplies, scavenging buildings, making ") + "fortifications, manning sniper towers, and setting charges. ") + "</p>"); public static var southLabel:String = "South "; public static var buildingApartmentText:String = "Apartment Complex "; public static var workshopBuildingTip:String = (((((("<p>" + "<span class=\"title\">") + "Move to Entrance ") + "</span>\n") + "Move the mouse to the entrance of this building and click if you ") + "want to salvage the resources inside. You may press escape to cancel. ") + "</p>"); public static var clickBarricade:String = "<p>Click on your barricade to select it.</p>"; public static var buildingChurchText:String = "Church (Survivors) "; public static var waitRateMap:String = "Submitting Rating... "; public static var hoverBarricadeTip:String = ((((("<p>" + "<span class=\"title\">") + "Barricade ") + "</span>\n") + "Barricades use boards to slow down zombies. Click to select it. ") + "</p>"); public static var boardsNoDecreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Cannot Decrease Board Quota ") + "</span>\n") + "The board quota is now zero. You cannot further decrease the quota. ") + "</p>"); public static var backgroundBuildShadowTip:String = (((((("<p>" + "<span class=\"title\">") + "Structure Already Planned ") + "</span>\n") + "You cannot build here because a structure is already being constructed ") + "here. You may press escape to cancel. ") + "</p>"); public static var foodLabel:String = "Food "; public static var easter:Array = ["Some city names cause special maps which change the rules a bit. ", "Map names must contain a certain name to be special. For instance, if 'New York' was a special map, then 'New York City' would also be the same kind of special map. ", "The author's home town map is a perfect grid, just like in the real world. ", "In the city from \"28 Days Later\", the zombies run. ", "There is a mall city inspired by \"Dawn of the Dead\". ", "A medical reference from \"Night of the Living Dead\" creates an extra challenge. ", "Umbrella Corporation's home town is cut off from the mainland but has lots of special buildings. ", "If you visit the city from \"Land of the Dead\", survive as long as you can because the zombies can cross the water... ", "In the city where Thriller was shot, the zombies can dance. "]; public static var depotNoSurvivorTip:String = (((((("<p>" + "<span class=\"title\">") + "Cannot Construct Depot ") + "</span>\n") + "You cannot construct a depot from this structure. There are no survivors ") + "here to build it. ") + "</p>"); public static var towerBuildTip:String = (((((("<p>" + "<span class=\"title\">") + "Structure Already Here ") + "</span>\n") + "You cannot build here because there is already a structure here. You may ") + "press escape to cancel. ") + "</p>"); public static var hideRangeTip:String = ((((("<p>" + "<span class=\"title\">") + "Hide Range <span class=\"hotkey\">V</span>iew") + "</span>\n") + "Hide the global range view. ") + "</p>"); public static var levels:Array = [(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("<map name=\"Basic Training\" difficulty=\"0\" sizeX=\"25\" sizeY=\"19\" startX=\"12\" startY=\"9\" >" + "<terrain>") + "aa1ea42d3c903d1fa27aa713a477f59c.eNoVikESgDAIxFwsC ") + "y2tdPTHvly85JDEVBOmK8GwBs5poPqP8ArGQrk2nWgrFNAewtu ") + "g9lSM3UVa2gle1JrZ8W6XY4wE8AF+HwLw ") + "</terrain>") + "<briefing>") + "No one knows how it happened. Soon, there'll be no one left to ") + "care. But the simple truth is that overnight a globe full of civilized ") + "people festered, and changed, and became something less than ") + "civilized. Less than human. And if you weren't the smartest, or the ") + "fastest, or the best-armed on your block, well... you're one of them ") + "now.\n\n") + "*Begin Transmission*\n\n") + "The hordes of undead are growing. We need to get you up to speed as fast as possible. Lets start with the basics.\n\n") + "*End Transmission* ") + "</briefing>") + "<script>") + "<state name=\"start\" posX=\"16\" posY=\"8\">") + "<text>Your depot is the backbone of your supply network</text>") + "<next/>") + "<edge type=\"click-next\" next=\"1\"/>") + "<edge type=\"start-build-sniper\" next=\"4\"/>") + "<edge type=\"build-sniper\" next=\"5\"/>") + "</state>") + "<state name=\"1\">") + "<text>Depots store your resources and send them to other towers.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"2\"/>") + "<edge type=\"start-build-sniper\" next=\"4\"/>") + "<edge type=\"build-sniper\" next=\"5\"/>") + "</state>") + "<state name=\"2\">") + "<text>Everything must be built within 7 tiles of a depot.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"3\"/>") + "<edge type=\"start-build-sniper\" next=\"4\"/>") + "<edge type=\"build-sniper\" next=\"5\"/>") + "</state>") + "<state name=\"3\" button=\"build-sniper\">") + "<text>We need a sniper tower to protect us from zombies. Click the build sniper button on the left.</text>") + "<edge type=\"start-build-sniper\" next=\"4\"/>") + "<edge type=\"build-sniper\" next=\"5\"/>") + "</state>") + "<state name=\"4\" posX=\"12\" posY=\"8\">") + "<text>Now click to place a sniper tower at the indicated location. You can hold down shift to easily place multiple towers.</text>") + "<edge type=\"build-sniper\" next=\"5\"/>") + "<edge type=\"cancel-build\" next=\"3\"/>") + "</state>") + "<state name=\"5\" posX=\"12\" posY=\"10\">") + "<text>Build one more sniper tower here to support the other one. The sniper tower's range is shown in light blue.</text>") + "<edge type=\"build-sniper\" next=\"6\"/>") + "</state>") + "<state name=\"6\" button=\"build-barricade\">") + "<text>If a zombie gets too close to a sniper, it will be toast. We need barricades to hold off the hordes. Click to build a barricade.</text>") + "<edge type=\"start-build-barricade\" next=\"7\"/>") + "</state>") + "<state name=\"7\" posX=\"10\" posY=\"10\">") + "<text>Place the new barricade a bit in front of the snipers. Make sure at least one side is clear so the barricade can be properly supplied.</text>") + "<edge type=\"build-barricade\" next=\"8\"/>") + "<edge type=\"cancel-build\" next=\"6\"/>") + "</state>") + "<state name=\"8\" posX=\"10\" posY=\"9\">") + "<text>Place another barricade to seal off the road. Otherwise some zombies might bypass your defenses.</text>") + "<edge type=\"build-barricade\" next=\"9\"/>") + "</state>") + "<state name=\"9\">") + "<text>Zombies are coming! Get ready!</text>") + "<action type=\"countdown\" arg=\"10\"/>") + "<edge type=\"countdown-complete\" next=\"10\"/>") + "</state>") + "<state name=\"10\">") + "<text>Hold off this wave of zombies, and victory will be yours!</text>") + "<action type=\"horde\" arg=\"5 5 9\"/>") + "<action type=\"horde\" arg=\"5 5 10\"/>") + "<edge type=\"zombie-clear\" next=\"11\"/>") + "</state>") + "<state name=\"11\">") + "<action type=\"win\">") + "<arg>") + "*Begin Transmission*\n\n") + "Congratulations! This was your first meeting with our awful enemy, but you still have much to learn.\n\n") + "*End Transmission*</arg>") + "</action>") + "</state>") + "</script>") + "</map>"), ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("<map name=\"Boom\" difficulty=\"1\" sizeX=\"20\" sizeY=\"31\" startX=\"10\" startY=\"14\" >" + "<terrain>") + "1151f1ee463c72420c6686469eb083eb.eNoVzksSwjAMA9DId ") + "izn21LacgPuCScnbN5CMxqJOVfhJHbmhZMOHxXhTlDKLv6uIVp ") + "LqnUbzhPwdgksGoq1CbK/VJkXEbdZCusN7v0B8x5QDv45kFuZI ") + "lqa6jAGsnNAjTvEeUDoz1XxDUafaybOlfFa9BtrcN34tIaUvqV ") + "LSkkA/AApEQYw ") + "</terrain>") + "<briefing>") + "*Begin Transmission*\n\n") + "You've done well so far, soldier. But out in the field you will often have to scavenge what you can from the local area. You need to learn about workshops and resources.\n\n") + "*End Transmission* ") + "</briefing>") + "<script>") + "<state name=\"start\">") + "<text>Most maps are bigger than your flash window. Scroll by dragging the map or using the arrow keys.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"build-workshop\" next=\"5\" offsetX=\"10\" offsetY = \"9\" ") + "limitX=\"11\" limitY=\"10\"/>") + "<edge type=\"click-next\" next=\"1\"/>") + "</state>") + "<state name=\"1\" button=\"total-resources\">") + "<text>Your unallocated resources are shown at the top. Oh no! Resource levels are extremely low!</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"build-workshop\" next=\"5\" offsetX=\"10\" offsetY = \"9\" ") + "limitX=\"11\" limitY=\"10\"/>") + "<edge type=\"click-next\" next=\"2\"/>") + "</state>") + "<state name=\"2\" posX=\"10\" posY=\"9\">") + "<text>This house has a green arrow which means it is clear of zombies and there are resources inside.</text>") + "<action type=\"move-map\" arg=\"10 9\"/>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"build-workshop\" next=\"5\" offsetX=\"10\" offsetY = \"9\" ") + "limitX=\"11\" limitY=\"10\"/>") + "<edge type=\"click-next\" next=\"3\"/>") + "</state>") + "<state name=\"3\" button=\"build-workshop\">") + "<text>Click on the build workshop button so we can scavenge the valuable resources.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"build-workshop\" next=\"5\" offsetX=\"10\" offsetY = \"9\" ") + "limitX=\"11\" limitY=\"10\"/>") + "<edge type=\"start-build-workshop\" next=\"4\"/>") + "</state>") + "<state name=\"4\" posX=\"10\" posY=\"9\">") + "<text>Click on the entrance to the house to build a workshop there. This workshop will collect the resources in a building over time and return them to the depot.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"build-workshop\" next=\"5\" offsetX=\"10\" offsetY = \"9\" ") + "limitX=\"11\" limitY=\"10\"/>") + "<edge type=\"cancel-build\" next=\"3\"/>") + "</state>") + "<state name=\"5\" posX=\"10\" posY=\"9\">") + "<text>There are a lot of resources there and it will take a long time for one survivor to collect them all. Lets speed things up. Click on the new workshop.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"select-workshop\" next=\"6\"/>") + "</state>") + "<state name=\"6\" button=\"workshop-increase\">") + "<text>Click the plus button to increase the worker quota. New workers will start working here when available and speed up the collection.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"select-nothing\" next=\"5\"/>") + "<edge type=\"click-add-survivors\" next=\"7\" offsetX=\"10\" offsetY=\"9\" limitX=\"11\" limitY=\"10\"/>") + "</state>") + "<state name=\"7\">") + "<text>You can see how many resources are left to extract on the right. Increase the survivor quota to 10, then click next.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"click-next\" next=\"8\"/>") + "</state>") + "<state name=\"8\">") + "<text>There are three kinds of resources: Ammo, Boards, and Survivors.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"click-next\" next=\"9\"/>") + "</state>") + "<state name=\"9\">") + "<text>Ammo is used by snipers to shoot zombies.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"click-next\" next=\"10\"/>") + "</state>") + "<state name=\"10\">") + "<text>Boards are used to build sniper towers and barricades.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"click-next\" next=\"11\"/>") + "</state>") + "<state name=\"11\">") + "<text>Survivors carry resources around and staff buildings.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"click-next\" next=\"12\"/>") + "</state>") + "<state name=\"12\" button=\"total-resources\">") + "<text>When you increase quotas and spend resources, these numbers go down. If they are negative, that means you've allocated more resources than you have.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"click-next\" next=\"13\"/>") + "</state>") + "<state name=\"13\">") + "<text>There are no zombies on this island, and we need to keep it that way by blowing up the bridge which gives them access.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"click-next\" next=\"14\"/>") + "</state>") + "<state name=\"14\" button=\"build-depot\">") + "<text>We need to expand our supply lines to cover the bridge. Click the build depot button.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"start-build-depot\" next=\"15\"/>") + "</state>") + "<state name=\"15\" posX=\"9\" posY=\"19\">") + "<action type=\"move-map\" arg=\"9 19\"/>") + "<text>Click to place the depot as far south as you can.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"cancel-build\" next=\"14\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "</state>") + "<state name=\"16\" posX=\"9\" posY=\"21\">") + "<text>Now build a workshop on the dynamite location to set charges and blow up the bridge.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "</state>") + "<state name=\"17\">") + "<text>Click on the workshop to see the progress it is making.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"select-workshop\" next=\"18\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "</state>") + "<state name=\"18\">") + "<text>Many hands make light work. Increase the number of survivors here as much as you can to speed the work, then click next.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"click-next\" next=\"19\"/>") + "</state>") + "<state name=\"19\">") + "<text>Clearing an island of zombies and blowing the bridges is how you win. Sit back and wait for victory.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "</state>") + "<state name=\"win\">") + "<action type=\"win\">") + "<arg>") + "*Begin Transmission*\n\n") + "Well done on that demolition work, soldier. Destroying bridges will be crucial to preventing new zombies from entering an area. The last thing you need to learn is how to manage your snipers effectively in the field.\n\n") + "*End Transmission* ") + "</arg>") + "</action>") + "</state>") + "</script>") + "</map>"), ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("<map name=\"Bang\" difficulty=\"0\" sizeX=\"25\" sizeY=\"30\" startX=\"12\" startY=\"9\" >" + "<terrain>") + "8d3979175577820f4d5fe645fca194c1.eNody9ESgyAMRFEX2 ") + "MSAELTV/q72ywt9OXNndlb58ZBypYFZItogFEaWkmMUqwjCmiB ") + "eEaWPUrZoerRgSjKpDyQTFBohbZbPskuRvIOpH/Prg32f6xmg/ ") + "Zq0we4IyeZqB5KsDdT1hXRvhtsKnty5LE/5W/+26Xc7w7L4G8A ") + "PlKcJBA ") + "</terrain>") + "<briefing>") + "*Begin Transmission*\n\n") + "We don't have much time left. Outbreaks have been reported on every major continent. I'll show you how to use your snipers well, otherwise you will be slaughtered out there.\n\n") + "*End Transmission* ") + "</briefing>") + "<script>") + "<state name=\"start\" posX=\"12\" posY=\"9\">") + "<text>There are zombies to the north, and we don't have any ammo!</text>") + "<next/>") + "<edge type=\"click-next\" next=\"1\"/>") + "</state>") + "<state name=\"1\">") + "<text>Luckily, they haven't heard us yet. They will stay where they are until they hear a noise.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"2\"/>") + "</state>") + "<state name=\"2\" posX=\"11\" posY=\"16\">") + "<text>Before we do anything else, we need to restock on ammo. There is some rubble left on the street. Build a workshop to search for resources.</text>") + "<action type=\"move-map\" arg=\"11 16\" />") + "<edge type=\"build-workshop\" next=\"3\"/>") + "</state>") + "<state name=\"3\">") + "<text>In addition to finding resources, the rubble must be cleared away before you can build other towers there.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"4\"/>") + "</state>") + "<state name=\"4\">") + "<text>Build workshops on the other rubble tiles and add survivors until you have a good stock of ammo. Then click next.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"5\"/>") + "</state>") + "<state name=\"5\" posX=\"12\" posY=\"16\">") + "<text>Now build a sniper to take out these three zombies. Don't worry if the zombies aren't in range yet, we'll take care of that.</text>") + "<edge type=\"build-sniper\" next=\"6\"/>") + "</state>") + "<state name=\"6\">") + "<text>If we make some noise, we can pull the zombies within range. And shooting off a round should do that. Select your sniper.</text>") + "<edge type=\"select-sniper\" next=\"7\"/>") + "</state>") + "<state name=\"7\" button=\"sniper-shoot\">") + "<text>Now tell your sniper to shoot into the air. That will attract all nearby zombies.</text>") + "<edge type=\"select-nothing\" next=\"6\"/>") + "<edge type=\"click-shoot\" next=\"8\"/>") + "</state>") + "<state name=\"8\">") + "<text>Your sniper should make short work of these zombies. You can often draw zombies out of an area to clear it in a controlled manner.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"9\"/>") + "</state>") + "<state name=\"9\" button=\"sniper-upgrade\">") + "<text>Your snipers are versatile and you can improve them in several ways. First, you can upgrade your sniper to increase its range.</text>") + "<next/>") + "<edge type=\"click-upgrade\" next=\"10\"/>") + "<edge type=\"click-next\" next=\"10\"/>") + "</state>") + "<state name=\"10\" button=\"sniper-increase-survivors\">") + "<text>Second, you can add extra survivors as spotters. Each additional survivor increases accuracy.</text>") + "<next/>") + "<edge type=\"click-add-survivors\" next=\"11\"/>") + "<edge type=\"click-next\" next=\"11\"/>") + "</state>") + "<state name=\"11\" button=\"sniper-increase-ammo\">") + "<text>Third, you can increase the amount of ammo. More ammo means that the sniper tower can shoot longer between resupplies</text>") + "<next/>") + "<edge type=\"click-add-ammo\" next=\"12\"/>") + "<edge type=\"click-next\" next=\"12\"/>") + "</state>") + "<state name=\"12\">") + "<text>Finally, be sure to use barricades to protect your vulnerable snipers. A sniper is much more accurate when attacking zombies delayed by a barricade.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"13\"/>") + "</state>") + "<state name=\"13\">") + "<text>Set up a defensive perimeter here, upgrading your towers as necessary. Click next when you are ready for the final zombie attack.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"14\"/>") + "</state>") + "<state name=\"14\">") + "<text>Make sure you have at least two sniper towers and plenty of ammo. Then click next.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"15\"/>") + "</state>") + "<state name=\"15\">") + "<text>Defeat the zombie swarms!</text>") + "<action type=\"horde\" arg=\"4 12 5\"/>") + "<action type=\"horde\" arg=\"3 5 11\"/>") + "<action type=\"horde\" arg=\"4 19 11\"/>") + "<edge type=\"zombie-clear\" next=\"16\"/>") + "</state>") + "<state name=\"16\">") + "<action type=\"win\">") + "<arg>") + "*Begin Transmission*\n\n") + "For the next part of the course...\n\n") + "One minute...\n\n") + "I've just recieved reports that a zombie horde has overrun the final training facility. This time will be for real. Get ready.\n\n") + "*End Transmission* ") + "</arg>") + "</action>") + "</state>") + "</script>") + "</map>"), (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("<map name=\"Graduation\" difficulty=\"1\" sizeX=\"40\" sizeY=\"40\" startX=\"12\" startY=\"27\" >" + "<terrain>") + "84dc19f602cc8396e8735db89eb5a222.eNodkoGyoyAMRUlCC ") + "IJoa9Gqrdr33mx3P7OzX77XdYY7hxC4MWCqO5t+tWxfxqvpyhb ") + "MVgrtSym8Ik3BCsVXbIKk7LzTV9+oDFmc6msE3rOqhtcKfOaEj ") + "60h4e6UCqEYA1FumfjA9B0Lc9M5Igrv2IMvjtiBr8xxcCwMviF ") + "+c+Il/FqKyd4751R+5mrymJBtv/uidu26WmvUWki0K2Q6FpF3h ") + "kPbETGD4dBeHMzBcMinA9k7w6Gtjp2TdzPBbUIOxXcGt3cnxJE ") + "TfpziiHiGcIEB9VWZ68DMM0xlu4gI20RMcVbkTKyy3lXku59E+ ") + "9mhZd8D8DY5uP2ZZvHzQgW+uVSGx4O5UP8Q9tNgTNNdKA8PD3q ") + "iimUm75vFa7we3rsYRtyJjV8d0iuLbjdUNmzM/roR+3pK2bz4c ") + "TPx6xrEHzcy/9yYwnMnDvtJ285k2+HZDlBoDk/BFlBcSX3aBbG ") + "d6HwJZvHlyeJBlOoFPaXpopyOFhdISxsoz8BcITS2QumIaGSu8 ") + "ZzHRLng6qlvlXJ3xvqolAwkybCn5HTujEgKweCmkLQ8cXpa7lj ") + "gcSbJI1qcKxqWH6ghpxHroaJo7RgCSjb+P3PGmT4i/bO29NkxS ") + "kefy0CfEWO40d/mwa5PCa4fNO0fd7UhUg ") + "</terrain>") + "<briefing>") + "*Begin Transmission*\n\n") + "The training ground has been overrun. You must clear the island of zombies and blow the bridge to prevent others from coming.\n\n") + "*End Transmission* ") + "</briefing>") + "<script>") + "<state name=\"start\">") + "<text>There are zombies in many of the buildings. Yellow, orange, and red triangles show increasing threat levels.</text>") + "<next/>") + "<action type=\"add-state\" arg=\"none\" />") + "<edge type=\"click-next\" next=\"1\" />") + "</state>") + "<state name=\"1\">") + "<text>If the zombies hear a noise, they will come out and attack. Be especially careful when dealing with buildings marked in red.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"2\" />") + "</state>") + "<state name=\"2\" button=\"timer\">") + "<text>The timer counts down till the next zombie wave. You can also click it to pause the game. You can still issue orders while the game is paused.</text>") + "<next/>") + "<action type=\"add-state\" arg=\"countdown\" />") + "<edge type=\"click-next\" next=\"3\" />") + "</state>") + "<state name=\"3\">") + "<text>Clear the island of zombies and blow up the bridge. Good luck!</text>") + "<next/>") + "<edge type=\"click-next\" />") + "</state>") + "<state name=\"none\">") + "<edge type=\"bridge-clear\" next=\"bridge\"/>") + "<edge type=\"zombie-clear\" next=\"zombie\" />") + "</state>") + "<state name=\"bridge\">") + "<edge type=\"zombie-clear\" next=\"bridge-zombie\" />") + "</state>") + "<state name=\"zombie\">") + "<edge type=\"bridge-clear\" next=\"bridge-zombie\" />") + "<edge type=\"zombie-horde-begin\" next=\"none\" />") + "</state>") + "<state name=\"bridge-zombie\">") + "<action type=\"win\">") + "<arg>") + "*Begin Transmission*\n\n") + "The training island is now secured. Now it is time for you to move into the field.\n\n") + "*End Transmission* ") + "</arg>") + "</action>") + "</state>") + "<state name=\"countdown\">") + "<action type=\"countdown\" arg=\"150\" />") + "<edge type=\"countdown-complete\" next=\"horde\" />") + "</state>") + "<state name=\"horde\">") + "<action type=\"horde\" />") + "<edge type=\"zombie-horde-end\" next=\"countdown\" />") + "</state>") + "</script>") + "</map>"), (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("<map name=\"Bridge\" difficulty=\"1\" sizeX=\"60\" sizeY=\"60\" startX=\"26\" startY=\"49\" >" + "<briefing>") + "*Begin Transmission*\n\n") + "Zombies have infiltrated the heart of the city. Your goal is to create a checkpoint on the south bridge.\n\n") + "Enter the area, clear out undead you find there, and make sure nobody enters or leaves the city. We need to quarantine the whole island.\n\n") + "*End Transmission* ") + "</briefing>") + "<terrain>") + "40b96b8ff8119e279e1fb5ff8c004a08.eNpFkguXojoMgJukD ") + "ygIXBEVGUB8jasr4mPm94HbH75hz7kOpwlfEpomKfreKaPXl5T ") + "MYydD7bUThJk/JT0LJWLOSi5DQB1FFk2UWKPNxJA2ijyjEt8Yp ") + "TCAyNcko1CjtKGETaQUxYb3cwYl5TZVRDO2AZs548JIAMRAkTy ") + "WbFdjSHjrtZLUGAIQsgxT1GWUgu4UWnNXyq7PnpJnO4bxwFlpp ") + "5D05qQ0nTR7yTS7qa+zC5FR+4mvvQ65zpYMRN2cMG+5l7Ilbqg ") + "F3KRPrunJ+3A7Z1w8BTDnDylV+ZjApnxKqp6CW9g3HN98j+jBr ") + "tOEpwfJpu0ktTckEk37YORvQajLA6RsvyUcdrzr8CX48ZpP5uO ") + "Tu1ZGLWxk1vEi03UFni736OuyQjDzBRo9P7Ba7MdKKunJtNZal ") + "jVqnVYa9HSvwEwP0pjphdhcSKPjnQQdV6B1/EFo4gUpzCOZ6GU ") + "EiS5jilXp+aBOHkgVeQFIy0kwP3D6+gIgl3vwZVKR1usdU30AY ") + "wOfaBIcfEn21BF56nIDlJcOwAZsEwY8AWk7MMeEW5t+aR6Opuj ") + "J41DRgw/xvhG0+QI06guxXxnsC4NDYfj6+iPT8R8lvhwSnyffZ ") + "z4Nmc8j7Gsfh5p92MeW+qmlYWpH/8JyHiv7wuq+Yt5w9JOjnxz ") + "FPgxwYGHKAs7EBP1HQH3D/uaftQvQ2RBcEgpXsqyZG37vQ3RHf ") + "v9maVmiiXApy3Ii+tVEupp5y3JgOU/AXSborhwrEnRFyjXNaFj ") + "NxnqLOQ3FfKTVEofVkumVF/wHyHG9Vj9Y/ODHG4e85D7dtBJ9W ") + "uOQ1jx+l9ViKGpC8SprEMCNILiqFu6/NQ6LtSbhZg24okGXbIS ") + "bb9DNttzgVgzZTiOXucM+/+Ryjpyk//iFLj+BW57F8HFG5DZbM ") + "ZTteHDdsnVl/5Wv5lVef467cvAKQ9yNdWQdFwzjejVvdL874ex ") + "NuPCGLrvha357f7W6obA251t+NW+vm9451f0n1Rvd/s4X9RAuY ") + "2ke8Mqf/1fyKt74p7yubn+yjlUzqvmN1erW3Fllo2pGs3iyyp9 ") + "/AZagfKk ") + "</terrain>") + "<script>") + "<state name=\"start\">") + "<action type=\"add-state\" arg=\"countdown\" />") + "<edge type=\"bridge-clear\" next=\"bridge\"/>") + "<edge type=\"zombie-clear\" next=\"zombie\" />") + "</state>") + "<state name=\"bridge\">") + "<edge type=\"zombie-clear\" next=\"bridge-zombie\" />") + "</state>") + "<state name=\"zombie\">") + "<edge type=\"bridge-clear\" next=\"bridge-zombie\" />") + "<edge type=\"zombie-horde-begin\" next=\"start\" />") + "</state>") + "<state name=\"bridge-zombie\">") + "<action type=\"win\">") + "<arg>") + "*Begin Transmission*\n\n") + "Excellent work, soldier. Other squads are reporting that their bridges are secure as well. We might just contain this.\n\n") + "*End Transmission*</arg>") + "</action>") + "</state>") + "<state name=\"countdown\">") + "<action type=\"countdown\" arg=\"150\" />") + "<edge type=\"countdown-complete\" next=\"horde\" />") + "</state>") + "<state name=\"horde\">") + "<action type=\"horde\" />") + "<edge type=\"zombie-horde-end\" next=\"countdown\" />") + "</state>") + "</script>") + "</map>"), ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("<map name=\"Survival\" difficulty=\"2\" sizeX=\"90\" sizeY=\"70\" startX=\"6\" startY=\"39\" >" + "<briefing>") + "*Begin Transmission*\n\n") + "Make your way inland, clearing the area of zombies and collecting survivors. We will contact you with...\n\n") + "*Gunshots*\n\n") + "*Moans*\n\n") + "My God! They are overrunning the command center! Fall back!\n\n") + "*End Transmission*\n\n") + "It looks like you are on your own. If you can establish a beach head here, you may be able to secure the entire island and destroy the bridges connecting it to the mainland. You could create a sanctuary here. ") + "</briefing>") + "<terrain>") + "61d9972b068f4bcbfb4fbba385ae0dc3.eNpNlg1b2swShvc7g ") + "ZCAAgomYAIhCEgQDGj9OMVaa8UWbfv+IJI3P/w867kajpd38mR ") + "2dmcyO1k15M2VoYzrJVNGwoSSCWOGXEE9L02u3hZKGG8rxdSXl ") + "WRUtixu1Vqcs5rDlVWzOKd1q8atPhTrO7zM+pIrGlnw68OPdlu ") + "SU8uSnJkfAy2Tl2MMmCx2uVGOe5zbdN6rcOsekt0P4BRPqnicY ") + "PZ60uTWBIpNYi7Kk4RjOEwMxHd5zappn3Bi8HIbIzZrx0iqrY3 ") + "1iYJPDFWZC14uzfVwaYyIpSGCUzkU3Jrr9BOrhGA6/XuHN+gam ") + "ZdfLZ3gq8Mt67UNn20bEV89rsqvPZ3BugcnE052uYaV1bDrW5Y ") + "/qBrKVEHLE8LtcMZY0PS5bAaMUuo3YG10BKXMb2GNkz4nhPSaA ") + "y6aEdfWrifFqQdJg8jjIuoKhnqPAk7leUBx6VIuRh6XYtqlQox ") + "6ksvQpVL0PTwOPMrE4BR+gy4uXVdRdjJirHwyZIyXPZc5SrQGg ") + "tF6C+/rtRiXA9fAsi7jvOULpqTbQwQPk2TdZyVZx+Ky4ZpU1Ee ") + "SidaQidCLlQoWeDXOwzA21OCSIEvFejFT1EPNrV7COPUSrSaMn ") + "9VjxVszwplhB3XsxNECr03k8Rwr1OGlejXs3EGilxSlxBCiMhR ") + "lUbvq0GiGLb+YEcZJKVpAJ3NCtF5Cr2b0Q88w+2JFkIUZLaCTp ") + "aCMmNESermEHXo94+IB6yBE9Aj9OBeE8kr0Dfr7XOdj9jbQmwv ") + "tP3ibcf4+Myglpvgzw5xrxPs0x4YSO7rGup8QjwiT3cNu3S84o ") + "/GiyqwJlLiNmRDryyqVLzMq5Do+pOJLYuOylFT8nDEhf8cY+BM ") + "zKm4T7Nz0yqEiTlD6GAOBnHBlTIkSgkvUi0lzTA0px5z2Zccwy ") + "h0iMFTpCENh/y2uhHQtFsqqlMbBx7uE5aqSdh210n3esFgkj7D ") + "O8cdgZEKXj1ELaAu6ckS0Fs4RbDUYrFoD3iXHQJaOwEXykprUq ") + "kIlDVUSSUcxcVPjh2J+WuI8coRpiolzyMSkgaTHDi2L6EiwsIG ") + "MGofoDm6HriPl6YFucxV261IGx0iOqch3OOtVdWI2bzSkUMxro ") + "lvdOk4Lq11HRm2HSdaGUbpNymXDQRXriBH5B5wF/3th4dc49a8 ") + "jIW5GknMSXEKuzvRYMIvQQyO99/4Y1vHwo/1GgwaVVxFe7i5Ck ") + "4/GdSpj/bjQlxEu4Xpgyocz9VGbJ1RfrHGRj2NGw/eulO+neiE ") + "Vvvel+iesCiFV+H2g1Iv+xIgttiODiXmDW2LrMVu8ezg8122L+ ") + "2tHiMcqR5MGT5DfDnRfBes6rA3UhPhPkN/qyBjdc2hR+RXtIb/ ") + "WqeIvDk5l8VLXHXYsmHg6Vqz/3OH8WZ8VrP8A+dhFa0v25DHF1 ") + "75kNn/Gt22LjT4knnG8yK8dtNraQx3XUOwep7K/kJa6MwihLFh ") + "LUz0b+vTqbbAhr+WPMm6lYb5VtPS3Djfeq9hX5v+G/H2g+yfYH ") + "hl8+9FicmvjWPnloGu3TYOy7xKbfi6VOjernAszjKAjQ1CUj/u ") + "IroITqXjX0JP5SUkxe9CQUhwriSTssCINWVG6qqa0JFWyUsb6d ") + "a0aJclkW6sTE+fdPb5Ncae/pDUOIfXlus7UwxXlxsNNwzDvrmS ") + "ZmLkyyM40eGoaOJZzwyR5A7SAKpGsX0ISVP/uPpd4+rlEtZNFs ") + "muL6MMBA9lGS65l+gop858WyWWFZH6lmBxWeBpWECEbF8bsdi8 ") + "3lWKNHxW9hmGT3cLm6cJGxGxj70NAymxbGPK5Q9Klg3LkK4fkN ") + "+DWIdmrUzj8cFj2Uz+Kj8dJleQxuAAJuAZ3VbJr12jarmEf85s ") + "azT7X/uaW3xzAAdQPSTY4LMydOobAHdiAywbN4ybN5022WzRZu ") + "mhSPbkJjybJ7pvFxA2c6keYAF5A9ZjkERiCMzAC5yAGt+ARfD8 ") + "m6XFL1++8VRQ1brE0bukoFy2SLlq6BjctxGvRfI37E3gGG4wGb ") + "XRletvWPndttlu3Wbpu69p+bxeZvbdZVjspNuVgLw/3cljIfH6 ") + "CtwA34A5Il+QVl+aOS7KqW8yoFzI/csnut8vT365uJOXRvOShA ") + "h7ZHXgiPfB0D45gmYA5uAVr8AC+gEewxaxfuI87NF91EB33dYf ") + "sfnR45nSLqF636NBOIfNRl+TTLslm3f1bwHQH0/3etIZpfIo0T ") + "mk+xX0Bbk9Zvj0l6dBHJfORj1GwAtfg1ie7WsDTGv67IdkoKAJ ") + "OA0QAC5AEJL3SDvknPN2Bt4BklV4Rd9RDXDDpIS7ucY/tPvVY+ ") + "qmH8zG73Ts+9Fj29f/m9dEyfbK76PP0oo9jInvsF22ygXEDI8l ") + "Ow78fReaH+5KECBrSfIL7FMQhyVZhUccvhcxbA5K3wQlwB6jro ") + "CjxYVR4nUQ0dyOS30csf4tIpoaMlEpl3WvWsPCqDLHekOVt3E+ ") + "GJLPPqP6rhJ+8eoYh0AadM5L956xIxhrtkxnBA3igM8LLjYpkg ") + "r3Xb4w6Y5q3xvAGHuiM8f7jfS1h+gbewC/wz5hm5UkxbE9Ydlg ") + "87poTlgJEOSmMmbt3v4T7aj9yW8j08wR7sHvB/Bc9P32f4O9/X ") + "jlH/5+T3eCcp4NzvUuz8yLYEsblh9Ge/i1PFkyLYGdTlt+A5yl ") + "LWzF6JL+LSfoW6yo6M7KbzlgK8FGtZzhEwBb8AZULmi/m6FvwZ ") + "06y0qIIerCg6cFCd+nPBT6FS3x1YAPKCSYm+L4TnIRJkUUM8xx ") + "cgitwA74mdPec0PQ50Qv9gGULSkt8P0tdhtGSp6OlzvNxifKD0 ") + "ork1ors7BVLAd7FWZG0u9I+pSsEBrUrmh/j7oIO8EEfDGCPcD8 ") + "DEzAFCbi9Yv9Wemr4rxqWJ7hYI33Rj/aZvkz/C6qQhVY ") + "</terrain>") + "<script>") + "<state name=\"start\">") + "<action type=\"add-state\" arg=\"countdown\" />") + "<edge type=\"bridge-clear\" next=\"bridge\"/>") + "<edge type=\"zombie-clear\" next=\"zombie\" />") + "</state>") + "<state name=\"bridge\">") + "<edge type=\"zombie-clear\" next=\"bridge-zombie\" />") + "</state>") + "<state name=\"zombie\">") + "<edge type=\"bridge-clear\" next=\"bridge-zombie\" />") + "<edge type=\"zombie-horde-begin\" next=\"start\" />") + "</state>") + "<state name=\"bridge-zombie\">") + "<action type=\"win\">") + "<arg>") + "The old world is gone, lost to this grim tide. But your sanctuary contains the hope of new life. Perhaps humankind will survive.\n\n") + "For more challenges, try playing a random map or creating your own levels! ") + "</arg>") + "</action>") + "</state>") + "<state name=\"countdown\">") + "<action type=\"countdown\" arg=\"150\" />") + "<edge type=\"countdown-complete\" next=\"horde\" />") + "</state>") + "<state name=\"horde\">") + "<action type=\"horde\" />") + "<edge type=\"zombie-horde-end\" next=\"countdown\" />") + "</state>") + "</script>") + "</map>"), ((((((((((((((((((((((((((((((((((((((("<map name=\"Hide and Seek\" difficulty=\"2\" sizeX=\"90\" sizeY=\"64\" startX=\"35\" startY=\"35\" >" + "<terrain>") + "41d079c7f0eaa432f235005707feb90f.eNollIt22jgQhq2RR ") + "r6BodxqSgm2IUDC2jGXBJJectgk9NAmTdLuI+nB97fgnM/zazQ ") + "ajUcyLt+9Cc23a6G3N02pDxuf9O8F+/p9KCP9t0/K/W8oIvfvg ") + "hru60Zp98eNp9zdbUOod8yq1z611GGthXrMyVfbTZ3U9YZY8XW ") + "pBDebMuw2paRuW3phdyCliAdtGS6gaHEma+HiEr7iMpbBAUrTI ") + "ZL18BDCeQx9zIQxAivfIqyWsNQiDttIGEkKu5Wvy9UyPII/YZX ") + "hTzXuVrm7Ve7aJdLEl1iyyCUHi5WsUqyqFNW4i3FdFINYhoeqq ") + "AMWkp9JL/BHUnqCR0qGfpWIL5XkIgoE7SJS4a5FJO5aTOE9FN1 ") + "3yKVdB76iF9CkaLBbNhz8vMm6wbxpV1omd5FSd9affI+kuo8qK ") + "fZIk+4xfrBT8hEbeMldh9XXjo196GCuV8n0IZby8ZMN22NPGex ") + "6RDq5i1l+s+7kJlZyF9vgFeTGyqSAvLJSrTtM5wVrXQbVuJ5so ") + "HdWp3es9Bcrkz2z3vt2p+/oaX0WR+369IN1pHN45l6laeKiHRP ") + "GqyesKDiDqquYNSWxK1Vsg5KBy2p42iJxlcpcm2bKpGXSDJmbd ") + "eto+vCIpou2Ri7aGvkkg6iGNxRc80lxFFLqM3NoC0sYN8091ci ") + "Bj307beGpqK3FOOy53LQ9U9xTruS2j/OMOiixhXPyqNUjFuEgo ") + "MAfoGTye9W9HTZpXBu5Xn1ql7ZH5MnazJf1hDPsNT3tNVNSZ1G ") + "pub20jih3cXmCnISoFURBgEedO6WQqrMWpGqYUZyzTLlk9kpbf ") + "FAqrlnpjjKl1GjmkZqkkvVkJEl/HnlSf86k0uNMKD2aKqHG1eP ") + "zVKKvZ6qmPp+FGF7gMcMwiXNWfZswHUKmha1tnLsks/GVKydXl ") + "YMvc8GcVY94GYj5Ed/7Lz7dz7cGy/fTJXzBffSyIy7ss3XwW8Q ") + "ifWkp+ft0KY+QP61M3yH/WsnHbk2kbz2Wf2zvk1+Qz1bK40Arq ") + "X71Fakjep0eR1r9HJ1yjbU6TiqZHWeQc9v84wLfxQ907Yd9E9r ") + "nxMF+Vd2G9SqiYLmqzm1ZouFLNNwTRSFp8jVnvl+evr0t9O50R ") + "Ok6V7y2HVBFzkL+KFnib2cpRJ0OuVDqsBJCPeTCVc85uWlRSr7 ") + "a2PjlRolJmbm6tDXWJ7eJ1l/Pbd7J/oy9f63WdH9GXnA/rSq8n ") + "WoKt5C0zfCBbJPqvyHxMZwTqeLsAx4ZaVXMca9v5zj6/ZSVitg ") + "lg06bNjsm0o5pgjUoPMdc+cKsfMe4kWMCUAfccIzXEKYB224jt ") + "uOYLbjuOuZnD7EfHdMBHCMuFuYI6/Yd8wz4E2KAHmAOvAM9FMY ") + "dOiYEDdAakunAvgI+c4wP6uADGIIMnINLsAQ34CvojBzTBwUow ") + "QZsR8Lcwn4ZkfkO+wo7SBwzT/C+KeLBJBVmBvsGLjKsB52xYwb ") + "gHPQnwlxM0AvQPocfvIHzKeJBAfbgCfRnqBHMZ2QeYAdzx6RzY ") + "a5gb8AXsAePczLZBeoHG3AHvoMn8Ap+/uOYF8A5+gQegC7Qx4L ") + "MI+wL8K6E8a8wV2IMnpbo8VKYxzV6voYPrDY4F3ALvoH7jTBPs ") + "PoafQU10AI9MAAjkIEpKK+F2cJ+AXvwAKIbx3y8EWZ8QyaHXoF ") + "roLeoZytMCNsCfTAEKTgHF2CxJdPcOaYLRjthStjrnfgfv7rhH ") + "g ") + "</terrain>") + "</map>")]; public static var addSupplyTip:String = (((((("<p>" + "<span class=\"title\">") + "<span class=\"hotkey\">A</span>dd Supply Line") + "</span>\n") + "Click here to create a supply line to another structure. The two structures ") + "will send resources to each other as needed. ") + "</p>"); public static var towerSameWarning:String = "Structure Can't Supply Itself "; public static var clickDepot:String = "<p>Click on your depot to select it.</p>"; public static var zombieThreatHigh:String = "High "; public static var waitUploadMap:String = "Uploading Map... "; public static var tutorialText:String = "Tutorial "; public static var editIntersection:String = "Intersection "; public static var rateGood:String = "Good "; public static var gatherResourcesTip:String = (((((("<p>" + "<span class=\"title\">") + "Gather Resources ") + "</span>\n") + "For a short time, gather nearby unallocated resources to this depot. ") + "Click multiple times to increase the range and effect. ") + "</p>"); public static var upgradeMaxTip:String = ((((("<p>" + "<span class=\"title\">") + "Upgrading Complete ") + "</span>\n") + "This structure has been completely upgraded. ") + "</p>"); public static var noFleeTip:String = ((((("<p>" + "<span class=\"title\">") + "Cannot Flee ") + "</span>\n") + "This is your last depot. There can be no further retreat from this structure. ") + "</p>"); public static var salvageProspectsNone:String = "None "; public static var backgroundAddSupplyTip:String = (((((("<p>" + "<span class=\"title\">") + "How To Add ") + "</span>\n") + "Move the mouse to the structure you want to add a supply line to and ") + "click it, or press escape to cancel. ") + "</p>"); public static var accuracyBarTip:String = ((((("<p>" + "<span class=\"title\">Accuracy</span>\n") + "Shows the accuracy of shots fired by this sniper. Extra survivors ") + "act as spotters to increase accuracy. It is much easier to hit ") + "zombies as they are attacking a barricade. ") + "</p>"); public static var noviceText:String = "Novice "; public static var placeSupplyWarning:String = "No Supply Line "; public static var rateHard:String = "Hard "; public static var backgroundRemoveSupplyTip:String = ((((((("<p>" + "<span class=\"title\">") + "How To Remove ") + "</span>\n") + "Move the mouse to the structure that you want to remove a supply line to ") + "and click on it. The blue arrows show current supply lines from this ") + "depot. You may press escape to cancel. ") + "</p>"); public static var workshopEntranceTip:String = (((((((("<p>" + "<span class=\"title\">") + "Click to Salvage ") + "</span>\n") + "You can build a workshop here to salvage all usable ") + "resources in this building. The workshop will automatically close ") + "down and return the survivor when finished. You may press escape to ") + "cancel. ") + "</p>"); public static var workshopBuildingZombiesTip:String = (((((("<p>" + "<span class=\"title\">") + "Zombies Inside ") + "</span>\n") + "You cannot build a workshop at a building with zombies inside. Lure ") + "out and destroy the zombies first. You may press escape to cancel. ") + "</p>"); public static var depotNoBoardTip:String = (((((("<p>" + "<span class=\"title\">") + "Cannot Construct Depot ") + "</span>\n") + "You cannot construct a depot from this structure. There are not enough ") + "boards here to build the depot with. ") + "</p>"); public static var placeBridgeWarning:String = "Bridge Unstable "; public static var upgradeInProgressWarning:String = "Upgrade in Progress "; public static var survivorsLeftTip:String = ((("<p>" + "<span class=\"title\">Survivors Left</span>\n") + "How many survivors will be found before the tower is closed. ") + "</p>"); public static var editHardware:String = "Hardware Store "; public static var playPediaRootSecret:String = "index "; public static var editBridge:String = "Bridge "; public static var editFringe:String = "Office (A) "; public static var workshopDynamiteTip:String = (((((((("<p>" + "<span class=\"title\">") + "Click to Place Charges ") + "</span>\n") + "If you build a workshop here, it will begin placing explosive ") + "charges on this bridge. After this bridge is destroyed, no more ") + "zombies can cross it to enter the island. You may press escape to ") + "cancel. ") + "</p>"); public static var backgroundBarricadeTip:String = ((((((("<p>" + "<span class=\"title\">") + "Click To Build Barricade ") + "</span>\n") + "If you click here, a survivor will be dispatched to this location ") + "with some boards to build a barricade. You may press escape to ") + "cancel. ") + "</p>"); public static var placeBuildingWarning:String = "Building Unsafe "; public static var buildWorkshopTip:String = ((((((((("<p>" + "<span class=\"title\">") + "Construct <span class=\"hotkey\">W</span>orkshop") + "</span>\n") + "<span class=\"cost\">1 Survivor</span>\n") + "Workshops can be built at the entrances of buildings to collect the ") + "resources inside. They can also reclaim resources after a structure has ") + "been destroyed or abandoned. Finally, they can be used to activate ") + "special features on the map such as dynamite. ") + "</p>"); public static var buildingWorkshopTip:String = (((((((("<p>" + "<span class=\"title\">") + "Place Workshop ") + "</span>\n") + "Move the mouse to on the entrance of a building, rubble on the ") + "ground, or a special feature and click to build a workshop there. It ") + "will take some time for a survivor to arrive at your planned ") + "building location. You may press escape to cancel. ") + "</p>"); public static var workshopBackgroundTip:String = (((((((("<p>" + "<span class=\"title\">") + "Nothing Here ") + "</span>\n") + "There is nothing for a workshop to do here. Workshops can only be ") + "placed at the entrance to a building with resources inside, at some ") + "rubble on the street, or at a special feature. You may press escape ") + "to cancel. ") + "</p>"); public static var backgroundBuildBridgeTip:String = ((((("<p>" + "<span class=\"title\">") + "Cannot Build on Bridge ") + "</span>\n") + "It is too dangerous to build on a bridge. You may press escape to cancel. ") + "</p>"); public static var buildDepotTip:String = ((((((("<p>" + "<span class=\"title\">") + "Construct <span class=\"hotkey\">D</span>epot") + "</span>\n") + "<span class=\"cost\">1 Survivor</span>\n") + "Depots store your resources and transfer them through your ") + "supply network as needed. ") + "</p>"); public static var quartermasterText:String = "Quartermaster "; public static var sniperAmmoIncreaseTip:String = (((((("<p>" + "<span class=\"title\">") + "Increase Ammo Quota ") + "</span>\n") + "Storing more ammo allows this sniper to shoot more zombies between ") + "resupplies. ") + "</p>"); public static var buildSniperTip:String = (((((((("<p>" + "<span class=\"title\">") + "Construct <span class=\"hotkey\">S</span>niper") + "</span>\n") + "<span class=\"cost\">1 Survivor</span>\n") + "<span class=\"cost\">20 Boards</span>\n") + "Snipers are your only way to kill zombies. They are inaccurate, but ") + "will kill a zombie in one hit. ") + "</p>"); public static var moveWindowNorth:String = "<p>Move window North.</p>"; public static var buildingStandardText:String = "Office "; public static var editParking:String = "Parking Lot "; public static var pedia:Array = ["index ", (((((((((((((((((((((((((((((((((((("<p><span class=\"title\">Index</span></p>\n" + "<a href=\"event:goal\">Goal</a>") + "\n\n") + "<a href=\"event:timer\">Timer</a>") + "\n\n") + "<a href=\"event:resources\">Resources</a>") + "<li><a href=\"event:ammo\">Ammo</a></li>") + "<li><a href=\"event:boards\">Boards</a></li>") + "<li><a href=\"event:survivors\">Survivors</a></li>") + "\n\n") + "Towers ") + "<li><a href=\"event:sniper\">Sniper</a></li>") + "<li><a href=\"event:workshop\">Workshop</a></li>") + "<li><a href=\"event:depot\">Depot</a></li>") + "<li><a href=\"event:barricade\">Barricade</a></li>") + "\n\n") + "<a href=\"event:buildings\">Buildings</a>\n") + "<a href=\"event:building_types\">Building Types</a>") + "<li><a href=\"event:house\">House</a></li>") + "<li><a href=\"event:office\">Office</a></li>") + "<li><a href=\"event:apartment\">Apartment</a></li>") + "<li><a href=\"event:mall\">Mall</a></li>") + "<li><a href=\"event:police_station\">Police Station</a></li>") + "<li><a href=\"event:hardware_store\">Hardware Store</a></li>") + "<li><a href=\"event:church\">Church</a></li>") + "<li><a href=\"event:hospital\">Hospital</a></li>") + "\n\n") + "<a href=\"event:zombies\">Zombies</a>\n") + "<li><a href=\"event:zombie_hordes\">Zombie Hordes</a></li>") + "<li><a href=\"event:noise\">Noise</a></li>") + "<li><a href=\"event:scent\">Scent</a></li>") + "\n\n") + "<a href=\"event:map_features\">Map Features</a>") + "<li><a href=\"event:charges\">Charges</a></li>") + "<li><a href=\"event:rubble\">Rubble</a></li>") + "\n\n") + "<a href=\"event:map_editor\">Map Editor</a>"), "goal ", (((((((((("<p><span class=\"title\">Goal</span></p>\n" + "<p>") + "Without safe havens, civilization will be destroyed. Your goal is to ") + "secure the city by slowly expanding your perimeter, killing <a ") + "href=\"event:zombies\">zombies</a> and looting <a ") + "href=\"event:resources\">resources</a> as you go, until you reach and ") + "destroy each bridge by setting off the <a ") + "href=\"event:charges\">charges</a> that were airlifted in. Only once ") + "the island is secure can you think about the future-- and whether ") + "you'll live to see it. ") + "</p>"), "timer ", ((((((("<p><span class=\"title\">Timer</span></p>\n" + "<p>") + "The timer is your friend and your worst enemy. It ticks down the ") + "precious seconds until the next <a ") + "href=\"event:zombie_horde\">horde</a> arrives, so keep a close eye on ") + "it. If you can't take the heat, you can pause the game by ") + "clicking on the timer. ") + "</p>"), "resources ", (((((((("<p><span class=\"title\">Resources</span></p>\n" + "<p>") + "You'll need three things for this mission to succeed: <a ") + "href=\"event:boards\">lumber</a>, <a href=\"event:ammo\">ammo</a>, and ") + "fellow <a href=\"event:survivors\">survivors</a>. You'll find these by ") + "looting the city's eerily quiet <a ") + "href=\"event:buildings\">buildings</a>. But plan ahead: some types ") + "contain more of certain resources. ") + "</p>"), "ammo ", (((((((((("<p><span class=\"title\">Ammo</span></p>\n" + "<p>") + "<img src=\"pedia_ammo\">") + "The folks who once lived here had time to stockpile ammunition, but ") + "in the end it didn't save them. Maybe it will save you. Ammo is one ") + "of three <a href=\"event:resources\">resources</a> your team is ") + "searching for in <a href=\"event:buildings\">buildings</a>. Once your ") + "people get it to a supply <a href=\"event:depot\">depot</a>, it can be ") + "distributed to your <a href=\"event:sniper\">snipers</a>. You can bet ") + "your ass they'll need it. ") + "</p>"), "boards ", (((((((((("<p><span class=\"title\">Boards</span></p>\n" + "<p>") + "<img src=\"pedia_boards\">") + "You've ordered your team to strip all spare lumber from any <a ") + "href=\"event:buildings\">buildings</a> they reconnoiter. Once they ") + "haul it back to the nearest <a href=\"event:depot\">depot</a>, it will ") + "fuel your survival: you can order survivors to build <a ") + "href=\"event:sniper\">sniper towers</a> or <a ") + "href=\"event:barricade\">barricades</a>. You can even ") + "upgrade your sniper towers... if there's time. ") + "</p>"), "survivors ", (((((((((((("<p><span class=\"title\">Survivors</span></p>\n" + "<p>") + "<img src=\"pedia_survivors\">") + "Anyone left alive is holed up deep inside one of these <a ") + "href=\"event:buildings\">buildings</a>, scared and hungry. But their ") + "fear has kept them alive, and they'll be eager to join you, once ") + "your scouts find them. You can put them to work ferrying <a ") + "href=\"event:resources\">supplies</a>, scavenging buildings, making <a ") + "href=\"event:barricade\">fortifications</a>, manning <a ") + "href=\"event:sniper\">sniper towers</a>, and even setting <a ") + "href=\"event:charges\">charges</a>. If you survive long enough to ") + "reach them. ") + "</p>"), "sniper ", ((((((((((((((((((("<p><span class=\"title\">Sniper</span></p>\n" + "<p>") + "<img src=\"pedia_sniper\">") + "Anyone who's handy with a rifle gets sent to man these towers, ") + "thrown together from <a href=\"event:boards\">boards</a> and ") + "sweat. Send more <a href=\"event:survivors\">survivors</a> to a tower ") + "and they'll act as spotters, increasing the accuracy of your shots; ") + "and make damn sure your snipers have enough <a ") + "href=\"event:ammo\">ammo</a>. If you have the time ") + "and boards, you can upgrade a sniper tower, building it up higher ") + "to improve your range. ") + "</p>\n") + "<p>") + "Your snipers are good shots, and sharp: they'll obey tactical orders ") + "without question, like firing in the air to attract the <a ") + "href=\"event:zombies\">zombies</a>, or holding fire to avoid a ") + "swarm. But the towers themselves are rickety scrap heaps; one good ") + "swipe from those monsters and they'll collapse. So don't let ") + "them get within swiping distance. ") + "</p>"), "workshop ", ((((((((((((((("<p><span class=\"title\">Workshop</span></p>\n" + "<p>") + "<img src=\"pedia_workshop\">") + "If something needs doing, assign a <a ") + "href=\"event:survivors\">civvie</a> to the job by building a workshop ") + "there: at the entrance to a <a href=\"event:buildings\">building</a> ") + "to loot it, on a piece of <a href=\"event:rubble\">rubble</a> to clear ") + "it, or on the bridge <a href=\"event:charges\">charges</a> to prime ") + "them to blow. Up the quota of survivors at a workshop to get the job done faster. Collected <a ") + "href=\"event:resources\">resources</a> get taken ") + "back to the nearest <a href=\"event:depot\">depot</a>, ready to be ferried wherever they're needed. ") + "</p>\n") + "<p>") + "When the job's done, the workshop automatically closes and the ") + "assigned survivors return to base. ") + "</p>"), "depot ", (((((((((((((((("<p><span class=\"title\">Depot</span></p>\n" + "<p>") + "<img src=\"pedia_depot\">") + "Your command posts and sanctuaries against the <a ") + "href=\"event:zombies\">horde</a>. All the <a ") + "href=\"event:resources\">resources</a> and <a ") + "href=\"event:survivors\">survivors</a> you gather will be staged at ") + "the nearest depot, and you can only build new structures close by ") + "a depot which can keep them supplied. ") + "</p>\n") + "<p>") + "As you start to control more area, you should keep a tight eye on ") + "your supply lines. Each <a href=\"event:sniper\">sniper tower</a> or ") + "<a href=\"event:workshop\">workshop</a> is connected to a depot; add ") + "and remove supply lines to make sure your survivors are being routed ") + "as efficiently as possible. ") + "</p>"), "barricade ", (((((((((((((((((("<p><span class=\"title\">Barricade</span></p>\n" + "<p>") + "<img src=\"pedia_barricade\">") + "Unmanned heaps of <a href=\"event:boards\">boards</a> and other junk that should ") + "hold back the <a href=\"event:zombies\">horde</a>, though not for ") + "long. Each costs 10 boards to build and will stand up to about that ") + "many blows from a zombie before it collapses. You can assign <a ") + "href=\"event:survivors\">survivors</a> to repair them if you act fast, ") + "and increase the board quota to add durability, but you can only put ") + "off the inevitable: those things will break through, sooner or ") + "later. ") + "</p>\n") + "<p>") + "But here's the good news: zombies held up by a barricade are easy ") + "pickings for your <a href=\"event:sniper\">snipers</a>, and the things ") + "are usually too stupid to go around them. Put up a barricade between ") + "your sniper towers and the advancing horde and pick them off like ") + "ducks in a shooting gallery. ") + "</p>"), "buildings ", (((((((((((((((((((("<p><span class=\"title\">Buildings</span></p>\n" + "<p>") + "Whoever once owned them is dead now. Inside are exactly three things ") + "you care about: <a href=\"event:boards\">lumber</a>, <a ") + "href=\"event:ammo\">ammo</a>, and <a ") + "href=\"event:survivors\">survivors</a>. The quicker you can get them ") + "out, the better your chances. But be careful: <a ") + "href=\"event:zombies\">zombies</a> are lurking inside too, and any ") + "loud <a href=\"event:noise\">noise</a> nearby will draw them out into ") + "the street. To feed. ") + "</p>\n") + "<p>") + "Through initial recon runs you know a little about what's inside ") + "each building. A green triangle means a cakewalk: plenty of loot and ") + "no sign of trouble. But yellow, orange, and red triangles point to ") + "increasing levels of bad news inside: zombies, hiding and waiting in ") + "the quiet shadows. ") + "</p>\n") + "<p>") + "See also: <a href=\"event:building_types\">Building Types</a>") + "</p>"), "building_types ", ((((((((((((("<p><span class=\"title\">Building Types</span></p>\n" + "<p>") + "Based on a few scouting runs and detailed intel on the <a ") + "href=\"event:zombies\">zombies</a>, you have a sense of what to expect ") + "inside each type of <a href=\"event:buildings\">building</a>. ") + "</p>\n") + "<li><a href=\"event:house\">House</a></li>") + "<li><a href=\"event:office\">Office</a></li>") + "<li><a href=\"event:apartment\">Apartment</a></li>") + "<li><a href=\"event:mall\">Mall</a></li>") + "<li><a href=\"event:police_station\">Police Station</a></li>") + "<li><a href=\"event:hardware_store\">Hardware Store</a></li>") + "<li><a href=\"event:church\">Church</a></li>") + "<li><a href=\"event:hospital\">Hospital</a></li>"), "house ", ((((((("<p><span class=\"title\">House</span></p>\n" + "<p>") + "<img src=\"pedia_house\">") + "You can't expect to find too many <a ") + "href=\"event:resources\">resources</a> in these yuppie McMansions, but ") + "on the plus side, 2.4 kids can't turn into too many <a ") + "href=\"event:zombies\">zombies</a>. ") + "</p>"), "office ", ((((((("<p><span class=\"title\">Office</span></p>\n" + "<p>") + "<img src=\"pedia_office\">") + "A good source for basic <a href=\"event:resources\">resources</a> in ") + "reasonable quantities, and only a moderate amount of <a ") + "href=\"event:zombies\">zombies</a>. Bet these schmucks wish they ") + "hadn't put in for overtime now. ") + "</p>"), "apartment ", ((((("<p><span class=\"title\">Apartment</span></p>\n" + "<p>") + "<img src=\"pedia_apartment\">") + "<a href=\"event:resources\">Resource</a>-heavy, but swarming with <a ") + "href=\"event:zombies\">former occupants</a>. Watch out. ") + "</p>"), "mall ", (((((("<p><span class=\"title\">Mall</span></p>\n" + "<p>") + "<img src=\"pedia_mall\">") + "The mother lode for <a href=\"event:resources\">resources</a>, but ") + "swarming with <a href=\"event:zombies\">monsters</a>: ain't no free ") + "lunch in this food court. ") + "</p>"), "police_station ", (((((("<p><span class=\"title\">Police Station</span></p>\n" + "<p>") + "<img src=\"pedia_police_station\">") + "<a href=\"event:ammo\">Ammunition</a> by the truckful, but since cops ") + "were usually the first ones infected, they've had plenty of time to ") + "feed and grow strong. Be on your guard. ") + "</p>"), "hardware_store ", (((((("<p><span class=\"title\">Hardware Store</span></p>\n" + "<p>") + "<img src=\"pedia_hardware_store\">") + "Your best source for <a href=\"event:boards\">lumber</a>, but these ") + "seem to attract the <a href=\"event:zombies\">zombies</a>, too. Maybe ") + "it's the smell of sawdust. ") + "</p>"), "church ", ((((((("<p><span class=\"title\">Church</span></p>\n" + "<p>") + "<img src=\"pedia_church\">") + "You can bet your ass a congregation's worth of <a ") + "href=\"event:survivors\">survivors</a> is holed up inside. But the ") + "overgrown graveyard and shadowy halls inside offer far too many ") + "perfect hiding places for <a href=\"event:zombies\">unholy things</a>. ") + "</p>"), "hospital ", (((((("<p><span class=\"title\">Hospital</span></p>\n" + "<p>") + "<img src=\"pedia_hospital\">") + "The sick and weak were the first to be taken, God rest their ") + "souls. There's precious little hope of finding survivors here. What ") + "roams the halls now is beyond your skill to heal. ") + "</p>"), "zombies ", ((((((((((((((((((("<p><span class=\"title\">Zombies</span></p>\n" + "<p>") + "<img src=\"pedia_zombies\">") + "Keep two things in mind and you have a chance to stay alive. First, ") + "their sense of hearing is far more acute than their vision. They're ") + "attracted by <a href=\"event:noise\">noise</a>-- gunfire or ") + "construction-- and will mindlessly move towards it. They can <a ") + "href=\"event:scent\">smell</a> you too, so keep your distance and ") + "stay quiet. ") + "</p>\n") + "<p>") + "Second, it only takes one good shot to the head to drop them. On the ") + "flip side, one bite from those rotten teeth and it's curtains for ") + "you. If you get within hand-to-hand distance, you're as good as ") + "dead. Scratch that. You're worse than dead, because soon you'll be ") + "one of them. ") + "</p>\n") + "<p>") + "See also: <a href=\"event:zombie_hordes\">Zombie Hordes</a>") + "</p>"), "zombie_hordes ", ((((((("<p><span class=\"title\">Zombie Hordes</span></p>\n" + "<p>") + "These <a href=\"event:zombies\">things</a> seem to like to move in ") + "packs, or waves. Every so often a new horde will sweep into town ") + "across a bridge, or swarm out of unexplored buildings angry and ") + "drooling. The hordes only get bigger each time it happens. Better ") + "get to those bridge <a href=\"event:charges\">charges</a> fast. ") + "</p>"), "noise ", ((((((("<p><span class=\"title\">Noise</span></p>\n" + "The <a href=\"event:zombies\">zombies</a> flock to noise like moths to ") + "flame. Loud noises like gunshots bring them from far away, but ") + "construction noise wakes up the ones at a medium distance. Remember ") + "that it's not just the ones in the street you have to worry about; ") + "most of the <a href=\"event:buildings\">buildings</a> are swarming ") + "with them too. ") + "</p>"), "scent ", (((((((("<p><span class=\"title\">Scent</span></p>\n" + "<p>") + "Almost anything you'll do makes <a href=\"event:noise\">noise</a>, ") + "which attracts the <a href=\"event:zombies\">zombies</a>. But those ") + "bastards can smell you, too. Walk past some and they'll follow your ") + "scent trail all the way back to base. Noise seems more important to ") + "them, though; distract them with a loud noise and they'll forget ") + "about the delicious scent of flesh-- for a while. ") + "</p>"), "map_features ", (((((((((((((((((("<p><span class=\"title\">Map Features</span></p>\n" + "<p>") + "Keep an eye on the topography around your <a ") + "href=\"event:depot\">depots</a>. <a ") + "href=\"event:survivors\">Survivors</a> can't move through <a ") + "href=\"event:barricade\">barricades</a> or other structures, so make ") + "sure they have clear paths to work, and run. Mind the urban warfare tradeoff: wide streets make your ") + "structures harder to defend, and narrow streets make them harder to ") + "supply. And keep an eye on where the bridges are, since both the <a ") + "href=\"event:zombie_hordes\">hordes</a> and the <a ") + "href=\"event:charges\">charges</a> are in that direction. ") + "</p>\n") + "<p>") + "<a href=\"event:rubble\">Destroyed structures</a> block construction, ") + "and must be cleared by building a <a ") + "href=\"event:workshop\">workshop</a> on them. Also watch for parks, ") + "whose vegetation provides cover and is hard for <a ") + "href=\"event:sniper\">snipers</a> to shoot through. ") + "</p>"), "charges ", (((("<p><span class=\"title\">Charges</span></p>\n" + "<p>") + "<img src=\"pedia_charges\">") + "Your only prayer of surviving this mission is to get to the charges at each bridge, build <a href=\"event:workshop\">workshops</a> on them, and buy your team enough time to get them ready to blow. ") + "</p>"), "rubble ", (((("<p><span class=\"title\">Rubble</span></p>\n" + "<p>") + "<img src=\"pedia_rubble\">") + "Jetsam left over from the initial attack, or the sorry ruins of your own construction. Either way, it'll have to go if you want to clear a path for <a href=\"event:survivors\">survivors</a> or build new structures. Build a <a href=\"event:workshop\">workshop</a> on a tile of rubble to clear it and recover most of its <a href=\"event:resources\">resources</a>. ") + "</p>"), "map_editor ", (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("<p><span class=\"title\">Map Editor</span></p>\n" + "<p>") + "When editing a map, you can click the question mark icon in the ") + "lower-left to access this help again. ") + "</p>\n") + "<p><span class=\"title\">Boxes</span></p>\n") + "<p>") + "Boxes represent areas or buildings. The outlines of boxes are shown ") + "by thin white lines surrounding them. A box might be a single office ") + "or a street or an area of water. ") + "</p>\n") + "<p>") + "When you create a new map, boxes representing the ocean around an ") + "island are created for you automatically. You can adjust them or ") + "move them aside to create bridges. I recommend that you always make ") + "sure to leave at least the starting amount of water around the edges ") + "so that the status displays on the edges of the screens do not ") + "interfere with the player's visibility. ") + "</p>\n") + "<p><span class=\"title\">Creating a Box</span></p>\n") + "<p>") + "To create a new box, move the mouse to an empty (white) area of the ") + "map. Click and drag. A green rectangle will follow your cursor ") + "showing where the new box will be placed. If the rectangle turns ") + "red, that means the prospective box overlaps an existing box and ") + "will not be created. When you have a size that you want, release the ") + "mouse and a new box will be created. ") + "</p>\n") + "<p><span class=\"title\">Resizing a Box</span></p>\n") + "<p>") + "Existing boxes can be resized by dragging their corners. Move the ") + "mouse so it is inside the box you want to resize near one of the ") + "corners. Click and drag. You can resize the box to any dimension you ") + "want. If it overlaps with another box or is too small for the ") + "current box type, it will turn red. ") + "</p>\n") + "<p><span class=\"title\">Selecting</span></p>\n") + "<p>") + "Select boxes and squares to edit them. A box or square which is ") + "selected has a black outline. Click on an unselected box to select ") + "it. Click within a selected box to select a particular square. ") + "</p>\n") + "<p><span class=\"title\">Editing Boxes</span></p>\n") + "<p>") + "You can edit boxes using the combo-box and buttons on the ") + "left. Click on the box you want to edit. Then click on the combo-box ") + "widget in the upper-left and select what kind of area you want the ") + "box to be. Keep in mind that some box types have a minimum size and ") + "a box must be that size before you can change to those types. ") + "</p>\n") + "<p>") + "All boxes can be deleted using the delete button in the ") + "lower-left. Buildings can have zombies and resources added to ") + "them. Some kinds of boxes, like bridges, have a direction which you ") + "can modify using the rotate and reflect buttons. ") + "</p>\n") + "<p><span class=\"title\">Editing Squares</span></p>\n") + "<p>") + "In addition to editing boxes as a whole, individual squares may be ") + "edited as well. Some buildings allow you to set an entrance anywhere ") + "on the perimiter. On those boxes, select the square where you want ") + "the entrance and click 'Set Entrance' on the left. ") + "</p>\n") + "<p>") + "You can also place zombies, rubble, or towers on any square where ") + "they are normally allowed. You can add obstacles which permanently ") + "block a square. You can edit the resources available at any tower or ") + "rubble location. You can also select towers to change their quotas ") + "or to create and destroy trade links. ") + "</p>\n") + "<p>") + "Finally, you can select a square and remove the obstacle, rubble, or ") + "tower there with the delete button. To remove zombies just click '-' ") + "next to the zombie count. ") + "</p>\n") + "<p><span class=\"title\">Saving, Loading, and Testing</span></p>\n") + "<p>") + "Open the system menu by clicking the system button in the lower-left ") + "corner. From the system menu, you can save, load, and test the ") + "current map. ") + "</p>\n") + "<p>") + "When you click \"Save Map\", the map is encoded into a plain text ") + "format and displayed in the white text box. You can copy and paste ") + "that into a file for later use. ") + "</p>\n") + "<p>") + "To load a map, copy a the text for a map into the text box. Make ") + "sure that the only text in the text box is the map you wish to ") + "load. Then click \"Load Map\" to load that map for editing. ") + "</p>\n") + "<p>") + "You can also test a map by clicking \"Test Map\". When you do, you ") + "will begin playing the current map. If you win or lose, you will be ") + "returned to the map editor. You can also end the test by opening the ") + "system menu and clicking \"Edit Map\". ") + "</p>")]; public static var editHospital:String = "Hospital "; public static var ammoNoDecreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Cannot Decrease Ammo Quota ") + "</span>\n") + "The ammo quota is now zero. You cannot further decrease the quota. ") + "</p>"); public static var toolTipStyleSheet:String = (((((((((((((((((((("p { " + "font-size: 14; ") + "color: #333333 ") + "} ") + ".title { ") + "font-size: 16; ") + "font-weight: bold; ") + "color: #000000 ") + "} ") + ".hotkey { ") + "color: #0000ff ") + "} ") + ".status { ") + "color: #008888 ") + "} ") + ".survivor { ") + "color: #008800 ") + "} ") + ".cost { ") + "color: #ff0000 ") + "} "); public static var toggleTipTip:String = ((((("<p>" + "<span class=\"title\">") + "Toggle Tooltips <span class=\"hotkey\">[?]</span>") + "</span>\n") + "Click here to turn off tool tips like this one. ") + "</p>"); public static var depotAmmoIncreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Increase Ammo Quota ") + "</span>\n") + "More ammo will be stored here to resupply nearby snipers. ") + "</p>"); public static var hoverSniperHoldFireTip:String = (((((("<p>" + "<span class=\"title\">") + "Sniper Tower Will Not Fire ") + "</span>\n") + "You have ordered this sniper tower to hold fire. It will not shoot until ") + "you change its orders. ") + "</p>"); public static var disableFireTip:String = (((((("<p>" + "<span class=\"title\">") + "Forbid Sniper from <span class=\"hotkey\">F</span>iring") + "</span>\n") + "This sniper's current orders are to shoot any zombies within ") + "range. Click this button to prevent the sniper from firing. ") + "</p>"); public static var expertText:String = "Expert "; public static var backgroundBuildRubbleTip:String = ((((((("<p>" + "<span class=\"title\">") + "Rubble Here ") + "</span>\n") + "You cannot build here because there is rubble blocking this ") + "area. You can build a workshop here to clear the rubble and salvage ") + "the resources in this square. You may press escape to cancel. ") + "</p>"); public static var editPlant:String = "Office (B) "; public static var westLabel:String = "West "; public static var sniperAmmoDecreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Decrease Ammo Quota ") + "</span>\n") + "Storing less ammo makes this sniper more reliant on its supplier. ") + "</p>"); public static var workshopBuildingEmptyTip:String = (((((("<p>" + "<span class=\"title\">") + "No Resources Left ") + "</span>\n") + "This building has already been stripped of all usable resources. You ") + "may press escape to cancel. ") + "</p>"); public static var waitLoadGame:String = "Loading... "; public static var noSurvivorsWarning:String = "No Survivors "; public static var editShallowWater:String = "Shallow Water "; public static var backgroundBuildZombieTip:String = (((((("<p>" + "<span class=\"title\">") + "Zombies Here ") + "</span>\n") + "There are zombies here. Structures cannot be built where there are ") + "zombies. You may press escape to cancel. ") + "</p>"); public static var depotBoardsIncreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Increase Board Quota ") + "</span>\n") + "More boards will be kept on hand to build or upgrade towers. ") + "</p>"); public static var depotAmmoDecreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Decrease Ammo Quota ") + "</span>\n") + "Less ammo will be kept for resupplying nearby snipers. ") + "</p>"); public static var sniperNoSurvivorTip:String = (((((("<p>" + "<span class=\"title\">") + "Cannot Construct Sniper ") + "</span>\n") + "You cannot construct a sniper tower from this depot. There are no ") + "survivors here to build it. ") + "</p>"); public static var planCancelTip:String = (((((("<p>" + "<span class=\"title\">") + "Cancel Construction <span class=\"hotkey\">[Del]</span>") + "</span>\n") + "Click here to cancel the planned structure. The survivor sent to build it ") + "will return to the depot which sent it. ") + "</p>"); public static var hoverRubbleTip:String = (((((("<p>" + "<span class=\"title\">") + "Rubble ") + "</span>\n") + "Some rubble blocks the street. You can only build a workshop here ") + "to clear away the rubble and recover the resources in the rubble. ") + "</p>"); public static var supplyNotExistsWarning:String = "No Supply Line "; public static var workshopFeatureTip:String = (((((("<p>" + "<span class=\"title\">") + "Click to Activate ") + "</span>\n") + "If you build a workshop it will begin activating the special feature ") + "here. The effect depends on the feature. You may press escape to cancel. ") + "</p>"); public static var editStreet:String = "Street "; public static var survivorsLabel:String = "Survivors "; public static var hoverWorkshopTip:String = (((((("<p>" + "<span class=\"title\">") + "Workshop ") + "</span>\n") + "Workshops are your industrial base. They salvage resources from ") + "buildings and rubble to allow the fight to continue. ") + "</p>"); public static var hoverZombieTip:String = (((((((("<p>" + "<span class=\"title\">") + "Zombie ") + "</span>\n") + "This is a zombie. They stay where they are unless they hear a ") + "noise. When they hear sounds, they will pursue them and attack ") + "anything in the way. Survivors, buildings, and especially gunfire ") + "attract zombies. ") + "</p>"); public static var mainLoseText:String = ((((((((((("The last board shatters and the monsters surge forward, the " + "bloodcurdling screams of your dying companions mingling with the ") + "crunching of bone and snarls of inhuman throats, a wall of tattered ") + "clothes and festering flesh and teeth stained lurid red advancing ") + "toward you. And as that last board shatters your hope goes with it, ") + "and you know you've failed. The island has fallen. Another sliver of ") + "humanity corrupted and destroyed.\n\n") + "Screaming in rage, you draw your last weapon, an eight-inch hunting ") + "knife, and charge straight into the advancing horde, stabbing and ") + "slashing even as claws rip your flesh and teeth begin shattering your ") + "bones. Let no man say Auriga Squad fell without a fight, if there be ") + "men left to say anything at all... "); public static var depotBoardsDecreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Decrease Board Quota ") + "</span>\n") + "Fewer boards will be kept here for building or upgrading. ") + "</p>"); public static var workshopRubbleTip:String = (((((("<p>" + "<span class=\"title\">") + "Click to Reclaim ") + "</span>\n") + "Build a workshop here to clear the rubble and reclaim all of ") + "the resource in this square. You may press escape to cancel. ") + "</p>"); public static var pauseTip:String = ((((("<p>" + "<span class=\"title\">") + "Pause Game <span class=\"hotkey\">[Space]</span>") + "</span>\n") + "Click to pause the game. You can still select structures and issue orders while paused. ") + "</p>"); public static var towerRemoveSupplyTip:String = ((((((("<p>" + "<span class=\"title\">") + "Remove Supply Line ") + "</span>\n") + "If you click here, the supply line to this structure from the source ") + "depot will be removed. They will no longer send survivors with ") + "supplies to one another. You may press escape to cancel. ") + "</p>"); public static var wasteShotTip:String = (((((("<p>" + "<span class=\"title\">") + "Shoot Into <span class=\"hotkey\">A</span>ir") + "</span>\n") + "Zombies are attracted to sound. Firing a round into the air can ") + "serve as a lure for nearby zombies. ") + "</p>"); public static var nameConstraint:String = "A-Za-z0-9 ' "; public static var sniperFoodIncreaseTip:String = (((((((("<p>" + "<span class=\"title\">") + "Increase Food Quota ") + "</span>\n") + "Food increases the accuracy of your snipers. If food is available ") + "when they fire at a zombie, they will consume some of the food and ") + "are 50% more likely to hit. If you click here, more food will be ") + "moved here. ") + "</p>"); public static var buildingBarricadeTip:String = (((((((("<p>" + "<span class=\"title\">") + "Place Barricade ") + "</span>\n") + "Move the mouse to an open square and click to build a barricade ") + "there. It will take some time for a survivor to bring the ") + "construction materials to your planned building location. You may ") + "press escape to cancel. ") + "</p>"); public static var fleeTip:String = (((((("<p>" + "<span class=\"title\">") + "Flee <span class=\"hotkey\">[Del]</span>") + "</span>\n") + "Abandon this structure and flee for safety, leaving behind any ") + "resources. They may be recovered later with a workshop. ") + "</p>"); public static var moveWindowEast:String = "<p>Move window East.</p>"; public static var mainNameDefaultInputText:String = "Anytown "; public static var leftToExtractTip:String = (((("<p>" + "<span class=\"title\">Left to Extract</span>") + "How many resources are left in this area for your survivors to ") + "recover. ") + "</p>"); public static var foodNoDecreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Cannot Decrease Food Quota ") + "</span>\n") + "The food quota is now zero. You cannot further decrease the quota. ") + "</p>"); public static var rateOk:String = "Ok "; public static var depotFoodIncreaseTip:String = ((((((("<p>" + "<span class=\"title\">") + "Increase Food Quota ") + "</span>\n") + "Food can be used here to increase the speed of your survivors. It ") + "can also be used by sniper towers. A depot will reserve all food in ") + "its quota for local use and will not transfer it to other depots. ") + "</p>"); public static var ammoTip:String = (((("<p>" + "<span class=\"title\">Ammo</span>\n") + "How much ammo is here right now. Your snipers use ammo to shoot ") + "zombies. ") + "</p>"); public static var editUnknown:String = "Undefined "; public static var sniperFoodDecreaseTip:String = ((((((("<p>" + "<span class=\"title\">") + "Decrease Food Quota ") + "</span>\n") + "If you click here, less food will be stored at this sniper ") + "tower. While snipers can still fire without food, they are less ") + "accurate. ") + "</p>"); public static var supplyExistsWarning:String = "Supply Line Already Exists "; public static var survivorsNotInside:String = ("Deserted " + "</p>"); public static var waitGenerateMap:String = "Generating Map... "; public static var waitDownloadMap:String = "Downloading Map... "; public static var buttonStyleSheet:String = (((((".hotkey { " + "color: #dd0000 ") + "} ") + ".status { ") + "color: #0000dd ") + "} "); public static var quotaTip:String = (((("<p>" + "<span class=\"title\">Quota</span>\n") + "If the amount of ammo, boards, or survivors drops below its quota, ") + "your depot will send more as long as there is enough to go around. ") + "</p>"); public static var sniperNoBoardTip:String = (((((("<p>" + "<span class=\"title\">") + "Cannot Construct Sniper ") + "</span>\n") + "You cannot construct a sniper tower from this depot. There are not ") + "enough boards available here to build it. ") + "</p>"); public static var depotFoodDecreaseTip:String = ((((((("<p>" + "<span class=\"title\">") + "Decrease Food Quota ") + "</span>\n") + "If you click here, less food will be reserved for local use. If a ") + "depot lacks food, survivors will move more slowly when transferring ") + "resources. ") + "</p>"); public static var rateBad:String = "Bad "; public static var boardsTip:String = ((((("<p>" + "<span class=\"title\">Boards</span>\n") + "How many boards are here right now. You need boards to build sniper ") + "towers, barricades, and more depots. You can also upgrade your ") + "sniper towers and repair barricades if you have enough boards. ") + "</p>"); public static var playPediaRoot:String = StringTools.trim(playPediaRootSecret); public static var placeBoringWarning:String = ("Nothing to\n" + "Scavenge "); public static var hoverDepotTip:String = (((((("<p>" + "<span class=\"title\">") + "Depot ") + "</span>\n") + "This is a depot. You can use it to build other structures or to store ") + "and distribute supplies. Click to select it. ") + "</p>"); public static var noWasteShotTip:String = ((((("<p>" + "<span class=\"title\">") + "Out of Ammo ") + "</span>\n") + "You cannot shoot into the air becaue this sniper is out of ammo. ") + "</p>"); public static var clickWorkshop:String = "<p>Click on your workshop to select it.</p>"; public static var mainWinText:String = (((((((((((("The bridge falls into the water, sounds of rending metal and echoes " + "of the blast reverberating through the city, fading slowly to a ") + "strange, deep silence.\n\n") + "At first your ragtag team watches numbly, too tired or gripped by ") + "fear to respond, not yet people again, only survivors.\n\n") + "But then voices begin to murmur, to gasp, to cry out. A cheer ") + "ripples through the crowd and finally explodes, elation shattering ") + "through memories of horror and tears washing cheeks stained with blood ") + "and grime. You've done it. The island is secure.\n\n") + "Your lips crack as you smile too. Sure, it's only one victory, and ") + "there's a lot more work ahead. But it's something. You've made a haven ") + "against darkness, a place to start to rebuild. Today you've triumphed ") + "against horror. Against despair. Against the horde. "); public static var moveWindowSouth:String = "<p>Move window South.</p>"; public static var towerAddSupplyTip:String = (((((("<p>" + "<span class=\"title\">") + "Add Supply Line ") + "</span>\n") + "If you click here, a new supply line will be created. You may press ") + "escape to cancel. ") + "</p>"); public static var editHouse:String = "House "; public static var zombieThreatNone:String = "None "; public static var editStreetH:String = "Street (H) "; public static var editMall:String = "Mall "; public static var editStreetV:String = "Street (V) "; public static var hoverSniperTip:String = (((((("<p>" + "<span class=\"title\">") + "Sniper Tower ") + "</span>\n") + "Sniper towers like this one are used to kill zombies. Snipers aren't 100% accurate, but only one successful shot is required to kill each zombie. Click to ") + "select it. ") + "</p>"); public static var cities:Array = ["Tokyo ", "Seoul ", "Mexico City ", "New York City ", "Mumbai ", "Jakarta ", "Sao Paulo ", "Delhi ", "Osaka ", "Kyoto ", "Kobe ", "Shanghai ", "Manila ", "Hong Kong ", "Los Angeles ", "Kolkata ", "Moscow ", "Cairo ", "Buenos Aires ", "Beijing ", "Karachi ", "Chicago ", "Dallas ", "Philadelphia ", "Houston ", "Miami ", "Washington DC ", "Atlanta ", "Boston ", "Detroit ", "San Francisco ", "Phoenix ", "Seattle ", "Minneapolis ", "San Diego ", "St Louis ", "Tampa ", "Baltimore ", "Denver ", "Pittsburgh ", "Portland ", "Cincinnati ", "Cleveland ", "Sacramento ", "Orlando ", "San Antonio ", "Kansas City ", "Las Vegas ", "San Jose ", "Istanbul ", "Paris ", "Madrid ", "Barcelona ", "Manchester ", "Liverpool ", "Milan ", "Berlin ", "Athens ", "Naples ", "Hamburg ", "Frankfurt ", "Kiev ", "Lisbon ", "Budapest ", "Copenhagen ", "Munich ", "Warsaw ", "Bucharest ", "Brussels ", "Vienna ", "Stockholm ", "Lyon ", "Lille ", "Belgrade ", "Minsk ", "Turin ", "Glasgow ", "Donetsk ", "Marseille ", "Kharkiv ", "Prague ", "Amsterdam ", "Antwerp ", "Odessa ", "Hannover ", "Zurich ", "Bordeaux ", "Dresden ", "Birmingham ", "Cologne ", "Katowice ", "Leeds ", "Lagos ", "Kinshasa ", "Khartoum ", "Johannesburg ", "Algiers ", "Abidjan ", "Ibadan ", "Cape Town ", "Alexandria ", "Nairobi ", "Casablanca ", "Mogadishu ", "Dakar ", "Tripoli ", "Rio de Janeiro ", "Bogata ", "Lima ", "Toronto ", "Santiago ", "Caracas ", "Guadalajara ", "Montreal ", "Recife ", "Havana ", "Sydney ", "Melbourne ", "Brisbane ", "Perth ", "Chennai ", "Bengaluru ", "Hyderabad ", "Ahmedabad ", "Pune ", "Kanpur ", "Surat ", "Jaipur ", "Guangzhou ", "Harbin ", "Shenzhen ", "Gonguan ", "Tianjin ", "Wuhan ", "Shenyang ", "Chengdu ", "Zhengzhou ", "Chongqing ", "Singapore "]; public static var buildingHospitalText:String = "Hospital (Zombies) "; public static var survivorsNoDecreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Cannot Decrease Survivor Quota ") + "</span>\n") + "The survivor quota is now zero. You cannot further decrease the quota. ") + "</p>"); public static var replaySpeedBarLabel:String = "Speed "; public static var zombieThreatLow:String = "Low "; public static var setChargesBarTip:String = (((("<p>" + "<span class=\"title\">Set Charges Progress</span>\n") + "Progress towards preparing the explosives to blow the bridge. Your ") + "progress is cumulative even if you have to abandon the workshop. ") + "</p>"); public static var hoverDynamiteTip:String = (((((((("<p>" + "<span class=\"title\">") + "Dynamite ") + "</span>\n") + "If you built a workshop on these explosives, your survivors ") + "will wire them to the bridge and eventually detonate them. If all ") + "bridges are destroyed, no more zombies can invade the ") + "island. ") + "</p>"); public static var tutorial:Array = [(((((("<p>" + "<span class=\"title\">Tutorial</span>\n") + "There's not much time, so let's get you trained ASAP. <a ") + "href=\"event:zombies\">Zombies</a> are everywhere. We need to <a ") + "href=\"event:goal\">clear</a> the island and <a ") + "href=\"event:resources\">resources</a> are limited. ") + "</p>"), (((("<p>" + "<span class=\"title\">Scrolling</span>\n") + "Scout out the area. Scroll the map by moving the mouse outside the ") + "play area or using the arrow keys. ") + "</p>"), "2 ", (((((("<p>" + "<span class=\"title\">Establish Perimeter</span>\n") + "You need a <a href=\"event:sniper\">sniper</a> to defend your <a ") + "href=\"event:depot\">depot</a> from the <a ") + "href=\"event:zombies\">zombies</a>. Click 'Build Sniper,' then click ") + "the map to place your sniper tower. ") + "</p>"), (((("<p>" + "<span class=\"title\">Establish Perimeter</span>\n") + "Good. An idle <a href=\"event:survivors\">survivor</a> has been sent ") + "out with some <a href=\"event:boards\">boards</a> to build the tower. ") + "</p>"), (((("<p>" + "<span class=\"title\">Establish Perimeter</span>\n") + "I'd breathe a lot easier with a second <a href=\"event:sniper\">sniper ") + "tower</a>. Build another one near the first tower. ") + "</p>"), ((((("<p>" + "<span class=\"title\">Establish Perimeter</span>\n") + "Your <a href=\"event:sniper\">snipers</a> don't have <a ") + "href=\"event:ammo\">ammo</a> yet. Wait until both towers are stocked ") + "up. ") + "</p>"), "7 ", ((((((("<p>" + "<span class=\"title\">Lure out Zombies</span>\n") + "Now that we've got some protection, let's give these crack shots ") + "something to shoot at. Order one survivor to shoot into the air to ") + "<a href=\"event:noise\">lure</a> out <a ") + "href=\"event:zombies\">zombies</a> from any nearby <a ") + "href=\"event:buildings\">buildings</a>. ") + "</p>"), (((("<p>" + "<span class=\"title\">Lure out Zombies</span>\n") + "That's the stuff. Your <a href=\"event:sniper\">snipers</a> should ") + "make mincemeat from these <a href=\"event:zombies\">living dead</a>. ") + "</p>"), "10 ", (((((("<p>" + "<span class=\"title\">Strengthen Perimeter</span>\n") + "If the <a href=\"event:zombies\">zombies</a> reach the base of a tower ") + "you can kiss it goodbye. Some <a ") + "href=\"event:barricade\">barricades</a> ought to slow the monsters ") + "down. ") + "</p>"), ((("<p>" + "<span class=\"title\">Strengthen Perimeter</span>\n") + "Build a second <a href=\"event:barricade\">barricade</a> next to the first. ") + "</p>"), ((("<p>" + "<span class=\"title\">Strengthen Perimeter</span>\n") + "Build a third <a href=\"event:barricade\">barricade</a>. ") + "</p>"), (((("<p>" + "<span class=\"title\">Strengthen Perimeter</span>\n") + "A fourth <a href=\"event:barricade\">barricade</a> can block off the ") + "street completely. ") + "</p>"), "15 ", ((((((("<p>" + "<span class=\"title\">Ride Out Attack</span>\n") + "Damn, we're running out of time. The <a ") + "href=\"event:timer\">counter</a> in the upper left is all the time ") + "you've got till the next <a href=\"event:zombie_hordes\">horde</a>") + "swarms over the bridges. Sit tight and hope those <a ") + "href=\"event:sniper\">snipers</a> hold the line. ") + "</p>"), "17 ", (((((("<p>" + "<span class=\"title\">Expand Perimeter</span>\n") + "Close call, but we have to keep moving. Destroy a <a ") + "href=\"event:barricade\">barricade</a> so <a ") + "href=\"event:survivors\">survivors</a> can move through to the other ") + "side. ") + "</p>"), (((("<p>" + "<span class=\"title\">Expand Perimeter</span>\n") + "Wait while a <a href=\"survivor\">survivor</a> dismantles the <a ") + "href=\"event:barricade\">barricade</a>. ") + "</p>"), ((((("<p>" + "<span class=\"title\">Expand Perimeter</span>\n") + "It's an awful long walk from here back to our first <a ") + "href=\"event:depot\">depot</a>. Build another one as a forward supply ") + "center. ") + "</p>"), "21 ", ((((((((("<p>" + "<span class=\"title\">Resupply</span>\n") + "We need to get this <a href=\"event:depot\">depot</a> stocked before ") + "those things come back. Build <a href=\"event:workshop\">workshops</a>") + "at the entrances to nearby <a href=\"event:buildings\">buildings</a>") + "to search for <a href=\"event:ammo\">ammo</a>, <a ") + "href=\"event:boards\">boards</a> to build structures, and <a ") + "href=\"event:survivors\">survivors</a> to man stations and transport ") + "<a href=\"event:resources\">resources</a>. ") + "</p>"), ((("<p>" + "<span class=\"title\">Resupply</span>\n") + "That's a good start. Build another <a href=\"event:workshop\">workshop</a>. ") + "</p>"), ((("<p>" + "<span class=\"title\">Resupply</span>\n") + "Build a third <a href=\"event:workshop\">workshop</a>. ") + "</p>"), (((((((("<p>" + "<span class=\"title\">Clear Island of Zombies</span>\n") + "Good work. Now keep expanding. Build more <a ") + "href=\"event:sniper\">sniper towers</a> to <a ") + "href=\"event:noise\">lure</a> out <a href=\"event:zombies\">zombies</a>") + "and clear the streets. Build <a href=\"event:workshop\">workshops</a>") + "at buildings to send survivors in to bolster your resources. <a ") + "href=\"event:goal\">Clear the island</a>. ") + "</p>"), (((((((("<p>" + "<span class=\"title\">Destroy Bridge</span>\n") + "You've secured the island, but as long as that bridge is up, all ") + "you've built could be overrun by a <a ") + "href=\"event:zombie_hordes\">horde</a> at any moment. Build a <a ") + "href=\"event:workshop\">workshop</a> on the <a ") + "href=\"event:charges\">charge</a> to blow the bridge and make this a ") + "permanent sanctuary. ") + "</p>"), (((("<p>" + "<span class=\"title\">Destroy Bridge</span>\n") + "Wait for the <a href=\"event:survivors\">survivor</a> to build the <a ") + "href=\"event:workshop\">workshop</a>. ") + "</p>"), "28 ", (((((("<p>" + "<span class=\"title\">Destroy Bridge</span>\n") + "You're about to be a hero, but don't get cocky. Increase the quota ") + "at the <a href=\"event:workshop\">workshop</a> to send more people to ") + "get those <a href=\"event:charges\">charges</a> set faster; you've got ") + "plenty of <a href=\"event:survivors\">survivors</a> to spare now. ") + "</p>"), (((("<p>" + "<span class=\"title\">Mission Accomplished</span>\n") + "Congrats, soldier: that's one bridge down. Keep it up and there may ") + "just be hope for humanity yet. ") + "</p>")]; public static var towerAlreadyExistsAddSupplyTip:String = (((((("<p>" + "<span class=\"title\">") + "Supply Line Already Exists ") + "</span>\n") + "You cannot add a supply line here because the source depot already ") + "has a supply line to this structure. You may press escape to cancel. ") + "</p>"); public static var barricadeNoBoardTip:String = (((((("<p>" + "<span class=\"title\">") + "Cannot Construct Barricade ") + "</span>\n") + "You cannot construct a barricade from this depot. There are not enough ") + "boards here to create one. ") + "</p>"); public static var buildBarricadeTip:String = (((((("<p>" + "<span class=\"title\">") + "Construct <span class=\"hotkey\">B</span>arricade") + "</span>\n") + "<span class=\"cost\">10 Boards</span>\n") + "Barricades block off streets and slow zombies down. Each board can withstand one zombie hit. Zombies are easier to kill while attacking a barricade. ") + "</p>"); public static var enableFireTip:String = (((((("<p>" + "<span class=\"title\">") + "Allow Sniper to <span class=\"hotkey\">F</span>ire") + "</span>\n") + "This sniper is currently holding fire. Click this ") + "button to allow the sniper to fire at targets within range. ") + "</p>"); public static var barricadeBoardsIncreaseTip:String = ((((((("<p>" + "<span class=\"title\">") + "Increase Board Quota ") + "</span>\n") + "More boards will hold off zombies for longer. Each zombie attack ") + "destroys one board. When this barricade runs out of boards, it will ") + "be destroyed. ") + "</p>"); public static var backgroundSniperTip:String = (((((("<p>" + "<span class=\"title\">") + "Click To Build Sniper ") + "</span>\n") + "If you click here, a survivor will be dispatched to this location ") + "with some boards to build a sniper tower. You may press escape to cancel. ") + "</p>"); public static var waitSaveGame:String = "Saving... "; public static var barricadeBoardsDecreaseTip:String = ((((((("<p>" + "<span class=\"title\">") + "Decrease Board Quota ") + "</span>\n") + "Fewer boards will make this barricade weaker. Your survivors will ") + "tear down part of the barricade to recover excess boards. Demolish ") + "this barricade by setting the quota to 0. ") + "</p>"); public static var hoverSniperNoSurvivorsTip:String = (((((("<p>" + "<span class=\"title\">") + "Sniper Tower Cannot Fire ") + "</span>\n") + "There are no survivors here to shoot. This sniper tower ") + "is defenseless! ") + "</p>"); public static var noSourceTowerWarning:String = "No Selected Structure "; public static var placeRubbleWarning:String = "Blocked by Rubble "; public static var waitEditMap:String = "Starting Map Editor... "; public static var backgroundBuildFeatureTip:String = ((((((("<p>" + "<span class=\"title\">") + "Special Feature Here ") + "</span>\n") + "There is a special feature here which blocks you from building a ") + "structure. You can build a workshop on this square to use this ") + "feature. You may press escape to cancel. ") + "</p>"); public static var backgroundEmptyEntranceTip:String = ((((((("<p>" + "<span class=\"title\">") + "Building Entrance Here ") + "</span>\n") + "The building entrance here blocks you from constructing a ") + "structure. This building has already been stripped of all useful ") + "resources. You may press escape to cancel. ") + "</p>"); public static var editPolice:String = "Police Station "; public static var conserveFoodTip:String = ((((((("<p>" + "<span class=\"title\">") + "Begin conserving <span class=\"hotkey\">F</span>ood") + "</span>\n") + "This depot is sending out fast survivors which use up food. Click ") + "here to begin conserving food by sending out survivors who move at ") + "half speed. ") + "</p>"); public static var hoverPlanTip:String = (((((("<p>" + "<span class=\"title\">") + "Planned Structure ") + "</span>\n") + "A survivor is on the way here to build a structure. You can select the ") + "plan to cancel it. ") + "</p>"); public static var barricadeNoSurvivorTip:String = (((((("<p>" + "<span class=\"title\">") + "Cannot Construct Barricade ") + "</span>\n") + "You cannot construct a barricade from this depot. There are no ") + "survivors here to carry the boards needed to create the barricade. ") + "</p>"); public static var towerSameTowerAddSupplyTip:String = ((((("<p>" + "<span class=\"title\">") + "Source Depot ") + "</span>\n") + "A structure can't have a supply line to itself. You may press escape to cancel. ") + "</p>"); public static var musicBarLabel:String = "Music Volume "; public static var editPlaza:String = "Plaza "; public static var systemTip:String = ((((("<p>" + "<span class=\"title\">") + "System Menu<span class=\"hotkey\">[Esc]</span>") + "</span>\n") + "Save, set options, restart, or quit. ") + "</p>"); public static var buildingSupermarketText:String = "Supermarket (Food) "; public static var ammoQuotaTip:String = (((("<p>" + "<span class=\"title\">Ammo Quota</span>\n") + "How much ammo you want to keep on hand here. Snipers use ammo to ") + "shoot zombies. ") + "</p>"); public static var pediaStyleSheet:String = (((((((((((((("p { " + "font-size: 18; ") + "color: #dddddd; ") + "} ") + "a { ") + "font-size: 18; ") + "text-decoration: underline; ") + "color: #aaaaff; ") + "} ") + ".title { ") + "font-size: 24; ") + "font-weight: bold; ") + "text-align: center; ") + "color: #ffffff; ") + "} "); public static var backgroundEntranceTip:String = ((((((("<p>" + "<span class=\"title\">") + "Building Entrance Here ") + "</span>\n") + "There is a building entrance here which prevents you from ") + "building. You can build a workshop on this square to harvest the ") + "resources in the building. You may press escape to cancel. ") + "</p>"); public static var clickRestartTutorial:String = "<p>You have done something unexpected. Press escape to go to the system menu and select restart map to replay the tutorial from the beginning.</p>"; public static function levelsEdit(_arg1:String):String{ return ((("Level: " + _arg1) + " ")); } public static function timeLabel(_arg1:String, _arg2:String, _arg3:String):String{ return ((((((("Time: " + _arg1) + ":") + _arg2) + "") + _arg3) + " ")); } public static function zombiesLeft(_arg1:String):String{ return ((("Zombies Left: " + _arg1) + " ")); } public static function bridgesLeft(_arg1:String):String{ return ((("Bridges Left: " + _arg1) + " ")); } public static function survivorsEdit(_arg1:String):String{ return ((("Survivors: " + _arg1) + " ")); } public static function boardsEdit(_arg1:String):String{ return ((("Boards: " + _arg1) + " ")); } public static function ammoEdit(_arg1:String):String{ return ((("Ammo: " + _arg1) + " ")); } public static function buildingText(_arg1:String, _arg2:String, _arg3:String, _arg4:String):String{ return (((((((((((((("<p>" + "") + _arg1) + "\n") + "Zombie Threat: <span class=\"status\">") + _arg2) + "</span>\n") + "Resource Level: <span class=\"status\">") + _arg3) + "</span>\n") + "") + _arg4) + " ") + "</p>")); } public static function upgradeSniperTip(_arg1:String):String{ return ((((((((("<p>" + "<span class=\"title\">") + "<span class=\"hotkey\">U</span>pgrade") + "</span>\n") + "<span class=\"cost\">") + _arg1) + " Boards</span>\n") + "Upgrade this sniper tower to increase its range by 50%. ") + "</p>")); } public static function zombiesEdit(_arg1:String):String{ return ((("Zombies: " + _arg1) + " ")); } public static function backgroundBuildSupplyTip(_arg1:String):String{ return (((((((("<p>" + "<span class=\"title\">") + "Need Supply Line ") + "</span>\n") + "You must build within ") + _arg1) + " squares of an existing depot so it can provide supplies. ") + "</p>")); } } }//package ui
Section 213
//Time (ui.Time) package ui { import flash.*; public class Time { public var seconds:int; public var tens:int; public var minutes:int; public function Time(_arg1:int=0):void{ var _local2:int; super(); if (!Boot.skip_constructor){ _local2 = Math.floor((_arg1 / Option.fps)); this.minutes = Math.floor((_local2 / 60)); _local2 = (_local2 % 60); this.tens = Math.floor((_local2 / 10)); this.seconds = (_local2 % 10); }; } public function toString():String{ return (Text.timeLabel(Std.string(this.minutes), Std.string(this.tens), Std.string(this.seconds))); } } }//package ui
Section 214
//TimerClip (ui.TimerClip) package ui { import flash.display.*; public dynamic class TimerClip extends MovieClip { public var isPause:MovieClip; public var seconds:MovieClip; public var isPlay:MovieClip; public var minutes:MovieClip; public var tens:MovieClip; public function TimerClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); minutes.stop(); tens.stop(); seconds.stop(); } } }//package ui
Section 215
//ToolTip (ui.ToolTip) package ui { import flash.display.*; import flash.events.*; import flash.text.*; import flash.*; public class ToolTip { protected var framesLeft:int; protected var clip:ToolTipClip; protected var shouldShow:Boolean; protected static var margin:int = 40; public function ToolTip(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ var _local3:StyleSheet; super(); if (!Boot.skip_constructor){ this.clip = new ToolTipClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.stage.addEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.clip.mouseEnabled = false; this.clip.mouseChildren = false; this.clip.text.wordWrap = true; this.clip.text.autoSize = TextFieldAutoSize.LEFT; _local3 = new StyleSheet(); _local3.parseCSS(Text.toolTipStyleSheet); this.clip.text.styleSheet = _local3; this.shouldShow = false; this.framesLeft = 0; }; } public function hide():void{ this.shouldShow = false; this.clip.visible = false; } public function cleanup():void{ this.clip.stage.removeEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.clip.parent.removeChild(this.clip); } public function enterFrame():void{ this.framesLeft--; if (this.framesLeft <= 0){ this.refresh(); }; } protected function mouseMove(_arg1:MouseEvent):void{ this.framesLeft = Option.toolTipDelay; } public function refresh():void{ if (((this.shouldShow) && ((this.framesLeft <= 0)))){ this.clip.visible = true; } else { this.clip.visible = false; }; } public function show(_arg1:String):void{ var _local2:LayoutGame; var _local3:Point; this.shouldShow = true; if (_arg1 != null){ _local2 = Game.view.layout; this.clip.text.width = _local2.tipWidth; this.clip.text.htmlText = _arg1; _local3 = new Point(Math.floor(this.clip.stage.mouseX), Math.floor(this.clip.stage.mouseY)); this.clip.x = (_local3.x + margin); if ((this.clip.x + this.clip.text.width) > _local2.screenSize.x){ this.clip.x = ((_local3.x - margin) - this.clip.text.width); }; this.clip.y = (_local3.y + margin); if ((this.clip.y + this.clip.text.height) > _local2.screenSize.y){ this.clip.y = ((_local3.y - margin) - this.clip.text.height); }; this.clip.back.graphics.clear(); this.clip.back.graphics.beginFill(Color.toolTip, Color.textBoxAlpha); this.clip.back.graphics.drawRoundRect(0, 0, this.clip.text.width, this.clip.text.height, 10, 10); this.clip.back.graphics.endFill(); } else { this.shouldShow = false; }; this.refresh(); } } }//package ui
Section 216
//ToolTipClip (ui.ToolTipClip) package ui { import flash.display.*; import flash.text.*; public dynamic class ToolTipClip extends MovieClip { public var text:TextField; public var back:MovieClip; public function ToolTipClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui
Section 217
//TotalResource (ui.TotalResource) package ui { import flash.display.*; import flash.text.*; import flash.*; public class TotalResource { protected var clip:TotalResourceClip; public function TotalResource(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ if (!Boot.skip_constructor){ this.clip = new TotalResourceClip(); _arg1.addChild(this.clip); this.resize(_arg2); if (Game.settings.isEditor()){ this.clip.visible = false; }; }; } public function cleanup():void{ this.clip.parent.removeChild(this.clip); } protected function updateText(_arg1:Resource, _arg2:TextField, _arg3:Array):void{ var _local4:int; _local4 = Lib.resourceToIndex(_arg1); _arg2.text = Std.string(_arg3[_local4]); } public function update(_arg1:Array):void{ this.updateText(Resource.AMMO, this.clip.ammoStock, _arg1); this.updateText(Resource.BOARDS, this.clip.boardsStock, _arg1); this.updateText(Resource.SURVIVORS, this.clip.survivorsStock, _arg1); } public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.totalResourceOffset.x; this.clip.y = _arg1.totalResourceOffset.y; } } }//package ui
Section 218
//TotalResourceClip (ui.TotalResourceClip) package ui { import flash.display.*; import flash.text.*; public dynamic class TotalResourceClip extends MovieClip { public var ammoStockBackground:MovieClip; public var survivorsIcon:MovieClip; public var boardsIcon:MovieClip; public var ammoIcon:MovieClip; public var boardsStock:TextField; public var boardsStockBackground:MovieClip; public var survivorsStock:TextField; public var ammoStock:TextField; public var survivorsStockBackground:MovieClip; } }//package ui
Section 219
//TowerSprite (ui.TowerSprite) package ui { import flash.*; public class TowerSprite { protected var stack:ImageStack; protected var upgradeOffset:int; protected var overlay:VirtualImage; protected var image:VirtualImage; protected var needs:Array; protected var towerType:int; protected static var barricadeCount:int = 3; protected static var towerFrames:Array = [2, 5, 21, 23]; public function TowerSprite(_arg1:Point=null, _arg2:int=0, _arg3:int=0):void{ var _local4:int; var _local5:int; var _local6:int; super(); if (!Boot.skip_constructor){ this.needs = []; _local4 = 0; _local5 = Option.resourceCount; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; this.needs.push(false); }; if (_arg1 != null){ this.stack = new ImageStack(); this.stack.setPixel(new Point(Lib.cellToPixel(_arg1.x), Lib.cellToPixel(_arg1.y))); this.image = new VirtualImage(SpriteDisplay.TOWER_LAYER, new Point(0, 0), Label.tower); this.image.setRotationOffset(_arg3); this.overlay = new VirtualImage(SpriteDisplay.OVERLAY_LAYER, new Point(0, 0), Label.towerNeed); this.stack.addImage(this.image); this.stack.addImage(this.overlay); this.towerType = _arg2; this.upgradeOffset = 0; if (this.towerType == Tower.BARRICADE){ this.upgradeOffset = Lib.rand(barricadeCount); }; this.update(); }; }; } public function update():void{ var _local1:int; _local1 = (towerFrames[this.towerType] + this.upgradeOffset); this.image.setFrame(_local1); this.overlay.setFrame(this.getNeedFrame()); this.stack.update(); } public function changeUpgrade(_arg1:int):void{ this.upgradeOffset = _arg1; this.update(); } protected function getNeedFrame():int{ var _local1:int; var _local2:int; var _local3:int; var _local4:Array; var _local5:Resource; var _local6:int; _local1 = 1; _local2 = 1; _local3 = 0; _local4 = [Resource.AMMO, Resource.BOARDS, Resource.SURVIVORS]; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local6 = Lib.resourceToIndex(_local5); if (this.needs[_local6]){ _local1 = (_local1 + _local2); }; _local2 = (_local2 * 2); }; return (_local1); } public function changeColor(_arg1:ShadowColor):void{ this.image.setOverlayColor(_arg1); } public function upgrade():void{ this.upgradeOffset++; this.update(); } public function addNeed(_arg1:Resource):void{ var _local2:int; _local2 = Lib.resourceToIndex(_arg1); if (this.needs[_local2] == false){ this.needs[_local2] = true; this.update(); }; } public function rotate(_arg1:int):void{ this.image.setRotationOffset(_arg1); } public function goto(_arg1:Point):void{ this.stack.setPixel(_arg1); } public function cleanup():void{ this.stack.cleanup(); } public function changeCanOperate(_arg1:Boolean):void{ this.overlay.changeOperate(_arg1); } public function changeSupplyTarget(_arg1:Boolean):void{ this.overlay.changeSupplyTarget(_arg1); } public function removeNeed(_arg1:Resource):void{ var _local2:int; _local2 = Lib.resourceToIndex(_arg1); if (this.needs[_local2] == true){ this.needs[_local2] = false; this.update(); }; } public function save(){ return ({stack:this.stack.save(), image:this.image.save(), overlay:this.overlay.save(), towerType:this.towerType, upgradeOffset:this.upgradeOffset, needs:this.needs.copy()}); } public static function saveS(_arg1:TowerSprite){ return (_arg1.save()); } public static function load(_arg1):TowerSprite{ var _local2:TowerSprite; var _local3:int; var _local4:int; var _local5:int; _local2 = new TowerSprite(null, 0, 0); _local2.stack = ImageStack.load(_arg1.stack); _local2.image = VirtualImage.load(_arg1.image); _local2.overlay = VirtualImage.load(_arg1.overlay); _local2.stack.addImage(_local2.image); _local2.stack.addImage(_local2.overlay); _local2.towerType = _arg1.towerType; _local2.upgradeOffset = _arg1.upgradeOffset; _local3 = 0; _local4 = Option.resourceCount; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local2.needs[_local5] = _arg1.needs[_local5]; }; _local2.update(); return (_local2); } } }//package ui
Section 220
//TutorialArrowClip (ui.TutorialArrowClip) package ui { import flash.display.*; public dynamic class TutorialArrowClip extends MovieClip { public var tail:MovieClip; } }//package ui
Section 221
//TutorialClip (ui.TutorialClip) package ui { import flash.display.*; import flash.text.*; public dynamic class TutorialClip extends MovieClip { public var arrow:TutorialArrowClip; public var next:MovieClip; public var text:TextField; public var back:MovieClip; public function TutorialClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui
Section 222
//Util (ui.Util) package ui { import flash.display.*; import logic.*; import flash.text.*; public class Util { public static var SIZE_MAX_CHARS:int = 3; public static var NAME_MAX_CHARS:int = 100; public static var difficultyText:Array = [Text.tutorialText, Text.noviceText, Text.veteranText, Text.expertText, Text.quartermasterText]; public static function resizeText(_arg1:TextField, _arg2:Point, _arg3:Point):void{ _arg1.x = _arg2.x; _arg1.y = _arg2.y; _arg1.width = _arg3.x; _arg1.height = _arg3.y; } public static function fleeClick():void{ var _local1:Point; _local1 = Game.select.getSelected(); if (_local1 != null){ Game.script.trigger(Script.CLICK_FLEE, _local1); Game.map.getCell(_local1.x, _local1.y).fleeTower(); Main.sound.play(SoundPlayer.TOWER_ABANDON); Game.update.changeSelect(null); }; } public static function success():void{ Main.sound.play(SoundPlayer.BUTTON_SUCCESS); } public static function createResourceBars(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:Point, _arg4:Point, _arg5:Array, _arg6:Function, _arg7:Function, _arg8:LayoutGame):Array{ var _local9:Array; var _local10:Point; var _local11:int; var _local12:Resource; _local9 = []; _local10 = _arg2.clone(); _local11 = 0; while (_local11 < _arg5.length) { _local12 = _arg5[_local11]; _local11++; _local9.push(new ResourceBar(_arg1, _local12, _local10.x, _local10.y, _arg3.x, _arg6, _arg7, _arg8)); _local10.y = (_local10.y + _arg4.y); }; return (_local9); } public static function showResourceBars(_arg1:Array):void{ var _local2:int; var _local3:ResourceBar; _local2 = 0; while (_local2 < _arg1.length) { _local3 = _arg1[_local2]; _local2++; showOneResourceBar(_local3); }; } public static function failure():void{ Main.sound.play(SoundPlayer.BUTTON_FAILED); } public static function homeInCount(_arg1:int, _arg2:int, _arg3:int, _arg4:int):int{ var _local5:int; var _local6:int; _local5 = angleDistance(_arg3, _arg4); _local6 = Math.floor((_local5 / _arg2)); return (Math.floor(Math.min(_arg1, _local6))); } public static function centerMenu(_arg1:Point, _arg2:Point):Point{ return (new Point(Math.floor(((_arg2.x - _arg1.x) / 2)), Math.floor(((_arg2.y - _arg1.y) / 2)))); } public static function attachButton(_arg1:String):SimpleButton{ var _local2:Class; _local2 = Type.resolveClass(_arg1); return (Type.createInstance(_local2, [])); } public static function noTip():String{ return (null); } public static function createTitleField(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:Point):TextField{ var _local4:TextField; var _local5:TextFormat; _local4 = createTextField(_arg1, _arg2, _arg3); _local5 = createTextFormat(); _local5.color = Color.menuTitle; _local5.size = 24; _local5.align = TextFormatAlign.CENTER; _local4.defaultTextFormat = _local5; return (_local4); } public static function alignBottom(_arg1:DisplayObject, _arg2:Point):void{ _arg1.y = ((_arg2.y - _arg1.height) - 5); } public static function createTextFormat():TextFormat{ var _local1:TextFormat; _local1 = new TextFormat(); _local1.align = TextFormatAlign.LEFT; return (_local1); } public static function towerMenuHotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg2 == Keyboard.deleteCode)) || ((_arg2 == Keyboard.backSpaceCode)))){ fleeClick(); success(); } else { _local3 = false; }; return (_local3); } public static function homeIn(_arg1:int, _arg2:int, _arg3:int, _arg4:int):int{ var _local5:int; var _local6:int; _local5 = _arg3; _local6 = angleDistance(_arg3, _arg4); if (_local6 >= (_arg1 * _arg2)){ if (angleDistance((_arg3 + 1), _arg4) < _local6){ _local5 = (_arg3 + (_arg1 * _arg2)); } else { _local5 = (_arg3 - (_arg1 * _arg2)); }; } else { _local5 = _arg4; }; _local6 = angleDistance(_local5, _arg4); if (_local6 < _arg2){ _local5 = _arg4; }; return (_local5); } public static function alignRight(_arg1:DisplayObject, _arg2:Point):void{ _arg1.x = ((_arg2.x - _arg1.width) - 5); } public static function angleDistance(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; _local3 = ((_arg1 + 360) % 360); _local4 = ((_arg2 + 360) % 360); return (Math.floor(Math.min(Lib.intAbs((_local3 - _local4)), (360 - Lib.intAbs((_local3 - _local4)))))); } public static function setupInputText(_arg1:TextField, _arg2:String=null, _arg3=null):void{ _arg1.selectable = true; _arg1.autoSize = TextFieldAutoSize.NONE; _arg1.type = TextFieldType.INPUT; _arg1.mouseEnabled = true; _arg1.multiline = false; _arg1.wordWrap = false; _arg1.alwaysShowSelection = true; if (_arg2 != null){ _arg1.restrict = _arg2; }; if (_arg3 != null){ _arg1.maxChars = _arg3; }; } public static function scaleToFit(_arg1:DisplayObject, _arg2:Point):void{ var _local3:Number; var _local4:Number; _local3 = (_arg2.x / 640); _local4 = (_arg2.y / 480); if (_local3 >= _local4){ _arg1.scaleX = _local4; _arg1.scaleY = _local4; } else { _arg1.scaleX = _local3; _arg1.scaleY = _local3; }; } public static function centerHorizontally(_arg1:DisplayObject, _arg2:Point):void{ _arg1.x = ((_arg2.x - _arg1.width) / 2); } public static function alignLabel(_arg1:DisplayObject, _arg2:TextField):void{ _arg2.x = (_arg1.x + 34.6); _arg2.y = (_arg1.y + 6.7); } public static function createTextField(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:Point):TextField{ var _local4:TextField; _local4 = new TextField(); _arg1.addChild(_local4); resizeText(_local4, _arg2, _arg3); _local4.htmlText = ""; _local4.type = TextFieldType.DYNAMIC; _local4.selectable = false; _local4.wordWrap = true; _local4.autoSize = TextFieldAutoSize.LEFT; _local4.embedFonts = true; _local4.mouseEnabled = false; _local4.antiAliasType = AntiAliasType.ADVANCED; _local4.defaultTextFormat = createTextFormat(); return (_local4); } public static function minSize(_arg1:Point):Point{ return (new Point(Math.floor(Math.min(_arg1.x, ((_arg1.y * 4) / 3))), Math.floor(Math.min(((_arg1.x * 3) / 4), _arg1.y)))); } public static function drawBase(_arg1:Graphics, _arg2:Point, _arg3:Point, _arg4:int, _arg5:Number):void{ _arg1.clear(); _arg1.beginFill(_arg4, _arg5); _arg1.drawRect(_arg2.x, _arg2.y, _arg3.x, _arg3.y); _arg1.endFill(); } public static function fleeHover():String{ return (Text.fleeTip); } public static function centerVertically(_arg1:DisplayObject, _arg2:Point):void{ _arg1.y = ((_arg2.y - _arg1.height) / 2); } public static function showOneResourceBar(_arg1:ResourceBar):void{ var _local2:Resource; var _local3:Point; var _local4:Tower; var _local5:int; _local2 = _arg1.getPayload(); _local3 = Game.select.getSelected(); if (((!((_local3 == null))) && (Game.map.getCell(_local3.x, _local3.y).hasTower()))){ _local4 = Game.map.getCell(_local3.x, _local3.y).getTower(); _local5 = Game.map.getCell(_local3.x, _local3.y).getRubbleCount(_local2); _arg1.show(_local4.countResource(_local2), _local4.countIncoming(_local2), _local4.countReserve(_local2), _local5); } else { throw (new Error("ResourceBar shown when there is no valid tower.")); }; } } }//package ui
Section 223
//Wave1Music (ui.Wave1Music) package ui { import flash.net.*; import flash.media.*; import flash.*; public class Wave1Music extends Sound { public function Wave1Music(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package ui
Section 224
//Wave2Music (ui.Wave2Music) package ui { import flash.net.*; import flash.media.*; import flash.*; public class Wave2Music extends Sound { public function Wave2Music(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package ui
Section 225
//Wave3Music (ui.Wave3Music) package ui { import flash.net.*; import flash.media.*; import flash.*; public class Wave3Music extends Sound { public function Wave3Music(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package ui
Section 226
//WaveEndMusic (ui.WaveEndMusic) package ui { import flash.net.*; import flash.media.*; import flash.*; public class WaveEndMusic extends Sound { public function WaveEndMusic(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package ui
Section 227
//View (ui.View) package ui { import flash.display.*; import ui.menu.*; import flash.*; public class View { public var barSource:BitmapData; public var scrollMenu:ScrollMenu; public var fpsCounter:FpsCounter; public var frameAdvance:FrameAdvance; public var sideMenu:SideBar; public var mini:MiniMap; public var imageList:List; public var centerMenu:CenterMenu; public var toolTip:ToolTip; public var spawner:SpawnDisplay; public var layout:LayoutGame; public var warning:FailWarning; public var quickMenu:Quick; public var buildMenu:BuildMenu; public var window:Window; public var totals:TotalResource; public var scriptSprite:ScriptView; public var explosions:List; public function View(_arg1:DisplayObjectContainer=null):void{ if (!Boot.skip_constructor){ this.frameAdvance = new FrameAdvance(); this.imageList = new List(); this.initBarSource(); this.layout = new LayoutGame(_arg1.stage.stageWidth, _arg1.stage.stageHeight, Game.settings); this.window = new Window(_arg1, this.layout); this.explosions = new List(); }; } public function initMenus(_arg1:DisplayObjectContainer):void{ this.spawner = new SpawnDisplay(_arg1, this.layout); this.mini = new MiniMap(_arg1, this.layout); this.buildMenu = new BuildMenu(_arg1, this.layout); this.quickMenu = new Quick(_arg1, this.layout); this.sideMenu = new SideBar(_arg1, this.layout); this.totals = new TotalResource(_arg1, this.layout); this.scrollMenu = new ScrollMenu(_arg1, this.layout.screenSize); this.scriptSprite = new ScriptView(_arg1, this.layout); this.toolTip = new ToolTip(_arg1, this.layout); this.warning = new FailWarning(_arg1, this.layout.screenSize); this.centerMenu = new CenterMenu(); this.fpsCounter = new FpsCounter(_arg1, this.layout); Main.key.addHandler(this.centerMenu.hotkey); Main.key.addHandler(this.buildMenu.hotkey); if (!Game.settings.isEditor()){ Main.key.addHandler(this.sideMenu.hotkey); Main.key.addHandler(this.quickMenu.hotkey); }; Main.key.addHandler(this.scrollMenu.hotkey); Main.key.addHandler(this.hotkey); } public function initCenter(_arg1:DisplayObjectContainer):void{ this.centerMenu.init(_arg1, this.layout); } protected function cleanupBarSource():void{ this.barSource.dispose(); this.barSource = null; } public function changeSelect(_arg1:Point):void{ var _local2:MapCell; if (_arg1 == null){ Game.update.changeSelect(null); } else { _local2 = Game.map.getCell(_arg1.x, _arg1.y); if (((_local2.hasTower()) || (_local2.hasShadow()))){ if (((!(Game.settings.isEditor())) || (Point.isEqual(Game.editor.getSelectedSquare(), _arg1)))){ Game.update.changeSelect(_arg1); } else { Game.update.changeSelect(null); }; } else { Game.update.changeSelect(null); }; }; } public function updateImageList():void{ var _local1:*; var _local2:ImageStack; _local1 = this.imageList.iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); _local2.update(); }; } protected function initBarSource():void{ var _local1:MovieClip; var _local2:int; var _local3:int; _local1 = Workaround.attach("resourcetiles"); _local2 = Lib.cellToPixel(3); _local3 = Lib.cellToPixel(6); this.barSource = new BitmapData(_local2, _local3, true, 0); this.barSource.draw(_local1); _local1 = null; } public function cleanup():void{ Main.key.clearHandlers(); this.fpsCounter.cleanup(); this.fpsCounter = null; this.centerMenu.cleanup(); this.centerMenu = null; this.warning.cleanup(); this.warning = null; this.toolTip.cleanup(); this.toolTip = null; this.scriptSprite.cleanup(); this.scriptSprite = null; this.scrollMenu.cleanup(); this.scrollMenu = null; this.totals.cleanup(); this.totals = null; this.sideMenu.cleanup(); this.sideMenu = null; this.quickMenu.cleanup(); this.quickMenu = null; this.buildMenu.cleanup(); this.buildMenu = null; this.mini.cleanup(); this.mini = null; this.spawner.cleanup(); this.spawner = null; this.window.cleanup(); this.window = null; this.layout = null; this.cleanupBarSource(); } public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; var _local4:Point; var _local5:Point; _local3 = true; if (_arg2 == Keyboard.escapeCode){ Util.success(); if (Game.select.getSelected() != null){ Game.update.changeSelect(null); } else { this.centerMenu.changeState(CenterMenu.SYSTEM); }; } else { if (_arg1 == "`"){ Game.toggleFast(); } else { if (_arg1 == ";"){ _local4 = new Point(Math.floor(Main.getRoot().stage.mouseX), Math.floor(Main.getRoot().stage.mouseY)); _local5 = Game.view.window.toAbsolute(Lib.pixelToCell(_local4.x), Lib.pixelToCell(_local4.y)); Lib.trace(("Mouse Pos: " + _local4.toString())); Lib.trace(("Map Pos: " + _local5.toString())); } else { _local3 = false; }; }; }; return (_local3); } public function resize():void{ this.toolTip.hide(); this.scriptSprite.resize(this.layout); this.mini.resize(this.layout); this.window.resize(this.layout); this.spawner.resize(this.layout); this.quickMenu.resize(this.layout); this.sideMenu.resize(this.layout); this.buildMenu.resize(this.layout); this.centerMenu.resize(this.layout); this.warning.resize(this.layout.screenSize); this.totals.resize(this.layout); this.scrollMenu.resize(this.layout.screenSize); } public function enterFrame():void{ this.fpsCounter.enterFrame(); this.spawner.step(); if (!Game.pause.isPaused()){ this.frameAdvance.fixedStep(); }; this.toolTip.enterFrame(); this.sideMenu.enterFrame(); this.warning.enterFrame(); this.scrollMenu.enterFrame(); } } }//package ui
Section 228
//Window (ui.Window) package ui { import flash.display.*; import flash.events.*; import logic.*; import flash.geom.*; import flash.*; public class Window { protected var tileStatus:Shape; protected var showingRanges:Boolean; protected var tiles:Bitmap; protected var offset:Point; protected var isDragging:Boolean; protected var source:BitmapData; protected var mouse:Point; protected var background:DisplayObjectContainer; protected var startDrag:Point; protected static var start:Point = new Point(Math.floor((Option.cellPixels / 2)), Math.floor((Option.cellPixels / 2))); protected static var second:Array = [new Point(-1, 1), new Point(-1, -1), new Point(-1, -1), new Point(1, -1)]; protected static var third:Array = [new Point(1, 1), new Point(1, -1), new Point(-1, 1), new Point(1, 1)]; public function Window(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ var _local3:Point; var _local4:BitmapData; var _local5:MovieClip; super(); if (!Boot.skip_constructor){ this.offset = new Point(0, 0); this.background = new Sprite(); this.background.mouseChildren = false; _arg1.addChild(this.background); this.background.visible = true; this.background.x = _arg2.mapOffset.x; this.background.y = _arg2.mapOffset.y; this.background.cacheAsBitmap = true; this.background.addEventListener(MouseEvent.MOUSE_DOWN, this.press); this.background.addEventListener(MouseEvent.MOUSE_UP, this.release); this.background.addEventListener(MouseEvent.MOUSE_MOVE, this.hoverMove); _local3 = Game.settings.getSize().toPixel(); _local4 = new BitmapData(_local3.x, _local3.y, false, 0xFFFFFF); this.tiles = new Bitmap(_local4); this.background.addChild(this.tiles); this.tileStatus = new Shape(); this.background.addChild(this.tileStatus); this.tileStatus.visible = true; this.tileStatus.x = _arg2.mapOffset.x; this.tileStatus.y = _arg2.mapOffset.y; _local5 = Workaround.attach(Label.background); this.source = new BitmapData(Lib.cellToPixel(Tile.X_COUNT), Lib.cellToPixel(Tile.Y_COUNT), true, 0); this.source.draw(_local5); this.isDragging = false; this.startDrag = null; this.mouse = null; this.showingRanges = false; }; } public function press(_arg1:MouseEvent):void{ this.isDragging = false; this.mouse = new Point(Math.floor(_arg1.localX), Math.floor(_arg1.localY)); this.startDrag = this.toAbsolute(Lib.pixelToCell(this.mouse.x), Lib.pixelToCell(this.mouse.y)); this.background.stage.addEventListener(MouseEvent.MOUSE_MOVE, this.dragMove); if (Game.editor != null){ Game.editor.beginDrag(this.startDrag); }; } public function getClip():DisplayObjectContainer{ return (this.background); } public function getOffset():Point{ return (this.offset); } public function toggleRanges():void{ if (this.showingRanges){ Game.sprites.clearAllVisibility(); } else { Game.sprites.showAllVisibility(); }; this.showingRanges = !(this.showingRanges); Game.view.quickMenu.updateView(this.showingRanges); } public function updateCell(_arg1:int, _arg2:int):void{ this.refresh(); } protected function updateRect(_arg1:Rectangle, _arg2:int):void{ _arg1.x = Lib.cellToPixel((_arg2 % Tile.X_COUNT)); _arg1.y = Lib.cellToPixel(Math.floor((_arg2 / Tile.X_COUNT))); } public function release(_arg1:MouseEvent):void{ var _local2:Point; var _local3:Point; var _local4:Point; _local2 = new Point(Math.floor(_arg1.localX), Math.floor(_arg1.localY)); _local3 = new Point(Lib.pixelToCell(_local2.x), Lib.pixelToCell(_local2.y)); _local4 = this.toAbsolute(_local3.x, _local3.y); if (((!(this.isDragging)) && (!((this.startDrag == null))))){ this.startDrag = null; if (Game.editor != null){ Game.editor.clickSquare(_local4); }; if (((Game.map.getCell(_local4.x, _local4.y).hasTower()) || (Game.map.getCell(_local4.x, _local4.y).hasShadow()))){ Game.view.buildMenu.clickTower(_local4); } else { Game.view.buildMenu.clickBackground(_local4); }; } else { if (((this.isDragging) && (!((this.startDrag == null))))){ this.isDragging = false; this.startDrag = null; if (Game.editor != null){ Game.editor.endDrag(_local4); }; }; }; this.background.stage.removeEventListener(MouseEvent.MOUSE_MOVE, this.dragMove); } public function fillBitmap():void{ this.fillRegion(new Point(0, 0), Game.map.size()); } public function moveWindowCenter(_arg1:int, _arg2:int):void{ this.moveWindow((_arg1 - Game.view.layout.windowCenter.x), (_arg2 - Game.view.layout.windowCenter.y)); } public function fillRegion(_arg1:Point, _arg2:Point):void{ this.fillBitmapRegion(this.tiles, new Point(0, 0), _arg1, _arg2, true); } public function toAbsolute(_arg1:int, _arg2:int):Point{ return (new Point((_arg1 + this.offset.x), (_arg2 + this.offset.y))); } public function getCenter():Point{ var _local1:LayoutGame; _local1 = Game.view.layout; return (new Point((this.offset.x + Math.floor((_local1.windowSize.x / 2))), (this.offset.y + Math.floor((_local1.windowSize.y / 2))))); } public function refresh():void{ var _local1:LayoutGame; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:Point; var _local9:MapCell; var _local10:int; _local1 = Game.view.layout; this.tileStatus.graphics.clear(); _local2 = 0; _local3 = _local1.windowSize.y; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local5 = 0; _local6 = _local1.windowSize.x; while (_local5 < _local6) { var _temp2 = _local5; _local5 = (_local5 + 1); _local7 = _temp2; _local8 = this.toAbsolute(_local7, _local4); _local9 = Game.map.getCell(_local8.x, _local8.y); if (_local9.getBackground() == BackgroundType.ENTRANCE){ if (_local9.getBuilding().getZombieCount() > 0){ _local10 = Lib.weightedIndex(_local9.getBuilding().getZombieCount(), Option.zombieBuildingWeights); this.updateCellStatus(_local7, _local4, Option.zombieBuildingColor[_local10], Option.zombieBuildingOpacity[_local10]); } else { if (_local9.getBuilding().getSalvage().getTotalCount() > 0){ this.updateCellStatus(_local7, _local4, Option.salvageBuildingColor, Option.salvageBuildingOpacity); }; }; }; }; }; } protected function updateCellStatus(_arg1:int, _arg2:int, _arg3:int, _arg4:Number):void{ var _local5:int; var _local6:int; var _local7:Point; var _local8:Building; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; _local5 = Lib.cellToPixel(_arg2); _local6 = Lib.cellToPixel(_arg1); _local7 = this.toAbsolute(_arg1, _arg2); _local8 = Game.map.getCell(_local7.x, _local7.y).getBuilding(); if (_local8 != null){ _local9 = Lib.directionToIndex(_local8.getEntranceDir()); _local10 = (Option.cellPixels - 16); _local11 = (Option.cellPixels - 16); _local12 = 0; _local13 = 0; this.tileStatus.graphics.lineStyle(2, 0); this.tileStatus.graphics.beginFill(_arg3); this.tileStatus.graphics.moveTo((start.x + _local6), (start.y + _local5)); _local12 = (((second[_local9].x * _local10) + start.x) + _local6); _local13 = (((second[_local9].y * _local11) + start.y) + _local5); this.tileStatus.graphics.lineTo(_local12, _local13); _local12 = (((third[_local9].x * _local10) + start.x) + _local6); _local13 = (((third[_local9].y * _local11) + start.y) + _local5); this.tileStatus.graphics.lineTo(_local12, _local13); this.tileStatus.graphics.lineTo((start.x + _local6), (start.y + _local5)); this.tileStatus.graphics.endFill(); }; } public function getDir(_arg1:Point):Direction{ var _local2:Point; _local2 = Game.view.layout.windowSize; if (_arg1.x < this.offset.x){ return (Direction.WEST); }; if (_arg1.y < this.offset.y){ return (Direction.NORTH); }; if (_arg1.x >= (this.offset.x + _local2.x)){ return (Direction.EAST); }; if (_arg1.y >= (this.offset.y + _local2.y)){ return (Direction.SOUTH); }; return (null); } public function moveWindow(_arg1:int, _arg2:int):void{ var _local3:LayoutGame; var _local4:Point; var _local5:Point; var _local6:*; var _local7:Explosion; _local3 = Game.view.layout; _local4 = new Point((Game.map.sizeX() - _local3.windowSize.x), (Game.map.sizeY() - _local3.windowSize.y)); _local5 = new Point(_arg1, _arg2); if (_local5.x < 0){ _local5.x = 0; }; if (_local5.x > _local4.x){ _local5.x = _local4.x; }; if (_local5.y < 0){ _local5.y = 0; }; if (_local5.y > _local4.y){ _local5.y = _local4.y; }; this.offset = _local5; this.tiles.scrollRect = new Rectangle(Lib.cellToPixel(this.offset.x), Lib.cellToPixel(this.offset.y), _local3.mapSize.x, _local3.mapSize.y); Game.view.mini.moveWindow(_local5.x, _local5.y); Game.view.updateImageList(); Game.script.trigger(Script.MOVE_WINDOW, this.offset); _local6 = Game.view.explosions.iterator(); while (_local6.hasNext()) { _local7 = _local6.next(); _local7.moveWindow(); }; Game.select.update(); if (Game.editor != null){ Game.editor.updateDrag(); Game.editor.updateSelect(); }; this.refresh(); this.updateRanges(); } public function cleanup():void{ this.source.dispose(); this.source = null; this.tileStatus.parent.removeChild(this.tileStatus); this.tileStatus = null; this.tiles.parent.removeChild(this.tiles); this.tiles.bitmapData.dispose(); this.background.removeEventListener(MouseEvent.MOUSE_DOWN, this.press); this.background.removeEventListener(MouseEvent.MOUSE_UP, this.release); this.background.removeEventListener(MouseEvent.MOUSE_MOVE, this.hoverMove); this.background.stage.removeEventListener(MouseEvent.MOUSE_MOVE, this.dragMove); this.background.parent.removeChild(this.background); this.background = null; } public function dragMove(_arg1:MouseEvent):void{ var _local2:Point; if (!_arg1.buttonDown){ this.release(_arg1); } else { this.mouse.x = Math.floor(_arg1.stageX); this.mouse.y = Math.floor(_arg1.stageY); _local2 = this.toAbsolute(Lib.pixelToCell(this.mouse.x), Lib.pixelToCell(this.mouse.y)); if (((this.isDragging) || (!(Point.isEqual(this.startDrag, _local2))))){ this.isDragging = true; if (!Game.settings.isEditor()){ this.moveWindow(((this.offset.x - _local2.x) + this.startDrag.x), ((this.offset.y - _local2.y) + this.startDrag.y)); }; if (Game.editor != null){ Game.editor.updateDrag(_local2); }; this.startDrag = this.toAbsolute(Lib.pixelToCell(this.mouse.x), Lib.pixelToCell(this.mouse.y)); }; }; } public function fillBitmapRegion(_arg1:Bitmap, _arg2:Point, _arg3:Point, _arg4:Point, _arg5:Boolean):void{ var _local6:Rectangle; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:MapCell; var _local14:*; var _local15:int; _local6 = new Rectangle(0, 0, Option.cellPixels, Option.cellPixels); _local6.width = Option.cellPixels; _local6.height = Option.cellPixels; _local7 = _arg3.y; _local8 = _arg4.y; while (_local7 < _local8) { var _temp1 = _local7; _local7 = (_local7 + 1); _local9 = _temp1; _local10 = _arg3.x; _local11 = _arg4.x; while (_local10 < _local11) { var _temp2 = _local10; _local10 = (_local10 + 1); _local12 = _temp2; _local13 = Game.map.getCell(_local12, _local9); _local14 = _local13.getTiles().iterator(); while (_local14.hasNext()) { _local15 = _local14.next(); if (((_arg5) || ((_local15 == _local13.getTiles().last())))){ this.updateRect(_local6, _local15); Workaround.copyPixels(_arg1, this.source, _local6, Lib.cellToPixel((_local12 - _arg2.x)), Lib.cellToPixel((_local9 - _arg2.y))); }; }; }; }; } public function toRelative(_arg1:int, _arg2:int):Point{ return (new Point((_arg1 - this.offset.x), (_arg2 - this.offset.y))); } public function fillSolid(_arg1:Point, _arg2:Point, _arg3:int):void{ Workaround.fillRect(this.tiles, (_arg1.x + 1), (_arg1.y + 1), (_arg2.x - 1), (_arg2.y - 1), _arg3); } public function scrollWindow(_arg1:Direction, _arg2:int):void{ var _local3:enum; _local3 = _arg1; switch (_local3.index){ case 0: this.moveWindow(this.offset.x, (this.offset.y - _arg2)); break; case 1: this.moveWindow(this.offset.x, (this.offset.y + _arg2)); break; case 2: this.moveWindow((this.offset.x + _arg2), this.offset.y); break; case 3: this.moveWindow((this.offset.x - _arg2), this.offset.y); break; }; } public function hoverMove(_arg1:MouseEvent):void{ var _local2:int; var _local3:int; var _local4:Point; _local2 = Math.floor(_arg1.stageX); _local3 = Math.floor(_arg1.stageY); _local4 = this.toAbsolute(Lib.pixelToCell(_local2), Lib.pixelToCell(_local3)); if ((((_local2 < (Game.view.layout.mapOffset.x + Game.view.layout.mapSize.x))) && ((_local3 < (Game.view.layout.mapOffset.y + Game.view.layout.mapSize.y))))){ if (Game.editor != null){ Game.editor.hover(_local4); }; if (Game.map.getCell(_local4.x, _local4.y).getTower() != null){ Game.view.buildMenu.hoverTower(_local4); } else { Game.view.buildMenu.hoverBackground(_local4); }; }; } public function isShowingRanges():Boolean{ return (this.showingRanges); } public function resize(_arg1:LayoutGame):void{ this.background.x = _arg1.mapOffset.x; this.background.y = _arg1.mapOffset.y; this.tileStatus.x = _arg1.mapOffset.x; this.tileStatus.y = _arg1.mapOffset.y; this.moveWindow(this.offset.x, this.offset.y); } public function fillEdit(_arg1:Point, _arg2:Point):void{ var _local3:Point; var _local4:Point; this.fillRegion(_arg1, _arg2); _local3 = _arg1.toPixel(); _local4 = _arg2.toPixel(); Workaround.fillRect(this.tiles, _local3.x, _local3.y, _local4.x, (_local3.y + 1), Color.editEmpty); Workaround.fillRect(this.tiles, _local3.x, _local3.y, (_local3.x + 1), _local4.y, Color.editEmpty); Workaround.fillRect(this.tiles, _local3.x, (_local4.y - 1), _local4.x, _local4.y, Color.editEmpty); Workaround.fillRect(this.tiles, (_local4.x - 1), _local3.y, _local4.x, _local4.y, Color.editEmpty); } public function updateRanges():void{ if (this.showingRanges){ Game.sprites.showAllVisibility(); }; } } }//package ui
Section 229
//VirtualImage (ui.VirtualImage) package ui { import flash.display.*; import flash.geom.*; import flash.filters.*; import flash.*; public class VirtualImage { protected var frameChanged:Boolean; protected var scaleChanged:Boolean; protected var canOperate:Boolean; protected var centerChanged:Boolean; protected var glowFilterChanged:Boolean; protected var isSupplyTarget:Boolean; protected var rotationOffset:int; protected var linkage:String; protected var scale:Number; protected var overlayChanged:Boolean; protected var layer:int; protected var positionChanged:Boolean; protected var windowPos:Point; protected var center:Point; protected var rotationChanged:Boolean; protected var image:CenteredImage; protected var isPermanent:Boolean; protected var alpha:Number; protected var pos:Point; protected var glowFilter:GlowFilter; protected var visibleChanged:Boolean; protected var frame:int; protected var visible:Boolean; protected var overlayColor:ShadowColor; protected var alphaChanged:Boolean; protected var rotation:int; protected static var supplyCenterLength:int = 32; protected static var supplySideLength:int = 8; protected static var noShootRadius:int = 10; protected static var noShootThickness:int = 4; protected static var supplyArrowAngle:Number = 0.628318530717959; protected static var supplyArrowThickness:int = 5; public function VirtualImage(_arg1:int=0, _arg2:Point=null, _arg3:String=null):void{ if (!Boot.skip_constructor){ this.image = null; this.layer = _arg1; this.frame = 1; this.linkage = _arg3; this.frameChanged = true; this.scale = 1; this.scaleChanged = true; this.overlayColor = ShadowColor.NORMAL; this.canOperate = true; this.isSupplyTarget = false; this.overlayChanged = true; this.center = _arg2.clone(); this.centerChanged = true; this.pos = new Point(0, 0); this.windowPos = null; this.positionChanged = true; this.rotation = 0; this.rotationOffset = 0; this.rotationChanged = true; this.alpha = 1; this.alphaChanged = true; this.visible = true; this.visibleChanged = true; this.glowFilter = null; this.glowFilterChanged = true; this.isPermanent = false; }; } public function setRotation(_arg1:int):void{ if (this.rotation != _arg1){ this.rotation = _arg1; this.rotationChanged = true; }; } protected function drawShadow():void{ var _local1:ColorTransform; var _local2:enum; _local1 = null; _local2 = this.overlayColor; switch (_local2.index){ case 0: _local1 = Color.normalTransform; break; case 1: _local1 = Color.allowTransform; break; case 2: _local1 = Color.denyTransform; break; case 3: _local1 = Color.plannedTransform; break; }; this.image.setTransform(_local1); } public function setScale(_arg1:Number):void{ if (this.scale != _arg1){ this.scale = _arg1; this.scaleChanged = true; }; } public function advanceFrame():void{ this.setFrame((this.frame + 1)); } public function show():void{ if (!this.visible){ this.visible = true; this.visibleChanged = true; }; } public function changeLinkage(_arg1:String):void{ if (this.linkage != _arg1){ this.linkage = _arg1; if (this.image != null){ this.releaseClip(); this.inside(this.windowPos); }; }; } public function setPos(_arg1:Point):void{ if (!Point.isEqual(this.pos, _arg1)){ this.pos = _arg1; this.positionChanged = true; }; } public function setAlpha(_arg1:Number):void{ if (this.alpha != _arg1){ this.alpha = _arg1; this.alphaChanged = true; }; } protected function drawCannotOperate():void{ if (!this.canOperate){ this.image.drawLine(Color.noShoot, noShootThickness, true, new Point(-(noShootRadius), -(noShootRadius)), new Point(noShootRadius, noShootRadius)); this.image.drawLine(Color.noShoot, noShootThickness, true, new Point(noShootRadius, -(noShootRadius)), new Point(-(noShootRadius), noShootRadius)); }; } public function getPos():Point{ return (this.pos); } public function cleanup():void{ this.releaseClip(); } public function outside(_arg1:Point):void{ if (!this.isPermanent){ this.releaseClip(); } else { this.inside(_arg1); }; } public function setFrame(_arg1:int):void{ if (this.frame != _arg1){ this.frame = _arg1; this.frameChanged = true; }; } public function changeSupplyTarget(_arg1:Boolean):void{ if (this.isSupplyTarget != _arg1){ this.isSupplyTarget = _arg1; this.overlayChanged = true; }; } public function changeOperate(_arg1:Boolean):void{ if (this.canOperate != _arg1){ this.canOperate = _arg1; this.overlayChanged = true; }; } public function getFrame():int{ return (this.frame); } public function setRotationOffset(_arg1:int):void{ if (this.rotationOffset != _arg1){ this.rotationOffset = _arg1; this.rotationChanged = true; }; } protected function drawSupplyLeg(_arg1:Number, _arg2:int, _arg3:int):void{ var _local4:Point; _local4 = new Point(Math.round((Math.cos(_arg1) * _arg2)), Math.round((Math.sin(_arg1) * _arg2))); this.image.drawLine(_arg3, supplyArrowThickness, true, new Point(0, 0), _local4); } public function hide():void{ if (this.visible){ this.visible = false; this.visibleChanged = true; }; } protected function drawSupplyTarget(_arg1:Point):void{ var _local2:Point; var _local3:int; var _local4:Tower; var _local5:int; var _local6:int; var _local7:Point; var _local8:Number; if (this.isSupplyTarget){ _local2 = Game.select.getSelected(); _local3 = Game.map.getCell(Lib.pixelToCell(_arg1.x), Lib.pixelToCell(_arg1.y)).getTower().getType(); _local4 = Game.map.getCell(_local2.x, _local2.y).getTower(); _local5 = _local4.getType(); _local6 = Color.supplyOtherLine; if ((((_local3 == Tower.DEPOT)) && ((_local5 == Tower.DEPOT)))){ _local6 = Color.supplyDepotLine; }; _local7 = new Point((Lib.cellToPixel(_local2.x) - _arg1.x), (Lib.cellToPixel(_local2.y) - _arg1.y)); _local8 = ((Math.PI / 2) - Math.atan2(_local7.x, _local7.y)); this.drawSupplyLeg(_local8, supplyCenterLength, _local6); this.drawSupplyLeg((_local8 - supplyArrowAngle), supplySideLength, _local6); this.drawSupplyLeg((_local8 + supplyArrowAngle), supplySideLength, _local6); }; } public function getClip():MovieClip{ var _local1:MovieClip; _local1 = null; if (this.isPermanent){ _local1 = this.image.getClip(); }; return (_local1); } public function update():void{ if (this.image != null){ if (this.frameChanged){ this.image.gotoFrame(this.frame); this.frameChanged = false; }; if (this.scaleChanged){ this.image.setScale(this.scale); this.scaleChanged = false; }; if (this.overlayChanged){ this.image.clear(); this.drawShadow(); this.drawCannotOperate(); this.drawSupplyTarget(this.pos); this.overlayChanged = false; }; if (this.centerChanged){ this.image.setCenter(this.center); this.centerChanged = false; }; if (this.positionChanged){ this.image.goto((this.pos.x - this.windowPos.x), (this.pos.y - this.windowPos.y)); this.positionChanged = false; }; if (this.rotationChanged){ this.image.rotate((this.rotation + this.rotationOffset)); this.rotationChanged = false; }; if (this.alphaChanged){ this.image.setAlpha(this.alpha); this.alphaChanged = false; }; if (this.visibleChanged){ if (this.visible){ this.image.show(); } else { this.image.hide(); }; this.visibleChanged = false; }; if (this.glowFilterChanged){ this.image.setGlowFilter(this.glowFilter); this.glowFilterChanged = false; }; }; } public function setGlowFilter(_arg1:GlowFilter):void{ this.glowFilter = _arg1; this.glowFilterChanged = true; } public function setPermanent():void{ var _local1:Point; this.isPermanent = true; _local1 = this.windowPos; this.windowPos = null; this.inside(_local1); } public function getRotation():int{ return (this.rotation); } public function setOverlayColor(_arg1:ShadowColor):void{ if (this.overlayColor != _arg1){ this.overlayColor = _arg1; this.overlayChanged = true; }; } public function releaseClip():void{ if (this.image != null){ Game.sprites.releaseSpriteClip(this.image, this.layer); this.image = null; }; } public function inside(_arg1:Point):void{ if (this.image == null){ this.image = Game.sprites.getSpriteClip(this.layer, this.linkage); this.image.show(); this.frameChanged = true; this.scaleChanged = true; this.overlayChanged = true; this.centerChanged = true; this.positionChanged = true; this.rotationChanged = true; this.alphaChanged = true; this.visibleChanged = true; this.glowFilterChanged = true; }; if (!Point.isEqual(_arg1, this.windowPos)){ this.windowPos = _arg1; this.positionChanged = true; }; this.update(); } public function save(){ return ({layer:this.layer, frame:this.frame, linkage:this.linkage, scale:this.scale, overlayColor:Lib.shadowColorToIndex(this.overlayColor), canOperate:this.canOperate, isSupplyTarget:this.isSupplyTarget, center:this.center.save(), pos:this.pos.save(), rotation:this.rotation, rotationOffset:this.rotationOffset, alpha:this.alpha, visible:this.visible}); } public static function load(_arg1):VirtualImage{ var _local2:VirtualImage; _local2 = new VirtualImage(_arg1.layer, Point.load(_arg1.center), _arg1.linkage); _local2.setFrame(_arg1.frame); _local2.setScale(_arg1.scale); _local2.setOverlayColor(Lib.indexToShadowColor(_arg1.overlayColor)); _local2.changeOperate(_arg1.canOperate); _local2.changeSupplyTarget(_arg1.isSupplyTarget); _local2.setPos(Point.load(_arg1.pos)); _local2.setRotation(_arg1.rotation); _local2.setRotationOffset(_arg1.rotationOffset); _local2.setAlpha(_arg1.alpha); if (_arg1.visible){ _local2.show(); } else { _local2.hide(); }; return (_local2); } public static function saveS(_arg1:VirtualImage){ return (_arg1.save()); } } }//package ui
Section 230
//Workaround (ui.Workaround) package ui { import flash.display.*; import flash.geom.*; import flash.*; public class Workaround { public static var SHIFT:uint = 16; public static function copyPixels(_arg1:Bitmap, _arg2:BitmapData, _arg3:Rectangle, _arg4:int, _arg5:int):void{ _arg1.bitmapData.copyPixels(_arg2, _arg3, new Point(_arg4, _arg5)); } public static function drawOverPixels(_arg1:Bitmap, _arg2:DisplayObject, _arg3:int, _arg4:int, _arg5:Array):void{ var _local6:Matrix; var _local7:ColorTransform; _local6 = new Matrix(); _local6.translate((_arg3 * 2), (_arg4 * 2)); _local6.scale(0.5, 0.5); _local7 = null; if (_arg5 != null){ _local7 = new ColorTransform(0, 0, 0, 1, _arg5[0], _arg5[1], _arg5[2], 0); }; _arg1.bitmapData.draw(_arg2, _local6, _local7); } public static function copyOverPixels(_arg1:Bitmap, _arg2:BitmapData, _arg3:Rectangle, _arg4:int, _arg5:int):void{ _arg1.bitmapData.copyPixels(_arg2, _arg3, new Point(_arg4, _arg5), null, null, true); } public static function fillRect(_arg1:Bitmap, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int):void{ var _local7:Rectangle; _local7 = new Rectangle(_arg2, _arg3, (_arg4 - _arg2), (_arg5 - _arg3)); _arg1.bitmapData.fillRect(_local7, _arg6); } public static function attach(_arg1:String):MovieClip{ return (Lib.attach(_arg1)); } } }//package ui
Section 231
//AssetClip_10 (zomlog_fla.AssetClip_10) package zomlog_fla { import flash.display.*; public dynamic class AssetClip_10 extends MovieClip { public function AssetClip_10(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zomlog_fla
Section 232
//ButtonLeft_383 (zomlog_fla.ButtonLeft_383) package zomlog_fla { import flash.display.*; public dynamic class ButtonLeft_383 extends MovieClip { public function ButtonLeft_383(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zomlog_fla
Section 233
//ButtonRight_388 (zomlog_fla.ButtonRight_388) package zomlog_fla { import flash.display.*; public dynamic class ButtonRight_388 extends MovieClip { public function ButtonRight_388(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zomlog_fla
Section 234
//DepotClip_224 (zomlog_fla.DepotClip_224) package zomlog_fla { import flash.display.*; public dynamic class DepotClip_224 extends MovieClip { public function DepotClip_224(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zomlog_fla
Section 235
//GameClip_498 (zomlog_fla.GameClip_498) package zomlog_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.geom.*; import flash.text.*; import flash.filters.*; import flash.media.*; import flash.*; import flash.ui.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.xml.*; public dynamic class GameClip_498 extends MovieClip { public var loader:Loader; public var paramObj:Object; public var apiPath:String; public var request:URLRequest; public var kongregate; public var boot; public function GameClip_498(){ addFrameScript(1, frame2); } public function loadComplete(_arg1:Event):void{ kongregate = _arg1.target.content; kongregate.services.connect(); Main.kongregate = kongregate; kongregate.stats.submit("Player", 1); } function frame2(){ paramObj = LoaderInfo(root.loaderInfo).parameters; apiPath = ((paramObj.kongregate_api_path) || ("http://www.kongregate.com/flash/API_AS3_Local.swf")); Security.allowDomain(apiPath); request = new URLRequest(apiPath); loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); loader.load(request); this.addChild(loader); boot = new Boot(null); stage.align = StageAlign.TOP_LEFT; stage.addChild(boot); Main.main(); stop(); } } }//package zomlog_fla
Section 236
//JonLogo_482 (zomlog_fla.JonLogo_482) package zomlog_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.geom.*; import flash.text.*; import flash.filters.*; import flash.media.*; import flash.ui.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.xml.*; public dynamic class JonLogo_482 extends MovieClip { public var wheelMax; public var water; public var waters; public var speed; public var wheelCount; public var logospeed; public var logomc:MovieClip; public var waterIndex; public var wheelspeed; public var gears1; public function JonLogo_482(){ addFrameScript(0, frame1); } function frame1(){ stage.addEventListener(Event.ENTER_FRAME, gears); stop(); gears1 = true; speed = 3; wheelspeed = 1.2; logospeed = 0; wheelMax = 41.7; wheelCount = wheelMax; logomc.waterwheel.gotoAndStop(1); waters = [logomc.ring.w1, logomc.ring.w2, logomc.ring.w3, logomc.ring.w4, logomc.ring.w5, logomc.ring.w6, logomc.ring.w7, logomc.ring.w8]; for each (water in waters) { water.gotoAndStop(water.totalFrames); }; waterIndex = 1; waters[1].gotoAndPlay(1); } public function gears(_arg1:Event):void{ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; wheelCount = (wheelCount - 1); if (wheelCount <= 0){ wheelCount = (wheelCount + wheelMax); _local6 = logomc.waterwheel.currentFrame; _local7 = logomc.waterwheel.totalFrames; logomc.waterwheel.gotoAndStop(((_local6 % _local7) + 1)); waterIndex = ((waterIndex + 1) % 8); waters[waterIndex].gotoAndPlay(1); }; logomc.shelf.y = (logomc.shelf.y + speed); logomc.biggear.rotation = (logomc.biggear.rotation + (speed * 0.8)); logomc.biggear2.rotation = (logomc.biggear2.rotation + (speed * 0.8)); logomc.biggear3.rotation = (logomc.biggear3.rotation + (speed * 0.8)); if (!gears1){ logospeed = 0; } else { logospeed = speed; }; if (logomc.logo.y > 140){ gears1 = false; }; _local2 = 1; while (_local2 < 11) { logomc[("chain" + _local2)].y = (logomc[("chain" + _local2)].y + speed); if (logomc[("chain" + _local2)].y > 205.85){ logomc[("chain" + _local2)].y = 193.85; }; _local2++; }; logomc.logo.y = (logomc.logo.y + logospeed); logomc.turner1.rotation = (logomc.turner1.rotation + wheelspeed); logomc.turner2.rotation = (logomc.turner2.rotation + (speed * 3)); if ((((wheelspeed <= 1)) && (gears1))){ wheelspeed = (wheelspeed + 0.3); }; logomc.waterwheel.rotation = (logomc.waterwheel.rotation + (wheelspeed / 1.109)); logomc.ring.rotation = logomc.waterwheel.rotation; if (((gears1) && ((speed < 1)))){ speed = (speed + 0.03); }; _local3 = 1; while (_local3 < 7) { logomc[("smallgear" + _local3)].rotation = (logomc[("smallgear" + _local3)].rotation - (speed * 2)); _local3++; }; logomc.smallgearback1.rotation = (logomc.smallgearback1.rotation + (speed * 2)); logomc.smallgearback2.rotation = (logomc.smallgearback2.rotation + (speed * 2)); logomc.smallgearback3.rotation = (logomc.smallgearback3.rotation + (speed * 2)); _local4 = 1; while (_local4 < 11) { logomc[("gear" + _local4)].rotation = (logomc[("gear" + _local4)].rotation - (speed * 0.58)); _local4++; }; _local5 = 11; while (_local5 < 21) { logomc[("gear" + _local5)].rotation = (logomc[("gear" + _local5)].rotation + (speed * 0.58)); _local5++; }; } } }//package zomlog_fla
Section 237
//Main_logo_483 (zomlog_fla.Main_logo_483) package zomlog_fla { import flash.display.*; public dynamic class Main_logo_483 extends MovieClip { public var gear20:MovieClip; public var ring:MovieClip; public var shelf:MovieClip; public var gear2:MovieClip; public var gear3:MovieClip; public var gear5:MovieClip; public var gear6:MovieClip; public var gear9:MovieClip; public var gear4:MovieClip; public var gear7:MovieClip; public var gear8:MovieClip; public var gear1:MovieClip; public var biggear:MovieClip; public var waterwheel:MovieClip; public var chain10:MovieClip; public var smallgearback1:MovieClip; public var smallgearback2:MovieClip; public var smallgearback3:MovieClip; public var biggear2:MovieClip; public var biggear3:MovieClip; public var turner1:MovieClip; public var turner2:MovieClip; public var chain1:MovieClip; public var chain2:MovieClip; public var chain3:MovieClip; public var chain6:MovieClip; public var chain8:MovieClip; public var chain9:MovieClip; public var chain4:MovieClip; public var chain5:MovieClip; public var chain7:MovieClip; public var logo:MovieClip; public var smallgear1:MovieClip; public var smallgear3:MovieClip; public var smallgear5:MovieClip; public var smallgear6:MovieClip; public var smallgear2:MovieClip; public var smallgear4:MovieClip; public var gear11:MovieClip; public var gear14:MovieClip; public var gear15:MovieClip; public var gear16:MovieClip; public var gear17:MovieClip; public var gear18:MovieClip; public var gear19:MovieClip; public var gear13:MovieClip; public var gear10:MovieClip; public var gear12:MovieClip; } }//package zomlog_fla
Section 238
//MainTimeline (zomlog_fla.MainTimeline) package zomlog_fla { import flash.events.*; import flash.display.*; import flash.text.*; import flash.net.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.printing.*; import flash.ui.*; import flash.utils.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public var startHeight; public var trackLoader:URLLoader; public var frame; public var variables:URLVariables; public var startWidth; public var logomc:MovieClip; public var frameCount; public var logo:MovieClip; public var pre:PreloaderClip; public var trackRequest:URLRequest; public var game:MovieClip; public function MainTimeline(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 5, frame6, 6, frame7, 7, frame8, 8, frame9); } public function resizeHandler4(_arg1:Event):void{ updateSize4(); } public function updateSize5():void{ logomc.x = ((stage.stageWidth - 710) / 2); logomc.y = ((stage.stageHeight - 491) / 2); } public function updateSize4():void{ logo.width = stage.stageWidth; logo.height = stage.stageHeight; } public function fullScreenHandler4(_arg1:FullScreenEvent):void{ updateSize4(); } public function onProgress(_arg1:ProgressEvent):void{ var _local2:int; _local2 = ((_arg1.bytesLoaded / _arg1.bytesTotal) * 100); pre.progress.text = (("Loading: " + _local2) + "%"); } public function fullScreenHandler5(_arg1:FullScreenEvent):void{ updateSize5(); } public function onComplete(_arg1:Event):void{ loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress); loaderInfo.removeEventListener(Event.COMPLETE, onComplete); frameCount = 100; } function frame3(){ frameCount = -1; stop(); resize(); if (loaderInfo.bytesLoaded < loaderInfo.bytesTotal){ this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress); this.loaderInfo.addEventListener(Event.COMPLETE, onComplete); } else { frameCount = 1; }; pre.addEventListener(MouseEvent.CLICK, clickHandler2); stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenHandler); stage.addEventListener(Event.RESIZE, resizeHandler); stage.addEventListener(Event.ENTER_FRAME, enterFrame); resize(); } function frame6(){ stop(); frame = 0; startWidth = logomc.width; startHeight = logomc.height; updateSize5(); addEventListener(Event.ENTER_FRAME, enterFrame5); stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenHandler5); stage.addEventListener(Event.RESIZE, resizeHandler5); } function frame1(){ stage.scaleMode = StageScaleMode.NO_SCALE; } function frame7(){ stop(); } public function enterFrame(_arg1:Event):void{ frameCount--; if (frameCount == 0){ pre.removeEventListener(MouseEvent.CLICK, clickHandler2); stage.removeEventListener(Event.ENTER_FRAME, enterFrame); stage.removeEventListener(FullScreenEvent.FULL_SCREEN, fullScreenHandler); stage.removeEventListener(Event.RESIZE, resizeHandler); play(); }; } function frame4(){ stop(); logo.play(); addEventListener(Event.ENTER_FRAME, step4); logo.addEventListener(MouseEvent.CLICK, clickHandler4); stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenHandler4); stage.addEventListener(Event.RESIZE, resizeHandler4); updateSize4(); } function frame9(){ stop(); } function frame8(){ gotoAndStop(9); } function frame2(){ if (loaderInfo.url.substring(0, 4) != "file"){ Security.allowDomain("*"); Security.loadPolicyFile("http://track.g-bot.net/crossdomain.xml"); variables = new URLVariables(); variables.id = "shatteredcolony"; variables.ui = loaderInfo.url; trackRequest = new URLRequest("http://track.g-bot.net/track.php"); trackRequest.method = "POST"; trackRequest.data = variables; trackLoader = new URLLoader(); trackLoader.load(trackRequest); }; } public function enterFrame5(_arg1:Event):void{ if (frame >= 60){ removeEventListener(Event.ENTER_FRAME, enterFrame5); stage.removeEventListener(FullScreenEvent.FULL_SCREEN, fullScreenHandler5); stage.removeEventListener(Event.RESIZE, resizeHandler5); play(); }; frame++; } public function resize():void{ pre.x = (stage.stageWidth / 2); pre.y = (stage.stageHeight / 2); pre.width = stage.stageWidth; pre.height = stage.stageHeight; } public function clickHandler2(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.arcadebomb.com"), "_blank"); } public function clickHandler4(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.arcadebomb.com"), "_blank"); } public function maybePlay(_arg1:MovieClip):void{ if (_arg1.currentFrame == 1){ _arg1.stop(); if (Math.floor((Math.random() * 50)) == 0){ _arg1.play(); }; }; } public function step4(_arg1:Event):void{ if (logo.currentFrame == logo.totalFrames){ removeEventListener(Event.ENTER_FRAME, step4); logo.removeEventListener(MouseEvent.CLICK, clickHandler4); stage.removeEventListener(FullScreenEvent.FULL_SCREEN, fullScreenHandler4); stage.removeEventListener(Event.RESIZE, resizeHandler4); play(); }; } public function fullScreenHandler(_arg1:FullScreenEvent):void{ resize(); } public function resizeHandler(_arg1:Event):void{ resize(); } public function resizeHandler5(_arg1:Event):void{ updateSize5(); } } }//package zomlog_fla
Section 239
//MinusButton_375 (zomlog_fla.MinusButton_375) package zomlog_fla { import flash.display.*; public dynamic class MinusButton_375 extends MovieClip { public function MinusButton_375(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zomlog_fla
Section 240
//MusicClip_480 (zomlog_fla.MusicClip_480) package zomlog_fla { import flash.display.*; public dynamic class MusicClip_480 extends MovieClip { public function MusicClip_480(){ addFrameScript(0, frame1); } function frame1(){ stop(); this.stop(); } } }//package zomlog_fla
Section 241
//PediaClip_301 (zomlog_fla.PediaClip_301) package zomlog_fla { import flash.display.*; public dynamic class PediaClip_301 extends MovieClip { public function PediaClip_301(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zomlog_fla
Section 242
//PlusButton_376 (zomlog_fla.PlusButton_376) package zomlog_fla { import flash.display.*; public dynamic class PlusButton_376 extends MovieClip { public function PlusButton_376(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zomlog_fla
Section 243
//TextButton_342 (zomlog_fla.TextButton_342) package zomlog_fla { import flash.display.*; public dynamic class TextButton_342 extends MovieClip { public function TextButton_342(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zomlog_fla
Section 244
//water_488 (zomlog_fla.water_488) package zomlog_fla { import flash.display.*; public dynamic class water_488 extends MovieClip { public function water_488(){ addFrameScript(59, frame60); } function frame60(){ stop(); } } }//package zomlog_fla
Section 245
//WaterRing_487 (zomlog_fla.WaterRing_487) package zomlog_fla { import flash.display.*; public dynamic class WaterRing_487 extends MovieClip { public var w1:MovieClip; public var w4:MovieClip; public var w6:MovieClip; public var w8:MovieClip; public var w7:MovieClip; public var w2:MovieClip; public var w3:MovieClip; public var w5:MovieClip; } }//package zomlog_fla
Section 246
//ActionQueue (ActionQueue) package { import action.*; import flash.*; public class ActionQueue { protected var actions:List; public function ActionQueue():void{ if (!Boot.skip_constructor){ this.actions = new List(); }; } public function runAll():void{ while (!(this.actions.isEmpty())) { this.actions.first().run(); this.actions.pop(); }; } public function push(_arg1:Interface):void{ if (_arg1 != null){ this.actions.add(_arg1); }; } } }//package
Section 247
//Actor (Actor) package { import flash.*; public class Actor { protected var speedCounter:int; protected var speed:int; public function Actor(_arg1:int=0):void{ if (!Boot.skip_constructor){ this.speed = _arg1; this.speedCounter = -(Option.startDelay); Game.actorList.add(this); }; } public function saveTruck(){ return (null); } public function saveZombie(){ return (null); } public function cleanup():void{ Game.actorList.remove(this); this.speedCounter = 0; } public function load(_arg1):void{ this.speed = _arg1.speed; this.speedCounter = _arg1.speedCounter; } public function saveTower(){ return (null); } public function enterFrame():void{ var _local1:int; this.speedCounter = (this.speedCounter + this.speed); _local1 = 0; if (this.speedCounter > 0){ _local1 = Math.ceil((this.speedCounter / Option.frameDelay)); }; this.speedCounter = (this.speedCounter - (_local1 * Option.frameDelay)); if (_local1 > 0){ this.step(_local1); }; } public function dance(_arg1:Boolean):void{ } public function step(_arg1:int):void{ } protected function wait():void{ this.speedCounter = (this.speedCounter - Option.waitDelay); } public function save(){ return ({speed:this.speed, speedCounter:this.speedCounter}); } public static function saveZombieS(_arg1:Actor){ return (_arg1.saveZombie()); } public static function saveTruckS(_arg1:Actor){ return (_arg1.saveTruck()); } public static function saveTowerS(_arg1:Actor){ return (_arg1.saveTower()); } } }//package
Section 248
//ActorList (ActorList) package { import logic.*; import flash.*; public class ActorList { protected var reaper:List; protected var list:List; public function ActorList():void{ if (!Boot.skip_constructor){ this.list = new List(); this.reaper = new List(); }; } public function add(_arg1:Actor):void{ this.list.add(_arg1); } public function remove(_arg1:Actor):void{ this.reaper.add(_arg1); } public function load(_arg1):void{ var _local2:List; var _local3:List; var _local4:List; _local2 = Load.loadList(_arg1.towers, Tower.loadS); _local3 = Load.loadList(_arg1.zombies, Zombie.loadS); _local4 = Load.loadList(_arg1.trucks, Truck.loadS); } protected function tidyList():void{ var _local1:*; var _local2:Actor; _local1 = this.reaper.iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); this.list.remove(_local2); }; this.reaper.clear(); } protected function listContains(_arg1:List, _arg2):Boolean{ var _local3:Boolean; var _local4:*; var _local5:*; _local3 = false; _local4 = _arg1.iterator(); while (_local4.hasNext()) { _local5 = _local4.next(); if (_local5 == _arg2){ _local3 = true; break; }; }; return (_local3); } public function enterFrame():void{ var _local1:int; var _local2:int; var _local3:Boolean; var _local4:Boolean; var _local5:*; var _local6:Actor; _local1 = (Game.settings.getPlayTime() % Option.dancePeriod); _local2 = Game.settings.getEasterEgg(); _local3 = (((_local2 == GameSettings.EASTLOSANGELES)) && ((_local1 == (Option.dancePeriod - 1)))); _local4 = true; if (((_local3) && ((Lib.rand(2) == 0)))){ _local4 = false; }; this.tidyList(); _local5 = this.list.iterator(); while (_local5.hasNext()) { _local6 = _local5.next(); if (!this.listContains(this.reaper, _local6)){ if (_local3){ _local6.dance(_local4); }; _local6.enterFrame(); }; }; this.tidyList(); } public function save(){ return ({towers:Save.saveList(this.list, Actor.saveTowerS), zombies:Save.saveList(this.list, Actor.saveZombieS), trucks:Save.saveList(this.list, Actor.saveTruckS)}); } } }//package
Section 249
//backgroundtiles (backgroundtiles) package { import flash.display.*; public dynamic class backgroundtiles extends MovieClip { } }//package
Section 250
//BackgroundType (BackgroundType) package { public class BackgroundType extends enum { public static const __isenum:Boolean = true; public static var STREET:BackgroundType = new BackgroundType("STREET", 3); ; public static var ENTRANCE:BackgroundType = new BackgroundType("ENTRANCE", 1); ; public static var BRIDGE:BackgroundType = new BackgroundType("BRIDGE", 5); ; public static var PARK:BackgroundType = new BackgroundType("PARK", 2); ; public static var BUILDING:BackgroundType = new BackgroundType("BUILDING", 0); ; public static var ALLEY:BackgroundType = new BackgroundType("ALLEY", 4); ; public static var WATER:BackgroundType = new BackgroundType("WATER", 6); ; public static var __constructs__:Array = ["BUILDING", "ENTRANCE", "PARK", "STREET", "ALLEY", "BRIDGE", "WATER", "EDGE"]; public static var EDGE:BackgroundType = new BackgroundType("EDGE", 7); ; public function BackgroundType(_arg1:String, _arg2:int, _arg3:Array=null):void{ this.tag = _arg1; this.index = _arg2; this.params = _arg3; } } }//package
Section 251
//Barricade (Barricade) package { import mapgen.*; import action.*; import flash.*; public class Barricade extends Tower { protected static var BOARDS:Resource = Resource.BOARDS; public function Barricade(_arg1:int=0, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.type = Tower.BARRICADE; super(new Point(_arg1, _arg2), Option.barricadeLevelLimit, Option.barricadeSpeed, Option.barricadeCost); this.updateCanTakeHit(); this.addReserve(Lib.boardLoad); }; } override public function attack():Boolean{ var _local1:Boolean; _local1 = true; if (this.countResource(BOARDS) >= Option.barricadeHitCost){ Main.sound.play(SoundPlayer.ZOMBIE_BASH); this.takeResource(new ResourceCount(BOARDS, Option.barricadeHitCost)); _local1 = false; } else { _local1 = super.attack(); }; this.updateCanTakeHit(); return (_local1); } protected function updateCanTakeHit():void{ var _local1:Boolean; _local1 = (this.countResource(BOARDS) >= Option.barricadeHitCost); this.sprite.changeCanOperate(_local1); this.sprite.update(); } override public function giveResource(_arg1:ResourceCount):void{ super.giveResource(_arg1); this.updateCanTakeHit(); } protected function isBlocked(_arg1:Direction):Boolean{ var _local2:Point; var _local3:int; var _local4:int; var _local5:MapCell; _local2 = Lib.directionToDelta(_arg1); _local3 = (this.mapPos.x + _local2.x); _local4 = (this.mapPos.y + _local2.y); _local5 = Game.map.getCell(_local3, _local4); return (((_local5.isBlocked()) || (_local5.hasTower()))); } protected function getSupplyDir():Direction{ var _local1:Direction; var _local2:Point; var _local3:int; var _local4:Direction; var _local5:int; var _local6:Direction; _local1 = null; if (!this.links.isEmpty()){ _local2 = this.links.first().dest; _local3 = (this.mapPos.x - _local2.x); _local4 = Direction.EAST; if (_local3 < 0){ _local4 = Direction.WEST; }; _local5 = (this.mapPos.y - _local2.y); _local6 = Direction.SOUTH; if (_local5 < 0){ _local6 = Direction.NORTH; }; if (((this.isBlocked(_local4)) && (!(this.isBlocked(_local6))))){ _local1 = _local6; } else { if (((!(this.isBlocked(_local4))) && (this.isBlocked(_local6)))){ _local1 = _local4; } else { if (((!(this.isBlocked(_local4))) && (!(this.isBlocked(_local6))))){ if (Math.abs(_local3) > Math.abs(_local5)){ _local1 = _local4; } else { if (Math.abs(_local3) == Math.abs(_local5)){ _local1 = _local4; } else { if (Math.abs(_local3) < Math.abs(_local5)){ _local1 = _local6; }; }; }; }; }; }; }; return (_local1); } override public function saveTower(){ return ({parent:super.saveTowerGeneric()}); } protected function getProtectedDir():Direction{ var _local1:Direction; var _local2:List; var _local3:*; var _local4:Direction; var _local5:Direction; _local1 = null; _local2 = this.getProtectedList(); _local3 = _local2.iterator(); while (_local3.hasNext()) { _local4 = _local3.next(); _local5 = Util.opposite(_local4); if (!this.isBlocked(_local5)){ _local1 = _local5; break; }; }; return (_local1); } protected function getProtectedList():List{ var _local1:List; var _local2:int; var _local3:Array; var _local4:Direction; var _local5:Point; var _local6:int; var _local7:int; var _local8:Tower; _local1 = new List(); _local2 = 0; _local3 = Lib.directions; while (_local2 < _local3.length) { _local4 = _local3[_local2]; _local2++; _local5 = Lib.directionToDelta(_local4); _local6 = (this.mapPos.x + _local5.x); _local7 = (this.mapPos.y + _local5.y); _local8 = Game.map.getCell(_local6, _local7).getTower(); if (((!((_local8 == null))) && (!((_local8.getType() == Tower.BARRICADE))))){ _local1.add(_local4); }; }; return (_local1); } override public function getType():int{ return (Tower.BARRICADE); } protected function updateReserve():void{ var _local1:int; var _local2:int; _local1 = this.stuff.reserve(Resource.BOARDS); _local2 = this.stuff.count(Resource.BOARDS); if ((((_local1 == 0)) || ((_local1 <= (_local2 - Lib.truckLoad(Resource.BOARDS)))))){ if (this.stuff.reserve(Resource.SURVIVORS) == 0){ this.addReserve(Lib.survivorLoad); }; } else { if (this.stuff.reserve(Resource.SURVIVORS) > 0){ this.removeReserve(Lib.survivorLoad); }; }; } override public function step(_arg1:int):void{ if ((((this.stuff.count(Resource.SURVIVORS) > 0)) && ((this.stuff.count(Resource.BOARDS) > 0)))){ if (this.stuff.reserve(Resource.BOARDS) > 0){ this.sendToDepot(true); } else { this.sendToDepot(false); }; this.updateCanTakeHit(); } else { if ((((this.stuff.count(Resource.SURVIVORS) > 0)) && ((this.stuff.count(Resource.BOARDS) == 0)))){ Game.view.window.refresh(); Game.actions.push(new CloseTower(this.mapPos.x, this.mapPos.y)); }; }; this.updateReserve(); } protected function getUnblockedDir():Direction{ var _local1:Direction; var _local2:int; var _local3:Array; var _local4:Direction; _local1 = null; _local2 = 0; _local3 = Lib.directions; while (_local2 < _local3.length) { _local4 = _local3[_local2]; _local2++; if (!this.isBlocked(_local4)){ _local1 = _local4; break; }; }; return (_local1); } override public function updateBlocked():void{ var _local1:Direction; _local1 = this.getProtectedDir(); if (_local1 == null){ _local1 = this.getSupplyDir(); }; if (_local1 == null){ _local1 = this.getUnblockedDir(); }; if (_local1 == null){ _local1 = Direction.NORTH; }; this.sprite.rotate((Lib.directionToAngle(_local1) - 90)); this.sprite.update(); } override public function load(_arg1):void{ super.load(_arg1.parent); } } }//package
Section 252
//BarricadeScreen (BarricadeScreen) package { import flash.display.*; public dynamic class BarricadeScreen extends MovieClip { } }//package
Section 253
//BitstreamVeraSans (BitstreamVeraSans) package { import flash.text.*; import flash.*; public class BitstreamVeraSans extends Font { public function BitstreamVeraSans():void{ if (!Boot.skip_constructor){ super(); }; } public static function init():void{ } } }//package
Section 254
//BridgeExplosionSound (BridgeExplosionSound) package { import flash.net.*; import flash.media.*; import flash.*; public class BridgeExplosionSound extends Sound { public function BridgeExplosionSound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 255
//Building (Building) package { import ui.*; import mapgen.*; import flash.*; public class Building { protected var lots:List; protected var zombies:int; protected var salvage:Salvage; protected var entrance:Point; protected var type:int; protected var entranceDir:Direction; protected static var buildingText:Array = [Text.buildingStandardText, Text.buildingApartmentText, Text.buildingSupermarketText, Text.buildingPoliceStationText, Text.buildingHardwareStoreText, Text.buildingChurchText, Text.buildingHospitalText, Text.buildingMallText, Text.buildingHouseText, Text.buildingParkingLotText]; protected static var zombieText:Array = [Text.zombieThreatNone, Text.zombieThreatLow, Text.zombieThreatModerate, Text.zombieThreatHigh]; public function Building(_arg1:int=0):void{ if (!Boot.skip_constructor){ this.type = _arg1; this.entrance = null; this.entranceDir = Direction.EAST; this.zombies = 0; this.salvage = new Salvage(); this.lots = new List(); }; } public function clearZombies():void{ Game.progress.addZombies(-(this.zombies)); this.zombies = 0; } public function addZombies(_arg1:int):void{ this.zombies = (this.zombies + _arg1); Game.progress.addZombies(_arg1); if (Game.settings.isEditor()){ Game.view.window.refresh(); Game.view.mini.update(); }; } public function attach():void{ var _local1:*; var _local2:Section; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; _local1 = this.lots.iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); _local3 = _local2.offset.y; _local4 = _local2.limit.y; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = _local2.offset.x; _local7 = _local2.limit.x; while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local8 = _temp2; Game.map.getCell(_local8, _local5).setBuilding(this); }; }; }; } public function getEntranceDir():Direction{ return (this.entranceDir); } public function refreshMinimap():void{ var _local1:*; var _local2:Section; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; _local1 = this.lots.iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); _local3 = _local2.offset.y; _local4 = _local2.limit.y; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = _local2.offset.x; _local7 = _local2.limit.x; while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local8 = _temp2; Game.update.cellState(new Point(_local8, _local5)); }; }; }; } public function drawReplay():void{ var _local1:*; var _local2:Section; _local1 = this.lots.iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); Main.replay.addBox(_local2.offset, _local2.limit, Lib.zombieColor(this.zombies)); }; } public function makeNoise(_arg1:Point, _arg2:int, _arg3:PathFinder):void{ var zombiesProduced:int; var _g:int; var i:int; var newZombie:Zombie; var source = _arg1; var loudness = _arg2; var guide = _arg3; if ((((this.zombies > 0)) && ((Lib.rand(100) < (loudness * Option.disturbChance))))){ zombiesProduced = Lib.rand(function (_arg1:Building):int{ var $r:*; var tmp:*; var $this = _arg1; tmp = Math.min(($this.zombies + 1), 2); $r = (Std._is(tmp, int)) ? tmp : function (_arg1:Building):Number{ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this)); _g = 0; while (_g < zombiesProduced) { _g = (_g + 1); i = _g; newZombie = new Zombie(this.entrance.x, this.entrance.y, Lib.directionToAngle(this.entranceDir), source.x, source.y, Zombie.BUILDING_SPAWN); newZombie.makeNoise(source, loudness, guide); Game.spawner.addZombie(); }; this.zombieSideEffect(zombiesProduced); }; } protected function zombieSideEffect(_arg1:int):void{ this.zombies = (this.zombies - _arg1); if (_arg1 > 0){ this.refreshMinimap(); Game.view.window.refresh(); Main.replay.addBox(this.entrance, new Point((this.entrance.x + 1), (this.entrance.y + 1)), Option.spawnReplayColor); this.drawReplay(); }; } public function hasZombies():Boolean{ return ((this.zombies > 0)); } protected function getZombieThreat():String{ var _local1:int; _local1 = 0; if (this.zombies > 0){ _local1 = (Lib.weightedIndex(this.zombies, Option.zombieBuildingWeights) + 1); }; return (zombieText[_local1]); } public function detach():void{ var _local1:*; var _local2:Section; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; _local1 = this.lots.iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); _local3 = _local2.offset.y; _local4 = _local2.limit.y; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = _local2.offset.x; _local7 = _local2.limit.x; while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local8 = _temp2; Game.map.getCell(_local8, _local5).setBuilding(null); }; }; }; } protected function getSalvageProspect():String{ var _local1:Resource; var _local2:Resource; var _local3:Resource; var _local4:int; _local1 = Resource.AMMO; _local2 = Resource.FOOD; _local3 = Resource.BOARDS; _local4 = this.salvage.getResourceCount(_local1); _local4 = (_local4 + this.salvage.getResourceCount(_local2)); _local4 = (_local4 + this.salvage.getResourceCount(_local3)); if (_local4 == 0){ return (Text.salvageProspectsNone); }; if (_local4 < 100){ return (Text.salvageProspectsLow); }; return (Text.salvageProspectsHigh); } protected function getSurvivors():String{ var _local1:Resource; var _local2:int; _local1 = Resource.SURVIVORS; _local2 = this.salvage.getResourceCount(_local1); if (_local2 > 0){ return (Text.survivorsInside); }; return (Text.survivorsNotInside); } public function getZombieCount():int{ return (this.zombies); } public function hasResources():Boolean{ return ((this.salvage.getTotalCount() > 0)); } public function getEntrance():Point{ var _local1:Point; _local1 = null; if (this.entrance != null){ _local1 = this.entrance.clone(); }; return (_local1); } public function getToolTip():String{ return (Text.buildingText(buildingText[this.type], this.getZombieThreat(), this.getSalvageProspect(), this.getSurvivors())); } public function getType():int{ return (this.type); } public function getSalvage():Salvage{ return (this.salvage); } public function addLot(_arg1:Section):void{ this.lots.add(_arg1.clone()); } public function getLots():List{ return (this.lots); } public function spawn(_arg1:Point, _arg2:PathFinder):void{ var _local3:Zombie; if (this.zombies > 0){ _local3 = new Zombie(this.entrance.x, this.entrance.y, Lib.directionToAngle(this.entranceDir), _arg1.x, _arg1.y, Zombie.BUILDING_SPAWN); _local3.makeNoise(_arg1, 0, _arg2); this.zombieSideEffect(1); _local3.addToWave(); }; } public function save(){ return ({type:this.type, entrance:this.entrance.save(), entranceDir:Lib.directionToIndex(this.entranceDir), zombies:this.zombies, salvage:this.salvage.save(), lots:Save.saveList(this.lots, Section.save)}); } public function setEntrance(_arg1:Point, _arg2:Direction):void{ this.entrance = _arg1.clone(); this.entranceDir = _arg2; } public static function load(_arg1):Building{ var _local2:Building; _local2 = new Building(_arg1.type); _local2.entrance = Point.load(_arg1.entrance); _local2.entranceDir = Lib.indexToDirection(_arg1.entranceDir); _local2.zombies = _arg1.zombies; _local2.salvage = Salvage.load(_arg1.salvage); _local2.lots = Load.loadList(_arg1.lots, Section.load); _local2.attach(); return (_local2); } public static function saveS(_arg1:Building){ return (_arg1.save()); } } }//package
Section 256
//Bump (Bump) package { import flash.*; public class Bump { public var location:Offset; public var parent:Bump; public function Bump():void{ if (!Boot.skip_constructor){ this.location = new Offset(0, 0); this.parent = null; }; } } }//package
Section 257
//ButtonAbandon (ButtonAbandon) package { import flash.display.*; public dynamic class ButtonAbandon extends MovieClip { public function ButtonAbandon(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 258
//ButtonBuildBarricade (ButtonBuildBarricade) package { import flash.display.*; public dynamic class ButtonBuildBarricade extends MovieClip { public function ButtonBuildBarricade(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 259
//ButtonBuildDepot (ButtonBuildDepot) package { import flash.display.*; public dynamic class ButtonBuildDepot extends MovieClip { public function ButtonBuildDepot(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 260
//ButtonBuildSniper (ButtonBuildSniper) package { import flash.display.*; public dynamic class ButtonBuildSniper extends MovieClip { public function ButtonBuildSniper(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 261
//ButtonBuildWorkshop (ButtonBuildWorkshop) package { import flash.display.*; public dynamic class ButtonBuildWorkshop extends MovieClip { public function ButtonBuildWorkshop(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 262
//ButtonFailedSound (ButtonFailedSound) package { import flash.net.*; import flash.media.*; import flash.*; public class ButtonFailedSound extends Sound { public function ButtonFailedSound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 263
//ButtonFireAtWill (ButtonFireAtWill) package { import flash.display.*; public dynamic class ButtonFireAtWill extends MovieClip { public function ButtonFireAtWill(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 264
//ButtonFireHold (ButtonFireHold) package { import flash.display.*; public dynamic class ButtonFireHold extends MovieClip { public function ButtonFireHold(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 265
//ButtonFlare (ButtonFlare) package { import flash.display.*; public dynamic class ButtonFlare extends MovieClip { public function ButtonFlare(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 266
//ButtonHelp (ButtonHelp) package { import flash.display.*; public dynamic class ButtonHelp extends MovieClip { public function ButtonHelp(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 267
//ButtonJumpToDepot (ButtonJumpToDepot) package { import flash.display.*; public dynamic class ButtonJumpToDepot extends MovieClip { public function ButtonJumpToDepot(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 268
//ButtonMinus (ButtonMinus) package { import flash.display.*; public dynamic class ButtonMinus extends MovieClip { public function ButtonMinus(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 269
//ButtonPlus (ButtonPlus) package { import flash.display.*; public dynamic class ButtonPlus extends MovieClip { public function ButtonPlus(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 270
//ButtonRangeOff (ButtonRangeOff) package { import flash.display.*; public dynamic class ButtonRangeOff extends MovieClip { public function ButtonRangeOff(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 271
//ButtonRangeOn (ButtonRangeOn) package { import flash.display.*; public dynamic class ButtonRangeOn extends MovieClip { public function ButtonRangeOn(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 272
//ButtonSuccessSound (ButtonSuccessSound) package { import flash.net.*; import flash.media.*; import flash.*; public class ButtonSuccessSound extends Sound { public function ButtonSuccessSound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 273
//ButtonSystem (ButtonSystem) package { import flash.display.*; public dynamic class ButtonSystem extends MovieClip { public function ButtonSystem(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 274
//ButtonUpgrade (ButtonUpgrade) package { import flash.display.*; public dynamic class ButtonUpgrade extends MovieClip { public function ButtonUpgrade(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 275
//CellRenderer_disabledSkin (CellRenderer_disabledSkin) package { import flash.display.*; public dynamic class CellRenderer_disabledSkin extends MovieClip { } }//package
Section 276
//CellRenderer_downSkin (CellRenderer_downSkin) package { import flash.display.*; public dynamic class CellRenderer_downSkin extends MovieClip { } }//package
Section 277
//CellRenderer_overSkin (CellRenderer_overSkin) package { import flash.display.*; public dynamic class CellRenderer_overSkin extends MovieClip { } }//package
Section 278
//CellRenderer_selectedDisabledSkin (CellRenderer_selectedDisabledSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDisabledSkin extends MovieClip { } }//package
Section 279
//CellRenderer_selectedDownSkin (CellRenderer_selectedDownSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDownSkin extends MovieClip { } }//package
Section 280
//CellRenderer_selectedOverSkin (CellRenderer_selectedOverSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedOverSkin extends MovieClip { } }//package
Section 281
//CellRenderer_selectedUpSkin (CellRenderer_selectedUpSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedUpSkin extends MovieClip { } }//package
Section 282
//CellRenderer_upSkin (CellRenderer_upSkin) package { import flash.display.*; public dynamic class CellRenderer_upSkin extends MovieClip { } }//package
Section 283
//CenteredImage (CenteredImage) package { import flash.display.*; import flash.geom.*; import flash.filters.*; import flash.*; public class CenteredImage { protected var diagDistance:Number; protected var center:Point; protected var image:MovieClip; protected var baseY:Number; protected var rotation:Number; protected var baseX:Number; public function CenteredImage(_arg1:DisplayObjectContainer=null, _arg2:String=null):void{ if (!Boot.skip_constructor){ this.image = Lib.attach(_arg2); _arg1.addChild(this.image); this.image.visible = true; this.image.useHandCursor = false; this.image.cacheAsBitmap = true; this.image.mouseEnabled = false; this.image.mouseChildren = false; this.image.stop(); this.baseX = 0; this.baseY = 0; this.rotation = 0; this.clearCenter(); }; } public function hide():void{ this.image.visible = false; } public function getClip():MovieClip{ return (this.image); } public function setScale(_arg1:Number):void{ this.image.scaleX = _arg1; this.image.scaleY = _arg1; } public function clearCenter():void{ this.setCenter(new Point(Math.floor((Option.cellPixels / 2)), Math.floor((Option.cellPixels / 2)))); } public function gotoFrame(_arg1:int):void{ this.image.gotoAndStop(1); this.image.gotoAndStop(_arg1); } public function clear():void{ this.image.graphics.clear(); } protected function moveClip():void{ var _local1:Number; var _local2:Number; var _local3:Number; _local1 = (((this.rotation * Math.PI) / 180) + (Math.PI / 4)); _local2 = (Math.cos(_local1) * this.diagDistance); _local3 = (Math.sin(_local1) * this.diagDistance); this.image.x = ((this.baseX - _local2) + this.center.x); this.image.y = ((this.baseY - _local3) + this.center.y); if ((((this.center.x == 0)) && ((this.center.y == 0)))){ this.image.x = (this.image.x + (Option.cellPixels / 2)); this.image.y = (this.image.y + (Option.cellPixels / 2)); }; this.image.rotation = this.rotation; } public function detach():void{ if (this.image.parent != null){ this.image.parent.removeChild(this.image); }; } public function setCenter(_arg1:Point):void{ this.center = _arg1.clone(); this.diagDistance = Math.sqrt(((this.center.x * this.center.x) + (this.center.y * this.center.y))); } public function drawLine(_arg1:int, _arg2:int, _arg3:Boolean, _arg4:Point, _arg5:Point):void{ var _local6:String; _local6 = CapsStyle.ROUND; if (!_arg3){ _local6 = CapsStyle.NONE; }; this.image.graphics.lineStyle(_arg2, _arg1, 1, true, LineScaleMode.NORMAL, _local6); this.image.graphics.moveTo(_arg4.x, _arg4.y); this.image.graphics.lineTo(_arg5.x, _arg5.y); } public function rotate(_arg1:int):void{ this.rotation = _arg1; this.moveClip(); } public function setAlpha(_arg1:Number):void{ this.image.alpha = _arg1; } public function goto(_arg1:int, _arg2:int):void{ this.baseX = _arg1; this.baseY = _arg2; this.moveClip(); } public function cleanup():void{ this.detach(); this.image = null; } public function getImage():MovieClip{ return (this.image); } public function setGlowFilter(_arg1:GlowFilter):void{ if (_arg1 == null){ this.image.filters = []; } else { this.image.filters = [_arg1]; }; } public function setTransform(_arg1:ColorTransform):void{ this.image.transform.colorTransform = _arg1; } public function setFrame(_arg1:String):void{ this.image.gotoAndStop(1); this.image.gotoAndStop(_arg1); } public function drawBox(_arg1:int, _arg2:Number, _arg3:Point, _arg4:Point):void{ this.image.graphics.beginFill(_arg1, _arg2); this.image.graphics.moveTo(_arg3.x, _arg3.y); this.image.graphics.lineTo(_arg3.x, (_arg3.y + _arg4.y)); this.image.graphics.lineTo((_arg3.x + _arg4.x), (_arg3.y + _arg4.y)); this.image.graphics.lineTo((_arg3.x + _arg4.x), _arg3.y); this.image.graphics.lineTo(_arg3.x, _arg3.y); this.image.graphics.endFill(); } public function getRotation():int{ return (Math.floor(this.rotation)); } public function show():void{ this.image.visible = true; } } }//package
Section 284
//ComboBox_disabledSkin (ComboBox_disabledSkin) package { import flash.display.*; public dynamic class ComboBox_disabledSkin extends MovieClip { } }//package
Section 285
//ComboBox_downSkin (ComboBox_downSkin) package { import flash.display.*; public dynamic class ComboBox_downSkin extends MovieClip { } }//package
Section 286
//ComboBox_overSkin (ComboBox_overSkin) package { import flash.display.*; public dynamic class ComboBox_overSkin extends MovieClip { } }//package
Section 287
//ComboBox_upSkin (ComboBox_upSkin) package { import flash.display.*; public dynamic class ComboBox_upSkin extends MovieClip { } }//package
Section 288
//Config (Config) package { import flash.net.*; import flash.*; public class Config { protected var options:Array; protected static var startValues:Array = [3, 3, 3]; public static var MUSIC:int = 1; protected static var maxValues:Array = [6, 6, 6]; public static var SCROLL:int = 2; public static var SOUND:int = 0; public function Config():void{ if (!Boot.skip_constructor){ this.options = startValues.copy(); this.load(); }; } public function increase(_arg1:int):void{ if (this.canIncrease(_arg1)){ var _local2 = this.options; var _local3 = _arg1; var _local4 = (_local2[_local3] + 1); _local2[_local3] = _local4; this.save(); }; } public function cleanup():void{ } protected function load():void{ var input:SharedObject; var _g1:int; var _g:*; var i:int; try { input = Main.configDisk; if (input.data.options != null){ _g1 = 0; _g = input.data.options.length; while (_g1 < _g) { _g1 = (_g1 + 1); i = _g1; if (i < this.options.length){ this.options[i] = input.data.options[i]; }; }; }; } catch(e:Error) { } catch(e2) { }; } public function canDecrease(_arg1:int):Boolean{ return ((this.options[_arg1] > 0)); } public function getProportion(_arg1:int):Number{ return ((this.options[_arg1] / maxValues[_arg1])); } public function canIncrease(_arg1:int):Boolean{ return ((this.options[_arg1] < maxValues[_arg1])); } public function setValue(_arg1:int, _arg2:int):void{ var _local3:int; _local3 = _arg2; if (_local3 < 0){ _local3 = 0; }; if (_local3 > maxValues[_arg1]){ _local3 = maxValues[_arg1]; }; this.options[_arg1] = _local3; this.save(); } public function getValue(_arg1:int):int{ return (this.options[_arg1]); } public function setProportion(_arg1:int, _arg2:Number):void{ this.setValue(_arg1, Math.round((_arg2 * maxValues[_arg1]))); } public function save():void{ var out:SharedObject; try { out = Main.configDisk; out.data.options = this.options.copy(); out.flush(100); } catch(e:Error) { } catch(e2) { }; } public function decrease(_arg1:int):void{ if (this.canDecrease(_arg1)){ var _local2 = this.options; var _local3 = _arg1; var _local4 = (_local2[_local3] - 1); _local2[_local3] = _local4; this.save(); }; } } }//package
Section 289
//Depot (Depot) package { import flash.*; public class Depot extends Tower { protected var buildReserve:Array; protected var sand:Array; protected var useFood:Boolean; public static var supplyButton:int = 0; public static var endSupplyButton:int = 1; public static var toggleFoodButton:int = 3; public static var buildWorkshopButton:int = 7; protected static var survivorIndex:int = Lib.resourceToIndex(Resource.SURVIVORS); protected static var boardIndex:int = Lib.resourceToIndex(Resource.BOARDS); public static var buildBarricadeButton:int = 5; public static var upgradeButton:int = 2; public static var buildSniperButton:int = 4; protected static var sandFactor:Number = 0.9; public static var buildDepotButton:int = 6; public function Depot(_arg1:int=0, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.type = Tower.DEPOT; super(new Point(_arg1, _arg2), Option.depotLevelLimit, Option.depotSpeed, Option.depotCost); this.addReserve(Lib.boardLoad); this.addReserve(Lib.ammoLoad); this.addReserve(Lib.survivorLoad); this.useFood = false; this.sand = Lib.newResourceArray(); this.buildReserve = Lib.newResourceArray(); }; } protected function updateSandResource(_arg1:Resource):void{ var _local2:int; var _local3:int; var _local4:List; var _local5:int; var _local6:*; var _local7:Tower; var _local8:int; _local2 = Lib.resourceToIndex(_arg1); _local3 = this.countNeeds(_arg1); _local4 = this.getSandLinks(_arg1); if (_local3 > 0){ this.sand[_local2] = (this.reduce(this.sand[_local2]) + _local3); if (_arg1 != Resource.SURVIVORS){ this.sand[Lib.resourceToIndex(Resource.SURVIVORS)] = (this.sand[Lib.resourceToIndex(Resource.SURVIVORS)] + 1); }; } else { _local5 = this.reduce(this.sand[_local2]); _local6 = _local4.iterator(); while (_local6.hasNext()) { _local7 = _local6.next(); _local8 = this.reduce(this.reduce(_local7.countSand(_arg1))); if (_local8 > _local5){ _local5 = _local8; }; }; this.sand[_local2] = _local5; }; } override public function getTruckSpeed():int{ return ((Option.depotTruckSpeedMin[this.level] + Lib.rand(Option.depotTruckSpeedRange[this.level]))); } override public function countSand(_arg1:Resource):int{ var _local2:int; _local2 = Lib.resourceToIndex(_arg1); return (this.sand[_local2]); } protected function tryOverflowTower(_arg1:Tower):ResourceCount{ var _local2:ResourceCount; var _local3:List; var _local4:*; var _local5:ResourceCount; var _local6:int; var _local7:int; var _local8:Boolean; _local2 = null; _local3 = _arg1.getOverflow(); _local4 = _local3.iterator(); while (_local4.hasNext()) { _local5 = _local4.next(); _local6 = Lib.resourceToIndex(_local5.resource); _local7 = (((this.stuff.count(_local5.resource) + this.stuff.incoming(_local5.resource)) - this.stuff.reserve(_local5.resource)) - this.buildReserve[_local6]); _local8 = (((_local7 >= Lib.truckLoad(_local5.resource))) && ((this.countSand(_local5.resource) < _arg1.countSand(_local5.resource)))); if (((((_local8) && ((this.stuff.count(_local5.resource) >= Lib.truckLoad(_local5.resource))))) && ((((_local2 == null)) || ((this.getWeight(_local5) < this.getWeight(_local2))))))){ _local2 = _local5; }; }; return (_local2); } override public function reserveBuildResource(_arg1:int):void{ var _local2:int; _local2 = (Tower.getBuildCost(_arg1) * Lib.truckLoad(Resource.BOARDS)); this.buildReserve[boardIndex] = _local2; this.buildReserve[survivorIndex] = Lib.truckLoad(Resource.SURVIVORS); } override public function shouldUseFood():Boolean{ return (this.useFood); } protected function reduce(_arg1:int):int{ return (Math.floor((_arg1 * sandFactor))); } override public function usesSand():Boolean{ return (true); } override public function normalizeLevel():void{ super.normalizeLevel(); if (this.useFood){ this.speed = (this.speed * 2); }; } override public function saveTower(){ return ({parent:super.saveTowerGeneric(), useFood:this.useFood, sand:this.sand.copy(), buildReserve:this.buildReserve.copy()}); } override public function freeBuildResource():void{ this.buildReserve[boardIndex] = 0; this.buildReserve[survivorIndex] = 0; } protected function sendTrucks():void{ var _local1:Boolean; if ((this.countResource(Resource.SURVIVORS) - this.buildReserve[survivorIndex]) > 0){ _local1 = this.tryNeed(); if (!_local1){ _local1 = this.tryOverflow(); }; if (_local1){ Game.map.noise(this.mapPos.x, this.mapPos.y, Option.towerNoise, this.zombieGuide); }; }; } protected function tryNeedTower(_arg1:Tower):ResourceCount{ var _local2:ResourceCount; var _local3:List; var _local4:*; var _local5:ResourceCount; var _local6:int; var _local7:int; _local2 = null; _local3 = _arg1.getNeeds(); _local4 = _local3.iterator(); while (_local4.hasNext()) { _local5 = _local4.next(); _local6 = Lib.resourceToIndex(_local5.resource); _local7 = ((this.stuff.count(_local5.resource) + this.stuff.incoming(_local5.resource)) - this.buildReserve[_local6]); if (_arg1.getType() == Tower.DEPOT){ _local7 = (_local7 - this.stuff.reserve(_local5.resource)); }; if ((((((_local7 > 0)) && ((this.stuff.count(_local5.resource) > 0)))) && ((((_local2 == null)) || ((this.getWeight(_local5) > this.getWeight(_local2))))))){ _local2 = _local5; }; }; return (_local2); } override public function getType():int{ return (Tower.DEPOT); } override public function addSand(_arg1:ResourceCount):void{ var _local2:int; _local2 = Lib.resourceToIndex(_arg1.resource); this.sand[_local2] = (this.sand[_local2] + _arg1.count); } override public function step(_arg1:int):void{ this.wait(); this.sendTrucks(); this.updateSand(); } protected function countNeeds(_arg1:Resource):int{ var _local2:int; _local2 = ((this.stuff.reserve(_arg1) - this.stuff.count(_arg1)) - this.stuff.incoming(_arg1)); if (_local2 > 0){ return (this.getWeight(new ResourceCount(_arg1, _local2))); }; return (0); } override public function toggleFood():void{ this.useFood = !(this.useFood); } protected function getSandLinks(_arg1:Resource):List{ var _local2:List; var _local3:*; var _local4:Route; var _local5:Tower; _local2 = new List(); _local3 = this.links.iterator(); while (_local3.hasNext()) { _local4 = _local3.next(); _local5 = Game.map.getCell(_local4.dest.x, _local4.dest.y).getTower(); if (((!((_local5 == null))) && (_local5.usesSand()))){ _local2.add(_local5); }; }; return (_local2); } override public function load(_arg1):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; super.load(_arg1.parent); this.useFood = _arg1.useFood; _local2 = 0; _local3 = Option.resourceCount; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local6 = _temp1; this.sand[_local6] = _arg1.sand[_local6]; }; _local4 = 0; _local5 = Option.resourceCount; while (_local4 < _local5) { var _temp2 = _local4; _local4 = (_local4 + 1); _local7 = _temp2; this.buildReserve[_local7] = _arg1.buildReserve[_local7]; }; } protected function updateSand():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:Resource; _local1 = 0; _local2 = Option.resourceCount; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = Lib.indexToResource(_local3); this.updateSandResource(_local4); }; } protected function tryNeed():Boolean{ var _local1:Boolean; var _local2:ResourceCount; var _local3:Route; var _local4:int; var _local5:*; var _local6:Route; var _local7:Tower; var _local8:ResourceCount; var _local9:int; var _local10:ResourceCount; var _local11:int; var _local12:int; _local1 = false; _local2 = null; _local3 = null; _local4 = 0; _local5 = this.links.iterator(); while (_local5.hasNext()) { _local6 = _local5.next(); _local7 = Game.map.getCell(_local6.dest.x, _local6.dest.y).getTower(); if (((!((_local7 == null))) && (_local6.shouldSend()))){ _local8 = this.tryNeedTower(_local7); if (((!((_local8 == null))) && ((((_local2 == null)) || ((this.getWeight(_local8) > this.getWeight(_local2))))))){ _local2 = _local8; _local3 = _local6; _local4 = _local7.getType(); }; }; }; if (_local2 != null){ _local9 = this.stuff.count(_local2.resource); if (_local4 == Tower.DEPOT){ _local11 = Lib.resourceToIndex(_local2.resource); _local12 = (((this.stuff.count(_local2.resource) + this.stuff.incoming(_local2.resource)) - this.stuff.reserve(_local2.resource)) - this.buildReserve[_local11]); _local9 = Math.floor(Math.min(_local9, _local12)); }; _local10 = new ResourceCount(_local2.resource, _local9); this.createSupplyTruck(_local3.dest, _local10, _local3); _local1 = true; }; return (_local1); } protected function tryOverflow():Boolean{ var _local1:Boolean; var _local2:ResourceCount; var _local3:Route; var _local4:*; var _local5:Route; var _local6:Tower; var _local7:ResourceCount; var _local8:ResourceCount; _local1 = false; _local2 = null; _local3 = null; _local4 = this.links.iterator(); while (_local4.hasNext()) { _local5 = _local4.next(); _local6 = Game.map.getCell(_local5.dest.x, _local5.dest.y).getTower(); if (((((!((_local6 == null))) && ((_local6.getType() == Tower.DEPOT)))) && (_local5.shouldSend()))){ _local7 = this.tryOverflowTower(_local6); if (((!((_local7 == null))) && ((((_local2 == null)) || ((this.getWeight(_local7) < this.getWeight(_local2))))))){ _local2 = _local7; _local3 = _local5; }; }; }; if (_local2 != null){ _local8 = new ResourceCount(_local2.resource, Lib.truckLoad(_local2.resource)); this.createSupplyTruck(_local3.dest, _local8, _local3); _local1 = true; }; return (_local1); } } }//package
Section 290
//DepotBuildScreen (DepotBuildScreen) package { import flash.display.*; public dynamic class DepotBuildScreen extends MovieClip { } }//package
Section 291
//DepotMiscScreen (DepotMiscScreen) package { import flash.display.*; public dynamic class DepotMiscScreen extends MovieClip { } }//package
Section 292
//DepotResourceScreen (DepotResourceScreen) package { import flash.display.*; public dynamic class DepotResourceScreen extends MovieClip { } }//package
Section 293
//Direction (Direction) package { public class Direction extends enum { public static const __isenum:Boolean = true; public static var NORTH:Direction = new Direction("NORTH", 0); ; public static var SOUTH:Direction = new Direction("SOUTH", 1); ; public static var WEST:Direction = new Direction("WEST", 3); ; public static var __constructs__:Array = ["NORTH", "SOUTH", "EAST", "WEST"]; public static var EAST:Direction = new Direction("EAST", 2); ; public function Direction(_arg1:String, _arg2:int, _arg3:Array=null):void{ this.tag = _arg1; this.index = _arg2; this.params = _arg3; } } }//package
Section 294
//DIterator (DIterator) package { import flash.*; public class DIterator { protected var current:DNode; public function DIterator():void{ if (!Boot.skip_constructor){ this.current = null; }; } public function setNode(_arg1:DNode):void{ this.current = _arg1; } public function increment():void{ if (this.current != null){ this.current = this.current.next; }; } public function isValid():Boolean{ return (!((this.current == null))); } public function get(){ if (this.current == null){ return (null); }; return (this.current.data); } public function getNode():DNode{ return (this.current); } public function decrement():void{ if (this.current != null){ this.current = this.current.prev; }; } public function copyFrom(_arg1:DIterator):void{ this.current = _arg1.current; } } }//package
Section 295
//DList (DList) package { import flash.*; public class DList { protected var head:DNode; protected var tail:DNode; public function DList():void{ if (!Boot.skip_constructor){ this.head = null; this.tail = null; }; } public function isEmpty():Boolean{ return ((this.head == null)); } public function push_front(_arg1):void{ var _local2:DNode; _local2 = new DNode(); _local2.data = _arg1; if (this.head == null){ this.head = _local2; this.tail = _local2; } else { this.head.prev = _local2; _local2.next = this.head; this.head = _local2; }; } public function erase(_arg1:DIterator):DIterator{ var _local2:DIterator; _local2 = new DIterator(); if (_arg1.isValid()){ if (_arg1.getNode() == this.head){ this.pop_front(); _local2.setNode(this.head); } else { if (_arg1.getNode() == this.tail){ this.pop_back(); _local2.setNode(this.tail); } else { _arg1.getNode().prev.next = _arg1.getNode().next; _arg1.getNode().next.prev = _arg1.getNode().prev; _local2.setNode(_arg1.getNode().next); }; }; }; return (_local2); } public function back(){ if (this.tail != null){ return (this.tail.data); }; return (null); } public function front(){ if (this.head != null){ return (this.head.data); }; return (null); } public function push_back(_arg1):void{ var _local2:DNode; _local2 = new DNode(); _local2.data = _arg1; if (this.tail == null){ this.head = _local2; this.tail = _local2; } else { this.tail.next = _local2; _local2.prev = this.tail; this.tail = _local2; }; } public function backIterator():DIterator{ var _local1:DIterator; _local1 = new DIterator(); _local1.setNode(this.tail); return (_local1); } public function frontIterator():DIterator{ var _local1:DIterator; _local1 = new DIterator(); _local1.setNode(this.head); return (_local1); } public function insert(_arg1:DIterator, _arg2):DIterator{ var _local3:DIterator; var _local4:DNode; _local3 = new DIterator(); if (!_arg1.isValid()){ this.push_back(_arg2); _local3.setNode(this.tail); } else { if (_arg1.getNode() == this.head){ this.push_front(_arg2); _local3.setNode(this.head); } else { _local4 = new DNode(); _local4.data = _arg2; _local4.prev = _arg1.getNode().prev; _local4.next = _arg1.getNode(); _arg1.getNode().prev.next = _local4; _arg1.getNode().prev = _local4; _local3.setNode(_local4); }; }; return (_local3); } public function pop_front():void{ if (this.head == this.tail){ this.head = null; this.tail = null; } else { this.head.next.prev = null; this.head = this.head.next; }; } public function pop_back():void{ if (this.head == this.tail){ this.head = null; this.tail = null; } else { this.tail.prev.next = null; this.tail = this.tail.prev; }; } } }//package
Section 296
//DNode (DNode) package { import flash.*; public class DNode { public var prev:DNode; public var next:DNode; public var data; public function DNode():void{ if (!Boot.skip_constructor){ this.next = null; this.prev = null; this.data = null; }; } } }//package
Section 297
//enum (enum) package { public class enum { public var index:int; public var params:Array; public var tag:String; } }//package
Section 298
//ExplosionLargeClip (ExplosionLargeClip) package { import flash.display.*; public dynamic class ExplosionLargeClip extends MovieClip { } }//package
Section 299
//ExplosionSmallClip (ExplosionSmallClip) package { import flash.display.*; public dynamic class ExplosionSmallClip extends MovieClip { } }//package
Section 300
//FeatureClip (FeatureClip) package { import flash.display.*; public dynamic class FeatureClip extends MovieClip { } }//package
Section 301
//Field (Field) package { import flash.*; public class Field { public var steepBump:Bump; public var shallowBump:Bump; public var shallow:Line; public var steep:Line; public function Field():void{ if (!Boot.skip_constructor){ this.steep = new Line(new Offset(0, 0), new Offset(0, 0)); this.shallow = new Line(new Offset(0, 0), new Offset(0, 0)); this.steepBump = null; this.shallowBump = null; }; } public function clone():Field{ var _local1:Field; _local1 = new Field(); _local1.steep = new Line(this.steep.near, this.steep.far); _local1.shallow = new Line(this.shallow.near, this.shallow.far); _local1.steepBump = this.steepBump; _local1.shallowBump = this.shallowBump; return (_local1); } } }//package
Section 302
//FloaterClip (FloaterClip) package { import flash.display.*; public dynamic class FloaterClip extends MovieClip { public function FloaterClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 303
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 304
//FovState (FovState) package { import flash.*; public class FovState { public var isBlocked:Function; public var extent:Offset; public var visit:Function; public var source:Offset; public var quadrant:Offset; public function FovState():void{ if (!Boot.skip_constructor){ this.source = null; this.isBlocked = null; this.visit = null; this.quadrant = null; this.extent = null; }; } } }//package
Section 305
//Game (Game) package { import flash.display.*; import flash.events.*; import logic.*; import ui.*; import flash.net.*; import mapgen.*; import ui.menu.*; public class Game { public static var floater:MouseFloater; public static var loadMap:String; public static var settings:GameSettings; protected static var mustSave:Boolean; public static var view:View; public static var progress:Progress; public static var actorList:ActorList; protected static var isFast:Boolean; protected static var gameState:GameOver; public static var tracker:ZombieTracker; public static var update:Update; public static var script:Script; public static var sprites:SpriteDisplay; public static var map:Map; public static var pathPool:PathFinderPool; public static var VERSION:int = 3; public static var spawner:ZombieSpawner; public static var editor:Editor; public static var pause:Pause; public static var select:Select; public static var actions:ActionQueue; public static function saveGame():void{ var _local1:SharedObject; while (pathPool.isActive()) { pathPool.step(); }; _local1 = Main.gameDisk; _local1.clear(); _local1.data.done = false; _local1.data.settings = settings.save(); _local1.data.explosions = Save.saveList(view.explosions, Explosion.saveS); _local1.data.mainReplay = Main.replay.save(); _local1.data.windowOffset = view.window.getCenter().save(); _local1.data.actorList = actorList.save(); _local1.data.map = map.save(); _local1.data.tracker = tracker.save(); _local1.data.spawner = spawner.save(); _local1.data.pause = pause.save(); _local1.data.progress = progress.save(); _local1.data.script = script.save(); _local1.data.done = true; _local1.data.version = VERSION; _local1.flush(1000000); view.centerMenu.changeState(CenterMenu.NONE); } public static function init(_arg1:GameSettings):void{ Lib.reseed(null); Game.actorList = null; Game.update = null; Game.progress = null; Game.sprites = null; Game.select = null; Game.floater = null; Game.pause = null; Game.map = null; Game.actions = null; Game.tracker = null; Game.spawner = null; Game.pathPool = null; Game.view = null; Game.loadMap = null; Game.settings = _arg1.clone(); Game.view = new View(Main.getRoot()); Game.actorList = new ActorList(); Game.update = new Update(); Game.map = new Map(settings.getSize()); Game.sprites = new SpriteDisplay(view.window.getClip()); Game.progress = new Progress(); Game.select = new Select(Main.getRoot()); Game.floater = new MouseFloater(Main.getRoot()); Game.pause = new Pause(Main.getRoot()); Game.actions = new ActionQueue(); Game.pathPool = new PathFinderPool(); Game.tracker = new ZombieTracker(); Game.spawner = new ZombieSpawner(Main.getRoot(), settings); view.initMenus(Main.getRoot()); if (settings.isEditor()){ Game.editor = new Editor(Main.getRoot()); } else { Game.editor = null; }; view.initCenter(Main.getRoot()); Game.script = new Script(view.scriptSprite); ScriptParse.parse(settings.getScript(), script); Main.getRoot().addEventListener(Event.ENTER_FRAME, Game.enterFrame); Main.clearFirstGame(); Game.gameState = GameOver.CONTINUE; Game.mustSave = false; Game.isFast = false; } protected static function endEditMap(_arg1:int):void{ var _local2:GameSettings; _local2 = new GameSettings(); _local2.beginLoadEdit(settings.saveMap(), settings.getWinText(), settings.getLoseText()); Main.endPlay(_arg1, _local2); } public static function cleanup():void{ Main.getRoot().removeEventListener(Event.ENTER_FRAME, Game.enterFrame); if (Game.editor != null){ editor.cleanup(); Game.editor = null; }; spawner.cleanup(); Game.spawner = null; tracker.cleanup(); Game.tracker = null; Game.pathPool = null; Game.actions = null; pause.cleanup(); Game.pause = null; floater.cleanup(); Game.floater = null; select.cleanup(); Game.select = null; progress.cleanup(); Game.progress = null; sprites.cleanup(); Game.sprites = null; map.cleanup(); Game.map = null; Game.update = null; view.cleanup(); Game.view = null; } protected static function checkSave():void{ if (mustSave){ view.centerMenu.changeState(CenterMenu.SAVE_WAIT); Game.mustSave = false; }; } public static function newGame(_arg1:GameSettings):void{ var _local2:MapGenerator; var _local3:List; init(_arg1); _local2 = new MapGenerator(map, settings); if (((settings.isCustom()) && (settings.isEditor()))){ Editor.createEdges(); editor.loadMap(settings.getMap()); } else { if (settings.isEditor()){ Editor.createEdges(); editor.createBorders(); } else { if (settings.isCustom()){ Editor.createEdges(); _local3 = new List(); EditLoader.loadMap(settings.getMap(), _local3); tracker.addBuildings(); } else { _local2.resetMap(); tracker.addBuildings(); view.window.fillBitmap(); }; }; }; view.window.moveWindowCenter(settings.getStart().x, settings.getStart().y); view.mini.update(); Main.replay.addBeginPlay(); script.takeAction(); } public static function resize():void{ var _local1:Stage; var _local2:LayoutGame; _local1 = Main.getRoot().stage; view.layout = new LayoutGame(_local1.stageWidth, _local1.stageHeight, settings); _local2 = view.layout; sprites.resize(_local2); select.resize(_local2); view.resize(); pause.resize(_local2); floater.resize(_local2); } protected static function checkEndGame():Boolean{ var _local1:Boolean; var _local2:enum; var _local3:GameSettings; var _local4:GameSettings; _local1 = true; _local2 = gameState; switch (_local2.index){ case 1: Main.endPlay(MainMenu.GENERATE_MAP, settings.clone()); break; case 2: Main.endPlay(MainMenu.LOAD_WAIT, new GameSettings()); break; case 3: if (settings.isTesting()){ endEditMap(MainMenu.GENERATE_MAP); } else { if (settings.getKey() != null){ Main.endPlay(MainMenu.RATE_MAP, settings.clone()); } else { Main.endPlay(MainMenu.START, new GameSettings()); }; }; break; case 4: if (((!(settings.isCustom())) && (!((Main.kongregate == null))))){ Main.kongregate.stats.submit(settings.getDifficultyName(), 1); }; if ((((settings.getCampaign() == 6)) && (!((Main.kongregate == null))))){ Main.kongregate.stats.submit("Radio Silence", 1); }; if (settings.isTesting()){ endEditMap(MainMenu.STORY_WIN); } else { Main.replay.setState(MainMenu.WIN); Main.endPlay(MainMenu.STORY_WIN, settings.clone()); }; break; case 5: if (settings.isTesting()){ endEditMap(MainMenu.STORY_LOSE); } else { Main.replay.setState(MainMenu.LOSE); Main.endPlay(MainMenu.STORY_LOSE, settings.clone()); }; break; case 6: _local3 = new GameSettings(); _local3.beginLoadEdit(loadMap, "", ""); Main.endPlay(MainMenu.GENERATE_MAP, _local3); break; case 7: _local4 = new GameSettings(); _local4.beginLoadTest(loadMap); _local4.setStart(view.window.getCenter()); Main.endPlay(MainMenu.STORY_BRIEFING, _local4); break; case 8: endEditMap(MainMenu.GENERATE_MAP); break; default: _local1 = false; break; }; return (_local1); } public static function toggleFast():void{ Game.isFast = !(isFast); } public static function attemptSave():void{ Game.mustSave = true; } public static function endGame(_arg1:GameOver):void{ Game.gameState = _arg1; } protected static function enterFrame(_arg1:Event):void{ var _local2:int; var _local3:int; var _local4:int; _local2 = 1; if (isFast){ _local2 = Option.fastFrames; }; _local3 = 0; while (_local3 < _local2) { var _temp1 = _local3; _local3 = (_local3 + 1); _local4 = _temp1; actions.runAll(); if (((!(pause.isPaused())) && (!(settings.isEditor())))){ actorList.enterFrame(); actions.runAll(); pathPool.step(); spawner.step(); settings.incrementPlayTime(); }; update.commit(); view.enterFrame(); if (checkEndGame()){ break; }; checkSave(); }; } public static function loadGame():void{ var _local1:SharedObject; var _local2:GameSettings; var _local3:List; _local1 = Main.gameDisk; if ((((_local1.data.done == true)) && ((_local1.data.version == VERSION)))){ _local2 = new GameSettings(); _local2.load(_local1.data.settings); Main.replay.load(_local1.data.mainReplay); init(_local2); Util.seed(settings.getNormalName()); update.clear(); map.load(_local1.data.map); actorList.load(_local1.data.actorList); tracker.load(_local1.data.tracker); spawner.load(_local1.data.spawner); progress.load(_local1.data.progress); script.load(_local1.data.script); pause.load(_local1.data.pause); view.window.fillBitmap(); view.window.moveWindowCenter(_local1.data.windowOffset.x, _local1.data.windowOffset.y); _local3 = Load.loadList(_local1.data.explosions, Explosion.load); view.mini.update(); update.buttons(); update.changeStatus(); }; } } }//package
Section 306
//GameOver (GameOver) package { public class GameOver extends enum { public static const __isenum:Boolean = true; public static var LOAD_MAP:GameOver = new GameOver("LOAD_MAP", 6); ; public static var RESTART_LOAD:GameOver = new GameOver("RESTART_LOAD", 2); ; public static var EDIT_MAP:GameOver = new GameOver("EDIT_MAP", 8); ; public static var RESTART:GameOver = new GameOver("RESTART", 1); ; public static var __constructs__:Array = ["CONTINUE", "RESTART", "RESTART_LOAD", "END", "WIN", "LOSE", "LOAD_MAP", "TRY_MAP", "EDIT_MAP"]; public static var LOSE:GameOver = new GameOver("LOSE", 5); ; public static var TRY_MAP:GameOver = new GameOver("TRY_MAP", 7); ; public static var END:GameOver = new GameOver("END", 3); ; public static var WIN:GameOver = new GameOver("WIN", 4); ; public static var CONTINUE:GameOver = new GameOver("CONTINUE", 0); ; public function GameOver(_arg1:String, _arg2:int, _arg3:Array=null):void{ this.tag = _arg1; this.index = _arg2; this.params = _arg3; } } }//package
Section 307
//Grid (Grid) package { import flash.*; public class Grid { protected var mSizeX:int; protected var mSizeY:int; protected var mBuffer:Array; public function Grid(_arg1:int=0, _arg2:int=0):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; super(); if (!Boot.skip_constructor){ this.mBuffer = []; this.mSizeX = _arg1; this.mSizeY = _arg2; _local3 = 0; while (_local3 < _arg1) { var _temp1 = _local3; _local3 = (_local3 + 1); _local4 = _temp1; _local5 = 0; while (_local5 < _arg2) { var _temp2 = _local5; _local5 = (_local5 + 1); _local6 = _temp2; this.mBuffer.push(null); }; }; }; } public function set(_arg1:int, _arg2:int, _arg3):void{ if ((((((((_arg1 < 0)) || ((_arg1 >= this.mSizeX)))) || ((_arg2 < 0)))) || ((_arg2 >= this.mSizeY)))){ throw (new Error((((("Grid out of bounds: (" + Std.string(_arg1)) + ", ") + Std.string(_arg2)) + ")"))); }; this.mBuffer[(_arg1 + (_arg2 * this.mSizeX))] = _arg3; } public function save(_arg1:Function){ return ({mBuffer:this.saveBuffer(_arg1), mSizeX:this.mSizeX, mSizeY:this.mSizeY}); } public function get(_arg1:int, _arg2:int){ if ((((((((_arg1 < 0)) || ((_arg1 >= this.mSizeX)))) || ((_arg2 < 0)))) || ((_arg2 >= this.mSizeY)))){ throw (new Error((((("Grid out of bounds: (" + Std.string(_arg1)) + ", ") + Std.string(_arg2)) + ")"))); }; return (this.mBuffer[(_arg1 + (_arg2 * this.mSizeX))]); } public function sizeX():int{ return (this.mSizeX); } public function sizeY():int{ return (this.mSizeY); } public function saveBuffer(_arg1:Function):Array{ var _local2:Array; var _local3:int; var _local4:Array; var _local5:*; _local2 = new Array(); _local3 = 0; _local4 = this.mBuffer; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local2.push(_arg1(_local5)); }; return (_local2); } public static function load(_arg1, _arg2:Function):Grid{ var _local3:int; var _local4:int; var _local5:Grid; var _local6:int; var _local7:int; var _local8:int; var _local9:int; _local3 = _arg1.mSizeX; _local4 = _arg1.mSizeY; _local5 = new Grid(_local3, _local4); _local6 = 0; while (_local6 < _local4) { var _temp1 = _local6; _local6 = (_local6 + 1); _local7 = _temp1; _local8 = 0; while (_local8 < _local3) { var _temp2 = _local8; _local8 = (_local8 + 1); _local9 = _temp2; _local5.set(_local9, _local7, _arg2(_arg1.mBuffer[(_local9 + (_local7 * _local3))])); }; }; return (_local5); } } }//package
Section 308
//gunCycle_1_gun1 (gunCycle_1_gun1) package { import flash.display.*; public dynamic class gunCycle_1_gun1 extends MovieClip { public function gunCycle_1_gun1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 309
//gunCycle_1_gun2 (gunCycle_1_gun2) package { import flash.display.*; public dynamic class gunCycle_1_gun2 extends MovieClip { public function gunCycle_1_gun2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 310
//gunCycle_10_gun1 (gunCycle_10_gun1) package { import flash.display.*; public dynamic class gunCycle_10_gun1 extends MovieClip { public function gunCycle_10_gun1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 311
//gunCycle_10_gun2 (gunCycle_10_gun2) package { import flash.display.*; public dynamic class gunCycle_10_gun2 extends MovieClip { public function gunCycle_10_gun2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 312
//gunCycle_11_gun1 (gunCycle_11_gun1) package { import flash.display.*; public dynamic class gunCycle_11_gun1 extends MovieClip { public function gunCycle_11_gun1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 313
//gunCycle_11_gun2 (gunCycle_11_gun2) package { import flash.display.*; public dynamic class gunCycle_11_gun2 extends MovieClip { public function gunCycle_11_gun2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 314
//gunCycle_13_gun1 (gunCycle_13_gun1) package { import flash.display.*; public dynamic class gunCycle_13_gun1 extends MovieClip { public function gunCycle_13_gun1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 315
//gunCycle_13_gun2 (gunCycle_13_gun2) package { import flash.display.*; public dynamic class gunCycle_13_gun2 extends MovieClip { public function gunCycle_13_gun2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 316
//gunCycle_13_idle2_pre (gunCycle_13_idle2_pre) package { import flash.display.*; public dynamic class gunCycle_13_idle2_pre extends MovieClip { public function gunCycle_13_idle2_pre(){ addFrameScript(125, frame126); } function frame126(){ gotoAndStop(1); } } }//package
Section 317
//gunCycle_14_gun1 (gunCycle_14_gun1) package { import flash.display.*; public dynamic class gunCycle_14_gun1 extends MovieClip { public function gunCycle_14_gun1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 318
//gunCycle_14_gun2 (gunCycle_14_gun2) package { import flash.display.*; public dynamic class gunCycle_14_gun2 extends MovieClip { public function gunCycle_14_gun2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 319
//gunCycle_15_gun1 (gunCycle_15_gun1) package { import flash.display.*; public dynamic class gunCycle_15_gun1 extends MovieClip { public function gunCycle_15_gun1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 320
//gunCycle_15_gun2 (gunCycle_15_gun2) package { import flash.display.*; public dynamic class gunCycle_15_gun2 extends MovieClip { public function gunCycle_15_gun2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 321
//gunCycle_16_gun1 (gunCycle_16_gun1) package { import flash.display.*; public dynamic class gunCycle_16_gun1 extends MovieClip { public function gunCycle_16_gun1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 322
//gunCycle_16_gun2 (gunCycle_16_gun2) package { import flash.display.*; public dynamic class gunCycle_16_gun2 extends MovieClip { public function gunCycle_16_gun2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 323
//gunCycle_17_gun1 (gunCycle_17_gun1) package { import flash.display.*; public dynamic class gunCycle_17_gun1 extends MovieClip { public function gunCycle_17_gun1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 324
//gunCycle_17_gun2 (gunCycle_17_gun2) package { import flash.display.*; public dynamic class gunCycle_17_gun2 extends MovieClip { public function gunCycle_17_gun2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 325
//gunCycle_18_gun1 (gunCycle_18_gun1) package { import flash.display.*; public dynamic class gunCycle_18_gun1 extends MovieClip { public function gunCycle_18_gun1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 326
//gunCycle_18_gun2 (gunCycle_18_gun2) package { import flash.display.*; public dynamic class gunCycle_18_gun2 extends MovieClip { public function gunCycle_18_gun2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 327
//gunCycle_19_gun1 (gunCycle_19_gun1) package { import flash.display.*; public dynamic class gunCycle_19_gun1 extends MovieClip { public function gunCycle_19_gun1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 328
//gunCycle_19_gun2 (gunCycle_19_gun2) package { import flash.display.*; public dynamic class gunCycle_19_gun2 extends MovieClip { public function gunCycle_19_gun2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 329
//gunCycle_2_gun1 (gunCycle_2_gun1) package { import flash.display.*; public dynamic class gunCycle_2_gun1 extends MovieClip { public function gunCycle_2_gun1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 330
//gunCycle_2_gun2 (gunCycle_2_gun2) package { import flash.display.*; public dynamic class gunCycle_2_gun2 extends MovieClip { public function gunCycle_2_gun2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 331
//gunCycle_20_gun1 (gunCycle_20_gun1) package { import flash.display.*; public dynamic class gunCycle_20_gun1 extends MovieClip { public function gunCycle_20_gun1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 332
//gunCycle_20_gun2 (gunCycle_20_gun2) package { import flash.display.*; public dynamic class gunCycle_20_gun2 extends MovieClip { public function gunCycle_20_gun2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 333
//gunCycle_4_gun1 (gunCycle_4_gun1) package { import flash.display.*; public dynamic class gunCycle_4_gun1 extends MovieClip { public function gunCycle_4_gun1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 334
//gunCycle_4_gun2 (gunCycle_4_gun2) package { import flash.display.*; public dynamic class gunCycle_4_gun2 extends MovieClip { public function gunCycle_4_gun2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 335
//gunCycle_4_idle2_pre (gunCycle_4_idle2_pre) package { import flash.display.*; public dynamic class gunCycle_4_idle2_pre extends MovieClip { public function gunCycle_4_idle2_pre(){ addFrameScript(125, frame126); } function frame126(){ gotoAndStop(1); } } }//package
Section 336
//gunCycle_5_gun1 (gunCycle_5_gun1) package { import flash.display.*; public dynamic class gunCycle_5_gun1 extends MovieClip { public function gunCycle_5_gun1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 337
//gunCycle_5_gun2 (gunCycle_5_gun2) package { import flash.display.*; public dynamic class gunCycle_5_gun2 extends MovieClip { public function gunCycle_5_gun2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 338
//gunCycle_7_gun1 (gunCycle_7_gun1) package { import flash.display.*; public dynamic class gunCycle_7_gun1 extends MovieClip { public function gunCycle_7_gun1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 339
//gunCycle_7_gun2 (gunCycle_7_gun2) package { import flash.display.*; public dynamic class gunCycle_7_gun2 extends MovieClip { public function gunCycle_7_gun2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 340
//gunCycle_8_gun1 (gunCycle_8_gun1) package { import flash.display.*; public dynamic class gunCycle_8_gun1 extends MovieClip { public function gunCycle_8_gun1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 341
//gunCycle_8_gun2 (gunCycle_8_gun2) package { import flash.display.*; public dynamic class gunCycle_8_gun2 extends MovieClip { public function gunCycle_8_gun2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 342
//gunCycle_8_idle1_pre (gunCycle_8_idle1_pre) package { import flash.display.*; public dynamic class gunCycle_8_idle1_pre extends MovieClip { public function gunCycle_8_idle1_pre(){ addFrameScript(125, frame126); } function frame126(){ gotoAndStop(1); } } }//package
Section 343
//gunCycle_midlayer_1 (gunCycle_midlayer_1) package { import flash.display.*; public dynamic class gunCycle_midlayer_1 extends MovieClip { } }//package
Section 344
//gunCycle_midlayer_10 (gunCycle_midlayer_10) package { import flash.display.*; public dynamic class gunCycle_midlayer_10 extends MovieClip { } }//package
Section 345
//gunCycle_midlayer_11 (gunCycle_midlayer_11) package { import flash.display.*; public dynamic class gunCycle_midlayer_11 extends MovieClip { } }//package
Section 346
//gunCycle_midlayer_13 (gunCycle_midlayer_13) package { import flash.display.*; public dynamic class gunCycle_midlayer_13 extends MovieClip { } }//package
Section 347
//gunCycle_midlayer_14 (gunCycle_midlayer_14) package { import flash.display.*; public dynamic class gunCycle_midlayer_14 extends MovieClip { } }//package
Section 348
//gunCycle_midlayer_15 (gunCycle_midlayer_15) package { import flash.display.*; public dynamic class gunCycle_midlayer_15 extends MovieClip { } }//package
Section 349
//gunCycle_midlayer_16 (gunCycle_midlayer_16) package { import flash.display.*; public dynamic class gunCycle_midlayer_16 extends MovieClip { } }//package
Section 350
//gunCycle_midlayer_17 (gunCycle_midlayer_17) package { import flash.display.*; public dynamic class gunCycle_midlayer_17 extends MovieClip { } }//package
Section 351
//gunCycle_midlayer_18 (gunCycle_midlayer_18) package { import flash.display.*; public dynamic class gunCycle_midlayer_18 extends MovieClip { } }//package
Section 352
//gunCycle_midlayer_19 (gunCycle_midlayer_19) package { import flash.display.*; public dynamic class gunCycle_midlayer_19 extends MovieClip { } }//package
Section 353
//gunCycle_midlayer_2 (gunCycle_midlayer_2) package { import flash.display.*; public dynamic class gunCycle_midlayer_2 extends MovieClip { } }//package
Section 354
//gunCycle_midlayer_20 (gunCycle_midlayer_20) package { import flash.display.*; public dynamic class gunCycle_midlayer_20 extends MovieClip { } }//package
Section 355
//gunCycle_midlayer_4 (gunCycle_midlayer_4) package { import flash.display.*; public dynamic class gunCycle_midlayer_4 extends MovieClip { } }//package
Section 356
//gunCycle_midlayer_5 (gunCycle_midlayer_5) package { import flash.display.*; public dynamic class gunCycle_midlayer_5 extends MovieClip { } }//package
Section 357
//gunCycle_midlayer_7 (gunCycle_midlayer_7) package { import flash.display.*; public dynamic class gunCycle_midlayer_7 extends MovieClip { } }//package
Section 358
//gunCycle_midlayer_8 (gunCycle_midlayer_8) package { import flash.display.*; public dynamic class gunCycle_midlayer_8 extends MovieClip { } }//package
Section 359
//gunCycle_toplayer_1 (gunCycle_toplayer_1) package { import flash.display.*; public dynamic class gunCycle_toplayer_1 extends MovieClip { } }//package
Section 360
//gunCycle_toplayer_10 (gunCycle_toplayer_10) package { import flash.display.*; public dynamic class gunCycle_toplayer_10 extends MovieClip { } }//package
Section 361
//gunCycle_toplayer_11 (gunCycle_toplayer_11) package { import flash.display.*; public dynamic class gunCycle_toplayer_11 extends MovieClip { } }//package
Section 362
//gunCycle_toplayer_13 (gunCycle_toplayer_13) package { import flash.display.*; public dynamic class gunCycle_toplayer_13 extends MovieClip { } }//package
Section 363
//gunCycle_toplayer_14 (gunCycle_toplayer_14) package { import flash.display.*; public dynamic class gunCycle_toplayer_14 extends MovieClip { } }//package
Section 364
//gunCycle_toplayer_15 (gunCycle_toplayer_15) package { import flash.display.*; public dynamic class gunCycle_toplayer_15 extends MovieClip { } }//package
Section 365
//gunCycle_toplayer_16 (gunCycle_toplayer_16) package { import flash.display.*; public dynamic class gunCycle_toplayer_16 extends MovieClip { } }//package
Section 366
//gunCycle_toplayer_17 (gunCycle_toplayer_17) package { import flash.display.*; public dynamic class gunCycle_toplayer_17 extends MovieClip { } }//package
Section 367
//gunCycle_toplayer_18 (gunCycle_toplayer_18) package { import flash.display.*; public dynamic class gunCycle_toplayer_18 extends MovieClip { } }//package
Section 368
//gunCycle_toplayer_19 (gunCycle_toplayer_19) package { import flash.display.*; public dynamic class gunCycle_toplayer_19 extends MovieClip { } }//package
Section 369
//gunCycle_toplayer_2 (gunCycle_toplayer_2) package { import flash.display.*; public dynamic class gunCycle_toplayer_2 extends MovieClip { } }//package
Section 370
//gunCycle_toplayer_20 (gunCycle_toplayer_20) package { import flash.display.*; public dynamic class gunCycle_toplayer_20 extends MovieClip { } }//package
Section 371
//gunCycle_toplayer_4 (gunCycle_toplayer_4) package { import flash.display.*; public dynamic class gunCycle_toplayer_4 extends MovieClip { } }//package
Section 372
//gunCycle_toplayer_5 (gunCycle_toplayer_5) package { import flash.display.*; public dynamic class gunCycle_toplayer_5 extends MovieClip { } }//package
Section 373
//gunCycle_toplayer_7 (gunCycle_toplayer_7) package { import flash.display.*; public dynamic class gunCycle_toplayer_7 extends MovieClip { } }//package
Section 374
//gunCycle_toplayer_8 (gunCycle_toplayer_8) package { import flash.display.*; public dynamic class gunCycle_toplayer_8 extends MovieClip { } }//package
Section 375
//Hash (Hash) package { import flash.utils.*; import flash.*; public class Hash { protected var h:Dictionary; public function Hash():void{ if (!Boot.skip_constructor){ this.h = new Dictionary(); }; } public function set(_arg1:String, _arg2):void{ this.h[("$" + _arg1)] = _arg2; } public function remove(_arg1:String):Boolean{ _arg1 = ("$" + _arg1); if (!this.h.hasOwnProperty(_arg1)){ return (false); }; delete this.h[_arg1]; return (true); } public function toString():String{ var _local1:StringBuf; var _local2:*; var _local3:*; var _local4:String; _local1 = new StringBuf(); _local1.add("{"); _local2 = this.keys(); _local3 = _local2; while (_local3.hasNext()) { _local4 = _local3.next(); _local1.add(_local4); _local1.add(" => "); _local1.add(Std.string(this.get(_local4))); if (_local2.hasNext()){ _local1.add(", "); }; }; _local1.add("}"); return (_local1.toString()); } public function iterator(){ return ({ref:this.h, it:function (_arg1:Hash){ var _local2:*; var _local3:*; _local2 = new Array(); for (_local3 in _arg1.h) { _local2.push(_local3); }; return (_local2); }(this).iterator(), hasNext:function (){ return (this.it.hasNext()); }, next:function (){ var _local1:*; _local1 = this.it.next(); return (this.ref[_local1]); }}); } public function keys(){ return (function (_arg1:Hash){ var _local2:*; var _local3:*; _local2 = new Array(); for (_local3 in _arg1.h) { _local2.push(_local3.substr(1)); }; return (_local2); }(this).iterator()); } public function get(_arg1:String){ return (this.h[("$" + _arg1)]); } public function exists(_arg1:String):Boolean{ return (this.h.hasOwnProperty(("$" + _arg1))); } } }//package
Section 376
//IntHash (IntHash) package { import flash.utils.*; import flash.*; public class IntHash { protected var h:Dictionary; public function IntHash():void{ if (!Boot.skip_constructor){ this.h = new Dictionary(); }; } public function set(_arg1:int, _arg2):void{ this.h[_arg1] = _arg2; } public function remove(_arg1:int):Boolean{ if (!this.h.hasOwnProperty(_arg1)){ return (false); }; delete this.h[_arg1]; return (true); } public function toString():String{ var _local1:StringBuf; var _local2:*; var _local3:*; var _local4:int; _local1 = new StringBuf(); _local1.add("{"); _local2 = this.keys(); _local3 = _local2; while (_local3.hasNext()) { _local4 = _local3.next(); _local1.add(_local4); _local1.add(" => "); _local1.add(Std.string(this.get(_local4))); if (_local2.hasNext()){ _local1.add(", "); }; }; _local1.add("}"); return (_local1.toString()); } public function iterator(){ return ({ref:this.h, it:this.keys(), hasNext:function (){ return (this.it.hasNext()); }, next:function (){ var _local1:*; _local1 = this.it.next(); return (this.ref[_local1]); }}); } public function keys(){ return (function (_arg1:IntHash){ var _local2:*; var _local3:*; _local2 = new Array(); for (_local3 in _arg1.h) { _local2.push(_local3); }; return (_local2); }(this).iterator()); } public function get(_arg1:int){ return (this.h[_arg1]); } public function exists(_arg1:int):Boolean{ return (this.h.hasOwnProperty(_arg1)); } } }//package
Section 377
//Keyboard (Keyboard) package { import flash.display.*; import flash.events.*; import ui.*; import flash.*; public class Keyboard { protected var shiftPressed:Boolean; protected var hotkeyHandlers:List; protected var repeat:int; protected var stage:Stage; public static var enterCode:uint = 13; public static var deleteCode:uint = 46; public static var backSpaceCode:uint = 8; public static var escapeCode:uint = 27; public function Keyboard(_arg1:Stage=null):void{ if (!Boot.skip_constructor){ this.stage = _arg1; this.repeat = Option.repeatWait; this.shiftPressed = false; this.hotkeyHandlers = new List(); this.stage.addEventListener(KeyboardEvent.KEY_DOWN, this.onKeyDown); this.stage.addEventListener(KeyboardEvent.KEY_UP, this.onKeyUp); this.stage.addEventListener(Event.ENTER_FRAME, this.step); }; } protected function onKeyDown(_arg1:KeyboardEvent):void{ var _local2:String; var _local3:uint; var _local4:*; var _local5:Function; if (this.repeat == Option.repeatWait){ this.repeat = 0; _local2 = String.fromCharCode(_arg1.charCode); _local3 = _arg1.keyCode; if (_local3 == Workaround.SHIFT){ this.shiftPressed = true; }; _local4 = this.hotkeyHandlers.iterator(); while (_local4.hasNext()) { _local5 = _local4.next(); if (_local5(_local2, _local3)){ break; }; }; }; } public function cleanup():void{ this.stage.removeEventListener(KeyboardEvent.KEY_DOWN, this.onKeyDown); this.stage.removeEventListener(KeyboardEvent.KEY_UP, this.onKeyUp); this.stage.removeEventListener(Event.ENTER_FRAME, this.step); } public function addHandler(_arg1:Function):void{ this.hotkeyHandlers.add(_arg1); } protected function step(_arg1:Event):void{ if (this.repeat < Option.repeatWait){ this.repeat++; }; } public function shift():Boolean{ return (this.shiftPressed); } public function clearHandlers():void{ this.hotkeyHandlers = new List(); } protected function onKeyUp(_arg1:KeyboardEvent):void{ this.repeat = Option.repeatWait; if (_arg1.keyCode == Workaround.SHIFT){ this.shiftPressed = false; }; } } }//package
Section 378
//Lib (Lib) package { import ui.*; import twister.*; import native.*; public class Lib { public static var resource:Array = [Resource.AMMO, Resource.BOARDS, Resource.FOOD, Resource.SURVIVORS]; public static var resourceLoad:Array = [ammoLoad, boardLoad, foodLoad, survivorLoad]; public static var dirDeltas:Array = [new Point(0, -1), new Point(0, 1), new Point(1, 0), new Point(-1, 0)]; public static var delta:Array = [new Point(-1, 0), new Point(1, 0), new Point(0, -1), new Point(0, 1)]; protected static var generator:Twister = new Twister(); public static var ammoLoad:ResourceCount = new ResourceCount(Resource.AMMO, truckLoad(Resource.AMMO)); public static var directions:Array = [Direction.NORTH, Direction.SOUTH, Direction.EAST, Direction.WEST]; public static var foodLoad:ResourceCount = new ResourceCount(Resource.FOOD, truckLoad(Resource.FOOD)); public static var boardLoad:ResourceCount = new ResourceCount(Resource.BOARDS, truckLoad(Resource.BOARDS)); public static var survivorLoad:ResourceCount = new ResourceCount(Resource.SURVIVORS, truckLoad(Resource.SURVIVORS)); public static function intAbs(_arg1:int):int{ if (_arg1 > 0){ return (_arg1); }; return (-(_arg1)); } public static function getLimit(_arg1:Point, _arg2:Point):Point{ return (new Point((Math.floor(Math.max(_arg1.x, _arg2.x)) + 1), (Math.floor(Math.max(_arg1.y, _arg2.y)) + 1))); } public static function adjacentZombie(_arg1:Point):Boolean{ var _local2:Boolean; var _local3:int; var _local4:Array; var _local5:Point; var _local6:Point; _local2 = false; _local2 = ((_local2) || (Game.map.getCell(_arg1.x, _arg1.y).hasZombies())); _local3 = 0; _local4 = delta; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local6 = new Point((_arg1.x + _local5.x), (_arg1.y + _local5.y)); if (!outsideMap(_local6)){ _local2 = ((_local2) || (Game.map.getCell(_local6.x, _local6.y).hasZombies())); }; }; return (_local2); } public static function cellToPixel(_arg1:int):int{ return ((_arg1 * Option.cellPixels)); } public static function directionToString(_arg1:Direction):String{ var _local2:String; var _local3:enum; _local2 = Text.northLabel; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = Text.northLabel; break; case 1: _local2 = Text.southLabel; break; case 2: _local2 = Text.eastLabel; break; case 3: _local2 = Text.westLabel; break; }; return (_local2); } public static function rotateCW(_arg1:Direction):Direction{ var _local2:Direction; var _local3:enum; _local2 = Direction.NORTH; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = Direction.EAST; break; case 1: _local2 = Direction.WEST; break; case 2: _local2 = Direction.SOUTH; break; case 3: _local2 = Direction.NORTH; break; }; return (_local2); } public static function getOffset(_arg1:Point, _arg2:Point):Point{ return (new Point(Math.floor(Math.min(_arg1.x, _arg2.x)), Math.floor(Math.min(_arg1.y, _arg2.y)))); } public static function indexToDirection(_arg1:int):Direction{ var _local2:Direction; _local2 = Direction.NORTH; switch (_arg1){ case 0: _local2 = Direction.NORTH; break; case 1: _local2 = Direction.SOUTH; break; case 2: _local2 = Direction.EAST; break; case 3: _local2 = Direction.WEST; break; default: _local2 = Direction.NORTH; break; }; return (_local2); } protected static function hasZombies(_arg1:Point):Boolean{ return (((!(outsideMap(_arg1))) && (Game.map.getCell(_arg1.x, _arg1.y).hasZombies()))); } public static function directionToIndex(_arg1:Direction):int{ var _local2:int; var _local3:enum; _local2 = 0; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = 0; break; case 1: _local2 = 1; break; case 2: _local2 = 2; break; case 3: _local2 = 3; break; }; return (_local2); } public static function directionToAngle(_arg1:Direction):int{ var _local2:int; var _local3:enum; _local2 = 0; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = 90; break; case 1: _local2 = -90; break; case 2: _local2 = 180; break; case 3: _local2 = 0; break; }; return (_local2); } public static function resourceToString(_arg1:Resource):String{ var _local2:String; var _local3:enum; _local2 = Text.ammoLabel; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = Text.ammoLabel; break; case 1: _local2 = Text.boardsLabel; break; case 2: _local2 = Text.foodLabel; break; case 3: _local2 = Text.survivorsLabel; break; }; return (_local2); } public static function indexToResource(_arg1:int):Resource{ var _local2:Resource; _local2 = null; if (_arg1 == 0){ _local2 = Resource.AMMO; } else { if (_arg1 == 1){ _local2 = Resource.BOARDS; } else { if (_arg1 == 2){ _local2 = Resource.FOOD; } else { if (_arg1 == 3){ _local2 = Resource.SURVIVORS; }; }; }; }; return (_local2); } public static function getAngle(_arg1:Point, _arg2:Point):int{ var _local3:Number; _local3 = Math.atan2((_arg1.y - _arg2.y), (_arg1.x - _arg2.x)); return (Math.round(((_local3 * 180) / Math.PI))); } public static function pixelToCell(_arg1:int):int{ return (Math.floor((_arg1 / Option.cellPixels))); } public static function reseed(_arg1:Array):void{ Lib.generator = new Twister(null, _arg1); } public static function rand(_arg1:int):int{ return ((generator.getPositiveInt() % _arg1)); } public static function resourceToIndex(_arg1:Resource):int{ var _local2:int; var _local3:enum; _local2 = 0; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = 0; break; case 1: _local2 = 1; break; case 2: _local2 = 2; break; case 3: _local2 = 3; break; }; return (_local2); } public static function newResourceArray():Array{ var _local1:Array; var _local2:int; var _local3:int; var _local4:int; _local1 = []; _local2 = 0; _local3 = Option.resourceCount; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local1.push(0); }; return (_local1); } public static function nearestZombie(_arg1:int, _arg2:int, _arg3:int):Point{ var _local4:Point; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; _local4 = new Point(0, 0); _local5 = 1; _local6 = (_arg3 + 1); while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local7 = _temp1; _local8 = -(_local7); _local9 = _local7; while (_local8 < _local9) { var _temp2 = _local8; _local8 = (_local8 + 1); _local10 = _temp2; _local4.y = (_arg2 + _local10); _local4.x = (_arg1 - _local7); if (hasZombies(_local4)){ return (_local4); }; _local4.x = (_arg1 + _local7); if (hasZombies(_local4)){ return (_local4); }; _local4.x = (_arg1 + _local10); _local4.y = (_arg2 - _local7); if (hasZombies(_local4)){ return (_local4); }; _local4.y = (_arg2 + _local7); if (hasZombies(_local4)){ return (_local4); }; }; }; return (null); } public static function rotateCCW(_arg1:Direction):Direction{ var _local2:Direction; var _local3:enum; _local2 = Direction.NORTH; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = Direction.WEST; break; case 1: _local2 = Direction.EAST; break; case 2: _local2 = Direction.NORTH; break; case 3: _local2 = Direction.SOUTH; break; }; return (_local2); } public static function trace(_arg1):void{ NativeBase.nativeTrace(_arg1); } public static function indexToBackgroundType(_arg1:int):BackgroundType{ var _local2:BackgroundType; _local2 = BackgroundType.BUILDING; switch (_arg1){ case 0: _local2 = BackgroundType.BUILDING; break; case 1: _local2 = BackgroundType.ENTRANCE; break; case 2: _local2 = BackgroundType.PARK; break; case 3: _local2 = BackgroundType.STREET; break; case 4: _local2 = BackgroundType.ALLEY; break; case 5: _local2 = BackgroundType.BRIDGE; break; case 6: _local2 = BackgroundType.WATER; break; default: _local2 = BackgroundType.STREET; break; }; return (_local2); } public static function randWeightedIndex(_arg1:Array, _arg2:Twister=null):int{ var _local3:Twister; var _local4:int; var _local5:int; var _local6:int; var _local7:int; _local3 = _arg2; if (_local3 == null){ _local3 = generator; }; _local4 = 0; _local5 = 0; while (_local5 < _arg1.length) { _local7 = _arg1[_local5]; _local5++; _local4 = (_local4 + _local7); }; _local6 = (_local3.getPositiveInt() % _local4); return (weightedIndex(_local6, _arg1)); } public static function randDirection(_arg1:Twister=null):Direction{ var _local2:Twister; var _local3:int; _local2 = _arg1; if (_local2 == null){ _local2 = generator; }; _local3 = (_local2.getPositiveInt() % 4); if (_local3 == 0){ return (Direction.NORTH); }; if (_local3 == 1){ return (Direction.SOUTH); }; if (_local3 == 2){ return (Direction.EAST); }; return (Direction.WEST); } public static function zombieColor(_arg1:int):int{ var _local2:int; var _local3:int; _local2 = Option.emptyBuildingMiniColor; if (_arg1 > 0){ _local3 = weightedIndex(_arg1, Option.zombieBuildingMiniWeights); _local2 = Option.zombieBuildingMiniColor[_local3]; }; return (_local2); } public static function truckLoad(_arg1:Resource):int{ if (_arg1 == Resource.SURVIVORS){ return (1); }; return (Option.truckLoad); } public static function slopeToAngle(_arg1:Number, _arg2:Number):int{ return (Math.round(((Math.atan2(_arg2, _arg1) * 180) / Math.PI))); } public static function backgroundTypeToIndex(_arg1:BackgroundType):int{ var _local2:int; var _local3:enum; _local2 = 0; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = 0; break; case 1: _local2 = 1; break; case 2: _local2 = 2; break; case 3: _local2 = 3; break; case 4: _local2 = 4; break; case 5: _local2 = 5; break; case 6: _local2 = 6; break; case 7: _local2 = 7; break; }; return (_local2); } public static function shadowColorToIndex(_arg1:ShadowColor):int{ var _local2:int; var _local3:enum; _local2 = 0; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = 0; break; case 1: _local2 = 1; break; case 2: _local2 = 2; break; case 3: _local2 = 3; break; }; return (_local2); } public static function indexToShadowColor(_arg1:int):ShadowColor{ var _local2:ShadowColor; _local2 = ShadowColor.NORMAL; switch (_arg1){ case 0: _local2 = ShadowColor.NORMAL; break; case 1: _local2 = ShadowColor.ALLOWED; break; case 2: _local2 = ShadowColor.FORBIDDEN; break; case 3: _local2 = ShadowColor.BUILD_SITE; break; default: _local2 = ShadowColor.NORMAL; break; }; return (_local2); } public static function outsideMap(_arg1:Point):Boolean{ return ((((((((_arg1.x < 0)) || ((_arg1.x >= Game.map.sizeX())))) || ((_arg1.y < 0)))) || ((_arg1.y >= Game.map.sizeY())))); } public static function shuffle(_arg1:Array, _arg2:Twister=null):void{ var _local3:Twister; var _local4:int; var _local5:int; var _local6:*; _local3 = _arg2; if (_local3 == null){ _local3 = generator; }; _local4 = (_arg1.length - 1); while (_local4 > 0) { _local5 = (_local3.getPositiveInt() % (_local4 + 1)); _local6 = _arg1[_local4]; _arg1[_local4] = _arg1[_local5]; _arg1[_local5] = _local6; _local4--; }; } public static function weightedIndex(_arg1:int, _arg2:Array):int{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local3 = 0; _local4 = 0; _local5 = _arg2.length; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; _arg1 = (_arg1 - _arg2[_local6]); if (_arg1 < 0){ _local3 = _local6; break; }; }; return (_local3); } public static function directionToDelta(_arg1:Direction):Point{ return (dirDeltas[directionToIndex(_arg1)]); } } }//package
Section 379
//Line (Line) package { import flash.*; public class Line { public var near:Offset; public var far:Offset; public function Line(_arg1:Offset=null, _arg2:Offset=null):void{ if (!Boot.skip_constructor){ this.near = new Offset(_arg1.x, _arg1.y); this.far = new Offset(_arg2.x, _arg2.y); }; } public function isBelow(_arg1:Offset):Boolean{ return ((this.relativeSlope(_arg1) > 0)); } public function isBelowOrContains(_arg1:Offset):Boolean{ return ((this.relativeSlope(_arg1) >= 0)); } public function isAboveOrContains(_arg1:Offset):Boolean{ return ((this.relativeSlope(_arg1) <= 0)); } public function isAbove(_arg1:Offset):Boolean{ return ((this.relativeSlope(_arg1) < 0)); } public function doesContain(_arg1:Offset):Boolean{ return ((this.relativeSlope(_arg1) == 0)); } public function relativeSlope(_arg1:Offset):int{ return ((((this.far.y - this.near.y) * (this.far.x - _arg1.x)) - ((this.far.y - _arg1.y) * (this.far.x - this.near.x)))); } } }//package
Section 380
//List (List) package { import flash.*; public class List { public var length:int; protected var h:Array; protected var q:Array; public function List():void{ if (!Boot.skip_constructor){ this.length = 0; }; } public function isEmpty():Boolean{ return ((this.h == null)); } public function remove(_arg1):Boolean{ var _local2:Array; var _local3:Array; _local2 = null; _local3 = this.h; while (_local3 != null) { if (_local3[0] == _arg1){ if (_local2 == null){ this.h = _local3[1]; } else { _local2[1] = _local3[1]; }; if (this.q == _local3){ this.q = _local2; }; this.length--; return (true); }; _local2 = _local3; _local3 = _local3[1]; }; return (false); } public function join(_arg1:String):String{ var _local2:StringBuf; var _local3:Boolean; var _local4:Array; _local2 = new StringBuf(); _local3 = true; _local4 = this.h; while (_local4 != null) { if (_local3){ _local3 = false; } else { _local2.add(_arg1); }; _local2.add(_local4[0]); _local4 = _local4[1]; }; return (_local2.toString()); } public function clear():void{ this.h = null; this.q = null; this.length = 0; } public function iterator(){ return ({h:this.h, hasNext:function (){ return (!((this.h == null))); }, next:function (){ var _local1:*; if (this.h == null){ return (null); }; _local1 = this.h[0]; this.h = this.h[1]; return (_local1); }}); } public function last(){ return (((this.q == null)) ? null : this.q[0]); } public function first(){ return (((this.h == null)) ? null : this.h[0]); } public function pop(){ var _local1:*; if (this.h == null){ return (null); }; _local1 = this.h[0]; this.h = this.h[1]; if (this.h == null){ this.q = null; }; this.length--; return (_local1); } public function add(_arg1):void{ var _local2:Array; _local2 = [_arg1]; if (this.h == null){ this.h = _local2; } else { this.q[1] = _local2; }; this.q = _local2; this.length++; } public function push(_arg1):void{ var _local2:Array; _local2 = [_arg1, this.h]; this.h = _local2; if (this.q == null){ this.q = _local2; }; this.length++; } public function toString():String{ var _local1:StringBuf; var _local2:Boolean; var _local3:Array; _local1 = new StringBuf(); _local2 = true; _local3 = this.h; _local1.add("{"); while (_local3 != null) { if (_local2){ _local2 = false; } else { _local1.add(", "); }; _local1.add(Std.string(_local3[0])); _local3 = _local3[1]; }; _local1.add("}"); return (_local1.toString()); } public function map(_arg1:Function):List{ var _local2:List; var _local3:Array; var _local4:*; _local2 = new List(); _local3 = this.h; while (_local3 != null) { _local4 = _local3[0]; _local3 = _local3[1]; _local2.add(_arg1(_local4)); }; return (_local2); } public function filter(_arg1:Function):List{ var _local2:List; var _local3:Array; var _local4:*; _local2 = new List(); _local3 = this.h; while (_local3 != null) { _local4 = _local3[0]; _local3 = _local3[1]; if (_arg1(_local4)){ _local2.add(_local4); }; }; return (_local2); } } }//package
Section 381
//List_skin (List_skin) package { import flash.display.*; public dynamic class List_skin extends MovieClip { } }//package
Section 382
//Load (Load) package { public class Load { public static function loadGridInt(_arg1):Grid{ return (Grid.load(_arg1, Load.loadInt)); } public static function loadList(_arg1, _arg2:Function):List{ var _local3:List; var _local4:int; var _local5:*; var _local6:int; _local3 = new List(); _local4 = 0; _local5 = _arg1.length; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; _local3.add(_arg2(_arg1[_local6])); }; return (_local3); } public static function maybe(_arg1, _arg2:Function){ var _local3:*; _local3 = null; if (_arg1 != null){ _local3 = _arg2(_arg1); }; return (_local3); } public static function loadInt(_arg1):int{ return (_arg1); } public static function loadArray(_arg1, _arg2:Function):Array{ var _local3:Array; var _local4:int; var _local5:*; var _local6:int; _local3 = new Array(); _local4 = 0; _local5 = _arg1.length; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; _local3.push(_arg2(_arg1[_local6])); }; return (_local3); } public static function loadArrayInt(_arg1):Array{ var _local2:Array; var _local3:int; var _local4:*; var _local5:int; _local2 = []; _local3 = 0; _local4 = _arg1.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local2.push(_arg1[_local5]); }; return (_local2); } public static function loadOtherList(_arg1, _arg2:Function, _arg3):List{ var _local4:List; var _local5:Array; _local4 = new List(); _local5 = _arg1.h; while (_local5 != null) { _local4.add(_arg2(_local5[0], _arg3)); _local5 = _local5[1]; }; return (_local4); } } }//package
Section 383
//Main (Main) package { import flash.display.*; import flash.events.*; import logic.*; import ui.*; import flash.net.*; import ui.menu.*; import flash.*; import haxe.*; public class Main { protected static var MENU:int = 0; public static var gameDisk:SharedObject; public static var error:String; public static var config:Config; protected static var layout:LayoutMain; public static var sound:SoundPlayer; protected static var state:int; public static var menu:MainMenu; protected static var editSave:String; public static var music:MusicPlayer; public static var replay:Replay; public static var kongregate; public static var theRoot:DisplayObjectContainer; protected static var PLAY:int = 1; public static var key:Keyboard; protected static var REPLAY:int = 2; public static var configDisk:SharedObject; public function Main():void{ } protected function init():void{ var _local1:Stage; Main.error = ""; ScriptParse.init(); _local1 = Lib.current.stage; _local1.scaleMode = StageScaleMode.NO_SCALE; _local1.addEventListener(FullScreenEvent.FULL_SCREEN, this.fullScreenHandler); _local1.addEventListener(Event.RESIZE, this.resizeHandler); MouseScroller.trackMouse(); Main.theRoot = new Sprite(); theRoot.visible = true; _local1.addChild(theRoot); Log.setColor(0xFF0000); Main.key = new Keyboard(_local1); Main.replay = null; Main.configDisk = SharedObject.getLocal(Label.configDisk); configDisk.addEventListener(AsyncErrorEvent.ASYNC_ERROR, Main.asyncHandler); configDisk.addEventListener(NetStatusEvent.NET_STATUS, Main.netStatusHandler); configDisk.addEventListener(SyncEvent.SYNC, Main.syncHandler); Main.editSave = configDisk.data.editSave; Main.gameDisk = SharedObject.getLocal(Label.gameDisk); gameDisk.addEventListener(AsyncErrorEvent.ASYNC_ERROR, Main.asyncHandler); gameDisk.addEventListener(NetStatusEvent.NET_STATUS, Main.netStatusHandler); gameDisk.addEventListener(SyncEvent.SYNC, Main.syncHandler); Main.config = new Config(); Main.layout = new LayoutMain(theRoot.stage.stageWidth, theRoot.stage.stageHeight); Main.menu = new MainMenu(theRoot, layout); Main.music = new MusicPlayer(); Main.sound = new SoundPlayer(getRoot()); BitstreamVeraSans.init(); Animation.init(); Main.state = MENU; } protected function resize():void{ Main.layout = new LayoutMain(theRoot.stage.stageWidth, theRoot.stage.stageHeight); if (Main.state == PLAY){ Game.resize(); } else { if (Main.state == MENU){ menu.resize(layout); } else { if (Main.state == REPLAY){ replay.resize(layout); }; }; }; } protected function resizeHandler(_arg1:Event):void{ this.resize(); } protected function fullScreenHandler(_arg1:FullScreenEvent):void{ this.resize(); } public static function firstGame():Boolean{ return (((!((Main.gameDisk == null))) && ((gameDisk.data.hasPlayed == null)))); } public static function canLoad():Boolean{ return (((((!((Main.gameDisk == null))) && ((gameDisk.data.done == true)))) && ((gameDisk.data.version == Game.VERSION)))); } public static function getRoot():DisplayObjectContainer{ return (theRoot); } protected static function netStatusHandler(_arg1:NetStatusEvent):void{ } public static function getEditSave():String{ return (editSave); } public static function endReplay(_arg1:int, _arg2:GameSettings):void{ replay.cleanup(); Main.menu = new MainMenu(theRoot, layout); menu.setSettings(_arg2); menu.changeState(_arg1); Main.state = MENU; } public static function setEditSave(_arg1:String):void{ Main.editSave = _arg1; configDisk.data.editSave = _arg1; } protected static function asyncHandler(_arg1:AsyncErrorEvent):void{ } public static function endPlay(_arg1:int, _arg2:GameSettings):void{ Game.cleanup(); Main.menu = new MainMenu(theRoot, layout); menu.setSettings(_arg2); if (_arg1 == MainMenu.RATE_MAP){ menu.rateState = MainMenu.START; }; menu.changeState(_arg1); if (_arg1 != MainMenu.GENERATE_MAP){ music.changeMusic(MusicPlayer.MAIN_INTRO, true); }; Main.state = MENU; } public static function beginReplay():void{ var _local1:GameSettings; _local1 = menu.getSettings(); menu.cleanup(); Main.menu = null; replay.start(layout, _local1); Main.state = REPLAY; } public static function clearFirstGame():void{ gameDisk.data.hasPlayed = true; } protected static function syncHandler(_arg1:SyncEvent):void{ } public static function loadGame():void{ menu.cleanup(); Main.menu = null; Main.replay = new Replay(); Game.loadGame(); if (Game.spawner.getWaveCount() == 0){ music.changeMusic(MusicPlayer.QUIET, true); } else { music.changeMusic(MusicPlayer.randomWave(), true); }; Main.state = PLAY; } public static function main():void{ var _local1:Main; _local1 = new (Main); _local1.init(); } public static function beginPlay():void{ var _local1:GameSettings; _local1 = menu.getSettings().clone(); menu.cleanup(); Main.menu = null; Main.replay = new Replay(); Game.newGame(_local1); if (_local1.isEditor()){ music.stop(); } else { music.changeMusic(MusicPlayer.QUIET, true); }; Main.state = PLAY; } } }//package
Section 384
//Map (Map) package { import mapgen.*; import flash.*; public class Map { protected var cellMap:Grid; protected var blocked:List; protected var cityLot:Section; protected var buildings:List; public function Map(_arg1:Point=null):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; super(); if (!Boot.skip_constructor){ this.blocked = new List(); this.buildings = new List(); this.cellMap = new Grid(_arg1.x, _arg1.y); _local2 = 0; _local3 = _arg1.y; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local5 = 0; _local6 = _arg1.x; while (_local5 < _local6) { var _temp2 = _local5; _local5 = (_local5 + 1); _local7 = _temp2; this.cellMap.set(_local7, _local4, new MapCell()); }; }; this.cityLot = null; }; } public function size():Point{ return (new Point(this.sizeX(), this.sizeY())); } public function getBuildings():List{ return (this.buildings); } public function addBlocked(_arg1:Route):void{ } public function clearBlocked():void{ } public function noise(_arg1:int, _arg2:int, _arg3:int, _arg4:PathFinder):void{ var source:Point; var minX:int; var maxX:int; var minY:int; var maxY:int; var _g:int; var yPos:int; var _g1:int; var xPos:int; var loudness:int; var x = _arg1; var y = _arg2; var range = _arg3; var guide = _arg4; source = new Point(x, y); minX = function (_arg1:Map):int{ var $r:*; var tmp:*; var $this = _arg1; tmp = Math.max(0, (x - range)); $r = (Std._is(tmp, int)) ? tmp : function (_arg1:Map):Number{ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this); maxX = function (_arg1:Map):int{ var $r3:*; var tmp2:*; var $this = _arg1; tmp2 = Math.min($this.sizeX(), ((x + range) + 1)); $r3 = (Std._is(tmp2, int)) ? tmp2 : function (_arg1:Map):Number{ var _local2:*; throw ("Class cast error"); }($this); return ($r3); }(this); minY = function (_arg1:Map):int{ var $r5:*; var tmp3:*; var $this = _arg1; tmp3 = Math.max(0, (y - range)); $r5 = (Std._is(tmp3, int)) ? tmp3 : function (_arg1:Map):Number{ var _local2:*; throw ("Class cast error"); }($this); return ($r5); }(this); maxY = function (_arg1:Map):int{ var $r7:*; var tmp4:*; var $this = _arg1; tmp4 = Math.min($this.sizeY(), ((y + range) + 1)); $r7 = (Std._is(tmp4, int)) ? tmp4 : function (_arg1:Map):Number{ var _local2:*; throw ("Class cast error"); }($this); return ($r7); }(this); _g = minY; while (_g < maxY) { _g = (_g + 1); yPos = _g; _g1 = minX; while (_g1 < maxX) { _g1 = (_g1 + 1); xPos = _g1; loudness = range; this.getCell(xPos, yPos).makeNoise(source, loudness, guide); }; }; } public function findTowers(_arg1:int, _arg2:int, _arg3:int):List{ var result:List; var minX:int; var maxX:int; var minY:int; var maxY:int; var _g:int; var yPos:int; var _g1:int; var xPos:int; var x = _arg1; var y = _arg2; var range = _arg3; result = new List(); minX = function (_arg1:Map):int{ var $r:*; var tmp:*; var $this = _arg1; tmp = Math.max(0, (x - range)); $r = (Std._is(tmp, int)) ? tmp : function (_arg1:Map):Number{ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this); maxX = function (_arg1:Map):int{ var $r3:*; var tmp2:*; var $this = _arg1; tmp2 = Math.min($this.sizeX(), ((x + range) + 1)); $r3 = (Std._is(tmp2, int)) ? tmp2 : function (_arg1:Map):Number{ var _local2:*; throw ("Class cast error"); }($this); return ($r3); }(this); minY = function (_arg1:Map):int{ var $r5:*; var tmp3:*; var $this = _arg1; tmp3 = Math.max(0, (y - range)); $r5 = (Std._is(tmp3, int)) ? tmp3 : function (_arg1:Map):Number{ var _local2:*; throw ("Class cast error"); }($this); return ($r5); }(this); maxY = function (_arg1:Map):int{ var $r7:*; var tmp4:*; var $this = _arg1; tmp4 = Math.min($this.sizeY(), ((y + range) + 1)); $r7 = (Std._is(tmp4, int)) ? tmp4 : function (_arg1:Map):Number{ var _local2:*; throw ("Class cast error"); }($this); return ($r7); }(this); _g = minY; while (_g < maxY) { _g = (_g + 1); yPos = _g; _g1 = minX; while (_g1 < maxX) { _g1 = (_g1 + 1); xPos = _g1; if (this.getCell(xPos, yPos).hasTower()){ result.push(new Point(xPos, yPos)); }; }; }; return (result); } public function cleanup():void{ this.cellMap = null; this.blocked = null; } public function load(_arg1):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:*; _local2 = 0; _local3 = this.sizeY(); while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local5 = 0; _local6 = this.sizeX(); while (_local5 < _local6) { var _temp2 = _local5; _local5 = (_local5 + 1); _local7 = _temp2; _local8 = _arg1.cellMap.mBuffer[(_local7 + (_local4 * this.sizeX()))]; this.cellMap.get(_local7, _local4).load(_local8); }; }; this.buildings = Load.loadList(_arg1.buildings, Building.load); this.cityLot = Load.maybe(_arg1.cityLot, Section.load); } public function getCell(_arg1:int, _arg2:int):MapCell{ return (this.cellMap.get(_arg1, _arg2)); } public function setCityLot(_arg1:Section):void{ this.cityLot = new Section(_arg1.offset, _arg1.limit); } public function getCityLot():Section{ return (this.cityLot); } public function addBuilding(_arg1:Building):void{ this.buildings.add(_arg1); } public function sizeX():int{ return (this.cellMap.sizeX()); } public function sizeY():int{ return (this.cellMap.sizeY()); } public function save(){ return ({cellMap:this.cellMap.save(MapCell.save), buildings:Save.saveList(this.buildings, Building.saveS), cityLot:Save.maybe(this.cityLot, Section.save)}); } } }//package
Section 385
//MapCell (MapCell) package { import logic.*; import ui.*; import mapgen.*; import action.*; import feature.*; import flash.*; public class MapCell { public var edit:EditBox; protected var obstacle; protected var mTower:Tower; protected var mBackground:BackgroundType; public var feature:Root; protected var mTrucks:List; protected var mTile:List; protected var mBuilding:Building; protected var scent:Direction; protected var mRubble:Rubble; protected var mZombies:List; protected var mShadow:TowerSprite; protected var mIsBlocked:Boolean; protected var x:int; protected var y:int; public function MapCell():void{ if (!Boot.skip_constructor){ this.mTile = new List(); this.mIsBlocked = false; this.mTower = null; this.x = 0; this.y = 0; this.mZombies = new List(); this.mTrucks = new List(); this.mShadow = null; this.mRubble = null; this.mBuilding = null; this.mBackground = BackgroundType.STREET; this.scent = null; this.obstacle = null; this.feature = null; this.edit = null; }; } public function getObstacle(){ return (this.obstacle); } public function zombieCount():int{ return (this.mZombies.length); } public function attackZombie(_arg1:Point):void{ if (!this.mZombies.isEmpty()){ this.mZombies.first().kill(_arg1); }; } public function hasTower():Boolean{ return (!((this.mTower == null))); } public function init(_arg1:int, _arg2:int):void{ this.x = _arg1; this.y = _arg2; } public function hasZombies():Boolean{ return (!(this.mZombies.isEmpty())); } public function destroyAllTrucks():void{ var _local1:Truck; while (!(this.mTrucks.isEmpty())) { _local1 = this.mTrucks.first(); this.removeTruck(_local1); _local1.cleanup(); }; } public function getZombie():Zombie{ if (!this.mZombies.isEmpty()){ return (this.mZombies.first()); }; return (null); } public function getShadow():TowerSprite{ return (this.mShadow); } public function attackTower():void{ var _local1:Boolean; if (this.hasTower()){ _local1 = this.mTower.attack(); if (_local1){ this.fleeTower(); }; }; } public function setShadow(_arg1:int):TowerSprite{ var _local2:ShadowColor; if (this.mShadow != null){ this.clearShadow(); }; this.mShadow = new TowerSprite(new Point(this.x, this.y), _arg1, 0); _local2 = ShadowColor.BUILD_SITE; this.mShadow.changeColor(_local2); this.mShadow.update(); return (this.mShadow); } public function getBackground():BackgroundType{ return (this.mBackground); } public function addZombie(_arg1:Zombie):void{ if (this.mZombies.isEmpty()){ Game.tracker.addCell(new Point(this.x, this.y)); }; this.mZombies.add(_arg1); while (!(this.mTrucks.isEmpty())) { Game.actions.push(new KillTruck(this.mTrucks.first())); this.removeTruck(this.mTrucks.first()); }; Game.update.cellState(new Point(this.x, this.y)); } public function clearRubble():void{ if (this.mRubble != null){ this.mRubble.cleanup(); this.mRubble = null; }; } public function getBuilding():Building{ return (this.mBuilding); } public function hasTrucks():Boolean{ return (!(this.mTrucks.isEmpty())); } public function destroyTower():void{ if (this.hasTower()){ Main.replay.addBox(new Point(this.x, this.y), new Point((this.x + 1), (this.y + 1)), Option.roadMiniColor); if (this.mTower.getType() == Tower.DEPOT){ Game.script.trigger(Script.DESTROY_DEPOT, new Point(this.x, this.y)); } else { if (this.mTower.getType() == Tower.BARRICADE){ Game.script.trigger(Script.DESTROY_BARRICADE, new Point(this.x, this.y)); } else { if (this.mTower.getType() == Tower.SNIPER){ Game.sprites.removeSniper(this.mTower); Game.view.window.updateRanges(); Game.script.trigger(Script.DESTROY_SNIPER, new Point(this.x, this.y)); } else { if (this.mTower.getType() == Tower.WORKSHOP){ Game.script.trigger(Script.DESTROY_WORKSHOP, new Point(this.x, this.y)); }; }; }; }; this.mTower.removeAllResources(); this.mTower.cleanup(); this.mTower = null; Game.update.destroyTower(new Point(this.x, this.y)); Game.actions.push(new UpdateBlocked(new Point(this.x, this.y))); }; } public function setBackground(_arg1:BackgroundType):void{ this.mBackground = _arg1; } public function setBlocked():void{ this.mIsBlocked = true; } public function hasRubble():Boolean{ return (((!((this.mRubble == null))) || (((((!((this.mBuilding == null))) && ((this.mBackground == BackgroundType.ENTRANCE)))) && ((this.mBuilding.getSalvage().getTotalCount() > 0)))))); } public function clearTiles():void{ this.mTile.clear(); } protected function addScents():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:Direction; _local1 = 0; _local2 = Lib.directions.length; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = (this.x + Lib.dirDeltas[_local3].x); _local5 = (this.y + Lib.dirDeltas[_local3].y); _local6 = Util.opposite(Lib.directions[_local3]); Game.map.getCell(_local4, _local5).scent = _local6; this.scent = null; }; } public function removeObstacle():void{ this.obstacle = null; } public function removeTruck(_arg1:Truck):void{ this.mTrucks.remove(_arg1); Game.update.cellState(new Point(this.x, this.y)); } public function getRubbleCount(_arg1:Resource):int{ var _local2:int; _local2 = 0; if (this.mRubble != null){ _local2 = (_local2 + this.mRubble.getSalvage().getResourceCount(_arg1)); }; if (((!((this.mBuilding == null))) && ((this.mBackground == BackgroundType.ENTRANCE)))){ _local2 = (_local2 + this.mBuilding.getSalvage().getResourceCount(_arg1)); }; return (_local2); } public function addTruck(_arg1:Truck):void{ this.addScents(); this.mTrucks.add(_arg1); if (this.hasZombies()){ Game.actions.push(new KillTruck(_arg1)); this.removeTruck(_arg1); }; Game.update.cellState(new Point(this.x, this.y)); } public function fleeTower():void{ var _local1:int; var _local2:int; var _local3:Route; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:Truck; var _local9:int; var _local10:Resource; var _local11:int; if (this.hasTower()){ if (this.mTower.getType() == Tower.DEPOT){ Game.progress.removeDepot(new Point(this.x, this.y)); }; _local3 = this.getReturnRoute(); _local4 = this.mTower.countResource(Resource.SURVIVORS); _local5 = 0; while (_local5 < _local4) { var _temp1 = _local5; _local5 = (_local5 + 1); _local6 = _temp1; _local7 = this.mTower.takeSurvivor(); if (_local3 != null){ _local8 = Truck.createFleeingTruck(_local7, _local3); }; }; }; _local1 = 0; _local2 = Option.resourceCount; while (_local1 < _local2) { var _temp2 = _local1; _local1 = (_local1 + 1); _local9 = _temp2; _local10 = Lib.indexToResource(_local9); _local11 = this.mTower.countResource(_local10); if (_local11 > 0){ this.addRubble(_local10, _local11); }; }; if (this.mTower.getType() != Tower.BARRICADE){ this.addRubble(Resource.BOARDS, (Option.truckLoad * this.mTower.getInfrastructureBoards())); }; this.destroyTower(); } public function loadAddTruck(_arg1:Truck):void{ this.mTrucks.add(_arg1); } public function setBuilding(_arg1:Building):void{ this.mBuilding = _arg1; } public function hasObstacle():Boolean{ return (!((this.obstacle == null))); } protected function getReturnRoute():Route{ var _local1:Route; var _local2:*; var _local3:Route; var _local4:Tower; var _local5:Point; _local1 = null; if (!this.mTower.getTradeLinks().isEmpty()){ _local2 = this.mTower.getTradeLinks().iterator(); while (_local2.hasNext()) { _local3 = _local2.next(); _local4 = Game.map.getCell(_local3.dest.x, _local3.dest.y).getTower(); if (_local4.getType() == Tower.DEPOT){ _local1 = _local3; break; }; }; } else { _local5 = Game.progress.getRandomDepot(); if (_local5 != null){ _local1 = new Route(new Point(this.x, this.y), _local5); }; }; return (_local1); } public function makeNoise(_arg1:Point, _arg2:int, _arg3:PathFinder):void{ var _local4:*; var _local5:Zombie; _local4 = this.mZombies.iterator(); while (_local4.hasNext()) { _local5 = _local4.next(); _local5.makeNoise(_arg1, _arg2, _arg3); }; if (this.mBuilding != null){ this.mBuilding.makeNoise(_arg1, _arg2, _arg3); }; } public function clearShadow():void{ if (this.mShadow != null){ this.mShadow.cleanup(); this.mShadow = null; }; } public function getTiles():List{ return (this.mTile); } public function addObstacle(_arg1:int):void{ this.obstacle = _arg1; } public function removeZombie(_arg1:Zombie):void{ this.mZombies.remove(_arg1); if (this.mZombies.isEmpty()){ Game.tracker.removeCell(new Point(this.x, this.y)); }; Game.update.cellState(new Point(this.x, this.y)); } public function getTower():Tower{ return (this.mTower); } public function hasShadow():Boolean{ return (!((this.mShadow == null))); } public function attackSurvivor():Point{ var _local1:Point; _local1 = null; if (!this.mTrucks.isEmpty()){ _local1 = this.mTrucks.first().getPixel(); Game.actions.push(new KillTruck(this.mTrucks.first())); this.removeTruck(this.mTrucks.first()); Game.update.cellState(new Point(this.x, this.y)); }; return (_local1); } public function clearBlocked():void{ this.mIsBlocked = false; } public function loadAddZombie(_arg1:Zombie):void{ this.mZombies.add(_arg1); } public function isBlocked():Boolean{ return (this.mIsBlocked); } public function getScent():Direction{ return (this.scent); } public function load(_arg1):void{ this.mTile = Load.loadList(_arg1.mTile, Load.loadInt); this.mIsBlocked = _arg1.mIsBlocked; this.x = _arg1.x; this.y = _arg1.y; this.mShadow = Load.maybe(_arg1.mShadow, TowerSprite.load); this.mRubble = Load.maybe(_arg1.mRubble, Rubble.load); this.mBackground = Lib.indexToBackgroundType(_arg1.mBackground); if (_arg1.scent != null){ this.scent = Lib.indexToDirection(_arg1.scent); }; this.feature = Load.maybe(_arg1.feature, Root.loadS); } public function buildingHasZombies():Boolean{ return (((!((this.mBuilding == null))) && (this.mBuilding.hasZombies()))); } public function getAllRubbleCounts():Array{ var _local1:Array; var _local2:int; var _local3:int; var _local4:int; _local1 = Lib.newResourceArray(); _local2 = 0; _local3 = Option.resourceCount; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local1[_local4] = this.getRubbleCount(Lib.indexToResource(_local4)); }; return (_local1); } public function createTower(_arg1:int):void{ var _local2:int; if (!this.hasTower()){ _local2 = 0; if (_arg1 == Tower.DEPOT){ this.mTower = new Depot(this.x, this.y); _local2 = Color.depotReplay; Game.progress.addDepot(new Point(this.x, this.y)); Game.script.trigger(Script.BUILD_DEPOT, new Point(this.x, this.y)); } else { if (_arg1 == Tower.WORKSHOP){ this.mTower = new Workshop(this.x, this.y); _local2 = Color.workshopReplay; Game.script.trigger(Script.BUILD_WORKSHOP, new Point(this.x, this.y)); } else { if (_arg1 == Tower.BARRICADE){ this.mTower = new Barricade(this.x, this.y); _local2 = Color.barricadeReplay; Game.script.trigger(Script.BUILD_BARRICADE, new Point(this.x, this.y)); } else { if (_arg1 == Tower.SNIPER){ this.mTower = new Sniper(this.x, this.y); _local2 = Color.sniperReplay; Game.sprites.addSniper(this.mTower); Game.script.trigger(Script.BUILD_SNIPER, new Point(this.x, this.y)); }; }; }; }; Main.replay.addBox(new Point(this.x, this.y), new Point((this.x + 1), (this.y + 1)), _local2); Game.update.newTower(new Point(this.x, this.y)); Game.actions.push(new UpdateBlocked(new Point(this.x, this.y))); }; } public function loadAddTower(_arg1:Tower):void{ this.mTower = _arg1; } public function addTile(_arg1:int):void{ this.mTile.add(_arg1); } public function closeTower():void{ var _local1:Route; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:Resource; var _local7:Truck; if (((this.hasTower()) && ((((this.mTower.getType() == Tower.WORKSHOP)) || ((this.mTower.getType() == Tower.BARRICADE)))))){ if (this.mTower.getType() == Tower.DEPOT){ Game.progress.removeDepot(new Point(this.x, this.y)); }; _local1 = this.getReturnRoute(); _local2 = this.mTower.countResource(Resource.SURVIVORS); _local3 = 0; while (_local3 < _local2) { var _temp1 = _local3; _local3 = (_local3 + 1); _local4 = _temp1; _local5 = this.mTower.takeSurvivor(); if (_local1 != null){ _local6 = Resource.SURVIVORS; if (this.mTower.canDowngrade()){ _local6 = Resource.BOARDS; this.mTower.downgrade(); }; _local7 = Truck.createClosingTruck(_local5, _local1, Resource.SURVIVORS); }; }; this.destroyTower(); }; } public function getRubble(_arg1:List):Resource{ var _local2:Resource; _local2 = null; if (this.mRubble != null){ _local2 = this.mRubble.getSalvage().getResource(_arg1); if (this.mRubble.getSalvage().getTotalCount() <= 0){ this.mRubble.cleanup(); this.mRubble = null; }; }; if ((((((_local2 == null)) && (!((this.mBuilding == null))))) && ((this.mBackground == BackgroundType.ENTRANCE)))){ _local2 = this.mBuilding.getSalvage().getResource(_arg1); }; return (_local2); } public function spawn(_arg1:Point, _arg2:PathFinder):void{ if (!this.mZombies.isEmpty()){ this.mZombies.first().makeNoise(_arg1, 0, _arg2); this.mZombies.first().addToWave(); }; } public function addRubble(_arg1:Resource, _arg2:int, _arg3=null):void{ if (this.mRubble == null){ this.mRubble = new Rubble(this.x, this.y); }; this.mRubble.addResource(_arg1, _arg2, _arg3); } public static function save(_arg1:MapCell){ var _local2:*; _local2 = null; if (_arg1.scent != null){ _local2 = Lib.directionToIndex(_arg1.scent); }; return ({mTile:Save.saveList(_arg1.mTile, Save.saveInt), mIsBlocked:_arg1.mIsBlocked, x:_arg1.x, y:_arg1.y, mShadow:Save.maybe(_arg1.mShadow, TowerSprite.saveS), mRubble:Save.maybe(_arg1.mRubble, Rubble.save), mBackground:Lib.backgroundTypeToIndex(_arg1.mBackground), scent:_local2, feature:Save.maybe(_arg1.feature, Root.saveS)}); } } }//package
Section 386
//MapGenerator (MapGenerator) package { import logic.*; import ui.*; import mapgen.*; import feature.*; import flash.*; import haxe.*; public class MapGenerator { protected var map:Map; protected var settings:GameSettings; protected var biasRegions:Array; protected static var beachTiles:Array = [Tile.nwBeach, Tile.nBeach, Tile.neBeach, Tile.wBeach, Tile.NO_TILE, Tile.eBeach, Tile.swBeach, Tile.sBeach, Tile.seBeach]; public static var waterCount:int = 8; protected static var shallowWaterTiles:Array = [989, 989, 989, 989, 989, 989, 989, 989, 989]; protected static var deepWaterTiles:Array = [Tile.deepWater, Tile.deepWater, Tile.deepWater, Tile.deepWater, Tile.NO_TILE, Tile.deepWater, Tile.deepWater, Tile.deepWater, Tile.deepWater]; public function MapGenerator(_arg1:Map=null, _arg2:GameSettings=null):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; super(); if (!Boot.skip_constructor){ this.map = _arg1; this.settings = _arg2; this.biasRegions = []; Util.seed(this.settings.getNormalName()); _local3 = 0; _local4 = this.settings.getSize().y; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = 0; _local7 = this.settings.getSize().x; while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local8 = _temp2; this.map.getCell(_local8, _local5).init(_local8, _local5); }; }; }; } protected function getCenterHqPos(_arg1:Division, _arg2:Division):Point{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local3 = Math.floor(Math.min(_arg1.getLeft().limit.x, _arg2.getLeft().limit.x)); _local4 = Math.floor(Math.max(_arg1.getRight().offset.x, _arg2.getRight().offset.x)); _local5 = ((Math.floor(((_local3 + _local4) / 2)) - 1) + Util.rand(3)); _local6 = ((_arg1.getRight().limit.y + 1) + Util.rand(2)); return (new Point(_local5, _local6)); } protected function placeBridges(_arg1:Division, _arg2:Division):void{ var _local3:Array; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:Section; var _local9:Point; var _local10:Direction; var _local11:Boolean; var _local12:Boolean; _local3 = [Direction.NORTH, Direction.SOUTH, Direction.EAST, Direction.WEST]; Util.shuffle(_local3); _local4 = (4 - this.settings.getBridgeCount()); if ((((this.settings.getEasterEgg() == GameSettings.RACCOONCITY)) || ((this.settings.getEasterEgg() == GameSettings.FIDDLERSGREEN)))){ _local4 = 4; }; _local5 = -1; if ((((_local4 > 0)) && (!((this.settings.getEasterEgg() == GameSettings.FIDDLERSGREEN))))){ _local5 = Util.rand(_local4); }; _local6 = 0; while (_local6 < 4) { var _temp1 = _local6; _local6 = (_local6 + 1); _local7 = _temp1; _local8 = this.getBridgeLot(_local3[_local7], _arg1, _arg2); _local9 = null; _local10 = _local3[_local7]; if (_local7 == _local5){ _local9 = this.getHqPos(_local10, _arg1, _arg2); } else { _local9 = this.getDynamitePos(_local10, _arg1, _arg2); }; _local11 = (_local7 < _local4); _local12 = (_local7 == _local5); this.placeSingleBridge(_local8, _local9, Util.opposite(_local10), _local11, _local12); }; if (_local5 == -1){ this.placeHq(this.getCenterHqPos(_arg1, _arg2)); }; } protected function placeTutorial(_arg1:Point, _arg2:Point):void{ var _local3:Point; var _local4:Point; var _local5:int; var _local6:int; var _local7:Street; var _local8:Section; var _local9:Section; var _local10:Section; var _local11:Point; var _local12:Section; var _local13:Point; _local3 = _arg1.clone(); _local4 = _arg2.clone(); this.box(_arg1, _arg2, Option.waterColor); this.fillWith(_arg1, _arg2, Tile.deepWater, BackgroundType.WATER, true); _local5 = 14; _local6 = 34; _arg1 = new Point((_arg1.x + Math.floor((((_arg2.x - _arg1.x) - _local5) / 2))), (_arg1.y + Math.floor((((_arg2.y - _arg1.y) - _local6) / 2)))); _arg2 = new Point((_arg1.x + _local5), (_arg1.y + _local6)); this.placeWater(_arg1, _arg2, 2); this.box(_arg1, _arg2, Option.roadMiniColor); _local7 = new Street(new Point((_arg1.x + 3), _arg1.y), 4, (_arg2.y - _arg1.y), true, null, null); _local8 = new Section(_arg1, new Point((_arg1.x + 3), _arg2.y)); _local8.east = _local7; _local9 = new Section(new Point((_arg1.x + 7), _arg1.y), new Point((_arg1.x + 10), _arg2.y)); _local9.west = _local7; _local10 = new Section(new Point((_arg1.x + 2), _local3.y), new Point((_arg1.x + 8), _arg1.y)); _local11 = new Point((_arg1.x + 5), _arg1.y); _local12 = new Section(new Point((_arg1.x + 2), _arg2.y), new Point((_arg1.x + 8), _local4.y)); _local13 = new Point((_arg1.x + 6), (_arg2.y - 1)); this.placeSingleBridge(_local10, _local11, Direction.NORTH, false, false); this.placeSingleBridge(_local12, _local13, Direction.SOUTH, true, true); this.placeBlock(_local8); this.placeBlock(_local9); this.biasRegions = []; _local7.draw(this.map); this.placeZombies(); this.placeSalvage(); } protected function placeBlock(_arg1:Section):void{ var _local2:int; var _local3:BlockRoot; _local2 = 0; if (_arg1.isNear(this.settings.getStart(), Option.hqInfluence)){ _local2 = Util.randWeightedIndex(Option.hqBlockDistribution); } else { if ((((_arg1.getSize().x >= 5)) && ((_arg1.getSize().y >= 5)))){ if (this.settings.getEasterEgg() == GameSettings.MONROEVILLE){ _local2 = 3; } else { _local2 = Util.randWeightedIndex(Option.largeBlockDistribution); }; } else { _local2 = Util.randWeightedIndex(Option.smallBlockDistribution); }; }; _local3 = null; if (_local2 == 1){ _local3 = new BlockPark(); } else { if (_local2 == 2){ _local3 = new BlockChurch(); } else { if (_local2 == 3){ _local3 = new BlockMall(); } else { if (_local2 == 4){ _local3 = new BlockHouses(); } else { if (_local2 == 5){ _local3 = new BlockApartment(); } else { _local3 = new BlockStandard(); }; }; }; }; }; _local3.place(_arg1); } protected function getDynamitePos(_arg1:Direction, _arg2:Division, _arg3:Division):Point{ var _local4:Point; var _local5:enum; _local4 = null; _local5 = _arg1; switch (_local5.index){ case 0: _local4 = new Point((_arg2.getLeft().limit.x + Util.rand(4)), (_arg2.getLeft().offset.y - 2)); break; case 1: _local4 = new Point((_arg3.getLeft().limit.x + Util.rand(4)), (_arg3.getLeft().limit.y + 1)); break; case 2: _local4 = new Point((_arg2.getRight().limit.x + 1), (_arg2.getRight().limit.y + Util.rand(4))); break; case 3: _local4 = new Point((_arg2.getLeft().offset.x - 2), (_arg2.getLeft().limit.y + Util.rand(4))); break; }; return (_local4); } protected function findStreetWidth(_arg1:Point, _arg2:Point):int{ var _local3:int; var _local4:int; var _local5:int; _local3 = 3; _local4 = (_arg2.x - _arg1.x); _local5 = (_arg2.y - _arg1.y); if ((((_local4 < 10)) || ((_local5 < 10)))){ _local3 = 1; } else { if ((((_local4 < 20)) || ((_local5 < 20)))){ _local3 = 2; }; }; return (_local3); } protected function box(_arg1:Point, _arg2:Point, _arg3:int):void{ Main.replay.addBox(_arg1, _arg2, _arg3); } protected function placeBuildingSalvage(_arg1:Point, _arg2:int, _arg3:Building):void{ var _local4:Resource; var _local5:int; var _local6:int; var _local7:Boolean; _local4 = this.findBiasResource(_arg1); _local5 = 0; while (_local5 < _arg2) { var _temp1 = _local5; _local5 = (_local5 + 1); _local6 = _temp1; _local7 = true; _local7 = false; if (((((((_local7) && (!((_local4 == null))))) && ((Util.rand(100) < Option.biasSalvage)))) && ((((_arg3.getType() == Util.STANDARD)) || ((_arg3.getType() == Util.HOUSE)))))){ Util.placeSingleSalvage(this.map, _arg1.x, _arg1.y, _local4); } else { Util.placeSingleSalvage(this.map, _arg1.x, _arg1.y); }; }; } public function resetMap():void{ var _local1:Point; var _local2:Point; var _local3:*; var _local4:Building; this.box(new Point(0, 0), this.settings.getSize().clone(), Option.roadMiniColor); _local1 = new Point(0, 0); _local2 = this.settings.getSize().clone(); this.box(_local1, _local2, Option.waterColor); this.placeWater(_local1, _local2, waterCount); _local1 = new Point(waterCount, waterCount); _local2 = new Point((this.settings.getSize().x - waterCount), (this.settings.getSize().y - waterCount)); if (this.settings.getNormalName().indexOf("tutorial") != -1){ this.placeTutorial(_local1, _local2); } else { this.placeIsland(_local1, _local2); }; _local3 = this.map.getBuildings().iterator(); while (_local3.hasNext()) { _local4 = _local3.next(); _local4.drawReplay(); }; } protected function placeWater(_arg1:Point, _arg2:Point, _arg3:int):void{ var _local4:int; var _local5:int; var _local6:int; _local4 = 0; _local5 = (_arg3 - 2); while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; this.placeWithBorder(_arg1, _arg2, shallowWaterTiles, BackgroundType.WATER, true); this.shrinkSize(_arg1, _arg2); }; this.placeWithBorder(_arg1, _arg2, shallowWaterTiles, BackgroundType.WATER, true); this.shrinkSize(_arg1, _arg2); this.placeWithBorder(_arg1, _arg2, beachTiles, BackgroundType.WATER, true); this.shrinkSize(_arg1, _arg2); } protected function nearHq(_arg1:List):Boolean{ var _local2:Boolean; var _local3:*; var _local4:Section; _local2 = false; _local3 = _arg1.iterator(); while (_local3.hasNext()) { _local4 = _local3.next(); if (_local4.isNear(this.settings.getStart(), Option.hqInfluence)){ _local2 = true; break; }; }; return (_local2); } protected function placeCity(_arg1:Section):void{ var _local2:Division; var _local3:Division; var _local4:Division; _local2 = new Division(Option.minGenericSize); _local2.split(_arg1, 4); _local3 = new Division(Option.minGenericSize); _local3.split(_local2.getTop(), 4); _local4 = new Division(Option.minGenericSize); _local4.split(_local2.getBottom(), 4); this.placeBridges(_local3, _local4); this.placeRegion(_local3.getLeft()); this.placeRegion(_local3.getRight()); this.placeRegion(_local4.getLeft()); this.placeRegion(_local4.getRight()); this.biasRegions = [_local3.getLeft(), _local3.getRight(), _local4.getLeft(), _local4.getRight()]; Util.shuffle(this.biasRegions); _local3.getMiddle().draw(this.map); _local4.getMiddle().draw(this.map); _local2.getMiddle().draw(this.map); if (this.settings.getEasterEgg() != GameSettings.FIDDLERSGREEN){ this.placeZombies(); }; this.placeSalvage(); } protected function getHqPos(_arg1:Direction, _arg2:Division, _arg3:Division):Point{ var _local4:Point; var _local5:enum; _local4 = null; _local5 = _arg1; switch (_local5.index){ case 0: _local4 = new Point((_arg2.getLeft().limit.x + Util.rand(4)), (_arg2.getLeft().offset.y - 1)); break; case 1: _local4 = new Point((_arg3.getLeft().limit.x + Util.rand(4)), _arg3.getLeft().limit.y); break; case 2: _local4 = new Point(_arg2.getRight().limit.x, (_arg2.getRight().limit.y + Util.rand(4))); break; case 3: _local4 = new Point((_arg2.getLeft().offset.x - 1), (_arg2.getRight().limit.y + Util.rand(4))); break; }; return (_local4); } protected function placeSingleBridge(_arg1:Section, _arg2:Point, _arg3:Direction, _arg4:Boolean, _arg5:Boolean):void{ var _local6:PlaceBridge; var _local7:Bridge; var _local8:Dynamite; var _local9:Point; _local6 = new PlaceBridge(_arg3, _arg4); _local6.place(_arg1); _local6.intersectStreet(_arg1); _local7 = new Bridge(_arg3, _arg1, _arg4); Game.progress.addBridge(_local7, _arg4); if (!_arg4){ _local8 = new Dynamite(_arg2, Option.dynamiteWork, _local7); }; if (_arg5){ if (!_arg4){ _local9 = new Point((_arg2.x + 1), _arg2.y); this.placeHq(_local9); } else { this.placeHq(_arg2); }; }; } protected function getBridgeLot(_arg1:Direction, _arg2:Division, _arg3:Division):Section{ var _local4:Section; var _local5:enum; _local4 = null; _local5 = _arg1; switch (_local5.index){ case 0: _local4 = new Section(new Point((_arg2.getLeft().limit.x - 1), ((_arg2.getLeft().offset.y - waterCount) - 2)), new Point((_arg2.getRight().offset.x + 1), (_arg2.getLeft().offset.y - 2))); _local4.south = _arg2.getLeft().north; break; case 1: _local4 = new Section(new Point((_arg3.getLeft().limit.x - 1), (_arg3.getLeft().limit.y + 2)), new Point((_arg3.getRight().offset.x + 1), ((_arg3.getLeft().limit.y + waterCount) + 2))); _local4.north = _arg3.getLeft().south; break; case 2: _local4 = new Section(new Point((_arg2.getRight().limit.x + 2), (_arg2.getRight().limit.y - 1)), new Point(((_arg2.getRight().limit.x + waterCount) + 2), (_arg3.getRight().offset.y + 1))); _local4.west = _arg2.getRight().east; break; case 3: _local4 = new Section(new Point(((_arg2.getLeft().offset.x - waterCount) - 2), (_arg2.getLeft().limit.y - 1)), new Point((_arg2.getLeft().offset.x - 2), (_arg3.getLeft().offset.y + 1))); _local4.east = _arg2.getLeft().west; break; }; return (_local4); } protected function placeRegion(_arg1:Section):void{ var _local2:Division; if (((((_arg1.limit.x - _arg1.offset.x) <= Option.blockThreshold)) && (((_arg1.limit.y - _arg1.offset.y) <= Option.blockThreshold)))){ this.placeBlock(_arg1); } else { _local2 = new Division(Option.minGenericSize); _local2.split(_arg1, this.findStreetWidth(_arg1.offset, _arg1.limit)); this.placeRegion(_local2.getLeft()); this.placeRegion(_local2.getRight()); _local2.getMiddle().draw(this.map); }; } protected function placeZombies():void{ var _local1:*; var _local2:Building; var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local1 = this.map.getBuildings().iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); _local3 = 0; _local4 = 0; _local5 = this.settings.getZombieMultiplier(); while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; _local3 = (_local3 + Util.rand(Option.zombieChance[_local2.getType()])); }; this.placeBuildingZombies(_local2, _local3); }; } protected function placeSalvage():void{ var _local1:*; var _local2:Building; var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local1 = this.map.getBuildings().iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); _local3 = 0; _local4 = 0; _local5 = this.settings.getResourceMultiplier(); while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; _local3 = (_local3 + Util.rand(Option.salvageChance[_local2.getType()])); }; this.placeBuildingSalvage(_local2.getEntrance(), _local3, _local2); }; } protected function findBiasResource(_arg1:Point):Resource{ var _local2:int; var _local3:int; var _local4:int; _local2 = 0; _local3 = this.biasRegions.length; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; if (this.biasRegions[_local4] == null){ Log.trace(_local4, {fileName:"MapGenerator.hx", lineNumber:718, className:"MapGenerator", methodName:"findBiasResource"}); }; if (this.biasRegions[_local4].contains(_arg1)){ return (Lib.indexToResource(_local4)); }; }; return (null); } protected function fillRandom(_arg1:Point, _arg2:Point, _arg3:Array, _arg4:Array):void{ var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; _local5 = Math.floor((((_arg2.x - _arg1.x) * (_arg2.y - _arg1.y)) / 3)); _local6 = 0; while (_local6 < _local5) { var _temp1 = _local6; _local6 = (_local6 + 1); _local7 = _temp1; _local8 = (Util.rand((_arg2.x - _arg1.x)) + _arg1.x); _local9 = (Util.rand((_arg2.y - _arg1.y)) + _arg1.y); if (this.map.getCell(_local8, _local9).getTiles().length <= 1){ this.map.getCell(_local8, _local9).setBlocked(); _local10 = Util.randWeightedIndex(_arg4); this.map.getCell(_local8, _local9).addTile(_arg3[_local10]); }; }; } protected function fillWith(_arg1:Point, _arg2:Point, _arg3:int, _arg4:BackgroundType, _arg5:Boolean):void{ var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; _local6 = _arg1.y; _local7 = _arg2.y; while (_local6 < _local7) { var _temp1 = _local6; _local6 = (_local6 + 1); _local8 = _temp1; _local9 = _arg1.x; _local10 = _arg2.x; while (_local9 < _local10) { var _temp2 = _local9; _local9 = (_local9 + 1); _local11 = _temp2; this.map.getCell(_local11, _local8).addTile(_arg3); this.map.getCell(_local11, _local8).setBackground(_arg4); if (_arg5){ this.map.getCell(_local11, _local8).setBlocked(); } else { this.map.getCell(_local11, _local8).clearBlocked(); }; }; }; } protected function shrinkSize(_arg1:Point, _arg2:Point):void{ _arg1.x++; _arg1.y++; _arg2.x--; _arg2.y--; } protected function placeHq(_arg1:Point):void{ var _local2:Tower; var _local3:Array; var _local4:Array; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:Boolean; var _local15:int; var _local16:ResourceCount; this.settings.setStart(_arg1); this.map.getCell(this.settings.getStart().x, this.settings.getStart().y).createTower(Tower.DEPOT); _local2 = this.map.getCell(this.settings.getStart().x, this.settings.getStart().y).getTower(); _local3 = [Resource.AMMO, Resource.BOARDS, Resource.SURVIVORS]; _local4 = [false, false, false]; _local5 = 0; _local6 = this.settings.getScarceCount(); while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local9 = _temp1; _local4[_local9] = true; }; Util.shuffle(_local4); _local7 = 0; _local8 = Option.startingResources; while (_local7 < _local8) { var _temp2 = _local7; _local7 = (_local7 + 1); _local10 = _temp2; _local11 = 0; _local12 = _local3.length; while (_local11 < _local12) { var _temp3 = _local11; _local11 = (_local11 + 1); _local13 = _temp3; _local14 = true; if (_local4[_local13]){ _local14 = ((_local10 % 2) == 0); }; if (_local14){ if (_local3[_local13] == Resource.SURVIVORS){ _local15 = Util.rand(Animation.carryAmmo.getTypeCount()); _local2.giveSurvivor(_local15); } else { _local16 = new ResourceCount(_local3[_local13], Lib.truckLoad(_local3[_local13])); _local2.giveResource(_local16); }; }; }; }; } protected function placeBuildingZombies(_arg1:Building, _arg2:int):void{ if (!this.nearHq(_arg1.getLots())){ _arg1.addZombies(_arg2); }; } protected function placeStreetCorners(_arg1:Point, _arg2:Point):void{ var _local3:Array; var _local4:Array; var _local5:Array; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:MapCell; var _local13:int; _local3 = [_arg1.x, (_arg2.x - 2), _arg1.x, (_arg2.x - 2)]; _local4 = [_arg1.y, _arg1.y, (_arg2.y - 2), (_arg2.y - 2)]; _local5 = [Tile.nwCurve, Tile.neCurve, Tile.swCurve, Tile.seCurve]; _local6 = 0; while (_local6 < 4) { var _temp1 = _local6; _local6 = (_local6 + 1); _local7 = _temp1; _local8 = 0; while (_local8 < 2) { var _temp2 = _local8; _local8 = (_local8 + 1); _local9 = _temp2; _local10 = 0; while (_local10 < 2) { var _temp3 = _local10; _local10 = (_local10 + 1); _local11 = _temp3; _local12 = this.map.getCell((_local3[_local7] + _local9), (_local4[_local7] + _local11)); _local13 = ((_local5[_local7] + _local9) + (_local11 * Tile.X_COUNT)); _local12.clearTiles(); _local12.addTile(_local13); _local12.setBackground(BackgroundType.STREET); _local12.clearBlocked(); }; }; }; } protected function placeWithBorder(_arg1:Point, _arg2:Point, _arg3:Array, _arg4:BackgroundType, _arg5:Boolean):void{ this.fillWith(_arg1, new Point((_arg1.x + 1), (_arg1.y + 1)), _arg3[0], _arg4, _arg5); this.fillWith(new Point((_arg1.x + 1), _arg1.y), new Point((_arg2.x - 1), (_arg1.y + 1)), _arg3[1], _arg4, _arg5); this.fillWith(new Point((_arg2.x - 1), _arg1.y), new Point(_arg2.x, (_arg1.y + 1)), _arg3[2], _arg4, _arg5); this.fillWith(new Point(_arg1.x, (_arg1.y + 1)), new Point((_arg1.x + 1), (_arg2.y - 1)), _arg3[3], _arg4, _arg5); if (_arg3[4] != Tile.NO_TILE){ this.fillWith(new Point((_arg1.x + 1), (_arg1.y + 1)), new Point((_arg2.x - 1), (_arg2.y - 1)), _arg3[4], _arg4, _arg5); }; this.fillWith(new Point((_arg2.x - 1), (_arg1.y + 1)), new Point(_arg2.x, (_arg2.y - 1)), _arg3[5], _arg4, _arg5); this.fillWith(new Point(_arg1.x, (_arg2.y - 1)), new Point((_arg1.x + 1), _arg2.y), _arg3[6], _arg4, _arg5); this.fillWith(new Point((_arg1.x + 1), (_arg2.y - 1)), new Point((_arg2.x - 1), _arg2.y), _arg3[7], _arg4, _arg5); this.fillWith(new Point((_arg2.x - 1), (_arg2.y - 1)), _arg2, _arg3[8], _arg4, _arg5); } protected function expandSize(_arg1:Point, _arg2:Point):void{ _arg1.x--; _arg1.y--; _arg2.x++; _arg2.y++; } protected function placeIsland(_arg1:Point, _arg2:Point):void{ var _local3:Section; this.placeStreetCorners(_arg1, _arg2); this.box(_arg1, _arg2, Option.roadMiniColor); Util.fillBackground(new Section(_arg1, _arg2), BackgroundType.STREET); _local3 = new Section(_arg1, _arg2); this.map.setCityLot(_local3); _local3.west = new Street(new Point(_arg1.x, (_arg1.y + 2)), 2, ((_arg2.y - _arg1.y) - 4), true, null, null); _local3.east = new Street(new Point((_arg2.x - 2), (_arg1.y + 2)), 2, ((_arg2.y - _arg1.y) - 4), true, null, null); _local3.north = new Street(new Point((_arg1.x + 2), _arg1.y), 2, ((_arg2.x - _arg1.y) - 4), false, null, null); _local3.south = new Street(new Point((_arg1.x + 2), (_arg2.y - 2)), 2, ((_arg2.x - _arg1.y) - 4), false, null, null); this.shrinkSize(_local3.offset, _local3.limit); this.shrinkSize(_local3.offset, _local3.limit); this.placeCity(_local3); _local3.west.draw(this.map); _local3.east.draw(this.map); _local3.north.draw(this.map); _local3.south.draw(this.map); } } }//package
Section 387
//Offset (Offset) package { import flash.*; public class Offset { public var x:int; public var y:int; public function Offset(_arg1:int=0, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.x = _arg1; this.y = _arg2; }; } } }//package
Section 388
//Option (Option) package { public class Option { public static var hqBuildingDistribution:Array = [98, 0, 0, 0, 0, 0, 0, 0, 0, 2]; public static var ammoBarColor:int = 0xCCCCCC; public static var abandonButton:int = (Option.textButtonCount + buildButtonCount); public static var survivorFoodBonus:int = 3; public static var wanderingZombieBase:int = 10; public static var rangeOpacity:Number = 0.3; public static var truckSpeedMin:int = 300; public static var disturbChance:int = 4; public static var buildingThreshold:int = 5; public static var roadMiniColor:int = 0; public static var frameDelay:int = 75; public static var depotTruckSpeedRange:Array = [50, 75, 150]; public static var hqStatusTextColor:int = 13399927; public static var boardBarColor:int = 8864287; public static var depotCost:Array = [0, 3, 3]; public static var fastFrames:int = 5; public static var tutorialWanderingZombieDelay:int = (Option.fps * 130); public static var moderateResource:int = 10; public static var salvageBuildingOpacity:Number = 0.3; public static var truckNoise:int = 2; public static var halfCell:int = 16; public static var hqIndustryFactor:int = truckLoad; public static var supplyTargetThickness:int = 2; public static var shootNoise:int = 10; public static var depotTruckSpeedMin:Array = [300, 225, 450]; public static var rangeColor:int = 0xAAAA; public static var menuButtonCount:int = (((Option.textButtonCount + buildButtonCount) + abandonButtonCount) + extraButtonCount); public static var startDelay:int = (Option.fps * frameDelay); public static var towerMiniColor:int = -16711936; public static var countDownBackgroundColor:int = 0x330000; public static var toolTipTitleColor:int = 0xFFFFFF; public static var foodTime:int = 300; public static var foodTruckSpeedMin:int = 750; public static var zombieThreatTextColor:int = 16724787; public static var spawnFrameCount:int = 50; public static var towerShadowOpacity:Number = 0.7; public static var blockThreshold:int = 12; public static var foodBonus:int = 24; public static var statusTextColor:int = 0xEEEEEE; public static var backgroundBarColor:int = 0x333333; public static var supplyTargetLength:int = 32; public static var sniperMaxUpgrade:Array = [5, 0, 0, 0]; public static var statusBarSize:int = 110; public static var barricadeMaxInit:Array = [0, 15, 0, 0]; public static var workshopSpeedFactor:int = 50; public static var hitsBarColor:int = 0xCC00; public static var depotSpeed:Array = [150, 150, 150]; public static var maxPathOperations:int = 200; public static var hqCost:Array = [0, 0, 0]; public static var hqLevelLimit:int = 0; public static var shootCost:int = 1; public static var zombieBuildingColor:Array = [0xD5D500, 0xD58A00, 0xD50000]; public static var noBar:int = -1; public static var waterColor:int = 102; public static var supplyArrowAngle:Number = 0.628318530717959; public static var hqBackgroundColor:int = 0; public static var sniperSpeed:Array = [150, 150, 150]; public static var barThickness:int = 4; public static var gardenTime:int = 10; public static var sniperMaxInit:Array = [15, 0, 0, 1]; public static var zombieBuildingWeights:Array = [4, 6, 20000000]; public static var toggleViewButton:int = (Option.abandonButton + 1); public static var biasSalvage:int = 20; public static var cellPixels:int = 32; public static var foodTruckSpeedRange:int = 75; public static var returnTruckSpeedMin:int = 300; public static var hqSpeed:Array = [200, 200, 200]; public static var fullBarColor:int = 3346705; public static var barLeft:int = Math.floor(((Option.cellPixels - barLength) / 2)); public static var groundSalvageDistribution:Array = [50, 50, 0, 0]; public static var minGenericSize:int = 3; public static var rotateStep:int = 5; public static var barricadeHits:Array = [10, 15, 20]; public static var salvageBuildingColor:int = 11206570; public static var shadowOpacity:Number = 0.3; public static var survivorBonus:int = 7; public static var shadowBuildColor:int = 0; public static var mainTitleTextColor:int = 0xEEEEEE; public static var foodTransportCost:int = 2; public static var barLength:int = 25; public static var shadowAllowColor:int = 0xFF00; public static var extraButtonCount:int = 2; public static var miniSupplyColor:int = 0xFFFFFF; public static var barricadeMaxUpgrade:Array = [0, 10, 0, 0]; public static var countDownTextColor:int = 0xCCCC; public static var sniperLevelLimit:int = 2; public static var fps:int = 20; public static var announceFrameCount:int = (Option.fps * 2); public static var selectedMiniColor:int = -1; public static var truckSpeedRange:int = 100; public static var zombieChance:Array = [3, 5, 9, 9, 9, 9, 12, 10, 2, 1]; public static var workshopMaxUpgrade:Array = [0, 0, 0, 0]; public static var workshopSpeed:Array = [(4 * truckLoad), (4 * truckLoad), (8 * truckLoad)]; public static var rangeOpacityIncrement:Number = 0.08; public static var explosionNoise:int = 15; public static var sniperAccuracy:Array = [30, 30, 30]; public static var dynamiteWork:int = 100; public static var workshopMaxInit:Array = [10, 10, 10, 2]; public static var waitDelay:int = (Option.fps * frameDelay); public static var minHouseSize:int = 2; public static var normalRecklessDistance:int = 3; public static var wanderingZombieIncrement:int = 2; public static var danceMoves:Array = [0, 360, 220, 80, -80, 80, -80, 80]; public static var noShootColor:int = 0xEE0000; public static var emptyBuildingMiniColor:int = 0x333333; public static var sniperBuildCost:int = 2; public static var unknownColor:int = 9922895; public static var soundCount:int = 8; public static var spawnReplayColor:int = 0xCCCCCC; public static var tileCells:int = 3; public static var supplyThickness:int = 0; public static var abandonButtonCount:int = 1; public static var buildNoise:int = 4; public static var shadowRangeOpacity:Number = 0.3; public static var barricadeCost:Array = [0, 1, 1]; public static var buildingDistribution:Array = [70, 8, 0, 4, 4, 0, 4, 0, 0, 2]; public static var zombieBuildingMiniWeights:Array = [1]; public static var dancePeriod:int = 1200; public static var barricadeLevelLimit:int = 0; public static var sniperCost:Array = [0, 1, 1]; public static var shadowRangeColor:int = 0xAAAAAA; public static var toolTipDelay:int = 5; public static var smallBlockDistribution:Array = [70, 10, 0, 0, 20, 0]; public static var colorCount:int = 3; public static var maxTruckWait:int = 50; public static var barricadeMiniColor:int = -9615104; public static var hqIndustryTime:int = 900; public static var shadowDenyColor:int = 0xFF0000; public static var depotMiniColor:int = -16776961; public static var zombieBuildingMiniColor:Array = [0x770000]; public static var menuBackgroundColor:int = 0x202020; public static var workshopLevelLimit:int = 0; public static var greenMenuColor:int = 0x4000; public static var lowResource:int = 5; public static var depotMaxUpgrade:Array = [30, 30, 10, 3]; public static var workshopMiniColor:int = -8323073; public static var supplyRange:int = 7; public static var textButtonCount:int = 4; public static var towerNoise:int = 3; public static var sniperRange:Array = [4, 6, 9]; public static var sniperIdleRange:int = 500; public static var truckLook:int = 2; public static var jumpToDepotButton:int = (Option.toggleViewButton + 1); public static var resourceCount:int = 4; public static var toolTipTextColor:int = 0xDDDDDD; public static var returnTruckSpeedRange:int = 225; public static var foodBarColor:int = 204; public static var wanderingZombieDelay:int = (Option.fps * 150); public static var sniperHeadRotate:int = 15; public static var accuracyMax:int = 100; public static var truckMiniColor:int = -16742400; public static var hqBlockDistribution:Array = [85, 5, 0, 0, 10, 0]; public static var redMenuColor:int = 0x400000; public static var largeBlockDistribution:Array = [71, 5, 4, 4, 6, 6]; public static var vulnerableBonus:int = 49; public static var salvageChance:Array = [4, 8, 16, 16, 16, 16, 4, 16, 3, 1]; public static var buildButtonCount:int = 4; public static var depotMaxInit:Array = [40, 40, 30, 4]; public static var mainBodyTextColor:int = 0xAAAAAA; public static var supplyColor:int = 0xFF; public static var zombieNoThreatTextColor:int = 3407667; public static var startingResources:int = 30; public static var zombieMiniColor:int = -32640; public static var repeatWait:int = 1; public static var zombieBuildingOpacity:Array = [0.3, 0.3, 0.3]; public static var salvageDistribution:Array = [[50, 28, 0, 16], [50, 28, 0, 16], [2, 2, 0, 2], [94, 2, 0, 2], [2, 94, 0, 2], [2, 2, 0, 94], [60, 33, 0, 1], [50, 28, 0, 16], [60, 40, 0, 10], [1, 1, 0, 1]]; public static var foodShootCost:int = 2; public static var barricadeHitCost:int = 1; public static var supplyArrowLength:int = 8; public static var supplyTargetColor:int = 238; public static var survivorDeathFrameCount:int = 50; public static var barricadeSpeed:Array = [50, 50, 50]; public static var newRangeOpacity:Number = 0.3; public static var truckRetries:int = 3; public static var selectColor:int = 0xAA00; public static var depotLevelLimit:int = 0; public static var sniperBodyRotate:int = 10; public static var newRangeColor:int = 0xAAAA; public static var miniSupplyThickness:int = 0; public static var sniperIdleMin:int = 50; public static var selectThickness:int = 5; public static var hqInfluence:int = 11; public static var workshopCost:Array = [0, 1, 0]; public static var zombieSpeedRange:int = 50; public static var truckLoad:int = 10; } }//package
Section 389
//Path (Path) package { import flash.*; public class Path { protected var steps:Array; protected var found:Boolean; protected var generating:Boolean; public function Path():void{ if (!Boot.skip_constructor){ this.generating = true; this.steps = new Array(); this.reset(); }; } public function succeed():void{ this.found = true; this.generating = false; this.steps.reverse(); } public function getStep(_arg1:int):Point{ return (this.steps[_arg1]); } public function getStepCount():int{ return (this.steps.length); } public function addStep(_arg1:Point):void{ this.steps.push(_arg1); } public function reset():void{ this.generating = true; this.found = false; this.steps = []; } public function isFound():Boolean{ return (this.found); } public function isGenerating():Boolean{ return (this.generating); } public function save(){ var _local1:Array; var _local2:int; var _local3:Array; var _local4:Point; _local1 = null; if (((!(this.generating)) && (this.found))){ _local1 = new Array(); _local2 = 0; _local3 = this.steps; while (_local2 < _local3.length) { _local4 = _local3[_local2]; _local2++; _local1.push(_local4.save()); }; }; return (_local1); } public function fail():void{ this.generating = false; this.found = false; } public static function load(_arg1):Path{ var _local2:Path; var _local3:int; var _local4:*; var _local5:int; _local2 = new (Path); _local2.generating = false; _local2.found = true; _local3 = 0; _local4 = _arg1.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local2.steps.push(Point.load(_arg1[_local5])); }; return (_local2); } public static function saveS(_arg1:Path){ return (_arg1.save()); } } }//package
Section 390
//PathFinder (PathFinder) package { import flash.*; public class PathFinder { protected var started:Boolean; protected var visit:Grid; protected var queue:PathHeap; protected var source:Point; protected var path:Path; protected var zombie:Boolean; protected var dest:Point; protected static var next:Point = new Point(0, 0); public function PathFinder(_arg1:Point=null, _arg2:Point=null, _arg3:Boolean=false, _arg4:Path=null):void{ if (!Boot.skip_constructor){ this.source = _arg1.clone(); this.dest = null; if (_arg2 != null){ this.dest = _arg2.clone(); }; this.queue = null; this.visit = null; this.zombie = _arg3; this.started = false; this.path = _arg4; if (this.path != null){ this.path.reset(); }; }; } public function step(_arg1:int):void{ var _local2:int; var _local3:int; _local2 = 0; while (_local2 < _arg1) { var _temp1 = _local2; _local2 = (_local2 + 1); _local3 = _temp1; this.stepOnce(); if (this.isDone()){ break; }; }; } public function startCalculation():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local1 = 0; _local2 = this.visit.sizeY(); while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = 0; _local5 = this.visit.sizeX(); while (_local4 < _local5) { var _temp2 = _local4; _local4 = (_local4 + 1); _local6 = _temp2; this.visit.set(_local6, _local3, -1); }; }; this.queue.push(this.source.clone(), 0); this.visit.set(this.source.x, this.source.y, 0); this.started = true; } public function isDone():Boolean{ return (((this.started) && (this.queue.isEmpty()))); } public function setupVisit():void{ if (this.visit == null){ this.queue = new PathHeap(this.dest); this.visit = new Grid(Game.map.sizeX(), Game.map.sizeY()); }; } public function reset(_arg1:Point, _arg2:Point, _arg3:Boolean, _arg4:Path):void{ this.queue.clear(); this.source = _arg1.clone(); this.dest = null; if (_arg2 != null){ this.dest = _arg2.clone(); }; this.zombie = _arg3; this.started = false; this.path = _arg4; if (this.path != null){ this.path.reset(); }; } public function isVisited(_arg1:Point):Boolean{ return (!((this.visit.get(_arg1.x, _arg1.y) == -1))); } protected function isBlocked(_arg1:Point):Boolean{ var _local2:MapCell; var _local3:Boolean; if (Lib.outsideMap(_arg1)){ return (true); }; _local2 = Game.map.getCell(_arg1.x, _arg1.y); if (this.zombie){ return (_local2.isBlocked()); }; _local3 = Lib.adjacentZombie(_arg1); return (((((((_local2.isBlocked()) || (_local2.hasTower()))) || (_local3))) || ((_local2.getBackground() == BackgroundType.BRIDGE)))); } public function getParent(_arg1:Point, _arg2:Point=null):Point{ var _local3:Point; var _local4:int; var _local5:Array; var _local6:int; var _local7:Array; var _local8:Point; var _local9:int; var _local10:Point; var _local11:int; _local3 = null; if (this.started){ _local4 = 1000000000; _local5 = []; _local6 = 0; _local7 = Lib.delta; while (_local6 < _local7.length) { _local8 = _local7[_local6]; _local6++; _local9 = this.visit.get((_arg1.x + _local8.x), (_arg1.y + _local8.y)); if (((!((_local9 == -1))) && ((_local9 <= _local4)))){ _local10 = new Point((_arg1.x + _local8.x), (_arg1.y + _local8.y)); if (_local9 == _local4){ _local5.push(_local10); } else { _local5 = [_local10]; }; _local4 = _local9; }; }; if (((!((_arg2 == null))) && ((this.visit.get(_arg2.x, _arg2.y) == _local4)))){ _local3 = _arg2; } else { if (_local5.length > 0){ _local11 = Lib.rand(_local5.length); _local3 = _local5[_local11]; }; }; }; return (_local3); } public function getPath():Path{ return (this.path); } protected function stepOnce():void{ var _local1:Boolean; var _local2:Point; var _local3:int; var _local4:int; var _local5:Array; var _local6:Point; var _local7:Boolean; if (!this.queue.isEmpty()){ _local1 = false; _local2 = this.queue.pop(); _local3 = (this.visit.get(_local2.x, _local2.y) + 1); _local4 = 0; _local5 = Lib.delta; while (_local4 < _local5.length) { _local6 = _local5[_local4]; _local4++; next.x = (_local2.x + _local6.x); next.y = (_local2.y + _local6.y); if (Lib.outsideMap(next)){ } else { if (((!(this.isVisited(next))) || ((this.visit.get(next.x, next.y) > _local3)))){ if (!this.isBlocked(next)){ _local7 = !(this.isVisited(next)); this.visit.set(next.x, next.y, _local3); if (_local7){ this.queue.push(next.clone(), _local3); } else { this.queue.update(next, _local3); }; }; }; if (((!(this.zombie)) && (((Point.isEqual(next, this.dest)) || ((((this.dest == null)) && (this.isTower(next)))))))){ this.dest = next.clone(); _local1 = true; break; }; }; }; if (_local1){ this.completePath(); Game.update.supplyLine(this.source, this.dest); } else { if (((this.queue.isEmpty()) && (!((this.path == null))))){ this.path.fail(); Game.update.supplyLine(this.source, this.dest); }; }; }; } public function isZombie():Boolean{ return (this.zombie); } public function save(){ if (!this.zombie){ throw (new Error("ERROR: Saving non-zombie path")); }; return ({source:this.source.save(), dest:Save.maybe(this.dest, Point.saveS), queue:Save.maybe(this.queue, PathHeap.saveS), visit:Save.maybe(this.visit, Save.saveGridInt), started:this.started}); } protected function completePath():void{ var _local1:Point; if (this.path != null){ _local1 = this.dest.clone(); while (!(Point.isEqual(_local1, this.source))) { this.path.addStep(_local1); _local1 = this.getParent(_local1); }; this.queue.clear(); this.path.succeed(); }; } protected function isTower(_arg1:Point):Boolean{ return (!((Game.map.getCell(_arg1.x, _arg1.y).getTower() == null))); } public static function load(_arg1):PathFinder{ var _local2:Point; var _local3:Point; var _local4:PathFinder; _local2 = Point.load(_arg1.source); _local3 = Point.load(_arg1.dest); _local4 = new PathFinder(_local2, _local3, true, null); _local4.queue = Load.maybe(_arg1.queue, PathHeap.load); _local4.visit = Load.maybe(_arg1.visit, Load.loadGridInt); _local4.zombie = true; _local4.started = _arg1.started; _local4.path = null; return (_local4); } public static function saveS(_arg1:PathFinder){ return (_arg1.save()); } } }//package
Section 391
//PathFinderPool (PathFinderPool) package { import flash.*; public class PathFinderPool { protected var activePaths:Array; protected var unstartedPaths:Array; protected var finishedPaths:List; protected var newPaths:Array; public static var HIGH:int = 0; protected static var PRIORITY_COUNT:int = 2; public static var LOW:int = 1; public function PathFinderPool():void{ if (!Boot.skip_constructor){ this.newPaths = this.newArray(); this.unstartedPaths = this.newArray(); this.activePaths = this.newArray(); this.finishedPaths = new List(); }; } public function getZombiePath(_arg1:Point, _arg2=null):PathFinder{ return (this.getGeneralPath(_arg1, new Point(0, 0), true, _arg2)); } public function step():void{ var _local1:Boolean; var _local2:int; var _local3:int; var _local4:int; _local1 = false; _local2 = 0; _local3 = PRIORITY_COUNT; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local1 = ((_local1) || (this.stepNewPaths(_local4))); _local1 = ((_local1) || (this.stepUnstartedPaths(_local4))); _local1 = ((_local1) || (this.stepActivePaths(_local4))); }; } public function isActive():Boolean{ var _local1:Boolean; var _local2:int; var _local3:int; var _local4:int; _local1 = false; _local2 = 0; _local3 = PRIORITY_COUNT; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local1 = ((_local1) || (this.isActivePriority(_local4))); }; return (_local1); } protected function stepUnstartedPaths(_arg1:int):Boolean{ var _local2:Boolean; var _local3:PathFinder; _local2 = false; if (!this.unstartedPaths[_arg1].isEmpty()){ _local3 = this.unstartedPaths[_arg1].first(); this.unstartedPaths[_arg1].pop(); _local3.startCalculation(); this.activePaths[_arg1].add(_local3); _local2 = true; }; return (_local2); } public function isActivePriority(_arg1:int):Boolean{ return (!(((((this.newPaths[_arg1].isEmpty()) && (this.unstartedPaths[_arg1].isEmpty()))) && (this.activePaths[_arg1].isEmpty())))); } public function getGeneralPath(_arg1:Point, _arg2:Point, _arg3:Boolean, _arg4):PathFinder{ var _local5:int; var _local6:PathFinder; var _local7:Path; _local5 = HIGH; if (_arg4 != null){ _local5 = _arg4; }; if (_local5 >= PRIORITY_COUNT){ _local5 = (PathFinderPool.PRIORITY_COUNT - 1); }; if (_local5 < 0){ _local5 = 0; }; _local6 = null; _local7 = null; if (!_arg3){ _local7 = new Path(); }; if (this.finishedPaths.isEmpty()){ _local6 = new PathFinder(_arg1, _arg2, _arg3, _local7); this.newPaths[_local5].add(_local6); } else { _local6 = this.finishedPaths.first(); this.finishedPaths.pop(); _local6.reset(_arg1, _arg2, _arg3, _local7); this.unstartedPaths[_local5].add(_local6); }; return (_local6); } public function newArray():Array{ var _local1:Array; var _local2:int; var _local3:int; var _local4:int; _local1 = []; _local2 = 0; _local3 = PRIORITY_COUNT; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local1.push(new List()); }; return (_local1); } protected function stepNewPaths(_arg1:int):Boolean{ var _local2:Boolean; var _local3:PathFinder; _local2 = false; if (!this.newPaths[_arg1].isEmpty()){ _local3 = this.newPaths[_arg1].first(); this.newPaths[_arg1].pop(); _local3.setupVisit(); this.unstartedPaths[_arg1].add(_local3); _local2 = true; }; return (_local2); } public function getPath(_arg1:Point, _arg2:Point, _arg3=null):Path{ var _local4:PathFinder; _local4 = this.getGeneralPath(_arg1, _arg2, false, _arg3); return (_local4.getPath()); } protected function stepActivePaths(_arg1:int):Boolean{ var _local2:Boolean; var _local3:int; var _local4:List; var _local5:*; var _local6:*; var _local7:PathFinder; var _local8:int; var _local9:PathFinder; _local2 = false; if (!this.activePaths[_arg1].isEmpty()){ _local3 = this.activePaths[_arg1].length; _local4 = new List(); _local5 = this.activePaths[_arg1].iterator(); while (_local5.hasNext()) { _local7 = _local5.next(); _local8 = Math.ceil((Option.maxPathOperations / this.activePaths[_arg1].length)); _local7.step(_local8); if (_local7.isDone()){ _local4.add(_local7); }; }; _local6 = _local4.iterator(); while (_local6.hasNext()) { _local9 = _local6.next(); this.activePaths[_arg1].remove(_local9); if (!_local9.isZombie()){ this.finishedPaths.add(_local9); }; }; _local2 = true; }; return (_local2); } } }//package
Section 392
//PathHeap (PathHeap) package { import flash.*; public class PathHeap { protected var dest:Point; protected var scores:Array; protected var heap:Array; protected var indices:Grid; public function PathHeap(_arg1:Point=null):void{ if (!Boot.skip_constructor){ this.dest = _arg1; this.heap = []; this.scores = []; this.indices = new Grid(Game.map.sizeX(), Game.map.sizeY()); }; } protected function swap(_arg1:int, _arg2:int):void{ var _local3:Point; var _local4:int; _local3 = this.heap[_arg1]; this.heap[_arg1] = this.heap[_arg2]; this.heap[_arg2] = _local3; _local4 = this.scores[_arg1]; this.scores[_arg1] = this.scores[_arg2]; this.scores[_arg2] = _local4; this.indices.set(this.heap[_arg1].x, this.heap[_arg1].y, _arg1); this.indices.set(this.heap[_arg2].x, this.heap[_arg2].y, _arg2); } public function isEmpty():Boolean{ return ((this.heap.length == 0)); } public function update(_arg1:Point, _arg2:int):void{ var _local3:int; _local3 = this.indices.get(_arg1.x, _arg1.y); if (_local3 != -1){ this.scores[_local3] = (_arg2 + this.getDistance(_arg1)); this.heapify(_local3); }; } protected function backfill(_arg1:int):void{ var _local2:int; var _local3:int; var _local4:int; _local2 = ((_arg1 * 2) + 1); _local3 = ((_arg1 * 2) + 2); if (_local2 < this.heap.length){ _local4 = _local2; if ((((_local3 < this.heap.length)) && ((this.scores[_local3] < this.scores[_local2])))){ _local4 = _local3; }; if (this.scores[_local4] < this.scores[_arg1]){ this.swap(_arg1, _local4); this.backfill(_local4); }; }; } public function getDistance(_arg1:Point):int{ var _local2:int; _local2 = 0; if (this.dest != null){ _local2 = Math.floor((Math.abs((_arg1.x - this.dest.x)) + Math.abs((_arg1.y - this.dest.y)))); }; return (_local2); } public function clear():void{ this.heap = []; this.scores = []; } protected function heapify(_arg1:int):void{ var _local2:int; if (_arg1 > 0){ _local2 = Math.floor(((_arg1 - 1) / 2)); if (this.scores[_arg1] < this.scores[_local2]){ this.swap(_local2, _arg1); this.heapify(_local2); }; }; } public function pop():Point{ var _local1:Point; _local1 = null; if (this.heap.length > 0){ _local1 = this.heap[0]; this.swap(0, (this.heap.length - 1)); this.heap.pop(); this.scores.pop(); this.indices.set(_local1.x, _local1.y, -1); if (this.heap.length > 0){ this.backfill(0); }; }; return (_local1); } public function push(_arg1:Point, _arg2:int):void{ var _local3:int; _local3 = this.heap.length; this.heap.push(_arg1); this.scores.push((_arg2 + this.getDistance(_arg1))); this.indices.set(_arg1.x, _arg1.y, _local3); this.heapify(_local3); } public function save(){ return ({dest:Save.maybe(this.dest, Point.saveS), heap:Save.saveArray(this.heap, Point.saveS), scores:Save.saveArray(this.scores, Save.saveInt), indices:Save.saveGridInt(this.indices)}); } public static function load(_arg1):PathHeap{ var _local2:PathHeap; _local2 = new PathHeap(Load.maybe(_arg1.dest, Point.load)); _local2.heap = Load.loadArray(_arg1.heap, Point.load); _local2.scores = Load.loadArray(_arg1.scores, Load.loadInt); _local2.indices = Load.loadGridInt(_arg1.indices); return (_local2); } public static function saveS(_arg1:PathHeap){ return (_arg1.save()); } } }//package
Section 393
//Pause (Pause) package { import flash.display.*; import ui.*; import flash.*; public class Pause { protected var systemPaused:Boolean; protected var clip:MovieClip; protected var paused:Boolean; protected var tutorialPaused:Boolean; public function Pause(_arg1:DisplayObjectContainer=null):void{ var _local2:LayoutGame; super(); if (!Boot.skip_constructor){ _local2 = Game.view.layout; this.paused = false; this.systemPaused = false; this.tutorialPaused = false; this.clip = Lib.attach(Label.pause); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseChildren = false; this.clip.mouseEnabled = false; this.resize(_local2); }; } public function cleanup():void{ this.clip.parent.removeChild(this.clip); this.clip = null; } public function load(_arg1):void{ this.paused = _arg1; this.clip.visible = this.paused; } public function isSystemPaused():Boolean{ return (this.systemPaused); } public function systemPause():void{ this.systemPaused = true; } public function setText(_arg1:String):void{ } public function resize(_arg1:LayoutGame):void{ Util.centerHorizontally(this.clip, _arg1.screenSize); this.clip.y = (_arg1.screenSize.y - 130); } public function isPaused():Boolean{ return (((((this.paused) || (this.systemPaused))) || (this.tutorialPaused))); } public function toggle():void{ this.clip.visible = !(this.clip.visible); this.paused = !(this.paused); if (this.paused){ Game.view.spawner.setPause(); } else { Game.view.spawner.setPlay(); }; } public function systemResume():void{ this.systemPaused = false; } public function save(){ return (this.paused); } public function tutorialPause(_arg1:Boolean):void{ } } }//package
Section 394
//PauseClip (PauseClip) package { import flash.display.*; public dynamic class PauseClip extends MovieClip { public function PauseClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 395
//pedia_ammo (pedia_ammo) package { import flash.display.*; public dynamic class pedia_ammo extends MovieClip { } }//package
Section 396
//pedia_apartment (pedia_apartment) package { import flash.display.*; public dynamic class pedia_apartment extends MovieClip { } }//package
Section 397
//pedia_barricade (pedia_barricade) package { import flash.display.*; public dynamic class pedia_barricade extends MovieClip { } }//package
Section 398
//pedia_boards (pedia_boards) package { import flash.display.*; public dynamic class pedia_boards extends MovieClip { } }//package
Section 399
//pedia_charges (pedia_charges) package { import flash.display.*; public dynamic class pedia_charges extends MovieClip { } }//package
Section 400
//pedia_church (pedia_church) package { import flash.display.*; public dynamic class pedia_church extends MovieClip { } }//package
Section 401
//pedia_depot (pedia_depot) package { import flash.display.*; public dynamic class pedia_depot extends MovieClip { } }//package
Section 402
//pedia_hardware_store (pedia_hardware_store) package { import flash.display.*; public dynamic class pedia_hardware_store extends MovieClip { } }//package
Section 403
//pedia_hospital (pedia_hospital) package { import flash.display.*; public dynamic class pedia_hospital extends MovieClip { } }//package
Section 404
//pedia_house (pedia_house) package { import flash.display.*; public dynamic class pedia_house extends MovieClip { } }//package
Section 405
//pedia_mall (pedia_mall) package { import flash.display.*; public dynamic class pedia_mall extends MovieClip { } }//package
Section 406
//pedia_office (pedia_office) package { import flash.display.*; public dynamic class pedia_office extends MovieClip { } }//package
Section 407
//pedia_police_station (pedia_police_station) package { import flash.display.*; public dynamic class pedia_police_station extends MovieClip { } }//package
Section 408
//pedia_rubble (pedia_rubble) package { import flash.display.*; public dynamic class pedia_rubble extends MovieClip { } }//package
Section 409
//pedia_sniper (pedia_sniper) package { import flash.display.*; public dynamic class pedia_sniper extends MovieClip { } }//package
Section 410
//pedia_survivors (pedia_survivors) package { import flash.display.*; public dynamic class pedia_survivors extends MovieClip { } }//package
Section 411
//pedia_workshop (pedia_workshop) package { import flash.display.*; public dynamic class pedia_workshop extends MovieClip { } }//package
Section 412
//pedia_zombies (pedia_zombies) package { import flash.display.*; public dynamic class pedia_zombies extends MovieClip { } }//package
Section 413
//PermissiveFov (PermissiveFov) package { public class PermissiveFov { protected static function addShallowBump(_arg1:Offset, _arg2:DIterator, _arg3:DList, _arg4:DList):void{ var _local5:Bump; _arg2.get().shallow.far = new Offset(_arg1.x, _arg1.y); _arg4.push_back(new Bump()); _arg4.back().location = new Offset(_arg1.x, _arg1.y); _arg4.back().parent = _arg2.get().shallowBump; _arg2.get().shallowBump = _arg4.back(); _local5 = _arg2.get().steepBump; while (_local5 != null) { if (_arg2.get().shallow.isAbove(_local5.location)){ _arg2.get().shallow.near = new Offset(_local5.location.x, _local5.location.y); }; _local5 = _local5.parent; }; } protected static function checkField(_arg1:DIterator, _arg2:DList):DIterator{ var _local3:DIterator; _local3 = _arg1; if (((((_arg1.get().shallow.doesContain(_arg1.get().steep.near)) && (_arg1.get().shallow.doesContain(_arg1.get().steep.far)))) && (((_arg1.get().shallow.doesContain(new Offset(0, 1))) || (_arg1.get().shallow.doesContain(new Offset(1, 0))))))){ _local3 = _arg2.erase(_arg1); }; return (_local3); } protected static function min(_arg1:int, _arg2:int):int{ if (_arg1 < _arg2){ return (_arg1); }; return (_arg2); } protected static function calculateFovQuadrant(_arg1:FovState):void{ var _local2:DList; var _local3:DList; var _local4:DList; var _local5:Offset; var _local6:DIterator; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; _local2 = new DList(); _local3 = new DList(); _local4 = new DList(); _local4.push_back(new Field()); _local4.back().shallow.near = new Offset(0, 1); _local4.back().shallow.far = new Offset(_arg1.extent.x, 0); _local4.back().steep.near = new Offset(1, 0); _local4.back().steep.far = new Offset(0, _arg1.extent.y); _local5 = new Offset(0, 0); if ((((_arg1.quadrant.x == 1)) && ((_arg1.quadrant.y == 1)))){ actIsBlocked(_arg1, _local5); }; _local6 = new DIterator(); _local7 = 0; _local8 = 0; _local9 = (_arg1.extent.x + _arg1.extent.y); _local7 = 1; while ((((_local7 <= _local9)) && (!(_local4.isEmpty())))) { _local6 = _local4.frontIterator(); _local10 = max(0, (_local7 - _arg1.extent.x)); _local11 = min(_local7, _arg1.extent.y); _local8 = _local10; while ((((_local8 <= _local11)) && (_local6.isValid()))) { _local5.x = (_local7 - _local8); _local5.y = _local8; _local6 = visitSquare(_arg1, _local5, _local6, _local2, _local3, _local4); _local8++; }; _local7++; }; } protected static function max(_arg1:int, _arg2:int):int{ if (_arg1 > _arg2){ return (_arg1); }; return (_arg2); } protected static function actIsBlocked(_arg1:FovState, _arg2:Offset):Boolean{ var _local3:Offset; var _local4:Boolean; _local3 = new Offset(((_arg2.x * _arg1.quadrant.x) + _arg1.source.x), ((_arg2.y * _arg1.quadrant.y) + _arg1.source.y)); _local4 = _arg1.isBlocked(_local3.x, _local3.y); if (((((((((_arg1.quadrant.x * _arg1.quadrant.y) == 1)) && ((_arg2.x == 0)))) && (!((_arg2.y == 0))))) || (((((((_arg1.quadrant.x * _arg1.quadrant.y) == -1)) && ((_arg2.y == 0)))) && (!((_arg2.x == 0))))))){ return (_local4); }; _arg1.visit(_local3.x, _local3.y); return (_local4); } protected static function visitSquare(_arg1:FovState, _arg2:Offset, _arg3:DIterator, _arg4:DList, _arg5:DList, _arg6:DList):DIterator{ var _local7:Offset; var _local8:Offset; var _local9:Boolean; var _local10:DIterator; var _local11:DIterator; _local7 = new Offset(_arg2.x, (_arg2.y + 1)); _local8 = new Offset((_arg2.x + 1), _arg2.y); while (((_arg3.isValid()) && (_arg3.get().steep.isBelowOrContains(_local8)))) { _arg3.increment(); }; if (!_arg3.isValid()){ return (_arg3); }; if (_arg3.get().shallow.isAboveOrContains(_local7)){ return (_arg3); }; _local9 = actIsBlocked(_arg1, _arg2); if (!_local9){ return (_arg3); }; if (((_arg3.get().shallow.isAbove(_local8)) && (_arg3.get().steep.isBelow(_local7)))){ _arg3 = _arg6.erase(_arg3); } else { if (_arg3.get().shallow.isAbove(_local8)){ addShallowBump(_local7, _arg3, _arg4, _arg5); _arg3 = checkField(_arg3, _arg6); } else { if (_arg3.get().steep.isBelow(_local7)){ addSteepBump(_local8, _arg3, _arg4, _arg5); _arg3 = checkField(_arg3, _arg6); } else { _local10 = new DIterator(); _local10.copyFrom(_arg3); _local11 = _arg6.insert(_arg3, _arg3.get().clone()); addSteepBump(_local8, _local11, _arg4, _arg5); checkField(_local11, _arg6); addShallowBump(_local7, _local10, _arg4, _arg5); _arg3 = checkField(_local10, _arg6); }; }; }; return (_arg3); } protected static function addSteepBump(_arg1:Offset, _arg2:DIterator, _arg3:DList, _arg4:DList):void{ var _local5:Bump; _arg2.get().steep.far = new Offset(_arg1.x, _arg1.y); _arg3.push_back(new Bump()); _arg3.back().location = new Offset(_arg1.x, _arg1.y); _arg3.back().parent = _arg2.get().steepBump; _arg2.get().steepBump = _arg3.back(); _local5 = _arg2.get().shallowBump; while (_local5 != null) { if (_arg2.get().steep.isBelow(_local5.location)){ _arg2.get().steep.near = new Offset(_local5.location.x, _local5.location.y); }; _local5 = _local5.parent; }; } public static function permissiveFov(_arg1:int, _arg2:int, _arg3:int, _arg4:Function, _arg5:Function):void{ var _local6:FovState; var _local7:Array; var _local8:Array; var _local9:int; var _local10:int; var _local11:int; var _local12:int; _local6 = new FovState(); _local6.source = new Offset(_arg1, _arg2); _local6.isBlocked = _arg4; _local6.visit = _arg5; _local7 = [new Offset(1, 1), new Offset(-1, 1), new Offset(-1, -1), new Offset(1, -1)]; _local8 = [new Offset(_arg3, _arg3), new Offset(_arg3, _arg3), new Offset(_arg3, _arg3), new Offset(_arg3, _arg3)]; _local9 = 0; _local10 = 0; _local11 = _local7.length; while (_local10 < _local11) { var _temp1 = _local10; _local10 = (_local10 + 1); _local12 = _temp1; _local6.quadrant = _local7[_local12]; _local6.extent = _local8[_local12]; calculateFovQuadrant(_local6); }; } } }//package
Section 414
//Point (Point) package { import flash.*; public class Point { public var y:int; public var x:int; public function Point(_arg1:int=0, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.x = _arg1; this.y = _arg2; }; } public function clone():Point{ return (new Point(this.x, this.y)); } public function toPixel():Point{ return (new Point(Lib.cellToPixel(this.x), Lib.cellToPixel(this.y))); } public function toString():String{ return ((((("(" + Std.string(this.x)) + ", ") + Std.string(this.y)) + ")")); } public function minus(_arg1:Point):Point{ return (new Point((this.x - _arg1.x), (this.y - _arg1.y))); } public function plusEquals(_arg1:Point):void{ this.x = (this.x + _arg1.x); this.y = (this.y + _arg1.y); } public function plus(_arg1:Point):Point{ return (new Point((this.x + _arg1.x), (this.y + _arg1.y))); } public function save(){ return ({x:this.x, y:this.y}); } public static function debug(_arg1:Point):String{ if (_arg1 == null){ return ("<NULL>"); }; return (_arg1.toString()); } public static function load(_arg1):Point{ if (_arg1 != null){ return (new Point(_arg1.x, _arg1.y)); }; return (null); } public static function saveS(_arg1:Point){ return (_arg1.save()); } public static function isEqual(_arg1:Point, _arg2:Point):Boolean{ return ((((((_arg1 == null)) && ((_arg2 == null)))) || (((((((!((_arg1 == null))) && (!((_arg2 == null))))) && ((_arg1.x == _arg2.x)))) && ((_arg1.y == _arg2.y)))))); } public static function isAdjacent(_arg1:Point, _arg2:Point):Boolean{ var _local3:Boolean; var _local4:int; var _local5:int; _local3 = false; if ((((_arg1 == null)) && ((_arg2 == null)))){ _local3 = true; } else { if (((!((_arg1 == null))) && (!((_arg2 == null))))){ _local4 = Math.floor(Math.abs((_arg1.x - _arg2.x))); _local5 = Math.floor(Math.abs((_arg1.y - _arg2.y))); _local3 = (((((_local4 <= 1)) && ((_local5 == 0)))) || ((((_local5 <= 1)) && ((_local4 == 0))))); }; }; return (_local3); } public static function isHorizontallyAdjacent(_arg1:Point, _arg2:Point):Boolean{ var _local3:Boolean; var _local4:int; var _local5:int; _local3 = false; if ((((_arg1 == null)) && ((_arg2 == null)))){ _local3 = true; } else { if (((!((_arg1 == null))) && (!((_arg2 == null))))){ _local4 = Math.floor(Math.abs((_arg1.x - _arg2.x))); _local5 = Math.floor(Math.abs((_arg1.y - _arg2.y))); _local3 = (((_local5 == 0)) && ((_local4 <= 1))); }; }; return (_local3); } public static function isVerticallyAdjacent(_arg1:Point, _arg2:Point):Boolean{ var _local3:Boolean; var _local4:int; var _local5:int; _local3 = false; if ((((_arg1 == null)) && ((_arg2 == null)))){ _local3 = true; } else { if (((!((_arg1 == null))) && (!((_arg2 == null))))){ _local4 = Math.floor(Math.abs((_arg1.x - _arg2.x))); _local5 = Math.floor(Math.abs((_arg1.y - _arg2.y))); _local3 = (((_local4 == 0)) && ((_local5 <= 1))); }; }; return (_local3); } } }//package
Section 415
//PreloaderClip (PreloaderClip) package { import flash.display.*; import flash.text.*; public dynamic class PreloaderClip extends MovieClip { public var progress:TextField; public var gfree_btn:SimpleButton; public function PreloaderClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 416
//Progress (Progress) package { import logic.*; import ui.*; import flash.*; public class Progress { protected var zombies:int; protected var bridges:List; protected var resources:Array; protected var brokenBridges:List; protected var depots:Array; public function Progress():void{ if (!Boot.skip_constructor){ this.resources = Lib.newResourceArray(); this.zombies = 0; this.bridges = new List(); this.brokenBridges = new List(); this.depots = new Array(); }; } public function removeResources(_arg1:Resource, _arg2:int):void{ var _local3:int; _local3 = Lib.resourceToIndex(_arg1); this.resources[_local3] = (this.resources[_local3] - _arg2); Game.update.progress(); } protected function checkForWin():void{ } public function addResources(_arg1:Resource, _arg2:int):void{ var _local3:int; _local3 = Lib.resourceToIndex(_arg1); this.resources[_local3] = (this.resources[_local3] + _arg2); Game.update.progress(); } protected function cleanupBridges():void{ var _local1:*; var _local2:Bridge; _local1 = this.bridges.iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); _local2.cleanup(); }; } public function addBridge(_arg1:Bridge, _arg2:Boolean):void{ if (_arg2){ this.brokenBridges.add(_arg1); } else { this.bridges.add(_arg1); }; Game.update.progress(); } public function getAllResourceCounts():Array{ return (this.resources); } public function removeDepot(_arg1:Point):void{ var _local2:Point; var _local3:int; var _local4:Array; var _local5:Point; _local2 = null; _local3 = 0; _local4 = this.depots; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; if (Point.isEqual(_arg1, _local5)){ _local2 = _local5; break; }; }; if (_local2 != null){ this.depots.remove(_local2); }; Game.update.progress(); if ((((this.depots.length == 0)) && (!(Game.settings.isEditor())))){ Game.settings.setLoseText(Text.mainLoseText); Game.endGame(GameOver.LOSE); }; } public function getZombieCount():int{ return (this.zombies); } public function getBridgeCount():int{ return (this.bridges.length); } public function addDepot(_arg1:Point):void{ this.depots.push(_arg1); Game.update.progress(); } public function getRandomBridge():Bridge{ var _local1:Bridge; var _local2:int; var _local3:*; var _local4:Bridge; _local1 = null; if (this.bridges.length > 0){ _local2 = Lib.rand(this.bridges.length); _local3 = this.bridges.iterator(); while (_local3.hasNext()) { _local4 = _local3.next(); if (_local2 == 0){ _local1 = _local4; break; }; _local2--; }; }; return (_local1); } public function destroyBridge(_arg1:Bridge):void{ this.bridges.remove(_arg1); this.brokenBridges.add(_arg1); Game.update.progress(); if (this.zombies <= 0){ Game.script.trigger(Script.ZOMBIE_CLEAR); }; if (this.bridges.length <= 0){ Game.script.trigger(Script.BRIDGE_CLEAR); }; this.checkForWin(); } public function cleanup():void{ this.cleanupBridges(); this.cleanupBrokenBridges(); } public function load(_arg1):void{ var _local2:int; var _local3:int; var _local4:int; _local2 = 0; _local3 = Option.resourceCount; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; this.resources[_local4] = _arg1.resources[_local4]; }; this.zombies = _arg1.zombies; this.brokenBridges = Load.loadList(_arg1.brokenBridges, Bridge.load); this.depots = Load.loadArray(_arg1.depots, Point.load); } public function removeZombies(_arg1:int):void{ this.zombies = (this.zombies - _arg1); Game.update.progress(); if (this.zombies <= 0){ Game.script.trigger(Script.ZOMBIE_CLEAR); }; if (this.bridges.length <= 0){ Game.script.trigger(Script.BRIDGE_CLEAR); }; this.checkForWin(); } public function getResourceCount(_arg1:Resource):int{ var _local2:int; _local2 = Lib.resourceToIndex(_arg1); return (this.resources[_local2]); } public function addZombies(_arg1:int):void{ this.zombies = (this.zombies + _arg1); Game.update.progress(); } protected function cleanupBrokenBridges():void{ var _local1:*; var _local2:Bridge; _local1 = this.brokenBridges.iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); _local2.cleanup(); }; } public function clearBridge(_arg1:Bridge):void{ if (_arg1 != null){ this.bridges.remove(_arg1); this.brokenBridges.remove(_arg1); _arg1.cleanup(); Game.update.progress(); }; } public function getDepotCount():int{ return (this.depots.length); } public function getRandomDepot():Point{ var _local1:Point; var _local2:int; _local1 = null; if (this.depots.length > 0){ _local2 = Lib.rand(this.depots.length); _local1 = this.depots[_local2]; }; return (_local1); } public function save(){ return ({resources:this.resources.copy(), zombies:this.zombies, brokenBridges:Save.saveList(this.brokenBridges, Bridge.saveS), depots:Save.saveArray(this.depots, Point.saveS)}); } } }//package
Section 417
//Range (Range) package { import flash.display.*; import ui.*; import flash.*; public class Range { protected var color:int; protected var clip:Shape; protected var opacity:Number; protected var changed:Boolean; protected var squares:Grid; public function Range(_arg1:DisplayObjectContainer=null, _arg2:int=0, _arg3:Number=NaN):void{ if (!Boot.skip_constructor){ this.clip = new Shape(); _arg1.addChild(this.clip); this.clip.visible = false; this.color = _arg2; this.opacity = _arg3; this.resize(Game.view.layout); }; } public function set(_arg1:int, _arg2:int):void{ var _local3:LayoutGame; var _local4:Point; _local3 = Game.view.layout; this.changed = true; _local4 = Game.view.window.toRelative(_arg1, _arg2); if ((((((((_local4.x >= 0)) && ((_local4.x < _local3.windowSize.x)))) && ((_local4.y >= 0)))) && ((_local4.y < _local3.windowSize.y)))){ this.squares.set(_local4.x, _local4.y, (this.squares.get(_local4.x, _local4.y) + 1)); }; } public function cleanup():void{ this.clip.parent.removeChild(this.clip); this.clip = null; this.squares = null; } public function draw():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:Number; var _local8:int; var _local9:int; var _local10:int; var _local11:int; this.clip.visible = true; if (this.changed){ this.changed = false; this.clip.graphics.clear(); _local1 = 0; _local2 = this.squares.sizeY(); while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = 0; _local5 = this.squares.sizeX(); while (_local4 < _local5) { var _temp2 = _local4; _local4 = (_local4 + 1); _local6 = _temp2; if (this.squares.get(_local6, _local3) > 0){ _local7 = (this.opacity + ((this.squares.get(_local6, _local3) - 1) * Option.rangeOpacityIncrement)); this.clip.graphics.beginFill(this.color, _local7); _local8 = Lib.cellToPixel(_local3); _local9 = Lib.cellToPixel(_local6); _local10 = (_local8 + Option.cellPixels); _local11 = (_local9 + Option.cellPixels); this.clip.graphics.moveTo(_local9, _local8); this.clip.graphics.lineTo(_local11, _local8); this.clip.graphics.lineTo(_local11, _local10); this.clip.graphics.lineTo(_local9, _local10); this.clip.graphics.lineTo(_local9, _local8); this.clip.graphics.endFill(); }; }; }; }; } public function clear():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; this.clip.graphics.clear(); this.clip.visible = false; _local1 = 0; _local2 = this.squares.sizeY(); while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = 0; _local5 = this.squares.sizeX(); while (_local4 < _local5) { var _temp2 = _local4; _local4 = (_local4 + 1); _local6 = _temp2; this.squares.set(_local6, _local3, 0); }; }; this.changed = true; } public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.mapOffset.x; this.clip.y = _arg1.mapOffset.y; this.squares = new Grid(_arg1.windowSize.x, _arg1.windowSize.y); this.changed = true; this.clear(); } } }//package
Section 418
//Reflect (Reflect) package { public class Reflect { public static function hasField(_arg1, _arg2:String):Boolean{ return (_arg1.hasOwnProperty(_arg2)); } public static function isFunction(_arg1):Boolean{ return ((typeof(_arg1) == "function")); } public static function compare(_arg1, _arg2):int{ return (((_arg1)==_arg2) ? 0 : ((_arg1)>_arg2) ? 1 : -1); } public static function compareMethods(_arg1, _arg2):Boolean{ if (_arg1 == _arg2){ return (true); }; if (((!(isFunction(_arg1))) || (!(isFunction(_arg2))))){ return (false); }; return (false); } public static function deleteField(_arg1, _arg2:String):Boolean{ if (_arg1.hasOwnProperty(_arg2) != true){ return (false); }; delete _arg1[_arg2]; return (true); } public static function isObject(_arg1):Boolean{ var t:String; var v = _arg1; if (v == null){ return (false); }; t = typeof(v); if (t == "object"){ try { if (v.__enum__ == true){ return (false); }; } catch(e) { }; return (true); }; return ((t == "string")); } public static function copy(_arg1){ var _local2:*; var _local3:int; var _local4:Array; var _local5:String; _local2 = {}; _local3 = 0; _local4 = fields(_arg1); while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; setField(_local2, _local5, field(_arg1, _local5)); }; return (_local2); } public static function makeVarArgs(_arg1:Function){ var f = _arg1; return (function (_arg1:Array){ return (f(_arg1)); }); } public static function setField(_arg1, _arg2:String, _arg3):void{ _arg1[_arg2] = _arg3; } public static function fields(_arg1):Array{ var a:Array; var i:int; var o = _arg1; if (o == null){ return (new Array()); }; a = function ():Array{ var _local1:*; var _local2:*; _local1 = new Array(); for (_local2 in o) { _local1.push(_local2); }; return (_local1); }(); i = 0; while (i < a.length) { if (!o.hasOwnProperty(a[i])){ a.splice(i, 1); } else { i = (i + 1); }; }; return (a); } public static function field(_arg1, _arg2:String){ return (((_arg1)==null) ? null : _arg1[_arg2]); } public static function callMethod(_arg1, _arg2, _arg3:Array){ return (_arg2.apply(_arg1, _arg3)); } } }//package
Section 419
//Replay (Replay) package { import flash.display.*; import flash.events.*; import logic.*; import ui.*; import ui.menu.*; import flash.*; public class Replay { protected var boxClip:Shape; protected var actions:List; protected var currentLines:List; protected var speed:int; protected var buttons:ButtonList; protected var pos; protected var settings:GameSettings; protected var frame:int; protected var menu:ReplayMenuClip; protected var menuState:int; protected var lineClip:Shape; protected static var speedAdd:Array = [0, 1, 2, 4, 8, 16]; protected static var startSpeed:int = 2; protected static var ADD_BEGIN_PLAY:int = 3; protected static var ADD_BOX:int = 0; protected static var REMOVE_LINE:int = 2; protected static var speedSub:int = 8; protected static var ADD_LINE:int = 1; public function Replay():void{ if (!Boot.skip_constructor){ this.pos = null; this.currentLines = new List(); this.frame = 0; this.lineClip = null; this.boxClip = null; this.actions = new List(); this.menuState = MainMenu.START; this.settings = null; this.speed = 1; this.menu = null; this.buttons = null; }; } protected function setSpeed(_arg1:int):void{ var _local2:Number; if ((((_arg1 >= 0)) && ((_arg1 < speedAdd.length)))){ this.speed = _arg1; _local2 = (this.speed / (speedAdd.length - 1)); this.menu.speed.bar.width = (_local2 * Option.statusBarSize); Util.success(); } else { Util.failure(); }; if (this.speed > 0){ this.buttons.setNormal(this.menu.slow); } else { this.buttons.setGhosted(this.menu.slow); }; if (this.speed < (speedAdd.length - 1)){ this.buttons.setNormal(this.menu.fast); } else { this.buttons.setGhosted(this.menu.fast); }; } protected function click(_arg1:int):void{ if (_arg1 == 0){ this.setSpeed((this.speed - 1)); } else { if (_arg1 == 1){ this.setSpeed((this.speed + 1)); } else { if (_arg1 == 2){ Util.success(); Main.endReplay(this.menuState, this.settings); }; }; }; } protected function findLine(_arg1:ReplayStep):ReplayStep{ var _local2:ReplayStep; var _local3:*; var _local4:ReplayStep; _local2 = null; _local3 = this.currentLines.iterator(); while (_local3.hasNext()) { _local4 = _local3.next(); if (((Point.isEqual(_arg1.lower, _local4.lower)) && (Point.isEqual(_arg1.upper, _local4.upper)))){ _local2 = _local4; break; }; }; return (_local2); } public function setState(_arg1:int):void{ this.menuState = _arg1; } public function removeLine(_arg1:Point, _arg2:Point):void{ this.actions.add(new ReplayStep(_arg1, _arg2, 0, REMOVE_LINE)); } public function addBeginPlay():void{ this.actions.add(new ReplayStep(null, null, 0, ADD_BEGIN_PLAY)); } protected function drawLine(_arg1:ReplayStep):void{ this.lineClip.graphics.moveTo((_arg1.lower.x + 0.5), (_arg1.lower.y + 0.5)); this.lineClip.graphics.lineTo((_arg1.upper.x + 0.5), (_arg1.upper.y + 0.5)); } public function start(_arg1:LayoutMain, _arg2:GameSettings):void{ this.settings = _arg2; this.boxClip = new Shape(); Main.getRoot().addChild(this.boxClip); this.boxClip.visible = true; this.lineClip = new Shape(); Main.getRoot().addChild(this.lineClip); this.lineClip.visible = true; this.lineClip.graphics.lineStyle(Option.supplyThickness, Option.supplyColor); this.menu = new ReplayMenuClip(); Main.getRoot().addChild(this.menu); this.menu.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.menu.slow, this.menu.fast, this.menu.back]); this.resize(_arg1); Main.getRoot().addEventListener(Event.ENTER_FRAME, this.onEnterFrame); this.pos = this.actions.iterator(); this.currentLines.clear(); this.frame = 0; this.menu.speed.barText.text = Text.replaySpeedBarLabel; this.setSpeed(startSpeed); } public function cleanup():void{ if (this.boxClip != null){ Main.getRoot().removeEventListener(Event.ENTER_FRAME, this.onEnterFrame); this.buttons.cleanup(); this.menu.parent.removeChild(this.menu); this.menu = null; this.lineClip.parent.removeChild(this.lineClip); this.lineClip = null; this.boxClip.parent.removeChild(this.boxClip); this.boxClip = null; }; } public function load(_arg1):void{ this.actions = Load.loadList(_arg1, ReplayStep.load); } public function addBox(_arg1:Point, _arg2:Point, _arg3:int):void{ this.actions.add(new ReplayStep(_arg1, _arg2, _arg3, ADD_BOX)); } protected function resizeClip(_arg1:DisplayObject, _arg2:Number, _arg3:int, _arg4:Number):void{ _arg1.scaleX = _arg4; _arg1.scaleY = _arg4; _arg1.x = (_arg3 - _arg2); } public function resize(_arg1:LayoutMain):void{ var _local2:Number; var _local3:Number; if (((!((this.lineClip == null))) && (!((this.boxClip == null))))){ _local2 = Math.min(_arg1.screenSize.x, _arg1.screenSize.y); _local3 = Math.min((_arg1.screenSize.x / this.settings.getSize().x), (_arg1.screenSize.y / this.settings.getSize().y)); this.resizeClip(this.lineClip, _local2, _arg1.screenSize.x, _local3); this.resizeClip(this.boxClip, _local2, _arg1.screenSize.x, _local3); }; } public function addLine(_arg1:Point, _arg2:Point):void{ this.actions.add(new ReplayStep(_arg1, _arg2, 0, ADD_LINE)); } protected function onEnterFrame(_arg1:Event):void{ var _local2:ReplayStep; var _local3:int; var _local4:int; var _local5:ReplayStep; var _local6:*; var _local7:ReplayStep; this.frame = (this.frame + speedAdd[this.speed]); while (((this.pos.hasNext()) && ((this.frame >= speedSub)))) { this.frame = (this.frame - speedSub); _local2 = this.pos.next(); if (_local2.type == ADD_BOX){ this.boxClip.graphics.beginFill(_local2.color); _local3 = (_local2.upper.x - _local2.lower.x); _local4 = (_local2.upper.y - _local2.lower.y); this.boxClip.graphics.drawRect(_local2.lower.x, _local2.lower.y, _local3, _local4); this.boxClip.graphics.endFill(); } else { if (_local2.type == ADD_LINE){ this.drawLine(_local2); this.currentLines.add(_local2); } else { if (_local2.type == REMOVE_LINE){ _local5 = this.findLine(_local2); if (_local5 != null){ this.currentLines.remove(_local5); this.lineClip.graphics.clear(); this.lineClip.graphics.lineStyle(Option.supplyThickness, Option.supplyColor); _local6 = this.currentLines.iterator(); while (_local6.hasNext()) { _local7 = _local6.next(); this.drawLine(_local7); }; }; }; }; }; }; } public function save(){ return (Save.saveList(this.actions, ReplayStep.saveS)); } } }//package
Section 420
//ReplayStep (ReplayStep) package { import flash.*; public class ReplayStep { public var lower:Point; public var color:int; public var upper:Point; public var type:int; public function ReplayStep(_arg1:Point=null, _arg2:Point=null, _arg3:int=0, _arg4:int=0):void{ if (!Boot.skip_constructor){ if (_arg1 != null){ this.lower = _arg1.clone(); } else { this.lower = null; }; if (_arg2 != null){ this.upper = _arg2.clone(); } else { this.upper = null; }; this.color = _arg3; this.type = _arg4; }; } public function save(){ return ({lower:Save.maybe(this.lower, Point.saveS), upper:Save.maybe(this.upper, Point.saveS), color:this.color, type:this.type}); } public static function load(_arg1):ReplayStep{ return (new ReplayStep(Load.maybe(_arg1.lower, Point.load), Load.maybe(_arg1.upper, Point.load), _arg1.color, _arg1.type)); } public static function saveS(_arg1:ReplayStep){ return (_arg1.save()); } } }//package
Section 421
//Resource (Resource) package { public class Resource extends enum { public static const __isenum:Boolean = true; public static var __constructs__:Array = ["AMMO", "BOARDS", "FOOD", "SURVIVORS"]; public static var BOARDS:Resource = new Resource("BOARDS", 1); ; public static var AMMO:Resource = new Resource("AMMO", 0); ; public static var SURVIVORS:Resource = new Resource("SURVIVORS", 3); ; public static var FOOD:Resource = new Resource("FOOD", 2); ; public function Resource(_arg1:String, _arg2:int, _arg3:Array=null):void{ this.tag = _arg1; this.index = _arg2; this.params = _arg3; } } }//package
Section 422
//ResourceCount (ResourceCount) package { import flash.*; public class ResourceCount { public var count:int; public var resource:Resource; public function ResourceCount(_arg1:Resource=null, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.resource = _arg1; this.count = _arg2; }; } } }//package
Section 423
//resourcetiles (resourcetiles) package { import flash.display.*; public dynamic class resourcetiles extends MovieClip { } }//package
Section 424
//Route (Route) package { import flash.*; public class Route { public var source:Point; public var path:Path; public var dest:Point; public function Route(_arg1:Point=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ this.source = null; this.dest = null; this.path = null; if (_arg1 != null){ this.source = _arg1.clone(); this.dest = _arg2.clone(); this.path = Game.pathPool.getPath(this.source, this.dest); }; }; } public function shouldSend():Boolean{ if (((!(this.path.isGenerating())) && (!(this.path.isFound())))){ this.path = Game.pathPool.getPath(this.source, this.dest, PathFinderPool.LOW); }; return (((!(this.path.isGenerating())) && (this.path.isFound()))); } public function save(){ return ({source:this.source.save(), dest:this.dest.save(), path:this.path.save()}); } public static function load(_arg1):Route{ var _local2:Route; _local2 = new Route(null, null); _local2.source = Point.load(_arg1.source); _local2.dest = Point.load(_arg1.dest); _local2.path = Load.maybe(_arg1.path, Path.load); if (_local2.path == null){ _local2.path = Game.pathPool.getPath(_local2.source, _local2.dest); }; return (_local2); } public static function saveS(_arg1:Route){ return (_arg1.save()); } } }//package
Section 425
//Rubble (Rubble) package { import ui.*; import mapgen.*; import flash.*; public class Rubble { protected var sprite:Sprite; protected var salvage:Salvage; protected var x:int; protected var y:int; public static var rubbleCount:int = 19; public function Rubble(_arg1:int=0, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.x = _arg1; this.y = _arg2; this.sprite = null; this.salvage = new Salvage(); }; } public function cleanup():void{ if (this.sprite != null){ this.sprite.cleanup(); }; } protected function addSprite(_arg1):void{ var _local2:int; var _local3:Direction; if (this.sprite == null){ this.sprite = new Sprite(new Point(this.x, this.y).toPixel(), 0, 0, Animation.rubble); }; _local2 = 0; if (_arg1 != null){ _local2 = _arg1; } else { _local2 = 1; if ((((this.salvage.getResourceCount(Resource.AMMO) > 0)) && ((this.salvage.getResourceCount(Resource.BOARDS) > 0)))){ _local2 = 3; } else { if (this.salvage.getResourceCount(Resource.AMMO) > 0){ _local2 = 2; }; }; }; if (_local2 > 3){ _local3 = Lib.indexToDirection(Util.rand(4)); this.sprite.setRotationOffset(Lib.directionToAngle(_local3)); }; this.sprite.setFrame(_local2); this.sprite.update(); } public function addResource(_arg1:Resource, _arg2:int, _arg3):void{ this.salvage.addResource(_arg1, _arg2); this.addSprite(_arg3); } public function getSalvage():Salvage{ return (this.salvage); } public static function save(_arg1:Rubble){ return ({x:_arg1.x, y:_arg1.y, sprite:Save.maybe(_arg1.sprite, Sprite.saveS), salvage:_arg1.salvage.save()}); } public static function load(_arg1):Rubble{ var _local2:Rubble; _local2 = new Rubble(_arg1.x, _arg1.y); _local2.salvage = Salvage.load(_arg1.salvage); _local2.sprite = Load.maybe(_arg1.sprite, Sprite.load); return (_local2); } } }//package
Section 426
//RubbleClip (RubbleClip) package { import flash.display.*; public dynamic class RubbleClip extends MovieClip { } }//package
Section 427
//Salvage (Salvage) package { import flash.*; public class Salvage { protected var resource:Array; public function Salvage():void{ var _local1:int; var _local2:int; var _local3:int; super(); if (!Boot.skip_constructor){ this.resource = []; _local1 = 0; _local2 = Option.resourceCount; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; this.resource.push(0); }; }; } public function getResource(_arg1:List):Resource{ var _local2:Resource; var _local3:Array; var _local4:int; _local2 = null; _local3 = this.pruneNeeds(_arg1); if ((((this.getTotalCount() > 0)) && ((_local3.length > 0)))){ _local4 = this.randIndex(_local3); _local2 = Lib.indexToResource(_local4); var _local5 = this.resource; var _local6 = _local4; var _local7 = (_local5[_local6] - 1); _local5[_local6] = _local7; }; return (_local2); } public function getTotalCount():int{ var _local1:int; var _local2:int; var _local3:Array; var _local4:int; _local1 = 0; _local2 = 0; _local3 = this.resource; while (_local2 < _local3.length) { _local4 = _local3[_local2]; _local2++; _local1 = (_local1 + _local4); }; return (_local1); } public function getResourceCount(_arg1:Resource):int{ var _local2:int; _local2 = Lib.resourceToIndex(_arg1); return (this.resource[_local2]); } protected function randIndex(_arg1:Array):int{ var _local2:int; var _local3:Array; var _local4:int; var _local5:int; var _local6:Resource; _local2 = 0; _local3 = []; _local4 = 0; while (_local4 < _arg1.length) { _local6 = _arg1[_local4]; _local4++; if (_local6 == Resource.SURVIVORS){ _local3.push((this.resource[Lib.resourceToIndex(_local6)] * Option.truckLoad)); } else { _local3.push(this.resource[Lib.resourceToIndex(_local6)]); }; }; _local5 = Lib.randWeightedIndex(_local3); return (Lib.resourceToIndex(_arg1[_local5])); } protected function pruneNeeds(_arg1:List):Array{ var _local2:Array; var _local3:int; var _local4:int; var _local5:int; _local2 = []; _local3 = 0; _local4 = this.resource.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; if (this.resource[_local5] > 0){ _local2.push(Lib.indexToResource(_local5)); }; }; return (_local2); } public function addResource(_arg1:Resource, _arg2:int):void{ var _local3:int; _local3 = Lib.resourceToIndex(_arg1); this.resource[_local3] = (this.resource[_local3] + _arg2); if (this.resource[_local3] < 0){ this.resource[_local3] = 0; }; if (Game.settings.isEditor()){ Game.view.window.refresh(); }; } public function save(){ return (this.resource.copy()); } public static function load(_arg1):Salvage{ var _local2:Salvage; var _local3:int; var _local4:*; var _local5:int; _local2 = new (Salvage); _local3 = 0; _local4 = _arg1.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local2.resource[_local5] = _arg1[_local5]; }; return (_local2); } } }//package
Section 428
//Save (Save) package { public class Save { public static function maybe(_arg1, _arg2:Function){ var _local3:*; _local3 = _arg1; if (_arg1 != null){ _local3 = _arg2(_arg1); }; return (_local3); } public static function saveInt(_arg1:int){ return (_arg1); } public static function saveList(_arg1:List, _arg2:Function){ var _local3:Array; var _local4:*; var _local5:*; var _local6:*; _local3 = new Array(); _local4 = _arg1.iterator(); while (_local4.hasNext()) { _local5 = _local4.next(); _local6 = _arg2(_local5); if (_local6 != null){ _local3.push(_local6); }; }; return (_local3); } public static function saveArray(_arg1:Array, _arg2:Function){ var _local3:Array; var _local4:int; var _local5:*; var _local6:*; _local3 = []; _local4 = 0; while (_local4 < _arg1.length) { _local5 = _arg1[_local4]; _local4++; _local6 = _arg2(_local5); if (_local6 != null){ _local3.push(_local6); }; }; return (_local3); } public static function saveGridInt(_arg1:Grid){ return (_arg1.save(Save.saveInt)); } } }//package
Section 429
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_disabledSkin extends MovieClip { } }//package
Section 430
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_downSkin extends MovieClip { } }//package
Section 431
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_overSkin extends MovieClip { } }//package
Section 432
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_upSkin extends MovieClip { } }//package
Section 433
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_disabledSkin extends MovieClip { } }//package
Section 434
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_downSkin extends MovieClip { } }//package
Section 435
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_overSkin extends MovieClip { } }//package
Section 436
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_upSkin extends MovieClip { } }//package
Section 437
//ScrollBar_thumbIcon (ScrollBar_thumbIcon) package { import flash.display.*; public dynamic class ScrollBar_thumbIcon extends MovieClip { } }//package
Section 438
//ScrollThumb_downSkin (ScrollThumb_downSkin) package { import flash.display.*; public dynamic class ScrollThumb_downSkin extends MovieClip { } }//package
Section 439
//ScrollThumb_overSkin (ScrollThumb_overSkin) package { import flash.display.*; public dynamic class ScrollThumb_overSkin extends MovieClip { } }//package
Section 440
//ScrollThumb_upSkin (ScrollThumb_upSkin) package { import flash.display.*; public dynamic class ScrollThumb_upSkin extends MovieClip { } }//package
Section 441
//ScrollTrack_skin (ScrollTrack_skin) package { import flash.display.*; public dynamic class ScrollTrack_skin extends MovieClip { } }//package
Section 442
//Select (Select) package { import flash.display.*; import logic.*; import ui.*; import flash.*; public class Select { protected var range:Range; protected var select:MovieClip; protected var selectedCell:Point; public function Select(_arg1:DisplayObjectContainer=null):void{ if (!Boot.skip_constructor){ this.selectedCell = null; this.range = new Range(_arg1, Option.rangeColor, Option.rangeOpacity); this.select = Workaround.attach(Label.select); _arg1.addChild(this.select); this.select.visible = false; this.select.stop(); this.select.mouseEnabled = false; this.select.mouseChildren = false; }; } protected function updateRange(_arg1:int, _arg2:int, _arg3:int):void{ this.range.clear(); if (_arg3 > 0){ Game.map.getCell(_arg1, _arg2).getTower().showVisibility(this.range); }; this.range.draw(); } public function cleanup():void{ this.select.parent.removeChild(this.select); this.select = null; this.range.cleanup(); this.range = null; } protected function updateSelect(_arg1:Point):void{ if ((((((((_arg1.x >= 0)) && ((_arg1.x < Game.view.layout.mapSize.x)))) && ((_arg1.y >= 0)))) && ((_arg1.y < Game.view.layout.mapSize.y)))){ this.select.x = (_arg1.x + Math.floor((Option.cellPixels / 2))); this.select.y = (_arg1.y + Math.floor((Option.cellPixels / 2))); this.select.visible = true; this.select.play(); } else { this.select.visible = false; this.select.stop(); }; } public function update():void{ var _local1:Point; var _local2:Tower; if (this.selectedCell != null){ _local1 = Game.view.window.toRelative(this.selectedCell.x, this.selectedCell.y); _local1.x = (Lib.cellToPixel(_local1.x) + Game.view.layout.mapOffset.x); _local1.y = (Lib.cellToPixel(_local1.y) + Game.view.layout.mapOffset.y); _local2 = Game.map.getCell(this.selectedCell.x, this.selectedCell.y).getTower(); this.updateSelect(_local1); if (_local2 != null){ this.updateRange(this.selectedCell.x, this.selectedCell.y, _local2.getRange()); }; } else { this.clear(); }; } public function isSelected():Boolean{ return (!((this.selectedCell == null))); } public function clear():void{ this.range.clear(); this.select.visible = false; this.select.stop(); } public function changeSelect(_arg1:Point):void{ var _local2:int; if (_arg1 != null){ this.selectedCell = _arg1.clone(); _local2 = Game.map.getCell(this.selectedCell.x, this.selectedCell.y).getTower().getType(); if (_local2 == Tower.SNIPER){ Game.script.trigger(Script.SELECT_SNIPER, this.selectedCell); } else { if (_local2 == Tower.BARRICADE){ Game.script.trigger(Script.SELECT_BARRICADE, this.selectedCell); } else { if (_local2 == Tower.DEPOT){ Game.script.trigger(Script.SELECT_DEPOT, this.selectedCell); } else { if (_local2 == Tower.WORKSHOP){ Game.script.trigger(Script.SELECT_WORKSHOP, this.selectedCell); }; }; }; }; } else { this.selectedCell = null; Game.script.trigger(Script.SELECT_NOTHING); }; this.update(); } public function rangeBlocked(_arg1:int, _arg2:int):Boolean{ var _local3:MapCell; _local3 = Game.map.getCell(_arg1, _arg2); return (((_local3.isBlocked()) || (((_local3.hasTower()) && ((_local3.getTower().getType() == Tower.WORKSHOP)))))); } public function getSelected():Point{ return (this.selectedCell); } public function resize(_arg1:LayoutGame):void{ this.range.resize(_arg1); this.update(); } public function setRange(_arg1:int, _arg2:int):void{ this.range.set(_arg1, _arg2); } } }//package
Section 443
//SelectClip (SelectClip) package { import flash.display.*; public dynamic class SelectClip extends MovieClip { } }//package
Section 444
//ShadowColor (ShadowColor) package { public class ShadowColor extends enum { public static const __isenum:Boolean = true; public static var NORMAL:ShadowColor = new ShadowColor("NORMAL", 0); ; public static var ALLOWED:ShadowColor = new ShadowColor("ALLOWED", 1); ; public static var BUILD_SITE:ShadowColor = new ShadowColor("BUILD_SITE", 3); ; public static var FORBIDDEN:ShadowColor = new ShadowColor("FORBIDDEN", 2); ; public static var __constructs__:Array = ["NORMAL", "ALLOWED", "FORBIDDEN", "BUILD_SITE"]; public function ShadowColor(_arg1:String, _arg2:int, _arg3:Array=null):void{ this.tag = _arg1; this.index = _arg2; this.params = _arg3; } } }//package
Section 445
//Sniper (Sniper) package { import ui.*; import flash.*; public class Sniper extends Tower implements AbstractFrame { protected var shooter:SniperSprite; protected var visibleSquares:Array; protected var range:int; protected var idleAngle:int; protected var idleCount:int; protected var isShooting:Boolean; protected var holdFire:Boolean; protected var shootType:int; protected static var BOARDS:Resource = Resource.BOARDS; protected static var FOOD:Resource = Resource.FOOD; public static var maxSurvivors:int = 11; protected static var SURVIVORS:Resource = Resource.SURVIVORS; protected static var AMMO:Resource = Resource.AMMO; public function Sniper(_arg1:int=0, _arg2:int=0):void{ var _local3:int; var _local4:int; var _local5:int; if (!Boot.skip_constructor){ this.type = Tower.SNIPER; this.shooter = null; this.holdFire = false; this.isShooting = false; this.idleCount = 0; this.idleAngle = Lib.rand(360); this.range = 0; this.visibleSquares = []; this.shootType = (SoundPlayer.SNIPER_SHOOT + Lib.rand(SoundPlayer.sniperShootCount)); super(new Point(_arg1, _arg2), Option.sniperLevelLimit, Option.sniperSpeed, Option.sniperCost); this.addReserve(Lib.ammoLoad); this.addReserve(Lib.survivorLoad); _local3 = 0; _local4 = Option.sniperBuildCost; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; this.addReserve(Lib.boardLoad); }; this.updateCanShoot(); this.updateBlocked(); }; } override public function toggleHoldFire():void{ this.holdFire = !(this.holdFire); this.updateCanShoot(); } protected function updateShooter():void{ var _local1:int; if ((((this.shooter == null)) && ((this.countResource(Resource.SURVIVORS) > 0)))){ _local1 = this.getSurvivorType(0); this.shooter = new SniperSprite(this.mapPos, _local1); } else { if (((!((this.shooter == null))) && ((this.countResource(Resource.SURVIVORS) == 0)))){ Game.view.frameAdvance.remove(this); this.shooter.cleanup(); this.shooter = null; this.isShooting = false; }; }; } protected function addVisibleSquare(_arg1:int, _arg2:int):void{ if (!isBlocked(_arg1, _arg2)){ this.visibleSquares.push(new Point(_arg1, _arg2)); }; } override public function isHoldingFire():Boolean{ return (this.holdFire); } protected function updateCanShoot():void{ this.sprite.changeCanOperate(((this.canWasteShot()) && (!(this.holdFire)))); this.sprite.update(); } override public function wasteShot():void{ if (this.canWasteShot()){ this.shootSideEffect(); }; } override public function canWasteShot():Boolean{ return ((((((this.countResource(AMMO) >= Option.shootCost)) && ((this.countResource(SURVIVORS) >= Lib.truckLoad(SURVIVORS))))) && ((this.countResource(BOARDS) >= (Lib.truckLoad(BOARDS) * Option.sniperBuildCost))))); } protected function shootSideEffect():void{ Main.sound.play(this.shootType); Game.map.noise(this.mapPos.x, this.mapPos.y, Option.shootNoise, this.zombieGuide); this.takeResource(new ResourceCount(AMMO, Option.shootCost)); this.updateCanShoot(); Game.update.resourceChange(this.mapPos); if (this.shooter != null){ this.shooter.startShooting(); Game.view.frameAdvance.add(this); this.isShooting = true; }; } override public function giveResource(_arg1:ResourceCount):void{ super.giveResource(_arg1); this.updateShooter(); this.updateCanShoot(); } public function fixedStep():void{ } protected function getDistance(_arg1:Point):int{ return (Math.floor((Math.abs((this.mapPos.x - _arg1.x)) + Math.abs((this.mapPos.y - _arg1.y))))); } override public function getAccuracy(_arg1:Zombie=null):int{ var _local2:int; var _local3:int; var _local4:int; _local2 = Option.sniperAccuracy[this.level]; _local3 = this.countResource(SURVIVORS); _local4 = this.countResource(FOOD); if (_local3 == 0){ _local2 = 0; } else { _local2 = (_local2 + ((_local3 - 1) * Option.survivorBonus)); if (_local4 >= Option.foodShootCost){ _local2 = (_local2 + Option.foodBonus); _local2 = (_local2 + ((_local3 - 1) * Option.survivorFoodBonus)); }; }; if (((!((_arg1 == null))) && (_arg1.isVulnerable()))){ _local2 = (_local2 + Option.vulnerableBonus); }; if (_local2 > 100){ _local2 = 100; }; return (_local2); } override public function normalizeLevel():void{ super.normalizeLevel(); this.range = Option.sniperRange[this.level]; Game.update.changeRange(this.mapPos); this.updateVisibility(); } protected function attemptShot(_arg1:Point, _arg2:Zombie):void{ var _local3:int; var _local4:int; if (((this.canWasteShot()) && (!(this.holdFire)))){ _local3 = this.getAccuracy(_arg2); if (this.countResource(FOOD) >= Option.foodShootCost){ this.takeResource(new ResourceCount(FOOD, Option.foodShootCost)); }; this.shootSideEffect(); _local4 = Lib.rand(Option.accuracyMax); if (_local4 < _local3){ Game.map.getCell(_arg1.x, _arg1.y).attackZombie(this.mapPos); }; }; } override public function getRange():int{ return (this.range); } override public function saveTower(){ return ({parent:super.saveTowerGeneric(), shooter:Save.maybe(this.shooter, SniperSprite.saveS), holdFire:this.holdFire, isShooting:this.isShooting, idleCount:this.idleCount, idleAngle:this.idleAngle, shootType:this.shootType}); } override public function cleanup():void{ if (this.shooter != null){ Game.view.frameAdvance.remove(this); this.shooter.cleanup(); }; super.cleanup(); } protected function sortByDistance(_arg1:Point, _arg2:Point):int{ return ((this.getDistance(_arg1) - this.getDistance(_arg2))); } protected function findTarget():Point{ var _local1:Point; var _local2:int; var _local3:Array; var _local4:Point; _local1 = null; _local2 = 0; _local3 = this.visibleSquares; while (_local2 < _local3.length) { _local4 = _local3[_local2]; _local2++; if (Game.map.getCell(_local4.x, _local4.y).hasZombies()){ _local1 = _local4; break; }; }; return (_local1); } override public function takeResource(_arg1:ResourceCount):void{ super.takeResource(_arg1); this.updateShooter(); this.updateCanShoot(); } override public function getType():int{ return (Tower.SNIPER); } override public function updateVisibility():void{ this.visibleSquares = []; if (this.range > 0){ PermissiveFov.permissiveFov(this.mapPos.x, this.mapPos.y, this.range, Sniper.isBlocked, this.addVisibleSquare); this.visibleSquares.sort(this.sortByDistance); }; Game.view.window.updateRanges(); } override public function step(_arg1:int):void{ var _local2:int; var _local3:Point; var _local4:Zombie; var _local5:Point; var _local6:Point; var _local7:int; var _local8:int; var _local9:int; if (this.isShooting){ _local2 = this.shooter.shootStep(_arg1); if (_local2 < _arg1){ this.isShooting = false; this.shooter.stopShooting(); Game.view.frameAdvance.remove(this); }; } else { if (((!(this.isShooting)) && (!((this.shooter == null))))){ _local3 = this.findTarget(); if (_local3 != null){ _local4 = Game.map.getCell(_local3.x, _local3.y).getZombie(); _local5 = this.mapPos.toPixel(); _local6 = _local4.getPixel(); _local7 = (Lib.getAngle(_local5, _local6) + 90); _local8 = this.shooter.rotateStep(_arg1, _local7); if (_local8 == 0){ this.attemptShot(_local3, _local4); }; } else { if (this.idleCount == 0){ _local9 = this.shooter.rotateStep(_arg1, this.idleAngle); if (_local9 == 0){ this.idleCount = (Lib.rand(Option.sniperIdleRange) + Option.sniperIdleMin); }; } else { this.sendToDepot(true); this.idleCount--; if (this.idleCount == 0){ this.idleAngle = Lib.rand(360); }; }; }; }; }; if (this.canWasteShot()){ Game.map.noise(this.mapPos.x, this.mapPos.y, Option.towerNoise, this.zombieGuide); }; } override public function updateBlocked():void{ var _local1:int; var _local2:int; var _local3:Point; var _local4:int; var _local5:Array; var _local6:Point; var _local7:MapCell; _local1 = 0; _local2 = 1; _local3 = new Point(0, 0); _local4 = 0; _local5 = Lib.dirDeltas; while (_local4 < _local5.length) { _local6 = _local5[_local4]; _local4++; _local3.x = (this.mapPos.x + _local6.x); _local3.y = (this.mapPos.y + _local6.y); _local7 = Game.map.getCell(_local3.x, _local3.y); if (((_local7.isBlocked()) || (_local7.hasTower()))){ _local1 = (_local1 + _local2); }; _local2 = (_local2 * 2); }; this.sprite.changeUpgrade(_local1); } override public function load(_arg1):void{ super.load(_arg1.parent); this.shooter = Load.maybe(_arg1.shooter, SniperSprite.load); this.holdFire = _arg1.holdFire; this.isShooting = _arg1.isShooting; this.idleCount = _arg1.idleCount; this.idleAngle = _arg1.idleAngle; this.shootType = _arg1.shootType; if (this.isShooting){ Game.view.frameAdvance.add(this); }; Game.sprites.addSniper(this); } override public function showVisibility(_arg1:Range):void{ var _local2:int; var _local3:Array; var _local4:Point; _local2 = 0; _local3 = this.visibleSquares; while (_local2 < _local3.length) { _local4 = _local3[_local2]; _local2++; _arg1.set(_local4.x, _local4.y); }; } public static function isBlocked(_arg1:int, _arg2:int):Boolean{ var _local3:Boolean; var _local4:MapCell; _local3 = true; if (!Lib.outsideMap(new Point(_arg1, _arg2))){ _local4 = Game.map.getCell(_arg1, _arg2); _local3 = ((((_local4.isBlocked()) && (!((_local4.getBackground() == BackgroundType.WATER))))) && (!((_local4.getBackground() == BackgroundType.BRIDGE)))); }; return (_local3); } } }//package
Section 446
//SniperScreen (SniperScreen) package { import flash.display.*; public dynamic class SniperScreen extends MovieClip { } }//package
Section 447
//SniperShoot1Sound (SniperShoot1Sound) package { import flash.net.*; import flash.media.*; import flash.*; public class SniperShoot1Sound extends Sound { public function SniperShoot1Sound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 448
//SniperShoot2Sound (SniperShoot2Sound) package { import flash.net.*; import flash.media.*; import flash.*; public class SniperShoot2Sound extends Sound { public function SniperShoot2Sound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 449
//SniperShoot3Sound (SniperShoot3Sound) package { import flash.net.*; import flash.media.*; import flash.*; public class SniperShoot3Sound extends Sound { public function SniperShoot3Sound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 450
//SoundPlayer (SoundPlayer) package { import flash.display.*; import flash.media.*; import flash.*; public class SoundPlayer { protected var sounds:Array; protected var transform:SoundTransform; public static var soundCount:int = 25; public static var ZOMBIE_CROWD_MOAN:int = 19; public static var TOWER_DESTROY:int = 9; public static var TOWER_SUPPLY:int = 10; public static var TOWER_ABANDON:int = 7; protected static var zombieMoanCount:int = 4; public static var sniperShootCount:int = 3; public static var ZOMBIE_MOAN:int = 20; protected static var zombieBashCount:int = 6; public static var BUTTON_SUCCESS:int = 2; public static var ZOMBIE_BASH:int = 12; public static var TIMER_PIP:int = 6; public static var TOWER_UPGRADE:int = 11; public static var BUTTON_FAILED:int = 1; public static var SNIPER_SHOOT:int = 3; public static var TOWER_BUILD:int = 8; public static var ZOMBIE_DEATH:int = 18; public static var BRIDGE_EXPLOSION:int = 0; public function SoundPlayer(_arg1:DisplayObjectContainer=null):void{ if (!Boot.skip_constructor){ this.sounds = []; this.sounds.push(new BridgeExplosionSound()); this.sounds.push(new ButtonFailedSound()); this.sounds.push(new ButtonSuccessSound()); this.sounds.push(new SniperShoot1Sound()); this.sounds.push(new SniperShoot2Sound()); this.sounds.push(new SniperShoot3Sound()); this.sounds.push(new TimerPipSound()); this.sounds.push(new TowerAbandonSound()); this.sounds.push(new TowerBuildSound()); this.sounds.push(new TowerDestroySound()); this.sounds.push(new TowerSupplySound()); this.sounds.push(new TowerUpgradeSound()); this.sounds.push(new ZombieBash1Sound()); this.sounds.push(new ZombieBash2Sound()); this.sounds.push(new ZombieBash3Sound()); this.sounds.push(new ZombieBash4Sound()); this.sounds.push(new ZombieBash5Sound()); this.sounds.push(new ZombieBash6Sound()); this.sounds.push(new ZombieDeathSound()); this.sounds.push(new ZombieMoanCrowdSound()); this.sounds.push(new ZombieMoan1Sound()); this.sounds.push(new ZombieMoan2Sound()); this.sounds.push(new ZombieMoan3Sound()); this.sounds.push(new ZombieMoan4Sound()); this.transform = new SoundTransform(); }; } public function cleanup():void{ this.sounds = null; } public function play(_arg1:int):void{ var which = _arg1; try { if ((((which >= 0)) && ((which < soundCount)))){ if (which == ZOMBIE_BASH){ which = (which + Lib.rand(zombieBashCount)); } else { if (which == ZOMBIE_MOAN){ which = (which + Lib.rand(zombieMoanCount)); }; }; this.transform.volume = Main.config.getProportion(Config.SOUND); this.sounds[which].play(0, 0, this.transform); }; } catch(e) { }; } public function setVolume(_arg1:Number):void{ } } }//package
Section 451
//SpriteDisplay (SpriteDisplay) package { import flash.display.*; import ui.*; import flash.*; public class SpriteDisplay { protected var snipers:List; protected var layerClips:Array; protected var maxFreeClips:Array; protected var freeSpriteClips:Array; protected var showingRange:Boolean; protected var shadowRange:Range; public static var SNIPER_LAYER:int = 6; public static var FLOOR_LAYER:int = 2; public static var EXPLOSION_LAYER:int = 9; public static var SURVIVOR_LAYER:int = 3; public static var BRIDGE_LAYER:int = 1; public static var SMALL_EXPLOSION_LAYER:int = 0; public static var OVERLAY_LAYER:int = 7; public static var BODY_LAYER:int = 5; public static var CREATURE_LAYER:int = 8; public static var LAYER_COUNT:int = 10; public static var TOWER_LAYER:int = 4; public function SpriteDisplay(_arg1:DisplayObjectContainer=null):void{ var _local2:LayoutGame; var _local3:int; var _local4:int; var _local5:int; super(); if (!Boot.skip_constructor){ this.layerClips = []; this.maxFreeClips = []; this.freeSpriteClips = []; _local2 = Game.view.layout; _local3 = 0; _local4 = LAYER_COUNT; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; this.layerClips.push(new Sprite()); _arg1.addChild(this.layerClips[_local5]); this.layerClips[_local5].x = _local2.mapOffset.x; this.layerClips[_local5].y = _local2.mapOffset.y; this.layerClips[_local5].visible = true; this.maxFreeClips.push(0); this.freeSpriteClips.push(new List()); }; this.shadowRange = new Range(_arg1, Option.shadowRangeColor, Option.shadowRangeOpacity); this.snipers = new List(); this.showingRange = false; }; } protected function normalizeLayer(_arg1:int):int{ var _local2:int; _local2 = _arg1; if (_local2 < 0){ _local2 = 0; }; if (_local2 >= LAYER_COUNT){ _local2 = (SpriteDisplay.LAYER_COUNT - 1); }; return (_local2); } public function clearAllVisibility():void{ this.showingRange = false; this.shadowRange.clear(); } public function recalculateFov():void{ var _local1:*; var _local2:Tower; _local1 = this.snipers.iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); _local2.updateVisibility(); }; if (Game.view.window.isShowingRanges()){ this.showAllVisibility(); Game.select.update(); }; } public function showAllVisibility():void{ var _local1:*; var _local2:Tower; this.showingRange = true; this.shadowRange.clear(); _local1 = this.snipers.iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); _local2.showVisibility(this.shadowRange); }; this.shadowRange.draw(); } public function removeSniper(_arg1:Tower):void{ this.snipers.remove(_arg1); } public function getLayer(_arg1:int):DisplayObjectContainer{ return (this.layerClips[_arg1]); } public function releaseSpriteClip(_arg1:CenteredImage, _arg2:int):void{ _arg2 = this.normalizeLayer(_arg2); _arg1.cleanup(); } public function cleanup():void{ var _local1:int; var _local2:int; var _local3:int; this.shadowRange.cleanup(); _local1 = 0; _local2 = LAYER_COUNT; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; while (!(this.freeSpriteClips[_local3].isEmpty())) { this.freeSpriteClips[_local3].first().cleanup(); this.freeSpriteClips[_local3].pop(); }; this.layerClips[_local3].parent.removeChild(this.layerClips[_local3]); }; this.layerClips = null; } public function getSpriteClip(_arg1:int, _arg2:String):CenteredImage{ var _local3:CenteredImage; _arg1 = this.normalizeLayer(_arg1); _local3 = new CenteredImage(this.layerClips[_arg1], _arg2); return (_local3); } public function addSniper(_arg1:Tower):void{ this.snipers.add(_arg1); } public function resize(_arg1:LayoutGame):void{ this.shadowRange.resize(_arg1); } } }//package
Section 452
//Std (Std) package { import flash.*; public class Std { public static function _int(_arg1:Number):int{ return (int(_arg1)); } public static function string(_arg1):String{ return (Boot.__string_rec(_arg1, "")); } public static function random(_arg1:int):int{ return (Math.floor((Math.random() * _arg1))); } public static function _parseFloat(_arg1:String):Number{ return (parseFloat(_arg1)); } public static function _is(_arg1, _arg2):Boolean{ return (Boot.__instanceof(_arg1, _arg2)); } public static function _parseInt(_arg1:String){ var _local2:*; _local2 = parseInt(_arg1); if (isNaN(_local2)){ return (null); }; return (_local2); } } }//package
Section 453
//Storage (Storage) package { import flash.utils.*; import mapgen.*; import flash.*; public class Storage { protected var stock:Array; protected var incomingList:Array; protected var reserveList:Array; public function Storage():void{ if (!Boot.skip_constructor){ this.stock = Lib.newResourceArray(); this.incomingList = Lib.newResourceArray(); this.reserveList = Lib.newResourceArray(); }; } public function saveEditResources(_arg1:ByteArray):void{ EditLoader.saveResources(this.stock, _arg1); EditLoader.saveResources(this.reserveList, _arg1); } public function incoming(_arg1:Resource):int{ return (countList(_arg1, this.incomingList)); } public function take(_arg1:ResourceCount):void{ removeList(_arg1, this.stock); } public function removeIncoming(_arg1:ResourceCount):void{ removeList(_arg1, this.incomingList); } public function load(_arg1):void{ var _local2:int; var _local3:int; var _local4:int; _local2 = 0; _local3 = Option.resourceCount; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; this.stock[_local4] = _arg1.stock[_local4]; this.incomingList[_local4] = _arg1.incomingList[_local4]; this.reserveList[_local4] = _arg1.reserveList[_local4]; }; } public function addIncoming(_arg1:ResourceCount):void{ addList(_arg1, this.incomingList); } public function count(_arg1:Resource):int{ return (countList(_arg1, this.stock)); } public function give(_arg1:ResourceCount):void{ addList(_arg1, this.stock); } public function removeReserve(_arg1:ResourceCount):void{ removeList(_arg1, this.reserveList); } public function addReserve(_arg1:ResourceCount):void{ addList(_arg1, this.reserveList); } public function reserve(_arg1:Resource):int{ return (countList(_arg1, this.reserveList)); } public function save(){ return ({stock:this.stock.copy(), incomingList:this.incomingList.copy(), reserveList:this.reserveList.copy()}); } protected static function removeList(_arg1:ResourceCount, _arg2:Array):void{ var _local3:int; _local3 = Lib.resourceToIndex(_arg1.resource); _arg2[_local3] = (_arg2[_local3] - _arg1.count); } protected static function countList(_arg1:Resource, _arg2:Array):int{ var _local3:int; _local3 = Lib.resourceToIndex(_arg1); return (_arg2[_local3]); } protected static function addList(_arg1:ResourceCount, _arg2:Array):void{ var _local3:int; _local3 = Lib.resourceToIndex(_arg1.resource); _arg2[_local3] = (_arg2[_local3] + _arg1.count); } } }//package
Section 454
//StringBuf (StringBuf) package { import flash.*; public class StringBuf { protected var b:String; public function StringBuf():void{ if (!Boot.skip_constructor){ this.b = ""; }; } public function add(_arg1=null):void{ this.b = (this.b + _arg1); } public function toString():String{ return (this.b); } public function addChar(_arg1:int):void{ this.b = (this.b + String.fromCharCode(_arg1)); } public function addSub(_arg1:String, _arg2:int, _arg3=null):void{ if (_arg3 == null){ this.b = (this.b + _arg1.substr(_arg2)); } else { this.b = (this.b + _arg1.substr(_arg2, _arg3)); }; } } }//package
Section 455
//StringTools (StringTools) package { public class StringTools { public static function rpad(_arg1:String, _arg2:String, _arg3:int):String{ var _local4:int; var _local5:int; _local4 = _arg1.length; _local5 = _arg2.length; while (_local4 < _arg3) { if ((_arg3 - _local4) < _local5){ _arg1 = (_arg1 + _arg2.substr(0, (_arg3 - _local4))); _local4 = _arg3; } else { _arg1 = (_arg1 + _arg2); _local4 = (_local4 + _local5); }; }; return (_arg1); } public static function htmlUnescape(_arg1:String):String{ return (_arg1.split("&gt;").join(">").split("&lt;").join("<").split("&amp;").join("&")); } public static function lpad(_arg1:String, _arg2:String, _arg3:int):String{ var _local4:String; var _local5:int; var _local6:int; _local4 = ""; _local5 = _arg1.length; if (_local5 >= _arg3){ return (_arg1); }; _local6 = _arg2.length; while (_local5 < _arg3) { if ((_arg3 - _local5) < _local6){ _local4 = (_local4 + _arg2.substr(0, (_arg3 - _local5))); _local5 = _arg3; } else { _local4 = (_local4 + _arg2); _local5 = (_local5 + _local6); }; }; return ((_local4 + _arg1)); } public static function trim(_arg1:String):String{ return (ltrim(rtrim(_arg1))); } public static function hex(_arg1:int, _arg2=null):String{ var _local3:Boolean; var _local4:String; _local3 = false; if (_arg1 < 0){ _local3 = true; _arg1 = -(_arg1); }; _local4 = _arg1.toString(16); _local4 = _local4.toUpperCase(); if (_arg2 != null){ while (_local4.length < _arg2) { _local4 = ("0" + _local4); }; }; if (_local3){ _local4 = ("-" + _local4); }; return (_local4); } public static function urlEncode(_arg1:String):String{ return (encodeURIComponent(_arg1)); } public static function ltrim(_arg1:String):String{ var _local2:int; var _local3:int; _local2 = _arg1.length; _local3 = 0; while ((((_local3 < _local2)) && (isSpace(_arg1, _local3)))) { _local3++; }; if (_local3 > 0){ return (_arg1.substr(_local3, (_local2 - _local3))); }; return (_arg1); } public static function htmlEscape(_arg1:String):String{ return (_arg1.split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;")); } public static function rtrim(_arg1:String):String{ var _local2:int; var _local3:int; _local2 = _arg1.length; _local3 = 0; while ((((_local3 < _local2)) && (isSpace(_arg1, ((_local2 - _local3) - 1))))) { _local3++; }; if (_local3 > 0){ return (_arg1.substr(0, (_local2 - _local3))); }; return (_arg1); } public static function startsWith(_arg1:String, _arg2:String):Boolean{ return ((((_arg1.length >= _arg2.length)) && ((_arg1.substr(0, _arg2.length) == _arg2)))); } public static function replace(_arg1:String, _arg2:String, _arg3:String):String{ return (_arg1.split(_arg2).join(_arg3)); } public static function isSpace(_arg1:String, _arg2:int):Boolean{ var _local3:*; _local3 = _arg1["charCodeAt"](_arg2); return ((((((_local3 >= 9)) && ((_local3 <= 13)))) || ((_local3 == 32)))); } public static function urlDecode(_arg1:String):String{ return (decodeURIComponent(_arg1.split("+").join(" "))); } public static function endsWith(_arg1:String, _arg2:String):Boolean{ var _local3:int; var _local4:int; _local3 = _arg2.length; _local4 = _arg1.length; return ((((_local4 >= _local3)) && ((_arg1.substr((_local4 - _local3), _local3) == _arg2)))); } } }//package
Section 456
//Survivor_0_1 (Survivor_0_1) package { import flash.display.*; public dynamic class Survivor_0_1 extends MovieClip { } }//package
Section 457
//Survivor_0_10 (Survivor_0_10) package { import flash.display.*; public dynamic class Survivor_0_10 extends MovieClip { } }//package
Section 458
//Survivor_0_11 (Survivor_0_11) package { import flash.display.*; public dynamic class Survivor_0_11 extends MovieClip { } }//package
Section 459
//Survivor_0_12 (Survivor_0_12) package { import flash.display.*; public dynamic class Survivor_0_12 extends MovieClip { } }//package
Section 460
//Survivor_0_13 (Survivor_0_13) package { import flash.display.*; public dynamic class Survivor_0_13 extends MovieClip { } }//package
Section 461
//Survivor_0_14 (Survivor_0_14) package { import flash.display.*; public dynamic class Survivor_0_14 extends MovieClip { } }//package
Section 462
//Survivor_0_15 (Survivor_0_15) package { import flash.display.*; public dynamic class Survivor_0_15 extends MovieClip { } }//package
Section 463
//Survivor_0_16 (Survivor_0_16) package { import flash.display.*; public dynamic class Survivor_0_16 extends MovieClip { } }//package
Section 464
//Survivor_0_17 (Survivor_0_17) package { import flash.display.*; public dynamic class Survivor_0_17 extends MovieClip { } }//package
Section 465
//Survivor_0_18 (Survivor_0_18) package { import flash.display.*; public dynamic class Survivor_0_18 extends MovieClip { } }//package
Section 466
//Survivor_0_19 (Survivor_0_19) package { import flash.display.*; public dynamic class Survivor_0_19 extends MovieClip { } }//package
Section 467
//Survivor_0_2 (Survivor_0_2) package { import flash.display.*; public dynamic class Survivor_0_2 extends MovieClip { } }//package
Section 468
//Survivor_0_20 (Survivor_0_20) package { import flash.display.*; public dynamic class Survivor_0_20 extends MovieClip { } }//package
Section 469
//Survivor_0_3 (Survivor_0_3) package { import flash.display.*; public dynamic class Survivor_0_3 extends MovieClip { } }//package
Section 470
//Survivor_0_4 (Survivor_0_4) package { import flash.display.*; public dynamic class Survivor_0_4 extends MovieClip { } }//package
Section 471
//Survivor_0_5 (Survivor_0_5) package { import flash.display.*; public dynamic class Survivor_0_5 extends MovieClip { } }//package
Section 472
//Survivor_0_6 (Survivor_0_6) package { import flash.display.*; public dynamic class Survivor_0_6 extends MovieClip { } }//package
Section 473
//Survivor_0_7 (Survivor_0_7) package { import flash.display.*; public dynamic class Survivor_0_7 extends MovieClip { } }//package
Section 474
//Survivor_0_8 (Survivor_0_8) package { import flash.display.*; public dynamic class Survivor_0_8 extends MovieClip { } }//package
Section 475
//Survivor_0_9 (Survivor_0_9) package { import flash.display.*; public dynamic class Survivor_0_9 extends MovieClip { } }//package
Section 476
//Survivor_1_1 (Survivor_1_1) package { import flash.display.*; public dynamic class Survivor_1_1 extends MovieClip { } }//package
Section 477
//Survivor_1_10 (Survivor_1_10) package { import flash.display.*; public dynamic class Survivor_1_10 extends MovieClip { } }//package
Section 478
//Survivor_1_11 (Survivor_1_11) package { import flash.display.*; public dynamic class Survivor_1_11 extends MovieClip { } }//package
Section 479
//Survivor_1_12 (Survivor_1_12) package { import flash.display.*; public dynamic class Survivor_1_12 extends MovieClip { } }//package
Section 480
//Survivor_1_13 (Survivor_1_13) package { import flash.display.*; public dynamic class Survivor_1_13 extends MovieClip { } }//package
Section 481
//Survivor_1_14 (Survivor_1_14) package { import flash.display.*; public dynamic class Survivor_1_14 extends MovieClip { } }//package
Section 482
//Survivor_1_15 (Survivor_1_15) package { import flash.display.*; public dynamic class Survivor_1_15 extends MovieClip { } }//package
Section 483
//Survivor_1_16 (Survivor_1_16) package { import flash.display.*; public dynamic class Survivor_1_16 extends MovieClip { } }//package
Section 484
//Survivor_1_17 (Survivor_1_17) package { import flash.display.*; public dynamic class Survivor_1_17 extends MovieClip { } }//package
Section 485
//Survivor_1_18 (Survivor_1_18) package { import flash.display.*; public dynamic class Survivor_1_18 extends MovieClip { } }//package
Section 486
//Survivor_1_19 (Survivor_1_19) package { import flash.display.*; public dynamic class Survivor_1_19 extends MovieClip { } }//package
Section 487
//Survivor_1_2 (Survivor_1_2) package { import flash.display.*; public dynamic class Survivor_1_2 extends MovieClip { } }//package
Section 488
//Survivor_1_20 (Survivor_1_20) package { import flash.display.*; public dynamic class Survivor_1_20 extends MovieClip { } }//package
Section 489
//Survivor_1_3 (Survivor_1_3) package { import flash.display.*; public dynamic class Survivor_1_3 extends MovieClip { } }//package
Section 490
//Survivor_1_4 (Survivor_1_4) package { import flash.display.*; public dynamic class Survivor_1_4 extends MovieClip { } }//package
Section 491
//Survivor_1_5 (Survivor_1_5) package { import flash.display.*; public dynamic class Survivor_1_5 extends MovieClip { } }//package
Section 492
//Survivor_1_6 (Survivor_1_6) package { import flash.display.*; public dynamic class Survivor_1_6 extends MovieClip { } }//package
Section 493
//Survivor_1_7 (Survivor_1_7) package { import flash.display.*; public dynamic class Survivor_1_7 extends MovieClip { } }//package
Section 494
//Survivor_1_8 (Survivor_1_8) package { import flash.display.*; public dynamic class Survivor_1_8 extends MovieClip { } }//package
Section 495
//Survivor_1_9 (Survivor_1_9) package { import flash.display.*; public dynamic class Survivor_1_9 extends MovieClip { } }//package
Section 496
//Survivor_2_1 (Survivor_2_1) package { import flash.display.*; public dynamic class Survivor_2_1 extends MovieClip { } }//package
Section 497
//Survivor_2_10 (Survivor_2_10) package { import flash.display.*; public dynamic class Survivor_2_10 extends MovieClip { } }//package
Section 498
//Survivor_2_11 (Survivor_2_11) package { import flash.display.*; public dynamic class Survivor_2_11 extends MovieClip { } }//package
Section 499
//Survivor_2_12 (Survivor_2_12) package { import flash.display.*; public dynamic class Survivor_2_12 extends MovieClip { } }//package
Section 500
//Survivor_2_13 (Survivor_2_13) package { import flash.display.*; public dynamic class Survivor_2_13 extends MovieClip { } }//package
Section 501
//Survivor_2_14 (Survivor_2_14) package { import flash.display.*; public dynamic class Survivor_2_14 extends MovieClip { } }//package
Section 502
//Survivor_2_15 (Survivor_2_15) package { import flash.display.*; public dynamic class Survivor_2_15 extends MovieClip { } }//package
Section 503
//Survivor_2_16 (Survivor_2_16) package { import flash.display.*; public dynamic class Survivor_2_16 extends MovieClip { } }//package
Section 504
//Survivor_2_17 (Survivor_2_17) package { import flash.display.*; public dynamic class Survivor_2_17 extends MovieClip { } }//package
Section 505
//Survivor_2_18 (Survivor_2_18) package { import flash.display.*; public dynamic class Survivor_2_18 extends MovieClip { } }//package
Section 506
//Survivor_2_19 (Survivor_2_19) package { import flash.display.*; public dynamic class Survivor_2_19 extends MovieClip { } }//package
Section 507
//Survivor_2_2 (Survivor_2_2) package { import flash.display.*; public dynamic class Survivor_2_2 extends MovieClip { } }//package
Section 508
//Survivor_2_20 (Survivor_2_20) package { import flash.display.*; public dynamic class Survivor_2_20 extends MovieClip { } }//package
Section 509
//Survivor_2_3 (Survivor_2_3) package { import flash.display.*; public dynamic class Survivor_2_3 extends MovieClip { } }//package
Section 510
//Survivor_2_4 (Survivor_2_4) package { import flash.display.*; public dynamic class Survivor_2_4 extends MovieClip { } }//package
Section 511
//Survivor_2_5 (Survivor_2_5) package { import flash.display.*; public dynamic class Survivor_2_5 extends MovieClip { } }//package
Section 512
//Survivor_2_6 (Survivor_2_6) package { import flash.display.*; public dynamic class Survivor_2_6 extends MovieClip { } }//package
Section 513
//Survivor_2_7 (Survivor_2_7) package { import flash.display.*; public dynamic class Survivor_2_7 extends MovieClip { } }//package
Section 514
//Survivor_2_8 (Survivor_2_8) package { import flash.display.*; public dynamic class Survivor_2_8 extends MovieClip { } }//package
Section 515
//Survivor_2_9 (Survivor_2_9) package { import flash.display.*; public dynamic class Survivor_2_9 extends MovieClip { } }//package
Section 516
//Survivor_3_1 (Survivor_3_1) package { import flash.display.*; public dynamic class Survivor_3_1 extends MovieClip { } }//package
Section 517
//Survivor_3_10 (Survivor_3_10) package { import flash.display.*; public dynamic class Survivor_3_10 extends MovieClip { } }//package
Section 518
//Survivor_3_11 (Survivor_3_11) package { import flash.display.*; public dynamic class Survivor_3_11 extends MovieClip { } }//package
Section 519
//Survivor_3_12 (Survivor_3_12) package { import flash.display.*; public dynamic class Survivor_3_12 extends MovieClip { } }//package
Section 520
//Survivor_3_13 (Survivor_3_13) package { import flash.display.*; public dynamic class Survivor_3_13 extends MovieClip { } }//package
Section 521
//Survivor_3_14 (Survivor_3_14) package { import flash.display.*; public dynamic class Survivor_3_14 extends MovieClip { } }//package
Section 522
//Survivor_3_15 (Survivor_3_15) package { import flash.display.*; public dynamic class Survivor_3_15 extends MovieClip { } }//package
Section 523
//Survivor_3_16 (Survivor_3_16) package { import flash.display.*; public dynamic class Survivor_3_16 extends MovieClip { } }//package
Section 524
//Survivor_3_17 (Survivor_3_17) package { import flash.display.*; public dynamic class Survivor_3_17 extends MovieClip { } }//package
Section 525
//Survivor_3_18 (Survivor_3_18) package { import flash.display.*; public dynamic class Survivor_3_18 extends MovieClip { } }//package
Section 526
//Survivor_3_19 (Survivor_3_19) package { import flash.display.*; public dynamic class Survivor_3_19 extends MovieClip { } }//package
Section 527
//Survivor_3_2 (Survivor_3_2) package { import flash.display.*; public dynamic class Survivor_3_2 extends MovieClip { } }//package
Section 528
//Survivor_3_20 (Survivor_3_20) package { import flash.display.*; public dynamic class Survivor_3_20 extends MovieClip { } }//package
Section 529
//Survivor_3_3 (Survivor_3_3) package { import flash.display.*; public dynamic class Survivor_3_3 extends MovieClip { } }//package
Section 530
//Survivor_3_4 (Survivor_3_4) package { import flash.display.*; public dynamic class Survivor_3_4 extends MovieClip { } }//package
Section 531
//Survivor_3_5 (Survivor_3_5) package { import flash.display.*; public dynamic class Survivor_3_5 extends MovieClip { } }//package
Section 532
//Survivor_3_6 (Survivor_3_6) package { import flash.display.*; public dynamic class Survivor_3_6 extends MovieClip { } }//package
Section 533
//Survivor_3_7 (Survivor_3_7) package { import flash.display.*; public dynamic class Survivor_3_7 extends MovieClip { } }//package
Section 534
//Survivor_3_8 (Survivor_3_8) package { import flash.display.*; public dynamic class Survivor_3_8 extends MovieClip { } }//package
Section 535
//Survivor_3_9 (Survivor_3_9) package { import flash.display.*; public dynamic class Survivor_3_9 extends MovieClip { } }//package
Section 536
//TextInput_disabledSkin (TextInput_disabledSkin) package { import flash.display.*; public dynamic class TextInput_disabledSkin extends MovieClip { } }//package
Section 537
//TextInput_upSkin (TextInput_upSkin) package { import flash.display.*; public dynamic class TextInput_upSkin extends MovieClip { } }//package
Section 538
//Tile (Tile) package { public class Tile { public static var fadeSouthAlleyEast:int = 116; public static var nwCornerFadeNorth:int = 133; public static var alley:int = 0; public static var alleyHorizontal:Array = [17, 18, 19]; public static var multiLaneA:int = 3; public static var multiLaneB:int = 4; public static var multiLaneC:int = 5; public static var multiLaneD:int = 6; public static var multiLaneE:int = 7; public static var multiLaneF:int = 8; public static var multiLaneG:int = 9; public static var fadeEastWalkNorth:int = 99; public static var fadeNorthWalkWest:int = 73; public static var eBeachToDark:int = 85; public static var nePark:int = 68; public static var nShallowShore:int = 188; public static var X_COUNT:int = 20; public static var sBeachDark:int = 163; public static var fadeEastAlleySouth:int = 159; public static var neCornerFadeNorth:int = 134; public static var fadeFromNorth:int = 178; public static var nBridgeGreater:int = 187; public static var eShallows:int = 148; public static var verticalFactor:int = 1; public static var seBeach:int = 165; public static var NO_TILE:int = -1; public static var eBeachFromDark:int = 125; public static var fadeNorthWalkEast:int = 74; public static var sShallows:int = 167; public static var swPark:int = 106; public static var wShallows:int = 146; public static var edgeRoof:Array = [[1021, 0x0400, 1025, 1026, 1027, 1029, 1043, 1047, 1048, 1049, 1050, 1051, 1060, 1061, 1080, 1081], [1023, 0x0400, 1025, 1026, 1027, 1031, 1041, 1045, 1048, 1049, 1050, 1051, 1060, 1061, 1080, 1081], [1022, 0x0400, 1025, 1026, 1027, 1030, 1040, 1044, 1048, 1049, 1050, 1051, 1060, 1061, 1080, 1081], [1020, 0x0400, 1025, 1026, 1027, 0x0404, 1042, 1046, 1048, 1049, 1050, 1051, 1060, 1061, 1080, 1081]]; public static var twoLaneLeft:int = 1; public static var seCornerFadeBoth:int = 219; public static var sBridgeGreater:int = 207; public static var nBeachToDark:int = 61; public static var BEGIN:int = 0; public static var OBSTACLE_START:int = 0; public static var horizontalFactor:int = 20; public static var eBeachDark:int = 105; public static var trees:Array = [440, 441, 445, 446, 580, 581, 585, 586]; public static var wBridgeLess:int = 293; public static var fadeWestAlleyNorth:int = 137; public static var twoLaneRight:int = 2; public static var nwCurve:int = 81; public static var alleyVertical:Array = [13, 33, 53]; public static var sBeach:int = 161; public static var fadeWestWalkNorth:int = 97; public static var nBeachDark:int = 62; public static var roadVertical:Array = [0, 20, 40]; public static var alleySouth:int = 158; public static var END:int = 2; public static var walkNorth:int = 98; public static var wBeachDark:int = 120; public static var lakes:Array = [69, 89, 109, 129]; public static var alleyCrossTwoLeft:int = 0; public static var wShallowShore:int = 175; public static var sShallowShore:int = 208; public static var swCornerFadeSouth:int = 153; public static var eBrokenBridge:int = 174; public static var wBeachToDark:int = 100; public static var cornerRoof:Array = [0x0400, 1025, 1026, 1027, 1048, 1049, 1050, 1051, 1060, 1061, 1080, 1081]; public static var fadeSouthWalkWest:int = 113; public static var swCurve:int = 121; public static var nBeachFromDark:int = 63; public static var fadeEastWalkSouth:int = 119; public static var sPark:int = 107; public static var seCornerFadeEast:int = 156; public static var wPark:int = 86; public static var centerRoof:Array = [1020, 1021, 1022, 1023, 0x0400, 1025, 1026, 1027, 0x0404, 1029, 1030, 1031, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1060, 1061, 1080, 1081]; public static var eBridgeLess:int = 294; public static var wBridgeGreater:int = 313; public static var sBeachFromDark:int = 164; public static var fadeFromWest:int = 197; public static var swCornerFadeBoth:int = 217; public static var walkWest:int = 93; public static var nwBeach:int = 60; public static var centerRoad:int = 198; public static var fadeFromSouth:int = 218; public static var neCornerFadeBoth:int = 179; public static var wBeach:int = 80; public static var seCornerFadeSouth:int = 154; public static var fadeSouthWalkEast:int = 114; public static var OBSTACLE_LAKE:int = 2; public static var swCornerFadeWest:int = 155; public static var seShallows:int = 168; public static var nwPark:int = 66; public static var nBrokenBridge:int = 180; public static var sePark:int = 108; public static var swBeach:int = 160; public static var sBeachToDark:int = 162; public static var fadeFromEast:int = 199; public static var roadHorizontal:Array = [10, 11, 12]; public static var walkEast:int = 94; public static var fadeEastAlleyNorth:int = 139; public static var fadeWestAlleySouth:int = 157; public static var alleyWest:int = 95; public static var swShallows:int = 166; public static var nShallows:int = 127; public static var neCurve:int = 83; public static var fadeWestWalkSouth:int = 117; public static var fadeNorthAlleyWest:int = 75; public static var alleyCrossTwoRight:int = 1; public static var walkSouth:int = 118; public static var nPark:int = 67; public static var Y_COUNT:int = 65; public static var wBeachFromDark:int = 140; public static var MIDDLE:int = 1; public static var deepWater:int = 147; public static var nBeach:int = 64; public static var sBridgeLess:int = 206; public static var neCornerFadeEast:int = 136; public static var rocks:Array = [149, 169, 189, 209]; public static var alleyEast:int = 96; public static var fadeSouthAlleyWest:int = 115; public static var neShallows:int = 128; public static var nwCornerFadeBoth:int = 177; public static var seCurve:int = 123; public static var parkTiles:Array = [nwPark, nPark, nePark, wPark, centerPark, ePark, swPark, sPark, sePark]; public static var obstacles:Array = [trees, rocks, lakes]; public static var eShallowShore:int = 176; public static var nwShallows:int = 126; public static var fadeNorthAlleyEast:int = 76; public static var eBridgeGreater:int = 314; public static var nBridgeLess:int = 186; public static var sBrokenBridge:int = 200; public static var wBrokenBridge:int = 173; public static var centerPark:int = 87; public static var nwCornerFadeWest:int = 135; public static var neBeach:int = 65; public static var alleyCrossMultiRight:int = 3; public static var ePark:int = 88; public static var alleyNorth:int = 138; public static var alleyCrossMultiLeft:int = 2; public static var EDGE:int = 1066; public static var eBeach:int = 145; } }//package
Section 539
//TimerPipSound (TimerPipSound) package { import flash.net.*; import flash.media.*; import flash.*; public class TimerPipSound extends Sound { public function TimerPipSound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 540
//TimerScreen (TimerScreen) package { import flash.display.*; public dynamic class TimerScreen extends MovieClip { } }//package
Section 541
//Tower (Tower) package { import logic.*; import flash.utils.*; import ui.*; import flash.*; public class Tower extends Actor { protected var committedUpgrade:int; protected var survivors:Array; protected var type:int; protected var upgradeCostTable:Array; protected var mapPos:Point; protected var zombieGuide:PathFinder; protected var level:int; protected var levelLimit:int; protected var links:List; protected var speedTable:Array; protected var sprite:TowerSprite; protected var incomingSurvivors:Array; protected var reservedUpgrade:int; protected var stuff:Storage; public static var WORKSHOP:int = 3; public static var BARRICADE:int = 0; public static var DEPOT:int = 2; public static var SNIPER:int = 1; public function Tower(_arg1:Point=null, _arg2:int=0, _arg3:Array=null, _arg4:Array=null):void{ if (!Boot.skip_constructor){ super(_arg3[0]); this.mapPos = _arg1.clone(); this.sprite = new TowerSprite(this.mapPos, this.type, 0); this.stuff = new Storage(); this.survivors = []; this.incomingSurvivors = []; this.level = 0; this.reservedUpgrade = 0; this.committedUpgrade = 0; this.links = new List(); this.zombieGuide = Game.pathPool.getZombiePath(this.mapPos); this.levelLimit = _arg2; this.speedTable = _arg3; this.upgradeCostTable = _arg4; this.normalizeLevel(); }; } public function toggleHoldFire():void{ } public function giveBuildResource(_arg1:int):void{ var _local2:int; _local2 = (getBuildCost(_arg1) * Lib.truckLoad(Resource.BOARDS)); this.giveResource(new ResourceCount(Resource.BOARDS, _local2)); this.giveResource(Lib.survivorLoad); } public function getUpgradeLeft():int{ return ((this.getUpgradeCost() - this.committedUpgrade)); } public function freeUpgrade():void{ if (this.reservedUpgrade > 0){ this.reservedUpgrade--; }; } protected function createSupplyTruck(_arg1:Point, _arg2:ResourceCount, _arg3:Route):void{ var _local4:int; var _local5:Truck; _local4 = Math.floor(Math.min(_arg2.count, Lib.truckLoad(_arg2.resource))); _local5 = Truck.createSupplyTruck(this.mapPos, _arg1, _arg2.resource, _local4, _arg3); } public function isHoldingFire():Boolean{ return (false); } public function upgrade():void{ if (this.canUpgrade()){ this.committedUpgrade++; if (this.committedUpgrade >= this.upgradeCostTable[(this.level + 1)]){ Main.sound.play(SoundPlayer.TOWER_UPGRADE); this.upgradeLevel(); }; Game.update.changeStatus(); }; } public function getTruckSpeed():int{ return ((Option.truckSpeedMin + Lib.rand(Option.truckSpeedRange))); } public function hasBuildResource(_arg1:int):Boolean{ var _local2:int; _local2 = (getBuildCost(_arg1) * Lib.truckLoad(Resource.BOARDS)); return (((this.hasResource(new ResourceCount(Resource.BOARDS, _local2))) && (this.hasResource(Lib.survivorLoad)))); } public function startUpgradeTruck():Boolean{ var _local1:Boolean; var _local2:Point; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:Truck; var _local10:Tower; var _local11:Route; _local1 = false; _local2 = this.getUpgradeSupplier(); if (((((((!((_local2 == null))) && (Point.isEqual(_local2, this.mapPos)))) && (this.canUpgrade()))) && (!(this.isUpgrading())))){ _local3 = 0; _local4 = this.getUpgradeCost(); while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; this.takeResource(Lib.boardLoad); this.upgrade(); }; _local1 = true; } else { if (((((this.canUpgrade()) && (!(this.isUpgrading())))) && (!((_local2 == null))))){ _local6 = 0; _local7 = this.getUpgradeCost(); while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local8 = _temp2; _local9 = null; if (this.getType() == WORKSHOP){ _local9 = Truck.createWorkshopUpgradeTruck(new Point(_local2.x, _local2.y), this.mapPos); } else { _local10 = Game.map.getCell(_local2.x, _local2.y).getTower(); _local11 = _local10.getRoute(this.mapPos); _local9 = Truck.createUpgradeTruck(_local11); }; }; _local1 = true; }; }; return (_local1); } public function giveSurvivor(_arg1:int):void{ this.survivors.push(_arg1); this.giveResource(Lib.survivorLoad); } public function removeAllResources():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:Resource; var _local5:int; _local1 = 0; _local2 = Option.resourceCount; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = Lib.indexToResource(_local3); _local5 = this.stuff.count(_local4); Game.progress.removeResources(_local4, _local5); _local5 = this.stuff.incoming(_local4); Game.progress.removeResources(_local4, _local5); _local5 = this.stuff.reserve(_local4); Game.progress.addResources(_local4, _local5); }; } public function canUpgrade():Boolean{ return ((this.level < this.levelLimit)); } public function wasteShot():void{ } public function removeTarget():void{ this.sprite.changeSupplyTarget(false); this.sprite.update(); } public function countSand(_arg1:Resource):int{ return (0); } public function giveResource(_arg1:ResourceCount):void{ this.stuff.give(_arg1); this.updateLow(_arg1.resource); Game.progress.addResources(_arg1.resource, _arg1.count); Game.update.resourceChange(this.mapPos); } public function getZombieGuide():PathFinder{ return (this.zombieGuide); } public function buildGarden():void{ } public function countResource(_arg1:Resource):int{ return (this.stuff.count(_arg1)); } public function getInfrastructureBoards():int{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; _local1 = 0; _local2 = 0; _local3 = (this.level + 1); while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local1 = (_local1 + this.upgradeCostTable[_local4]); }; return (_local1); } public function attack():Boolean{ Main.sound.play(SoundPlayer.TOWER_DESTROY); return (true); } public function canWasteShot():Boolean{ return (false); } public function getMapPos():Point{ return (this.mapPos.clone()); } public function reserveBuildResource(_arg1:int):void{ } public function shouldUseFood():Boolean{ return (false); } public function canBuildGarden():Boolean{ return (false); } public function countIncoming(_arg1:Resource):int{ return (this.stuff.incoming(_arg1)); } public function addTradeTargets():void{ var _local1:*; var _local2:Route; var _local3:Tower; _local1 = this.links.iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); _local3 = Game.map.getCell(_local2.dest.x, _local2.dest.y).getTower(); _local3.sprite.changeSupplyTarget(true); _local3.sprite.update(); }; } public function removeTradeLink(_arg1:Point):void{ var _local2:Tower; Main.replay.removeLine(this.mapPos, _arg1); Main.replay.removeLine(_arg1, this.mapPos); this.removeHalfLink(_arg1); this.sprite.changeSupplyTarget(false); _local2 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); if (_local2 != null){ _local2.removeHalfLink(this.mapPos); _local2.sprite.changeSupplyTarget(false); }; Game.update.supplyLine(this.mapPos, _arg1); } public function takeBuildResource(_arg1:int):void{ var _local2:int; _local2 = (getBuildCost(_arg1) * Lib.truckLoad(Resource.BOARDS)); this.takeResource(new ResourceCount(Resource.BOARDS, _local2)); this.takeResource(Lib.survivorLoad); } protected function getWeight(_arg1:ResourceCount):int{ if (_arg1.resource == Resource.SURVIVORS){ return ((_arg1.count * Option.truckLoad)); }; return (_arg1.count); } public function getAccuracy(_arg1:Zombie=null):int{ return (0); } public function usesSand():Boolean{ return (false); } protected function removeHalfLink(_arg1:Point):void{ var _local2:Route; _local2 = this.getRoute(_arg1); if (_local2 != null){ this.links.remove(_local2); }; } public function normalizeLevel():void{ this.speed = this.speedTable[this.level]; } public function getOverflow():List{ var _local1:List; var _local2:int; var _local3:int; var _local4:int; var _local5:Resource; var _local6:int; _local1 = new List(); _local2 = 0; _local3 = Option.resourceCount; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local5 = Lib.indexToResource(_local4); _local6 = ((this.stuff.count(_local5) + this.stuff.incoming(_local5)) - this.stuff.reserve(_local5)); if (_local6 >= 0){ _local1.add(new ResourceCount(_local5, _local6)); }; }; return (_local1); } public function downgrade():void{ if (this.canDowngrade()){ this.level = (this.level - 1); this.normalizeLevel(); Game.update.changeStatus(); }; } public function canDowngrade():Boolean{ return ((this.level > 0)); } public function getRange():int{ return (0); } public function freeBuildResource():void{ } public function getRoute(_arg1:Point):Route{ var _local2:Route; var _local3:*; var _local4:Route; _local2 = null; _local3 = this.links.iterator(); while (_local3.hasNext()) { _local4 = _local3.next(); if (Point.isEqual(_local4.dest, _arg1)){ _local2 = _local4; }; }; return (_local2); } public function removeReserve(_arg1:ResourceCount):void{ if (this.stuff.reserve(_arg1.resource) >= _arg1.count){ this.stuff.removeReserve(_arg1); this.updateLow(_arg1.resource); Game.update.resourceChange(this.mapPos); Game.progress.addResources(_arg1.resource, _arg1.count); }; } public function takeSurvivor():int{ this.takeResource(Lib.survivorLoad); return (this.survivors.pop()); } public function removeTradeTargets():void{ var _local1:*; var _local2:Route; var _local3:Tower; _local1 = this.links.iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); _local3 = Game.map.getCell(_local2.dest.x, _local2.dest.y).getTower(); _local3.sprite.changeSupplyTarget(false); _local3.sprite.update(); }; } override public function cleanup():void{ this.removeAllTrade(); this.sprite.cleanup(); super.cleanup(); } public function getTradeLinks():List{ return (this.links); } public function countReserve(_arg1:Resource):int{ return (this.stuff.reserve(_arg1)); } public function getType():int{ return (DEPOT); } public function saveTowerGeneric(){ return ({parent:super.save(), sprite:TowerSprite.saveS(this.sprite), mapPos:this.mapPos.save(), stuff:this.stuff.save(), survivors:this.survivors.copy(), incomingSurvivors:this.incomingSurvivors.copy(), level:this.level, reservedUpgrade:this.reservedUpgrade, committedUpgrade:this.committedUpgrade, links:Save.saveList(this.links, Route.saveS), type:this.type, zombieGuide:this.zombieGuide.save()}); } public function takeResource(_arg1:ResourceCount):void{ this.stuff.take(_arg1); this.updateLow(_arg1.resource); Game.progress.removeResources(_arg1.resource, _arg1.count); Game.update.resourceChange(this.mapPos); } public function updateVisibility():void{ } public function saveEditResources(_arg1:ByteArray):void{ this.stuff.saveEditResources(_arg1); } public function reserveUpgrade():void{ if (((this.canUpgrade()) && (((this.reservedUpgrade + this.committedUpgrade) < this.getUpgradeCost())))){ this.reservedUpgrade++; }; } public function getFoodCost():int{ return (Option.foodTransportCost); } public function addSand(_arg1:ResourceCount):void{ } public function getSurvivorType(_arg1:int):int{ if (_arg1 < this.survivors.length){ return (this.survivors[_arg1]); }; if (_arg1 < (this.survivors.length + this.incomingSurvivors.length)){ return (this.incomingSurvivors[(_arg1 - this.survivors.length)]); }; return (0); } public function upgradeLevel():void{ if (this.canUpgrade()){ this.committedUpgrade = 0; this.level = (this.level + 1); this.normalizeLevel(); }; } public function removeIncoming(_arg1:ResourceCount):void{ this.stuff.removeIncoming(_arg1); this.updateLow(_arg1.resource); Game.progress.removeResources(_arg1.resource, _arg1.count); Game.update.resourceChange(this.mapPos); } protected function updateLow(_arg1:Resource):void{ if (this.countReserve(_arg1) > (this.countResource(_arg1) + this.countIncoming(_arg1))){ this.sprite.addNeed(_arg1); } else { this.sprite.removeNeed(_arg1); }; } public function getLevel():int{ return (this.level); } public function isUpgrading():Boolean{ return ((this.reservedUpgrade > 0)); } protected function sendToDepot(_arg1:Boolean):void{ var _local2:Point; var _local3:Route; var _local4:*; var _local5:ResourceCount; var _local6:int; var _local7:int; var _local8:int; var _local9:Route; var _local10:Tower; var _local11:int; var _local12:Resource; var _local13:int; var _local14:ResourceCount; _local2 = null; _local3 = null; _local4 = this.links.iterator(); while (_local4.hasNext()) { _local9 = _local4.next(); _local10 = Game.map.getCell(_local9.dest.x, _local9.dest.y).getTower(); if (((((!((_local10 == null))) && ((_local10.getType() == DEPOT)))) && (_local9.shouldSend()))){ _local2 = _local9.dest; _local3 = _local9; break; }; }; _local5 = null; _local6 = 0; _local7 = 0; _local8 = Option.resourceCount; while (_local7 < _local8) { var _temp1 = _local7; _local7 = (_local7 + 1); _local11 = _temp1; _local12 = Lib.indexToResource(_local11); _local13 = (this.stuff.count(_local12) - this.stuff.reserve(_local12)); if (_local13 > 0){ _local14 = new ResourceCount(_local12, _local13); if (this.getWeight(_local14) > _local6){ _local5 = _local14; _local6 = this.getWeight(_local5); }; }; }; if (((((((((!((_local2 == null))) && (!((_local5 == null))))) && (!((_local3 == null))))) && (((!(_arg1)) || ((_local5.count >= Lib.truckLoad(_local5.resource))))))) && ((this.stuff.count(Resource.SURVIVORS) >= Lib.truckLoad(Resource.SURVIVORS))))){ this.createSupplyTruck(_local2, _local5, _local3); }; } public function getUpgradeSupplier():Point{ var _local1:Point; var _local2:int; var _local3:int; var _local4:*; var _local5:Route; var _local6:Tower; var _local7:int; var _local8:int; _local1 = null; _local2 = (this.getUpgradeCost() * Lib.truckLoad(Resource.BOARDS)); _local3 = (this.getUpgradeCost() * Lib.truckLoad(Resource.SURVIVORS)); _local4 = this.links.iterator(); while (_local4.hasNext()) { _local5 = _local4.next(); _local6 = Game.map.getCell(_local5.dest.x, _local5.dest.y).getTower(); _local7 = _local6.countResource(Resource.BOARDS); _local8 = _local6.countResource(Resource.SURVIVORS); if (((((!((_local6 == null))) && ((_local7 >= _local2)))) && ((_local8 >= _local3)))){ _local1 = _local5.dest; break; }; }; if (_local1 != null){ return (_local1.clone()); }; return (_local1); } public function getUpgradeCost():int{ return (this.upgradeCostTable[(this.level + 1)]); } public function hasResource(_arg1:ResourceCount):Boolean{ return ((this.stuff.count(_arg1.resource) >= _arg1.count)); } public function toggleFood():void{ } public function getUpgradeLeftText():String{ return (Std.string((this.getUpgradeLeft() * Lib.truckLoad(Resource.BOARDS)))); } public function addReserve(_arg1:ResourceCount):void{ this.stuff.addReserve(_arg1); this.updateLow(_arg1.resource); Game.update.resourceChange(this.mapPos); Game.progress.removeResources(_arg1.resource, _arg1.count); } public function addTradeLink(_arg1:Point):void{ var _local2:Route; var _local3:Tower; var _local4:Route; var _local5:Route; _local2 = this.getRoute(_arg1); _local3 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); if ((((((_local2 == null)) && (!((_local3 == null))))) && (((!((this.mapPos.x == _arg1.x))) || (!((this.mapPos.y == _arg1.y))))))){ Game.script.trigger(Script.CREATE_TRADE_SOURCE, this.mapPos); Game.script.trigger(Script.CREATE_TRADE_DEST, _arg1); Main.replay.addLine(this.mapPos, _arg1); _local4 = new Route(this.mapPos, _arg1); this.links.add(_local4); _local5 = new Route(_arg1, this.mapPos); _local3.links.add(_local5); Game.update.supplyLine(this.mapPos, _arg1); }; } public function removeIncomingSurvivor(_arg1:int):void{ this.removeIncoming(Lib.survivorLoad); this.incomingSurvivors.remove(_arg1); } public function updateBlocked():void{ } override public function load(_arg1):void{ super.load(_arg1.parent); this.sprite.cleanup(); this.sprite = TowerSprite.load(_arg1.sprite); this.mapPos = Point.load(_arg1.mapPos); this.stuff.load(_arg1.stuff); this.survivors = Load.loadArrayInt(_arg1.survivors); this.incomingSurvivors = Load.loadArrayInt(_arg1.incomingSurvivors); this.level = _arg1.level; this.reservedUpgrade = _arg1.reservedUpgrade; this.committedUpgrade = _arg1.committedUpgrade; this.links = Load.loadList(_arg1.links, Route.load); this.zombieGuide = PathFinder.load(_arg1.zombieGuide); } public function removeAllTrade():void{ while (!(this.links.isEmpty())) { this.removeTradeLink(this.links.first().dest); }; } public function getBuildShortage(_arg1:int):Resource{ var _local2:int; _local2 = (getBuildCost(_arg1) * Lib.truckLoad(Resource.BOARDS)); if (!this.hasResource(Lib.survivorLoad)){ return (Resource.SURVIVORS); }; if (!this.hasResource(new ResourceCount(Resource.BOARDS, _local2))){ return (Resource.BOARDS); }; return (null); } public function addIncoming(_arg1:ResourceCount):void{ this.stuff.addIncoming(_arg1); this.updateLow(_arg1.resource); Game.progress.addResources(_arg1.resource, _arg1.count); Game.update.resourceChange(this.mapPos); } public function showVisibility(_arg1:Range):void{ } public function getNeeds():List{ var _local1:List; var _local2:int; var _local3:int; var _local4:int; var _local5:Resource; var _local6:int; _local1 = new List(); _local2 = 0; _local3 = Option.resourceCount; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local5 = Lib.indexToResource(_local4); _local6 = (this.stuff.reserve(_local5) - (this.stuff.count(_local5) + this.stuff.incoming(_local5))); if (_local6 > 0){ _local1.add(new ResourceCount(_local5, _local6)); }; }; return (_local1); } public function addIncomingSurvivor(_arg1:int):void{ this.addIncoming(Lib.survivorLoad); this.incomingSurvivors.push(_arg1); } public static function getBuildCost(_arg1:int):int{ if (_arg1 == BARRICADE){ return (Option.barricadeCost[0]); }; if (_arg1 == SNIPER){ return (Option.sniperCost[0]); }; if (_arg1 == DEPOT){ return (Option.depotCost[0]); }; return (Option.workshopCost[0]); } public static function isSupplied(_arg1:int, _arg2:int):Boolean{ var _local3:Boolean; var _local4:List; var _local5:*; var _local6:Point; var _local7:Tower; _local3 = false; _local4 = Game.map.findTowers(_arg1, _arg2, Option.supplyRange); _local5 = _local4.iterator(); while (_local5.hasNext()) { _local6 = _local5.next(); _local7 = Game.map.getCell(_local6.x, _local6.y).getTower(); if (_local7.getType() == DEPOT){ _local3 = true; break; }; }; return (_local3); } public static function loadS(_arg1):Tower{ var _local2:Tower; _local2 = null; if (_arg1.parent.type == BARRICADE){ _local2 = new Barricade(_arg1.parent.mapPos.x, _arg1.parent.mapPos.y); } else { if (_arg1.parent.type == SNIPER){ _local2 = new Sniper(_arg1.parent.mapPos.x, _arg1.parent.mapPos.y); } else { if (_arg1.parent.type == DEPOT){ _local2 = new Depot(_arg1.parent.mapPos.x, _arg1.parent.mapPos.y); } else { _local2 = new Workshop(_arg1.parent.mapPos.x, _arg1.parent.mapPos.y); }; }; }; _local2.load(_arg1); _local2.normalizeLevel(); Game.map.getCell(_local2.mapPos.x, _local2.mapPos.y).loadAddTower(_local2); return (_local2); } public static function canPlace(_arg1:int, _arg2:int, _arg3:int, _arg4=null):Boolean{ var _local5:BackgroundType; var _local6:BackgroundType; var _local7:BackgroundType; var _local8:Boolean; var _local9:MapCell; _local5 = BackgroundType.BRIDGE; _local6 = BackgroundType.BUILDING; _local7 = BackgroundType.ENTRANCE; _local8 = false; _local9 = Game.map.getCell(_arg2, _arg3); if (((((((((((!(_local9.hasTower())) && (!(_local9.hasShadow())))) && (!(_local9.hasZombies())))) && (!(_local9.isBlocked())))) && (!((_local9.getBackground() == _local5))))) && ((((((_arg4 == true)) || (isSupplied(_arg2, _arg3)))) || (Game.settings.isEditor()))))){ if ((((((_arg1 == WORKSHOP)) && (((_local9.hasRubble()) || (!((_local9.feature == null))))))) && ((((_local9.getBuilding() == null)) || (!(_local9.getBuilding().hasZombies())))))){ _local8 = true; } else { if (((((((((!((_arg1 == WORKSHOP))) && (!(_local9.hasRubble())))) && ((_local9.feature == null)))) && (!((_local9.getBackground() == _local6))))) && (!((_local9.getBackground() == _local7))))){ _local8 = true; }; }; }; return (_local8); } public static function save(_arg1:Tower){ return (_arg1.save()); } } }//package
Section 542
//TowerAbandonSound (TowerAbandonSound) package { import flash.net.*; import flash.media.*; import flash.*; public class TowerAbandonSound extends Sound { public function TowerAbandonSound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 543
//TowerBuildSound (TowerBuildSound) package { import flash.net.*; import flash.media.*; import flash.*; public class TowerBuildSound extends Sound { public function TowerBuildSound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 544
//towerclip (towerclip) package { import flash.display.*; public dynamic class towerclip extends MovieClip { public function towerclip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 545
//TowerDestroySound (TowerDestroySound) package { import flash.net.*; import flash.media.*; import flash.*; public class TowerDestroySound extends Sound { public function TowerDestroySound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 546
//TowerNeedClip (TowerNeedClip) package { import flash.display.*; public dynamic class TowerNeedClip extends MovieClip { public function TowerNeedClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 547
//TowerSupplySound (TowerSupplySound) package { import flash.net.*; import flash.media.*; import flash.*; public class TowerSupplySound extends Sound { public function TowerSupplySound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 548
//TowerUpgradeSound (TowerUpgradeSound) package { import flash.net.*; import flash.media.*; import flash.*; public class TowerUpgradeSound extends Sound { public function TowerUpgradeSound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 549
//Truck (Truck) package { import ui.*; import logic.mission.*; import flash.*; public class Truck extends Actor implements AbstractFrame { protected var goal:Mission; protected var path:Path; protected var pathIndex:int; protected var isDead:Boolean; protected var sprite:Sprite; protected var retries:int; protected var route:Route; protected var waitCounter:int; protected var deathFrame:int; protected var current:Point; public function Truck(_arg1:Mission=null, _arg2:Route=null):void{ var _local3:int; if (!Boot.skip_constructor){ _local3 = 100; if (_arg1 != null){ _local3 = _arg1.takeFood(); }; super(_local3); this.retries = 0; this.waitCounter = 0; this.goal = _arg1; this.current = null; this.path = null; this.pathIndex = 0; this.route = null; this.isDead = false; this.deathFrame = Option.survivorDeathFrameCount; if (this.goal != null){ this.current = this.goal.getSource().clone(); this.sprite = new Sprite(this.current.toPixel(), 0, this.goal.getSurvivorType(), Animation.carry(this.goal.getPayload())); this.sprite.update(); this.route = _arg2; this.resetPath(); Game.map.getCell(this.current.x, this.current.y).addTruck(this); }; }; } public function spawnZombie():void{ var _local1:Zombie; var _local2:Tower; if (!this.isDead){ _local1 = new Zombie(this.current.x, this.current.y, this.sprite.getRotation(), this.current.x, this.current.y, Zombie.ATTACK_SPAWN); _local1.setPixel(this.sprite.getPos()); if (((!((this.goal.getDest() == null))) && (!(Point.isEqual(this.goal.getDest(), this.current))))){ _local2 = Game.map.getCell(this.goal.getDest().x, this.goal.getDest().y).getTower(); if (_local2 != null){ _local1.makeNoise(this.goal.getDest(), 0, _local2.getZombieGuide()); }; }; this.isDead = true; Game.view.frameAdvance.add(this); Main.sound.play(SoundPlayer.ZOMBIE_MOAN); if (Main.kongregate != null){ Main.kongregate.stats.submit("Turncoat", 1); }; }; } protected function completeMission():void{ this.goal = this.goal.complete(); if (this.goal == null){ this.cleanup(); } else { this.resetPath(); this.displayPayload(this.goal.getPayload()); }; } protected function resetPath():void{ var _local1:Tower; if (((((!((this.route == null))) && (Point.isEqual(this.route.source, this.goal.getDest())))) && (Point.isEqual(this.route.dest, this.current)))){ _local1 = Game.map.getCell(this.current.x, this.current.y).getTower(); if (_local1 != null){ this.route = _local1.getRoute(this.goal.getDest()); }; }; if (((((!((this.route == null))) && (Point.isEqual(this.route.source, this.current)))) && (Point.isEqual(this.route.dest, this.goal.getDest())))){ this.path = this.route.path; } else { this.path = Game.pathPool.getPath(this.current, this.goal.getDest()); }; this.pathIndex = 0; } override public function cleanup():void{ super.cleanup(); this.sprite.cleanup(); if (this.goal != null){ this.goal.cleanup(); }; Game.map.getCell(this.current.x, this.current.y).removeTruck(this); if (this.isDead){ Game.view.frameAdvance.remove(this); }; } protected function movePanic():void{ var _local1:Array; var _local2:Array; var _local3:int; var _local4:Point; var _local5:Point; var _local6:MapCell; var _local7:int; _local1 = [new Point(0, 1), new Point(1, 0), new Point(0, -1), new Point(-1, 0)]; _local2 = []; _local3 = 0; while (_local3 < _local1.length) { _local4 = _local1[_local3]; _local3++; _local5 = this.current.clone(); _local5.plusEquals(_local4); _local6 = Game.map.getCell(_local5.x, _local5.y); if (((((((!(_local6.hasZombies())) && (!(_local6.isBlocked())))) && (!(_local6.hasTower())))) && (!((_local6.getBackground() == BackgroundType.BRIDGE))))){ _local2.push(_local5); }; }; if (_local2.length > 0){ _local7 = Lib.rand(_local2.length); this.move(_local2[_local7], null); }; if (!this.isPanic()){ this.resetPath(); }; } public function retryMission():void{ if (this.route != null){ this.route.path = Game.pathPool.getPath(this.route.source, this.route.dest); }; if (this.retries >= Option.truckRetries){ this.retries = 0; this.goal = this.goal.fail(); if (this.goal == null){ this.cleanup(); } else { this.resetPath(); this.displayPayload(this.goal.getPayload()); }; } else { this.resetPath(); this.wait(); this.retries++; }; } protected function isPathGood():Boolean{ var _local1:Boolean; var _local2:Point; var _local3:Boolean; var _local4:Boolean; _local1 = true; if (this.pathIndex >= this.path.getStepCount()){ _local1 = false; } else { if (((!(this.path.isGenerating())) && (!(this.path.isFound())))){ _local1 = false; } else { if ((((this.goal == null)) || (!(this.goal.canSucceed())))){ _local1 = false; } else { _local2 = this.path.getStep(this.pathIndex); _local3 = ((!(Point.isEqual(_local2, this.goal.getDest()))) && (Game.map.getCell(_local2.x, _local2.y).hasTower())); _local4 = ((((Lib.adjacentZombie(_local2)) && (!(Point.isEqual(_local2, this.goal.getDest()))))) || (Game.map.getCell(_local2.x, _local2.y).hasZombies())); if (((_local3) || (_local4))){ _local1 = false; }; }; }; }; return (_local1); } public function getPixel():Point{ return (this.sprite.getPos()); } protected function move(_arg1:Point, _arg2:Point):Boolean{ var _local3:Boolean; _local3 = this.sprite.travelCurve(this.current.toPixel(), _arg1.toPixel(), _arg2); if (_local3){ Game.map.getCell(this.current.x, this.current.y).removeTruck(this); this.current = _arg1; Game.map.getCell(this.current.x, this.current.y).addTruck(this); }; this.waitCounter = 0; return (_local3); } override public function step(_arg1:int):void{ var _local2:int; if (!this.isDead){ _local2 = this.sprite.step(_arg1); if (_local2 < _arg1){ if (Point.isEqual(this.current, this.goal.getDest())){ this.completeMission(); } else { if (this.isPanic()){ this.movePanic(); } else { this.continueMission(); }; }; }; }; } public function fixedStep():void{ var _local1:Number; if (this.deathFrame > 0){ _local1 = (this.deathFrame / Option.survivorDeathFrameCount); this.sprite.setAlpha(_local1); this.sprite.update(); this.deathFrame--; } else { this.cleanup(); }; } override public function saveTruck(){ return ({parent:super.save(), waitCounter:this.waitCounter, goal:this.goal.save(), current:this.current.save(), path:Save.maybe(this.path, Path.saveS), pathIndex:this.pathIndex, route:Save.maybe(this.route, Route.saveS), retries:this.retries, isDead:this.isDead, deathFrame:this.deathFrame, sprite:this.sprite.save()}); } protected function continueMission():void{ var _local1:Point; var _local2:Point; var _local3:Boolean; if (this.path.isGenerating()){ this.wait(); } else { if (!this.isPathGood()){ this.retryMission(); } else { _local1 = this.path.getStep(this.pathIndex); _local2 = null; if (this.pathIndex < (this.path.getStepCount() - 1)){ _local2 = this.path.getStep((this.pathIndex + 1)).toPixel(); }; _local3 = this.move(_local1, _local2); if (_local3){ this.pathIndex++; }; }; }; } override public function load(_arg1):void{ var _local2:Point; var _local3:Tower; var _local4:Point; super.load(_arg1.parent); this.waitCounter = _arg1.waitCounter; this.goal = Mission.loadMission(_arg1.goal); this.current = Point.load(_arg1.current); this.pathIndex = _arg1.pathIndex; if (_arg1.route == null){ this.route = null; this.path = Load.maybe(_arg1.path, Path.load); } else { _local2 = Point.load(_arg1.route.source); _local3 = Game.map.getCell(_local2.x, _local2.y).getTower(); _local4 = Point.load(_arg1.route.dest); if (_local3 != null){ this.route = _local3.getRoute(_local4); if (this.route != null){ this.path = this.route.path; } else { this.path = Path.load(_arg1.path); }; }; }; if (this.path == null){ this.path = Game.pathPool.getPath(this.current, this.goal.getDest()); this.pathIndex = 0; }; this.retries = _arg1.retries; this.isDead = _arg1.isDead; this.deathFrame = _arg1.deathFrame; this.sprite = Sprite.load(_arg1.sprite); if (this.isDead){ Game.view.frameAdvance.add(this); } else { Game.map.getCell(this.current.x, this.current.y).loadAddTruck(this); }; } protected function displayPayload(_arg1:Resource):void{ this.sprite.changeAnimation(Animation.carry(_arg1)); } protected function isPanic():Boolean{ return (Lib.adjacentZombie(this.current)); } public function dropLoad():void{ if (this.goal != null){ this.goal.dropLoad(this.current.x, this.current.y); }; } public static function createSupplyTruck(_arg1:Point, _arg2:Point, _arg3:Resource, _arg4:int, _arg5:Route):Truck{ var _local6:Mission; _local6 = SupplyMission.create(_arg1, _arg2, _arg3, _arg4); if (_local6 != null){ return (new Truck(_local6, _arg5)); }; Lib.trace("New Supply Mission Failed"); return (null); } public static function createClosingTruck(_arg1:int, _arg2:Route, _arg3:Resource):Truck{ var _local4:int; var _local5:MapCell; var _local6:Mission; _local4 = Option.truckLoad; if (_arg3 == Resource.SURVIVORS){ _local4 = 1; }; _local5 = Game.map.getCell(_arg2.source.x, _arg2.source.y); _local6 = ReturnMission.create(_arg2.source, _arg2.dest, _arg3, _local4, _arg1); if (_local6 != null){ return (new Truck(_local6, _arg2)); }; return (null); } public static function createWorkshopUpgradeTruck(_arg1:Point, _arg2:Point):Truck{ var _local3:Mission; _local3 = UpgradeMission.create(_arg1, _arg2, Resource.BOARDS); if (_local3 != null){ return (new Truck(_local3, null)); }; Lib.trace("New Upgrade Workshop Mission Failed"); return (null); } public static function loadS(_arg1):Truck{ var _local2:Truck; _local2 = new Truck(null, null); _local2.load(_arg1); return (_local2); } public static function createBuildTruck(_arg1:Point, _arg2:Point, _arg3:int):Truck{ var _local4:Mission; _local4 = null; if (Tower.getBuildCost(_arg3) == 0){ _local4 = BuildMission.create(_arg1, _arg2, Resource.SURVIVORS, _arg3); } else { _local4 = BuildMission.create(_arg1, _arg2, Resource.BOARDS, _arg3); }; if (_local4 != null){ return (new Truck(_local4, null)); }; Lib.trace("New Build Mission Failed"); return (null); } public static function createUpgradeTruck(_arg1:Route):Truck{ var _local2:Mission; _local2 = UpgradeMission.create(_arg1.source, _arg1.dest, Resource.BOARDS); if (_local2 != null){ return (new Truck(_local2, _arg1)); }; Lib.trace("New Upgrade Mission Failed"); return (null); } public static function createFleeingTruck(_arg1:int, _arg2:Route):Truck{ var _local3:MapCell; var _local4:Mission; _local3 = Game.map.getCell(_arg2.source.x, _arg2.source.y); _local4 = ReturnMission.create(_arg2.source, _arg2.dest, Resource.SURVIVORS, 1, _arg1); if (_local4 != null){ return (new Truck(_local4, _arg2)); }; return (null); } } }//package
Section 550
//Type (Type) package { import flash.utils.*; import flash.*; public class Type { public static function getEnumConstructs(_arg1:Class):Array{ return (_arg1.__constructs__); } public static function getEnumName(_arg1:Class):String{ return (getClassName(_arg1)); } public static function getInstanceFields(_arg1:Class):Array{ return (describe(_arg1, true)); } public static function createEmptyInstance(_arg1:Class){ var i:*; var cl = _arg1; try { Boot.skip_constructor = true; i = new (cl); Boot.skip_constructor = false; return (i); } catch(e) { Boot.skip_constructor = false; throw (e); }; return (null); } public static function getClass(_arg1):Class{ var _local2:String; var _local3:*; _local2 = getQualifiedClassName(_arg1); if ((((((((((_local2 == "null")) || ((_local2 == "Object")))) || ((_local2 == "int")))) || ((_local2 == "Number")))) || ((_local2 == "Boolean")))){ return (null); }; if (_arg1.hasOwnProperty("prototype")){ return (null); }; _local3 = (getDefinitionByName(_local2) as Class); if (_local3.__isenum){ return (null); }; return (_local3); } protected static function describe(_arg1, _arg2:Boolean):Array{ var _local3:Array; var _local4:XML; var _local5:XMLList; var _local6:int; var _local7:int; var _local8:XMLList; var _local9:int; var _local10:int; var _local11:int; var _local12:int; _local3 = new Array(); _local4 = describeType(_arg1); if (_arg2){ _local4 = _local4.factory[0]; }; _local5 = _local4.child("method"); _local6 = 0; _local7 = _local5.length(); while (_local6 < _local7) { var _temp1 = _local6; _local6 = (_local6 + 1); _local11 = _temp1; _local3.push(Std.string(_local5[_local11].attribute("name"))); }; _local8 = _local4.child("variable"); _local9 = 0; _local10 = _local8.length(); while (_local9 < _local10) { var _temp2 = _local9; _local9 = (_local9 + 1); _local12 = _temp2; _local3.push(Std.string(_local8[_local12].attribute("name"))); }; return (_local3); } public static function resolveClass(_arg1:String):Class{ var cl:Class; var name = _arg1; try { cl = (getDefinitionByName(name) as Class); if (cl.__isenum){ return (null); }; return (cl); } catch(e) { switch (name){ case "Int": return (int); break; case "Float": return (Number); break; }; return (null); }; if ((((cl == null)) || ((cl.__name__ == null)))){ return (null); }; return (cl); } public static function resolveEnum(_arg1:String):Class{ var e:*; var name = _arg1; try { e = getDefinitionByName(name); if (!e.__isenum){ return (null); }; return (e); } catch(e1) { if (name == "Bool"){ return (Boolean); }; return (null); }; if ((((e == null)) || ((e.__ename__ == null)))){ return (null); }; return (e); } public static function _typeof(_arg1):ValueType{ var cname:String; var c:*; var v = _arg1; cname = getQualifiedClassName(v); switch (cname){ case "null": return (ValueType.TNull); case "void": return (ValueType.TNull); case "int": return (ValueType.TInt); case "Number": return (ValueType.TFloat); case "Boolean": return (ValueType.TBool); case "Object": return (ValueType.TObject); default: c = null; try { c = getDefinitionByName(cname); if (v.hasOwnProperty("prototype")){ return (ValueType.TObject); }; if (c.__isenum){ return (ValueType.TEnum(c)); }; return (ValueType.TClass(c)); } catch(e) { if ((((cname == "builtin.as$0::MethodClosure")) || (!((cname.indexOf("-") == -1))))){ return (ValueType.TFunction); }; return (((c == null)) ? ValueType.TFunction : ValueType.TClass(c)); }; break; }; return (null); } public static function createInstance(_arg1:Class, _arg2:Array){ var cl = _arg1; var args = _arg2; return (function (){ var $r:*; switch (args.length){ case 0: $r = new cl(); break; case 1: $r = new cl(args[0]); break; case 2: $r = new cl(args[0], args[1]); break; case 3: $r = new cl(args[0], args[1], args[2]); break; case 4: $r = new cl(args[0], args[1], args[2], args[3]); break; case 5: $r = new cl(args[0], args[1], args[2], args[3], args[4]); break; case 6: $r = new cl(args[0], args[1], args[2], args[3], args[4], args[5]); break; case 7: $r = new cl(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); break; case 8: $r = new cl(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]); break; case 9: $r = new cl(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8]); break; case 10: $r = new cl(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]); break; case 11: $r = new cl(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10]); break; case 12: $r = new cl(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11]); break; case 13: $r = new cl(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11], args[12]); break; case 14: $r = new cl(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11], args[12], args[13]); break; default: $r = function (){ var _local1:*; throw ("Too many arguments"); }(); break; }; return ($r); }()); } public static function enumParameters(_arg1):Array{ return (((_arg1.params == null)) ? [] : _arg1.params); } public static function getSuperClass(_arg1:Class):Class{ var _local2:String; _local2 = getQualifiedSuperclassName(_arg1); if (_local2 == "Object"){ return (null); }; return ((getDefinitionByName(_local2) as Class)); } public static function getClassName(_arg1:Class):String{ var _local2:String; if (_arg1 == null){ return (null); }; _local2 = getQualifiedClassName(_arg1); switch (_local2){ case "int": return ("Int"); case "Number": return ("Float"); case "Boolean": return ("Bool"); default: break; }; return (_local2.split("::").join(".")); } public static function createEnumIndex(_arg1:Class, _arg2:int, _arg3:Array=null){ var _local4:String; _local4 = getEnumConstructs(_arg1)[_arg2]; if (_local4 == null){ throw ((_arg2 + " is not a valid enum constructor index")); }; return (createEnum(_arg1, _local4, _arg3)); } public static function getEnum(_arg1):Class{ var _local2:String; var _local3:*; _local2 = getQualifiedClassName(_arg1); if ((((_local2 == "null")) || ((_local2.substr(0, 8) == "builtin.")))){ return (null); }; if (_arg1.hasOwnProperty("prototype")){ return (null); }; _local3 = (getDefinitionByName(_local2) as Class); if (!_local3.__isenum){ return (null); }; return (_local3); } public static function enumIndex(_arg1):int{ return (_arg1.index); } public static function enumConstructor(_arg1):String{ return (_arg1.tag); } public static function getClassFields(_arg1:Class):Array{ var _local2:Array; _local2 = describe(_arg1, false); _local2.remove("__construct__"); return (_local2); } public static function enumEq(_arg1, _arg2):Boolean{ var ap:Array; var bp:Array; var _g1:int; var _g:int; var i:int; var a = _arg1; var b = _arg2; if (a == b){ return (true); }; try { if (a.index != b.index){ return (false); }; ap = a.params; bp = b.params; _g1 = 0; _g = ap.length; while (_g1 < _g) { _g1 = (_g1 + 1); i = _g1; if (!enumEq(ap[i], bp[i])){ return (false); }; }; } catch(e) { return (false); }; return (true); } public static function createEnum(_arg1:Class, _arg2:String, _arg3:Array=null){ var _local4:*; _local4 = Reflect.field(_arg1, _arg2); if (_local4 == null){ throw (("No such constructor " + _arg2)); }; if (Reflect.isFunction(_local4)){ if (_arg3 == null){ throw ((("Constructor " + _arg2) + " need parameters")); }; return (Reflect.callMethod(_arg1, _local4, _arg3)); }; if (((!((_arg3 == null))) && (!((_arg3.length == 0))))){ throw ((("Constructor " + _arg2) + " does not need parameters")); }; return (_local4); } } }//package
Section 551
//Update (Update) package { import flash.*; public class Update { protected var supplierList:List; protected var newTowerList:List; protected var cellUpdates:List; protected var resourceChangeList:List; protected var customerList:List; protected var destroyedTowerList:List; protected var changeButtons:Boolean; protected var newSelect:Point; protected var statusCount:int; protected var selectIsChanging:Boolean; protected var hasProgress:Boolean; protected var rangeList:List; public function Update():void{ if (!Boot.skip_constructor){ this.statusCount = 0; this.changeButtons = false; this.cellUpdates = new List(); this.newTowerList = new List(); this.destroyedTowerList = new List(); this.resourceChangeList = new List(); this.supplierList = new List(); this.customerList = new List(); this.selectIsChanging = false; this.newSelect = null; this.hasProgress = false; this.rangeList = new List(); }; } public function supplyLine(_arg1:Point, _arg2:Point):void{ if (_arg1 != null){ this.supplierList.add(_arg1); }; if (_arg2 != null){ this.customerList.add(_arg2); }; } protected function commitProgress():void{ if (this.hasProgress){ this.changeStatus(); Game.view.totals.update(Game.progress.getAllResourceCounts()); }; } public function buttons():void{ this.changeButtons = true; } protected function commitStatus():void{ if (this.statusCount > 0){ Game.view.sideMenu.show(); }; } protected function commitChangeSelect():void{ var _local1:Point; var _local2:Tower; var _local3:Tower; if (this.selectIsChanging){ _local1 = Game.select.getSelected(); this.changeStatus(); this.buttons(); Game.select.changeSelect(this.newSelect); Game.view.mini.updateSupply(); if (_local1 != null){ this.cellState(_local1); _local2 = Game.map.getCell(_local1.x, _local1.y).getTower(); if (_local2 != null){ _local2.removeTradeTargets(); }; }; if (this.newSelect != null){ this.cellState(this.newSelect); _local3 = Game.map.getCell(this.newSelect.x, this.newSelect.y).getTower(); if (_local3 != null){ _local3.addTradeTargets(); }; }; Game.view.sideMenu.changeSelect(); }; } public function progress():void{ this.hasProgress = true; } public function destroyTower(_arg1:Point):void{ if (_arg1 != null){ this.destroyedTowerList.add(_arg1); }; } public function commit():void{ this.commitNewTowerList(); this.commitDestroyedTowerList(); this.commitRange(); this.commitChangeSelect(); this.commitCellUpdates(); this.commitResourceChangeList(); this.commitSupplierList(); this.commitCustomerList(); this.commitProgress(); this.commitStatus(); this.commitButtons(); this.clear(); } protected function commitResourceChangeList():void{ if (!this.resourceChangeList.isEmpty()){ this.changeStatus(); this.buttons(); }; } public function changeStatus():void{ this.statusCount++; } protected function commitDestroyedTowerList():void{ var _local1:Point; var _local2:*; var _local3:Point; _local1 = Game.select.getSelected(); _local2 = this.destroyedTowerList.iterator(); while (_local2.hasNext()) { _local3 = _local2.next(); this.cellState(_local3); if (((((this.selectIsChanging) && (Point.isEqual(_local3, this.newSelect)))) || (((!(this.selectIsChanging)) && (Point.isEqual(_local3, _local1)))))){ this.changeSelect(null); }; }; if (!this.destroyedTowerList.isEmpty()){ Game.view.window.updateRanges(); }; } protected function commitRange():void{ var _local1:Boolean; var _local2:*; var _local3:Point; if ((((this.rangeList.length > 0)) && (!(this.selectIsChanging)))){ _local1 = false; _local2 = this.rangeList.iterator(); while (_local2.hasNext()) { _local3 = _local2.next(); if (Point.isEqual(_local3, Game.select.getSelected())){ _local1 = true; break; }; }; if (_local1){ Game.select.update(); }; }; } public function newTower(_arg1:Point):void{ if (_arg1 != null){ this.newTowerList.add(_arg1); }; } protected function commitButtons():void{ if (this.changeButtons){ Game.view.sideMenu.show(); }; } public function changeSelect(_arg1:Point):void{ this.selectIsChanging = true; this.newSelect = _arg1; } public function clear():void{ this.statusCount = 0; this.changeButtons = false; this.cellUpdates.clear(); this.newTowerList.clear(); this.destroyedTowerList.clear(); this.resourceChangeList.clear(); this.supplierList.clear(); this.customerList.clear(); this.selectIsChanging = false; this.newSelect = null; this.hasProgress = false; this.rangeList.clear(); } public function cellState(_arg1:Point):void{ if (_arg1 != null){ this.cellUpdates.add(_arg1); }; } protected function commitCellUpdates():void{ var _local1:*; var _local2:Point; _local1 = this.cellUpdates.iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); Game.view.mini.updateCell(_local2.x, _local2.y); }; } protected function commitNewTowerList():void{ var _local1:Point; var _local2:*; var _local3:Point; _local1 = Game.select.getSelected(); _local2 = this.newTowerList.iterator(); while (_local2.hasNext()) { _local3 = _local2.next(); this.cellState(_local3); if (((((this.selectIsChanging) && (Point.isEqual(_local3, this.newSelect)))) || (((!(this.selectIsChanging)) && (Point.isEqual(_local3, _local1)))))){ this.changeSelect(_local3); }; }; if (!this.newTowerList.isEmpty()){ Game.view.window.updateRanges(); }; } protected function commitSupplierList():void{ } public function resourceChange(_arg1:Point):void{ if (_arg1 != null){ this.resourceChangeList.add(_arg1); }; } public function changeRange(_arg1:Point):void{ this.rangeList.add(_arg1); } protected function commitCustomerList():void{ var _local1:Point; var _local2:Tower; this.clearTargets(this.supplierList); this.clearTargets(this.customerList); _local1 = Game.select.getSelected(); if (((!((_local1 == null))) && (((!(this.supplierList.isEmpty())) || (!(this.customerList.isEmpty())))))){ _local2 = Game.map.getCell(_local1.x, _local1.y).getTower(); if (_local2 != null){ _local2.removeTradeTargets(); _local2.addTradeTargets(); Game.view.mini.updateSupply(); }; }; } protected function clearTargets(_arg1:List):void{ var _local2:*; var _local3:Point; var _local4:Tower; _local2 = _arg1.iterator(); while (_local2.hasNext()) { _local3 = _local2.next(); _local4 = Game.map.getCell(_local3.x, _local3.y).getTower(); if (_local4 != null){ _local4.removeTarget(); }; }; } public function undoStatus():void{ this.statusCount--; } } }//package
Section 552
//ValueType (ValueType) package { public class ValueType extends enum { public static const __isenum:Boolean = true; public static var __constructs__:Array = ["TNull", "TInt", "TFloat", "TBool", "TObject", "TFunction", "TClass", "TEnum", "TUnknown"]; public static var TFloat:ValueType = new ValueType("TFloat", 2); ; public static var TNull:ValueType = new ValueType("TNull", 0); ; public static var TFunction:ValueType = new ValueType("TFunction", 5); ; public static var TUnknown:ValueType = new ValueType("TUnknown", 8); ; public static var TObject:ValueType = new ValueType("TObject", 4); ; public static var TInt:ValueType = new ValueType("TInt", 1); ; public static var TBool:ValueType = new ValueType("TBool", 3); ; public function ValueType(_arg1:String, _arg2:int, _arg3:Array=null):void{ this.tag = _arg1; this.index = _arg2; this.params = _arg3; } public static function TClass(_arg1:Class):ValueType{ return (new ValueType("TClass", 6, [_arg1])); } public static function TEnum(_arg1:Class):ValueType{ return (new ValueType("TEnum", 7, [_arg1])); } } }//package
Section 553
//Workshop (Workshop) package { import ui.*; import action.*; import flash.*; public class Workshop extends Tower { public function Workshop(_arg1:int=0, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.type = Tower.WORKSHOP; super(new Point(_arg1, _arg2), Option.workshopLevelLimit, Option.workshopSpeed, Option.workshopCost); this.addReserve(Lib.survivorLoad); }; } override public function giveResource(_arg1:ResourceCount):void{ super.giveResource(_arg1); this.normalizeLevel(); } override public function normalizeLevel():void{ super.normalizeLevel(); this.speed = (this.stuff.count(Resource.SURVIVORS) * Option.workshopSpeedFactor); } override public function saveTower(){ return ({parent:super.saveTowerGeneric()}); } override public function takeResource(_arg1:ResourceCount):void{ super.takeResource(_arg1); this.normalizeLevel(); } override public function getType():int{ return (Tower.WORKSHOP); } override public function step(_arg1:int):void{ var _local2:MapCell; var _local3:Resource; var _local4:int; var _local5:Boolean; this.wait(); _local2 = Game.map.getCell(this.mapPos.x, this.mapPos.y); this.sendToDepot(_local2.hasRubble()); if (this.countResource(Resource.SURVIVORS) > 0){ _local3 = _local2.getRubble(null); if (_local3 != null){ if (_local3 == Resource.SURVIVORS){ _local4 = Lib.rand(Animation.carryAmmo.getTypeCount()); this.giveSurvivor(_local4); } else { this.giveResource(new ResourceCount(_local3, 1)); }; Game.map.noise(this.mapPos.x, this.mapPos.y, Option.towerNoise, this.zombieGuide); } else { if (_local2.feature != null){ _local5 = _local2.feature.doWork(); Game.update.changeStatus(); if (_local5){ Game.map.noise(this.mapPos.x, this.mapPos.y, Option.explosionNoise, this.zombieGuide); } else { Game.map.noise(this.mapPos.x, this.mapPos.y, Option.towerNoise, this.zombieGuide); }; }; }; if (((((((((!(_local2.hasRubble())) && ((_local2.feature == null)))) && ((this.countResource(Resource.AMMO) == 0)))) && ((this.countResource(Resource.BOARDS) == 0)))) && ((this.countResource(Resource.FOOD) == 0)))){ Game.view.window.refresh(); if (_local2.getBuilding() != null){ _local2.getBuilding().refreshMinimap(); }; Game.actions.push(new CloseTower(this.mapPos.x, this.mapPos.y)); }; }; } override public function load(_arg1):void{ super.load(_arg1.parent); } } }//package
Section 554
//WorkshopScreen (WorkshopScreen) package { import flash.display.*; public dynamic class WorkshopScreen extends MovieClip { } }//package
Section 555
//Zombie (Zombie) package { import logic.*; import ui.*; import mapgen.*; import flash.*; public class Zombie extends Actor implements AbstractFrame { protected var isAttacking:Boolean; protected var guide:PathFinder; protected var dest:Point; protected var isDead:Boolean; protected var spawnFrame:int; protected var type:int; protected var inWave:Boolean; protected var sprite:Sprite; protected var deathFrame:int; protected var lastPos:Point; protected var destLoudness:int; protected var current:Point; protected var headShot:Sprite; public static var BUILDING_SPAWN:int = 1; public static var ATTACK_SPAWN:int = 3; public static var WAVE_SPAWN:int = 2; public static var START_SPAWN:int = 0; public function Zombie(_arg1:int=0, _arg2:int=0, _arg3=null, _arg4:int=0, _arg5:int=0, _arg6:int=0, _arg7=null):void{ var _local8:int; var _local9:int; var _local10:Animation; var _local11:int; if (!Boot.skip_constructor){ _local8 = (Game.settings.getZombieSpeed() + Util.rand(Option.zombieSpeedRange)); super(_local8); if ((((_arg7 == null)) || ((_arg7 == false)))){ _local9 = Lib.directionToAngle(Util.randDirection()); if (_arg3 != null){ _local9 = _arg3; }; this.isDead = false; this.current = new Point(_arg1, _arg2); this.dest = new Point(_arg4, _arg5); this.destLoudness = 0; this.isAttacking = false; _local10 = Animation.zombieShamble; if (Game.settings.getEasterEgg() != GameSettings.EASTLOSANGELES){ _local11 = (_local10.getTypeCount() - 1); this.type = Util.rand(_local11); } else { this.type = (_local10.getTypeCount() - 1); }; this.sprite = new Sprite(this.current.toPixel(), _local9, this.type, _local10); this.sprite.setRotationOffset(90); this.headShot = null; this.inWave = false; this.guide = null; this.lastPos = this.current.clone(); this.deathFrame = Animation.zombieDeathWait; if (_arg6 == START_SPAWN){ this.spawnFrame = -1; Game.map.getCell(this.current.x, this.current.y).addZombie(this); this.sprite.setAlpha(1); this.sprite.update(); } else { this.sprite.setAlpha(0); this.spawnFrame = Option.spawnFrameCount; }; if (_arg6 != BUILDING_SPAWN){ Game.progress.addZombies(1); }; }; }; } override public function saveZombie(){ var _local1:PathFinder; _local1 = null; if (Game.map.getCell(this.dest.x, this.dest.y).getTower() == null){ _local1 = this.guide; }; return ({parent:super.save(), sprite:this.sprite.save(), headShot:Save.maybe(this.headShot, Sprite.saveS), type:this.type, isDead:this.isDead, current:this.current.save(), dest:this.dest.save(), destLoudness:this.destLoudness, isAttacking:this.isAttacking, inWave:this.inWave, guide:Save.maybe(_local1, PathFinder.saveS), lastPos:this.lastPos.save(), deathFrame:this.deathFrame, spawnFrame:this.spawnFrame}); } public function isInWave():Boolean{ return (this.inWave); } public function isVulnerable():Boolean{ return (this.isAttacking); } public function addToWave():void{ if (!this.inWave){ this.inWave = true; Game.spawner.addToWave(); }; } public function getDest():Point{ return (this.dest); } override public function cleanup():void{ super.cleanup(); this.sprite.cleanup(); if (this.headShot != null){ this.headShot.cleanup(); }; if (this.isDead){ Game.view.frameAdvance.remove(this); }; } protected function plan():void{ var _local1:Direction; var _local2:int; if (this.isAttacking){ this.isAttacking = false; this.wait(); } else { _local1 = Game.map.getCell(this.current.x, this.current.y).getScent(); if (((Point.isEqual(this.current, this.dest)) && (!((_local1 == null))))){ _local2 = Lib.directionToIndex(_local1); this.dest = new Point((this.current.x + Lib.dirDeltas[_local2].x), (this.current.y + Lib.dirDeltas[_local2].y)); this.destLoudness = 0; this.guide = null; }; if (Point.isEqual(this.current, this.dest)){ this.wait(); this.destLoudness = 0; this.guide = null; this.removeFromWave(); } else { this.moveToNext(); }; }; } override public function dance(_arg1:Boolean):void{ if (((((!(this.isAttacking)) && (!(this.isDead)))) && ((this.spawnFrame <= 0)))){ this.sprite.dance(_arg1); }; } public function removeFromMap():void{ var _local1:MapCell; var _local2:Point; var _local3:int; if (!this.isDead){ _local1 = Game.map.getCell(this.current.x, this.current.y); _local1.removeZombie(this); this.removeFromWave(); Game.progress.removeZombies(1); this.isDead = true; _local2 = new Point((this.current.x + 1), (this.current.y + 1)); Main.replay.addBox(this.current, _local2, Option.zombieMiniColor); if (_local1.getBuilding() != null){ _local3 = _local1.getBuilding().getZombieCount(); Main.replay.addBox(this.current, _local2, Lib.zombieColor(_local3)); } else { Main.replay.addBox(this.current, _local2, Option.roadMiniColor); }; }; } protected function moveToNext():void{ var _local1:Point; var _local2:MapCell; var _local3:Point; _local1 = this.getNext(); if (_local1 == null){ this.wait(); } else { _local2 = Game.map.getCell(_local1.x, _local1.y); if (_local2.hasTower()){ this.isAttacking = true; this.sprite.changeAnimation(Animation.attackTower); this.sprite.travelSimple(this.current.toPixel(), _local1.toPixel()); _local2.attackTower(); } else { if (_local2.hasTrucks()){ this.isAttacking = true; _local3 = _local2.attackSurvivor(); this.sprite.changeAnimation(Animation.attackSurvivor); this.sprite.travelSimple(this.sprite.getPos(), _local3); } else { this.sprite.changeAnimation(Animation.zombieShamble); this.sprite.travelSimple(_local1.toPixel()); Game.map.getCell(this.current.x, this.current.y).removeZombie(this); _local2.addZombie(this); this.lastPos = this.current; this.current = _local1; }; }; }; } public function setPixel(_arg1:Point):void{ this.sprite.setPos(_arg1); } protected function getForwardPos(_arg1:Point, _arg2:Point):Point{ var _local3:Point; _local3 = null; if (_arg1.x > _arg2.x){ _local3 = new Point((_arg1.x + 1), _arg1.y); } else { if (_arg1.x < _arg2.x){ _local3 = new Point((_arg1.x - 1), _arg1.y); } else { if (_arg1.y > _arg2.y){ _local3 = new Point(_arg1.x, (_arg1.y + 1)); } else { if (_arg1.y < _arg2.y){ _local3 = new Point(_arg1.x, (_arg1.y - 1)); }; }; }; }; return (_local3); } override public function step(_arg1:int):void{ var _local2:Number; var _local3:int; if (this.spawnFrame == 0){ Game.map.getCell(this.current.x, this.current.y).addZombie(this); this.sprite.setAlpha(1); this.sprite.update(); this.spawnFrame--; } else { if (this.spawnFrame > 0){ _local2 = (1 - (this.spawnFrame / Option.spawnFrameCount)); this.sprite.setAlpha(_local2); this.sprite.update(); this.spawnFrame--; } else { if (!this.isDead){ _local3 = this.sprite.step(_arg1); if (_local3 < _arg1){ this.plan(); }; }; }; }; } public function getPixel():Point{ return (this.sprite.getPos()); } public function makeNoise(_arg1:Point, _arg2:int, _arg3:PathFinder):void{ if (((((Point.isEqual(this.current, this.dest)) || ((_arg2 > this.destLoudness)))) || ((this.destLoudness == 0)))){ this.dest = _arg1.clone(); this.destLoudness = _arg2; this.guide = _arg3; }; } public function kill(_arg1:Point):void{ var _local2:int; if (!this.isDead){ this.removeFromMap(); this.sprite.changeAnimation(Animation.zombieDeath); Game.view.frameAdvance.add(this); _local2 = (Lib.getAngle(this.getPixel(), _arg1.toPixel()) - 90); this.headShot = new Sprite(this.getPixel(), _local2, 0, Animation.headShot); }; } public function fixedStep():void{ var _local1:int; var _local2:int; var _local3:Number; _local1 = this.sprite.step(1); _local2 = this.headShot.step(1); if (this.deathFrame == 0){ Main.sound.play(SoundPlayer.ZOMBIE_DEATH); }; if (this.deathFrame < 0){ _local3 = (1 + (this.deathFrame * 0.01)); this.sprite.setAlpha(_local3); this.sprite.update(); }; this.deathFrame--; if (this.deathFrame < -100){ this.cleanup(); }; } override public function load(_arg1):void{ var _local2:Tower; super.load(_arg1.parent); this.sprite = Sprite.load(_arg1.sprite); this.headShot = Load.maybe(_arg1.headShot, Sprite.load); this.type = _arg1.type; this.isDead = _arg1.isDead; this.current = Point.load(_arg1.current); this.dest = Point.load(_arg1.dest); this.destLoudness = _arg1.destLoudness; this.isAttacking = _arg1.isAttacking; this.inWave = _arg1.inWave; _local2 = Game.map.getCell(this.dest.x, this.dest.y).getTower(); if (_local2 == null){ this.guide = Load.maybe(_arg1.guide, PathFinder.load); } else { this.guide = _local2.getZombieGuide(); }; this.lastPos = Point.load(_arg1.lastPos); this.deathFrame = _arg1.deathFrame; this.spawnFrame = _arg1.spawnFrame; if (this.isDead){ Game.view.frameAdvance.add(this); } else { if (this.spawnFrame < 0){ Game.map.getCell(this.current.x, this.current.y).loadAddZombie(this); }; }; } protected function getNext():Point{ var _local1:Point; var _local2:Point; var _local3:Direction; _local1 = null; if (this.guide != null){ _local2 = null; _local3 = Game.map.getCell(this.current.x, this.current.y).getScent(); if (_local3 != null){ _local2 = this.current.clone(); _local2.plusEquals(Lib.dirDeltas[Lib.directionToIndex(_local3)]); } else { _local2 = this.getForwardPos(this.current, this.lastPos); }; _local1 = this.guide.getParent(this.current, _local2); } else { if (Point.isAdjacent(this.current, this.dest)){ _local1 = this.dest; }; }; return (_local1); } protected function removeFromWave():void{ if (this.inWave){ this.inWave = false; Game.spawner.removeFromWave(); }; } public static function loadS(_arg1):Zombie{ var _local2:Zombie; _local2 = new Zombie(_arg1.current.x, _arg1.current.y, 0, _arg1.dest.x, _arg1.dest.y, 0, true); _local2.load(_arg1); return (_local2); } } }//package
Section 556
//zombie_headshot (zombie_headshot) package { import flash.display.*; public dynamic class zombie_headshot extends MovieClip { } }//package
Section 557
//ZombieBash1Sound (ZombieBash1Sound) package { import flash.net.*; import flash.media.*; import flash.*; public class ZombieBash1Sound extends Sound { public function ZombieBash1Sound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 558
//ZombieBash2Sound (ZombieBash2Sound) package { import flash.net.*; import flash.media.*; import flash.*; public class ZombieBash2Sound extends Sound { public function ZombieBash2Sound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 559
//ZombieBash3Sound (ZombieBash3Sound) package { import flash.net.*; import flash.media.*; import flash.*; public class ZombieBash3Sound extends Sound { public function ZombieBash3Sound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 560
//ZombieBash4Sound (ZombieBash4Sound) package { import flash.net.*; import flash.media.*; import flash.*; public class ZombieBash4Sound extends Sound { public function ZombieBash4Sound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 561
//ZombieBash5Sound (ZombieBash5Sound) package { import flash.net.*; import flash.media.*; import flash.*; public class ZombieBash5Sound extends Sound { public function ZombieBash5Sound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 562
//ZombieBash6Sound (ZombieBash6Sound) package { import flash.net.*; import flash.media.*; import flash.*; public class ZombieBash6Sound extends Sound { public function ZombieBash6Sound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 563
//zombieCycle_attack_1 (zombieCycle_attack_1) package { import flash.display.*; public dynamic class zombieCycle_attack_1 extends MovieClip { } }//package
Section 564
//zombieCycle_attack_10 (zombieCycle_attack_10) package { import flash.display.*; public dynamic class zombieCycle_attack_10 extends MovieClip { } }//package
Section 565
//zombieCycle_attack_11 (zombieCycle_attack_11) package { import flash.display.*; public dynamic class zombieCycle_attack_11 extends MovieClip { } }//package
Section 566
//zombieCycle_attack_12 (zombieCycle_attack_12) package { import flash.display.*; public dynamic class zombieCycle_attack_12 extends MovieClip { } }//package
Section 567
//zombieCycle_attack_2 (zombieCycle_attack_2) package { import flash.display.*; public dynamic class zombieCycle_attack_2 extends MovieClip { } }//package
Section 568
//zombieCycle_attack_3 (zombieCycle_attack_3) package { import flash.display.*; public dynamic class zombieCycle_attack_3 extends MovieClip { } }//package
Section 569
//zombieCycle_attack_4 (zombieCycle_attack_4) package { import flash.display.*; public dynamic class zombieCycle_attack_4 extends MovieClip { } }//package
Section 570
//zombieCycle_attack_5 (zombieCycle_attack_5) package { import flash.display.*; public dynamic class zombieCycle_attack_5 extends MovieClip { } }//package
Section 571
//zombieCycle_attack_6 (zombieCycle_attack_6) package { import flash.display.*; public dynamic class zombieCycle_attack_6 extends MovieClip { } }//package
Section 572
//zombieCycle_attack_7 (zombieCycle_attack_7) package { import flash.display.*; public dynamic class zombieCycle_attack_7 extends MovieClip { } }//package
Section 573
//zombieCycle_attack_8 (zombieCycle_attack_8) package { import flash.display.*; public dynamic class zombieCycle_attack_8 extends MovieClip { } }//package
Section 574
//zombieCycle_attack_9 (zombieCycle_attack_9) package { import flash.display.*; public dynamic class zombieCycle_attack_9 extends MovieClip { } }//package
Section 575
//zombieCycle_death_1 (zombieCycle_death_1) package { import flash.display.*; public dynamic class zombieCycle_death_1 extends MovieClip { } }//package
Section 576
//zombieCycle_death_10 (zombieCycle_death_10) package { import flash.display.*; public dynamic class zombieCycle_death_10 extends MovieClip { } }//package
Section 577
//zombieCycle_death_11 (zombieCycle_death_11) package { import flash.display.*; public dynamic class zombieCycle_death_11 extends MovieClip { } }//package
Section 578
//zombieCycle_death_12 (zombieCycle_death_12) package { import flash.display.*; public dynamic class zombieCycle_death_12 extends MovieClip { } }//package
Section 579
//zombieCycle_death_2 (zombieCycle_death_2) package { import flash.display.*; public dynamic class zombieCycle_death_2 extends MovieClip { } }//package
Section 580
//zombieCycle_death_3 (zombieCycle_death_3) package { import flash.display.*; public dynamic class zombieCycle_death_3 extends MovieClip { } }//package
Section 581
//zombieCycle_death_4 (zombieCycle_death_4) package { import flash.display.*; public dynamic class zombieCycle_death_4 extends MovieClip { } }//package
Section 582
//zombieCycle_death_5 (zombieCycle_death_5) package { import flash.display.*; public dynamic class zombieCycle_death_5 extends MovieClip { } }//package
Section 583
//zombieCycle_death_6 (zombieCycle_death_6) package { import flash.display.*; public dynamic class zombieCycle_death_6 extends MovieClip { } }//package
Section 584
//zombieCycle_death_7 (zombieCycle_death_7) package { import flash.display.*; public dynamic class zombieCycle_death_7 extends MovieClip { } }//package
Section 585
//zombieCycle_death_8 (zombieCycle_death_8) package { import flash.display.*; public dynamic class zombieCycle_death_8 extends MovieClip { } }//package
Section 586
//zombieCycle_death_9 (zombieCycle_death_9) package { import flash.display.*; public dynamic class zombieCycle_death_9 extends MovieClip { } }//package
Section 587
//zombieCycle_shamble_1 (zombieCycle_shamble_1) package { import flash.display.*; public dynamic class zombieCycle_shamble_1 extends MovieClip { } }//package
Section 588
//zombieCycle_shamble_10 (zombieCycle_shamble_10) package { import flash.display.*; public dynamic class zombieCycle_shamble_10 extends MovieClip { } }//package
Section 589
//zombieCycle_shamble_11 (zombieCycle_shamble_11) package { import flash.display.*; public dynamic class zombieCycle_shamble_11 extends MovieClip { } }//package
Section 590
//zombieCycle_shamble_12 (zombieCycle_shamble_12) package { import flash.display.*; public dynamic class zombieCycle_shamble_12 extends MovieClip { } }//package
Section 591
//zombieCycle_shamble_2 (zombieCycle_shamble_2) package { import flash.display.*; public dynamic class zombieCycle_shamble_2 extends MovieClip { } }//package
Section 592
//zombieCycle_shamble_3 (zombieCycle_shamble_3) package { import flash.display.*; public dynamic class zombieCycle_shamble_3 extends MovieClip { } }//package
Section 593
//zombieCycle_shamble_4 (zombieCycle_shamble_4) package { import flash.display.*; public dynamic class zombieCycle_shamble_4 extends MovieClip { } }//package
Section 594
//zombieCycle_shamble_5 (zombieCycle_shamble_5) package { import flash.display.*; public dynamic class zombieCycle_shamble_5 extends MovieClip { } }//package
Section 595
//zombieCycle_shamble_6 (zombieCycle_shamble_6) package { import flash.display.*; public dynamic class zombieCycle_shamble_6 extends MovieClip { } }//package
Section 596
//zombieCycle_shamble_7 (zombieCycle_shamble_7) package { import flash.display.*; public dynamic class zombieCycle_shamble_7 extends MovieClip { } }//package
Section 597
//zombieCycle_shamble_8 (zombieCycle_shamble_8) package { import flash.display.*; public dynamic class zombieCycle_shamble_8 extends MovieClip { } }//package
Section 598
//zombieCycle_shamble_9 (zombieCycle_shamble_9) package { import flash.display.*; public dynamic class zombieCycle_shamble_9 extends MovieClip { } }//package
Section 599
//ZombieDeathSound (ZombieDeathSound) package { import flash.net.*; import flash.media.*; import flash.*; public class ZombieDeathSound extends Sound { public function ZombieDeathSound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 600
//ZombieMoan1Sound (ZombieMoan1Sound) package { import flash.net.*; import flash.media.*; import flash.*; public class ZombieMoan1Sound extends Sound { public function ZombieMoan1Sound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 601
//ZombieMoan2Sound (ZombieMoan2Sound) package { import flash.net.*; import flash.media.*; import flash.*; public class ZombieMoan2Sound extends Sound { public function ZombieMoan2Sound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 602
//ZombieMoan3Sound (ZombieMoan3Sound) package { import flash.net.*; import flash.media.*; import flash.*; public class ZombieMoan3Sound extends Sound { public function ZombieMoan3Sound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 603
//ZombieMoan4Sound (ZombieMoan4Sound) package { import flash.net.*; import flash.media.*; import flash.*; public class ZombieMoan4Sound extends Sound { public function ZombieMoan4Sound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 604
//ZombieMoanCrowdSound (ZombieMoanCrowdSound) package { import flash.net.*; import flash.media.*; import flash.*; public class ZombieMoanCrowdSound extends Sound { public function ZombieMoanCrowdSound(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package
Section 605
//ZombieSpawner (ZombieSpawner) package { import flash.display.*; import logic.*; import ui.*; import mapgen.*; import flash.*; public class ZombieSpawner { protected var isCounting:Boolean; protected var wandering:int; protected var extraZombies:int; protected var hordeCount:int; protected var currentWaveCount:int; protected var settings:GameSettings; public function ZombieSpawner(_arg1:DisplayObjectContainer=null, _arg2:GameSettings=null):void{ if (!Boot.skip_constructor){ this.extraZombies = 0; this.hordeCount = 0; this.wandering = 0; this.currentWaveCount = 0; this.isCounting = false; this.settings = _arg2; }; } public function getFramesLeft():int{ return (this.wandering); } protected function spawnZombie(_arg1:int, _arg2:Bridge, _arg3:Point):void{ var _local4:Point; var _local5:PathFinder; var _local6:Zombie; var _local7:int; var _local8:Building; var _local9:Point; var _local10:Point; var _local11:Direction; _local4 = Game.progress.getRandomDepot(); _local5 = Game.map.getCell(_local4.x, _local4.y).getTower().getZombieGuide(); _local6 = null; if (_arg3 != null){ this.spawnSingleZombie(_arg3, _local4, _local5, Lib.randDirection()); } else { if (_arg1 == 0){ _local7 = Lib.rand(2); if (_local7 == 0){ _local8 = Game.tracker.getBuilding(); if (_local8 != null){ _local8.spawn(_local4, _local5); }; } else { _local9 = Game.tracker.getCell(); if (_local9 != null){ Game.map.getCell(_local9.x, _local9.y).spawn(_local4, _local5); }; }; } else { if (_arg2 != null){ _local10 = _arg2.spawnPos(); _local11 = _arg2.spawnDir(); this.spawnSingleZombie(_local10, _local4, _local5, _local11); }; }; }; } public function startHorde(_arg1=null, _arg2:Point=null):void{ var _local3:int; var _local4:int; var _local5:Bridge; var _local6:int; var _local7:int; var _local8:int; Game.script.trigger(Script.ZOMBIE_HORDE_BEGIN); _local3 = this.getNextWaveSize(); if (_arg1 != null){ _local3 = _arg1; }; _local4 = Lib.rand((1 + Game.progress.getBridgeCount())); if ((((Game.progress.getZombieCount() == 0)) || (!((_arg1 == null))))){ _local4 = (Lib.rand(Game.progress.getBridgeCount()) + 1); }; if (this.settings.getEasterEgg() != GameSettings.FIDDLERSGREEN){ _local5 = Game.progress.getRandomBridge(); this.extraZombies = Math.floor((this.extraZombies / 2)); _local6 = 0; _local7 = Math.floor(_local3); while (_local6 < _local7) { var _temp1 = _local6; _local6 = (_local6 + 1); _local8 = _temp1; this.spawnZombie(_local4, _local5, _arg2); }; } else { this.spawnZombiesFromWater(_local3); }; if (_arg1 == null){ this.hordeCount++; }; Main.sound.play(SoundPlayer.ZOMBIE_CROWD_MOAN); Main.music.changeMusic(MusicPlayer.randomWave(), true); } public function step():void{ if (((((this.isCounting) && ((this.currentWaveCount == 0)))) && (!(Game.pause.isPaused())))){ this.wandering--; if (this.wandering <= 0){ this.wandering = 0; this.isCounting = false; Game.script.trigger(Script.COUNTDOWN_COMPLETE); }; }; } public function reduceZombies():void{ this.hordeCount = Math.floor((this.hordeCount / 2)); } public function addToWave():void{ this.currentWaveCount = (this.currentWaveCount + 1); } public function startCountDown(_arg1=null):void{ if ((((_arg1 == null)) || ((_arg1 <= 0)))){ this.isCounting = false; } else { this.isCounting = true; this.wandering = (_arg1 * Option.fps); }; } protected function spawnZombiesFromWater(_arg1:int):void{ var _local2:Direction; var _local3:Section; var _local4:Point; var _local5:int; var _local6:int; var _local7:Point; var _local8:PathFinder; var _local9:Point; _local2 = Lib.randDirection(); _local3 = Game.map.getCityLot().slice(_local2, 1); _local4 = _local3.getSize(); _local5 = 0; while (_local5 < _arg1) { var _temp1 = _local5; _local5 = (_local5 + 1); _local6 = _temp1; _local7 = Game.progress.getRandomDepot(); _local8 = Game.map.getCell(_local7.x, _local7.y).getTower().getZombieGuide(); _local9 = new Point((Lib.rand(_local4.x) + _local3.offset.x), (Lib.rand(_local4.y) + _local3.offset.y)); this.spawnSingleZombie(_local9, _local7, _local8, Util.opposite(_local2)); }; } public function getWaveCount():int{ return (this.currentWaveCount); } public function cleanup():void{ } public function load(_arg1):void{ this.extraZombies = _arg1.extraZombies; this.hordeCount = _arg1.hordeCount; this.wandering = _arg1.wandering; this.currentWaveCount = _arg1.currentWaveCount; this.isCounting = _arg1.isCounting; } public function removeFromWave():void{ this.currentWaveCount = (this.currentWaveCount - 1); if (this.currentWaveCount == 0){ Main.music.changeMusic(MusicPlayer.WAVE_END, false); Game.script.trigger(Script.ZOMBIE_HORDE_END); }; } protected function spawnSingleZombie(_arg1:Point, _arg2:Point, _arg3:PathFinder, _arg4:Direction):void{ var _local5:Zombie; _local5 = new Zombie(_arg1.x, _arg1.y, Lib.directionToAngle(_arg4), _arg2.x, _arg2.y, Zombie.WAVE_SPAWN); _local5.makeNoise(_arg2, 0, _arg3); _local5.addToWave(); } public function getNextWaveSize():int{ var _local1:int; var _local2:int; _local1 = (Game.progress.getBridgeCount() + 1); if ((((this.settings.getEasterEgg() == GameSettings.RACCOONCITY)) || ((this.settings.getEasterEgg() == GameSettings.FIDDLERSGREEN)))){ _local1 = this.settings.getBridgeCount(); }; _local2 = ((Option.wanderingZombieIncrement * this.hordeCount) * _local1); return ((Option.wanderingZombieBase + _local2)); } public function addZombie():void{ this.extraZombies++; } public function getIsCounting():Boolean{ return (this.isCounting); } public function save(){ return ({extraZombies:this.extraZombies, hordeCount:this.hordeCount, wandering:this.wandering, currentWaveCount:this.currentWaveCount, isCounting:this.isCounting}); } } }//package
Section 606
//ZombieTracker (ZombieTracker) package { import flash.*; public class ZombieTracker { protected var cellList:Array; protected var buildingList:Array; protected var cellToIndex:IntHash; public function ZombieTracker():void{ if (!Boot.skip_constructor){ this.cellList = []; this.cellToIndex = new IntHash(); this.buildingList = []; }; } protected function saveEntrances():Array{ var _local1:Array; var _local2:int; var _local3:Array; var _local4:Building; _local1 = new Array(); _local2 = 0; _local3 = this.buildingList; while (_local2 < _local3.length) { _local4 = _local3[_local2]; _local2++; _local1.push(_local4.getEntrance().save()); }; return (_local1); } public function addCell(_arg1:Point):void{ var _local2:int; var _local3:int; _local2 = (_arg1.x + (_arg1.y * Game.map.sizeX())); if (!this.cellToIndex.exists(_local2)){ this.cellList.push(_local2); this.cellToIndex.set(_local2, (this.cellList.length - 1)); _local3 = Lib.rand(this.cellList.length); this.swapCell((this.cellList.length - 1), _local3); }; } public function cleanup():void{ } public function removeCell(_arg1:Point):void{ var _local2:int; var _local3:*; _local2 = (_arg1.x + (_arg1.y * Game.map.sizeX())); if (this.cellToIndex.exists(_local2)){ _local3 = this.cellToIndex.get(_local2); this.swapCell((this.cellList.length - 1), _local3); this.cellToIndex.remove(_local2); this.cellList.pop(); }; } protected function swapBuilding(_arg1:int, _arg2:int):void{ var _local3:Building; _local3 = this.buildingList[_arg1]; this.buildingList[_arg1] = this.buildingList[_arg2]; this.buildingList[_arg2] = _local3; } public function getBuilding():Building{ var _local1:Building; var _local2:Building; var _local3:int; _local1 = null; while ((((_local1 == null)) && ((this.buildingList.length > 0)))) { _local2 = this.buildingList[(this.buildingList.length - 1)]; if (_local2.hasZombies()){ _local1 = this.buildingList[(this.buildingList.length - 1)]; _local3 = Lib.rand(this.buildingList.length); this.swapBuilding((this.buildingList.length - 1), _local3); } else { this.buildingList.pop(); }; }; return (_local1); } public function load(_arg1):void{ var _local2:int; var _local3:*; var _local4:int; var _local5:*; var _local6:int; var _local7:int; var _local8:Point; var _local9:Building; this.cellList = []; this.cellToIndex = new IntHash(); this.buildingList = []; _local2 = 0; _local3 = _arg1.cellList.length; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local6 = _temp1; this.cellList.push(_arg1.cellList[_local6]); this.cellToIndex.set(_arg1.cellList[_local6], _local6); }; _local4 = 0; _local5 = _arg1.entrances.length; while (_local4 < _local5) { var _temp2 = _local4; _local4 = (_local4 + 1); _local7 = _temp2; _local8 = Point.load(_arg1.entrances[_local7]); _local9 = Game.map.getCell(_local8.x, _local8.y).getBuilding(); this.buildingList.push(_local9); }; } protected function swapCell(_arg1:int, _arg2:int):void{ var _local3:int; this.cellToIndex.set(this.cellList[_arg1], _arg2); this.cellToIndex.set(this.cellList[_arg2], _arg1); _local3 = this.cellList[_arg1]; this.cellList[_arg1] = this.cellList[_arg2]; this.cellList[_arg2] = _local3; } public function getCell():Point{ var _local1:Point; var _local2:int; var _local3:int; _local1 = null; if (this.cellList.length > 0){ _local2 = this.cellList[(this.cellList.length - 1)]; _local1 = new Point((_local2 % Game.map.sizeX()), Math.floor((_local2 / Game.map.sizeX()))); _local3 = Lib.rand(this.cellList.length); this.swapCell((this.cellList.length - 1), _local3); }; return (_local1); } public function save(){ return ({cellList:this.cellList.copy(), entrances:this.saveEntrances()}); } public function addBuildings():void{ var _local1:*; var _local2:Building; var _local3:int; _local1 = Game.map.getBuildings().iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); this.buildingList.push(_local2); _local3 = Lib.rand(this.buildingList.length); this.swapBuilding((this.buildingList.length - 1), _local3); }; } } }//package

Library Items

Symbol 1 GraphicUsed by:7 124 947 948 949 952 1120 1122 1124 1126 1128 1130 1145 1147 1304 1394 1411 1428 1444 1478 1495 1633 1669 1678 1687 1689 1699 1708 1742 1746 1747 1748 1750 1752 1753 1763 1767 1768 1769 1771 1773 1774
Symbol 2 GraphicUsed by:7 124
Symbol 3 GraphicUsed by:7 124
Symbol 4 GraphicUsed by:7 124
Symbol 5 GraphicUsed by:7 124
Symbol 6 GraphicUsed by:7 124 996 1002 1120 1122 1128 1130
Symbol 7 MovieClip {gunCycle_8_idle1_pre}Uses:1 2 3 4 5 6
Symbol 8 GraphicUsed by:14 124 953 1149 1151 1327 1512 1642 1717 1743 1754 1764 1775
Symbol 9 GraphicUsed by:14 124
Symbol 10 GraphicUsed by:14 124 1011 1012 1149 1151
Symbol 11 GraphicUsed by:14 20 124
Symbol 12 GraphicUsed by:14 124
Symbol 13 GraphicUsed by:14 124 1012 1149 1151
Symbol 14 MovieClip {gunCycle_4_idle2_pre}Uses:8 9 10 11 12 13
Symbol 15 GraphicUsed by:20 124 946 1108 1110 1385 1668 1745 1766
Symbol 16 GraphicUsed by:20 124
Symbol 17 GraphicUsed by:20 124 991 993 1108 1110
Symbol 18 GraphicUsed by:20 124
Symbol 19 GraphicUsed by:20 124
Symbol 20 MovieClip {gunCycle_13_idle2_pre}Uses:15 16 17 11 18 19
Symbol 21 GraphicUsed by:22
Symbol 22 MovieClipUses:21Used by:74 79 88 2242
Symbol 23 GraphicUsed by:24
Symbol 24 MovieClip {ScrollTrack_skin}Uses:23Used by:54 2242
Symbol 25 GraphicUsed by:26
Symbol 26 MovieClip {ScrollBar_thumbIcon}Uses:25Used by:54 2242
Symbol 27 GraphicUsed by:28
Symbol 28 MovieClip {ScrollArrowUp_disabledSkin}Uses:27Used by:54 2242
Symbol 29 GraphicUsed by:30
Symbol 30 MovieClip {ScrollArrowDown_disabledSkin}Uses:29Used by:54 2242
Symbol 31 GraphicUsed by:33 36 44 48
Symbol 32 GraphicUsed by:33
Symbol 33 MovieClip {ScrollArrowDown_upSkin}Uses:31 32Used by:54 2242
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClip {ScrollThumb_upSkin}Uses:34Used by:54 2242
Symbol 36 MovieClipUses:31Used by:38 40 50
Symbol 37 GraphicUsed by:38
Symbol 38 MovieClip {ScrollArrowUp_upSkin}Uses:36 37Used by:54 2242
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClip {ScrollArrowUp_overSkin}Uses:36 39Used by:54 2242
Symbol 41 GraphicUsed by:42
Symbol 42 MovieClip {ScrollThumb_overSkin}Uses:41Used by:54 2242
Symbol 43 GraphicUsed by:44
Symbol 44 MovieClip {ScrollArrowDown_overSkin}Uses:31 43Used by:54 2242
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClip {ScrollThumb_downSkin}Uses:45Used by:54 2242
Symbol 47 GraphicUsed by:48
Symbol 48 MovieClip {ScrollArrowDown_downSkin}Uses:31 47Used by:54 2242
Symbol 49 GraphicUsed by:50
Symbol 50 MovieClip {ScrollArrowUp_downSkin}Uses:36 49Used by:54 2242
Symbol 51 GraphicUsed by:52
Symbol 52 MovieClip {focusRectSkin}Uses:51Used by:54 74 79 88 2242
Symbol 53 MovieClip {fl.core.ComponentShim}Used by:54 71 74 79 88 2242
Symbol 54 MovieClip {fl.controls.ScrollBar}Uses:24 26 28 30 33 35 38 40 42 44 46 48 50 52 53Used by:74
Symbol 55 GraphicUsed by:56
Symbol 56 MovieClip {CellRenderer_upSkin}Uses:55Used by:71
Symbol 57 GraphicUsed by:58
Symbol 58 MovieClip {CellRenderer_selectedUpSkin}Uses:57Used by:71
Symbol 59 GraphicUsed by:60
Symbol 60 MovieClip {CellRenderer_selectedOverSkin}Uses:59Used by:71
Symbol 61 GraphicUsed by:62
Symbol 62 MovieClip {CellRenderer_selectedDownSkin}Uses:61Used by:71
Symbol 63 GraphicUsed by:64
Symbol 64 MovieClip {CellRenderer_selectedDisabledSkin}Uses:63Used by:71
Symbol 65 GraphicUsed by:66
Symbol 66 MovieClip {CellRenderer_overSkin}Uses:65Used by:71
Symbol 67 GraphicUsed by:68
Symbol 68 MovieClip {CellRenderer_downSkin}Uses:67Used by:71
Symbol 69 GraphicUsed by:70
Symbol 70 MovieClip {CellRenderer_disabledSkin}Uses:69Used by:71
Symbol 71 MovieClip {fl.controls.listClasses.CellRenderer}Uses:56 58 60 62 64 66 68 70 53Used by:74
Symbol 72 GraphicUsed by:73
Symbol 73 MovieClip {List_skin}Uses:72Used by:74
Symbol 74 MovieClip {fl.controls.List}Uses:22 54 52 71 73 53Used by:88
Symbol 75 GraphicUsed by:76
Symbol 76 MovieClip {TextInput_upSkin}Uses:75Used by:79
Symbol 77 GraphicUsed by:78
Symbol 78 MovieClip {TextInput_disabledSkin}Uses:77Used by:79
Symbol 79 MovieClip {fl.controls.TextInput}Uses:22 52 76 78 53Used by:88
Symbol 80 GraphicUsed by:81
Symbol 81 MovieClip {ComboBox_downSkin}Uses:80Used by:88
Symbol 82 GraphicUsed by:83
Symbol 83 MovieClip {ComboBox_overSkin}Uses:82Used by:88
Symbol 84 GraphicUsed by:85
Symbol 85 MovieClip {ComboBox_disabledSkin}Uses:84Used by:88
Symbol 86 GraphicUsed by:87
Symbol 87 MovieClip {ComboBox_upSkin}Uses:86Used by:88
Symbol 88 MovieClip {fl.controls.ComboBox}Uses:22 74 79 81 83 85 87 52 53Used by:2359
Symbol 89 GraphicUsed by:97 139
Symbol 90 GraphicUsed by:91
Symbol 91 MovieClipUses:90Used by:93
Symbol 92 GraphicUsed by:93
Symbol 93 MovieClipUses:91 92Used by:94
Symbol 94 MovieClipUses:93Used by:97
Symbol 95 GraphicUsed by:97
Symbol 96 GraphicUsed by:97
Symbol 97 ButtonUses:89 94 95 96Used by:124
Symbol 98 FontUsed by:99 2370
Symbol 99 EditableTextUses:98 2458Used by:124
Symbol 100 GraphicUsed by:101
Symbol 101 MovieClipUses:100Used by:124
Symbol 102 GraphicUsed by:124 577 693 800
Symbol 103 GraphicUsed by:124 449 522 577 614 648 725 750 775 800
Symbol 104 GraphicUsed by:124 577
Symbol 105 GraphicUsed by:124 577
Symbol 106 GraphicUsed by:124 577 725 799
Symbol 107 GraphicUsed by:124 577
Symbol 108 GraphicUsed by:124 577 614
Symbol 109 GraphicUsed by:124 449 522 577 614 648 693 725 750 775 798 799 800
Symbol 110 GraphicUsed by:124 614
Symbol 111 GraphicUsed by:124 614
Symbol 112 GraphicUsed by:124 614
Symbol 113 GraphicUsed by:124 449 614 750 775 800
Symbol 114 GraphicUsed by:124 614
Symbol 115 GraphicUsed by:124 449 725
Symbol 116 GraphicUsed by:124 725
Symbol 117 GraphicUsed by:124 725
Symbol 118 GraphicUsed by:124 522 693 725 750 775 798 799 800
Symbol 119 GraphicUsed by:124 725 799
Symbol 120 GraphicUsed by:124 693 799
Symbol 121 GraphicUsed by:124 775 798 799 800
Symbol 122 GraphicUsed by:124 693 750 775 800
Symbol 123 GraphicUsed by:124 1935 1996
Symbol 124 MovieClipUses:97 99 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 1 2 3 4 5 6 8 9 10 11 12 13 15 16 17 18 19 123Used by:Timeline
Symbol 125 GraphicUsed by:140 1840 1841 1874 1877 1893 1899 2096 2213 2261 2519
Symbol 126 GraphicUsed by:140 2289
Symbol 127 GraphicUsed by:140 2289
Symbol 128 GraphicUsed by:140 2289
Symbol 129 GraphicUsed by:140 2289
Symbol 130 GraphicUsed by:140 2289
Symbol 131 GraphicUsed by:140 2289
Symbol 132 GraphicUsed by:140 2289
Symbol 133 GraphicUsed by:140 2289
Symbol 134 GraphicUsed by:140 2289
Symbol 135 GraphicUsed by:136
Symbol 136 MovieClipUses:135Used by:140 2289
Symbol 137 FontUsed by:138
Symbol 138 TextUses:137Used by:139
Symbol 139 MovieClipUses:138 89Used by:140
Symbol 140 MovieClipUses:125 126 127 128 129 130 131 132 133 134 136 139Used by:Timeline
Symbol 141 GraphicUsed by:146
Symbol 142 GraphicUsed by:146
Symbol 143 GraphicUsed by:146
Symbol 144 GraphicUsed by:146
Symbol 145 GraphicUsed by:146
Symbol 146 MovieClip {zombie_headshot}Uses:141 142 143 144 145Used by:2466
Symbol 147 GraphicUsed by:177 339 449 725 831 894
Symbol 148 GraphicUsed by:177 211 244 262 282 339 374 379 449 522 577 614 648 725 750 775 800 831 841 851 861 880 894 903 906
Symbol 149 GraphicUsed by:177 449 831
Symbol 150 GraphicUsed by:177 211 244 262 312 339 357 374 377 378 379 449 522 577 614 693 725 750 775 798 799 800 831 841 851 861 886 894 902 903 904 905 906 1950
Symbol 151 GraphicUsed by:177 831
Symbol 152 GraphicUsed by:177 831
Symbol 153 GraphicUsed by:177 211 244 262 282 312 339 357 374 377 378 379 831 841 851 861 880 886 894 902 903 904 905 906 1950
Symbol 154 GraphicUsed by:177 831
Symbol 155 GraphicUsed by:177 831
Symbol 156 GraphicUsed by:177 211 244 262 282 312 339 357 374 377 378 379 831 841 851 861 880 886 894 902 903 904 905 906
Symbol 157 GraphicUsed by:177 831
Symbol 158 GraphicUsed by:177 211 244 262 282 312 339 357 374 377 378 379 831 841 851 861 880 886 894 902 903 904 905 906
Symbol 159 GraphicUsed by:177 831
Symbol 160 GraphicUsed by:177 211 244 262 282 312 339 357 374 377 378 379 831 841 851 861 880 886 894 902 903 904 905 906
Symbol 161 GraphicUsed by:177 831
Symbol 162 GraphicUsed by:177 211 244 262 282 312 339 357 374 377 378 379 831 841 851 861 880 886 894 902 903 904 905 906
Symbol 163 GraphicUsed by:177 831
Symbol 164 GraphicUsed by:177 211 244 262 282 312 339 357 374 377 378 379 831 841 851 861 880 886 894 902 903 904 905 906
Symbol 165 GraphicUsed by:177 831
Symbol 166 GraphicUsed by:177 211 244 262 282 312 339 357 374 377 378 379 831 841 851 861 880 886 894 902 903 904 905 906
Symbol 167 GraphicUsed by:177 831
Symbol 168 GraphicUsed by:177 211 244 262 282 312 339 357 374 377 378 379 831 841 851 861 880 886 894 902 903 904 905 906
Symbol 169 GraphicUsed by:177 831
Symbol 170 GraphicUsed by:177 211 244 262 282 312 339 357 374 377 378 379 831 841 851 861 880 886 894 902 903 904 905 906
Symbol 171 GraphicUsed by:177 831
Symbol 172 GraphicUsed by:177 211 244 262 282 312 339 357 374 377 378 379 831 841 851 861 880 886 894 902 903 904 905 906
Symbol 173 GraphicUsed by:177 831
Symbol 174 GraphicUsed by:177 211 244 262 282 312 339 357 374 377 378 379 831 841 851 861 880 886 894 902 903 904 905 906
Symbol 175 GraphicUsed by:177 831
Symbol 176 GraphicUsed by:177 211 244 262 282 312 339 357 374 377 378 379 831 841 851 861 880 886 894 902 903 904 905 906
Symbol 177 MovieClip {zombieCycle_shamble_12}Uses:147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176Used by:2466
Symbol 178 GraphicUsed by:211 522 841
Symbol 179 GraphicUsed by:211 522 841
Symbol 180 GraphicUsed by:211 522 841
Symbol 181 GraphicUsed by:211 244 282 312 339 377 378 522 577 648 693 725 798 799 841 851 880 886 894 904 905 1950
Symbol 182 GraphicUsed by:211 522 841
Symbol 183 GraphicUsed by:211 841
Symbol 184 GraphicUsed by:211 282 841 880 904
Symbol 185 GraphicUsed by:211 282 377 841 880 904
Symbol 186 GraphicUsed by:211 522 841
Symbol 187 GraphicUsed by:211 841
Symbol 188 GraphicUsed by:211 282 841 880 904
Symbol 189 GraphicUsed by:211 282 377 841 880 904
Symbol 190 GraphicUsed by:211 522 841
Symbol 191 GraphicUsed by:211 841
Symbol 192 GraphicUsed by:211 282 377 841 880 904
Symbol 193 GraphicUsed by:211 841
Symbol 194 GraphicUsed by:211 282 377 841 880 904
Symbol 195 GraphicUsed by:211 841
Symbol 196 GraphicUsed by:211 282 377 841 880 904
Symbol 197 GraphicUsed by:211 841
Symbol 198 GraphicUsed by:211 282 377 841 880 904
Symbol 199 GraphicUsed by:211 841
Symbol 200 GraphicUsed by:211 282 377 841 880 904
Symbol 201 GraphicUsed by:211 841
Symbol 202 GraphicUsed by:211 282 377 841 880 904
Symbol 203 GraphicUsed by:211 841
Symbol 204 GraphicUsed by:211 282 377 841 880 904
Symbol 205 GraphicUsed by:211 841
Symbol 206 GraphicUsed by:211 282 377 841 880 904
Symbol 207 GraphicUsed by:211 841
Symbol 208 GraphicUsed by:211 282 377 841 880 904
Symbol 209 GraphicUsed by:211 841
Symbol 210 GraphicUsed by:211 282 377 841 880 904
Symbol 211 MovieClip {zombieCycle_shamble_11}Uses:178 179 148 180 181 182 150 183 184 185 153 186 187 188 189 156 190 191 192 158 193 194 160 195 196 162 197 198 164 199 200 166 201 202 168 203 204 170 205 206 172 207 208 174 209 210 176Used by:2466
Symbol 212 GraphicUsed by:244 312 379 577 693 800 851 886 906
Symbol 213 GraphicUsed by:244 312 379 577 693 800 851 886 906
Symbol 214 GraphicUsed by:244 577 851
Symbol 215 GraphicUsed by:244 577 851
Symbol 216 GraphicUsed by:244 851
Symbol 217 GraphicUsed by:244 262 851 861
Symbol 218 GraphicUsed by:244 262 851 861
Symbol 219 GraphicUsed by:244 312 379 577 693 800 851 886 906
Symbol 220 GraphicUsed by:244 851
Symbol 221 GraphicUsed by:244 262 851 861
Symbol 222 GraphicUsed by:244 262 851 861
Symbol 223 GraphicUsed by:244 312 379 577 693 800 851 886 906
Symbol 224 GraphicUsed by:244 851
Symbol 225 GraphicUsed by:244 262 851 861
Symbol 226 GraphicUsed by:244 851
Symbol 227 GraphicUsed by:244 262 851 861
Symbol 228 GraphicUsed by:244 851
Symbol 229 GraphicUsed by:244 262 851 861
Symbol 230 GraphicUsed by:244 851
Symbol 231 GraphicUsed by:244 262 851 861
Symbol 232 GraphicUsed by:244 851
Symbol 233 GraphicUsed by:244 262 851 861
Symbol 234 GraphicUsed by:244 851
Symbol 235 GraphicUsed by:244 262 851 861
Symbol 236 GraphicUsed by:244 851
Symbol 237 GraphicUsed by:244 262 851 861
Symbol 238 GraphicUsed by:244 851
Symbol 239 GraphicUsed by:244 262 851 861
Symbol 240 GraphicUsed by:244 851
Symbol 241 GraphicUsed by:244 262 851 861
Symbol 242 GraphicUsed by:244 851
Symbol 243 GraphicUsed by:244 262 851 861
Symbol 244 MovieClip {zombieCycle_shamble_10}Uses:212 213 148 214 150 215 181 216 217 218 153 219 220 221 222 156 223 224 225 158 226 227 160 228 229 162 230 231 164 232 233 166 234 235 168 236 237 170 238 239 172 240 241 174 242 243 176Used by:2466
Symbol 245 GraphicUsed by:262 614 861
Symbol 246 GraphicUsed by:262 614 861
Symbol 247 GraphicUsed by:262 614 861
Symbol 248 GraphicUsed by:262 861
Symbol 249 GraphicUsed by:262 614 861
Symbol 250 GraphicUsed by:262 861
Symbol 251 GraphicUsed by:262 614 861
Symbol 252 GraphicUsed by:262 861
Symbol 253 GraphicUsed by:262 861
Symbol 254 GraphicUsed by:262 861
Symbol 255 GraphicUsed by:262 861
Symbol 256 GraphicUsed by:262 861
Symbol 257 GraphicUsed by:262 861
Symbol 258 GraphicUsed by:262 861
Symbol 259 GraphicUsed by:262 861
Symbol 260 GraphicUsed by:262 861
Symbol 261 GraphicUsed by:262 861
Symbol 262 MovieClip {zombieCycle_shamble_9}Uses:245 246 148 247 150 248 217 218 153 249 250 221 222 156 251 252 225 158 253 227 160 254 229 162 255 231 164 256 233 166 257 235 168 258 237 170 259 239 172 260 241 174 261 243 176Used by:2466
Symbol 263 GraphicUsed by:282 880
Symbol 264 GraphicUsed by:282 880
Symbol 265 GraphicUsed by:282 648 880
Symbol 266 GraphicUsed by:282 374 648 880 903
Symbol 267 GraphicUsed by:282 648 880
Symbol 268 GraphicUsed by:282 880
Symbol 269 GraphicUsed by:282
Symbol 270 GraphicUsed by:282 880
Symbol 271 GraphicUsed by:282
Symbol 272 GraphicUsed by:282 880
Symbol 273 GraphicUsed by:282 880
Symbol 274 GraphicUsed by:282 880
Symbol 275 GraphicUsed by:282 880
Symbol 276 GraphicUsed by:282 880
Symbol 277 GraphicUsed by:282 880
Symbol 278 GraphicUsed by:282 880
Symbol 279 GraphicUsed by:282 880
Symbol 280 GraphicUsed by:282 880
Symbol 281 GraphicUsed by:282 880
Symbol 282 MovieClip {zombieCycle_shamble_8}Uses:263 264 148 265 266 267 181 268 184 185 153 269 270 188 189 156 271 272 192 158 273 194 160 274 196 162 275 198 164 276 200 166 277 202 168 278 204 170 279 206 172 280 208 174 281 210 176Used by:2466
Symbol 283 GraphicUsed by:312 357 378 693 799 886 902 905 1950
Symbol 284 GraphicUsed by:312 693 886
Symbol 285 GraphicUsed by:312 693 886
Symbol 286 GraphicUsed by:312 886
Symbol 287 GraphicUsed by:312 339 357 374 377 378 379 886 894 902 903 905 906 1950
Symbol 288 GraphicUsed by:312 357 374 379 886 902 903 906
Symbol 289 GraphicUsed by:312 886
Symbol 290 GraphicUsed by:312 339 357 374 377 378 379 886 894 902 903 905 906
Symbol 291 GraphicUsed by:312 357 374 379 886 902 903 906
Symbol 292 GraphicUsed by:312 886
Symbol 293 GraphicUsed by:312 357 374 379 886 902 903 906
Symbol 294 GraphicUsed by:312 886
Symbol 295 GraphicUsed by:312 357 374 379 886 902 903 906
Symbol 296 GraphicUsed by:312 886
Symbol 297 GraphicUsed by:312 357 374 379 886 902 903 906
Symbol 298 GraphicUsed by:312 886
Symbol 299 GraphicUsed by:312 357 374 379 886 902 903 906
Symbol 300 GraphicUsed by:312 886
Symbol 301 GraphicUsed by:312 357 374 379 886 902 903 906
Symbol 302 GraphicUsed by:312 886
Symbol 303 GraphicUsed by:312 357 374 379 886 902 903 906
Symbol 304 GraphicUsed by:312 886
Symbol 305 GraphicUsed by:312 357 374 379 886 902 903 906
Symbol 306 GraphicUsed by:312 886
Symbol 307 GraphicUsed by:312 357 374 379 886 902 903 906
Symbol 308 GraphicUsed by:312 886
Symbol 309 GraphicUsed by:312 357 374 379 886 902 903 906
Symbol 310 GraphicUsed by:312 886
Symbol 311 GraphicUsed by:312 357 374 379 886 902 903 906
Symbol 312 MovieClip {zombieCycle_shamble_7}Uses:212 213 283 284 181 285 150 286 287 288 153 219 289 290 291 156 223 292 293 158 294 295 160 296 297 162 298 299 164 300 301 166 302 303 168 304 305 170 306 307 172 308 309 174 310 311 176Used by:2466
Symbol 313 GraphicUsed by:339 725 894
Symbol 314 GraphicUsed by:339 725 894
Symbol 315 GraphicUsed by:339 894
Symbol 316 GraphicUsed by:339 378 894 905 1950
Symbol 317 GraphicUsed by:339 894
Symbol 318 GraphicUsed by:339 378 894 905
Symbol 319 GraphicUsed by:339 894
Symbol 320 GraphicUsed by:339 378 894 905
Symbol 321 GraphicUsed by:339 894
Symbol 322 GraphicUsed by:339 378 894 905
Symbol 323 GraphicUsed by:339 894
Symbol 324 GraphicUsed by:339 378 894 905
Symbol 325 GraphicUsed by:339 894
Symbol 326 GraphicUsed by:339 378 894 905
Symbol 327 GraphicUsed by:339 894
Symbol 328 GraphicUsed by:339 378 894 905
Symbol 329 GraphicUsed by:339 894
Symbol 330 GraphicUsed by:339 378 894 905
Symbol 331 GraphicUsed by:339 894
Symbol 332 GraphicUsed by:339 378 894 905
Symbol 333 GraphicUsed by:339 894
Symbol 334 GraphicUsed by:339 378 894 905
Symbol 335 GraphicUsed by:339 894
Symbol 336 GraphicUsed by:339 378 894 905
Symbol 337 GraphicUsed by:339 894
Symbol 338 GraphicUsed by:339 378 894 905
Symbol 339 MovieClip {zombieCycle_shamble_6}Uses:147 148 313 150 314 181 315 287 316 153 317 290 318 156 319 320 158 321 322 160 323 324 162 325 326 164 327 328 166 329 330 168 331 332 170 333 334 172 335 336 174 337 338 176Used by:2466
Symbol 340 GraphicUsed by:357 648 750 902
Symbol 341 GraphicUsed by:357 648 750 902
Symbol 342 GraphicUsed by:357 750 902
Symbol 343 GraphicUsed by:357 902
Symbol 344 GraphicUsed by:357 648 750 902
Symbol 345 GraphicUsed by:357 902
Symbol 346 GraphicUsed by:357 648 750 902
Symbol 347 GraphicUsed by:357 902
Symbol 348 GraphicUsed by:357 902
Symbol 349 GraphicUsed by:357 902
Symbol 350 GraphicUsed by:357 902
Symbol 351 GraphicUsed by:357 902
Symbol 352 GraphicUsed by:357 902
Symbol 353 GraphicUsed by:357 902
Symbol 354 GraphicUsed by:357 902
Symbol 355 GraphicUsed by:357 902
Symbol 356 GraphicUsed by:357 902
Symbol 357 MovieClip {zombieCycle_shamble_5}Uses:340 341 283 342 150 343 287 288 153 344 345 290 291 156 346 347 293 158 348 295 160 349 297 162 350 299 164 351 301 166 352 303 168 353 305 170 354 307 172 355 309 174 356 311 176Used by:2466
Symbol 358 GraphicUsed by:374 775 903
Symbol 359 GraphicUsed by:374 775 903
Symbol 360 GraphicUsed by:374 377 378 379 903 904 905 906 1950
Symbol 361 GraphicUsed by:374 775 903
Symbol 362 GraphicUsed by:374 377 378 379 903 904 905 906
Symbol 363 GraphicUsed by:374 775 903
Symbol 364 GraphicUsed by:374 377 378 379 903 904 905 906
Symbol 365 GraphicUsed by:374 377 378 379 903 904 905 906
Symbol 366 GraphicUsed by:374 377 378 379 903 904 905 906
Symbol 367 GraphicUsed by:374 377 378 379 903 904 905 906
Symbol 368 GraphicUsed by:374 377 378 379 903 904 905 906
Symbol 369 GraphicUsed by:374 377 378 379 903 904 905 906
Symbol 370 GraphicUsed by:374 377 378 379 903 904 905 906
Symbol 371 GraphicUsed by:374 377 378 379 903 904 905 906
Symbol 372 GraphicUsed by:374 377 378 379 903 904 905 906
Symbol 373 GraphicUsed by:374 377 378 379 903 904 905 906
Symbol 374 MovieClip {zombieCycle_shamble_4}Uses:358 359 148 150 266 360 287 288 153 361 362 290 291 156 363 364 293 158 365 295 160 366 297 162 367 299 164 368 301 166 369 303 168 370 305 170 371 307 172 372 309 174 373 311 176Used by:2466
Symbol 375 GraphicUsed by:377 798 904
Symbol 376 GraphicUsed by:377 798 904
Symbol 377 MovieClip {zombieCycle_shamble_3}Uses:375 376 181 150 360 287 185 153 362 290 189 156 364 192 158 365 194 160 366 196 162 367 198 164 368 200 166 369 202 168 370 204 170 371 206 172 372 208 174 373 210 176Used by:2466
Symbol 378 MovieClip {zombieCycle_shamble_2}Uses:283 150 181 360 287 316 153 362 290 318 156 364 320 158 365 322 160 366 324 162 367 326 164 368 328 166 369 330 168 370 332 170 371 334 172 372 336 174 373 338 176Used by:2466
Symbol 379 MovieClip {zombieCycle_shamble_1}Uses:212 213 148 150 360 287 288 153 219 362 290 291 156 223 364 293 158 365 295 160 366 297 162 367 299 164 368 301 166 369 303 168 370 305 170 371 307 172 372 309 174 373 311 176Used by:2466
Symbol 380 GraphicUsed by:449
Symbol 381 GraphicUsed by:449
Symbol 382 GraphicUsed by:449 522 577 614 648 693 725 750 775 798 799 800
Symbol 383 GraphicUsed by:449
Symbol 384 GraphicUsed by:449
Symbol 385 GraphicUsed by:449 522 577 614 648 693 725 750 775 798 799 800
Symbol 386 GraphicUsed by:449
Symbol 387 GraphicUsed by:449
Symbol 388 GraphicUsed by:449 522 577 614 648 693 725 750 775 798 799 800
Symbol 389 GraphicUsed by:449 725
Symbol 390 GraphicUsed by:449 522 577 614 648 725 750 775 800
Symbol 391 GraphicUsed by:449
Symbol 392 GraphicUsed by:449
Symbol 393 GraphicUsed by:449 522 577 614 648 693 725 750 775 798 799 800
Symbol 394 GraphicUsed by:449 725
Symbol 395 GraphicUsed by:449 522 577 614 648 725 750 775 800
Symbol 396 GraphicUsed by:449
Symbol 397 GraphicUsed by:449
Symbol 398 GraphicUsed by:449 522 577 614 648 693 725 750 775 798 799 800
Symbol 399 GraphicUsed by:449 725
Symbol 400 GraphicUsed by:449 522 577 614 648 725 750 775 800
Symbol 401 GraphicUsed by:449
Symbol 402 GraphicUsed by:449
Symbol 403 GraphicUsed by:449 522 577 614 648 693 725 750 775 798 799 800
Symbol 404 GraphicUsed by:449 725
Symbol 405 GraphicUsed by:449 522 577 614 648 725 750 775 800
Symbol 406 GraphicUsed by:449
Symbol 407 GraphicUsed by:449
Symbol 408 GraphicUsed by:449 522 577 614 648 693 725 750 775 798 799 800
Symbol 409 GraphicUsed by:449 725
Symbol 410 GraphicUsed by:449 522 577 614 648 725 750 775 800
Symbol 411 GraphicUsed by:449
Symbol 412 GraphicUsed by:449 522 614 693 750 775 798 800
Symbol 413 GraphicUsed by:449
Symbol 414 GraphicUsed by:449 725
Symbol 415 GraphicUsed by:449 522 577 614 648 725 750 775 800
Symbol 416 GraphicUsed by:449
Symbol 417 GraphicUsed by:449 614 750 775 800
Symbol 418 GraphicUsed by:449
Symbol 419 GraphicUsed by:449 725
Symbol 420 GraphicUsed by:449 522 577 614 648 725 750 775 800
Symbol 421 GraphicUsed by:449
Symbol 422 GraphicUsed by:449 614 750 775 800
Symbol 423 GraphicUsed by:449
Symbol 424 GraphicUsed by:449 725
Symbol 425 GraphicUsed by:449 522 577 614 648 725 750 775 800
Symbol 426 GraphicUsed by:449
Symbol 427 GraphicUsed by:449 614 750 775 800
Symbol 428 GraphicUsed by:449
Symbol 429 GraphicUsed by:449 725
Symbol 430 GraphicUsed by:449 522 577 614 648 725 750 775 800
Symbol 431 GraphicUsed by:449
Symbol 432 GraphicUsed by:449 614 750 775 800
Symbol 433 GraphicUsed by:449
Symbol 434 GraphicUsed by:449 725
Symbol 435 GraphicUsed by:449
Symbol 436 GraphicUsed by:449
Symbol 437 GraphicUsed by:449 614 750 775 800
Symbol 438 GraphicUsed by:449
Symbol 439 GraphicUsed by:449 725
Symbol 440 GraphicUsed by:449
Symbol 441 GraphicUsed by:449 614 750 775 800
Symbol 442 GraphicUsed by:449
Symbol 443 GraphicUsed by:449 614 750 775 800
Symbol 444 GraphicUsed by:449
Symbol 445 GraphicUsed by:449 614 750 775 800
Symbol 446 GraphicUsed by:449
Symbol 447 GraphicUsed by:449 614 750 775 800
Symbol 448 GraphicUsed by:449
Symbol 449 MovieClip {zombieCycle_death_12}Uses:147 148 380 149 150 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 109 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 103 436 437 438 439 440 441 115 442 443 444 445 446 447 448 113Used by:2466
Symbol 450 GraphicUsed by:522
Symbol 451 GraphicUsed by:522 693 725 750 775 798 799 800
Symbol 452 GraphicUsed by:522 648 798
Symbol 453 GraphicUsed by:522
Symbol 454 GraphicUsed by:522 693 725 750 775 798 799 800
Symbol 455 GraphicUsed by:522 648 798
Symbol 456 GraphicUsed by:522
Symbol 457 GraphicUsed by:522 693 725 750 775 798 799 800
Symbol 458 GraphicUsed by:522
Symbol 459 GraphicUsed by:522
Symbol 460 GraphicUsed by:522 693 725 750 775 798 799 800
Symbol 461 GraphicUsed by:522 648 798
Symbol 462 GraphicUsed by:522
Symbol 463 GraphicUsed by:522
Symbol 464 GraphicUsed by:522
Symbol 465 GraphicUsed by:522 648 798
Symbol 466 GraphicUsed by:522
Symbol 467 GraphicUsed by:522
Symbol 468 GraphicUsed by:522
Symbol 469 GraphicUsed by:522 648 798
Symbol 470 GraphicUsed by:522
Symbol 471 GraphicUsed by:522
Symbol 472 GraphicUsed by:522
Symbol 473 GraphicUsed by:522 648 798
Symbol 474 GraphicUsed by:522
Symbol 475 GraphicUsed by:522
Symbol 476 GraphicUsed by:522
Symbol 477 GraphicUsed by:522 648 798
Symbol 478 GraphicUsed by:522
Symbol 479 GraphicUsed by:522
Symbol 480 GraphicUsed by:522 693 798
Symbol 481 GraphicUsed by:522
Symbol 482 GraphicUsed by:522 648 798
Symbol 483 GraphicUsed by:522
Symbol 484 GraphicUsed by:522
Symbol 485 GraphicUsed by:522 693 798
Symbol 486 GraphicUsed by:522
Symbol 487 GraphicUsed by:522 693 725 750 775 798 799 800
Symbol 488 GraphicUsed by:522 648 798
Symbol 489 GraphicUsed by:522
Symbol 490 GraphicUsed by:522
Symbol 491 GraphicUsed by:522 693 798
Symbol 492 GraphicUsed by:522
Symbol 493 GraphicUsed by:522 693 725 750 775 798 799 800
Symbol 494 GraphicUsed by:522 648 798
Symbol 495 GraphicUsed by:522
Symbol 496 GraphicUsed by:522
Symbol 497 GraphicUsed by:522 693 798
Symbol 498 GraphicUsed by:522
Symbol 499 GraphicUsed by:522 693 725 750 775 798 799 800
Symbol 500 GraphicUsed by:522 648 798
Symbol 501 GraphicUsed by:522
Symbol 502 GraphicUsed by:522
Symbol 503 GraphicUsed by:522
Symbol 504 GraphicUsed by:522 693 798
Symbol 505 GraphicUsed by:522
Symbol 506 GraphicUsed by:522 648 798
Symbol 507 GraphicUsed by:522
Symbol 508 GraphicUsed by:522
Symbol 509 GraphicUsed by:522 693 798
Symbol 510 GraphicUsed by:522
Symbol 511 GraphicUsed by:522 693 798
Symbol 512 GraphicUsed by:522
Symbol 513 GraphicUsed by:522
Symbol 514 GraphicUsed by:522
Symbol 515 GraphicUsed by:522 693 798
Symbol 516 GraphicUsed by:522
Symbol 517 GraphicUsed by:522 693 798
Symbol 518 GraphicUsed by:522
Symbol 519 GraphicUsed by:522
Symbol 520 GraphicUsed by:522 693 798
Symbol 521 GraphicUsed by:522
Symbol 522 MovieClip {zombieCycle_death_11}Uses:178 190 148 180 181 182 150 450 451 452 382 179 453 454 455 385 186 456 457 388 458 390 459 460 461 393 462 395 463 464 465 398 466 400 467 468 469 403 470 405 471 472 473 408 474 410 475 412 476 477 109 478 415 479 480 481 482 483 420 484 485 486 487 488 489 425 490 491 492 493 494 495 430 496 497 498 499 500 501 103 502 503 504 505 118 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521Used by:2466
Symbol 523 GraphicUsed by:577
Symbol 524 GraphicUsed by:577 614
Symbol 525 GraphicUsed by:577
Symbol 526 GraphicUsed by:577 614
Symbol 527 GraphicUsed by:577
Symbol 528 GraphicUsed by:577 614
Symbol 529 GraphicUsed by:577 693 800
Symbol 530 GraphicUsed by:577
Symbol 531 GraphicUsed by:577 614
Symbol 532 GraphicUsed by:577 693 800
Symbol 533 GraphicUsed by:577
Symbol 534 GraphicUsed by:577
Symbol 535 GraphicUsed by:577 614
Symbol 536 GraphicUsed by:577 693 800
Symbol 537 GraphicUsed by:577
Symbol 538 GraphicUsed by:577
Symbol 539 GraphicUsed by:577 614
Symbol 540 GraphicUsed by:577 693 800
Symbol 541 GraphicUsed by:577
Symbol 542 GraphicUsed by:577
Symbol 543 GraphicUsed by:577 614
Symbol 544 GraphicUsed by:577 693 800
Symbol 545 GraphicUsed by:577
Symbol 546 GraphicUsed by:577 725 799
Symbol 547 GraphicUsed by:577
Symbol 548 GraphicUsed by:577 614
Symbol 549 GraphicUsed by:577 693 800
Symbol 550 GraphicUsed by:577
Symbol 551 GraphicUsed by:577 725 799
Symbol 552 GraphicUsed by:577
Symbol 553 GraphicUsed by:577 614
Symbol 554 GraphicUsed by:577 693 800
Symbol 555 GraphicUsed by:577
Symbol 556 GraphicUsed by:577 725 799
Symbol 557 GraphicUsed by:577
Symbol 558 GraphicUsed by:577 614
Symbol 559 GraphicUsed by:577 693 800
Symbol 560 GraphicUsed by:577
Symbol 561 GraphicUsed by:577 725 799
Symbol 562 GraphicUsed by:577
Symbol 563 GraphicUsed by:577 614
Symbol 564 GraphicUsed by:577 693 800
Symbol 565 GraphicUsed by:577
Symbol 566 GraphicUsed by:577 725 799
Symbol 567 GraphicUsed by:577
Symbol 568 GraphicUsed by:577 614
Symbol 569 GraphicUsed by:577 693 800
Symbol 570 GraphicUsed by:577
Symbol 571 GraphicUsed by:577 725 799
Symbol 572 GraphicUsed by:577 693 800
Symbol 573 GraphicUsed by:577
Symbol 574 GraphicUsed by:577 725 799
Symbol 575 GraphicUsed by:577
Symbol 576 GraphicUsed by:577 725 799
Symbol 577 MovieClip {zombieCycle_death_10}Uses:212 223 148 214 150 215 181 523 524 382 213 525 526 385 219 527 528 388 529 390 530 531 393 532 395 533 534 535 398 536 400 537 538 539 403 540 405 541 542 543 408 544 410 545 546 547 548 109 549 415 550 551 552 553 554 420 555 556 557 558 559 425 560 561 562 563 564 430 565 566 567 568 569 103 104 570 571 107 108 572 573 574 102 575 576 105 106Used by:2466
Symbol 578 GraphicUsed by:614
Symbol 579 GraphicUsed by:614
Symbol 580 GraphicUsed by:614
Symbol 581 GraphicUsed by:614
Symbol 582 GraphicUsed by:614
Symbol 583 GraphicUsed by:614
Symbol 584 GraphicUsed by:614
Symbol 585 GraphicUsed by:614
Symbol 586 GraphicUsed by:614
Symbol 587 GraphicUsed by:614
Symbol 588 GraphicUsed by:614
Symbol 589 GraphicUsed by:614
Symbol 590 GraphicUsed by:614
Symbol 591 GraphicUsed by:614
Symbol 592 GraphicUsed by:614
Symbol 593 GraphicUsed by:614
Symbol 594 GraphicUsed by:614
Symbol 595 GraphicUsed by:614
Symbol 596 GraphicUsed by:614
Symbol 597 GraphicUsed by:614
Symbol 598 GraphicUsed by:614
Symbol 599 GraphicUsed by:614
Symbol 600 GraphicUsed by:614
Symbol 601 GraphicUsed by:614
Symbol 602 GraphicUsed by:614
Symbol 603 GraphicUsed by:614
Symbol 604 GraphicUsed by:614
Symbol 605 GraphicUsed by:614
Symbol 606 GraphicUsed by:614
Symbol 607 GraphicUsed by:614
Symbol 608 GraphicUsed by:614
Symbol 609 GraphicUsed by:614
Symbol 610 GraphicUsed by:614
Symbol 611 GraphicUsed by:614
Symbol 612 GraphicUsed by:614
Symbol 613 GraphicUsed by:614
Symbol 614 MovieClip {zombieCycle_death_9}Uses:245 251 148 247 150 578 524 382 246 579 526 385 249 580 528 388 581 390 582 531 393 583 395 584 585 535 398 586 400 587 588 539 403 589 405 590 591 543 408 592 410 593 412 594 548 109 595 415 596 417 597 553 598 420 599 422 600 558 601 425 602 427 603 563 604 430 605 432 606 568 607 103 111 608 437 114 108 609 610 441 110 611 443 612 445 613 447 112 113Used by:2466
Symbol 615 GraphicUsed by:648
Symbol 616 GraphicUsed by:648
Symbol 617 GraphicUsed by:648
Symbol 618 GraphicUsed by:648 750
Symbol 619 GraphicUsed by:648
Symbol 620 GraphicUsed by:648 750
Symbol 621 GraphicUsed by:648
Symbol 622 GraphicUsed by:648 750
Symbol 623 GraphicUsed by:648
Symbol 624 GraphicUsed by:648 750
Symbol 625 GraphicUsed by:648
Symbol 626 GraphicUsed by:648 750
Symbol 627 GraphicUsed by:648
Symbol 628 GraphicUsed by:648
Symbol 629 GraphicUsed by:648 750
Symbol 630 GraphicUsed by:648
Symbol 631 GraphicUsed by:648 750
Symbol 632 GraphicUsed by:648
Symbol 633 GraphicUsed by:648 750
Symbol 634 GraphicUsed by:648
Symbol 635 GraphicUsed by:648 750
Symbol 636 GraphicUsed by:648
Symbol 637 GraphicUsed by:648 750
Symbol 638 GraphicUsed by:648
Symbol 639 GraphicUsed by:648
Symbol 640 GraphicUsed by:648 750
Symbol 641 GraphicUsed by:648
Symbol 642 GraphicUsed by:648 750
Symbol 643 GraphicUsed by:648 750
Symbol 644 GraphicUsed by:648
Symbol 645 GraphicUsed by:648
Symbol 646 GraphicUsed by:648 750
Symbol 647 GraphicUsed by:648 750
Symbol 648 MovieClip {zombieCycle_death_8}Uses:340 346 148 265 266 267 181 615 452 382 341 616 455 385 344 617 388 618 390 619 461 393 620 395 621 465 398 622 400 623 469 403 624 405 625 473 408 626 410 627 628 477 109 629 415 630 482 631 420 632 488 633 425 634 494 635 430 636 500 637 103 638 639 506 640 641 642 643 644 645 646 647Used by:2466
Symbol 649 GraphicUsed by:693
Symbol 650 GraphicUsed by:693 750 775 800
Symbol 651 GraphicUsed by:693
Symbol 652 GraphicUsed by:693 750 775 800
Symbol 653 GraphicUsed by:693
Symbol 654 GraphicUsed by:693 799
Symbol 655 GraphicUsed by:693
Symbol 656 GraphicUsed by:693 750 775 800
Symbol 657 GraphicUsed by:693 799
Symbol 658 GraphicUsed by:693
Symbol 659 GraphicUsed by:693 750 775 800
Symbol 660 GraphicUsed by:693 799
Symbol 661 GraphicUsed by:693
Symbol 662 GraphicUsed by:693 750 775 800
Symbol 663 GraphicUsed by:693 799
Symbol 664 GraphicUsed by:693
Symbol 665 GraphicUsed by:693 750 775 800
Symbol 666 GraphicUsed by:693 799
Symbol 667 GraphicUsed by:693
Symbol 668 GraphicUsed by:693
Symbol 669 GraphicUsed by:693 750 775 800
Symbol 670 GraphicUsed by:693 799
Symbol 671 GraphicUsed by:693
Symbol 672 GraphicUsed by:693
Symbol 673 GraphicUsed by:693 750 775 800
Symbol 674 GraphicUsed by:693 799
Symbol 675 GraphicUsed by:693
Symbol 676 GraphicUsed by:693
Symbol 677 GraphicUsed by:693 750 775 800
Symbol 678 GraphicUsed by:693 799
Symbol 679 GraphicUsed by:693
Symbol 680 GraphicUsed by:693
Symbol 681 GraphicUsed by:693 750 775 800
Symbol 682 GraphicUsed by:693 799
Symbol 683 GraphicUsed by:693
Symbol 684 GraphicUsed by:693
Symbol 685 GraphicUsed by:693 750 775 800
Symbol 686 GraphicUsed by:693
Symbol 687 GraphicUsed by:693
Symbol 688 GraphicUsed by:693
Symbol 689 GraphicUsed by:693
Symbol 690 GraphicUsed by:693
Symbol 691 GraphicUsed by:693
Symbol 692 GraphicUsed by:693
Symbol 693 MovieClip {zombieCycle_death_7}Uses:212 223 283 284 181 285 150 649 451 650 382 213 651 454 652 385 219 653 457 388 529 654 655 460 656 393 532 657 658 659 398 536 660 661 662 403 540 663 664 665 408 544 666 667 412 668 669 109 549 670 671 480 672 673 554 674 675 485 676 487 677 559 678 679 491 680 493 681 564 682 683 497 684 499 685 569 120 686 504 687 118 122 572 688 509 102 689 511 690 515 691 517 692 520Used by:2466
Symbol 694 GraphicUsed by:725
Symbol 695 GraphicUsed by:725 799
Symbol 696 GraphicUsed by:725
Symbol 697 GraphicUsed by:725 799
Symbol 698 GraphicUsed by:725
Symbol 699 GraphicUsed by:725
Symbol 700 GraphicUsed by:725 799
Symbol 701 GraphicUsed by:725
Symbol 702 GraphicUsed by:725 799
Symbol 703 GraphicUsed by:725
Symbol 704 GraphicUsed by:725 799
Symbol 705 GraphicUsed by:725
Symbol 706 GraphicUsed by:725 799
Symbol 707 GraphicUsed by:725
Symbol 708 GraphicUsed by:725
Symbol 709 GraphicUsed by:725 799
Symbol 710 GraphicUsed by:725
Symbol 711 GraphicUsed by:725
Symbol 712 GraphicUsed by:725 799
Symbol 713 GraphicUsed by:725
Symbol 714 GraphicUsed by:725
Symbol 715 GraphicUsed by:725 799
Symbol 716 GraphicUsed by:725
Symbol 717 GraphicUsed by:725
Symbol 718 GraphicUsed by:725 799
Symbol 719 GraphicUsed by:725
Symbol 720 GraphicUsed by:725
Symbol 721 GraphicUsed by:725 799
Symbol 722 GraphicUsed by:725
Symbol 723 GraphicUsed by:725
Symbol 724 GraphicUsed by:725
Symbol 725 MovieClip {zombieCycle_death_6}Uses:147 148 313 150 314 181 694 451 695 382 696 454 697 385 698 457 388 389 390 699 460 700 393 394 395 701 702 398 399 400 703 704 403 404 405 705 706 408 409 410 707 546 708 709 109 414 415 710 551 711 712 419 420 713 556 714 487 715 424 425 716 561 717 493 718 429 430 719 566 720 499 721 434 103 722 571 117 118 119 439 723 574 115 724 576 116 106Used by:2466
Symbol 726 GraphicUsed by:750
Symbol 727 GraphicUsed by:750
Symbol 728 GraphicUsed by:750
Symbol 729 GraphicUsed by:750
Symbol 730 GraphicUsed by:750
Symbol 731 GraphicUsed by:750
Symbol 732 GraphicUsed by:750
Symbol 733 GraphicUsed by:750
Symbol 734 GraphicUsed by:750
Symbol 735 GraphicUsed by:750
Symbol 736 GraphicUsed by:750
Symbol 737 GraphicUsed by:750
Symbol 738 GraphicUsed by:750
Symbol 739 GraphicUsed by:750
Symbol 740 GraphicUsed by:750
Symbol 741 GraphicUsed by:750
Symbol 742 GraphicUsed by:750
Symbol 743 GraphicUsed by:750
Symbol 744 GraphicUsed by:750
Symbol 745 GraphicUsed by:750
Symbol 746 GraphicUsed by:750
Symbol 747 GraphicUsed by:750
Symbol 748 GraphicUsed by:750
Symbol 749 GraphicUsed by:750
Symbol 750 MovieClip {zombieCycle_death_5}Uses:340 346 148 342 150 726 451 650 382 341 727 454 652 385 344 728 457 388 618 390 729 460 656 393 620 395 730 659 398 622 400 731 662 403 624 405 732 665 408 626 410 733 412 734 669 109 629 415 735 417 736 673 631 420 737 422 738 487 677 633 425 739 427 740 493 681 635 430 741 432 742 499 685 637 103 743 437 744 118 122 640 745 441 746 443 642 643 747 445 748 447 646 749 113 647Used by:2466
Symbol 751 GraphicUsed by:775 798 799 800
Symbol 752 GraphicUsed by:775 798 799 800
Symbol 753 GraphicUsed by:775 798 799 800
Symbol 754 GraphicUsed by:775
Symbol 755 GraphicUsed by:775 798 799 800
Symbol 756 GraphicUsed by:775
Symbol 757 GraphicUsed by:775 798 799 800
Symbol 758 GraphicUsed by:775
Symbol 759 GraphicUsed by:775 798 799 800
Symbol 760 GraphicUsed by:775
Symbol 761 GraphicUsed by:775 798 799 800
Symbol 762 GraphicUsed by:775
Symbol 763 GraphicUsed by:775 798 799 800
Symbol 764 GraphicUsed by:775
Symbol 765 GraphicUsed by:775 798 799 800
Symbol 766 GraphicUsed by:775
Symbol 767 GraphicUsed by:775 798 799 800
Symbol 768 GraphicUsed by:775
Symbol 769 GraphicUsed by:775 798 799 800
Symbol 770 GraphicUsed by:775
Symbol 771 GraphicUsed by:775 798 799 800
Symbol 772 GraphicUsed by:775
Symbol 773 GraphicUsed by:775
Symbol 774 GraphicUsed by:775
Symbol 775 MovieClip {zombieCycle_death_4}Uses:358 363 148 150 751 451 650 382 359 752 454 652 385 361 753 457 388 754 390 755 460 656 393 756 395 757 659 398 758 400 759 662 403 760 405 761 665 408 762 410 412 763 669 109 764 415 417 765 673 766 420 422 767 487 677 768 425 427 769 493 681 770 430 432 771 499 685 772 103 437 121 118 122 773 441 774 443 445 447 113Used by:2466
Symbol 776 GraphicUsed by:798
Symbol 777 GraphicUsed by:798
Symbol 778 GraphicUsed by:798
Symbol 779 GraphicUsed by:798
Symbol 780 GraphicUsed by:798
Symbol 781 GraphicUsed by:798
Symbol 782 GraphicUsed by:798
Symbol 783 GraphicUsed by:798
Symbol 784 GraphicUsed by:798
Symbol 785 GraphicUsed by:798
Symbol 786 GraphicUsed by:798
Symbol 787 GraphicUsed by:798
Symbol 788 GraphicUsed by:798
Symbol 789 GraphicUsed by:798
Symbol 790 GraphicUsed by:798
Symbol 791 GraphicUsed by:798
Symbol 792 GraphicUsed by:798
Symbol 793 GraphicUsed by:798
Symbol 794 GraphicUsed by:798
Symbol 795 GraphicUsed by:798
Symbol 796 GraphicUsed by:798
Symbol 797 GraphicUsed by:798
Symbol 798 MovieClip {zombieCycle_death_3}Uses:375 376 181 150 751 451 452 382 752 454 455 385 753 457 388 776 777 755 460 461 393 778 779 757 465 398 780 781 759 469 403 782 783 761 473 408 784 785 412 763 477 109 786 787 480 765 482 788 789 485 767 487 488 790 791 491 769 493 494 792 793 497 771 499 500 794 795 504 121 118 506 796 509 797 511 515 517 520Used by:2466
Symbol 799 MovieClip {zombieCycle_death_2}Uses:283 150 181 751 451 695 382 752 454 697 385 753 457 388 654 755 460 700 393 657 757 702 398 660 759 704 403 663 761 706 408 666 546 763 709 109 670 551 765 712 674 556 767 487 715 678 561 769 493 718 682 566 771 499 721 120 571 121 118 119 574 576 106Used by:2466
Symbol 800 MovieClip {zombieCycle_death_1}Uses:212 223 148 150 751 451 650 382 213 752 454 652 385 219 753 457 388 529 390 755 460 656 393 532 395 757 659 398 536 400 759 662 403 540 405 761 665 408 544 410 412 763 669 109 549 415 417 765 673 554 420 422 767 487 677 559 425 427 769 493 681 564 430 432 771 499 685 569 103 437 121 118 122 572 441 102 443 445 447 113Used by:2466
Symbol 801 GraphicUsed by:831
Symbol 802 GraphicUsed by:831
Symbol 803 GraphicUsed by:831
Symbol 804 GraphicUsed by:831
Symbol 805 GraphicUsed by:831
Symbol 806 GraphicUsed by:831
Symbol 807 GraphicUsed by:831
Symbol 808 GraphicUsed by:831
Symbol 809 GraphicUsed by:831 841 851 861 886 894 902 903 904 905 906
Symbol 810 GraphicUsed by:831
Symbol 811 GraphicUsed by:831
Symbol 812 GraphicUsed by:831 841 851 861 886 894 902 903 904 905 906
Symbol 813 GraphicUsed by:831
Symbol 814 GraphicUsed by:831
Symbol 815 GraphicUsed by:831 841 851 861 886 894 902 903 904 905 906
Symbol 816 GraphicUsed by:831
Symbol 817 GraphicUsed by:831
Symbol 818 GraphicUsed by:831 841 851 861 886 894 902 903 904 905 906
Symbol 819 GraphicUsed by:831
Symbol 820 GraphicUsed by:831
Symbol 821 GraphicUsed by:831
Symbol 822 GraphicUsed by:831 841 851 861 886 894 902 903 904 905 906
Symbol 823 GraphicUsed by:831
Symbol 824 GraphicUsed by:831 841 851 861 886 894 902 903 904 905 906
Symbol 825 GraphicUsed by:831
Symbol 826 GraphicUsed by:831 841 851 861 886 894 902 903 904 905 906
Symbol 827 GraphicUsed by:831
Symbol 828 GraphicUsed by:831 841 851 861 886 894 902 903 904 905 906
Symbol 829 GraphicUsed by:831
Symbol 830 GraphicUsed by:831 841 851 861 886 894 902 903 904 905 906
Symbol 831 MovieClip {zombieCycle_attack_12}Uses:147 148 801 149 150 151 152 153 802 154 155 156 803 157 158 804 159 160 805 161 162 806 163 164 807 808 809 165 166 810 811 812 167 168 813 814 815 169 170 816 817 818 171 172 819 173 174 820 821 822 175 176 823 824 825 826 827 828 829 830Used by:2466
Symbol 832 GraphicUsed by:841
Symbol 833 GraphicUsed by:841
Symbol 834 GraphicUsed by:841
Symbol 835 GraphicUsed by:841
Symbol 836 GraphicUsed by:841
Symbol 837 GraphicUsed by:841
Symbol 838 GraphicUsed by:841
Symbol 839 GraphicUsed by:841
Symbol 840 GraphicUsed by:841
Symbol 841 MovieClip {zombieCycle_attack_11}Uses:178 179 148 180 181 182 150 183 184 185 153 186 187 188 189 156 190 191 192 158 193 194 160 195 196 162 197 198 164 832 809 199 200 166 833 812 201 202 168 834 815 203 204 170 835 818 205 206 172 207 208 174 836 822 209 210 176 837 824 838 826 839 828 840 830Used by:2466
Symbol 842 GraphicUsed by:851
Symbol 843 GraphicUsed by:851
Symbol 844 GraphicUsed by:851
Symbol 845 GraphicUsed by:851
Symbol 846 GraphicUsed by:851
Symbol 847 GraphicUsed by:851
Symbol 848 GraphicUsed by:851
Symbol 849 GraphicUsed by:851
Symbol 850 GraphicUsed by:851
Symbol 851 MovieClip {zombieCycle_attack_10}Uses:212 213 148 214 150 215 181 216 217 218 153 219 220 221 222 156 223 224 225 158 226 227 160 228 229 162 230 231 164 842 809 232 233 166 843 812 234 235 168 844 815 236 237 170 845 818 238 239 172 240 241 174 846 822 242 243 176 847 824 848 826 849 828 850 830Used by:2466
Symbol 852 GraphicUsed by:861
Symbol 853 GraphicUsed by:861
Symbol 854 GraphicUsed by:861
Symbol 855 GraphicUsed by:861
Symbol 856 GraphicUsed by:861
Symbol 857 GraphicUsed by:861
Symbol 858 GraphicUsed by:861
Symbol 859 GraphicUsed by:861
Symbol 860 GraphicUsed by:861
Symbol 861 MovieClip {zombieCycle_attack_9}Uses:245 246 148 247 150 248 217 218 153 249 250 221 222 156 251 252 225 158 253 227 160 254 229 162 255 231 164 852 809 256 233 166 853 812 257 235 168 854 815 258 237 170 855 818 259 239 172 260 241 174 856 822 261 243 176 857 824 858 826 859 828 860 830Used by:2466
Symbol 862 GraphicUsed by:880
Symbol 863 GraphicUsed by:880 903
Symbol 864 GraphicUsed by:880
Symbol 865 GraphicUsed by:880 903
Symbol 866 GraphicUsed by:880
Symbol 867 GraphicUsed by:880 903
Symbol 868 GraphicUsed by:880
Symbol 869 GraphicUsed by:880 903
Symbol 870 GraphicUsed by:880
Symbol 871 GraphicUsed by:880 903
Symbol 872 GraphicUsed by:880
Symbol 873 GraphicUsed by:880 903
Symbol 874 GraphicUsed by:880
Symbol 875 GraphicUsed by:880 903
Symbol 876 GraphicUsed by:880
Symbol 877 GraphicUsed by:880 903
Symbol 878 GraphicUsed by:880
Symbol 879 GraphicUsed by:880 903
Symbol 880 MovieClip {zombieCycle_attack_8}Uses:263 264 148 265 266 267 181 268 184 185 153 270 188 189 156 272 192 158 273 194 160 274 196 162 275 198 164 862 863 276 200 166 864 865 277 202 168 866 867 278 204 170 868 869 279 206 172 280 208 174 870 871 281 210 176 872 873 874 875 876 877 878 879Used by:2466
Symbol 881 GraphicUsed by:886
Symbol 882 GraphicUsed by:886
Symbol 883 GraphicUsed by:886
Symbol 884 GraphicUsed by:886
Symbol 885 GraphicUsed by:886
Symbol 886 MovieClip {zombieCycle_attack_7}Uses:212 213 283 284 181 285 150 286 287 288 153 219 289 290 291 156 223 292 293 158 294 295 160 296 297 162 298 299 164 809 300 301 166 812 302 303 168 881 815 304 305 170 882 818 306 307 172 308 309 174 883 822 310 311 176 884 824 826 885 828 830Used by:2466
Symbol 887 GraphicUsed by:894
Symbol 888 GraphicUsed by:894
Symbol 889 GraphicUsed by:894
Symbol 890 GraphicUsed by:894
Symbol 891 GraphicUsed by:894
Symbol 892 GraphicUsed by:894
Symbol 893 GraphicUsed by:894
Symbol 894 MovieClip {zombieCycle_attack_6}Uses:147 148 313 150 314 181 315 287 316 153 317 290 318 156 319 320 158 321 322 160 323 324 162 325 326 164 887 809 327 328 166 812 329 330 168 888 815 331 332 170 889 818 333 334 172 335 336 174 890 822 337 338 176 891 824 826 892 828 830 893Used by:2466
Symbol 895 GraphicUsed by:902
Symbol 896 GraphicUsed by:902
Symbol 897 GraphicUsed by:902
Symbol 898 GraphicUsed by:902
Symbol 899 GraphicUsed by:902
Symbol 900 GraphicUsed by:902
Symbol 901 GraphicUsed by:902
Symbol 902 MovieClip {zombieCycle_attack_5}Uses:340 341 283 342 150 343 287 288 153 344 345 290 291 156 346 347 293 158 348 295 160 349 297 162 350 299 164 895 809 351 301 166 812 352 303 168 896 815 353 305 170 897 818 354 307 172 355 309 174 898 822 356 311 176 899 824 900 826 901 828 830Used by:2466
Symbol 903 MovieClip {zombieCycle_attack_4}Uses:358 359 148 150 266 360 287 288 153 361 362 290 291 156 363 364 293 158 365 295 160 366 297 162 367 299 164 809 863 368 301 166 812 865 369 303 168 815 867 370 305 170 818 869 371 307 172 372 309 174 822 871 373 311 176 824 873 826 875 828 877 830 879Used by:2466
Symbol 904 MovieClip {zombieCycle_attack_3}Uses:375 376 181 150 360 184 185 153 362 188 189 156 364 192 158 365 194 160 366 196 162 367 198 164 809 368 200 166 812 369 202 168 815 370 204 170 818 371 206 172 372 208 174 822 373 210 176 824 826 828 830Used by:2466
Symbol 905 MovieClip {zombieCycle_attack_2}Uses:283 150 181 360 287 316 153 362 290 318 156 364 320 158 365 322 160 366 324 162 367 326 164 809 368 328 166 812 369 330 168 815 370 332 170 818 371 334 172 372 336 174 822 373 338 176 824 826 828 830Used by:2466
Symbol 906 MovieClip {zombieCycle_attack_1}Uses:212 213 148 150 360 287 288 153 219 362 290 291 156 223 364 293 158 365 295 160 366 297 162 367 299 164 809 368 301 166 812 369 303 168 815 370 305 170 818 371 307 172 372 309 174 822 373 311 176 824 826 828 830Used by:2466
Symbol 907 Sound {BridgeExplosionSound}Used by:2466
Symbol 908 Sound {ButtonFailedSound}Used by:2466
Symbol 909 Sound {ButtonSuccessSound}Used by:2466
Symbol 910 Sound {SniperShoot1Sound}Used by:2466
Symbol 911 Sound {SniperShoot2Sound}Used by:2466
Symbol 912 Sound {SniperShoot3Sound}Used by:2466
Symbol 913 Sound {TimerPipSound}Used by:2466
Symbol 914 Sound {TowerAbandonSound}Used by:2466
Symbol 915 Sound {TowerBuildSound}Used by:2466
Symbol 916 Sound {TowerDestroySound}Used by:2466
Symbol 917 Sound {TowerSupplySound}Used by:2466
Symbol 918 Sound {TowerUpgradeSound}Used by:2466
Symbol 919 Sound {ZombieBash1Sound}Used by:2466
Symbol 920 Sound {ZombieBash2Sound}Used by:2466
Symbol 921 Sound {ZombieBash3Sound}Used by:2466
Symbol 922 Sound {ZombieBash4Sound}Used by:2466
Symbol 923 Sound {ZombieBash5Sound}Used by:2466
Symbol 924 Sound {ZombieBash6Sound}Used by:2466
Symbol 925 Sound {ZombieDeathSound}Used by:2466
Symbol 926 Sound {ZombieMoanCrowdSound}Used by:2466
Symbol 927 Sound {ZombieMoan1Sound}Used by:2466
Symbol 928 Sound {ZombieMoan2Sound}Used by:2466
Symbol 929 Sound {ZombieMoan3Sound}Used by:2466
Symbol 930 Sound {ZombieMoan4Sound}Used by:2466
Symbol 931 GraphicUsed by:933 934 936 937 939 1038 1040 1043 1045 1060 1062 1065 1067 1082 1084 1200 1266 1581 1616 1738 1741 1759 1762
Symbol 932 GraphicUsed by:933 934 947 948 1038 1040 1043 1045 1120 1122 1124 1126
Symbol 933 MovieClip {gunCycle_toplayer_20}Uses:931 932Used by:2466
Symbol 934 MovieClip {gunCycle_toplayer_19}Uses:931 932Used by:2466
Symbol 935 GraphicUsed by:936 937 949 951 1060 1062 1065 1067 1128 1130 1132 1134
Symbol 936 MovieClip {gunCycle_toplayer_18}Uses:931 935Used by:2466
Symbol 937 MovieClip {gunCycle_toplayer_17}Uses:931 935Used by:2466
Symbol 938 GraphicUsed by:939 942 952 953 1082 1084 1087 1089 1145 1147 1149 1151
Symbol 939 MovieClip {gunCycle_toplayer_16}Uses:931 938Used by:2466
Symbol 940 GraphicUsed by:942 1087 1089 1304 1327 1633 1642 1742 1743 1763 1764
Symbol 941 GraphicUsed by:942 1087 1089 1327 1512 1642 1717 1743 1754 1764 1775
Symbol 942 MovieClip {gunCycle_toplayer_15}Uses:940 941 938Used by:2466
Symbol 943 GraphicUsed by:945 1104 1106
Symbol 944 GraphicUsed by:945 946 955 957 1104 1106 1108 1110 1161 1163 1165 1167 1947
Symbol 945 MovieClip {gunCycle_toplayer_14}Uses:943 944Used by:2466
Symbol 946 MovieClip {gunCycle_toplayer_13}Uses:15 944Used by:2466
Symbol 947 MovieClip {gunCycle_toplayer_11}Uses:1 932Used by:2466
Symbol 948 MovieClip {gunCycle_toplayer_10}Uses:1 932Used by:2466
Symbol 949 MovieClip {gunCycle_toplayer_8}Uses:1 935Used by:2466
Symbol 950 GraphicUsed by:951 1132 1134
Symbol 951 MovieClip {gunCycle_toplayer_7}Uses:950 935Used by:2466
Symbol 952 MovieClip {gunCycle_toplayer_5}Uses:1 938Used by:2466
Symbol 953 MovieClip {gunCycle_toplayer_4}Uses:8 938Used by:2466
Symbol 954 GraphicUsed by:955 1161 1163
Symbol 955 MovieClip {gunCycle_toplayer_2}Uses:954 944Used by:2466
Symbol 956 GraphicUsed by:957 1165 1167 1947
Symbol 957 MovieClip {gunCycle_toplayer_1}Uses:956 944Used by:2466
Symbol 958 GraphicUsed by:961 963 1001 1002 1038 1040 1128 1130
Symbol 959 GraphicUsed by:961 965 970 974 979 983 988 991 995 998 1001 1004 1008 1011 1014 1017 1020
Symbol 960 GraphicUsed by:961 963 965 967 995 996 998 1000 1038 1040 1043 1045 1120 1122 1124 1126
Symbol 961 MovieClipUses:958 959 960Used by:2466
Symbol 962 GraphicUsed by:963 967 972 976 981 985 990 993 996 1000 1002 1006 1010 1012 1015 1018
Symbol 963 MovieClip {gunCycle_midlayer_20}Uses:962 958 960Used by:2466
Symbol 964 GraphicUsed by:965 967 1043 1045
Symbol 965 MovieClipUses:964 959 960Used by:2466
Symbol 966 GraphicUsed by:967 1043 1045
Symbol 967 MovieClip {gunCycle_midlayer_19}Uses:962 964 960 966Used by:2466
Symbol 968 GraphicUsed by:970 972 1060 1062
Symbol 969 GraphicUsed by:970 972 974 976 1001 1002 1004 1006 1060 1062 1065 1067 1128 1130 1132 1134
Symbol 970 MovieClipUses:968 959 969Used by:2466
Symbol 971 GraphicUsed by:972 1060 1062
Symbol 972 MovieClip {gunCycle_midlayer_18}Uses:962 968 969 971Used by:2466
Symbol 973 GraphicUsed by:974 976 1065 1067
Symbol 974 MovieClipUses:973 959 969Used by:2466
Symbol 975 GraphicUsed by:976 1065 1067
Symbol 976 MovieClip {gunCycle_midlayer_17}Uses:962 973 969 975Used by:2466
Symbol 977 GraphicUsed by:979 981 1082 1084
Symbol 978 GraphicUsed by:979 981 983 985 1008 1010 1011 1012 1082 1084 1087 1089 1145 1147 1149 1151
Symbol 979 MovieClipUses:977 959 978Used by:2466
Symbol 980 GraphicUsed by:981 1082 1084
Symbol 981 MovieClip {gunCycle_midlayer_16}Uses:962 977 978 980Used by:2466
Symbol 982 GraphicUsed by:983 985 1087 1089
Symbol 983 MovieClipUses:982 959 978Used by:2466
Symbol 984 GraphicUsed by:985 1087 1089
Symbol 985 MovieClip {gunCycle_midlayer_15}Uses:962 982 978 984Used by:2466
Symbol 986 GraphicUsed by:988 990 1104 1106
Symbol 987 GraphicUsed by:988 990 991 993 1014 1015 1017 1019 1104 1106 1108 1110 1161 1163 1165 1167 1947
Symbol 988 MovieClipUses:986 959 987Used by:2466
Symbol 989 GraphicUsed by:990 1104 1106
Symbol 990 MovieClip {gunCycle_midlayer_14}Uses:962 986 987 989Used by:2466
Symbol 991 MovieClipUses:17 959 987Used by:2466
Symbol 992 GraphicUsed by:993 1108 1110
Symbol 993 MovieClip {gunCycle_midlayer_13}Uses:962 17 987 992Used by:2466
Symbol 994 GraphicUsed by:995 996 1120 1122
Symbol 995 MovieClipUses:994 959 960Used by:2466
Symbol 996 MovieClip {gunCycle_midlayer_11}Uses:962 994 960 6Used by:2466
Symbol 997 GraphicUsed by:998 1000 1124 1126
Symbol 998 MovieClipUses:997 959 960Used by:2466
Symbol 999 GraphicUsed by:1000 1019 1120 1122 1124 1126 1165 1167 1947
Symbol 1000 MovieClip {gunCycle_midlayer_10}Uses:962 997 960 999Used by:2466
Symbol 1001 MovieClipUses:958 959 969Used by:2466
Symbol 1002 MovieClip {gunCycle_midlayer_8}Uses:962 958 969 6Used by:2466
Symbol 1003 GraphicUsed by:1004 1006 1132 1134
Symbol 1004 MovieClipUses:1003 959 969Used by:2466
Symbol 1005 GraphicUsed by:1006 1132 1134
Symbol 1006 MovieClip {gunCycle_midlayer_7}Uses:962 1003 969 1005Used by:2466
Symbol 1007 GraphicUsed by:1008 1010 1145 1147
Symbol 1008 MovieClipUses:1007 959 978Used by:2466
Symbol 1009 GraphicUsed by:1010 1015 1140 1145 1147 1161 1163
Symbol 1010 MovieClip {gunCycle_midlayer_5}Uses:962 1007 978 1009Used by:2466
Symbol 1011 MovieClipUses:10 959 978Used by:2466
Symbol 1012 MovieClip {gunCycle_midlayer_4}Uses:962 10 978 13Used by:2466
Symbol 1013 GraphicUsed by:1014 1015 1161 1163
Symbol 1014 MovieClipUses:1013 959 987Used by:2466
Symbol 1015 MovieClip {gunCycle_midlayer_2}Uses:962 1013 987 1009Used by:2466
Symbol 1016 GraphicUsed by:1017 1019 1165 1167 1947
Symbol 1017 MovieClipUses:1016 959 987Used by:2466
Symbol 1018 MovieClipUses:962Used by:1019 1040 1045 1062 1067 1084 1089 1106 1110 1122 1126 1130 1134 1147 1151 1163 1167
Symbol 1019 MovieClip {gunCycle_midlayer_1}Uses:1018 1016 987 999Used by:2466
Symbol 1020 MovieClipUses:959Used by:1038 1043 1060 1065 1082 1087 1104 1108 1120 1124 1128 1132 1145 1149 1161 1165 1947
Symbol 1021 GraphicUsed by:1038 1040
Symbol 1022 GraphicUsed by:1038 1040 1128 1130
Symbol 1023 GraphicUsed by:1038 1040 1043 1045 1120 1122 1124 1126
Symbol 1024 GraphicUsed by:1038
Symbol 1025 GraphicUsed by:1038 1040 1128 1130
Symbol 1026 GraphicUsed by:1038 1040 1043 1045 1120 1122 1124 1126
Symbol 1027 GraphicUsed by:1038 1040 1043 1045 1060 1062 1065 1067 1082 1084 1087 1089 1104 1106 1108 1110 1120 1122 1124 1126 1128 1130 1132 1134 1145 1147 1149 1151 1161 1163 1165 1167
Symbol 1028 GraphicUsed by:1038 1040 1043 1045 1060 1062 1065 1067 1082 1084 1087 1089 1104 1106 1108 1110 1120 1122 1124 1126 1128 1130 1132 1134 1145 1147 1149 1151 1161 1163 1165 1167
Symbol 1029 GraphicUsed by:1038 1040 1128 1130
Symbol 1030 GraphicUsed by:1038 1040 1043 1045 1120 1122 1124 1126
Symbol 1031 GraphicUsed by:1038 1040 1128 1130
Symbol 1032 GraphicUsed by:1038 1040 1043 1045 1120 1122 1124 1126
Symbol 1033 GraphicUsed by:1038 1040 1128 1130
Symbol 1034 GraphicUsed by:1038 1040 1043 1045 1120 1122 1124 1126
Symbol 1035 GraphicUsed by:1038 1040 1128 1130
Symbol 1036 GraphicUsed by:1038 1040 1128 1130
Symbol 1037 GraphicUsed by:1038 1040 1128 1130
Symbol 1038 MovieClip {gunCycle_20_gun2}Uses:1020 931 932 958 960 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037Used by:2466
Symbol 1039 GraphicUsed by:1040
Symbol 1040 MovieClip {gunCycle_20_gun1}Uses:1018 931 932 958 960 1021 1022 1023 1039 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037Used by:2466
Symbol 1041 GraphicUsed by:1043
Symbol 1042 GraphicUsed by:1043 1045
Symbol 1043 MovieClip {gunCycle_19_gun2}Uses:1020 931 932 964 960 966 1023 1041 1026 1027 1028 1030 1032 1034 1042Used by:2466
Symbol 1044 GraphicUsed by:1045
Symbol 1045 MovieClip {gunCycle_19_gun1}Uses:1018 931 932 964 960 966 1023 1044 1026 1027 1028 1030 1032 1034 1042Used by:2466
Symbol 1046 GraphicUsed by:1060 1062
Symbol 1047 GraphicUsed by:1060 1062 1065 1067 1128 1130 1132 1134
Symbol 1048 GraphicUsed by:1060
Symbol 1049 GraphicUsed by:1060 1062
Symbol 1050 GraphicUsed by:1060 1062 1065 1067 1128 1130 1132 1134
Symbol 1051 GraphicUsed by:1060 1062
Symbol 1052 GraphicUsed by:1060 1062 1065 1067 1128 1130 1132 1134
Symbol 1053 GraphicUsed by:1060 1062
Symbol 1054 GraphicUsed by:1060 1062 1065 1067 1128 1130 1132 1134
Symbol 1055 GraphicUsed by:1060 1062
Symbol 1056 GraphicUsed by:1060 1062 1065 1067 1128 1130 1132 1134
Symbol 1057 GraphicUsed by:1060 1062
Symbol 1058 GraphicUsed by:1060 1062
Symbol 1059 GraphicUsed by:1060 1062
Symbol 1060 MovieClip {gunCycle_18_gun2}Uses:1020 931 935 968 969 971 1046 1047 1048 1049 1050 1027 1028 1051 1052 1053 1054 1055 1056 1057 1058 1059Used by:2466
Symbol 1061 GraphicUsed by:1062
Symbol 1062 MovieClip {gunCycle_18_gun1}Uses:1018 931 935 968 969 971 1046 1047 1061 1049 1050 1027 1028 1051 1052 1053 1054 1055 1056 1057 1058 1059Used by:2466
Symbol 1063 GraphicUsed by:1065
Symbol 1064 GraphicUsed by:1065 1067
Symbol 1065 MovieClip {gunCycle_17_gun2}Uses:1020 931 935 973 969 975 1047 1063 1050 1027 1028 1052 1054 1056 1064Used by:2466
Symbol 1066 GraphicUsed by:1067
Symbol 1067 MovieClip {gunCycle_17_gun1}Uses:1018 931 935 973 969 975 1047 1066 1050 1027 1028 1052 1054 1056 1064Used by:2466
Symbol 1068 GraphicUsed by:1082 1084
Symbol 1069 GraphicUsed by:1082 1084 1087 1089 1145 1147 1149 1151
Symbol 1070 GraphicUsed by:1082
Symbol 1071 GraphicUsed by:1082 1084
Symbol 1072 GraphicUsed by:1082 1084 1087 1089 1145 1147 1149 1151
Symbol 1073 GraphicUsed by:1082 1084
Symbol 1074 GraphicUsed by:1082 1084 1087 1089 1145 1147 1149 1151
Symbol 1075 GraphicUsed by:1082 1084
Symbol 1076 GraphicUsed by:1082 1084 1087 1089 1145 1147 1149 1151
Symbol 1077 GraphicUsed by:1082 1084
Symbol 1078 GraphicUsed by:1082 1084 1087 1089 1145 1147 1149 1151
Symbol 1079 GraphicUsed by:1082 1084
Symbol 1080 GraphicUsed by:1082 1084
Symbol 1081 GraphicUsed by:1082 1084
Symbol 1082 MovieClip {gunCycle_16_gun2}Uses:1020 931 938 977 978 980 1068 1069 1070 1071 1072 1027 1028 1073 1074 1075 1076 1077 1078 1079 1080 1081Used by:2466
Symbol 1083 GraphicUsed by:1084
Symbol 1084 MovieClip {gunCycle_16_gun1}Uses:1018 931 938 977 978 980 1068 1069 1083 1071 1072 1027 1028 1073 1074 1075 1076 1077 1078 1079 1080 1081Used by:2466
Symbol 1085 GraphicUsed by:1087
Symbol 1086 GraphicUsed by:1087 1089
Symbol 1087 MovieClip {gunCycle_15_gun2}Uses:1020 940 941 938 982 978 984 1069 1085 1072 1027 1028 1074 1076 1078 1086Used by:2466
Symbol 1088 GraphicUsed by:1089
Symbol 1089 MovieClip {gunCycle_15_gun1}Uses:1018 940 941 938 982 978 984 1069 1088 1072 1027 1028 1074 1076 1078 1086Used by:2466
Symbol 1090 GraphicUsed by:1104 1106
Symbol 1091 GraphicUsed by:1104 1106 1108 1110 1161 1163 1165 1167
Symbol 1092 GraphicUsed by:1104
Symbol 1093 GraphicUsed by:1104 1106
Symbol 1094 GraphicUsed by:1104 1106 1108 1110 1161 1163 1165 1167
Symbol 1095 GraphicUsed by:1104 1106
Symbol 1096 GraphicUsed by:1104 1106 1108 1110 1161 1163 1165 1167
Symbol 1097 GraphicUsed by:1104 1106
Symbol 1098 GraphicUsed by:1104 1106 1108 1110 1161 1163 1165 1167
Symbol 1099 GraphicUsed by:1104 1106
Symbol 1100 GraphicUsed by:1104 1106 1108 1110 1161 1163 1165 1167
Symbol 1101 GraphicUsed by:1104 1106
Symbol 1102 GraphicUsed by:1104 1106
Symbol 1103 GraphicUsed by:1104 1106
Symbol 1104 MovieClip {gunCycle_14_gun2}Uses:1020 943 944 986 987 989 1090 1091 1092 1093 1094 1027 1028 1095 1096 1097 1098 1099 1100 1101 1102 1103Used by:2466
Symbol 1105 GraphicUsed by:1106
Symbol 1106 MovieClip {gunCycle_14_gun1}Uses:1018 943 944 986 987 989 1090 1091 1105 1093 1094 1027 1028 1095 1096 1097 1098 1099 1100 1101 1102 1103Used by:2466
Symbol 1107 GraphicUsed by:1108
Symbol 1108 MovieClip {gunCycle_13_gun2}Uses:1020 15 944 17 987 992 1091 1107 1094 1027 1028 1096 1098 1100Used by:2466
Symbol 1109 GraphicUsed by:1110
Symbol 1110 MovieClip {gunCycle_13_gun1}Uses:1018 15 944 17 987 992 1091 1109 1094 1027 1028 1096 1098 1100Used by:2466
Symbol 1111 GraphicUsed by:1120 1122
Symbol 1112 GraphicUsed by:1120
Symbol 1113 GraphicUsed by:1120 1122
Symbol 1114 GraphicUsed by:1120 1122
Symbol 1115 GraphicUsed by:1120 1122
Symbol 1116 GraphicUsed by:1120 1122
Symbol 1117 GraphicUsed by:1120 1122
Symbol 1118 GraphicUsed by:1120 1122
Symbol 1119 GraphicUsed by:1120 1122
Symbol 1120 MovieClip {gunCycle_11_gun2}Uses:1020 1 932 994 960 6 1111 1023 999 1112 1113 1026 1027 1028 1114 1030 1115 1032 1116 1034 1117 1118 1119Used by:2466
Symbol 1121 GraphicUsed by:1122
Symbol 1122 MovieClip {gunCycle_11_gun1}Uses:1018 1 932 994 960 6 1111 1023 999 1121 1113 1026 1027 1028 1114 1030 1115 1032 1116 1034 1117 1118 1119Used by:2466
Symbol 1123 GraphicUsed by:1124
Symbol 1124 MovieClip {gunCycle_10_gun2}Uses:1020 1 932 997 960 999 1023 1123 1026 1027 1028 1030 1032 1034Used by:2466
Symbol 1125 GraphicUsed by:1126
Symbol 1126 MovieClip {gunCycle_10_gun1}Uses:1018 1 932 997 960 999 1023 1125 1026 1027 1028 1030 1032 1034Used by:2466
Symbol 1127 GraphicUsed by:1128
Symbol 1128 MovieClip {gunCycle_8_gun2}Uses:1020 1 935 958 969 6 1022 1047 1127 1025 1050 1027 1028 1029 1052 1031 1054 1033 1056 1035 1036 1037Used by:2466
Symbol 1129 GraphicUsed by:1130
Symbol 1130 MovieClip {gunCycle_8_gun1}Uses:1018 1 935 958 969 6 1022 1047 1129 1025 1050 1027 1028 1029 1052 1031 1054 1033 1056 1035 1036 1037Used by:2466
Symbol 1131 GraphicUsed by:1132
Symbol 1132 MovieClip {gunCycle_7_gun2}Uses:1020 950 935 1003 969 1005 1047 1131 1050 1027 1028 1052 1054 1056Used by:2466
Symbol 1133 GraphicUsed by:1134
Symbol 1134 MovieClip {gunCycle_7_gun1}Uses:1018 950 935 1003 969 1005 1047 1133 1050 1027 1028 1052 1054 1056Used by:2466
Symbol 1135 GraphicUsed by:1145 1147
Symbol 1136 GraphicUsed by:1145
Symbol 1137 GraphicUsed by:1145 1147
Symbol 1138 GraphicUsed by:1145 1147
Symbol 1139 GraphicUsed by:1145 1147
Symbol 1140 MovieClipUses:1009Used by:1145 1147 1161 1163
Symbol 1141 GraphicUsed by:1145 1147
Symbol 1142 GraphicUsed by:1145 1147
Symbol 1143 GraphicUsed by:1145 1147
Symbol 1144 GraphicUsed by:1145 1147
Symbol 1145 MovieClip {gunCycle_5_gun2}Uses:1020 1 938 1007 978 1009 1135 1069 1136 1137 1072 1027 1028 1138 1074 1139 1076 1140 1141 1078 1142 1143 1144Used by:2466
Symbol 1146 GraphicUsed by:1147
Symbol 1147 MovieClip {gunCycle_5_gun1}Uses:1018 1 938 1007 978 1009 1135 1069 1146 1137 1072 1027 1028 1138 1074 1139 1076 1140 1141 1078 1142 1143 1144Used by:2466
Symbol 1148 GraphicUsed by:1149
Symbol 1149 MovieClip {gunCycle_4_gun2}Uses:1020 8 938 10 978 13 1069 1148 1072 1027 1028 1074 1076 1078Used by:2466
Symbol 1150 GraphicUsed by:1151
Symbol 1151 MovieClip {gunCycle_4_gun1}Uses:1018 8 938 10 978 13 1069 1150 1072 1027 1028 1074 1076 1078Used by:2466
Symbol 1152 GraphicUsed by:1161 1163
Symbol 1153 GraphicUsed by:1161
Symbol 1154 GraphicUsed by:1161 1163
Symbol 1155 GraphicUsed by:1161 1163
Symbol 1156 GraphicUsed by:1161 1163
Symbol 1157 GraphicUsed by:1161 1163
Symbol 1158 GraphicUsed by:1161 1163
Symbol 1159 GraphicUsed by:1161 1163
Symbol 1160 GraphicUsed by:1161 1163
Symbol 1161 MovieClip {gunCycle_2_gun2}Uses:1020 954 944 1013 987 1009 1152 1091 1153 1154 1094 1027 1028 1155 1096 1156 1098 1140 1157 1100 1158 1159 1160Used by:2466
Symbol 1162 GraphicUsed by:1163
Symbol 1163 MovieClip {gunCycle_2_gun1}Uses:1018 954 944 1013 987 1009 1152 1091 1162 1154 1094 1027 1028 1155 1096 1156 1098 1140 1157 1100 1158 1159 1160Used by:2466
Symbol 1164 GraphicUsed by:1165
Symbol 1165 MovieClip {gunCycle_1_gun2}Uses:1020 956 944 1016 987 999 1091 1164 1094 1027 1028 1096 1098 1100Used by:2466
Symbol 1166 GraphicUsed by:1167
Symbol 1167 MovieClip {gunCycle_1_gun1}Uses:1018 956 944 1016 987 999 1091 1166 1094 1027 1028 1096 1098 1100Used by:2466
Symbol 1168 GraphicUsed by:1200 1266 1581 1616 1738 1741 1759 1762
Symbol 1169 GraphicUsed by:1200 1225 1394 1411 1428 1581 1590 1669 1678 1687 1738 1739 1746 1747 1748 1759 1760 1767 1768 1769 1824 1942
Symbol 1170 GraphicUsed by:1200 1444
Symbol 1171 GraphicUsed by:1200 1225 1394 1411 1428
Symbol 1172 GraphicUsed by:1200 1581 1738 1759
Symbol 1173 GraphicUsed by:1200 1266 1581 1616 1738 1741 1759 1762
Symbol 1174 GraphicUsed by:1200 1444
Symbol 1175 GraphicUsed by:1200 1225 1394 1411 1428
Symbol 1176 GraphicUsed by:1200 1581 1738 1759
Symbol 1177 GraphicUsed by:1200 1266 1581 1616 1738 1741 1759 1762
Symbol 1178 GraphicUsed by:1200 1444
Symbol 1179 GraphicUsed by:1200 1225 1394 1411 1428 1824 1942
Symbol 1180 GraphicUsed by:1200 1249 1581 1607 1738 1740 1759 1761
Symbol 1181 GraphicUsed by:1200 1444
Symbol 1182 GraphicUsed by:1200 1225 1394 1411 1428
Symbol 1183 GraphicUsed by:1200 1581 1738 1759
Symbol 1184 GraphicUsed by:1200 1266 1581 1616 1738 1741 1759 1762
Symbol 1185 GraphicUsed by:1200 1444
Symbol 1186 GraphicUsed by:1200 1225 1394 1411 1428
Symbol 1187 GraphicUsed by:1200 1581 1738 1759
Symbol 1188 GraphicUsed by:1200 1266 1581 1616 1738 1741 1759 1762
Symbol 1189 GraphicUsed by:1200 1444
Symbol 1190 GraphicUsed by:1200 1225 1394 1411 1428
Symbol 1191 GraphicUsed by:1200 1581 1738 1759
Symbol 1192 GraphicUsed by:1200 1266 1581 1616 1738 1741 1759 1762
Symbol 1193 GraphicUsed by:1200 1444
Symbol 1194 GraphicUsed by:1200 1225 1394 1411 1428
Symbol 1195 GraphicUsed by:1200 1249 1581 1607 1738 1740 1759 1761
Symbol 1196 GraphicUsed by:1200 1266 1581 1616 1738 1741 1759 1762
Symbol 1197 GraphicUsed by:1200 1444
Symbol 1198 GraphicUsed by:1200 1225 1394 1411 1428
Symbol 1199 GraphicUsed by:1200 1581 1738 1759
Symbol 1200 MovieClip {Survivor_3_20}Uses:1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 931 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199Used by:2466
Symbol 1201 GraphicUsed by:1225 1249 1590 1607 1739 1740 1760 1761
Symbol 1202 GraphicUsed by:1225
Symbol 1203 GraphicUsed by:1225 1590 1739 1760
Symbol 1204 GraphicUsed by:1225 1249 1590 1607 1739 1740 1760 1761
Symbol 1205 GraphicUsed by:1225
Symbol 1206 GraphicUsed by:1225 1590 1739 1760
Symbol 1207 GraphicUsed by:1225 1249 1590 1607 1739 1740 1760 1761
Symbol 1208 GraphicUsed by:1225
Symbol 1209 GraphicUsed by:1225 1590 1739 1760
Symbol 1210 GraphicUsed by:1225 1249 1590 1607 1739 1740 1760 1761
Symbol 1211 GraphicUsed by:1225
Symbol 1212 GraphicUsed by:1225 1590 1739 1760
Symbol 1213 GraphicUsed by:1225 1249 1590 1607 1739 1740 1760 1761
Symbol 1214 GraphicUsed by:1225
Symbol 1215 GraphicUsed by:1225 1590 1739 1760
Symbol 1216 GraphicUsed by:1225 1249 1590 1607 1739 1740 1760 1761
Symbol 1217 GraphicUsed by:1225
Symbol 1218 GraphicUsed by:1225 1590 1739 1760
Symbol 1219 GraphicUsed by:1225 1249 1590 1607 1739 1740 1760 1761
Symbol 1220 GraphicUsed by:1225
Symbol 1221 GraphicUsed by:1225 1590 1739 1760
Symbol 1222 GraphicUsed by:1225 1249 1590 1607 1739 1740 1760 1761
Symbol 1223 GraphicUsed by:1225
Symbol 1224 GraphicUsed by:1225 1590 1739 1760
Symbol 1225 MovieClip {Survivor_3_19}Uses:1201 1169 1202 1171 1203 1204 1205 1175 1206 1207 1208 1179 1209 1210 1211 1182 1212 1213 1214 1186 1215 1216 1217 1190 1218 1219 1220 1194 1221 1222 1223 1198 1224Used by:2466
Symbol 1226 GraphicUsed by:1249 1266 1443 1444 1469 1607 1616 1688 1689 1698 1740 1741 1749 1750 1751 1761 1762 1770 1771 1772
Symbol 1227 GraphicUsed by:1249
Symbol 1228 GraphicUsed by:1249 1266 1443 1444 1469
Symbol 1229 GraphicUsed by:1249 1607 1740 1761
Symbol 1230 GraphicUsed by:1249
Symbol 1231 GraphicUsed by:1249 1266 1443 1444 1469
Symbol 1232 GraphicUsed by:1249 1607 1740 1761
Symbol 1233 GraphicUsed by:1249
Symbol 1234 GraphicUsed by:1249 1266 1443 1444 1469
Symbol 1235 GraphicUsed by:1249
Symbol 1236 GraphicUsed by:1249 1266 1443 1444 1469
Symbol 1237 GraphicUsed by:1249 1607 1740 1761
Symbol 1238 GraphicUsed by:1249
Symbol 1239 GraphicUsed by:1249 1266 1443 1444 1469
Symbol 1240 GraphicUsed by:1249 1607 1740 1761
Symbol 1241 GraphicUsed by:1249
Symbol 1242 GraphicUsed by:1249 1266 1443 1444 1469
Symbol 1243 GraphicUsed by:1249 1607 1740 1761
Symbol 1244 GraphicUsed by:1249
Symbol 1245 GraphicUsed by:1249 1266 1443 1444 1469
Symbol 1246 GraphicUsed by:1249
Symbol 1247 GraphicUsed by:1249 1266 1443 1444 1469
Symbol 1248 GraphicUsed by:1249 1607 1740 1761
Symbol 1249 MovieClip {Survivor_3_18}Uses:1201 1226 1227 1228 1229 1204 1230 1231 1232 1207 1233 1234 1180 1210 1235 1236 1237 1213 1238 1239 1240 1216 1241 1242 1243 1219 1244 1245 1195 1222 1246 1247 1248Used by:2466
Symbol 1250 GraphicUsed by:1266
Symbol 1251 GraphicUsed by:1266 1616 1741 1762
Symbol 1252 GraphicUsed by:1266
Symbol 1253 GraphicUsed by:1266 1616 1741 1762
Symbol 1254 GraphicUsed by:1266
Symbol 1255 GraphicUsed by:1266 1616 1741 1762
Symbol 1256 GraphicUsed by:1266
Symbol 1257 GraphicUsed by:1266 1616 1741 1762
Symbol 1258 GraphicUsed by:1266
Symbol 1259 GraphicUsed by:1266 1616 1741 1762
Symbol 1260 GraphicUsed by:1266
Symbol 1261 GraphicUsed by:1266 1616 1741 1762
Symbol 1262 GraphicUsed by:1266
Symbol 1263 GraphicUsed by:1266 1616 1741 1762
Symbol 1264 GraphicUsed by:1266
Symbol 1265 GraphicUsed by:1266 1616 1741 1762
Symbol 1266 MovieClip {Survivor_3_17}Uses:1168 1226 1250 1228 1251 1173 1252 1231 1253 1177 1254 1234 1255 931 1256 1236 1257 1184 1258 1239 1259 1188 1260 1242 1261 1192 1262 1245 1263 1196 1264 1247 1265Used by:2466
Symbol 1267 GraphicUsed by:1304 1327 1633 1642 1742 1743 1763 1764
Symbol 1268 GraphicUsed by:1304 1327 1478 1495 1512 1633 1642 1699 1708 1717 1742 1743 1752 1753 1754 1763 1764 1773 1774 1775
Symbol 1269 GraphicUsed by:1304
Symbol 1270 GraphicUsed by:1304 1327 1478 1495 1512
Symbol 1271 GraphicUsed by:1304 1633 1742 1763
Symbol 1272 GraphicUsed by:1304 1394 1411 1428 1444 1478 1495 1633 1669 1678 1687 1689 1699 1708 1742 1746 1747 1748 1750 1752 1753 1763 1767 1768 1769 1771 1773 1774
Symbol 1273 GraphicUsed by:1304 1327 1633 1642 1742 1743 1763 1764
Symbol 1274 GraphicUsed by:1304
Symbol 1275 GraphicUsed by:1304 1327 1478 1495 1512
Symbol 1276 GraphicUsed by:1304 1633 1742 1763
Symbol 1277 GraphicUsed by:1304 1394 1411 1428 1444 1478 1495 1633 1669 1678 1687 1689 1699 1708 1742 1746 1747 1748 1750 1752 1753 1763 1767 1768 1769 1771 1773 1774 1824 1942
Symbol 1278 GraphicUsed by:1304 1327 1633 1642 1742 1743 1763 1764
Symbol 1279 GraphicUsed by:1304
Symbol 1280 GraphicUsed by:1304 1327 1478 1495 1512
Symbol 1281 GraphicUsed by:1304 1633 1742 1763
Symbol 1282 GraphicUsed by:1304 1394 1411 1428 1444 1478 1495 1633 1669 1678 1687 1689 1699 1708 1742 1746 1747 1748 1750 1752 1753 1763 1767 1768 1769 1771 1773 1774
Symbol 1283 GraphicUsed by:1304
Symbol 1284 GraphicUsed by:1304 1327 1478 1495 1512
Symbol 1285 GraphicUsed by:1304 1633 1742 1763
Symbol 1286 GraphicUsed by:1304 1394 1411 1428 1444 1478 1495 1633 1669 1678 1687 1689 1699 1708 1742 1746 1747 1748 1750 1752 1753 1763 1767 1768 1769 1771 1773 1774
Symbol 1287 GraphicUsed by:1304 1327 1633 1642 1742 1743 1763 1764
Symbol 1288 GraphicUsed by:1304
Symbol 1289 GraphicUsed by:1304 1327 1478 1495 1512
Symbol 1290 GraphicUsed by:1304 1633 1742 1763
Symbol 1291 GraphicUsed by:1304 1327 1633 1642 1742 1743 1763 1764
Symbol 1292 GraphicUsed by:1304
Symbol 1293 GraphicUsed by:1304 1327 1478 1495 1512
Symbol 1294 GraphicUsed by:1304 1633 1742 1763
Symbol 1295 GraphicUsed by:1304 1394 1411 1428 1444 1478 1495 1633 1669 1678 1687 1689 1699 1708 1742 1746 1747 1748 1750 1752 1753 1763 1767 1768 1769 1771 1773 1774
Symbol 1296 GraphicUsed by:1304 1327 1633 1642 1742 1743 1763 1764
Symbol 1297 GraphicUsed by:1304
Symbol 1298 GraphicUsed by:1304 1327 1478 1495 1512
Symbol 1299 GraphicUsed by:1304 1633 1742 1763
Symbol 1300 GraphicUsed by:1304 1327 1633 1642 1742 1743 1763 1764
Symbol 1301 GraphicUsed by:1304
Symbol 1302 GraphicUsed by:1304 1327 1478 1495 1512
Symbol 1303 GraphicUsed by:1304 1633 1742 1763
Symbol 1304 MovieClip {Survivor_3_16}Uses:1 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 940 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303Used by:2466
Symbol 1305 GraphicUsed by:1327
Symbol 1306 GraphicUsed by:1327 1642 1743 1764
Symbol 1307 GraphicUsed by:1327 1512 1642 1717 1743 1754 1764 1775
Symbol 1308 GraphicUsed by:1327
Symbol 1309 GraphicUsed by:1327 1642 1743 1764
Symbol 1310 GraphicUsed by:1327 1512 1642 1717 1743 1754 1764 1775
Symbol 1311 GraphicUsed by:1327
Symbol 1312 GraphicUsed by:1327 1642 1743 1764
Symbol 1313 GraphicUsed by:1327
Symbol 1314 GraphicUsed by:1327 1642 1743 1764
Symbol 1315 GraphicUsed by:1327 1512 1642 1717 1743 1754 1764 1775
Symbol 1316 GraphicUsed by:1327
Symbol 1317 GraphicUsed by:1327 1642 1743 1764
Symbol 1318 GraphicUsed by:1327 1512 1642 1717 1743 1754 1764 1775
Symbol 1319 GraphicUsed by:1327
Symbol 1320 GraphicUsed by:1327 1642 1743 1764
Symbol 1321 GraphicUsed by:1327 1512 1642 1717 1743 1754 1764 1775
Symbol 1322 GraphicUsed by:1327
Symbol 1323 GraphicUsed by:1327 1642 1743 1764
Symbol 1324 GraphicUsed by:1327 1512 1642 1717 1743 1754 1764 1775
Symbol 1325 GraphicUsed by:1327
Symbol 1326 GraphicUsed by:1327 1642 1743 1764
Symbol 1327 MovieClip {Survivor_3_15}Uses:1267 8 1268 1305 1270 1306 1273 1307 1308 1275 1309 1278 1310 1311 1280 1312 940 941 1313 1284 1314 1287 1315 1316 1289 1317 1291 1318 1319 1293 1320 1296 1321 1322 1298 1323 1300 1324 1325 1302 1326Used by:2466
Symbol 1328 GraphicUsed by:1361 1659 1744 1765
Symbol 1329 GraphicUsed by:1361 1385 1529 1546 1563 1659 1668 1718 1727 1736 1744 1745 1755 1756 1757 1765 1766 1776 1777 1778 1943
Symbol 1330 GraphicUsed by:1361
Symbol 1331 GraphicUsed by:1361 1385 1529 1546 1563
Symbol 1332 GraphicUsed by:1361 1659 1744 1765
Symbol 1333 GraphicUsed by:1361 1659 1744 1765
Symbol 1334 GraphicUsed by:1361
Symbol 1335 GraphicUsed by:1361 1385 1529 1546 1563
Symbol 1336 GraphicUsed by:1361 1659 1744 1765
Symbol 1337 GraphicUsed by:1361 1659 1744 1765
Symbol 1338 GraphicUsed by:1361
Symbol 1339 GraphicUsed by:1361 1385 1529 1546 1563
Symbol 1340 GraphicUsed by:1361 1659 1744 1765
Symbol 1341 GraphicUsed by:1361 1659 1744 1765
Symbol 1342 GraphicUsed by:1361
Symbol 1343 GraphicUsed by:1361 1385 1529 1546 1563
Symbol 1344 GraphicUsed by:1361 1659 1744 1765
Symbol 1345 GraphicUsed by:1361 1659 1744 1765
Symbol 1346 GraphicUsed by:1361
Symbol 1347 GraphicUsed by:1361 1385 1529 1546 1563
Symbol 1348 GraphicUsed by:1361 1659 1744 1765
Symbol 1349 GraphicUsed by:1361 1659 1744 1765
Symbol 1350 GraphicUsed by:1361
Symbol 1351 GraphicUsed by:1361 1385 1529 1546 1563
Symbol 1352 GraphicUsed by:1361 1659 1744 1765
Symbol 1353 GraphicUsed by:1361 1659 1744 1765
Symbol 1354 GraphicUsed by:1361
Symbol 1355 GraphicUsed by:1361 1385 1529 1546 1563 1943
Symbol 1356 GraphicUsed by:1361 1659 1744 1765
Symbol 1357 GraphicUsed by:1361 1659 1744 1765
Symbol 1358 GraphicUsed by:1361
Symbol 1359 GraphicUsed by:1361 1385 1529 1546 1563
Symbol 1360 GraphicUsed by:1361 1659 1744 1765
Symbol 1361 MovieClip {Survivor_3_14}Uses:1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360Used by:2466
Symbol 1362 GraphicUsed by:1385 1668 1745 1766
Symbol 1363 GraphicUsed by:1385
Symbol 1364 GraphicUsed by:1385 1668 1745 1766
Symbol 1365 GraphicUsed by:1385 1668 1745 1766
Symbol 1366 GraphicUsed by:1385
Symbol 1367 GraphicUsed by:1385 1668 1745 1766
Symbol 1368 GraphicUsed by:1385 1668 1745 1766
Symbol 1369 GraphicUsed by:1385
Symbol 1370 GraphicUsed by:1385 1668 1745 1766
Symbol 1371 GraphicUsed by:1385
Symbol 1372 GraphicUsed by:1385 1668 1745 1766
Symbol 1373 GraphicUsed by:1385 1668 1745 1766
Symbol 1374 GraphicUsed by:1385
Symbol 1375 GraphicUsed by:1385 1668 1745 1766
Symbol 1376 GraphicUsed by:1385 1668 1745 1766
Symbol 1377 GraphicUsed by:1385
Symbol 1378 GraphicUsed by:1385 1668 1745 1766
Symbol 1379 GraphicUsed by:1385 1668 1745 1766 1943
Symbol 1380 GraphicUsed by:1385 1943
Symbol 1381 GraphicUsed by:1385 1668 1745 1766 1943
Symbol 1382 GraphicUsed by:1385 1668 1745 1766
Symbol 1383 GraphicUsed by:1385
Symbol 1384 GraphicUsed by:1385 1668 1745 1766
Symbol 1385 MovieClip {Survivor_3_13}Uses:1362 1329 1363 1331 1364 1365 1366 1335 1367 1368 1369 1339 1370 15 1371 1343 1372 1373 1374 1347 1375 1376 1377 1351 1378 1379 1380 1355 1381 1382 1383 1359 1384Used by:2466
Symbol 1386 GraphicUsed by:1394 1669 1746 1767
Symbol 1387 GraphicUsed by:1394 1669 1746 1767
Symbol 1388 GraphicUsed by:1394 1669 1746 1767
Symbol 1389 GraphicUsed by:1394 1669 1746 1767
Symbol 1390 GraphicUsed by:1394 1669 1746 1767
Symbol 1391 GraphicUsed by:1394 1669 1746 1767
Symbol 1392 GraphicUsed by:1394 1669 1746 1767
Symbol 1393 GraphicUsed by:1394 1669 1746 1767
Symbol 1394 MovieClip {Survivor_3_12}Uses:1 1169 1171 1386 1272 1175 1387 1277 1179 1388 1282 1182 1389 1286 1186 1390 1190 1391 1295 1194 1392 1198 1393Used by:2466
Symbol 1395 GraphicUsed by:1411
Symbol 1396 GraphicUsed by:1411 1444 1678 1689 1747 1750 1768 1771
Symbol 1397 GraphicUsed by:1411
Symbol 1398 GraphicUsed by:1411 1444 1678 1689 1747 1750 1768 1771
Symbol 1399 GraphicUsed by:1411
Symbol 1400 GraphicUsed by:1411 1444 1678 1689 1747 1750 1768 1771
Symbol 1401 GraphicUsed by:1411
Symbol 1402 GraphicUsed by:1411 1444 1678 1689 1747 1750 1768 1771
Symbol 1403 GraphicUsed by:1411
Symbol 1404 GraphicUsed by:1411 1444 1678 1689 1747 1750 1768 1771
Symbol 1405 GraphicUsed by:1411
Symbol 1406 GraphicUsed by:1411 1444 1678 1689 1747 1750 1768 1771
Symbol 1407 GraphicUsed by:1411
Symbol 1408 GraphicUsed by:1411 1444 1678 1689 1747 1750 1768 1771
Symbol 1409 GraphicUsed by:1411
Symbol 1410 GraphicUsed by:1411 1444 1678 1689 1747 1750 1768 1771
Symbol 1411 MovieClip {Survivor_3_11}Uses:1 1169 1395 1171 1396 1272 1397 1175 1398 1277 1399 1179 1400 1282 1401 1182 1402 1286 1403 1186 1404 1405 1190 1406 1295 1407 1194 1408 1409 1198 1410Used by:2466
Symbol 1412 GraphicUsed by:1428
Symbol 1413 GraphicUsed by:1428 1563 1687 1736 1748 1757 1769 1778
Symbol 1414 GraphicUsed by:1428
Symbol 1415 GraphicUsed by:1428 1563 1687 1736 1748 1757 1769 1778
Symbol 1416 GraphicUsed by:1428 1824 1942
Symbol 1417 GraphicUsed by:1428 1563 1687 1736 1748 1757 1769 1778 1824 1942
Symbol 1418 GraphicUsed by:1428
Symbol 1419 GraphicUsed by:1428 1563 1687 1736 1748 1757 1769 1778
Symbol 1420 GraphicUsed by:1428
Symbol 1421 GraphicUsed by:1428 1563 1687 1736 1748 1757 1769 1778
Symbol 1422 GraphicUsed by:1428
Symbol 1423 GraphicUsed by:1428 1563 1687 1736 1748 1757 1769 1778
Symbol 1424 GraphicUsed by:1428
Symbol 1425 GraphicUsed by:1428 1563 1687 1736 1748 1757 1769 1778
Symbol 1426 GraphicUsed by:1428
Symbol 1427 GraphicUsed by:1428 1563 1687 1736 1748 1757 1769 1778
Symbol 1428 MovieClip {Survivor_3_10}Uses:1 1169 1412 1171 1413 1272 1414 1175 1415 1277 1416 1179 1417 1282 1418 1182 1419 1286 1420 1186 1421 1422 1190 1423 1295 1424 1194 1425 1426 1198 1427Used by:2466
Symbol 1429 GraphicUsed by:1443 1688 1749 1770
Symbol 1430 GraphicUsed by:1443 1688 1749 1770
Symbol 1431 GraphicUsed by:1443 1688 1749 1770
Symbol 1432 GraphicUsed by:1443 1688 1749 1770
Symbol 1433 GraphicUsed by:1443 1688 1749 1770
Symbol 1434 GraphicUsed by:1443 1688 1749 1770
Symbol 1435 GraphicUsed by:1443 1688 1749 1770
Symbol 1436 GraphicUsed by:1443 1688 1749 1770
Symbol 1437 GraphicUsed by:1443 1688 1749 1770
Symbol 1438 GraphicUsed by:1443 1688 1749 1770
Symbol 1439 GraphicUsed by:1443 1688 1749 1770
Symbol 1440 GraphicUsed by:1443 1688 1749 1770
Symbol 1441 GraphicUsed by:1443 1688 1749 1770
Symbol 1442 GraphicUsed by:1443 1688 1749 1770
Symbol 1443 MovieClip {Survivor_3_9}Uses:1429 1226 1228 1430 1431 1231 1432 1433 1234 1434 1435 1236 1436 1437 1239 1438 1439 1242 1440 1245 1441 1247 1442Used by:2466
Symbol 1444 MovieClip {Survivor_3_8}Uses:1 1226 1170 1228 1396 1272 1174 1231 1398 1277 1178 1234 1400 1282 1181 1236 1402 1286 1185 1239 1404 1189 1242 1406 1295 1193 1245 1408 1197 1247 1410Used by:2466
Symbol 1445 GraphicUsed by:1469 1698 1751 1772
Symbol 1446 GraphicUsed by:1469
Symbol 1447 GraphicUsed by:1469 1698 1751 1772
Symbol 1448 GraphicUsed by:1469 1698 1751 1772
Symbol 1449 GraphicUsed by:1469
Symbol 1450 GraphicUsed by:1469 1698 1751 1772
Symbol 1451 GraphicUsed by:1469 1698 1751 1772
Symbol 1452 GraphicUsed by:1469
Symbol 1453 GraphicUsed by:1469 1698 1751 1772
Symbol 1454 GraphicUsed by:1469 1698 1751 1772
Symbol 1455 GraphicUsed by:1469
Symbol 1456 GraphicUsed by:1469 1698 1751 1772
Symbol 1457 GraphicUsed by:1469 1698 1751 1772
Symbol 1458 GraphicUsed by:1469
Symbol 1459 GraphicUsed by:1469 1698 1751 1772
Symbol 1460 GraphicUsed by:1469 1698 1751 1772
Symbol 1461 GraphicUsed by:1469
Symbol 1462 GraphicUsed by:1469 1698 1751 1772
Symbol 1463 GraphicUsed by:1469 1698 1751 1772
Symbol 1464 GraphicUsed by:1469
Symbol 1465 GraphicUsed by:1469 1698 1751 1772
Symbol 1466 GraphicUsed by:1469 1698 1751 1772
Symbol 1467 GraphicUsed by:1469
Symbol 1468 GraphicUsed by:1469 1698 1751 1772
Symbol 1469 MovieClip {Survivor_3_7}Uses:1445 1226 1446 1228 1447 1448 1449 1231 1450 1451 1452 1234 1453 1454 1455 1236 1456 1457 1458 1239 1459 1460 1461 1242 1462 1463 1464 1245 1465 1466 1467 1247 1468Used by:2466
Symbol 1470 GraphicUsed by:1478 1699 1752 1773
Symbol 1471 GraphicUsed by:1478 1699 1752 1773
Symbol 1472 GraphicUsed by:1478 1699 1752 1773
Symbol 1473 GraphicUsed by:1478 1699 1752 1773
Symbol 1474 GraphicUsed by:1478 1699 1752 1773
Symbol 1475 GraphicUsed by:1478 1699 1752 1773
Symbol 1476 GraphicUsed by:1478 1699 1752 1773
Symbol 1477 GraphicUsed by:1478 1699 1752 1773
Symbol 1478 MovieClip {Survivor_3_6}Uses:1 1268 1270 1470 1272 1275 1471 1277 1280 1472 1282 1284 1473 1286 1289 1474 1293 1475 1295 1298 1476 1302 1477Used by:2466
Symbol 1479 GraphicUsed by:1495
Symbol 1480 GraphicUsed by:1495 1546 1708 1727 1753 1756 1774 1777
Symbol 1481 GraphicUsed by:1495
Symbol 1482 GraphicUsed by:1495 1546 1708 1727 1753 1756 1774 1777
Symbol 1483 GraphicUsed by:1495
Symbol 1484 GraphicUsed by:1495 1546 1708 1727 1753 1756 1774 1777
Symbol 1485 GraphicUsed by:1495
Symbol 1486 GraphicUsed by:1495 1546 1708 1727 1753 1756 1774 1777
Symbol 1487 GraphicUsed by:1495
Symbol 1488 GraphicUsed by:1495 1546 1708 1727 1753 1756 1774 1777
Symbol 1489 GraphicUsed by:1495
Symbol 1490 GraphicUsed by:1495 1546 1708 1727 1753 1756 1774 1777
Symbol 1491 GraphicUsed by:1495
Symbol 1492 GraphicUsed by:1495 1546 1708 1727 1753 1756 1774 1777
Symbol 1493 GraphicUsed by:1495
Symbol 1494 GraphicUsed by:1495 1546 1708 1727 1753 1756 1774 1777
Symbol 1495 MovieClip {Survivor_3_5}Uses:1 1268 1479 1270 1480 1272 1481 1275 1482 1277 1483 1280 1484 1282 1485 1284 1486 1286 1487 1289 1488 1489 1293 1490 1295 1491 1298 1492 1493 1302 1494Used by:2466
Symbol 1496 GraphicUsed by:1512
Symbol 1497 GraphicUsed by:1512 1717 1754 1775
Symbol 1498 GraphicUsed by:1512
Symbol 1499 GraphicUsed by:1512 1717 1754 1775
Symbol 1500 GraphicUsed by:1512
Symbol 1501 GraphicUsed by:1512 1717 1754 1775
Symbol 1502 GraphicUsed by:1512
Symbol 1503 GraphicUsed by:1512 1717 1754 1775
Symbol 1504 GraphicUsed by:1512
Symbol 1505 GraphicUsed by:1512 1717 1754 1775
Symbol 1506 GraphicUsed by:1512
Symbol 1507 GraphicUsed by:1512 1717 1754 1775
Symbol 1508 GraphicUsed by:1512
Symbol 1509 GraphicUsed by:1512 1717 1754 1775
Symbol 1510 GraphicUsed by:1512
Symbol 1511 GraphicUsed by:1512 1717 1754 1775
Symbol 1512 MovieClip {Survivor_3_4}Uses:8 1268 1496 1270 1497 1307 1498 1275 1499 1310 1500 1280 1501 941 1502 1284 1503 1315 1504 1289 1505 1318 1506 1293 1507 1321 1508 1298 1509 1324 1510 1302 1511Used by:2466
Symbol 1513 GraphicUsed by:1529 1718 1755 1776
Symbol 1514 GraphicUsed by:1529 1718 1755 1776
Symbol 1515 GraphicUsed by:1529 1718 1755 1776
Symbol 1516 GraphicUsed by:1529 1718 1755 1776
Symbol 1517 GraphicUsed by:1529 1718 1755 1776
Symbol 1518 GraphicUsed by:1529 1718 1755 1776
Symbol 1519 GraphicUsed by:1529 1718 1755 1776
Symbol 1520 GraphicUsed by:1529 1718 1755 1776
Symbol 1521 GraphicUsed by:1529 1718 1755 1776
Symbol 1522 GraphicUsed by:1529 1718 1755 1776
Symbol 1523 GraphicUsed by:1529 1718 1755 1776
Symbol 1524 GraphicUsed by:1529 1718 1755 1776
Symbol 1525 GraphicUsed by:1529 1718 1755 1776
Symbol 1526 GraphicUsed by:1529 1718 1755 1776
Symbol 1527 GraphicUsed by:1529 1718 1755 1776
Symbol 1528 GraphicUsed by:1529 1718 1755 1776
Symbol 1529 MovieClip {Survivor_3_3}Uses:1513 1329 1331 1514 1515 1335 1516 1517 1339 1518 1519 1343 1520 1521 1347 1522 1523 1351 1524 1525 1355 1526 1527 1359 1528Used by:2466
Symbol 1530 GraphicUsed by:1546 1727 1756 1777
Symbol 1531 GraphicUsed by:1546
Symbol 1532 GraphicUsed by:1546 1727 1756 1777
Symbol 1533 GraphicUsed by:1546
Symbol 1534 GraphicUsed by:1546 1727 1756 1777
Symbol 1535 GraphicUsed by:1546
Symbol 1536 GraphicUsed by:1546 1727 1756 1777
Symbol 1537 GraphicUsed by:1546
Symbol 1538 GraphicUsed by:1546 1727 1756 1777
Symbol 1539 GraphicUsed by:1546
Symbol 1540 GraphicUsed by:1546 1727 1756 1777
Symbol 1541 GraphicUsed by:1546
Symbol 1542 GraphicUsed by:1546 1727 1756 1777
Symbol 1543 GraphicUsed by:1546
Symbol 1544 GraphicUsed by:1546 1727 1756 1777
Symbol 1545 GraphicUsed by:1546
Symbol 1546 MovieClip {Survivor_3_2}Uses:1530 1329 1531 1331 1480 1532 1533 1335 1482 1534 1535 1339 1484 1536 1537 1343 1486 1538 1539 1347 1488 1540 1541 1351 1490 1542 1543 1355 1492 1544 1545 1359 1494Used by:2466
Symbol 1547 GraphicUsed by:1563 1736 1757 1778
Symbol 1548 GraphicUsed by:1563
Symbol 1549 GraphicUsed by:1563 1736 1757 1778
Symbol 1550 GraphicUsed by:1563
Symbol 1551 GraphicUsed by:1563 1736 1757 1778
Symbol 1552 GraphicUsed by:1563
Symbol 1553 GraphicUsed by:1563 1736 1757 1778
Symbol 1554 GraphicUsed by:1563
Symbol 1555 GraphicUsed by:1563 1736 1757 1778
Symbol 1556 GraphicUsed by:1563
Symbol 1557 GraphicUsed by:1563 1736 1757 1778
Symbol 1558 GraphicUsed by:1563
Symbol 1559 GraphicUsed by:1563 1736 1757 1778
Symbol 1560 GraphicUsed by:1563
Symbol 1561 GraphicUsed by:1563 1736 1757 1778
Symbol 1562 GraphicUsed by:1563
Symbol 1563 MovieClip {Survivor_3_1}Uses:1547 1329 1548 1331 1413 1549 1550 1335 1415 1551 1552 1339 1417 1553 1554 1343 1419 1555 1556 1347 1421 1557 1558 1351 1423 1559 1560 1355 1425 1561 1562 1359 1427Used by:2466
Symbol 1564 GraphicUsed by:1581 1590 1607 1616 1633 1642 1659 1668 1669 1678 1687 1688 1689 1698 1699 1708 1717 1718 1727 1736
Symbol 1565 GraphicUsed by:1581 1689 1738 1750 1759 1771
Symbol 1566 GraphicUsed by:1581 1590 1669 1678 1687 1738 1739 1746 1747 1748 1759 1760 1767 1768 1769
Symbol 1567 GraphicUsed by:1581 1689 1738 1750 1759 1771
Symbol 1568 GraphicUsed by:1581 1590 1669 1678 1687 1738 1739 1746 1747 1748 1759 1760 1767 1768 1769
Symbol 1569 GraphicUsed by:1581 1689 1738 1750 1759 1771
Symbol 1570 GraphicUsed by:1581 1590 1669 1678 1687 1738 1739 1746 1747 1748 1759 1760 1767 1768 1769
Symbol 1571 GraphicUsed by:1581 1689 1738 1750 1759 1771
Symbol 1572 GraphicUsed by:1581 1590 1669 1678 1687 1738 1739 1746 1747 1748 1759 1760 1767 1768 1769
Symbol 1573 GraphicUsed by:1581 1689 1738 1750 1759 1771
Symbol 1574 GraphicUsed by:1581 1590 1669 1678 1687 1738 1739 1746 1747 1748 1759 1760 1767 1768 1769
Symbol 1575 GraphicUsed by:1581 1689 1738 1750 1759 1771
Symbol 1576 GraphicUsed by:1581 1590 1669 1678 1687 1738 1739 1746 1747 1748 1759 1760 1767 1768 1769
Symbol 1577 GraphicUsed by:1581 1689 1738 1750 1759 1771
Symbol 1578 GraphicUsed by:1581 1590 1669 1678 1687 1738 1739 1746 1747 1748 1759 1760 1767 1768 1769
Symbol 1579 GraphicUsed by:1581 1689 1738 1750 1759 1771
Symbol 1580 GraphicUsed by:1581 1590 1669 1678 1687 1738 1739 1746 1747 1748 1759 1760 1767 1768 1769
Symbol 1581 MovieClip {Survivor_2_20}Uses:1168 1169 1564 1565 1566 1172 1173 1567 1568 1176 1177 1569 1570 1180 931 1571 1572 1183 1184 1573 1574 1187 1188 1575 1576 1191 1192 1577 1578 1195 1196 1579 1580 1199Used by:2466
Symbol 1582 GraphicUsed by:1590 1739 1760
Symbol 1583 GraphicUsed by:1590 1739 1760
Symbol 1584 GraphicUsed by:1590 1739 1760
Symbol 1585 GraphicUsed by:1590 1739 1760
Symbol 1586 GraphicUsed by:1590 1739 1760
Symbol 1587 GraphicUsed by:1590 1739 1760
Symbol 1588 GraphicUsed by:1590 1739 1760
Symbol 1589 GraphicUsed by:1590 1739 1760
Symbol 1590 MovieClip {Survivor_2_19}Uses:1201 1169 1564 1582 1566 1203 1204 1583 1568 1206 1207 1584 1570 1209 1210 1585 1572 1212 1213 1586 1574 1215 1216 1587 1576 1218 1219 1588 1578 1221 1222 1589 1580 1224Used by:2466
Symbol 1591 GraphicUsed by:1607 1740 1761
Symbol 1592 GraphicUsed by:1607 1616 1688 1689 1698 1740 1741 1749 1750 1751 1761 1762 1770 1771 1772
Symbol 1593 GraphicUsed by:1607 1740 1761
Symbol 1594 GraphicUsed by:1607 1616 1688 1689 1698 1740 1741 1749 1750 1751 1761 1762 1770 1771 1772
Symbol 1595 GraphicUsed by:1607 1740 1761
Symbol 1596 GraphicUsed by:1607 1616 1688 1689 1698 1740 1741 1749 1750 1751 1761 1762 1770 1771 1772
Symbol 1597 GraphicUsed by:1607 1740 1761
Symbol 1598 GraphicUsed by:1607 1616 1688 1689 1698 1740 1741 1749 1750 1751 1761 1762 1770 1771 1772
Symbol 1599 GraphicUsed by:1607 1740 1761
Symbol 1600 GraphicUsed by:1607 1616 1688 1689 1698 1740 1741 1749 1750 1751 1761 1762 1770 1771 1772
Symbol 1601 GraphicUsed by:1607 1740 1761
Symbol 1602 GraphicUsed by:1607 1616 1688 1689 1698 1740 1741 1749 1750 1751 1761 1762 1770 1771 1772
Symbol 1603 GraphicUsed by:1607 1740 1761
Symbol 1604 GraphicUsed by:1607 1616 1688 1689 1698 1740 1741 1749 1750 1751 1761 1762 1770 1771 1772
Symbol 1605 GraphicUsed by:1607 1740 1761
Symbol 1606 GraphicUsed by:1607 1616 1688 1689 1698 1740 1741 1749 1750 1751 1761 1762 1770 1771 1772
Symbol 1607 MovieClip {Survivor_2_18}Uses:1201 1226 1564 1591 1592 1229 1204 1593 1594 1232 1207 1595 1596 1180 1210 1597 1598 1237 1213 1599 1600 1240 1216 1601 1602 1243 1219 1603 1604 1195 1222 1605 1606 1248Used by:2466
Symbol 1608 GraphicUsed by:1616 1741 1762
Symbol 1609 GraphicUsed by:1616 1741 1762
Symbol 1610 GraphicUsed by:1616 1741 1762
Symbol 1611 GraphicUsed by:1616 1741 1762
Symbol 1612 GraphicUsed by:1616 1741 1762
Symbol 1613 GraphicUsed by:1616 1741 1762
Symbol 1614 GraphicUsed by:1616 1741 1762
Symbol 1615 GraphicUsed by:1616 1741 1762
Symbol 1616 MovieClip {Survivor_2_17}Uses:1168 1226 1564 1608 1592 1251 1173 1609 1594 1253 1177 1610 1596 1255 931 1611 1598 1257 1184 1612 1600 1259 1188 1613 1602 1261 1192 1614 1604 1263 1196 1615 1606 1265Used by:2466
Symbol 1617 GraphicUsed by:1633 1742 1763
Symbol 1618 GraphicUsed by:1633 1642 1699 1708 1717 1742 1743 1752 1753 1754 1763 1764 1773 1774 1775
Symbol 1619 GraphicUsed by:1633 1742 1763
Symbol 1620 GraphicUsed by:1633 1642 1699 1708 1717 1742 1743 1752 1753 1754 1763 1764 1773 1774 1775
Symbol 1621 GraphicUsed by:1633 1742 1763
Symbol 1622 GraphicUsed by:1633 1642 1699 1708 1717 1742 1743 1752 1753 1754 1763 1764 1773 1774 1775
Symbol 1623 GraphicUsed by:1633 1742 1763
Symbol 1624 GraphicUsed by:1633 1642 1699 1708 1717 1742 1743 1752 1753 1754 1763 1764 1773 1774 1775
Symbol 1625 GraphicUsed by:1633 1742 1763
Symbol 1626 GraphicUsed by:1633 1642 1699 1708 1717 1742 1743 1752 1753 1754 1763 1764 1773 1774 1775
Symbol 1627 GraphicUsed by:1633 1742 1763
Symbol 1628 GraphicUsed by:1633 1642 1699 1708 1717 1742 1743 1752 1753 1754 1763 1764 1773 1774 1775
Symbol 1629 GraphicUsed by:1633 1742 1763
Symbol 1630 GraphicUsed by:1633 1642 1699 1708 1717 1742 1743 1752 1753 1754 1763 1764 1773 1774 1775
Symbol 1631 GraphicUsed by:1633 1742 1763
Symbol 1632 GraphicUsed by:1633 1642 1699 1708 1717 1742 1743 1752 1753 1754 1763 1764 1773 1774 1775
Symbol 1633 MovieClip {Survivor_2_16}Uses:1 1267 1268 1564 1617 1618 1271 1272 1273 1619 1620 1276 1277 1278 1621 1622 1281 1282 940 1623 1624 1285 1286 1287 1625 1626 1290 1291 1627 1628 1294 1295 1296 1629 1630 1299 1300 1631 1632 1303Used by:2466
Symbol 1634 GraphicUsed by:1642 1743 1764
Symbol 1635 GraphicUsed by:1642 1743 1764
Symbol 1636 GraphicUsed by:1642 1743 1764
Symbol 1637 GraphicUsed by:1642 1743 1764
Symbol 1638 GraphicUsed by:1642 1743 1764
Symbol 1639 GraphicUsed by:1642 1743 1764
Symbol 1640 GraphicUsed by:1642 1743 1764
Symbol 1641 GraphicUsed by:1642 1743 1764
Symbol 1642 MovieClip {Survivor_2_15}Uses:1267 8 1268 1564 1634 1618 1306 1273 1307 1635 1620 1309 1278 1310 1636 1622 1312 940 941 1637 1624 1314 1287 1315 1638 1626 1317 1291 1318 1639 1628 1320 1296 1321 1640 1630 1323 1300 1324 1641 1632 1326Used by:2466
Symbol 1643 GraphicUsed by:1659 1744 1765
Symbol 1644 GraphicUsed by:1659 1668 1718 1727 1736 1744 1745 1755 1756 1757 1765 1766 1776 1777 1778
Symbol 1645 GraphicUsed by:1659 1744 1765
Symbol 1646 GraphicUsed by:1659 1668 1718 1727 1736 1744 1745 1755 1756 1757 1765 1766 1776 1777 1778
Symbol 1647 GraphicUsed by:1659 1744 1765
Symbol 1648 GraphicUsed by:1659 1668 1718 1727 1736 1744 1745 1755 1756 1757 1765 1766 1776 1777 1778
Symbol 1649 GraphicUsed by:1659 1744 1765
Symbol 1650 GraphicUsed by:1659 1668 1718 1727 1736 1744 1745 1755 1756 1757 1765 1766 1776 1777 1778
Symbol 1651 GraphicUsed by:1659 1744 1765
Symbol 1652 GraphicUsed by:1659 1668 1718 1727 1736 1744 1745 1755 1756 1757 1765 1766 1776 1777 1778
Symbol 1653 GraphicUsed by:1659 1744 1765
Symbol 1654 GraphicUsed by:1659 1668 1718 1727 1736 1744 1745 1755 1756 1757 1765 1766 1776 1777 1778
Symbol 1655 GraphicUsed by:1659 1744 1765
Symbol 1656 GraphicUsed by:1659 1668 1718 1727 1736 1744 1745 1755 1756 1757 1765 1766 1776 1777 1778
Symbol 1657 GraphicUsed by:1659 1744 1765
Symbol 1658 GraphicUsed by:1659 1668 1718 1727 1736 1744 1745 1755 1756 1757 1765 1766 1776 1777 1778
Symbol 1659 MovieClip {Survivor_2_14}Uses:1328 1329 1564 1643 1644 1332 1333 1645 1646 1336 1337 1647 1648 1340 1341 1649 1650 1344 1345 1651 1652 1348 1349 1653 1654 1352 1353 1655 1656 1356 1357 1657 1658 1360Used by:2466
Symbol 1660 GraphicUsed by:1668 1745 1766
Symbol 1661 GraphicUsed by:1668 1745 1766
Symbol 1662 GraphicUsed by:1668 1745 1766
Symbol 1663 GraphicUsed by:1668 1745 1766
Symbol 1664 GraphicUsed by:1668 1745 1766
Symbol 1665 GraphicUsed by:1668 1745 1766
Symbol 1666 GraphicUsed by:1668 1745 1766
Symbol 1667 GraphicUsed by:1668 1745 1766
Symbol 1668 MovieClip {Survivor_2_13}Uses:1362 1329 1564 1660 1644 1364 1365 1661 1646 1367 1368 1662 1648 1370 15 1663 1650 1372 1373 1664 1652 1375 1376 1665 1654 1378 1379 1666 1656 1381 1382 1667 1658 1384Used by:2466
Symbol 1669 MovieClip {Survivor_2_12}Uses:1 1169 1564 1566 1386 1272 1568 1387 1277 1570 1388 1282 1572 1389 1286 1574 1390 1576 1391 1295 1578 1392 1580 1393Used by:2466
Symbol 1670 GraphicUsed by:1678 1747 1768
Symbol 1671 GraphicUsed by:1678 1747 1768
Symbol 1672 GraphicUsed by:1678 1747 1768
Symbol 1673 GraphicUsed by:1678 1747 1768
Symbol 1674 GraphicUsed by:1678 1747 1768
Symbol 1675 GraphicUsed by:1678 1747 1768
Symbol 1676 GraphicUsed by:1678 1747 1768
Symbol 1677 GraphicUsed by:1678 1747 1768
Symbol 1678 MovieClip {Survivor_2_11}Uses:1 1169 1564 1670 1566 1396 1272 1671 1568 1398 1277 1672 1570 1400 1282 1673 1572 1402 1286 1674 1574 1404 1675 1576 1406 1295 1676 1578 1408 1677 1580 1410Used by:2466
Symbol 1679 GraphicUsed by:1687 1748 1769
Symbol 1680 GraphicUsed by:1687 1748 1769
Symbol 1681 GraphicUsed by:1687 1748 1769
Symbol 1682 GraphicUsed by:1687 1748 1769
Symbol 1683 GraphicUsed by:1687 1748 1769
Symbol 1684 GraphicUsed by:1687 1748 1769
Symbol 1685 GraphicUsed by:1687 1748 1769
Symbol 1686 GraphicUsed by:1687 1748 1769
Symbol 1687 MovieClip {Survivor_2_10}Uses:1 1169 1564 1679 1566 1413 1272 1680 1568 1415 1277 1681 1570 1417 1282 1682 1572 1419 1286 1683 1574 1421 1684 1576 1423 1295 1685 1578 1425 1686 1580 1427Used by:2466
Symbol 1688 MovieClip {Survivor_2_9}Uses:1429 1226 1564 1592 1430 1431 1594 1432 1433 1596 1434 1435 1598 1436 1437 1600 1438 1439 1602 1440 1604 1441 1606 1442Used by:2466
Symbol 1689 MovieClip {Survivor_2_8}Uses:1 1226 1564 1565 1592 1396 1272 1567 1594 1398 1277 1569 1596 1400 1282 1571 1598 1402 1286 1573 1600 1404 1575 1602 1406 1295 1577 1604 1408 1579 1606 1410Used by:2466
Symbol 1690 GraphicUsed by:1698 1751 1772
Symbol 1691 GraphicUsed by:1698 1751 1772
Symbol 1692 GraphicUsed by:1698 1751 1772
Symbol 1693 GraphicUsed by:1698 1751 1772
Symbol 1694 GraphicUsed by:1698 1751 1772
Symbol 1695 GraphicUsed by:1698 1751 1772
Symbol 1696 GraphicUsed by:1698 1751 1772
Symbol 1697 GraphicUsed by:1698 1751 1772
Symbol 1698 MovieClip {Survivor_2_7}Uses:1445 1226 1564 1690 1592 1447 1448 1691 1594 1450 1451 1692 1596 1453 1454 1693 1598 1456 1457 1694 1600 1459 1460 1695 1602 1462 1463 1696 1604 1465 1466 1697 1606 1468Used by:2466
Symbol 1699 MovieClip {Survivor_2_6}Uses:1 1268 1564 1618 1470 1272 1620 1471 1277 1622 1472 1282 1624 1473 1286 1626 1474 1628 1475 1295 1630 1476 1632 1477Used by:2466
Symbol 1700 GraphicUsed by:1708 1753 1774
Symbol 1701 GraphicUsed by:1708 1753 1774
Symbol 1702 GraphicUsed by:1708 1753 1774
Symbol 1703 GraphicUsed by:1708 1753 1774
Symbol 1704 GraphicUsed by:1708 1753 1774
Symbol 1705 GraphicUsed by:1708 1753 1774
Symbol 1706 GraphicUsed by:1708 1753 1774
Symbol 1707 GraphicUsed by:1708 1753 1774
Symbol 1708 MovieClip {Survivor_2_5}Uses:1 1268 1564 1700 1618 1480 1272 1701 1620 1482 1277 1702 1622 1484 1282 1703 1624 1486 1286 1704 1626 1488 1705 1628 1490 1295 1706 1630 1492 1707 1632 1494Used by:2466
Symbol 1709 GraphicUsed by:1717 1754 1775
Symbol 1710 GraphicUsed by:1717 1754 1775
Symbol 1711 GraphicUsed by:1717 1754 1775
Symbol 1712 GraphicUsed by:1717 1754 1775
Symbol 1713 GraphicUsed by:1717 1754 1775
Symbol 1714 GraphicUsed by:1717 1754 1775
Symbol 1715 GraphicUsed by:1717 1754 1775
Symbol 1716 GraphicUsed by:1717 1754 1775
Symbol 1717 MovieClip {Survivor_2_4}Uses:8 1268 1564 1709 1618 1497 1307 1710 1620 1499 1310 1711 1622 1501 941 1712 1624 1503 1315 1713 1626 1505 1318 1714 1628 1507 1321 1715 1630 1509 1324 1716 1632 1511Used by:2466
Symbol 1718 MovieClip {Survivor_2_3}Uses:1513 1329 1564 1644 1514 1515 1646 1516 1517 1648 1518 1519 1650 1520 1521 1652 1522 1523 1654 1524 1525 1656 1526 1527 1658 1528Used by:2466
Symbol 1719 GraphicUsed by:1727 1756 1777
Symbol 1720 GraphicUsed by:1727 1756 1777
Symbol 1721 GraphicUsed by:1727 1756 1777
Symbol 1722 GraphicUsed by:1727 1756 1777
Symbol 1723 GraphicUsed by:1727 1756 1777
Symbol 1724 GraphicUsed by:1727 1756 1777
Symbol 1725 GraphicUsed by:1727 1756 1777
Symbol 1726 GraphicUsed by:1727 1756 1777
Symbol 1727 MovieClip {Survivor_2_2}Uses:1530 1329 1564 1719 1644 1480 1532 1720 1646 1482 1534 1721 1648 1484 1536 1722 1650 1486 1538 1723 1652 1488 1540 1724 1654 1490 1542 1725 1656 1492 1544 1726 1658 1494Used by:2466
Symbol 1728 GraphicUsed by:1736 1757 1778
Symbol 1729 GraphicUsed by:1736 1757 1778
Symbol 1730 GraphicUsed by:1736 1757 1778
Symbol 1731 GraphicUsed by:1736 1757 1778
Symbol 1732 GraphicUsed by:1736 1757 1778
Symbol 1733 GraphicUsed by:1736 1757 1778
Symbol 1734 GraphicUsed by:1736 1757 1778
Symbol 1735 GraphicUsed by:1736 1757 1778
Symbol 1736 MovieClip {Survivor_2_1}Uses:1547 1329 1564 1728 1644 1413 1549 1729 1646 1415 1551 1730 1648 1417 1553 1731 1650 1419 1555 1732 1652 1421 1557 1733 1654 1423 1559 1734 1656 1425 1561 1735 1658 1427Used by:2466
Symbol 1737 GraphicUsed by:1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1825 1942 1944
Symbol 1738 MovieClip {Survivor_1_20}Uses:1168 1169 1737 1565 1566 1172 1173 1567 1568 1176 1177 1569 1570 1180 931 1571 1572 1183 1184 1573 1574 1187 1188 1575 1576 1191 1192 1577 1578 1195 1196 1579 1580 1199Used by:2466
Symbol 1739 MovieClip {Survivor_1_19}Uses:1201 1169 1737 1582 1566 1203 1204 1583 1568 1206 1207 1584 1570 1209 1210 1585 1572 1212 1213 1586 1574 1215 1216 1587 1576 1218 1219 1588 1578 1221 1222 1589 1580 1224Used by:2466
Symbol 1740 MovieClip {Survivor_1_18}Uses:1201 1226 1737 1591 1592 1229 1204 1593 1594 1232 1207 1595 1596 1180 1210 1597 1598 1237 1213 1599 1600 1240 1216 1601 1602 1243 1219 1603 1604 1195 1222 1605 1606 1248Used by:2466
Symbol 1741 MovieClip {Survivor_1_17}Uses:1168 1226 1737 1608 1592 1251 1173 1609 1594 1253 1177 1610 1596 1255 931 1611 1598 1257 1184 1612 1600 1259 1188 1613 1602 1261 1192 1614 1604 1263 1196 1615 1606 1265Used by:2466
Symbol 1742 MovieClip {Survivor_1_16}Uses:1 1267 1268 1737 1617 1618 1271 1272 1273 1619 1620 1276 1277 1278 1621 1622 1281 1282 940 1623 1624 1285 1286 1287 1625 1626 1290 1291 1627 1628 1294 1295 1296 1629 1630 1299 1300 1631 1632 1303Used by:2466
Symbol 1743 MovieClip {Survivor_1_15}Uses:1267 8 1268 1737 1634 1618 1306 1273 1307 1635 1620 1309 1278 1310 1636 1622 1312 940 941 1637 1624 1314 1287 1315 1638 1626 1317 1291 1318 1639 1628 1320 1296 1321 1640 1630 1323 1300 1324 1641 1632 1326Used by:2466
Symbol 1744 MovieClip {Survivor_1_14}Uses:1328 1329 1737 1643 1644 1332 1333 1645 1646 1336 1337 1647 1648 1340 1341 1649 1650 1344 1345 1651 1652 1348 1349 1653 1654 1352 1353 1655 1656 1356 1357 1657 1658 1360Used by:2466
Symbol 1745 MovieClip {Survivor_1_13}Uses:1362 1329 1737 1660 1644 1364 1365 1661 1646 1367 1368 1662 1648 1370 15 1663 1650 1372 1373 1664 1652 1375 1376 1665 1654 1378 1379 1666 1656 1381 1382 1667 1658 1384Used by:2466
Symbol 1746 MovieClip {Survivor_1_12}Uses:1 1169 1737 1566 1386 1272 1568 1387 1277 1570 1388 1282 1572 1389 1286 1574 1390 1576 1391 1295 1578 1392 1580 1393Used by:2466
Symbol 1747 MovieClip {Survivor_1_11}Uses:1 1169 1737 1670 1566 1396 1272 1671 1568 1398 1277 1672 1570 1400 1282 1673 1572 1402 1286 1674 1574 1404 1675 1576 1406 1295 1676 1578 1408 1677 1580 1410Used by:2466
Symbol 1748 MovieClip {Survivor_1_10}Uses:1 1169 1737 1679 1566 1413 1272 1680 1568 1415 1277 1681 1570 1417 1282 1682 1572 1419 1286 1683 1574 1421 1684 1576 1423 1295 1685 1578 1425 1686 1580 1427Used by:2466
Symbol 1749 MovieClip {Survivor_1_9}Uses:1429 1226 1737 1592 1430 1431 1594 1432 1433 1596 1434 1435 1598 1436 1437 1600 1438 1439 1602 1440 1604 1441 1606 1442Used by:2466
Symbol 1750 MovieClip {Survivor_1_8}Uses:1 1226 1737 1565 1592 1396 1272 1567 1594 1398 1277 1569 1596 1400 1282 1571 1598 1402 1286 1573 1600 1404 1575 1602 1406 1295 1577 1604 1408 1579 1606 1410Used by:2466
Symbol 1751 MovieClip {Survivor_1_7}Uses:1445 1226 1737 1690 1592 1447 1448 1691 1594 1450 1451 1692 1596 1453 1454 1693 1598 1456 1457 1694 1600 1459 1460 1695 1602 1462 1463 1696 1604 1465 1466 1697 1606 1468Used by:2466
Symbol 1752 MovieClip {Survivor_1_6}Uses:1 1268 1737 1618 1470 1272 1620 1471 1277 1622 1472 1282 1624 1473 1286 1626 1474 1628 1475 1295 1630 1476 1632 1477Used by:2466
Symbol 1753 MovieClip {Survivor_1_5}Uses:1 1268 1737 1700 1618 1480 1272 1701 1620 1482 1277 1702 1622 1484 1282 1703 1624 1486 1286 1704 1626 1488 1705 1628 1490 1295 1706 1630 1492 1707 1632 1494Used by:2466
Symbol 1754 MovieClip {Survivor_1_4}Uses:8 1268 1737 1709 1618 1497 1307 1710 1620 1499 1310 1711 1622 1501 941 1712 1624 1503 1315 1713 1626 1505 1318 1714 1628 1507 1321 1715 1630 1509 1324 1716 1632 1511Used by:2466
Symbol 1755 MovieClip {Survivor_1_3}Uses:1513 1329 1737 1644 1514 1515 1646 1516 1517 1648 1518 1519 1650 1520 1521 1652 1522 1523 1654 1524 1525 1656 1526 1527 1658 1528Used by:2466
Symbol 1756 MovieClip {Survivor_1_2}Uses:1530 1329 1737 1719 1644 1480 1532 1720 1646 1482 1534 1721 1648 1484 1536 1722 1650 1486 1538 1723 1652 1488 1540 1724 1654 1490 1542 1725 1656 1492 1544 1726 1658 1494Used by:2466
Symbol 1757 MovieClip {Survivor_1_1}Uses:1547 1329 1737 1728 1644 1413 1549 1729 1646 1415 1551 1730 1648 1417 1553 1731 1650 1419 1555 1732 1652 1421 1557 1733 1654 1423 1559 1734 1656 1425 1561 1735 1658 1427Used by:2466
Symbol 1758 GraphicUsed by:1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778
Symbol 1759 MovieClip {Survivor_0_20}Uses:1168 1169 1758 1565 1566 1172 1173 1567 1568 1176 1177 1569 1570 1180 931 1571 1572 1183 1184 1573 1574 1187 1188 1575 1576 1191 1192 1577 1578 1195 1196 1579 1580 1199Used by:2466
Symbol 1760 MovieClip {Survivor_0_19}Uses:1201 1169 1758 1582 1566 1203 1204 1583 1568 1206 1207 1584 1570 1209 1210 1585 1572 1212 1213 1586 1574 1215 1216 1587 1576 1218 1219 1588 1578 1221 1222 1589 1580 1224Used by:2466
Symbol 1761 MovieClip {Survivor_0_18}Uses:1201 1226 1758 1591 1592 1229 1204 1593 1594 1232 1207 1595 1596 1180 1210 1597 1598 1237 1213 1599 1600 1240 1216 1601 1602 1243 1219 1603 1604 1195 1222 1605 1606 1248Used by:2466
Symbol 1762 MovieClip {Survivor_0_17}Uses:1168 1226 1758 1608 1592 1251 1173 1609 1594 1253 1177 1610 1596 1255 931 1611 1598 1257 1184 1612 1600 1259 1188 1613 1602 1261 1192 1614 1604 1263 1196 1615 1606 1265Used by:2466
Symbol 1763 MovieClip {Survivor_0_16}Uses:1 1267 1268 1758 1617 1618 1271 1272 1273 1619 1620 1276 1277 1278 1621 1622 1281 1282 940 1623 1624 1285 1286 1287 1625 1626 1290 1291 1627 1628 1294 1295 1296 1629 1630 1299 1300 1631 1632 1303Used by:2466
Symbol 1764 MovieClip {Survivor_0_15}Uses:1267 8 1268 1758 1634 1618 1306 1273 1307 1635 1620 1309 1278 1310 1636 1622 1312 940 941 1637 1624 1314 1287 1315 1638 1626 1317 1291 1318 1639 1628 1320 1296 1321 1640 1630 1323 1300 1324 1641 1632 1326Used by:2466
Symbol 1765 MovieClip {Survivor_0_14}Uses:1328 1329 1758 1643 1644 1332 1333 1645 1646 1336 1337 1647 1648 1340 1341 1649 1650 1344 1345 1651 1652 1348 1349 1653 1654 1352 1353 1655 1656 1356 1357 1657 1658 1360Used by:2466
Symbol 1766 MovieClip {Survivor_0_13}Uses:1362 1329 1758 1660 1644 1364 1365 1661 1646 1367 1368 1662 1648 1370 15 1663 1650 1372 1373 1664 1652 1375 1376 1665 1654 1378 1379 1666 1656 1381 1382 1667 1658 1384Used by:2466
Symbol 1767 MovieClip {Survivor_0_12}Uses:1 1169 1758 1566 1386 1272 1568 1387 1277 1570 1388 1282 1572 1389 1286 1574 1390 1576 1391 1295 1578 1392 1580 1393Used by:2466
Symbol 1768 MovieClip {Survivor_0_11}Uses:1 1169 1758 1670 1566 1396 1272 1671 1568 1398 1277 1672 1570 1400 1282 1673 1572 1402 1286 1674 1574 1404 1675 1576 1406 1295 1676 1578 1408 1677 1580 1410Used by:2466
Symbol 1769 MovieClip {Survivor_0_10}Uses:1 1169 1758 1679 1566 1413 1272 1680 1568 1415 1277 1681 1570 1417 1282 1682 1572 1419 1286 1683 1574 1421 1684 1576 1423 1295 1685 1578 1425 1686 1580 1427Used by:2466
Symbol 1770 MovieClip {Survivor_0_9}Uses:1429 1226 1758 1592 1430 1431 1594 1432 1433 1596 1434 1435 1598 1436 1437 1600 1438 1439 1602 1440 1604 1441 1606 1442Used by:2466
Symbol 1771 MovieClip {Survivor_0_8}Uses:1 1226 1758 1565 1592 1396 1272 1567 1594 1398 1277 1569 1596 1400 1282 1571 1598 1402 1286 1573 1600 1404 1575 1602 1406 1295 1577 1604 1408 1579 1606 1410Used by:2466
Symbol 1772 MovieClip {Survivor_0_7}Uses:1445 1226 1758 1690 1592 1447 1448 1691 1594 1450 1451 1692 1596 1453 1454 1693 1598 1456 1457 1694 1600 1459 1460 1695 1602 1462 1463 1696 1604 1465 1466 1697 1606 1468Used by:2466
Symbol 1773 MovieClip {Survivor_0_6}Uses:1 1268 1758 1618 1470 1272 1620 1471 1277 1622 1472 1282 1624 1473 1286 1626 1474 1628 1475 1295 1630 1476 1632 1477Used by:2466
Symbol 1774 MovieClip {Survivor_0_5}Uses:1 1268 1758 1700 1618 1480 1272 1701 1620 1482 1277 1702 1622 1484 1282 1703 1624 1486 1286 1704 1626 1488 1705 1628 1490 1295 1706 1630 1492 1707 1632 1494Used by:2466
Symbol 1775 MovieClip {Survivor_0_4}Uses:8 1268 1758 1709 1618 1497 1307 1710 1620 1499 1310 1711 1622 1501 941 1712 1624 1503 1315 1713 1626 1505 1318 1714 1628 1507 1321 1715 1630 1509 1324 1716 1632 1511Used by:2466
Symbol 1776 MovieClip {Survivor_0_3}Uses:1513 1329 1758 1644 1514 1515 1646 1516 1517 1648 1518 1519 1650 1520 1521 1652 1522 1523 1654 1524 1525 1656 1526 1527 1658 1528Used by:2466
Symbol 1777 MovieClip {Survivor_0_2}Uses:1530 1329 1758 1719 1644 1480 1532 1720 1646 1482 1534 1721 1648 1484 1536 1722 1650 1486 1538 1723 1652 1488 1540 1724 1654 1490 1542 1725 1656 1492 1544 1726 1658 1494Used by:2466
Symbol 1778 MovieClip {Survivor_0_1}Uses:1547 1329 1758 1728 1644 1413 1549 1729 1646 1415 1551 1730 1648 1417 1553 1731 1650 1419 1555 1732 1652 1421 1557 1733 1654 1423 1559 1734 1656 1425 1561 1735 1658 1427Used by:2466
Symbol 1779 FontUsed by:1780 1820 1821 1822 1828 1829 1830 1867 1868 1869 1870 1885 1886 1887 1888 1889 1890 1895 1896 1982 2099 2121 2138 2139 2140 2142 2146 2195 2196 2197 2198 2218 2232 2233 2234 2235 2236 2238 2244 2260 2263 2290 2299 2304 2305 2306 2307 2308 2313 2314 2315 2318 2319 2320 2321 2324 2325 2326 2327 2330 2331 2332 2333 2334 2337 2338 2339 2340 2343 2364 2365 2366 2367 2400 2404 2409 2415 2418 2422 2426 2428 2429 2430 2433 2436 2437
Symbol 1780 EditableTextUses:1779 2243Used by:1841
Symbol 1781 GraphicUsed by:1784 1789
Symbol 1782 GraphicUsed by:1783
Symbol 1783 MovieClipUses:1782Used by:1784 1792 1843 1851 1858 1863 1880 1998 2003 2007 2011 2246 2256
Symbol 1784 MovieClipUses:1781 1783Used by:1790 2217
Symbol 1785 GraphicUsed by:1786
Symbol 1786 MovieClipUses:1785Used by:1789 1793 1817 1844 1852 1860 1864 1882 2000 2004 2008 2012 2248 2253 2257 2378 2382 2386 2390
Symbol 1787 GraphicUsed by:1788
Symbol 1788 MovieClipUses:1787Used by:1789 1793 1844 1852 1860 1864 1882 2000 2004 2008 2012 2248 2257
Symbol 1789 MovieClipUses:1781 1786 1788Used by:1790 2217
Symbol 1790 MovieClip {ButtonMinus}Uses:1784 1789Used by:1841 1872 1891 1899
Symbol 1791 GraphicUsed by:1792 1793
Symbol 1792 MovieClipUses:1791 1783Used by:1794 2216
Symbol 1793 MovieClipUses:1791 1786 1788Used by:1794 2216
Symbol 1794 MovieClip {ButtonPlus}Uses:1792 1793Used by:1841 1872 1891 1899
Symbol 1795 GraphicUsed by:1796
Symbol 1796 MovieClipUses:1795Used by:1841 1872 1891 1899 2431
Symbol 1797 FontUsed by:1798 1819 1823 1849 1866 1875 1878 1884 1894 1897 2372
Symbol 1798 EditableTextUses:1797 2158Used by:1841
Symbol 1799 GraphicUsed by:1810
Symbol 1800 GraphicUsed by:1801
Symbol 1801 MovieClipUses:1800Used by:1810
Symbol 1802 GraphicUsed by:1810
Symbol 1803 GraphicUsed by:1804
Symbol 1804 MovieClipUses:1803Used by:1810 1848 2221
Symbol 1805 FontUsed by:1806 1847 2074 2100 2102 2104 2106 2122 2124 2126 2130 2132 2143 2145 2147 2178 2180 2182 2184 2186 2189 2191 2194 2220 2223 2224 2225 2226 2227 2228 2230 2240 2291 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2360 2361 2362 2368 2395 2396 2397 2398 2399 2402 2407 2410 2412 2413 2414 2421 2424 2432 2434 2438 2440 2441 2442 2443 2444 2445 2446 2457
Symbol 1806 TextUses:1805Used by:1810
Symbol 1807 GraphicUsed by:1808
Symbol 1808 MovieClipUses:1807Used by:1810 1848 2221
Symbol 1809 GraphicUsed by:1810 1848 2079 2128 2134 2136 2221
Symbol 1810 MovieClip {ui.menu.SetChargesClip}Uses:1799 1801 1802 1804 1806 1808 1809Used by:1841
Symbol 1811 GraphicUsed by:1814 1817
Symbol 1812 GraphicUsed by:1813
Symbol 1813 MovieClipUses:1812Used by:1814
Symbol 1814 MovieClipUses:1811 1813Used by:1818
Symbol 1815 GraphicUsed by:1816
Symbol 1816 MovieClipUses:1815Used by:1817
Symbol 1817 MovieClipUses:1811 1786 1816Used by:1818
Symbol 1818 MovieClip {ButtonAbandon}Uses:1814 1817Used by:1841 1874 1877 1893
Symbol 1819 TextUses:1797Used by:1841
Symbol 1820 EditableTextUses:1779 2243Used by:1841
Symbol 1821 EditableTextUses:1779 2243Used by:1841
Symbol 1822 EditableTextUses:1779 2243Used by:1841
Symbol 1823 EditableTextUses:1797 2158Used by:1841
Symbol 1824 MovieClipUses:1277 1169 1416 1179 1417Used by:1841 1872 1891 2431
Symbol 1825 MovieClipUses:1737Used by:1841 1891 1899 2431
Symbol 1826 GraphicUsed by:1827 1942 1945
Symbol 1827 MovieClipUses:1826Used by:1841 1872 1891 2431
Symbol 1828 EditableTextUses:1779 2243Used by:1841
Symbol 1829 EditableTextUses:1779 2243Used by:1841
Symbol 1830 EditableTextUses:1779 2243Used by:1841
Symbol 1831 GraphicUsed by:1832
Symbol 1832 MovieClipUses:1831Used by:1841 1872 1874 1877 1891 1893 1899 2394
Symbol 1833 GraphicUsed by:1841 1874 1877 1893 1899 2394
Symbol 1834 GraphicUsed by:1841
Symbol 1835 GraphicUsed by:1836
Symbol 1836 MovieClipUses:1835Used by:1838
Symbol 1837 GraphicUsed by:1838
Symbol 1838 MovieClipUses:1836 1837Used by:1840
Symbol 1839 GraphicUsed by:1840
Symbol 1840 MovieClipUses:1838 1839 125Used by:1841 1874 1877 1893 1899 2394
Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip}Uses:1780 1790 1794 1796 1798 1810 1818 1819 1820 1821 1822 1823 1824 1825 1827 1828 1829 1830 1832 1833 1834 1840 125Used by:2466
Symbol 1842 GraphicUsed by:1843 1844
Symbol 1843 MovieClipUses:1842 1783Used by:1845
Symbol 1844 MovieClipUses:1842 1786 1788Used by:1845
Symbol 1845 MovieClip {ButtonFireHold}Uses:1843 1844Used by:1874
Symbol 1846 GraphicUsed by:1848
Symbol 1847 TextUses:1805Used by:1848
Symbol 1848 MovieClip {ui.menu.AccuracyClip}Uses:1846 1804 1847 1808 1809Used by:1874
Symbol 1849 TextUses:1797Used by:1874
Symbol 1850 GraphicUsed by:1851 1852 1855
Symbol 1851 MovieClipUses:1850 1783Used by:1856
Symbol 1852 MovieClipUses:1850 1786 1788Used by:1856
Symbol 1853 GraphicUsed by:1854
Symbol 1854 MovieClipUses:1853Used by:1855 2252 2253 2374 2381 2385 2389
Symbol 1855 MovieClipUses:1850 1854Used by:1856
Symbol 1856 MovieClip {ButtonUpgrade}Uses:1851 1852 1855Used by:1874 2262
Symbol 1857 GraphicUsed by:1858
Symbol 1858 MovieClipUses:1857 1783Used by:1861
Symbol 1859 GraphicUsed by:1860
Symbol 1860 MovieClipUses:1859 1786 1788Used by:1861
Symbol 1861 MovieClip {ButtonFlare}Uses:1858 1860Used by:1874
Symbol 1862 GraphicUsed by:1863 1864
Symbol 1863 MovieClipUses:1862 1783Used by:1865
Symbol 1864 MovieClipUses:1862 1786 1788Used by:1865
Symbol 1865 MovieClip {ButtonFireAtWill}Uses:1863 1864Used by:1874
Symbol 1866 EditableTextUses:1797 2158Used by:1872
Symbol 1867 EditableTextUses:1779 2243Used by:1872
Symbol 1868 EditableTextUses:1779 2243Used by:1872
Symbol 1869 EditableTextUses:1779 2243Used by:1872
Symbol 1870 EditableTextUses:1779 2243Used by:1872
Symbol 1871 GraphicUsed by:1872 1891 2014 2431
Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip}Uses:1824 1866 1827 1867 1796 1868 1869 1870 1790 1794 1832 1871Used by:1874
Symbol 1873 GraphicUsed by:1874
Symbol 1874 MovieClip {ui.menu.SniperMenuClip}Uses:1845 1848 1849 1856 1861 1865 1818 1832 1833 1872 1873 1840 125Used by:2466
Symbol 1875 TextUses:1797Used by:1877
Symbol 1876 GraphicUsed by:1877
Symbol 1877 MovieClip {ui.menu.PlanMenuClip}Uses:1875 1818 1832 1833 1876 1840 125Used by:2466
Symbol 1878 TextUses:1797Used by:1893
Symbol 1879 GraphicUsed by:1880
Symbol 1880 MovieClipUses:1879 1783Used by:1883
Symbol 1881 GraphicUsed by:1882
Symbol 1882 MovieClipUses:1881 1786 1788Used by:1883
Symbol 1883 MovieClip {ButtonJumpToDepot}Uses:1880 1882Used by:1893
Symbol 1884 EditableTextUses:1797 2158Used by:1891
Symbol 1885 EditableTextUses:1779 2243Used by:1891
Symbol 1886 EditableTextUses:1779 2243Used by:1891
Symbol 1887 EditableTextUses:1779 2243Used by:1891
Symbol 1888 EditableTextUses:1779 2243Used by:1891
Symbol 1889 EditableTextUses:1779 2243Used by:1891
Symbol 1890 EditableTextUses:1779 2243Used by:1891
Symbol 1891 MovieClip {ui.menu.ResourceMenuClip}Uses:1824 1884 1825 1827 1885 1796 1886 1887 1888 1889 1890 1790 1794 1832 1871Used by:1893
Symbol 1892 GraphicUsed by:1893
Symbol 1893 MovieClip {ui.menu.DepotMenuClip}Uses:1878 1818 1832 1833 1883 1891 1892 1840 125Used by:2466
Symbol 1894 TextUses:1797Used by:1899
Symbol 1895 EditableTextUses:1779 2243Used by:1899
Symbol 1896 EditableTextUses:1779 2243Used by:1899
Symbol 1897 EditableTextUses:1797 2158Used by:1899
Symbol 1898 GraphicUsed by:1899
Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip}Uses:1790 1894 1825 1895 1896 1796 1794 1832 1833 1897 1898 1840 125Used by:2466
Symbol 1900 BitmapUsed by:1901
Symbol 1901 GraphicUses:1900Used by:1902
Symbol 1902 MovieClipUses:1901Used by:1935
Symbol 1903 BitmapUsed by:1904
Symbol 1904 GraphicUses:1903Used by:1905
Symbol 1905 MovieClipUses:1904Used by:1935 1996
Symbol 1906 BitmapUsed by:1907
Symbol 1907 GraphicUses:1906Used by:1908
Symbol 1908 MovieClipUses:1907Used by:1935 1949
Symbol 1909 BitmapUsed by:1910
Symbol 1910 GraphicUses:1909Used by:1911
Symbol 1911 MovieClipUses:1910Used by:1935 1947 1996
Symbol 1912 BitmapUsed by:1913
Symbol 1913 GraphicUses:1912Used by:1914
Symbol 1914 MovieClipUses:1913Used by:1935
Symbol 1915 BitmapUsed by:1916
Symbol 1916 GraphicUses:1915Used by:1917
Symbol 1917 MovieClipUses:1916Used by:1935
Symbol 1918 BitmapUsed by:1919
Symbol 1919 GraphicUses:1918Used by:1920
Symbol 1920 MovieClipUses:1919Used by:1935
Symbol 1921 BitmapUsed by:1922
Symbol 1922 GraphicUses:1921Used by:1923
Symbol 1923 MovieClipUses:1922Used by:1935
Symbol 1924 BitmapUsed by:1925
Symbol 1925 GraphicUses:1924Used by:1926
Symbol 1926 MovieClipUses:1925Used by:1935
Symbol 1927 BitmapUsed by:1928
Symbol 1928 GraphicUses:1927Used by:1929
Symbol 1929 MovieClip {zomlog_fla.DepotClip_224}Uses:1928Used by:1935 1948 1996
Symbol 1930 BitmapUsed by:1931
Symbol 1931 GraphicUses:1930Used by:1935
Symbol 1932 BitmapUsed by:1933
Symbol 1933 GraphicUses:1932Used by:1934
Symbol 1934 MovieClipUses:1933Used by:1935 1946 1996
Symbol 1935 MovieClip {towerclip}Uses:1902 1905 1908 1911 123 1914 1917 1920 1923 1926 1929 1931 1934Used by:2466
Symbol 1936 BitmapUsed by:1937
Symbol 1937 GraphicUses:1936Used by:1938
Symbol 1938 MovieClip {resourcetiles}Uses:1937Used by:2466
Symbol 1939 Bitmap {background.png}Used by:1940
Symbol 1940 MovieClipUses:1939Used by:1941
Symbol 1941 MovieClip {backgroundtiles}Uses:1940Used by:2466
Symbol 1942 MovieClip {TowerNeedClip}Uses:1826 1737 1277 1169 1416 1179 1417Used by:2466
Symbol 1943 MovieClip {pedia_survivors}Uses:1379 1329 1380 1355 1381Used by:1981
Symbol 1944 MovieClip {pedia_boards}Uses:1737Used by:1981
Symbol 1945 MovieClip {pedia_ammo}Uses:1826Used by:1981
Symbol 1946 MovieClip {pedia_workshop}Uses:1934Used by:1981
Symbol 1947 MovieClip {pedia_sniper}Uses:1020 956 944 1016 987 999 1911Used by:1981
Symbol 1948 MovieClip {pedia_depot}Uses:1929Used by:1981
Symbol 1949 MovieClip {pedia_barricade}Uses:1908Used by:1981
Symbol 1950 MovieClip {pedia_zombies}Uses:283 150 181 360 287 316 153Used by:1981
Symbol 1951 GraphicUsed by:1952 2037
Symbol 1952 MovieClip {pedia_charges}Uses:1951Used by:1981
Symbol 1953 BitmapUsed by:1955 2038 2041
Symbol 1954 BitmapUsed by:1955 2060
Symbol 1955 GraphicUses:1953 1954Used by:1956
Symbol 1956 MovieClip {pedia_rubble}Uses:1955Used by:1981
Symbol 1957 BitmapUsed by:1958
Symbol 1958 GraphicUses:1957Used by:1959
Symbol 1959 MovieClip {pedia_police_station}Uses:1958Used by:1981
Symbol 1960 BitmapUsed by:1961
Symbol 1961 GraphicUses:1960Used by:1962
Symbol 1962 MovieClip {pedia_office}Uses:1961Used by:1981
Symbol 1963 BitmapUsed by:1964
Symbol 1964 GraphicUses:1963Used by:1965
Symbol 1965 MovieClip {pedia_mall}Uses:1964Used by:1981
Symbol 1966 BitmapUsed by:1967
Symbol 1967 GraphicUses:1966Used by:1968
Symbol 1968 MovieClip {pedia_house}Uses:1967Used by:1981
Symbol 1969 BitmapUsed by:1970
Symbol 1970 GraphicUses:1969Used by:1971
Symbol 1971 MovieClip {pedia_hospital}Uses:1970Used by:1981
Symbol 1972 BitmapUsed by:1973
Symbol 1973 GraphicUses:1972Used by:1974
Symbol 1974 MovieClip {pedia_hardware_store}Uses:1973Used by:1981
Symbol 1975 BitmapUsed by:1976
Symbol 1976 GraphicUses:1975Used by:1977
Symbol 1977 MovieClip {pedia_church}Uses:1976Used by:1981
Symbol 1978 BitmapUsed by:1979
Symbol 1979 GraphicUses:1978Used by:1980
Symbol 1980 MovieClip {pedia_apartment}Uses:1979Used by:1981
Symbol 1981 MovieClip {zomlog_fla.PediaClip_301}Uses:1943 1944 1945 1946 1947 1948 1949 1950 1952 1956 1959 1962 1965 1968 1971 1974 1977 1980Used by:2466
Symbol 1982 EditableTextUses:1779 2243Used by:1983
Symbol 1983 MovieClip {ui.FailClip}Uses:1982Used by:2466
Symbol 1984 GraphicUsed by:1993
Symbol 1985 GraphicUsed by:1993
Symbol 1986 GraphicUsed by:1993
Symbol 1987 GraphicUsed by:1993
Symbol 1988 GraphicUsed by:1993
Symbol 1989 GraphicUsed by:1993
Symbol 1990 GraphicUsed by:1993
Symbol 1991 GraphicUsed by:1993
Symbol 1992 GraphicUsed by:1993
Symbol 1993 MovieClip {SelectClip}Uses:1984 1985 1986 1987 1988 1989 1990 1991 1992Used by:2466
Symbol 1994 GraphicUsed by:1996
Symbol 1995 GraphicUsed by:1996
Symbol 1996 MovieClip {FloaterClip}Uses:1905 1911 123 1929 1934 1994 1995Used by:2466
Symbol 1997 GraphicUsed by:1998
Symbol 1998 MovieClipUses:1997 1783Used by:2001
Symbol 1999 GraphicUsed by:2000
Symbol 2000 MovieClipUses:1999 1786 1788Used by:2001
Symbol 2001 MovieClip {ButtonRangeOn}Uses:1998 2000Used by:2014
Symbol 2002 GraphicUsed by:2003 2004
Symbol 2003 MovieClipUses:2002 1783Used by:2005
Symbol 2004 MovieClipUses:2002 1786 1788Used by:2005
Symbol 2005 MovieClip {ButtonSystem}Uses:2003 2004Used by:2014
Symbol 2006 GraphicUsed by:2007 2008
Symbol 2007 MovieClipUses:2006 1783Used by:2009
Symbol 2008 MovieClipUses:2006 1786 1788Used by:2009
Symbol 2009 MovieClip {ButtonHelp}Uses:2007 2008Used by:2014
Symbol 2010 GraphicUsed by:2011 2012
Symbol 2011 MovieClipUses:2010 1783Used by:2013
Symbol 2012 MovieClipUses:2010 1786 1788Used by:2013
Symbol 2013 MovieClip {ButtonRangeOff}Uses:2011 2012Used by:2014
Symbol 2014 MovieClip {ui.menu.QuickClip}Uses:2001 2005 2009 2013 1871Used by:2466
Symbol 2015 GraphicUsed by:2016
Symbol 2016 MovieClip {ui.MonitorOverlayClip}Uses:2015Used by:2466
Symbol 2017 GraphicUsed by:2018
Symbol 2018 MovieClip {ui.MonitorClip}Uses:2017Used by:2466
Symbol 2019 GraphicUsed by:2020
Symbol 2020 MovieClipUses:2019Used by:2036
Symbol 2021 GraphicUsed by:2031
Symbol 2022 GraphicUsed by:2031
Symbol 2023 GraphicUsed by:2031
Symbol 2024 GraphicUsed by:2031
Symbol 2025 GraphicUsed by:2031
Symbol 2026 GraphicUsed by:2031
Symbol 2027 GraphicUsed by:2031
Symbol 2028 GraphicUsed by:2031
Symbol 2029 GraphicUsed by:2031
Symbol 2030 GraphicUsed by:2031
Symbol 2031 MovieClipUses:2021 2022 2023 2024 2025 2026 2027 2028 2029 2030Used by:2036
Symbol 2032 GraphicUsed by:2033
Symbol 2033 MovieClipUses:2032Used by:2036
Symbol 2034 BitmapUsed by:2035
Symbol 2035 GraphicUses:2034Used by:2036
Symbol 2036 MovieClip {ui.TimerClip}Uses:2020 2031 2033 2035Used by:2466
Symbol 2037 MovieClip {FeatureClip}Uses:1951Used by:2466
Symbol 2038 GraphicUses:1953Used by:2073
Symbol 2039 BitmapUsed by:2040 2041
Symbol 2040 GraphicUses:2039Used by:2073
Symbol 2041 GraphicUses:2039 1953Used by:2073
Symbol 2042 BitmapUsed by:2043
Symbol 2043 GraphicUses:2042Used by:2073
Symbol 2044 BitmapUsed by:2045
Symbol 2045 GraphicUses:2044Used by:2073
Symbol 2046 BitmapUsed by:2047
Symbol 2047 GraphicUses:2046Used by:2073
Symbol 2048 BitmapUsed by:2049
Symbol 2049 GraphicUses:2048Used by:2073
Symbol 2050 BitmapUsed by:2051
Symbol 2051 GraphicUses:2050Used by:2073
Symbol 2052 BitmapUsed by:2053
Symbol 2053 GraphicUses:2052Used by:2073
Symbol 2054 BitmapUsed by:2055
Symbol 2055 GraphicUses:2054Used by:2073
Symbol 2056 BitmapUsed by:2057
Symbol 2057 GraphicUses:2056Used by:2073
Symbol 2058 BitmapUsed by:2059
Symbol 2059 GraphicUses:2058Used by:2073
Symbol 2060 GraphicUses:1954Used by:2073
Symbol 2061 BitmapUsed by:2062
Symbol 2062 GraphicUses:2061Used by:2073
Symbol 2063 BitmapUsed by:2064
Symbol 2064 GraphicUses:2063Used by:2073
Symbol 2065 BitmapUsed by:2066
Symbol 2066 GraphicUses:2065Used by:2073
Symbol 2067 BitmapUsed by:2068
Symbol 2068 GraphicUses:2067Used by:2073
Symbol 2069 BitmapUsed by:2070
Symbol 2070 GraphicUses:2069Used by:2073
Symbol 2071 BitmapUsed by:2072
Symbol 2072 GraphicUses:2071Used by:2073
Symbol 2073 MovieClip {RubbleClip}Uses:2038 2040 2041 2043 2045 2047 2049 2051 2053 2055 2057 2059 2060 2062 2064 2066 2068 2070 2072Used by:2466
Symbol 2074 TextUses:1805Used by:2083
Symbol 2075 GraphicUsed by:2079 2082 2128 2134 2136
Symbol 2076 GraphicUsed by:2077
Symbol 2077 MovieClipUses:2076Used by:2079 2082 2128 2134 2136
Symbol 2078 GraphicUsed by:2079
Symbol 2079 MovieClipUses:2075 2077 1809 2078Used by:2083 2101 2103 2105 2107 2123 2125 2129 2131 2137 2148 2179 2181 2183 2185 2187 2190 2192 2229 2231 2241 2292 2403
Symbol 2080 GraphicUsed by:2082
Symbol 2081 GraphicUsed by:2082
Symbol 2082 MovieClipUses:2075 2077 2080 2081Used by:2083 2101 2103 2105 2107 2123 2125 2129 2131 2137 2148 2179 2181 2183 2185 2187 2190 2192 2229 2231 2241 2292 2403
Symbol 2083 MovieClipUses:2074 2079 2082Used by:2098 2120 2149 2193 2222 2239 2369 2401 2411 2416 2419 2423 2427 2435 2439 2447 2465
Symbol 2084 FontUsed by:2085 2086
Symbol 2085 TextUses:2084Used by:2087
Symbol 2086 TextUses:2084Used by:2087
Symbol 2087 MovieClipUses:2085 2086Used by:2098
Symbol 2088 GraphicUsed by:2089
Symbol 2089 MovieClipUses:2088Used by:2090
Symbol 2090 MovieClipUses:2089Used by:2096
Symbol 2091 GraphicUsed by:2096
Symbol 2092 GraphicUsed by:2096
Symbol 2093 GraphicUsed by:2096
Symbol 2094 GraphicUsed by:2096
Symbol 2095 GraphicUsed by:2096
Symbol 2096 MovieClipUses:2090 2091 125 2092 2094 2093 2095Used by:2097
Symbol 2097 MovieClipUses:2096Used by:2098 2141 2406
Symbol 2098 MovieClip {ui.menu.MainCreditsClip}Uses:2083 2087 2097Used by:2466
Symbol 2099 TextUses:1779Used by:2120
Symbol 2100 TextUses:1805Used by:2101
Symbol 2101 MovieClipUses:2100 2079 2082Used by:2120
Symbol 2102 TextUses:1805Used by:2103
Symbol 2103 MovieClipUses:2102 2079 2082Used by:2120
Symbol 2104 TextUses:1805Used by:2105
Symbol 2105 MovieClipUses:2104 2079 2082Used by:2120
Symbol 2106 TextUses:1805Used by:2107
Symbol 2107 MovieClipUses:2106 2079 2082Used by:2120
Symbol 2108 GraphicUsed by:2118
Symbol 2109 GraphicUsed by:2110
Symbol 2110 MovieClipUses:2109Used by:2118
Symbol 2111 GraphicUsed by:2118
Symbol 2112 GraphicUsed by:2113
Symbol 2113 MovieClipUses:2112Used by:2118
Symbol 2114 GraphicUsed by:2118
Symbol 2115 GraphicUsed by:2116
Symbol 2116 MovieClipUses:2115Used by:2118
Symbol 2117 GraphicUsed by:2118
Symbol 2118 MovieClipUses:2110 2111 2113 2114 2116 2117 2108Used by:2119
Symbol 2119 MovieClipUses:2118Used by:2120 2149 2188 2193 2239 2262 2264 2369 2401 2406 2411 2416 2419 2423 2439 2447 2465
Symbol 2120 MovieClip {ui.menu.MainDifficultyClip}Uses:2099 2101 2083 2103 2105 2107 2119Used by:2466
Symbol 2121 TextUses:1779Used by:2141
Symbol 2122 TextUses:1805Used by:2123
Symbol 2123 MovieClipUses:2122 2079 2082Used by:2141 2215 2237
Symbol 2124 TextUses:1805Used by:2125
Symbol 2125 MovieClipUses:2124 2079 2082Used by:2141 2237
Symbol 2126 TextUses:1805Used by:2129
Symbol 2127 GraphicUsed by:2128
Symbol 2128 MovieClipUses:2075 2077 1809 2127Used by:2129 2137 2229
Symbol 2129 MovieClipUses:2126 2079 2082 2128Used by:2141 2188 2237
Symbol 2130 TextUses:1805Used by:2131
Symbol 2131 MovieClipUses:2130 2079 2082Used by:2141 2215
Symbol 2132 EditableTextUses:1805Used by:2141
Symbol 2133 GraphicUsed by:2134
Symbol 2134 MovieClipUses:2075 2077 1809 2133Used by:2137
Symbol 2135 GraphicUsed by:2136
Symbol 2136 MovieClipUses:2075 2077 1809 2135Used by:2137
Symbol 2137 MovieClip {zomlog_fla.TextButton_342}Uses:2079 2082 2128 2134 2136Used by:2141 2215 2237 2359 2369 2401 2411 2416 2423 2427 2435 2439 2447 2465
Symbol 2138 EditableTextUses:1779 2243Used by:2141
Symbol 2139 EditableTextUses:1779 2243Used by:2141
Symbol 2140 EditableTextUses:1779 2243Used by:2141
Symbol 2141 MovieClip {ui.menu.MainLoseClip}Uses:2121 2123 2125 2129 2131 2132 2137 2138 2139 2140 2097Used by:2466
Symbol 2142 EditableTextUses:1779 2243Used by:2149
Symbol 2143 EditableTextUses:1805Used by:2149
Symbol 2144 GraphicUsed by:2149
Symbol 2145 EditableTextUses:1805Used by:2149
Symbol 2146 TextUses:1779Used by:2149
Symbol 2147 TextUses:1805Used by:2148 2465
Symbol 2148 MovieClipUses:2147 2079 2082Used by:2149
Symbol 2149 MovieClip {ui.menu.MainNameClip}Uses:2142 2143 2144 2145 2146 2083 2148 2119Used by:2466
Symbol 2150 FontUsed by:2151
Symbol 2151 TextUses:2150Used by:2157
Symbol 2152 GraphicUsed by:2157
Symbol 2153 GraphicUsed by:2157
Symbol 2154 GraphicUsed by:2157
Symbol 2155 GraphicUsed by:2157
Symbol 2156 GraphicUsed by:2157
Symbol 2157 ButtonUses:2151 2152 2153 2154 2155 2156Used by:2188 2215
Symbol 2158 FontUsed by:1798 1823 1866 1884 1897 2159 2405
Symbol 2159 TextUses:2158Used by:2188
Symbol 2160 GraphicUsed by:2161
Symbol 2161 MovieClipUses:2160Used by:2177
Symbol 2162 GraphicUsed by:2176
Symbol 2163 FontUsed by:2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175
Symbol 2164 TextUses:2163Used by:2176
Symbol 2165 TextUses:2163Used by:2176
Symbol 2166 TextUses:2163Used by:2176
Symbol 2167 TextUses:2163Used by:2176
Symbol 2168 TextUses:2163Used by:2176
Symbol 2169 TextUses:2163Used by:2176
Symbol 2170 TextUses:2163Used by:2176
Symbol 2171 TextUses:2163Used by:2176
Symbol 2172 TextUses:2163Used by:2176
Symbol 2173 TextUses:2163Used by:2176
Symbol 2174 TextUses:2163Used by:2176
Symbol 2175 TextUses:2163Used by:2176
Symbol 2176 MovieClipUses:2162 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175Used by:2177
Symbol 2177 MovieClipUses:2161 2176Used by:2188
Symbol 2178 TextUses:1805Used by:2179
Symbol 2179 MovieClipUses:2178 2079 2082Used by:2188
Symbol 2180 TextUses:1805Used by:2181
Symbol 2181 MovieClipUses:2180 2079 2082Used by:2188 2237
Symbol 2182 TextUses:1805Used by:2183
Symbol 2183 MovieClipUses:2182 2079 2082Used by:2188 2237
Symbol 2184 TextUses:1805Used by:2185
Symbol 2185 MovieClipUses:2184 2079 2082Used by:2188
Symbol 2186 TextUses:1805Used by:2187
Symbol 2187 MovieClipUses:2186 2079 2082Used by:2188
Symbol 2188 MovieClip {ui.menu.MainStartClip}Uses:2157 2159 2177 2179 2181 2183 2185 2129 2187 2119Used by:2466
Symbol 2189 TextUses:1805Used by:2190
Symbol 2190 MovieClipUses:2189 2079 2082Used by:2193
Symbol 2191 TextUses:1805Used by:2192
Symbol 2192 MovieClipUses:2191 2079 2082Used by:2193
Symbol 2193 MovieClip {ui.menu.MainTutorialClip}Uses:2083 2190 2192 2119Used by:2466
Symbol 2194 EditableTextUses:1805Used by:2215
Symbol 2195 TextUses:1779Used by:2215
Symbol 2196 EditableTextUses:1779 2243Used by:2215
Symbol 2197 EditableTextUses:1779 2243Used by:2215
Symbol 2198 EditableTextUses:1779 2243Used by:2215
Symbol 2199 GraphicUsed by:2213
Symbol 2200 GraphicUsed by:2201
Symbol 2201 MovieClipUses:2200Used by:2213
Symbol 2202 GraphicUsed by:2213
Symbol 2203 GraphicUsed by:2204
Symbol 2204 MovieClipUses:2203Used by:2206
Symbol 2205 GraphicUsed by:2206
Symbol 2206 MovieClipUses:2204 2205Used by:2208
Symbol 2207 GraphicUsed by:2208
Symbol 2208 MovieClipUses:2206 2207Used by:2213
Symbol 2209 GraphicUsed by:2213
Symbol 2210 GraphicUsed by:2211
Symbol 2211 MovieClipUses:2210Used by:2213
Symbol 2212 GraphicUsed by:2213
Symbol 2213 MovieClipUses:2199 2201 2202 2208 2209 2211 2212 125Used by:2214
Symbol 2214 MovieClipUses:2213Used by:2215 2406
Symbol 2215 MovieClip {ui.menu.MainWinClip}Uses:2157 2194 2137 2195 2196 2123 2131 2197 2198 2214Used by:2466
Symbol 2216 MovieClip {zomlog_fla.PlusButton_376}Uses:1792 1793Used by:2222 2239 2359 2369 2439
Symbol 2217 MovieClip {zomlog_fla.MinusButton_375}Uses:1784 1789Used by:2222 2239 2359 2369 2439
Symbol 2218 TextUses:1779Used by:2222
Symbol 2219 GraphicUsed by:2221
Symbol 2220 EditableTextUses:1805Used by:2221
Symbol 2221 MovieClip {ui.menu.StatusClip}Uses:2219 1804 2220 1808 1809Used by:2222 2239 2369 2439
Symbol 2222 MovieClip {ui.menu.ReplayMenuClip}Uses:2216 2217 2218 2083 2221Used by:2466
Symbol 2223 EditableTextUses:1805Used by:2237
Symbol 2224 EditableTextUses:1805Used by:2237
Symbol 2225 EditableTextUses:1805Used by:2237
Symbol 2226 EditableTextUses:1805Used by:2237
Symbol 2227 EditableTextUses:1805Used by:2237
Symbol 2228 TextUses:1805Used by:2229
Symbol 2229 MovieClipUses:2228 2079 2082 2128Used by:2237
Symbol 2230 TextUses:1805Used by:2231
Symbol 2231 MovieClipUses:2230 2079 2082Used by:2237
Symbol 2232 TextUses:1779Used by:2237
Symbol 2233 EditableTextUses:1779 2243Used by:2237
Symbol 2234 EditableTextUses:1779 2243Used by:2237
Symbol 2235 EditableTextUses:1779 2243Used by:2237
Symbol 2236 EditableTextUses:1779 2243Used by:2237
Symbol 2237 MovieClip {ui.menu.SystemMenuClip}Uses:2223 2137 2224 2225 2226 2227 2123 2183 2125 2129 2229 2231 2181 2232 2233 2234 2235 2236Used by:2466
Symbol 2238 TextUses:1779Used by:2239
Symbol 2239 MovieClip {ui.menu.OptionsMenuClip}Uses:2216 2217 2221 2238 2083 2119Used by:2466
Symbol 2240 TextUses:1805Used by:2241
Symbol 2241 MovieClipUses:2240 2079 2082Used by:2262
Symbol 2242 MovieClip {fl.controls.UIScrollBar}Uses:22 26 28 30 33 35 38 40 42 44 46 48 50 24 52 53Used by:2262 2406 2419 2423 2427
Symbol 2243 FontUsed by:1780 1820 1821 1822 1828 1829 1830 1867 1868 1869 1870 1885 1886 1887 1888 1889 1890 1895 1896 1982 2138 2139 2140 2142 2196 2197 2198 2233 2234 2235 2236 2244 2263 2290 2299 2301 2304 2305 2306 2307 2308 2313 2314 2315 2318 2319 2320 2321 2324 2325 2326 2327 2330 2331 2332 2333 2334 2337 2338 2339 2340 2343 2404 2417 2420 2425 2428 2429 2430
Symbol 2244 EditableTextUses:1779 2243Used by:2262
Symbol 2245 GraphicUsed by:2246
Symbol 2246 MovieClipUses:2245 1783Used by:2254
Symbol 2247 GraphicUsed by:2248 2251 2252 2253
Symbol 2248 MovieClipUses:2247 1786 1788Used by:2254
Symbol 2249 GraphicUsed by:2250
Symbol 2250 MovieClipUses:2249Used by:2251 2258
Symbol 2251 MovieClipUses:2247 2250Used by:2254
Symbol 2252 MovieClipUses:2247 1854Used by:2254
Symbol 2253 MovieClipUses:2247 1786 1854Used by:2254
Symbol 2254 MovieClip {zomlog_fla.ButtonRight_388}Uses:2246 2248 2251 2252 2253Used by:2262 2465
Symbol 2255 GraphicUsed by:2256 2257 2258
Symbol 2256 MovieClipUses:2255 1783Used by:2259
Symbol 2257 MovieClipUses:2255 1786 1788Used by:2259
Symbol 2258 MovieClipUses:2255 2250Used by:2259
Symbol 2259 MovieClip {zomlog_fla.ButtonLeft_383}Uses:2256 2257 2258Used by:2262 2465
Symbol 2260 TextUses:1779Used by:2262
Symbol 2261 MovieClipUses:125Used by:2262 2406
Symbol 2262 MovieClip {ui.menu.PediaMenuClip}Uses:2241 2242 2244 2254 2259 1856 2260 2261 2119Used by:2466
Symbol 2263 EditableTextUses:1779 2243Used by:2264
Symbol 2264 MovieClip {ui.menu.WaitMenuClip}Uses:2263 2119Used by:2466
Symbol 2265 GraphicUsed by:2266
Symbol 2266 MovieClipUses:2265Used by:2267
Symbol 2267 MovieClip {ui.ScrollArrowClip}Uses:2266Used by:2466
Symbol 2268 GraphicUsed by:2466
Symbol 2269 GraphicUsed by:2288
Symbol 2270 GraphicUsed by:2288
Symbol 2271 GraphicUsed by:2288
Symbol 2272 GraphicUsed by:2288
Symbol 2273 GraphicUsed by:2288
Symbol 2274 GraphicUsed by:2288
Symbol 2275 GraphicUsed by:2288
Symbol 2276 GraphicUsed by:2288
Symbol 2277 GraphicUsed by:2288
Symbol 2278 GraphicUsed by:2288
Symbol 2279 GraphicUsed by:2288
Symbol 2280 GraphicUsed by:2288
Symbol 2281 GraphicUsed by:2288
Symbol 2282 GraphicUsed by:2288
Symbol 2283 GraphicUsed by:2288
Symbol 2284 GraphicUsed by:2288
Symbol 2285 GraphicUsed by:2288
Symbol 2286 GraphicUsed by:2288
Symbol 2287 GraphicUsed by:2288
Symbol 2288 MovieClip {ExplosionSmallClip}Uses:2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287Used by:2466
Symbol 2289 MovieClip {ExplosionLargeClip}Uses:126 127 128 129 130 131 132 133 134 136Used by:2466
Symbol 2290 EditableTextUses:1779 2243Used by:2298
Symbol 2291 TextUses:1805Used by:2292
Symbol 2292 MovieClipUses:2291 2079 2082Used by:2298
Symbol 2293 MovieClipUsed by:2298 2300
Symbol 2294 GraphicUsed by:2297
Symbol 2295 GraphicUsed by:2296
Symbol 2296 MovieClipUses:2295Used by:2297
Symbol 2297 MovieClip {ui.TutorialArrowClip}Uses:2294 2296Used by:2298
Symbol 2298 MovieClip {ui.TutorialClip}Uses:2290 2292 2293 2297Used by:2466
Symbol 2299 EditableTextUses:1779 2243Used by:2300
Symbol 2300 MovieClip {ui.ToolTipClip}Uses:2299 2293Used by:2466
Symbol 2301 TextUses:2243Used by:2303
Symbol 2302 GraphicUsed by:2303
Symbol 2303 MovieClip {PauseClip}Uses:2301 2302Used by:2466
Symbol 2304 TextUses:1779 2243Used by:2312
Symbol 2305 TextUses:1779 2243Used by:2312
Symbol 2306 TextUses:1779 2243Used by:2312
Symbol 2307 TextUses:1779 2243Used by:2312
Symbol 2308 TextUses:1779 2243Used by:2312
Symbol 2309 GraphicUsed by:2312
Symbol 2310 GraphicUsed by:2312 2317 2323 2329 2336 2342 2345
Symbol 2311 ShapeTweeningUsed by:2312 2317 2323 2329 2336 2342 2345
Symbol 2312 MovieClip {DepotResourceScreen}Uses:2304 2305 2306 2307 2308 2309 2310 2311Used by:2466
Symbol 2313 TextUses:1779 2243Used by:2317
Symbol 2314 TextUses:1779 2243Used by:2317
Symbol 2315 TextUses:1779 2243Used by:2317
Symbol 2316 GraphicUsed by:2317
Symbol 2317 MovieClip {BarricadeScreen}Uses:2313 2314 2315 2316 2310 2311Used by:2466
Symbol 2318 TextUses:1779 2243Used by:2323
Symbol 2319 TextUses:1779 2243Used by:2323
Symbol 2320 TextUses:1779 2243Used by:2323
Symbol 2321 TextUses:1779 2243Used by:2323
Symbol 2322 GraphicUsed by:2323
Symbol 2323 MovieClip {DepotBuildScreen}Uses:2318 2319 2320 2321 2322 2310 2311Used by:2466
Symbol 2324 TextUses:1779 2243Used by:2329
Symbol 2325 TextUses:1779 2243Used by:2329
Symbol 2326 TextUses:1779 2243Used by:2329
Symbol 2327 TextUses:1779 2243Used by:2329
Symbol 2328 GraphicUsed by:2329
Symbol 2329 MovieClip {DepotMiscScreen}Uses:2324 2325 2326 2327 2328 2310 2311Used by:2466
Symbol 2330 TextUses:1779 2243Used by:2336
Symbol 2331 TextUses:1779 2243Used by:2336
Symbol 2332 TextUses:1779 2243Used by:2336
Symbol 2333 TextUses:1779 2243Used by:2336
Symbol 2334 TextUses:1779 2243Used by:2336
Symbol 2335 GraphicUsed by:2336
Symbol 2336 MovieClip {SniperScreen}Uses:2330 2331 2332 2333 2334 2335 2310 2311Used by:2466
Symbol 2337 TextUses:1779 2243Used by:2342
Symbol 2338 TextUses:1779 2243Used by:2342
Symbol 2339 TextUses:1779 2243Used by:2342
Symbol 2340 TextUses:1779 2243Used by:2342
Symbol 2341 GraphicUsed by:2342
Symbol 2342 MovieClip {WorkshopScreen}Uses:2337 2338 2339 2340 2341 2310 2311Used by:2466
Symbol 2343 TextUses:1779 2243Used by:2345
Symbol 2344 GraphicUsed by:2345
Symbol 2345 MovieClip {TimerScreen}Uses:2343 2344 2310 2311Used by:2466
Symbol 2346 EditableTextUses:1805Used by:2359
Symbol 2347 EditableTextUses:1805Used by:2359
Symbol 2348 EditableTextUses:1805Used by:2359
Symbol 2349 EditableTextUses:1805Used by:2359
Symbol 2350 EditableTextUses:1805Used by:2359
Symbol 2351 EditableTextUses:1805Used by:2359
Symbol 2352 EditableTextUses:1805Used by:2359
Symbol 2353 EditableTextUses:1805Used by:2359
Symbol 2354 EditableTextUses:1805Used by:2359
Symbol 2355 EditableTextUses:1805Used by:2359
Symbol 2356 EditableTextUses:1805Used by:2359
Symbol 2357 EditableTextUses:1805Used by:2359
Symbol 2358 EditableTextUses:1805Used by:2359
Symbol 2359 MovieClip {mapgen.EditMenuClip}Uses:88 2217 2216 2346 2347 2348 2349 2350 2351 2137 2352 2353 2354 2355 2356 2357 2358Used by:2466
Symbol 2360 EditableTextUses:1805Used by:2369
Symbol 2361 EditableTextUses:1805Used by:2369
Symbol 2362 EditableTextUses:1805Used by:2369
Symbol 2363 GraphicUsed by:2369
Symbol 2364 TextUses:1779Used by:2369
Symbol 2365 TextUses:1779Used by:2369
Symbol 2366 TextUses:1779Used by:2369
Symbol 2367 TextUses:1779Used by:2369
Symbol 2368 EditableTextUses:1805Used by:2369
Symbol 2369 MovieClip {ui.menu.MainEditClip}Uses:2360 2361 2362 2217 2216 2221 2363 2364 2365 2366 2367 2368 2137 2083 2119Used by:2466
Symbol 2370 EditableTextUses:98 2458Used by:2371
Symbol 2371 MovieClip {mapgen.EditPosClip}Uses:2370Used by:2466
Symbol 2372 TextUses:1797Used by:2394
Symbol 2373 GraphicUsed by:2374
Symbol 2374 MovieClipUses:2373 1854Used by:2379
Symbol 2375 GraphicUsed by:2378
Symbol 2376 GraphicUsed by:2377
Symbol 2377 MovieClipUses:2376Used by:2378 2382 2386 2390
Symbol 2378 MovieClipUses:2375 1786 2377Used by:2379
Symbol 2379 MovieClip {ButtonBuildWorkshop}Uses:2374 2378Used by:2394
Symbol 2380 GraphicUsed by:2381 2382
Symbol 2381 MovieClipUses:2380 1854Used by:2383
Symbol 2382 MovieClipUses:2380 1786 2377Used by:2383
Symbol 2383 MovieClip {ButtonBuildSniper}Uses:2381 2382Used by:2394
Symbol 2384 GraphicUsed by:2385 2386
Symbol 2385 MovieClipUses:2384 1854Used by:2387
Symbol 2386 MovieClipUses:2384 1786 2377Used by:2387
Symbol 2387 MovieClip {ButtonBuildDepot}Uses:2385 2386Used by:2394
Symbol 2388 GraphicUsed by:2389 2390
Symbol 2389 MovieClipUses:2388 1854Used by:2391
Symbol 2390 MovieClipUses:2388 1786 2377Used by:2391
Symbol 2391 MovieClip {ButtonBuildBarricade}Uses:2389 2390Used by:2394
Symbol 2392 GraphicUsed by:2394
Symbol 2393 GraphicUsed by:2394
Symbol 2394 MovieClip {ui.menu.BuildMenuClip}Uses:2372 2379 2383 2387 2391 1832 1833 2393 1840 2392Used by:2466
Symbol 2395 TextUses:1805Used by:2401
Symbol 2396 TextUses:1805Used by:2401 2416
Symbol 2397 TextUses:1805Used by:2401 2416
Symbol 2398 TextUses:1805Used by:2401
Symbol 2399 TextUses:1805Used by:2401
Symbol 2400 TextUses:1779Used by:2401
Symbol 2401 MovieClip {ui.menu.MainPlayClip}Uses:2395 2137 2396 2397 2398 2399 2400 2083 2119Used by:2466
Symbol 2402 TextUses:1805Used by:2403
Symbol 2403 MovieClipUses:2402 2079 2082Used by:2406
Symbol 2404 EditableTextUses:1779 2243Used by:2406
Symbol 2405 TextUses:2158Used by:2406
Symbol 2406 MovieClip {ui.menu.StoryMenuClip}Uses:2403 2242 2404 2405 2261 2097 2214 2119Used by:2466
Symbol 2407 EditableTextUses:1805Used by:2411
Symbol 2408 GraphicUsed by:2411 2435
Symbol 2409 TextUses:1779Used by:2411
Symbol 2410 TextUses:1805Used by:2411
Symbol 2411 MovieClip {ui.menu.MainDownloadMapClip}Uses:2407 2408 2409 2410 2137 2083 2119Used by:2466
Symbol 2412 TextUses:1805Used by:2416
Symbol 2413 TextUses:1805Used by:2416
Symbol 2414 TextUses:1805Used by:2416
Symbol 2415 TextUses:1779Used by:2416
Symbol 2416 MovieClip {ui.menu.MainEditSelectClip}Uses:2412 2137 2413 2396 2397 2414 2415 2083 2119Used by:2466
Symbol 2417 EditableTextUses:2243Used by:2419
Symbol 2418 TextUses:1779Used by:2419
Symbol 2419 MovieClip {ui.menu.MainFailClip}Uses:2242 2417 2418 2083 2119Used by:2466
Symbol 2420 EditableTextUses:2243Used by:2423
Symbol 2421 EditableTextUses:1805Used by:2423
Symbol 2422 TextUses:1779Used by:2423
Symbol 2423 MovieClip {ui.menu.MainPasteMapClip}Uses:2242 2420 2421 2137 2422 2083 2119Used by:2466
Symbol 2424 EditableTextUses:1805Used by:2427
Symbol 2425 EditableTextUses:2243Used by:2427
Symbol 2426 TextUses:1779Used by:2427
Symbol 2427 MovieClip {ui.menu.SaveMapMenuClip}Uses:2424 2137 2083 2242 2425 2426Used by:2466
Symbol 2428 EditableTextUses:1779 2243Used by:2431
Symbol 2429 EditableTextUses:1779 2243Used by:2431
Symbol 2430 EditableTextUses:1779 2243Used by:2431
Symbol 2431 MovieClip {ui.TotalResourceClip}Uses:1824 1825 1827 2428 2429 2430 1796 1871Used by:2466
Symbol 2432 EditableTextUses:1805Used by:2435
Symbol 2433 TextUses:1779Used by:2435
Symbol 2434 TextUses:1805Used by:2435
Symbol 2435 MovieClip {ui.menu.UploadMapMenuClip}Uses:2432 2408 2433 2434 2137 2083Used by:2466
Symbol 2436 TextUses:1779Used by:2439
Symbol 2437 TextUses:1779Used by:2439
Symbol 2438 TextUses:1805Used by:2439
Symbol 2439 MovieClip {ui.menu.MainRateClip}Uses:2217 2216 2221 2436 2437 2438 2137 2083 2119Used by:2466
Symbol 2440 TextUses:1805Used by:2447
Symbol 2441 TextUses:1805Used by:2447
Symbol 2442 TextUses:1805Used by:2447
Symbol 2443 TextUses:1805Used by:2447
Symbol 2444 TextUses:1805Used by:2447
Symbol 2445 TextUses:1805Used by:2447
Symbol 2446 TextUses:1805Used by:2447 2465
Symbol 2447 MovieClip {ui.menu.MainCampaignClip}Uses:2440 2137 2441 2442 2443 2444 2445 2083 2119 2446Used by:2466
Symbol 2448 Sound {ui.AmbientMusic}Used by:2456
Symbol 2449 Sound {ui.MainIntroMusic}Used by:2456
Symbol 2450 Sound {ui.MainLoopMusic}Used by:2456
Symbol 2451 Sound {ui.QuietMusic}Used by:2456
Symbol 2452 Sound {ui.Wave1Music}Used by:2456
Symbol 2453 Sound {ui.Wave2Music}Used by:2456
Symbol 2454 Sound {ui.Wave3Music}Used by:2456
Symbol 2455 Sound {ui.WaveEndMusic}Used by:2456
Symbol 2456 MovieClip {zomlog_fla.MusicClip_480}Uses:2448 2449 2450 2451 2452 2453 2454 2455Used by:2466
Symbol 2457 EditableTextUses:1805Used by:2465
Symbol 2458 FontUsed by:99 2370 2459 2460 2461 2462 2463 2464
Symbol 2459 EditableTextUses:2458Used by:2465
Symbol 2460 EditableTextUses:2458Used by:2465
Symbol 2461 EditableTextUses:2458Used by:2465
Symbol 2462 EditableTextUses:2458Used by:2465
Symbol 2463 EditableTextUses:2458Used by:2465
Symbol 2464 EditableTextUses:2458Used by:2465
Symbol 2465 MovieClip {ui.menu.MainBrowseClip}Uses:2457 2137 2459 2254 2259 2460 2461 2462 2463 2464 2147 2083 2119 2446Used by:2466
Symbol 2466 MovieClip {zomlog_fla.AssetClip_10}Uses:146 177 211 244 262 282 312 339 357 374 377 378 379 449 522 577 614 648 693 725 750 775 798 799 800 831 841 851 861 880 886 894 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 933 934 936 937 939 942 945 946 947 948 949 951 952 953 955 957 961 963 965 967 970 972 974 976 979 981 983 985 988 990 991 993 995 996 998 1000 1001 1002 1004 1006 1008 1010 1011 1012 1014 1015 1017 1019 1038 1040 1043 1045 1060 1062 1065 1067 1082 1084 1087 1089 1104 1106 1108 1110 1120 1122 1124 1126 1128 1130 1132 1134 1145 1147 1149 1151 1161 1163 1165 1167 1200 1225 1249 1266 1304 1327 1361 1385 1394 1411 1428 1443 1444 1469 1478 1495 1512 1529 1546 1563 1581 1590 1607 1616 1633 1642 1659 1668 1669 1678 1687 1688 1689 1698 1699 1708 1717 1718 1727 1736 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1841 1874 1877 1893 1899 1935 1938 1941 1942 1981 1983 1993 1996 2014 2016 2018 2036 2037 2073 2098 2120 2141 2149 2188 2193 2215 2222 2237 2239 2262 2264 2267 2268 2288 2289 2298 2300 2303 2312 2317 2323 2329 2336 2342 2345 2359 2369 2371 2394 2401 2406 2411 2416 2419 2423 2427 2431 2435 2439 2447 2456 2465Used by:Timeline
Symbol 2467 GraphicUsed by:2518
Symbol 2468 GraphicUsed by:2469
Symbol 2469 MovieClipUses:2468Used by:2518
Symbol 2470 GraphicUsed by:2518
Symbol 2471 GraphicUsed by:2472
Symbol 2472 MovieClipUses:2471Used by:2518
Symbol 2473 GraphicUsed by:2518
Symbol 2474 GraphicUsed by:2475
Symbol 2475 MovieClipUses:2474Used by:2518
Symbol 2476 GraphicUsed by:2477
Symbol 2477 MovieClipUses:2476Used by:2518
Symbol 2478 GraphicUsed by:2482
Symbol 2479 BitmapUsed by:2480
Symbol 2480 GraphicUses:2479Used by:2482
Symbol 2481 GraphicUsed by:2482
Symbol 2482 MovieClipUses:2480 2478 2481Used by:2518
Symbol 2483 FontUsed by:2484
Symbol 2484 TextUses:2483Used by:2490
Symbol 2485 GraphicUsed by:2490
Symbol 2486 BitmapUsed by:2487
Symbol 2487 GraphicUses:2486Used by:2488
Symbol 2488 MovieClipUses:2487Used by:2490
Symbol 2489 GraphicUsed by:2490
Symbol 2490 MovieClipUses:2484 2485 2488 2489Used by:2518
Symbol 2491 GraphicUsed by:2518
Symbol 2492 GraphicUsed by:2493
Symbol 2493 MovieClipUses:2492Used by:2518
Symbol 2494 GraphicUsed by:2495
Symbol 2495 MovieClipUses:2494Used by:2518
Symbol 2496 GraphicUsed by:2497
Symbol 2497 MovieClipUses:2496Used by:2518
Symbol 2498 GraphicUsed by:2499
Symbol 2499 MovieClipUses:2498Used by:2518
Symbol 2500 GraphicUsed by:2518
Symbol 2501 GraphicUsed by:2510
Symbol 2502 GraphicUsed by:2510
Symbol 2503 GraphicUsed by:2510
Symbol 2504 GraphicUsed by:2510
Symbol 2505 GraphicUsed by:2510
Symbol 2506 GraphicUsed by:2510
Symbol 2507 GraphicUsed by:2510
Symbol 2508 GraphicUsed by:2510
Symbol 2509 GraphicUsed by:2510
Symbol 2510 MovieClipUses:2501 2502 2503 2504 2505 2506 2507 2508 2509Used by:2518
Symbol 2511 ShapeTweeningUsed by:2516
Symbol 2512 ShapeTweeningUsed by:2516
Symbol 2513 ShapeTweeningUsed by:2516
Symbol 2514 ShapeTweeningUsed by:2516
Symbol 2515 GraphicUsed by:2516
Symbol 2516 MovieClip {zomlog_fla.water_488}Uses:2511 2512 2513 2514 2515Used by:2517
Symbol 2517 MovieClip {zomlog_fla.WaterRing_487}Uses:2516Used by:2518
Symbol 2518 MovieClip {zomlog_fla.Main_logo_483}Uses:2467 2469 2470 2472 2473 2475 2477 2482 2490 2491 2493 2495 2497 2499 2500 2510 2517Used by:2519
Symbol 2519 MovieClip {zomlog_fla.JonLogo_482}Uses:2518 125Used by:Timeline
Symbol 2520 MovieClip {zomlog_fla.GameClip_498}Used by:Timeline

Instance Names

"pre"Frame 3Symbol 124 MovieClip
"logo"Frame 4Symbol 140 MovieClip
"logomc"Frame 6Symbol 2519 MovieClip {zomlog_fla.JonLogo_482}
"game"Frame 7Symbol 2520 MovieClip {zomlog_fla.GameClip_498}
"gfree_btn"Symbol 124 MovieClip Frame 1Symbol 97 Button
"progress"Symbol 124 MovieClip Frame 1Symbol 99 EditableText
"bar"Symbol 1810 MovieClip {ui.menu.SetChargesClip} Frame 1Symbol 1808 MovieClip
"survivorsQuota"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1780 EditableText
"survivorsDown"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1790 MovieClip {ButtonMinus}
"survivorsUp"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1794 MovieClip {ButtonPlus}
"survivorsQuotaBackground"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1796 MovieClip
"quota"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1798 EditableText
"setCharges"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1810 MovieClip {ui.menu.SetChargesClip}
"abandon"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1818 MovieClip {ButtonAbandon}
"boardsLeft"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1820 EditableText
"boardsLeftBackground"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1796 MovieClip
"survivorsLeft"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1821 EditableText
"survivorsLeftBackground"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1796 MovieClip
"ammoLeft"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1822 EditableText
"ammoLeftBackground"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1796 MovieClip
"leftToExtract"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1823 EditableText
"survivorsIcon"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1824 MovieClip
"boardsIcon"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1825 MovieClip
"ammoIcon"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1827 MovieClip
"survivorsStock"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1828 EditableText
"survivorsStockBackground"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1796 MovieClip
"boardsStock"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1829 EditableText
"boardsStockBackground"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1796 MovieClip
"ammoStock"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1830 EditableText
"ammoStockBackground"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1796 MovieClip
"bar"Symbol 1848 MovieClip {ui.menu.AccuracyClip} Frame 1Symbol 1808 MovieClip
"survivorsIcon"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1824 MovieClip
"quota"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1866 EditableText
"ammoIcon"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1827 MovieClip
"survivorsStock"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1867 EditableText
"survivorsStockBackground"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1796 MovieClip
"ammoQuota"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1868 EditableText
"ammoStock"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1869 EditableText
"ammoStockBackground"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1796 MovieClip
"survivorsQuota"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1870 EditableText
"ammoDown"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1790 MovieClip {ButtonMinus}
"ammoUp"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1794 MovieClip {ButtonPlus}
"ammoQuotaBackground"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1796 MovieClip
"survivorsDown"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1790 MovieClip {ButtonMinus}
"survivorsUp"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1794 MovieClip {ButtonPlus}
"survivorsQuotaBackground"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1796 MovieClip
"holdFire"Symbol 1874 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1845 MovieClip {ButtonFireHold}
"accuracy"Symbol 1874 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1848 MovieClip {ui.menu.AccuracyClip}
"upgrade"Symbol 1874 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1856 MovieClip {ButtonUpgrade}
"shootIntoAir"Symbol 1874 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1861 MovieClip {ButtonFlare}
"fireAtWill"Symbol 1874 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1865 MovieClip {ButtonFireAtWill}
"abandon"Symbol 1874 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1818 MovieClip {ButtonAbandon}
"resource"Symbol 1874 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip}
"abandon"Symbol 1877 MovieClip {ui.menu.PlanMenuClip} Frame 1Symbol 1818 MovieClip {ButtonAbandon}
"survivorsIcon"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1824 MovieClip
"quota"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1884 EditableText
"boardsIcon"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1825 MovieClip
"ammoIcon"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1827 MovieClip
"survivorsStock"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1885 EditableText
"survivorsStockBackground"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1796 MovieClip
"ammoQuota"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1886 EditableText
"boardsQuota"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1887 EditableText
"boardsStock"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1888 EditableText
"boardsStockBackground"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1796 MovieClip
"ammoStock"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1889 EditableText
"ammoStockBackground"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1796 MovieClip
"survivorsQuota"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1890 EditableText
"ammoDown"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1790 MovieClip {ButtonMinus}
"ammoUp"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1794 MovieClip {ButtonPlus}
"ammoQuotaBackground"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1796 MovieClip
"boardsDown"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1790 MovieClip {ButtonMinus}
"boardsUp"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1794 MovieClip {ButtonPlus}
"boardsQuotaBackground"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1796 MovieClip
"survivorsDown"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1790 MovieClip {ButtonMinus}
"survivorsUp"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1794 MovieClip {ButtonPlus}
"survivorsQuotaBackground"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1796 MovieClip
"abandon"Symbol 1893 MovieClip {ui.menu.DepotMenuClip} Frame 1Symbol 1818 MovieClip {ButtonAbandon}
"gather"Symbol 1893 MovieClip {ui.menu.DepotMenuClip} Frame 1Symbol 1883 MovieClip {ButtonJumpToDepot}
"resource"Symbol 1893 MovieClip {ui.menu.DepotMenuClip} Frame 1Symbol 1891 MovieClip {ui.menu.ResourceMenuClip}
"boardsDown"Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1790 MovieClip {ButtonMinus}
"boardsIcon"Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1825 MovieClip
"boardsQuota"Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1895 EditableText
"boardsStock"Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1896 EditableText
"boardsStockBackground"Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1796 MovieClip
"boardsUp"Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1794 MovieClip {ButtonPlus}
"boardsQuotaBackground"Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1796 MovieClip
"quota"Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1897 EditableText
"fail"Symbol 1983 MovieClip {ui.FailClip} Frame 1Symbol 1982 EditableText
"rangeOn"Symbol 2014 MovieClip {ui.menu.QuickClip} Frame 1Symbol 2001 MovieClip {ButtonRangeOn}
"system"Symbol 2014 MovieClip {ui.menu.QuickClip} Frame 1Symbol 2005 MovieClip {ButtonSystem}
"help"Symbol 2014 MovieClip {ui.menu.QuickClip} Frame 1Symbol 2009 MovieClip {ButtonHelp}
"rangeOff"Symbol 2014 MovieClip {ui.menu.QuickClip} Frame 1Symbol 2013 MovieClip {ButtonRangeOff}
"isPause"Symbol 2036 MovieClip {ui.TimerClip} Frame 1Symbol 2020 MovieClip
"isPlay"Symbol 2036 MovieClip {ui.TimerClip} Frame 1Symbol 2020 MovieClip
"seconds"Symbol 2036 MovieClip {ui.TimerClip} Frame 1Symbol 2031 MovieClip
"minutes"Symbol 2036 MovieClip {ui.TimerClip} Frame 1Symbol 2031 MovieClip
"tens"Symbol 2036 MovieClip {ui.TimerClip} Frame 1Symbol 2031 MovieClip
"back"Symbol 2098 MovieClip {ui.menu.MainCreditsClip} Frame 1Symbol 2083 MovieClip
"credits"Symbol 2098 MovieClip {ui.menu.MainCreditsClip} Frame 1Symbol 2087 MovieClip
"background"Symbol 2098 MovieClip {ui.menu.MainCreditsClip} Frame 1Symbol 2097 MovieClip
"quartermaster"Symbol 2120 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2101 MovieClip
"back"Symbol 2120 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2083 MovieClip
"expert"Symbol 2120 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2103 MovieClip
"veteran"Symbol 2120 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2105 MovieClip
"novice"Symbol 2120 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2107 MovieClip
"background"Symbol 2120 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2119 MovieClip
"mainMenu"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2123 MovieClip
"retryMap"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2125 MovieClip
"loadGame"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2129 MovieClip
"replay"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2131 MovieClip
"rateLabel"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2132 EditableText
"rateButton"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"time"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2138 EditableText
"city"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2139 EditableText
"difficulty"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2140 EditableText
"background"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2097 MovieClip
"difficulty"Symbol 2149 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2142 EditableText
"cityName"Symbol 2149 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2143 EditableText
"notice"Symbol 2149 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2145 EditableText
"back"Symbol 2149 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2083 MovieClip
"playGame"Symbol 2149 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2148 MovieClip
"background"Symbol 2149 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2119 MovieClip
"mb2"Symbol 2188 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2157 Button
"title"Symbol 2188 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2177 MovieClip
"editor"Symbol 2188 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2179 MovieClip
"options"Symbol 2188 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2181 MovieClip
"pedia"Symbol 2188 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2183 MovieClip
"credits"Symbol 2188 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2185 MovieClip
"loadGame"Symbol 2188 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2129 MovieClip
"newGame"Symbol 2188 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2187 MovieClip
"background"Symbol 2188 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2119 MovieClip
"back"Symbol 2193 MovieClip {ui.menu.MainTutorialClip} Frame 1Symbol 2083 MovieClip
"skipTutorial"Symbol 2193 MovieClip {ui.menu.MainTutorialClip} Frame 1Symbol 2190 MovieClip
"playTutorial"Symbol 2193 MovieClip {ui.menu.MainTutorialClip} Frame 1Symbol 2192 MovieClip
"background"Symbol 2193 MovieClip {ui.menu.MainTutorialClip} Frame 1Symbol 2119 MovieClip
"mb2"Symbol 2215 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2157 Button
"rateLabel"Symbol 2215 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2194 EditableText
"rateButton"Symbol 2215 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"city"Symbol 2215 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2196 EditableText
"mainMenu"Symbol 2215 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2123 MovieClip
"replay"Symbol 2215 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2131 MovieClip
"difficulty"Symbol 2215 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2197 EditableText
"time"Symbol 2215 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2198 EditableText
"background"Symbol 2215 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2214 MovieClip
"barText"Symbol 2221 MovieClip {ui.menu.StatusClip} Frame 1Symbol 2220 EditableText
"bar"Symbol 2221 MovieClip {ui.menu.StatusClip} Frame 1Symbol 1808 MovieClip
"fast"Symbol 2222 MovieClip {ui.menu.ReplayMenuClip} Frame 1Symbol 2216 MovieClip {zomlog_fla.PlusButton_376}
"slow"Symbol 2222 MovieClip {ui.menu.ReplayMenuClip} Frame 1Symbol 2217 MovieClip {zomlog_fla.MinusButton_375}
"back"Symbol 2222 MovieClip {ui.menu.ReplayMenuClip} Frame 1Symbol 2083 MovieClip
"speed"Symbol 2222 MovieClip {ui.menu.ReplayMenuClip} Frame 1Symbol 2221 MovieClip {ui.menu.StatusClip}
"uploadMapLabel"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2223 EditableText
"uploadMap"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"editMapLabel"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2224 EditableText
"editMap"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"testMapLabel"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2225 EditableText
"testMap"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"saveMapLabel"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2226 EditableText
"saveMap"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"briefingLabel"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2227 EditableText
"briefing"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"mainMenu"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2123 MovieClip
"pedia"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2183 MovieClip
"retryGame"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2125 MovieClip
"loadGame"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2129 MovieClip
"saveGame"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2229 MovieClip
"resume"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2231 MovieClip
"options"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2181 MovieClip
"bridges"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2233 EditableText
"zombies"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2234 EditableText
"difficulty"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2235 EditableText
"city"Symbol 2237 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2236 EditableText
"scrollUp"Symbol 2239 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2216 MovieClip {zomlog_fla.PlusButton_376}
"scrollDown"Symbol 2239 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2217 MovieClip {zomlog_fla.MinusButton_375}
"scroll"Symbol 2239 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2221 MovieClip {ui.menu.StatusClip}
"musicUp"Symbol 2239 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2216 MovieClip {zomlog_fla.PlusButton_376}
"musicDown"Symbol 2239 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2217 MovieClip {zomlog_fla.MinusButton_375}
"soundUp"Symbol 2239 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2216 MovieClip {zomlog_fla.PlusButton_376}
"soundDown"Symbol 2239 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2217 MovieClip {zomlog_fla.MinusButton_375}
"back"Symbol 2239 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2083 MovieClip
"music"Symbol 2239 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2221 MovieClip {ui.menu.StatusClip}
"sound"Symbol 2239 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2221 MovieClip {ui.menu.StatusClip}
"background"Symbol 2239 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2119 MovieClip
"returnToMenu"Symbol 2262 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2241 MovieClip
"scrollBar"Symbol 2262 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2242 MovieClip {fl.controls.UIScrollBar}
"entry"Symbol 2262 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2244 EditableText
"forward"Symbol 2262 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2254 MovieClip {zomlog_fla.ButtonRight_388}
"back"Symbol 2262 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2259 MovieClip {zomlog_fla.ButtonLeft_383}
"up"Symbol 2262 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 1856 MovieClip {ButtonUpgrade}
"background"Symbol 2262 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2261 MovieClip
"splash"Symbol 2262 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2119 MovieClip
"message"Symbol 2264 MovieClip {ui.menu.WaitMenuClip} Frame 1Symbol 2263 EditableText
"background"Symbol 2264 MovieClip {ui.menu.WaitMenuClip} Frame 1Symbol 2119 MovieClip
"tail"Symbol 2297 MovieClip {ui.TutorialArrowClip} Frame 1Symbol 2296 MovieClip
"text"Symbol 2298 MovieClip {ui.TutorialClip} Frame 1Symbol 2290 EditableText
"next"Symbol 2298 MovieClip {ui.TutorialClip} Frame 1Symbol 2292 MovieClip
"back"Symbol 2298 MovieClip {ui.TutorialClip} Frame 1Symbol 2293 MovieClip
"arrow"Symbol 2298 MovieClip {ui.TutorialClip} Frame 1Symbol 2297 MovieClip {ui.TutorialArrowClip}
"text"Symbol 2300 MovieClip {ui.ToolTipClip} Frame 1Symbol 2299 EditableText
"back"Symbol 2300 MovieClip {ui.ToolTipClip} Frame 1Symbol 2293 MovieClip
"type"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 88 MovieClip {fl.controls.ComboBox}
"levelsDown"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2217 MovieClip {zomlog_fla.MinusButton_375}
"levelsUp"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2216 MovieClip {zomlog_fla.PlusButton_376}
"levels"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2346 EditableText
"survivorsDown"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2217 MovieClip {zomlog_fla.MinusButton_375}
"survivorsUp"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2216 MovieClip {zomlog_fla.PlusButton_376}
"survivors"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2347 EditableText
"boardsDown"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2217 MovieClip {zomlog_fla.MinusButton_375}
"boardsUp"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2216 MovieClip {zomlog_fla.PlusButton_376}
"boards"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2348 EditableText
"ammoDown"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2217 MovieClip {zomlog_fla.MinusButton_375}
"ammoUp"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2216 MovieClip {zomlog_fla.PlusButton_376}
"ammo"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2349 EditableText
"zombiesDown"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2217 MovieClip {zomlog_fla.MinusButton_375}
"zombiesUp"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2216 MovieClip {zomlog_fla.PlusButton_376}
"zombies"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2350 EditableText
"changeTypeLabel"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2351 EditableText
"changeType"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"brokenLabel"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2352 EditableText
"broken"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"reflectLabel"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2353 EditableText
"reflect"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"rotateLabel"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2354 EditableText
"rotate"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"setEntranceLabel"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2355 EditableText
"setEntrance"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"deleteBoxLabel"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2356 EditableText
"deleteBox"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"addObstacleLabel"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2357 EditableText
"addObstacle"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"addRubbleLabel"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2358 EditableText
"addRubble"Symbol 2359 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"heightText"Symbol 2369 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2360 EditableText
"cityName"Symbol 2369 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2361 EditableText
"widthText"Symbol 2369 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2362 EditableText
"difficultyDown"Symbol 2369 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2217 MovieClip {zomlog_fla.MinusButton_375}
"difficultyUp"Symbol 2369 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2216 MovieClip {zomlog_fla.PlusButton_376}
"difficulty"Symbol 2369 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2221 MovieClip {ui.menu.StatusClip}
"newMapLabel"Symbol 2369 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2368 EditableText
"newMap"Symbol 2369 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"back"Symbol 2369 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2369 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2119 MovieClip
"pos"Symbol 2371 MovieClip {mapgen.EditPosClip} Frame 1Symbol 2370 EditableText
"workshop"Symbol 2394 MovieClip {ui.menu.BuildMenuClip} Frame 1Symbol 2379 MovieClip {ButtonBuildWorkshop}
"sniper"Symbol 2394 MovieClip {ui.menu.BuildMenuClip} Frame 1Symbol 2383 MovieClip {ButtonBuildSniper}
"depot"Symbol 2394 MovieClip {ui.menu.BuildMenuClip} Frame 1Symbol 2387 MovieClip {ButtonBuildDepot}
"barricade"Symbol 2394 MovieClip {ui.menu.BuildMenuClip} Frame 1Symbol 2391 MovieClip {ButtonBuildBarricade}
"browse"Symbol 2401 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"loadMap"Symbol 2401 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"downloadMap"Symbol 2401 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"randomMap"Symbol 2401 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"campaign"Symbol 2401 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"back"Symbol 2401 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2401 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2119 MovieClip
"okButton"Symbol 2406 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2403 MovieClip
"scrollBar"Symbol 2406 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2242 MovieClip {fl.controls.UIScrollBar}
"briefing"Symbol 2406 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2404 EditableText
"background"Symbol 2406 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2261 MovieClip
"splashLose"Symbol 2406 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2097 MovieClip
"splashWin"Symbol 2406 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2214 MovieClip
"splash"Symbol 2406 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2119 MovieClip
"url"Symbol 2411 MovieClip {ui.menu.MainDownloadMapClip} Frame 1Symbol 2407 EditableText
"loadButton"Symbol 2411 MovieClip {ui.menu.MainDownloadMapClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"back"Symbol 2411 MovieClip {ui.menu.MainDownloadMapClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2411 MovieClip {ui.menu.MainDownloadMapClip} Frame 1Symbol 2119 MovieClip
"continueMap"Symbol 2416 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"instructions"Symbol 2416 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"loadMap"Symbol 2416 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"downloadMap"Symbol 2416 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"newMap"Symbol 2416 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"back"Symbol 2416 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2416 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2119 MovieClip
"scrollBar"Symbol 2419 MovieClip {ui.menu.MainFailClip} Frame 1Symbol 2242 MovieClip {fl.controls.UIScrollBar}
"entry"Symbol 2419 MovieClip {ui.menu.MainFailClip} Frame 1Symbol 2417 EditableText
"back"Symbol 2419 MovieClip {ui.menu.MainFailClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2419 MovieClip {ui.menu.MainFailClip} Frame 1Symbol 2119 MovieClip
"scrollBar"Symbol 2423 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2242 MovieClip {fl.controls.UIScrollBar}
"entry"Symbol 2423 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2420 EditableText
"loadLabel"Symbol 2423 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2421 EditableText
"loadButton"Symbol 2423 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"back"Symbol 2423 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2423 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2119 MovieClip
"copyLabel"Symbol 2427 MovieClip {ui.menu.SaveMapMenuClip} Frame 1Symbol 2424 EditableText
"copyButton"Symbol 2427 MovieClip {ui.menu.SaveMapMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"back"Symbol 2427 MovieClip {ui.menu.SaveMapMenuClip} Frame 1Symbol 2083 MovieClip
"scrollBar"Symbol 2427 MovieClip {ui.menu.SaveMapMenuClip} Frame 1Symbol 2242 MovieClip {fl.controls.UIScrollBar}
"entry"Symbol 2427 MovieClip {ui.menu.SaveMapMenuClip} Frame 1Symbol 2425 EditableText
"survivorsIcon"Symbol 2431 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1824 MovieClip
"boardsIcon"Symbol 2431 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1825 MovieClip
"ammoIcon"Symbol 2431 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1827 MovieClip
"survivorsStock"Symbol 2431 MovieClip {ui.TotalResourceClip} Frame 1Symbol 2428 EditableText
"boardsStock"Symbol 2431 MovieClip {ui.TotalResourceClip} Frame 1Symbol 2429 EditableText
"ammoStock"Symbol 2431 MovieClip {ui.TotalResourceClip} Frame 1Symbol 2430 EditableText
"survivorsStockBackground"Symbol 2431 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1796 MovieClip
"boardsStockBackground"Symbol 2431 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1796 MovieClip
"ammoStockBackground"Symbol 2431 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1796 MovieClip
"url"Symbol 2435 MovieClip {ui.menu.UploadMapMenuClip} Frame 1Symbol 2432 EditableText
"copyButton"Symbol 2435 MovieClip {ui.menu.UploadMapMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"back"Symbol 2435 MovieClip {ui.menu.UploadMapMenuClip} Frame 1Symbol 2083 MovieClip
"difficultyDown"Symbol 2439 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2217 MovieClip {zomlog_fla.MinusButton_375}
"difficultyUp"Symbol 2439 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2216 MovieClip {zomlog_fla.PlusButton_376}
"difficulty"Symbol 2439 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2221 MovieClip {ui.menu.StatusClip}
"funDown"Symbol 2439 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2217 MovieClip {zomlog_fla.MinusButton_375}
"funUp"Symbol 2439 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2216 MovieClip {zomlog_fla.PlusButton_376}
"fun"Symbol 2439 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2221 MovieClip {ui.menu.StatusClip}
"submitButton"Symbol 2439 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"back"Symbol 2439 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2439 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2119 MovieClip
"level6"Symbol 2447 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"level5"Symbol 2447 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"level4"Symbol 2447 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"level3"Symbol 2447 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"level2"Symbol 2447 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"level1"Symbol 2447 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"back"Symbol 2447 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2447 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2119 MovieClip
"level7"Symbol 2447 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"sortText"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2457 EditableText
"sort"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"page"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2459 EditableText
"next"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2254 MovieClip {zomlog_fla.ButtonRight_388}
"prev"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2259 MovieClip {zomlog_fla.ButtonLeft_383}
"name5"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2460 EditableText
"name4"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2461 EditableText
"name3"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2462 EditableText
"name2"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2463 EditableText
"name1"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2464 EditableText
"level5"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"level4"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"level3"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"level2"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"level1"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"back"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2119 MovieClip
"level7"Symbol 2465 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_342}
"w1"Symbol 2517 MovieClip {zomlog_fla.WaterRing_487} Frame 1Symbol 2516 MovieClip {zomlog_fla.water_488}
"w8"Symbol 2517 MovieClip {zomlog_fla.WaterRing_487} Frame 1Symbol 2516 MovieClip {zomlog_fla.water_488}
"w7"Symbol 2517 MovieClip {zomlog_fla.WaterRing_487} Frame 1Symbol 2516 MovieClip {zomlog_fla.water_488}
"w6"Symbol 2517 MovieClip {zomlog_fla.WaterRing_487} Frame 1Symbol 2516 MovieClip {zomlog_fla.water_488}
"w5"Symbol 2517 MovieClip {zomlog_fla.WaterRing_487} Frame 1Symbol 2516 MovieClip {zomlog_fla.water_488}
"w4"Symbol 2517 MovieClip {zomlog_fla.WaterRing_487} Frame 1Symbol 2516 MovieClip {zomlog_fla.water_488}
"w3"Symbol 2517 MovieClip {zomlog_fla.WaterRing_487} Frame 1Symbol 2516 MovieClip {zomlog_fla.water_488}
"w2"Symbol 2517 MovieClip {zomlog_fla.WaterRing_487} Frame 1Symbol 2516 MovieClip {zomlog_fla.water_488}
"turner2"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2469 MovieClip
"turner1"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2472 MovieClip
"smallgear3"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2475 MovieClip
"smallgearback3"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2477 MovieClip
"smallgear6"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2477 MovieClip
"smallgearback2"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2475 MovieClip
"smallgearback1"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2475 MovieClip
"smallgear5"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2477 MovieClip
"smallgear4"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2477 MovieClip
"biggear3"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2482 MovieClip
"biggear2"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2482 MovieClip
"smallgear2"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2475 MovieClip
"biggear"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2482 MovieClip
"smallgear1"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2475 MovieClip
"logo"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2490 MovieClip
"chain5"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2493 MovieClip
"chain4"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2493 MovieClip
"chain3"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2493 MovieClip
"chain2"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2493 MovieClip
"chain1"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2493 MovieClip
"gear10"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2495 MovieClip
"gear9"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2495 MovieClip
"gear8"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2495 MovieClip
"gear7"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2495 MovieClip
"gear6"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2495 MovieClip
"gear5"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2497 MovieClip
"gear4"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2497 MovieClip
"gear3"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2497 MovieClip
"gear2"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2497 MovieClip
"gear1"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2497 MovieClip
"shelf"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2499 MovieClip
"waterwheel"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2510 MovieClip
"ring"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2517 MovieClip {zomlog_fla.WaterRing_487}
"gear20"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2495 MovieClip
"gear19"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2495 MovieClip
"gear18"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2495 MovieClip
"gear17"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2495 MovieClip
"gear16"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2495 MovieClip
"gear15"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2497 MovieClip
"gear14"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2497 MovieClip
"gear13"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2497 MovieClip
"gear12"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2497 MovieClip
"gear11"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2497 MovieClip
"chain10"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2493 MovieClip
"chain9"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2493 MovieClip
"chain8"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2493 MovieClip
"chain7"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2493 MovieClip
"chain6"Symbol 2518 MovieClip {zomlog_fla.Main_logo_483} Frame 1Symbol 2493 MovieClip
"logomc"Symbol 2519 MovieClip {zomlog_fla.JonLogo_482} Frame 1Symbol 2518 MovieClip {zomlog_fla.Main_logo_483}

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1195 bytes "<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description rdf:about="" xmlns ..."




http://swfchan.com/21/100766/info.shtml
Created: 21/3 -2019 02:56:12 Last modified: 21/3 -2019 02:56:12 Server time: 24/04 -2024 02:38:40