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

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

Shattered Colony - combination of RTS and tower defense game.swf

This is the info page for
Flash #91065

(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>

<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

S

H

A

T

E

R

D

C

O

L

N

Y

SPONSORED BY

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

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

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

EXPLOSIVE GAMES

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

Instance Names

"pre"Frame 3Symbol 124 MovieClip
"logo"Frame 4Symbol 2449 MovieClip
"logomc"Frame 5Symbol 2502 MovieClip {zomlog_fla.JonLogo_478}
"game"Frame 6Symbol 2503 MovieClip {zomlog_fla.GameClip_494}
"gfree_btn"Symbol 124 MovieClip Frame 1Symbol 97 Button
"progress"Symbol 124 MovieClip Frame 1Symbol 99 EditableText
"bar"Symbol 1795 MovieClip {ui.menu.SetChargesClip} Frame 1Symbol 1793 MovieClip
"survivorsQuota"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1765 EditableText
"survivorsDown"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1775 MovieClip {ButtonMinus}
"survivorsUp"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1779 MovieClip {ButtonPlus}
"survivorsQuotaBackground"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1781 MovieClip
"quota"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1783 EditableText
"setCharges"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1795 MovieClip {ui.menu.SetChargesClip}
"abandon"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1803 MovieClip {ButtonAbandon}
"boardsLeft"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1805 EditableText
"boardsLeftBackground"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1781 MovieClip
"survivorsLeft"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1806 EditableText
"survivorsLeftBackground"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1781 MovieClip
"ammoLeft"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1807 EditableText
"ammoLeftBackground"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1781 MovieClip
"leftToExtract"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1808 EditableText
"survivorsIcon"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1809 MovieClip
"boardsIcon"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1810 MovieClip
"ammoIcon"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1812 MovieClip
"survivorsStock"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1813 EditableText
"survivorsStockBackground"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1781 MovieClip
"boardsStock"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1814 EditableText
"boardsStockBackground"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1781 MovieClip
"ammoStock"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1815 EditableText
"ammoStockBackground"Symbol 1826 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1781 MovieClip
"bar"Symbol 1833 MovieClip {ui.menu.AccuracyClip} Frame 1Symbol 1793 MovieClip
"survivorsIcon"Symbol 1857 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1809 MovieClip
"quota"Symbol 1857 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1851 EditableText
"ammoIcon"Symbol 1857 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1812 MovieClip
"survivorsStock"Symbol 1857 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1852 EditableText
"survivorsStockBackground"Symbol 1857 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1781 MovieClip
"ammoQuota"Symbol 1857 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1853 EditableText
"ammoStock"Symbol 1857 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1854 EditableText
"ammoStockBackground"Symbol 1857 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1781 MovieClip
"survivorsQuota"Symbol 1857 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1855 EditableText
"ammoDown"Symbol 1857 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1775 MovieClip {ButtonMinus}
"ammoUp"Symbol 1857 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1779 MovieClip {ButtonPlus}
"ammoQuotaBackground"Symbol 1857 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1781 MovieClip
"survivorsDown"Symbol 1857 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1775 MovieClip {ButtonMinus}
"survivorsUp"Symbol 1857 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1779 MovieClip {ButtonPlus}
"survivorsQuotaBackground"Symbol 1857 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1781 MovieClip
"holdFire"Symbol 1859 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1830 MovieClip {ButtonFireHold}
"accuracy"Symbol 1859 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1833 MovieClip {ui.menu.AccuracyClip}
"upgrade"Symbol 1859 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1841 MovieClip {ButtonUpgrade}
"shootIntoAir"Symbol 1859 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1846 MovieClip {ButtonFlare}
"fireAtWill"Symbol 1859 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1850 MovieClip {ButtonFireAtWill}
"abandon"Symbol 1859 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1803 MovieClip {ButtonAbandon}
"resource"Symbol 1859 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1857 MovieClip {ui.menu.SniperResourceMenuClip}
"abandon"Symbol 1862 MovieClip {ui.menu.PlanMenuClip} Frame 1Symbol 1803 MovieClip {ButtonAbandon}
"survivorsIcon"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1809 MovieClip
"quota"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1864 EditableText
"boardsIcon"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1810 MovieClip
"ammoIcon"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1812 MovieClip
"survivorsStock"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1865 EditableText
"survivorsStockBackground"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1781 MovieClip
"ammoQuota"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1866 EditableText
"boardsQuota"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1867 EditableText
"boardsStock"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1868 EditableText
"boardsStockBackground"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1781 MovieClip
"ammoStock"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1869 EditableText
"ammoStockBackground"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1781 MovieClip
"survivorsQuota"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1870 EditableText
"ammoDown"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1775 MovieClip {ButtonMinus}
"ammoUp"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1779 MovieClip {ButtonPlus}
"ammoQuotaBackground"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1781 MovieClip
"boardsDown"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1775 MovieClip {ButtonMinus}
"boardsUp"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1779 MovieClip {ButtonPlus}
"boardsQuotaBackground"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1781 MovieClip
"survivorsDown"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1775 MovieClip {ButtonMinus}
"survivorsUp"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1779 MovieClip {ButtonPlus}
"survivorsQuotaBackground"Symbol 1871 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1781 MovieClip
"abandon"Symbol 1873 MovieClip {ui.menu.DepotMenuClip} Frame 1Symbol 1803 MovieClip {ButtonAbandon}
"resource"Symbol 1873 MovieClip {ui.menu.DepotMenuClip} Frame 1Symbol 1871 MovieClip {ui.menu.ResourceMenuClip}
"boardsDown"Symbol 1879 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1775 MovieClip {ButtonMinus}
"boardsIcon"Symbol 1879 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1810 MovieClip
"boardsQuota"Symbol 1879 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1875 EditableText
"boardsStock"Symbol 1879 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1876 EditableText
"boardsStockBackground"Symbol 1879 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1781 MovieClip
"boardsUp"Symbol 1879 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1779 MovieClip {ButtonPlus}
"boardsQuotaBackground"Symbol 1879 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1781 MovieClip
"quota"Symbol 1879 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1877 EditableText
"fail"Symbol 1963 MovieClip {ui.FailClip} Frame 1Symbol 1962 EditableText
"rangeOn"Symbol 1994 MovieClip {ui.menu.QuickClip} Frame 1Symbol 1981 MovieClip {ButtonRangeOn}
"system"Symbol 1994 MovieClip {ui.menu.QuickClip} Frame 1Symbol 1985 MovieClip {ButtonSystem}
"help"Symbol 1994 MovieClip {ui.menu.QuickClip} Frame 1Symbol 1989 MovieClip {ButtonHelp}
"rangeOff"Symbol 1994 MovieClip {ui.menu.QuickClip} Frame 1Symbol 1993 MovieClip {ButtonRangeOff}
"isPause"Symbol 2016 MovieClip {ui.TimerClip} Frame 1Symbol 2000 MovieClip
"isPlay"Symbol 2016 MovieClip {ui.TimerClip} Frame 1Symbol 2000 MovieClip
"seconds"Symbol 2016 MovieClip {ui.TimerClip} Frame 1Symbol 2011 MovieClip
"minutes"Symbol 2016 MovieClip {ui.TimerClip} Frame 1Symbol 2011 MovieClip
"tens"Symbol 2016 MovieClip {ui.TimerClip} Frame 1Symbol 2011 MovieClip
"back"Symbol 2078 MovieClip {ui.menu.MainCreditsClip} Frame 1Symbol 2063 MovieClip
"credits"Symbol 2078 MovieClip {ui.menu.MainCreditsClip} Frame 1Symbol 2067 MovieClip
"background"Symbol 2078 MovieClip {ui.menu.MainCreditsClip} Frame 1Symbol 2077 MovieClip
"quartermaster"Symbol 2100 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2081 MovieClip
"back"Symbol 2100 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2063 MovieClip
"expert"Symbol 2100 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2083 MovieClip
"veteran"Symbol 2100 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2085 MovieClip
"novice"Symbol 2100 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2087 MovieClip
"background"Symbol 2100 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2099 MovieClip
"mainMenu"Symbol 2121 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2103 MovieClip
"retryMap"Symbol 2121 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2105 MovieClip
"loadGame"Symbol 2121 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2109 MovieClip
"replay"Symbol 2121 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2111 MovieClip
"rateLabel"Symbol 2121 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2112 EditableText
"rateButton"Symbol 2121 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"time"Symbol 2121 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2118 EditableText
"city"Symbol 2121 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2119 EditableText
"difficulty"Symbol 2121 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2120 EditableText
"background"Symbol 2121 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2077 MovieClip
"difficulty"Symbol 2129 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2122 EditableText
"cityName"Symbol 2129 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2123 EditableText
"notice"Symbol 2129 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2125 EditableText
"back"Symbol 2129 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2063 MovieClip
"playGame"Symbol 2129 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2128 MovieClip
"background"Symbol 2129 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2099 MovieClip
"title"Symbol 2166 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2147 MovieClip
"mb2"Symbol 2166 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2155 Button
"editor"Symbol 2166 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2157 MovieClip
"options"Symbol 2166 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2159 MovieClip
"pedia"Symbol 2166 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2161 MovieClip
"credits"Symbol 2166 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2163 MovieClip
"loadGame"Symbol 2166 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2109 MovieClip
"newGame"Symbol 2166 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2165 MovieClip
"background"Symbol 2166 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2099 MovieClip
"back"Symbol 2171 MovieClip {ui.menu.MainTutorialClip} Frame 1Symbol 2063 MovieClip
"skipTutorial"Symbol 2171 MovieClip {ui.menu.MainTutorialClip} Frame 1Symbol 2168 MovieClip
"playTutorial"Symbol 2171 MovieClip {ui.menu.MainTutorialClip} Frame 1Symbol 2170 MovieClip
"background"Symbol 2171 MovieClip {ui.menu.MainTutorialClip} Frame 1Symbol 2099 MovieClip
"mb2"Symbol 2193 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2155 Button
"rateLabel"Symbol 2193 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2172 EditableText
"rateButton"Symbol 2193 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"city"Symbol 2193 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2174 EditableText
"mainMenu"Symbol 2193 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2103 MovieClip
"replay"Symbol 2193 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2111 MovieClip
"difficulty"Symbol 2193 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2175 EditableText
"time"Symbol 2193 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2176 EditableText
"background"Symbol 2193 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2192 MovieClip
"barText"Symbol 2199 MovieClip {ui.menu.StatusClip} Frame 1Symbol 2198 EditableText
"bar"Symbol 2199 MovieClip {ui.menu.StatusClip} Frame 1Symbol 1793 MovieClip
"fast"Symbol 2200 MovieClip {ui.menu.ReplayMenuClip} Frame 1Symbol 2194 MovieClip {zomlog_fla.PlusButton_373}
"slow"Symbol 2200 MovieClip {ui.menu.ReplayMenuClip} Frame 1Symbol 2195 MovieClip {zomlog_fla.MinusButton_372}
"back"Symbol 2200 MovieClip {ui.menu.ReplayMenuClip} Frame 1Symbol 2063 MovieClip
"speed"Symbol 2200 MovieClip {ui.menu.ReplayMenuClip} Frame 1Symbol 2199 MovieClip {ui.menu.StatusClip}
"uploadMapLabel"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2201 EditableText
"uploadMap"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"editMapLabel"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2202 EditableText
"editMap"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"testMapLabel"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2203 EditableText
"testMap"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"saveMapLabel"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2204 EditableText
"saveMap"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"briefingLabel"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2205 EditableText
"briefing"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"mainMenu"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2103 MovieClip
"pedia"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2161 MovieClip
"retryGame"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2105 MovieClip
"loadGame"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2109 MovieClip
"saveGame"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2207 MovieClip
"resume"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2209 MovieClip
"options"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2159 MovieClip
"bridges"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2211 EditableText
"zombies"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2212 EditableText
"difficulty"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2213 EditableText
"city"Symbol 2215 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2214 EditableText
"scrollUp"Symbol 2217 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2194 MovieClip {zomlog_fla.PlusButton_373}
"scrollDown"Symbol 2217 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2195 MovieClip {zomlog_fla.MinusButton_372}
"scroll"Symbol 2217 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2199 MovieClip {ui.menu.StatusClip}
"musicUp"Symbol 2217 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2194 MovieClip {zomlog_fla.PlusButton_373}
"musicDown"Symbol 2217 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2195 MovieClip {zomlog_fla.MinusButton_372}
"soundUp"Symbol 2217 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2194 MovieClip {zomlog_fla.PlusButton_373}
"soundDown"Symbol 2217 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2195 MovieClip {zomlog_fla.MinusButton_372}
"back"Symbol 2217 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2063 MovieClip
"music"Symbol 2217 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2199 MovieClip {ui.menu.StatusClip}
"sound"Symbol 2217 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2199 MovieClip {ui.menu.StatusClip}
"background"Symbol 2217 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2099 MovieClip
"returnToMenu"Symbol 2240 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2219 MovieClip
"scrollBar"Symbol 2240 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2220 MovieClip {fl.controls.UIScrollBar}
"entry"Symbol 2240 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2222 EditableText
"forward"Symbol 2240 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2232 MovieClip {zomlog_fla.ButtonRight_385}
"back"Symbol 2240 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2237 MovieClip {zomlog_fla.ButtonLeft_380}
"up"Symbol 2240 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 1841 MovieClip {ButtonUpgrade}
"background"Symbol 2240 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2239 MovieClip
"splash"Symbol 2240 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2099 MovieClip
"message"Symbol 2242 MovieClip {ui.menu.WaitMenuClip} Frame 1Symbol 2241 EditableText
"background"Symbol 2242 MovieClip {ui.menu.WaitMenuClip} Frame 1Symbol 2099 MovieClip
"tail"Symbol 2286 MovieClip {ui.TutorialArrowClip} Frame 1Symbol 2285 MovieClip
"text"Symbol 2287 MovieClip {ui.TutorialClip} Frame 1Symbol 2279 EditableText
"next"Symbol 2287 MovieClip {ui.TutorialClip} Frame 1Symbol 2281 MovieClip
"back"Symbol 2287 MovieClip {ui.TutorialClip} Frame 1Symbol 2282 MovieClip
"arrow"Symbol 2287 MovieClip {ui.TutorialClip} Frame 1Symbol 2286 MovieClip {ui.TutorialArrowClip}
"text"Symbol 2289 MovieClip {ui.ToolTipClip} Frame 1Symbol 2288 EditableText
"back"Symbol 2289 MovieClip {ui.ToolTipClip} Frame 1Symbol 2282 MovieClip
"type"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 88 MovieClip {fl.controls.ComboBox}
"levelsDown"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2195 MovieClip {zomlog_fla.MinusButton_372}
"levelsUp"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2194 MovieClip {zomlog_fla.PlusButton_373}
"levels"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2335 EditableText
"survivorsDown"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2195 MovieClip {zomlog_fla.MinusButton_372}
"survivorsUp"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2194 MovieClip {zomlog_fla.PlusButton_373}
"survivors"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2336 EditableText
"boardsDown"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2195 MovieClip {zomlog_fla.MinusButton_372}
"boardsUp"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2194 MovieClip {zomlog_fla.PlusButton_373}
"boards"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2337 EditableText
"ammoDown"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2195 MovieClip {zomlog_fla.MinusButton_372}
"ammoUp"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2194 MovieClip {zomlog_fla.PlusButton_373}
"ammo"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2338 EditableText
"zombiesDown"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2195 MovieClip {zomlog_fla.MinusButton_372}
"zombiesUp"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2194 MovieClip {zomlog_fla.PlusButton_373}
"zombies"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2339 EditableText
"changeTypeLabel"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2340 EditableText
"changeType"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"brokenLabel"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2341 EditableText
"broken"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"reflectLabel"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2342 EditableText
"reflect"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"rotateLabel"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2343 EditableText
"rotate"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"setEntranceLabel"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2344 EditableText
"setEntrance"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"deleteBoxLabel"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2345 EditableText
"deleteBox"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"addObstacleLabel"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2346 EditableText
"addObstacle"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"addRubbleLabel"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2347 EditableText
"addRubble"Symbol 2348 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"heightText"Symbol 2358 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2349 EditableText
"cityName"Symbol 2358 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2350 EditableText
"widthText"Symbol 2358 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2351 EditableText
"difficultyDown"Symbol 2358 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2195 MovieClip {zomlog_fla.MinusButton_372}
"difficultyUp"Symbol 2358 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2194 MovieClip {zomlog_fla.PlusButton_373}
"difficulty"Symbol 2358 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2199 MovieClip {ui.menu.StatusClip}
"newMapLabel"Symbol 2358 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2357 EditableText
"newMap"Symbol 2358 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"back"Symbol 2358 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2063 MovieClip
"background"Symbol 2358 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2099 MovieClip
"pos"Symbol 2360 MovieClip {mapgen.EditPosClip} Frame 1Symbol 2359 EditableText
"workshop"Symbol 2383 MovieClip {ui.menu.BuildMenuClip} Frame 1Symbol 2368 MovieClip {ButtonBuildWorkshop}
"sniper"Symbol 2383 MovieClip {ui.menu.BuildMenuClip} Frame 1Symbol 2372 MovieClip {ButtonBuildSniper}
"depot"Symbol 2383 MovieClip {ui.menu.BuildMenuClip} Frame 1Symbol 2376 MovieClip {ButtonBuildDepot}
"barricade"Symbol 2383 MovieClip {ui.menu.BuildMenuClip} Frame 1Symbol 2380 MovieClip {ButtonBuildBarricade}
"loadMap"Symbol 2389 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"downloadMap"Symbol 2389 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"randomMap"Symbol 2389 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"campaign"Symbol 2389 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"back"Symbol 2389 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2063 MovieClip
"background"Symbol 2389 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2099 MovieClip
"okButton"Symbol 2395 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2391 MovieClip
"scrollBar"Symbol 2395 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2220 MovieClip {fl.controls.UIScrollBar}
"briefing"Symbol 2395 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2392 EditableText
"background"Symbol 2395 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2239 MovieClip
"splashLose"Symbol 2395 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2077 MovieClip
"splashWin"Symbol 2395 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2192 MovieClip
"splash"Symbol 2395 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2099 MovieClip
"url"Symbol 2400 MovieClip {ui.menu.MainDownloadMapClip} Frame 1Symbol 2396 EditableText
"loadButton"Symbol 2400 MovieClip {ui.menu.MainDownloadMapClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"back"Symbol 2400 MovieClip {ui.menu.MainDownloadMapClip} Frame 1Symbol 2063 MovieClip
"background"Symbol 2400 MovieClip {ui.menu.MainDownloadMapClip} Frame 1Symbol 2099 MovieClip
"instructions"Symbol 2404 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"loadMap"Symbol 2404 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"downloadMap"Symbol 2404 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"newMap"Symbol 2404 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"back"Symbol 2404 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2063 MovieClip
"background"Symbol 2404 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2099 MovieClip
"scrollBar"Symbol 2407 MovieClip {ui.menu.MainFailClip} Frame 1Symbol 2220 MovieClip {fl.controls.UIScrollBar}
"entry"Symbol 2407 MovieClip {ui.menu.MainFailClip} Frame 1Symbol 2405 EditableText
"back"Symbol 2407 MovieClip {ui.menu.MainFailClip} Frame 1Symbol 2063 MovieClip
"background"Symbol 2407 MovieClip {ui.menu.MainFailClip} Frame 1Symbol 2099 MovieClip
"scrollBar"Symbol 2411 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2220 MovieClip {fl.controls.UIScrollBar}
"entry"Symbol 2411 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2408 EditableText
"loadLabel"Symbol 2411 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2409 EditableText
"loadButton"Symbol 2411 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"back"Symbol 2411 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2063 MovieClip
"background"Symbol 2411 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2099 MovieClip
"copyLabel"Symbol 2415 MovieClip {ui.menu.SaveMapMenuClip} Frame 1Symbol 2412 EditableText
"copyButton"Symbol 2415 MovieClip {ui.menu.SaveMapMenuClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"back"Symbol 2415 MovieClip {ui.menu.SaveMapMenuClip} Frame 1Symbol 2063 MovieClip
"scrollBar"Symbol 2415 MovieClip {ui.menu.SaveMapMenuClip} Frame 1Symbol 2220 MovieClip {fl.controls.UIScrollBar}
"entry"Symbol 2415 MovieClip {ui.menu.SaveMapMenuClip} Frame 1Symbol 2413 EditableText
"survivorsIcon"Symbol 2419 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1809 MovieClip
"boardsIcon"Symbol 2419 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1810 MovieClip
"ammoIcon"Symbol 2419 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1812 MovieClip
"survivorsStock"Symbol 2419 MovieClip {ui.TotalResourceClip} Frame 1Symbol 2416 EditableText
"boardsStock"Symbol 2419 MovieClip {ui.TotalResourceClip} Frame 1Symbol 2417 EditableText
"ammoStock"Symbol 2419 MovieClip {ui.TotalResourceClip} Frame 1Symbol 2418 EditableText
"survivorsStockBackground"Symbol 2419 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1781 MovieClip
"boardsStockBackground"Symbol 2419 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1781 MovieClip
"ammoStockBackground"Symbol 2419 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1781 MovieClip
"url"Symbol 2423 MovieClip {ui.menu.UploadMapMenuClip} Frame 1Symbol 2420 EditableText
"copyButton"Symbol 2423 MovieClip {ui.menu.UploadMapMenuClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"back"Symbol 2423 MovieClip {ui.menu.UploadMapMenuClip} Frame 1Symbol 2063 MovieClip
"difficultyDown"Symbol 2427 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2195 MovieClip {zomlog_fla.MinusButton_372}
"difficultyUp"Symbol 2427 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2194 MovieClip {zomlog_fla.PlusButton_373}
"difficulty"Symbol 2427 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2199 MovieClip {ui.menu.StatusClip}
"funDown"Symbol 2427 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2195 MovieClip {zomlog_fla.MinusButton_372}
"funUp"Symbol 2427 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2194 MovieClip {zomlog_fla.PlusButton_373}
"fun"Symbol 2427 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2199 MovieClip {ui.menu.StatusClip}
"submitButton"Symbol 2427 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"back"Symbol 2427 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2063 MovieClip
"background"Symbol 2427 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2099 MovieClip
"level6"Symbol 2435 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"level5"Symbol 2435 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"level4"Symbol 2435 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"level3"Symbol 2435 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"level2"Symbol 2435 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"level1"Symbol 2435 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"back"Symbol 2435 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2063 MovieClip
"background"Symbol 2435 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2099 MovieClip
"level7"Symbol 2435 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2117 MovieClip {zomlog_fla.TextButton_339}
"w1"Symbol 2500 MovieClip {zomlog_fla.WaterRing_483} Frame 1Symbol 2499 MovieClip {zomlog_fla.water_484}
"w8"Symbol 2500 MovieClip {zomlog_fla.WaterRing_483} Frame 1Symbol 2499 MovieClip {zomlog_fla.water_484}
"w7"Symbol 2500 MovieClip {zomlog_fla.WaterRing_483} Frame 1Symbol 2499 MovieClip {zomlog_fla.water_484}
"w6"Symbol 2500 MovieClip {zomlog_fla.WaterRing_483} Frame 1Symbol 2499 MovieClip {zomlog_fla.water_484}
"w5"Symbol 2500 MovieClip {zomlog_fla.WaterRing_483} Frame 1Symbol 2499 MovieClip {zomlog_fla.water_484}
"w4"Symbol 2500 MovieClip {zomlog_fla.WaterRing_483} Frame 1Symbol 2499 MovieClip {zomlog_fla.water_484}
"w3"Symbol 2500 MovieClip {zomlog_fla.WaterRing_483} Frame 1Symbol 2499 MovieClip {zomlog_fla.water_484}
"w2"Symbol 2500 MovieClip {zomlog_fla.WaterRing_483} Frame 1Symbol 2499 MovieClip {zomlog_fla.water_484}
"turner2"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2452 MovieClip
"turner1"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2455 MovieClip
"smallgear3"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2458 MovieClip
"smallgearback3"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2460 MovieClip
"smallgear6"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2460 MovieClip
"smallgearback2"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2458 MovieClip
"smallgearback1"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2458 MovieClip
"smallgear5"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2460 MovieClip
"smallgear4"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2460 MovieClip
"biggear3"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2465 MovieClip
"biggear2"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2465 MovieClip
"smallgear2"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2458 MovieClip
"biggear"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2465 MovieClip
"smallgear1"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2458 MovieClip
"logo"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2473 MovieClip
"chain5"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2476 MovieClip
"chain4"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2476 MovieClip
"chain3"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2476 MovieClip
"chain2"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2476 MovieClip
"chain1"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2476 MovieClip
"gear10"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2478 MovieClip
"gear9"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2478 MovieClip
"gear8"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2478 MovieClip
"gear7"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2478 MovieClip
"gear6"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2478 MovieClip
"gear5"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2480 MovieClip
"gear4"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2480 MovieClip
"gear3"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2480 MovieClip
"gear2"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2480 MovieClip
"gear1"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2480 MovieClip
"shelf"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2482 MovieClip
"waterwheel"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2493 MovieClip
"ring"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2500 MovieClip {zomlog_fla.WaterRing_483}
"gear20"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2478 MovieClip
"gear19"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2478 MovieClip
"gear18"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2478 MovieClip
"gear17"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2478 MovieClip
"gear16"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2478 MovieClip
"gear15"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2480 MovieClip
"gear14"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2480 MovieClip
"gear13"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2480 MovieClip
"gear12"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2480 MovieClip
"gear11"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2480 MovieClip
"chain10"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2476 MovieClip
"chain9"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2476 MovieClip
"chain8"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2476 MovieClip
"chain7"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2476 MovieClip
"chain6"Symbol 2501 MovieClip {zomlog_fla.Main_logo_479} Frame 1Symbol 2476 MovieClip
"logomc"Symbol 2502 MovieClip {zomlog_fla.JonLogo_478} Frame 1Symbol 2501 MovieClip {zomlog_fla.Main_logo_479}

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/19/91065/info.shtml
Created: 28/3 -2019 02:59:39 Last modified: 28/3 -2019 02:59:39 Server time: 29/04 -2024 07:41:37