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

<div style="position:absolute;top:-99px;left:-99px;"><img src="https://tools.swfchan.com/stathit.asp?noj=FRM10318287-26DC&rnd=10318287" width="1" height="1"></div>

armorgames shattered-colony-the-6988.swf

This is the info page for
Flash #264026

(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

1.7

S

H

A

T

E

R

D

C

O

L

N

Y

Map Editor

Options

Zombipedia

Credits

New Game

Skip Tutorial

Play Tutorial

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

Victory

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

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

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

Replay

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

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

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

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

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

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

Save Game

Resume Game

System Menu

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

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

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

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

Options

Close

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

Zombipedia

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

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

Next

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

Paused

Stock
# of resources
currently available

Quota
# of resources
assigned here

Survivors
For Working,
Moving Resources

Boards
For Building,
Upgrading, Repairing

Ammo
For Shooting
Zombies

Boards
Each board blocks
one zombie hit

Build Up
Increase # of
boards here

Tear Down
Reduce # of
boards here

Build Depot
Builds and supplies
other structures

Build Barricade
Blocks zombies

Build Sniper
Shoots zombies

Build Workshop
Gathers resources
and sets charges

Change Quota
Increase/decrease
# of resources
assigned here

Remove Supply Line
Stop supplying
another structure

Add Supply LIne
Start supplying
another structure

Abandon Structure
Drop everything
and run

Upgrade
Increase range

Survivors
Extra survivors
improve accuracy

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

Accuracy
Chances of hitting
a zombie

Shoot Into Air
Makes noise,
attracts zombies

Left to Extract
# of resources
left to be found

Set Charges
Progress towards
destroying bridge

Survivors
More survivors
work faster

Stock
# of resources
already found

Timer
Counts down until
next zombie horde

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Difficulty

Height

Width

City Name

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

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

Build

Browse Maps

Paste Map

Download Map

Random Map

Campaign

Select Map

Ok

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

Mission Briefing

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

Enter URL

Load

Continue Map

Instructions

Edit New Map

Map Editor

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

Map Operation Failed

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

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

Paste Map Code Below (Right Click -> Paste)

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

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

Save This Map Code and Keep it Safe

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

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

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

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

Save This URL

Copy

Difficulty

Fun

Submit

Survival

Bridge

Graduation

Bang

Boom

Boot Camp

Hide & Seek

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

96-100

Name

Name

Name

Name

Name

A  GAME  BY
-
JONATHON
DUERIG

This Game
is site-locked

ActionScript [AS3]

Section 1
//AddFeature (action.AddFeature) package action { import feature.*; import flash.*; public class AddFeature implements Interface { protected var feature:Root; protected var mapPos:Point; public function AddFeature(_arg1:Point=null, _arg2:Root=null):void{ if (!Boot.skip_constructor){ this.mapPos = _arg1; this.feature = _arg2; }; } public function run():void{ Game.map.getCell(this.mapPos.x, this.mapPos.y).feature = this.feature; } } }//package action
Section 2
//CloseTower (action.CloseTower) package action { import flash.*; public class CloseTower implements Interface { protected var x:int; protected var y:int; public function CloseTower(_arg1:int=0, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.x = _arg1; this.y = _arg2; }; } public function run():void{ Game.map.getCell(this.x, this.y).closeTower(); } } }//package action
Section 3
//DestroyBridge (action.DestroyBridge) package action { import logic.*; import ui.*; import flash.*; public class DestroyBridge implements Interface { protected var bridge:Bridge; public function DestroyBridge(_arg1:Bridge=null):void{ if (!Boot.skip_constructor){ this.bridge = _arg1; }; } public function run():void{ var _local1:Explosion; _local1 = new Explosion(this.bridge); } } }//package action
Section 4
//Interface (action.Interface) package action { public interface Interface { function run():void; } }//package action
Section 5
//KillTruck (action.KillTruck) package action { import flash.*; public class KillTruck implements Interface { protected var deadTruck:Truck; public function KillTruck(_arg1:Truck=null):void{ if (!Boot.skip_constructor){ this.deadTruck = _arg1; }; } public function run():void{ this.deadTruck.dropLoad(); this.deadTruck.spawnZombie(); } } }//package action
Section 6
//RemoveFeature (action.RemoveFeature) package action { import flash.*; public class RemoveFeature implements Interface { protected var mapPos:Point; public function RemoveFeature(_arg1:Point=null):void{ if (!Boot.skip_constructor){ this.mapPos = _arg1; }; } public function run():void{ var _local1:MapCell; _local1 = Game.map.getCell(this.mapPos.x, this.mapPos.y); if (_local1.feature != null){ _local1.feature.cleanup(); _local1.feature = null; }; } } }//package action
Section 7
//UpdateBlocked (action.UpdateBlocked) package action { import flash.*; public class UpdateBlocked implements Interface { protected var mapPos:Point; public function UpdateBlocked(_arg1:Point=null):void{ if (!Boot.skip_constructor){ this.mapPos = _arg1.clone(); }; } protected function updateBlocked(_arg1:int, _arg2:int):void{ var _local3:Tower; _local3 = Game.map.getCell(_arg1, _arg2).getTower(); if (_local3 != null){ _local3.updateBlocked(); }; } public function run():void{ var _local1:int; var _local2:Array; var _local3:Point; var _local4:int; var _local5:int; _local1 = 0; _local2 = Lib.delta; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local4 = (this.mapPos.x + _local3.x); _local5 = (this.mapPos.y + _local3.y); this.updateBlocked(_local4, _local5); }; this.updateBlocked(this.mapPos.x, this.mapPos.y); } } }//package action
Section 8
//png (background.png) package background { import flash.display.*; public dynamic class png extends BitmapData { public function png(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package background
Section 9
//Dynamite (feature.Dynamite) package feature { import logic.*; import ui.*; import action.*; import flash.*; public class Dynamite extends Root { protected var bridge:Bridge; public function Dynamite(_arg1:Point=null, _arg2:int=0, _arg3:Bridge=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); this.type = Root.DYNAMITE; this.bridge = _arg3; }; } override public function getBuildTip():String{ return (Text.backgroundBuildDynamiteTip); } override public function getWorkshopTip():String{ return (Text.workshopDynamiteTip); } override public function load(_arg1):void{ super.load(_arg1.parent); this.bridge = Bridge.load(_arg1.bridge); Game.progress.addBridge(this.bridge, false); } override protected function getAction():Interface{ return (new DestroyBridge(this.bridge)); } override public function getHoverTip():String{ return (Text.hoverDynamiteTip); } override public function save(){ return ({parent:super.save(), bridge:this.bridge.save()}); } } }//package feature
Section 10
//Root (feature.Root) package feature { import ui.*; import action.*; import flash.*; public class Root { protected var display:Sprite; protected var counter:int; protected var max:int; protected var type:int; protected var mapPos:Point; protected static var DYNAMITE:int = 0; public function Root(_arg1:Point=null, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.type = 0; this.mapPos = _arg1; this.counter = _arg2; this.max = _arg2; this.display = new Sprite(_arg1.toPixel(), 0, 0, Animation.feature); this.display.update(); Game.actions.push(new AddFeature(this.mapPos, this)); }; } public function getBuildTip():String{ return (Text.backgroundBuildFeatureTip); } public function cleanup():void{ this.display.cleanup(); } public function load(_arg1):void{ this.max = _arg1.max; this.display = Sprite.load(_arg1.display); } protected function getAction():Interface{ return (null); } public function getHoverTip():String{ return (Text.hoverFeatureTip); } public function maxWork():int{ return (this.max); } public function workLeft():int{ return (this.counter); } public function doWork():Boolean{ var _local1:Boolean; var _local2:Interface; _local1 = false; if (this.counter > 0){ this.counter--; }; if (this.counter == 0){ _local2 = this.getAction(); if (_local2 != null){ Game.actions.push(new RemoveFeature(this.mapPos)); Game.actions.push(_local2); }; _local1 = true; }; return (_local1); } public function save(){ return ({type:this.type, mapPos:this.mapPos.save(), counter:this.counter, max:this.max, display:this.display.save()}); } public function getWorkshopTip():String{ return (Text.workshopFeatureTip); } public static function loadS(_arg1):Root{ var _local2:Root; _local2 = null; if (_arg1.parent.type == DYNAMITE){ _local2 = new Dynamite(Point.load(_arg1.parent.mapPos), _arg1.parent.max, null); _local2.load(_arg1); }; return (_local2); } public static function saveS(_arg1:Root){ return (_arg1.save()); } } }//package feature
Section 11
//BaseScrollPane (fl.containers.BaseScrollPane) package fl.containers { import fl.core.*; import fl.controls.*; import flash.display.*; import flash.events.*; import flash.geom.*; import fl.events.*; public class BaseScrollPane extends UIComponent { protected var defaultLineScrollSize:Number;// = 4 protected var _maxHorizontalScrollPosition:Number;// = 0 protected var vScrollBar:Boolean; protected var disabledOverlay:Shape; protected var hScrollBar:Boolean; protected var availableWidth:Number; protected var _verticalPageScrollSize:Number;// = 0 protected var vOffset:Number;// = 0 protected var _verticalScrollBar:ScrollBar; protected var useFixedHorizontalScrolling:Boolean;// = false protected var contentWidth:Number;// = 0 protected var contentHeight:Number;// = 0 protected var _horizontalPageScrollSize:Number;// = 0 protected var background:DisplayObject; protected var _useBitmpScrolling:Boolean;// = false protected var contentPadding:Number;// = 0 protected var availableHeight:Number; protected var _horizontalScrollBar:ScrollBar; protected var contentScrollRect:Rectangle; protected var _horizontalScrollPolicy:String; protected var _verticalScrollPolicy:String; protected static const SCROLL_BAR_STYLES:Object = {upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {repeatDelay:500, repeatInterval:35, skin:"ScrollPane_upSkin", contentPadding:0, disabledAlpha:0.5}; public function BaseScrollPane(){ contentWidth = 0; contentHeight = 0; contentPadding = 0; vOffset = 0; _maxHorizontalScrollPosition = 0; _horizontalPageScrollSize = 0; _verticalPageScrollSize = 0; defaultLineScrollSize = 4; useFixedHorizontalScrolling = false; _useBitmpScrolling = false; super(); } protected function handleWheel(_arg1:MouseEvent):void{ if (((((!(enabled)) || (!(_verticalScrollBar.visible)))) || ((contentHeight <= availableHeight)))){ return; }; _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * verticalLineScrollSize)); setVerticalScrollPosition(_verticalScrollBar.scrollPosition); dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _arg1.delta, horizontalScrollPosition)); } public function get verticalScrollPosition():Number{ return (_verticalScrollBar.scrollPosition); } protected function drawDisabledOverlay():void{ if (enabled){ if (contains(disabledOverlay)){ removeChild(disabledOverlay); }; } else { disabledOverlay.x = (disabledOverlay.y = contentPadding); disabledOverlay.width = availableWidth; disabledOverlay.height = availableHeight; disabledOverlay.alpha = (getStyleValue("disabledAlpha") as Number); addChild(disabledOverlay); }; } public function set verticalScrollPosition(_arg1:Number):void{ drawNow(); _verticalScrollBar.scrollPosition = _arg1; setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); } protected function setContentSize(_arg1:Number, _arg2:Number):void{ if ((((((contentWidth == _arg1)) || (useFixedHorizontalScrolling))) && ((contentHeight == _arg2)))){ return; }; contentWidth = _arg1; contentHeight = _arg2; invalidate(InvalidationType.SIZE); } public function get horizontalScrollPosition():Number{ return (_horizontalScrollBar.scrollPosition); } public function get horizontalScrollBar():ScrollBar{ return (_horizontalScrollBar); } override public function set enabled(_arg1:Boolean):void{ if (enabled == _arg1){ return; }; _verticalScrollBar.enabled = _arg1; _horizontalScrollBar.enabled = _arg1; super.enabled = _arg1; } public function get verticalLineScrollSize():Number{ return (_verticalScrollBar.lineScrollSize); } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } protected function calculateAvailableSize():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = ScrollBar.WIDTH; _local2 = (contentPadding = Number(getStyleValue("contentPadding"))); _local3 = ((height - (2 * _local2)) - vOffset); vScrollBar = (((_verticalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((contentHeight > _local3))))); _local4 = ((width - (vScrollBar) ? _local1 : 0) - (2 * _local2)); _local5 = (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - _local4); hScrollBar = (((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_local5 > 0))))); if (hScrollBar){ _local3 = (_local3 - _local1); }; if (((((((hScrollBar) && (!(vScrollBar)))) && ((_verticalScrollPolicy == ScrollPolicy.AUTO)))) && ((contentHeight > _local3)))){ vScrollBar = true; _local4 = (_local4 - _local1); }; availableHeight = (_local3 + vOffset); availableWidth = _local4; } public function get maxVerticalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentHeight - availableHeight))); } public function set horizontalScrollPosition(_arg1:Number):void{ drawNow(); _horizontalScrollBar.scrollPosition = _arg1; setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); } public function get horizontalLineScrollSize():Number{ return (_horizontalScrollBar.lineScrollSize); } public function set verticalPageScrollSize(_arg1:Number):void{ _verticalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function get useBitmapScrolling():Boolean{ return (_useBitmpScrolling); } protected function handleScroll(_arg1:ScrollEvent):void{ if (_arg1.target == _verticalScrollBar){ setVerticalScrollPosition(_arg1.position); } else { setHorizontalScrollPosition(_arg1.position); }; } public function set verticalLineScrollSize(_arg1:Number):void{ _verticalScrollBar.lineScrollSize = _arg1; } public function get verticalScrollBar():ScrollBar{ return (_verticalScrollBar); } protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function set horizontalPageScrollSize(_arg1:Number):void{ _horizontalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STATE)){ drawLayout(); }; updateChildren(); super.draw(); } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } override protected function configUI():void{ var _local1:Graphics; super.configUI(); contentScrollRect = new Rectangle(0, 0, 85, 85); _verticalScrollBar = new ScrollBar(); _verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _verticalScrollBar.visible = false; _verticalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_verticalScrollBar); copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); _horizontalScrollBar = new ScrollBar(); _horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL; _horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _horizontalScrollBar.visible = false; _horizontalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_horizontalScrollBar); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); disabledOverlay = new Shape(); _local1 = disabledOverlay.graphics; _local1.beginFill(0xFFFFFF); _local1.drawRect(0, 0, width, height); _local1.endFill(); addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true); } protected function calculateContentWidth():void{ } public function get verticalPageScrollSize():Number{ if (isNaN(availableHeight)){ drawNow(); }; return (((((_verticalPageScrollSize == 0)) && (!(isNaN(availableHeight))))) ? availableHeight : _verticalPageScrollSize); } protected function drawLayout():void{ calculateAvailableSize(); calculateContentWidth(); background.width = width; background.height = height; if (vScrollBar){ _verticalScrollBar.visible = true; _verticalScrollBar.x = ((width - ScrollBar.WIDTH) - contentPadding); _verticalScrollBar.y = contentPadding; _verticalScrollBar.height = availableHeight; } else { _verticalScrollBar.visible = false; }; _verticalScrollBar.setScrollProperties(availableHeight, 0, (contentHeight - availableHeight), verticalPageScrollSize); setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); if (hScrollBar){ _horizontalScrollBar.visible = true; _horizontalScrollBar.x = contentPadding; _horizontalScrollBar.y = ((height - ScrollBar.WIDTH) - contentPadding); _horizontalScrollBar.width = availableWidth; } else { _horizontalScrollBar.visible = false; }; _horizontalScrollBar.setScrollProperties(availableWidth, 0, (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - availableWidth), horizontalPageScrollSize); setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); drawDisabledOverlay(); } protected function drawBackground():void{ var _local1:DisplayObject; _local1 = background; background = getDisplayObjectInstance(getStyleValue("skin")); background.width = width; background.height = height; addChildAt(background, 0); if (((!((_local1 == null))) && (!((_local1 == background))))){ removeChild(_local1); }; } public function set horizontalLineScrollSize(_arg1:Number):void{ _horizontalScrollBar.lineScrollSize = _arg1; } public function get horizontalPageScrollSize():Number{ if (isNaN(availableWidth)){ drawNow(); }; return (((((_horizontalPageScrollSize == 0)) && (!(isNaN(availableWidth))))) ? availableWidth : _horizontalPageScrollSize); } public function get maxHorizontalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentWidth - availableWidth))); } protected function setStyles():void{ copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); } protected function updateChildren():void{ _verticalScrollBar.enabled = (_horizontalScrollBar.enabled = enabled); _verticalScrollBar.drawNow(); _horizontalScrollBar.drawNow(); } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } public function set useBitmapScrolling(_arg1:Boolean):void{ _useBitmpScrolling = _arg1; invalidate(InvalidationType.STATE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.containers
Section 12
//CellRenderer (fl.controls.listClasses.CellRenderer) package fl.controls.listClasses { import fl.controls.*; import flash.events.*; public class CellRenderer extends LabelButton implements ICellRenderer { protected var _data:Object; protected var _listData:ListData; private static var defaultStyles:Object = {upSkin:"CellRenderer_upSkin", downSkin:"CellRenderer_downSkin", overSkin:"CellRenderer_overSkin", disabledSkin:"CellRenderer_disabledSkin", selectedDisabledSkin:"CellRenderer_selectedDisabledSkin", selectedUpSkin:"CellRenderer_selectedUpSkin", selectedDownSkin:"CellRenderer_selectedDownSkin", selectedOverSkin:"CellRenderer_selectedOverSkin", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public function CellRenderer():void{ toggle = true; focusEnabled = false; } override protected function toggleSelected(_arg1:MouseEvent):void{ } override public function get selected():Boolean{ return (super.selected); } public function set listData(_arg1:ListData):void{ _listData = _arg1; label = _listData.label; setStyle("icon", _listData.icon); } override public function set selected(_arg1:Boolean):void{ super.selected = _arg1; } public function set data(_arg1:Object):void{ _data = _arg1; } public function get listData():ListData{ return (_listData); } override public function setSize(_arg1:Number, _arg2:Number):void{ super.setSize(_arg1, _arg2); } override protected function drawLayout():void{ var _local1:Number; var _local2:Number; var _local3:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = 0; if (icon != null){ icon.x = _local1; icon.y = Math.round(((height - icon.height) >> 1)); _local2 = (icon.width + _local1); }; if (label.length > 0){ textField.visible = true; _local3 = Math.max(0, ((width - _local2) - (_local1 * 2))); textField.width = _local3; textField.height = (textField.textHeight + 4); textField.x = (_local2 + _local1); textField.y = Math.round(((height - textField.height) >> 1)); } else { textField.visible = false; }; background.width = width; background.height = height; } public function get data():Object{ return (_data); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls.listClasses
Section 13
//ICellRenderer (fl.controls.listClasses.ICellRenderer) package fl.controls.listClasses { public interface ICellRenderer { function setSize(_arg1:Number, _arg2:Number):void; function get listData():ListData; function get data():Object; function setMouseState(_arg1:String):void; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function set data(_arg1:Object):void; function set selected(_arg1:Boolean):void; function set listData(_arg1:ListData):void; function get selected():Boolean; } }//package fl.controls.listClasses
Section 14
//ListData (fl.controls.listClasses.ListData) package fl.controls.listClasses { import fl.core.*; public class ListData { protected var _index:uint; protected var _owner:UIComponent; protected var _label:String; protected var _icon:Object;// = null protected var _row:uint; protected var _column:uint; public function ListData(_arg1:String, _arg2:Object, _arg3:UIComponent, _arg4:uint, _arg5:uint, _arg6:uint=0){ _icon = null; super(); _label = _arg1; _icon = _arg2; _owner = _arg3; _index = _arg4; _row = _arg5; _column = _arg6; } public function get owner():UIComponent{ return (_owner); } public function get label():String{ return (_label); } public function get row():uint{ return (_row); } public function get index():uint{ return (_index); } public function get icon():Object{ return (_icon); } public function get column():uint{ return (_column); } } }//package fl.controls.listClasses
Section 15
//BaseButton (fl.controls.BaseButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import flash.utils.*; import fl.events.*; public class BaseButton extends UIComponent { protected var _selected:Boolean;// = false private var unlockedMouseState:String; protected var pressTimer:Timer; protected var mouseState:String; protected var background:DisplayObject; private var _mouseStateLocked:Boolean;// = false protected var _autoRepeat:Boolean;// = false private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35}; public function BaseButton(){ _selected = false; _autoRepeat = false; _mouseStateLocked = false; super(); buttonMode = true; mouseChildren = false; useHandCursor = false; setupMouseEvents(); setMouseState("up"); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true); } protected function endPress():void{ pressTimer.reset(); } public function set mouseStateLocked(_arg1:Boolean):void{ _mouseStateLocked = _arg1; if (_arg1 == false){ setMouseState(unlockedMouseState); } else { unlockedMouseState = mouseState; }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseEnabled = _arg1; } public function get selected():Boolean{ return (_selected); } protected function mouseEventHandler(_arg1:MouseEvent):void{ if (_arg1.type == MouseEvent.MOUSE_DOWN){ setMouseState("down"); startPress(); } else { if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){ setMouseState("over"); endPress(); } else { if (_arg1.type == MouseEvent.ROLL_OUT){ setMouseState("up"); endPress(); }; }; }; } public function setMouseState(_arg1:String):void{ if (_mouseStateLocked){ unlockedMouseState = _arg1; return; }; if (mouseState == _arg1){ return; }; mouseState = _arg1; invalidate(InvalidationType.STATE); } protected function startPress():void{ if (_autoRepeat){ pressTimer.delay = Number(getStyleValue("repeatDelay")); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } protected function buttonDown(_arg1:TimerEvent):void{ if (!_autoRepeat){ endPress(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = Number(getStyleValue("repeatInterval")); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } public function set selected(_arg1:Boolean):void{ if (_selected == _arg1){ return; }; _selected = _arg1; invalidate(InvalidationType.STATE); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function setupMouseEvents():void{ addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true); } protected function drawLayout():void{ background.width = width; background.height = height; } protected function drawBackground():void{ var _local1:String; var _local2:DisplayObject; _local1 = (enabled) ? mouseState : "disabled"; if (selected){ _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1)); }; _local1 = (_local1 + "Skin"); _local2 = background; background = getDisplayObjectInstance(getStyleValue(_local1)); addChildAt(background, 0); if (((!((_local2 == null))) && (!((_local2 == background))))){ removeChild(_local2); }; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 16
//Button (fl.controls.Button) package fl.controls { import fl.core.*; import flash.display.*; import fl.managers.*; public class Button extends LabelButton implements IFocusManagerComponent { protected var emphasizedBorder:DisplayObject; protected var _emphasized:Boolean;// = false private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2}; public static var createAccessibilityImplementation:Function; public function Button(){ _emphasized = false; super(); } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; var _local3:*; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("emphasizedPadding")); if ((((_local2 < 0)) || (!(_emphasized)))){ _local2 = 0; }; _local3 = getStyleValue("focusRectPadding"); _local3 = ((_local3)==null) ? 2 : _local3; _local3 = (_local3 + _local2); uiFocusRect.x = -(_local3); uiFocusRect.y = -(_local3); uiFocusRect.width = (width + (_local3 * 2)); uiFocusRect.height = (height + (_local3 * 2)); }; } public function set emphasized(_arg1:Boolean):void{ _emphasized = _arg1; invalidate(InvalidationType.STYLES); } override protected function draw():void{ if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){ drawEmphasized(); }; super.draw(); if (emphasizedBorder != null){ setChildIndex(emphasizedBorder, (numChildren - 1)); }; } public function get emphasized():Boolean{ return (_emphasized); } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } protected function drawEmphasized():void{ var _local1:Object; var _local2:Number; if (emphasizedBorder != null){ removeChild(emphasizedBorder); }; emphasizedBorder = null; if (!_emphasized){ return; }; _local1 = getStyleValue("emphasizedSkin"); if (_local1 != null){ emphasizedBorder = getDisplayObjectInstance(_local1); }; if (emphasizedBorder != null){ addChildAt(emphasizedBorder, 0); _local2 = Number(getStyleValue("emphasizedPadding")); emphasizedBorder.x = (emphasizedBorder.y = -(_local2)); emphasizedBorder.width = (width + (_local2 * 2)); emphasizedBorder.height = (height + (_local2 * 2)); }; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles)); } } }//package fl.controls
Section 17
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement) package fl.controls { public class ButtonLabelPlacement { public static const TOP:String = "top"; public static const LEFT:String = "left"; public static const BOTTOM:String = "bottom"; public static const RIGHT:String = "right"; } }//package fl.controls
Section 18
//ComboBox (fl.controls.ComboBox) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.events.*; import flash.text.*; import flash.geom.*; import fl.data.*; import fl.managers.*; import fl.events.*; import flash.ui.*; public class ComboBox extends UIComponent implements IFocusManagerComponent { protected var _dropdownWidth:Number; protected var highlightedCell:int;// = -1 protected var _prompt:String; protected var isOpen:Boolean;// = false protected var list:List; protected var _rowCount:uint;// = 5 protected var currentIndex:int; protected var isKeyDown:Boolean;// = false protected var _labels:Array; protected var background:BaseButton; protected var inputField:TextInput; protected var listOverIndex:uint; protected var editableValue:String; protected var _editable:Boolean;// = false private var collectionItemImport:SimpleCollectionItem; protected static const BACKGROUND_STYLES:Object = {overSkin:"overSkin", downSkin:"downSkin", upSkin:"upSkin", disabledSkin:"disabledSkin", repeatInterval:"repeatInterval"}; protected static const LIST_STYLES:Object = {upSkin:"comboListUpSkin", overSkin:"comboListOverSkin", downSkin:"comobListDownSkin", disabledSkin:"comboListDisabledSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval", textFormat:"textFormat", disabledAlpha:"disabledAlpha", skin:"listSkin"}; private static var defaultStyles:Object = {upSkin:"ComboBox_upSkin", downSkin:"ComboBox_downSkin", overSkin:"ComboBox_overSkin", disabledSkin:"ComboBox_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:3, buttonWidth:24, disabledAlpha:null, listSkin:null}; public static var createAccessibilityImplementation:Function; public function ComboBox(){ _rowCount = 5; _editable = false; isOpen = false; highlightedCell = -1; isKeyDown = false; super(); } protected function drawList():void{ list.rowCount = Math.max(0, Math.min(_rowCount, list.dataProvider.length)); } public function set imeMode(_arg1:String):void{ inputField.imeMode = _arg1; } public function get dropdown():List{ return (list); } public function get dropdownWidth():Number{ return (list.width); } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (list.sortItemsOn(_arg1, _arg2)); } protected function onEnter(_arg1:ComponentEvent):void{ _arg1.stopPropagation(); } public function removeItemAt(_arg1:uint):void{ list.removeItemAt(_arg1); invalidate(InvalidationType.DATA); } public function open():void{ currentIndex = selectedIndex; if (((isOpen) || ((length == 0)))){ return; }; dispatchEvent(new Event(Event.OPEN)); isOpen = true; addEventListener(Event.ENTER_FRAME, addCloseListener, false, 0, true); positionList(); list.scrollToSelected(); stage.addChild(list); } public function get selectedItem():Object{ return (list.selectedItem); } public function set text(_arg1:String):void{ if (!editable){ return; }; inputField.text = _arg1; } public function get labelField():String{ return (list.labelField); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; var _local3:uint; var _local4:Number; var _local5:int; isKeyDown = true; if (_arg1.ctrlKey){ switch (_arg1.keyCode){ case Keyboard.UP: if (highlightedCell > -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); break; case Keyboard.DOWN: open(); break; }; return; }; _arg1.stopPropagation(); _local2 = Math.max(((calculateAvailableHeight() / list.rowHeight) << 0), 1); _local3 = selectedIndex; _local4 = ((highlightedCell)==-1) ? selectedIndex : highlightedCell; _local5 = -1; switch (_arg1.keyCode){ case Keyboard.SPACE: if (isOpen){ close(); } else { open(); }; return; case Keyboard.ESCAPE: if (isOpen){ if (highlightedCell > -1){ selectedIndex = selectedIndex; }; close(); }; return; case Keyboard.UP: _local5 = Math.max(0, (_local4 - 1)); break; case Keyboard.DOWN: _local5 = Math.min((length - 1), (_local4 + 1)); break; case Keyboard.PAGE_UP: _local5 = Math.max((_local4 - _local2), 0); break; case Keyboard.PAGE_DOWN: _local5 = Math.min((_local4 + _local2), (length - 1)); break; case Keyboard.HOME: _local5 = 0; break; case Keyboard.END: _local5 = (length - 1); break; case Keyboard.ENTER: if (((_editable) && ((highlightedCell == -1)))){ editableValue = inputField.text; selectedIndex = -1; } else { if (((isOpen) && ((highlightedCell > -1)))){ editableValue = null; selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; }; dispatchEvent(new ComponentEvent(ComponentEvent.ENTER)); close(); return; default: if (editable){ break; }; _local5 = list.getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), _local4); break; }; if (_local5 > -1){ if (isOpen){ highlightCell(_local5); inputField.text = list.itemToLabel(getItemAt(_local5)); } else { highlightCell(); selectedIndex = _local5; dispatchEvent(new Event(Event.CHANGE)); }; }; } public function set dropdownWidth(_arg1:Number):void{ _dropdownWidth = _arg1; invalidate(InvalidationType.SIZE); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ super.focusInHandler(_arg1); if (editable){ stage.focus = inputField.textField; }; } protected function onStageClick(_arg1:MouseEvent):void{ if (!isOpen){ return; }; if (((!(contains((_arg1.target as DisplayObject)))) && (!(list.contains((_arg1.target as DisplayObject)))))){ if (highlightedCell != -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; } protected function handleDataChange(_arg1:DataChangeEvent):void{ invalidate(InvalidationType.DATA); } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ isKeyDown = false; } protected function onListItemUp(_arg1:MouseEvent):void{ var _local2:*; stage.removeEventListener(MouseEvent.MOUSE_UP, onListItemUp); if (((!((_arg1.target is ICellRenderer))) || (!(list.contains((_arg1.target as DisplayObject)))))){ return; }; editableValue = null; _local2 = selectedIndex; selectedIndex = _arg1.target.listData.index; if (_local2 != selectedIndex){ dispatchEvent(new Event(Event.CHANGE)); }; close(); } public function removeAll():void{ list.removeAll(); inputField.text = ""; invalidate(InvalidationType.DATA); } public function set selectedItem(_arg1:Object):void{ list.selectedItem = _arg1; invalidate(InvalidationType.SELECTED); } protected function highlightCell(_arg1:int=-1):void{ var _local2:ICellRenderer; if (highlightedCell > -1){ _local2 = list.itemToCellRenderer(getItemAt(highlightedCell)); if (_local2 != null){ _local2.setMouseState("up"); }; }; if (_arg1 == -1){ return; }; list.scrollToIndex(_arg1); list.drawNow(); _local2 = list.itemToCellRenderer(getItemAt(_arg1)); if (_local2 != null){ _local2.setMouseState("over"); highlightedCell = _arg1; }; } public function itemToLabel(_arg1:Object):String{ if (_arg1 == null){ return (""); }; return (list.itemToLabel(_arg1)); } public function addItemAt(_arg1:Object, _arg2:uint):void{ list.addItemAt(_arg1, _arg2); invalidate(InvalidationType.DATA); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (list.replaceItemAt(_arg1, _arg2)); } protected function showPrompt():void{ inputField.text = _prompt; } public function set rowCount(_arg1:uint):void{ _rowCount = _arg1; invalidate(InvalidationType.SIZE); } public function get restrict():String{ return (inputField.restrict); } protected function setEmbedFonts():void{ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ inputField.textField.embedFonts = _local1; }; } public function sortItems(... _args){ return (list.sortItems.apply(list, _args)); } public function set labelField(_arg1:String):void{ list.labelField = _arg1; invalidate(InvalidationType.DATA); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; drawTextField(); } public function set prompt(_arg1:String):void{ if (_arg1 == ""){ _prompt = null; } else { _prompt = _arg1; }; invalidate(InvalidationType.STATE); } public function get length():int{ return (list.length); } protected function drawTextField():void{ inputField.setStyle("upSkin", ""); inputField.setStyle("disabledSkin", ""); inputField.enabled = enabled; inputField.editable = _editable; inputField.textField.selectable = ((enabled) && (_editable)); inputField.mouseEnabled = (inputField.mouseChildren = ((enabled) && (_editable))); inputField.focusEnabled = false; if (_editable){ inputField.addEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus, false, 0, true); inputField.addEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut, false, 0, true); } else { inputField.removeEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus); inputField.removeEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut); }; } protected function onInputFieldFocusOut(_arg1:FocusEvent):void{ inputField.removeEventListener(ComponentEvent.ENTER, onEnter); selectedIndex = selectedIndex; } protected function passEvent(_arg1:Event):void{ dispatchEvent(_arg1); } public function get imeMode():String{ return (inputField.imeMode); } public function get labelFunction():Function{ return (list.labelFunction); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return ((list.height - (_local1 * 2))); } public function get selectedIndex():int{ return (list.selectedIndex); } override protected function focusOutHandler(_arg1:FocusEvent):void{ isKeyDown = false; if (isOpen){ if (((!(_arg1.relatedObject)) || (!(list.contains(_arg1.relatedObject))))){ if (((!((highlightedCell == -1))) && (!((highlightedCell == selectedIndex))))){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; }; super.focusOutHandler(_arg1); } public function get selectedLabel():String{ if (editableValue != null){ return (editableValue); }; if (selectedIndex == -1){ return (null); }; return (itemToLabel(selectedItem)); } public function get text():String{ return (inputField.text); } protected function onListChange(_arg1:Event):void{ editableValue = null; dispatchEvent(_arg1); invalidate(InvalidationType.SELECTED); if (isKeyDown){ return; }; close(); } protected function onToggleListVisibility(_arg1:MouseEvent):void{ _arg1.stopPropagation(); dispatchEvent(_arg1); if (isOpen){ close(); } else { open(); stage.addEventListener(MouseEvent.MOUSE_UP, onListItemUp, false, 0, true); }; } override protected function draw():void{ var _local1:*; _local1 = selectedIndex; if ((((_local1 == -1)) && (((((!((prompt == null))) || (editable))) || ((length == 0)))))){ _local1 = Math.max(-1, Math.min(_local1, (length - 1))); } else { editableValue = null; _local1 = Math.max(0, Math.min(_local1, (length - 1))); }; if (list.selectedIndex != _local1){ list.selectedIndex = _local1; invalidate(InvalidationType.SELECTED, false); }; if (isInvalid(InvalidationType.STYLES)){ setStyles(); setEmbedFonts(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.STATE)){ drawTextFormat(); drawLayout(); invalidate(InvalidationType.DATA); }; if (isInvalid(InvalidationType.DATA)){ drawList(); invalidate(InvalidationType.SELECTED, true); }; if (isInvalid(InvalidationType.SELECTED)){ if ((((_local1 == -1)) && (!((editableValue == null))))){ inputField.text = editableValue; } else { if (_local1 > -1){ if (length > 0){ inputField.horizontalScrollPosition = 0; inputField.text = itemToLabel(list.selectedItem); }; } else { if ((((_local1 == -1)) && (!((_prompt == null))))){ showPrompt(); } else { inputField.text = ""; }; }; }; if (((((editable) && ((selectedIndex > -1)))) && ((stage.focus == inputField.textField)))){ inputField.setSelection(0, inputField.length); }; }; drawTextField(); super.draw(); } public function addItem(_arg1:Object):void{ list.addItem(_arg1); invalidate(InvalidationType.DATA); } public function get rowCount():uint{ return (_rowCount); } override protected function configUI():void{ super.configUI(); background = new BaseButton(); background.focusEnabled = false; copyStylesToChild(background, BACKGROUND_STYLES); background.addEventListener(MouseEvent.MOUSE_DOWN, onToggleListVisibility, false, 0, true); addChild(background); inputField = new TextInput(); inputField.focusTarget = (this as IFocusManagerComponent); inputField.focusEnabled = false; inputField.addEventListener(Event.CHANGE, onTextInput, false, 0, true); addChild(inputField); list = new List(); list.focusEnabled = false; copyStylesToChild(list, LIST_STYLES); list.addEventListener(Event.CHANGE, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_CLICK, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OUT, passEvent, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OVER, passEvent, false, 0, true); list.verticalScrollBar.addEventListener(Event.SCROLL, passEvent, false, 0, true); } protected function positionList():void{ var _local1:Point; _local1 = localToGlobal(new Point(0, 0)); list.x = _local1.x; if (((_local1.y + height) + list.height) > stage.stageHeight){ list.y = (_local1.y - list.height); } else { list.y = (_local1.y + height); }; } public function get value():String{ var _local1:Object; if (editableValue != null){ return (editableValue); }; _local1 = selectedItem; if (((!(_editable)) && (!((_local1.data == null))))){ return (_local1.data); }; return (itemToLabel(_local1)); } public function get prompt():String{ return (_prompt); } public function set dataProvider(_arg1:DataProvider):void{ _arg1.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); list.dataProvider = _arg1; invalidate(InvalidationType.DATA); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; if (!_editable){ return; }; inputField.restrict = _arg1; } protected function onTextInput(_arg1:Event):void{ _arg1.stopPropagation(); if (!_editable){ return; }; editableValue = inputField.text; selectedIndex = -1; dispatchEvent(new Event(Event.CHANGE)); } protected function onInputFieldFocus(_arg1:FocusEvent):void{ inputField.addEventListener(ComponentEvent.ENTER, onEnter, false, 0, true); close(); } public function getItemAt(_arg1:uint):Object{ return (list.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (ComboBox.createAccessibilityImplementation != null){ ComboBox.createAccessibilityImplementation(this); }; } protected function drawLayout():void{ var _local1:Number; var _local2:Number; _local1 = (getStyleValue("buttonWidth") as Number); _local2 = (getStyleValue("textPadding") as Number); background.setSize(width, height); inputField.x = (inputField.y = _local2); inputField.setSize(((width - _local1) - _local2), (height - _local2)); list.width = (isNaN(_dropdownWidth)) ? width : _dropdownWidth; background.enabled = enabled; background.drawNow(); } public function removeItem(_arg1:Object):Object{ return (list.removeItem(_arg1)); } private function addCloseListener(_arg1:Event){ removeEventListener(Event.ENTER_FRAME, addCloseListener); if (!isOpen){ return; }; stage.addEventListener(MouseEvent.MOUSE_DOWN, onStageClick, false, 0, true); } public function get dataProvider():DataProvider{ return (list.dataProvider); } public function get textField():TextInput{ return (inputField); } protected function setStyles():void{ copyStylesToChild(background, BACKGROUND_STYLES); copyStylesToChild(list, LIST_STYLES); } public function set labelFunction(_arg1:Function):void{ list.labelFunction = _arg1; invalidate(InvalidationType.DATA); } protected function drawTextFormat():void{ var _local1:TextFormat; _local1 = (getStyleValue((_enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local1 == null){ _local1 = new TextFormat(); }; inputField.textField.defaultTextFormat = _local1; inputField.textField.setTextFormat(_local1); setEmbedFonts(); } public function set selectedIndex(_arg1:int):void{ list.selectedIndex = _arg1; highlightCell(); invalidate(InvalidationType.SELECTED); } public function close():void{ highlightCell(); highlightedCell = -1; if (!isOpen){ return; }; dispatchEvent(new Event(Event.CLOSE)); stage.removeEventListener(MouseEvent.MOUSE_DOWN, onStageClick); isOpen = false; stage.removeChild(list); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, List.getStyleDefinition())); } } }//package fl.controls
Section 19
//LabelButton (fl.controls.LabelButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import flash.text.*; import fl.managers.*; import fl.events.*; import flash.ui.*; public class LabelButton extends BaseButton implements IFocusManagerComponent { protected var _labelPlacement:String;// = "right" protected var _toggle:Boolean;// = false protected var icon:DisplayObject; protected var oldMouseState:String; protected var mode:String;// = "center" public var textField:TextField; protected var _label:String;// = "Label" private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function LabelButton(){ _labelPlacement = ButtonLabelPlacement.RIGHT; _toggle = false; _label = "Label"; mode = "center"; super(); } protected function toggleSelected(_arg1:MouseEvent):void{ selected = !(selected); dispatchEvent(new Event(Event.CHANGE, true)); } public function get labelPlacement():String{ return (_labelPlacement); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ if (oldMouseState == null){ oldMouseState = mouseState; }; setMouseState("down"); startPress(); }; } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ setMouseState(oldMouseState); oldMouseState = null; endPress(); dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; } override public function get selected():Boolean{ return ((_toggle) ? _selected : false); } public function set labelPlacement(_arg1:String):void{ _labelPlacement = _arg1; invalidate(InvalidationType.SIZE); } public function set toggle(_arg1:Boolean):void{ if (((!(_arg1)) && (super.selected))){ selected = false; }; _toggle = _arg1; if (_toggle){ addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true); } else { removeEventListener(MouseEvent.CLICK, toggleSelected); }; invalidate(InvalidationType.STATE); } public function get label():String{ return (_label); } override public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (_toggle){ invalidate(InvalidationType.STATE); }; } override protected function draw():void{ if (textField.text != _label){ label = _label; }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); drawIcon(); drawTextFormat(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } public function get toggle():Boolean{ return (_toggle); } override protected function configUI():void{ super.configUI(); textField = new TextField(); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; addChild(textField); } override protected function drawLayout():void{ var _local1:Number; var _local2:String; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement; textField.height = (textField.textHeight + 4); _local3 = (textField.textWidth + 4); _local4 = (textField.textHeight + 4); _local5 = ((icon)==null) ? 0 : (icon.width + _local1); _local6 = ((icon)==null) ? 0 : (icon.height + _local1); textField.visible = (label.length > 0); if (icon != null){ icon.x = Math.round(((width - icon.width) / 2)); icon.y = Math.round(((height - icon.height) / 2)); }; if (textField.visible == false){ textField.width = 0; textField.height = 0; } else { if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){ _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1)))); if ((height - 2) > _local4){ _local8 = _local4; } else { _local8 = (height - 2); }; _local3 = _local7; textField.width = _local3; _local4 = _local8; textField.height = _local4; textField.x = Math.round(((width - _local3) / 2)); textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0)); if (icon != null){ icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1)); }; } else { _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1)))); _local3 = _local7; textField.width = _local3; textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0)); textField.y = Math.round(((height - textField.height) / 2)); if (icon != null){ icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1)); }; }; }; super.drawLayout(); } override protected function initializeAccessibility():void{ if (LabelButton.createAccessibilityImplementation != null){ LabelButton.createAccessibilityImplementation(this); }; } protected function drawIcon():void{ var _local1:DisplayObject; var _local2:String; var _local3:Object; _local1 = icon; _local2 = (enabled) ? mouseState : "disabled"; if (selected){ _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1)); }; _local2 = (_local2 + "Icon"); _local3 = getStyleValue(_local2); if (_local3 == null){ _local3 = getStyleValue("icon"); }; if (_local3 != null){ icon = getDisplayObjectInstance(_local3); }; if (icon != null){ addChildAt(icon, 1); }; if (((!((_local1 == null))) && (!((_local1 == icon))))){ removeChild(_local1); }; } public function set label(_arg1:String):void{ _label = _arg1; if (textField.text != _label){ textField.text = _label; dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE)); }; invalidate(InvalidationType.SIZE); invalidate(InvalidationType.STYLES); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition())); } } }//package fl.controls
Section 20
//List (fl.controls.List) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.events.*; import flash.utils.*; import flash.geom.*; import fl.managers.*; import flash.ui.*; public class List extends SelectableList implements IFocusManagerComponent { protected var _labelField:String;// = "label" protected var _rowHeight:Number;// = 20 protected var _cellRenderer:Object; protected var _iconField:String;// = "icon" protected var _labelFunction:Function; protected var _iconFunction:Function; private static var defaultStyles:Object = {focusRectSkin:null, focusRectPadding:null}; public static var createAccessibilityImplementation:Function; public function List(){ _rowHeight = 20; _labelField = "label"; _iconField = "icon"; super(); } public function get iconField():String{ return (_iconField); } protected function doKeySelection(_arg1:int, _arg2:Boolean, _arg3:Boolean):void{ var _local4:Boolean; var _local5:int; var _local6:Array; var _local7:int; var _local8:int; _local4 = false; if (_arg2){ _local6 = []; _local7 = lastCaretIndex; _local8 = _arg1; if (_local7 == -1){ _local7 = ((caretIndex)!=-1) ? caretIndex : _arg1; }; if (_local7 > _local8){ _local8 = _local7; _local7 = _arg1; }; _local5 = _local7; while (_local5 <= _local8) { _local6.push(_local5); _local5++; }; selectedIndices = _local6; caretIndex = _arg1; _local4 = true; } else { selectedIndex = _arg1; caretIndex = (lastCaretIndex = _arg1); _local4 = true; }; if (_local4){ dispatchEvent(new Event(Event.CHANGE)); }; invalidate(InvalidationType.DATA); } override protected function drawList():void{ var _local1:Rectangle; var _local2:uint; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:ICellRenderer; var _local7:Dictionary; var _local8:Dictionary; var _local9:Boolean; var _local10:String; var _local11:Object; var _local12:Sprite; var _local13:String; listHolder.x = (listHolder.y = contentPadding); _local1 = listHolder.scrollRect; _local1.x = _horizontalScrollPosition; _local1.y = (Math.floor(_verticalScrollPosition) % rowHeight); listHolder.scrollRect = _local1; listHolder.cacheAsBitmap = useBitmapScrolling; _local2 = Math.floor((_verticalScrollPosition / rowHeight)); _local3 = Math.min(length, ((_local2 + rowCount) + 1)); _local7 = (renderedItems = new Dictionary(true)); _local4 = _local2; while (_local4 < _local3) { _local7[_dataProvider.getItemAt(_local4)] = true; _local4++; }; _local8 = new Dictionary(true); while (activeCellRenderers.length > 0) { _local6 = (activeCellRenderers.pop() as ICellRenderer); _local5 = _local6.data; if ((((_local7[_local5] == null)) || ((invalidItems[_local5] == true)))){ availableCellRenderers.push(_local6); } else { _local8[_local5] = _local6; invalidItems[_local5] = true; }; list.removeChild((_local6 as DisplayObject)); }; invalidItems = new Dictionary(true); _local4 = _local2; while (_local4 < _local3) { _local9 = false; _local5 = _dataProvider.getItemAt(_local4); if (_local8[_local5] != null){ _local9 = true; _local6 = _local8[_local5]; delete _local8[_local5]; } else { if (availableCellRenderers.length > 0){ _local6 = (availableCellRenderers.pop() as ICellRenderer); } else { _local6 = (getDisplayObjectInstance(getStyleValue("cellRenderer")) as ICellRenderer); _local12 = (_local6 as Sprite); if (_local12 != null){ _local12.addEventListener(MouseEvent.CLICK, handleCellRendererClick, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OVER, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OUT, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(Event.CHANGE, handleCellRendererChange, false, 0, true); _local12.doubleClickEnabled = true; _local12.addEventListener(MouseEvent.DOUBLE_CLICK, handleCellRendererDoubleClick, false, 0, true); if (_local12["setStyle"] != null){ for (_local13 in rendererStyles) { var _local16 = _local12; _local16["setStyle"](_local13, rendererStyles[_local13]); }; }; }; }; }; list.addChild((_local6 as Sprite)); activeCellRenderers.push(_local6); _local6.y = (rowHeight * (_local4 - _local2)); _local6.setSize((availableWidth + _maxHorizontalScrollPosition), rowHeight); _local10 = itemToLabel(_local5); _local11 = null; if (_iconFunction != null){ _local11 = _iconFunction(_local5); } else { if (_iconField != null){ _local11 = _local5[_iconField]; }; }; if (!_local9){ _local6.data = _local5; }; _local6.listData = new ListData(_local10, _local11, this, _local4, _local4, 0); _local6.selected = !((_selectedIndices.indexOf(_local4) == -1)); if ((_local6 is UIComponent)){ (_local6 as UIComponent).drawNow(); }; _local4++; }; } public function get iconFunction():Function{ return (_iconFunction); } public function set iconField(_arg1:String):void{ if (_arg1 == _iconField){ return; }; _iconField = _arg1; invalidate(InvalidationType.DATA); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.SPACE: if (caretIndex == -1){ caretIndex = 0; }; doKeySelection(caretIndex, _arg1.shiftKey, _arg1.ctrlKey); scrollToSelected(); break; default: _local2 = getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), selectedIndex); if (_local2 > -1){ selectedIndex = _local2; scrollToSelected(); }; break; }; _arg1.stopPropagation(); } override public function itemToLabel(_arg1:Object):String{ if (_labelFunction != null){ return (String(_labelFunction(_arg1))); }; return (((_arg1[_labelField])!=null) ? String(_arg1[_labelField]) : ""); } public function get labelField():String{ return (_labelField); } override protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ var _local4:int; var _local5:int; var _local6:int; _local4 = Math.max(Math.floor((calculateAvailableHeight() / rowHeight)), 1); _local5 = -1; _local6 = 0; switch (_arg1){ case Keyboard.UP: if (caretIndex > 0){ _local5 = (caretIndex - 1); }; break; case Keyboard.DOWN: if (caretIndex < (length - 1)){ _local5 = (caretIndex + 1); }; break; case Keyboard.PAGE_UP: if (caretIndex > 0){ _local5 = Math.max((caretIndex - _local4), 0); }; break; case Keyboard.PAGE_DOWN: if (caretIndex < (length - 1)){ _local5 = Math.min((caretIndex + _local4), (length - 1)); }; break; case Keyboard.HOME: if (caretIndex > 0){ _local5 = 0; }; break; case Keyboard.END: if (caretIndex < (length - 1)){ _local5 = (length - 1); }; break; }; if (_local5 >= 0){ doKeySelection(_local5, _arg2, _arg3); scrollToSelected(); }; } public function set labelField(_arg1:String):void{ if (_arg1 == _labelField){ return; }; _labelField = _arg1; invalidate(InvalidationType.DATA); } public function set rowCount(_arg1:uint):void{ var _local2:Number; var _local3:Number; _local2 = Number(getStyleValue("contentPadding")); _local3 = ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0; height = (((rowHeight * _arg1) + (2 * _local2)) + _local3); } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ list.x = -(_arg1); super.setHorizontalScrollPosition(_arg1, true); } public function set iconFunction(_arg1:Function):void{ if (_iconFunction == _arg1){ return; }; _iconFunction = _arg1; invalidate(InvalidationType.DATA); } public function get labelFunction():Function{ return (_labelFunction); } override protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ invalidate(InvalidationType.SCROLL); super.setVerticalScrollPosition(_arg1, true); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return (((height - (_local1 * 2)) - ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0)); } override protected function draw():void{ var _local1:Boolean; _local1 = !((contentHeight == (rowHeight * length))); contentHeight = (rowHeight * length); if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; if (_cellRenderer != getStyleValue("cellRenderer")){ _invalidateList(); _cellRenderer = getStyleValue("cellRenderer"); }; }; if (((isInvalid(InvalidationType.SIZE, InvalidationType.STATE)) || (_local1))){ drawLayout(); }; if (isInvalid(InvalidationType.RENDERER_STYLES)){ updateRendererStyles(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.SCROLL, InvalidationType.SELECTED)){ drawList(); }; updateChildren(); validate(); } override protected function configUI():void{ useFixedHorizontalScrolling = true; _horizontalScrollPolicy = ScrollPolicy.AUTO; _verticalScrollPolicy = ScrollPolicy.AUTO; super.configUI(); } override public function get rowCount():uint{ return (Math.ceil((calculateAvailableHeight() / rowHeight))); } override protected function initializeAccessibility():void{ if (List.createAccessibilityImplementation != null){ List.createAccessibilityImplementation(this); }; } override public function scrollToIndex(_arg1:int):void{ var _local2:uint; var _local3:uint; drawNow(); _local2 = (Math.floor(((_verticalScrollPosition + availableHeight) / rowHeight)) - 1); _local3 = Math.ceil((_verticalScrollPosition / rowHeight)); if (_arg1 < _local3){ verticalScrollPosition = (_arg1 * rowHeight); } else { if (_arg1 > _local2){ verticalScrollPosition = (((_arg1 + 1) * rowHeight) - availableHeight); }; }; } public function get rowHeight():Number{ return (_rowHeight); } public function set labelFunction(_arg1:Function):void{ if (_labelFunction == _arg1){ return; }; _labelFunction = _arg1; invalidate(InvalidationType.DATA); } public function set rowHeight(_arg1:Number):void{ _rowHeight = _arg1; invalidate(InvalidationType.SIZE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, SelectableList.getStyleDefinition())); } } }//package fl.controls
Section 21
//ScrollBar (fl.controls.ScrollBar) package fl.controls { import fl.core.*; import flash.events.*; import fl.events.*; public class ScrollBar extends UIComponent { private var _direction:String;// = "vertical" protected var inDrag:Boolean;// = false protected var upArrow:BaseButton; private var _pageScrollSize:Number;// = 0 protected var downArrow:BaseButton; private var _pageSize:Number;// = 10 private var thumbScrollOffset:Number; private var _maxScrollPosition:Number;// = 0 private var _scrollPosition:Number;// = 0 protected var track:BaseButton; private var _minScrollPosition:Number;// = 0 private var _lineScrollSize:Number;// = 1 protected var thumb:LabelButton; protected static const THUMB_STYLES:Object = {disabledSkin:"thumbDisabledSkin", downSkin:"thumbDownSkin", overSkin:"thumbOverSkin", upSkin:"thumbUpSkin", icon:"thumbIcon", textPadding:0}; public static const WIDTH:Number = 15; protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const TRACK_STYLES:Object = {disabledSkin:"trackDisabledSkin", downSkin:"trackDownSkin", overSkin:"trackOverSkin", upSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {downArrowDisabledSkin:"ScrollArrowDown_disabledSkin", downArrowDownSkin:"ScrollArrowDown_downSkin", downArrowOverSkin:"ScrollArrowDown_overSkin", downArrowUpSkin:"ScrollArrowDown_upSkin", thumbDisabledSkin:"ScrollThumb_upSkin", thumbDownSkin:"ScrollThumb_downSkin", thumbOverSkin:"ScrollThumb_overSkin", thumbUpSkin:"ScrollThumb_upSkin", trackDisabledSkin:"ScrollTrack_skin", trackDownSkin:"ScrollTrack_skin", trackOverSkin:"ScrollTrack_skin", trackUpSkin:"ScrollTrack_skin", upArrowDisabledSkin:"ScrollArrowUp_disabledSkin", upArrowDownSkin:"ScrollArrowUp_downSkin", upArrowOverSkin:"ScrollArrowUp_overSkin", upArrowUpSkin:"ScrollArrowUp_upSkin", thumbIcon:"ScrollBar_thumbIcon", repeatDelay:500, repeatInterval:35}; public function ScrollBar(){ _pageSize = 10; _pageScrollSize = 0; _lineScrollSize = 1; _minScrollPosition = 0; _maxScrollPosition = 0; _scrollPosition = 0; _direction = ScrollBarDirection.VERTICAL; inDrag = false; super(); setStyles(); focusEnabled = false; } public function get minScrollPosition():Number{ return (_minScrollPosition); } public function set minScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _arg1, _maxScrollPosition); } public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ var _local3:Number; _local3 = scrollPosition; _scrollPosition = Math.max(_minScrollPosition, Math.min(_maxScrollPosition, _arg1)); if (_local3 == _scrollPosition){ return; }; if (_arg2){ dispatchEvent(new ScrollEvent(_direction, (scrollPosition - _local3), scrollPosition)); }; updateThumb(); } public function set scrollPosition(_arg1:Number):void{ setScrollPosition(_arg1, true); } public function get pageScrollSize():Number{ return (((_pageScrollSize)==0) ? _pageSize : _pageScrollSize); } public function set pageSize(_arg1:Number):void{ if (_arg1 > 0){ _pageSize = _arg1; }; } public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ this.pageSize = _arg1; _minScrollPosition = _arg2; _maxScrollPosition = _arg3; if (_arg4 >= 0){ _pageScrollSize = _arg4; }; enabled = (_maxScrollPosition > _minScrollPosition); setScrollPosition(_scrollPosition, false); updateThumb(); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; downArrow.enabled = (track.enabled = (thumb.enabled = (upArrow.enabled = ((enabled) && ((_maxScrollPosition > _minScrollPosition)))))); updateThumb(); } protected function updateThumb():void{ var _local1:Number; _local1 = ((_maxScrollPosition - _minScrollPosition) + _pageSize); if ((((((track.height <= 12)) || ((_maxScrollPosition <= _minScrollPosition)))) || ((((_local1 == 0)) || (isNaN(_local1)))))){ thumb.height = 12; thumb.visible = false; } else { thumb.height = Math.max(13, ((_pageSize / _local1) * track.height)); thumb.y = (track.y + ((track.height - thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition)))); thumb.visible = enabled; }; } protected function thumbPressHandler(_arg1:MouseEvent):void{ inDrag = true; thumbScrollOffset = (mouseY - thumb.y); thumb.mouseStateLocked = true; mouseChildren = false; stage.addEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true); } protected function thumbReleaseHandler(_arg1:MouseEvent):void{ inDrag = false; mouseChildren = true; thumb.mouseStateLocked = false; stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag); stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler); } public function set pageScrollSize(_arg1:Number):void{ if (_arg1 >= 0){ _pageScrollSize = _arg1; }; } protected function handleThumbDrag(_arg1:MouseEvent):void{ var _local2:Number; _local2 = Math.max(0, Math.min((track.height - thumb.height), ((mouseY - track.y) - thumbScrollOffset))); setScrollPosition((((_local2 / (track.height - thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition)); } public function set direction(_arg1:String):void{ var _local2:Boolean; if (_direction == _arg1){ return; }; _direction = _arg1; if (isLivePreview){ return; }; setScaleY(1); _local2 = (_direction == ScrollBarDirection.HORIZONTAL); if (((_local2) && (componentInspectorSetting))){ if (rotation == 90){ return; }; setScaleX(-1); rotation = -90; }; if (!componentInspectorSetting){ if (((_local2) && ((rotation == 0)))){ rotation = -90; setScaleX(-1); } else { if (((!(_local2)) && ((rotation == -90)))){ rotation = 0; setScaleX(1); }; }; }; invalidate(InvalidationType.SIZE); } public function set lineScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _lineScrollSize = _arg1; }; } override public function get height():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height); } protected function scrollPressHandler(_arg1:ComponentEvent):void{ var _local2:Number; var _local3:Number; _arg1.stopImmediatePropagation(); if (_arg1.currentTarget == upArrow){ setScrollPosition((_scrollPosition - _lineScrollSize)); } else { if (_arg1.currentTarget == downArrow){ setScrollPosition((_scrollPosition + _lineScrollSize)); } else { _local2 = (((track.mouseY / track.height) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); _local3 = ((pageScrollSize)==0) ? pageSize : pageScrollSize; if (_scrollPosition < _local2){ setScrollPosition(Math.min(_local2, (_scrollPosition + _local3))); } else { if (_scrollPosition > _local2){ setScrollPosition(Math.max(_local2, (_scrollPosition - _local3))); }; }; }; }; } public function get pageSize():Number{ return (_pageSize); } public function set maxScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _minScrollPosition, _arg1); } public function get scrollPosition():Number{ return (_scrollPosition); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ var _local1:Number; if (isInvalid(InvalidationType.SIZE)){ _local1 = super.height; downArrow.move(0, Math.max(upArrow.height, (_local1 - downArrow.height))); track.setSize(WIDTH, Math.max(0, (_local1 - (downArrow.height + upArrow.height)))); updateThumb(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ setStyles(); }; downArrow.drawNow(); upArrow.drawNow(); track.drawNow(); thumb.drawNow(); validate(); } override protected function configUI():void{ super.configUI(); track = new BaseButton(); track.move(0, 14); track.useHandCursor = false; track.autoRepeat = true; track.focusEnabled = false; addChild(track); thumb = new LabelButton(); thumb.label = ""; thumb.setSize(WIDTH, 15); thumb.move(0, 15); thumb.focusEnabled = false; addChild(thumb); downArrow = new BaseButton(); downArrow.setSize(WIDTH, 14); downArrow.autoRepeat = true; downArrow.focusEnabled = false; addChild(downArrow); upArrow = new BaseButton(); upArrow.setSize(WIDTH, 14); upArrow.move(0, 0); upArrow.autoRepeat = true; upArrow.focusEnabled = false; addChild(upArrow); upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); track.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true); enabled = false; } public function get direction():String{ return (_direction); } public function get lineScrollSize():Number{ return (_lineScrollSize); } override public function setSize(_arg1:Number, _arg2:Number):void{ if (_direction == ScrollBarDirection.HORIZONTAL){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; } public function get maxScrollPosition():Number{ return (_maxScrollPosition); } override public function get width():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width); } protected function setStyles():void{ copyStylesToChild(downArrow, DOWN_ARROW_STYLES); copyStylesToChild(thumb, THUMB_STYLES); copyStylesToChild(track, TRACK_STYLES); copyStylesToChild(upArrow, UP_ARROW_STYLES); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 22
//ScrollBarDirection (fl.controls.ScrollBarDirection) package fl.controls { public class ScrollBarDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; } }//package fl.controls
Section 23
//ScrollPolicy (fl.controls.ScrollPolicy) package fl.controls { public class ScrollPolicy { public static const OFF:String = "off"; public static const ON:String = "on"; public static const AUTO:String = "auto"; } }//package fl.controls
Section 24
//SelectableList (fl.controls.SelectableList) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.events.*; import flash.utils.*; import fl.data.*; import fl.managers.*; import fl.events.*; import fl.containers.*; import flash.ui.*; public class SelectableList extends BaseScrollPane implements IFocusManagerComponent { protected var invalidItems:Dictionary; protected var renderedItems:Dictionary; protected var listHolder:Sprite; protected var _allowMultipleSelection:Boolean;// = false protected var lastCaretIndex:int;// = -1 protected var _selectedIndices:Array; protected var availableCellRenderers:Array; protected var list:Sprite; protected var caretIndex:int;// = -1 protected var updatedRendererStyles:Object; protected var preChangeItems:Array; protected var activeCellRenderers:Array; protected var rendererStyles:Object; protected var _verticalScrollPosition:Number; protected var _dataProvider:DataProvider; protected var _horizontalScrollPosition:Number; private var collectionItemImport:SimpleCollectionItem; protected var _selectable:Boolean;// = true private static var defaultStyles:Object = {skin:"List_skin", cellRenderer:CellRenderer, contentPadding:null, disabledAlpha:null}; public static var createAccessibilityImplementation:Function; public function SelectableList(){ _allowMultipleSelection = false; _selectable = true; caretIndex = -1; lastCaretIndex = -1; super(); activeCellRenderers = []; availableCellRenderers = []; invalidItems = new Dictionary(true); renderedItems = new Dictionary(true); _selectedIndices = []; if (dataProvider == null){ dataProvider = new DataProvider(); }; verticalScrollPolicy = ScrollPolicy.AUTO; rendererStyles = {}; updatedRendererStyles = {}; } protected function drawList():void{ } public function set allowMultipleSelection(_arg1:Boolean):void{ if (_arg1 == _allowMultipleSelection){ return; }; _allowMultipleSelection = _arg1; if (((!(_arg1)) && ((_selectedIndices.length > 1)))){ _selectedIndices = [_selectedIndices.pop()]; invalidate(InvalidationType.DATA); }; } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (_dataProvider.sortOn(_arg1, _arg2)); } public function removeItemAt(_arg1:uint):Object{ return (_dataProvider.removeItemAt(_arg1)); } public function get selectedItem():Object{ return (((_selectedIndices.length)==0) ? null : _dataProvider.getItemAt(selectedIndex)); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; }; } public function get selectable():Boolean{ return (_selectable); } public function itemToCellRenderer(_arg1:Object):ICellRenderer{ var _local2:*; var _local3:ICellRenderer; if (_arg1 != null){ for (_local2 in activeCellRenderers) { _local3 = (activeCellRenderers[_local2] as ICellRenderer); if (_local3.data == _arg1){ return (_local3); }; }; }; return (null); } public function getNextIndexAtLetter(_arg1:String, _arg2:int=-1):int{ var _local3:int; var _local4:Number; var _local5:Number; var _local6:Object; var _local7:String; if (length == 0){ return (-1); }; _arg1 = _arg1.toUpperCase(); _local3 = (length - 1); _local4 = 0; while (_local4 < _local3) { _local5 = ((_arg2 + 1) + _local4); if (_local5 > (length - 1)){ _local5 = (_local5 - length); }; _local6 = getItemAt(_local5); if (_local6 == null){ break; }; _local7 = itemToLabel(_local6); if (_local7 == null){ } else { if (_local7.charAt(0).toUpperCase() == _arg1){ return (_local5); }; }; _local4++; }; return (-1); } public function invalidateList():void{ _invalidateList(); invalidate(InvalidationType.DATA); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; list.mouseChildren = _enabled; } public function get selectedIndices():Array{ return (_selectedIndices.concat()); } public function set selectable(_arg1:Boolean):void{ if (_arg1 == _selectable){ return; }; if (!_arg1){ selectedIndices = []; }; _selectable = _arg1; } public function itemToLabel(_arg1:Object):String{ return (_arg1["label"]); } public function addItemAt(_arg1:Object, _arg2:uint):void{ _dataProvider.addItemAt(_arg1, _arg2); invalidateList(); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (_dataProvider.replaceItemAt(_arg1, _arg2)); } protected function handleDataChange(_arg1:DataChangeEvent):void{ var _local2:int; var _local3:int; var _local4:String; var _local5:uint; _local2 = _arg1.startIndex; _local3 = _arg1.endIndex; _local4 = _arg1.changeType; if (_local4 == DataChangeType.INVALIDATE_ALL){ clearSelection(); invalidateList(); } else { if (_local4 == DataChangeType.INVALIDATE){ _local5 = 0; while (_local5 < _arg1.items.length) { invalidateItem(_arg1.items[_local5]); _local5++; }; } else { if (_local4 == DataChangeType.ADD){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ _selectedIndices[_local5] = (_selectedIndices[_local5] + (_local2 - _local3)); }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ if (_selectedIndices[_local5] <= _local3){ delete _selectedIndices[_local5]; } else { _selectedIndices[_local5] = (_selectedIndices[_local5] - ((_local2 - _local3) + 1)); }; }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE_ALL){ clearSelection(); } else { if (_local4 == DataChangeType.REPLACE){ } else { selectedItems = preChangeItems; preChangeItems = null; }; }; }; }; }; }; invalidate(InvalidationType.DATA); } protected function _invalidateList():void{ availableCellRenderers = []; while (activeCellRenderers.length > 0) { list.removeChild((activeCellRenderers.pop() as DisplayObject)); }; } protected function updateRendererStyles():void{ var _local1:Array; var _local2:uint; var _local3:uint; var _local4:String; _local1 = availableCellRenderers.concat(activeCellRenderers); _local2 = _local1.length; _local3 = 0; while (_local3 < _local2) { if (_local1[_local3].setStyle == null){ } else { for (_local4 in updatedRendererStyles) { _local1[_local3].setStyle(_local4, updatedRendererStyles[_local4]); }; _local1[_local3].drawNow(); }; _local3++; }; updatedRendererStyles = {}; } public function set selectedItem(_arg1:Object):void{ var _local2:int; _local2 = _dataProvider.getItemIndex(_arg1); selectedIndex = _local2; } public function sortItems(... _args){ return (_dataProvider.sort.apply(_dataProvider, _args)); } public function removeAll():void{ _dataProvider.removeAll(); } protected function handleCellRendererChange(_arg1:Event):void{ var _local2:ICellRenderer; var _local3:uint; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; _dataProvider.invalidateItemAt(_local3); } protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _horizontalScrollPosition){ return; }; _local3 = (_arg1 - _horizontalScrollPosition); _horizontalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.HORIZONTAL, _local3, _arg1)); }; } public function scrollToSelected():void{ scrollToIndex(selectedIndex); } public function invalidateItem(_arg1:Object):void{ if (renderedItems[_arg1] == null){ return; }; invalidItems[_arg1] = true; invalidate(InvalidationType.DATA); } protected function handleCellRendererClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; var _local4:int; var _local5:int; var _local6:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; if (((!(dispatchEvent(new ListEvent(ListEvent.ITEM_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)))) || (!(_selectable)))){ return; }; _local4 = selectedIndices.indexOf(_local3); if (!_allowMultipleSelection){ if (_local4 != -1){ return; }; _local2.selected = true; _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); } else { if (_arg1.shiftKey){ _local6 = ((_selectedIndices.length)>0) ? _selectedIndices[0] : _local3; _selectedIndices = []; if (_local6 > _local3){ _local5 = _local6; while (_local5 >= _local3) { _selectedIndices.push(_local5); _local5--; }; } else { _local5 = _local6; while (_local5 <= _local3) { _selectedIndices.push(_local5); _local5++; }; }; caretIndex = _local3; } else { if (_arg1.ctrlKey){ if (_local4 != -1){ _local2.selected = false; _selectedIndices.splice(_local4, 1); } else { _local2.selected = true; _selectedIndices.push(_local3); }; caretIndex = _local3; } else { _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); }; }; }; dispatchEvent(new Event(Event.CHANGE)); invalidate(InvalidationType.DATA); } public function get length():uint{ return (_dataProvider.length); } public function get allowMultipleSelection():Boolean{ return (_allowMultipleSelection); } protected function onPreChange(_arg1:DataChangeEvent):void{ switch (_arg1.changeType){ case DataChangeType.REMOVE: case DataChangeType.ADD: case DataChangeType.INVALIDATE: case DataChangeType.REMOVE_ALL: case DataChangeType.REPLACE: case DataChangeType.INVALIDATE_ALL: break; default: preChangeItems = selectedItems; break; }; } public function getRendererStyle(_arg1:String, _arg2:int=-1):Object{ return (rendererStyles[_arg1]); } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _verticalScrollPosition){ return; }; _local3 = (_arg1 - _verticalScrollPosition); _verticalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _local3, _arg1)); }; } protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } public function set selectedIndices(_arg1:Array):void{ if (!_selectable){ return; }; _selectedIndices = ((_arg1)==null) ? [] : _arg1.concat(); invalidate(InvalidationType.SELECTED); } public function get selectedIndex():int{ return (((_selectedIndices.length)==0) ? -1 : _selectedIndices[(_selectedIndices.length - 1)]); } override protected function draw():void{ super.draw(); } override protected function configUI():void{ super.configUI(); listHolder = new Sprite(); addChild(listHolder); listHolder.scrollRect = contentScrollRect; list = new Sprite(); listHolder.addChild(list); } public function addItem(_arg1:Object):void{ _dataProvider.addItem(_arg1); invalidateList(); } protected function handleCellRendererMouseEvent(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:String; _local2 = (_arg1.target as ICellRenderer); _local3 = ((_arg1.type)==MouseEvent.ROLL_OVER) ? ListEvent.ITEM_ROLL_OVER : ListEvent.ITEM_ROLL_OUT; dispatchEvent(new ListEvent(_local3, false, false, _local2.listData.column, _local2.listData.row, _local2.listData.index, _local2.data)); } public function clearRendererStyle(_arg1:String, _arg2:int=-1):void{ delete rendererStyles[_arg1]; updatedRendererStyles[_arg1] = null; invalidate(InvalidationType.RENDERER_STYLES); } protected function handleCellRendererDoubleClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; dispatchEvent(new ListEvent(ListEvent.ITEM_DOUBLE_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)); } public function get rowCount():uint{ return (0); } public function isItemSelected(_arg1:Object):Boolean{ return ((selectedItems.indexOf(_arg1) > -1)); } public function set dataProvider(_arg1:DataProvider):void{ if (_dataProvider != null){ _dataProvider.removeEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange); _dataProvider.removeEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange); }; _dataProvider = _arg1; _dataProvider.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); _dataProvider.addEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange, false, 0, true); clearSelection(); invalidateList(); } override protected function drawLayout():void{ super.drawLayout(); contentScrollRect = listHolder.scrollRect; contentScrollRect.width = availableWidth; contentScrollRect.height = availableHeight; listHolder.scrollRect = contentScrollRect; } public function getItemAt(_arg1:uint):Object{ return (_dataProvider.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (SelectableList.createAccessibilityImplementation != null){ SelectableList.createAccessibilityImplementation(this); }; } public function scrollToIndex(_arg1:int):void{ } public function removeItem(_arg1:Object):Object{ return (_dataProvider.removeItem(_arg1)); } public function get dataProvider():DataProvider{ return (_dataProvider); } public function set maxHorizontalScrollPosition(_arg1:Number):void{ _maxHorizontalScrollPosition = _arg1; invalidate(InvalidationType.SIZE); } public function setRendererStyle(_arg1:String, _arg2:Object, _arg3:uint=0):void{ if (rendererStyles[_arg1] == _arg2){ return; }; updatedRendererStyles[_arg1] = _arg2; rendererStyles[_arg1] = _arg2; invalidate(InvalidationType.RENDERER_STYLES); } public function invalidateItemAt(_arg1:uint):void{ var _local2:Object; _local2 = _dataProvider.getItemAt(_arg1); if (_local2 != null){ invalidateItem(_local2); }; } public function set selectedItems(_arg1:Array):void{ var _local2:Array; var _local3:uint; var _local4:int; if (_arg1 == null){ selectedIndices = null; return; }; _local2 = []; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _dataProvider.getItemIndex(_arg1[_local3]); if (_local4 != -1){ _local2.push(_local4); }; _local3++; }; selectedIndices = _local2; } public function clearSelection():void{ selectedIndex = -1; } override public function get maxHorizontalScrollPosition():Number{ return (_maxHorizontalScrollPosition); } public function get selectedItems():Array{ var _local1:Array; var _local2:uint; _local1 = []; _local2 = 0; while (_local2 < _selectedIndices.length) { _local1.push(_dataProvider.getItemAt(_selectedIndices[_local2])); _local2++; }; return (_local1); } public function set selectedIndex(_arg1:int):void{ selectedIndices = ((_arg1)==-1) ? null : [_arg1]; } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseScrollPane.getStyleDefinition())); } } }//package fl.controls
Section 25
//TextInput (fl.controls.TextInput) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import flash.text.*; import fl.managers.*; import fl.events.*; import flash.ui.*; public class TextInput extends UIComponent implements IFocusManagerComponent { protected var _html:Boolean;// = false protected var _savedHTML:String; protected var background:DisplayObject; protected var _editable:Boolean;// = true public var textField:TextField; private static var defaultStyles:Object = {upSkin:"TextInput_upSkin", disabledSkin:"TextInput_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:0, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function TextInput(){ _editable = true; _html = false; super(); } override public function drawFocus(_arg1:Boolean):void{ if (focusTarget != null){ focusTarget.drawFocus(_arg1); return; }; super.drawFocus(_arg1); } public function set imeMode(_arg1:String):void{ _imeMode = _arg1; } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == textField)) || (super.isOurFocus(_arg1)))); } protected function handleKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true)); }; } public function set text(_arg1:String):void{ textField.text = _arg1; _html = false; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } protected function updateTextFieldType():void{ textField.type = (((enabled) && (editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC; textField.selectable = enabled; } public function get selectionEndIndex():int{ return (textField.selectionEndIndex); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (_arg1.target == this){ stage.focus = textField; }; _local2 = focusManager; if (((editable) && (_local2))){ _local2.showFocusIndicator = true; if (((textField.selectable) && ((textField.selectionBeginIndex == textField.selectionBeginIndex)))){ setSelection(0, textField.length); }; }; super.focusInHandler(_arg1); if (editable){ setIMEMode(true); }; } public function get selectionBeginIndex():int{ return (textField.selectionBeginIndex); } public function set alwaysShowSelection(_arg1:Boolean):void{ textField.alwaysShowSelection = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; updateTextFieldType(); } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } public function get horizontalScrollPosition():int{ return (textField.scrollH); } public function set condenseWhite(_arg1:Boolean):void{ textField.condenseWhite = _arg1; } public function set displayAsPassword(_arg1:Boolean):void{ textField.displayAsPassword = _arg1; } public function set horizontalScrollPosition(_arg1:int):void{ textField.scrollH = _arg1; } public function get restrict():String{ return (textField.restrict); } public function get textWidth():Number{ return (textField.textWidth); } public function get textHeight():Number{ return (textField.textHeight); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; updateTextFieldType(); } public function get maxChars():int{ return (textField.maxChars); } public function get length():int{ return (textField.length); } public function getLineMetrics(_arg1:int):TextLineMetrics{ return (textField.getLineMetrics(_arg1)); } public function get imeMode():String{ return (_imeMode); } override protected function focusOutHandler(_arg1:FocusEvent):void{ super.focusOutHandler(_arg1); if (editable){ setIMEMode(false); }; } public function set htmlText(_arg1:String):void{ if (_arg1 == ""){ text = ""; return; }; _html = true; _savedHTML = _arg1; textField.htmlText = _arg1; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } public function get text():String{ return (textField.text); } override public function get enabled():Boolean{ return (super.enabled); } public function get condenseWhite():Boolean{ return (textField.condenseWhite); } public function get alwaysShowSelection():Boolean{ return (textField.alwaysShowSelection); } override protected function draw():void{ var _local1:Object; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawTextFormat(); drawBackground(); _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function handleTextInput(_arg1:TextEvent):void{ _arg1.stopPropagation(); dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text)); } override protected function configUI():void{ super.configUI(); tabChildren = true; textField = new TextField(); addChild(textField); updateTextFieldType(); textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true); textField.addEventListener(Event.CHANGE, handleChange, false, 0, true); textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true); } public function setSelection(_arg1:int, _arg2:int):void{ textField.setSelection(_arg1, _arg2); } public function get displayAsPassword():Boolean{ return (textField.displayAsPassword); } public function appendText(_arg1:String):void{ textField.appendText(_arg1); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; textField.restrict = _arg1; } public function get htmlText():String{ return (textField.htmlText); } protected function drawBackground():void{ var _local1:DisplayObject; var _local2:String; _local1 = background; _local2 = (enabled) ? "upSkin" : "disabledSkin"; background = getDisplayObjectInstance(getStyleValue(_local2)); if (background == null){ return; }; addChildAt(background, 0); if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){ removeChild(_local1); }; } override public function setFocus():void{ stage.focus = textField; } protected function drawLayout():void{ var _local1:Number; _local1 = Number(getStyleValue("textPadding")); if (background != null){ background.width = width; background.height = height; }; textField.width = (width - (2 * _local1)); textField.height = (height - (2 * _local1)); textField.x = (textField.y = _local1); } public function set maxChars(_arg1:int):void{ textField.maxChars = _arg1; } public function get maxHorizontalScrollPosition():int{ return (textField.maxScrollH); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); if (_html){ textField.htmlText = _savedHTML; }; } protected function handleChange(_arg1:Event):void{ _arg1.stopPropagation(); dispatchEvent(new Event(Event.CHANGE, true)); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 26
//UIScrollBar (fl.controls.UIScrollBar) package fl.controls { import fl.core.*; import flash.events.*; import flash.text.*; import fl.events.*; public class UIScrollBar extends ScrollBar { protected var inScroll:Boolean;// = false protected var _scrollTarget:TextField; protected var inEdit:Boolean;// = false private static var defaultStyles:Object = {}; public function UIScrollBar(){ inEdit = false; inScroll = false; super(); } protected function handleTargetScroll(_arg1:Event):void{ if (inDrag){ return; }; if (!enabled){ return; }; inEdit = true; updateScrollTargetProperties(); scrollPosition = ((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV; inEdit = false; } override public function set minScrollPosition(_arg1:Number):void{ super.minScrollPosition = ((_arg1)<0) ? 0 : _arg1; } override public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ super.setScrollPosition(_arg1, _arg2); if (!_scrollTarget){ inScroll = false; return; }; updateTargetScroll(); } override public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ var _local5:Number; var _local6:Number; _local5 = _arg3; _local6 = ((_arg2)<0) ? 0 : _arg2; if (_scrollTarget != null){ if (direction == ScrollBarDirection.HORIZONTAL){ _local5 = ((_arg3)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local5; } else { _local5 = ((_arg3)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local5; }; }; super.setScrollProperties(_arg1, _local6, _local5, _arg4); } public function get scrollTargetName():String{ return (_scrollTarget.name); } public function get scrollTarget():TextField{ return (_scrollTarget); } protected function updateScrollTargetProperties():void{ var _local1:Boolean; var _local2:Number; if (_scrollTarget == null){ setScrollProperties(pageSize, minScrollPosition, maxScrollPosition, pageScrollSize); scrollPosition = 0; } else { _local1 = (direction == ScrollBarDirection.HORIZONTAL); _local2 = (_local1) ? _scrollTarget.width : 10; setScrollProperties(_local2, (_local1) ? 0 : 1, (_local1) ? _scrollTarget.maxScrollH : _scrollTarget.maxScrollV, pageScrollSize); scrollPosition = (_local1) ? _scrollTarget.scrollH : _scrollTarget.scrollV; }; } public function update():void{ inEdit = true; updateScrollTargetProperties(); inEdit = false; } public function set scrollTargetName(_arg1:String):void{ var target = _arg1; try { scrollTarget = (parent.getChildByName(target) as TextField); } catch(error:Error) { throw (new Error("ScrollTarget not found, or is not a TextField")); }; } override public function set direction(_arg1:String):void{ if (isLivePreview){ return; }; super.direction = _arg1; updateScrollTargetProperties(); } protected function handleTargetChange(_arg1:Event):void{ inEdit = true; setScrollPosition(((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV, true); updateScrollTargetProperties(); inEdit = false; } override public function set maxScrollPosition(_arg1:Number):void{ var _local2:Number; _local2 = _arg1; if (_scrollTarget != null){ if (direction == ScrollBarDirection.HORIZONTAL){ _local2 = ((_local2)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local2; } else { _local2 = ((_local2)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local2; }; }; super.maxScrollPosition = _local2; } protected function updateTargetScroll(_arg1:ScrollEvent=null):void{ if (inEdit){ return; }; if (direction == ScrollBarDirection.HORIZONTAL){ _scrollTarget.scrollH = scrollPosition; } else { _scrollTarget.scrollV = scrollPosition; }; } override protected function draw():void{ if (isInvalid(InvalidationType.DATA)){ updateScrollTargetProperties(); }; super.draw(); } public function set scrollTarget(_arg1:TextField):void{ if (_scrollTarget != null){ _scrollTarget.removeEventListener(Event.CHANGE, handleTargetChange, false); _scrollTarget.removeEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false); _scrollTarget.removeEventListener(Event.SCROLL, handleTargetScroll, false); removeEventListener(ScrollEvent.SCROLL, updateTargetScroll, false); }; _scrollTarget = _arg1; if (_scrollTarget != null){ _scrollTarget.addEventListener(Event.CHANGE, handleTargetChange, false, 0, true); _scrollTarget.addEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false, 0, true); _scrollTarget.addEventListener(Event.SCROLL, handleTargetScroll, false, 0, true); addEventListener(ScrollEvent.SCROLL, updateTargetScroll, false, 0, true); }; invalidate(InvalidationType.DATA); } override public function get direction():String{ return (super.direction); } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.controls
Section 27
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 28
//InvalidationType (fl.core.InvalidationType) package fl.core { public class InvalidationType { public static const SIZE:String = "size"; public static const ALL:String = "all"; public static const DATA:String = "data"; public static const SCROLL:String = "scroll"; public static const STATE:String = "state"; public static const STYLES:String = "styles"; public static const SELECTED:String = "selected"; public static const RENDERER_STYLES:String = "rendererStyles"; } }//package fl.core
Section 29
//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.text.*; import fl.managers.*; import fl.events.*; import flash.system.*; public class UIComponent extends Sprite { protected var _enabled:Boolean;// = true private var _mouseFocusEnabled:Boolean;// = true protected var startHeight:Number; protected var _height:Number; protected var _oldIMEMode:String;// = null protected var startWidth:Number; public var focusTarget:IFocusManagerComponent; protected var errorCaught:Boolean;// = false protected var uiFocusRect:DisplayObject; protected var _width:Number; public var version:String;// = "3.0.0.15" protected var isFocused:Boolean;// = false protected var callLaterMethods:Dictionary; private var _focusEnabled:Boolean;// = true private var tempText:TextField; protected var invalidateFlag:Boolean;// = false protected var _inspector:Boolean;// = false protected var sharedStyles:Object; protected var invalidHash:Object; protected var isLivePreview:Boolean;// = false protected var _imeMode:String;// = null protected var instanceStyles:Object; protected var _x:Number; protected var _y:Number; public static var inCallLaterPhase:Boolean = false; private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)}; public static var createAccessibilityImplementation:Function; private static var focusManagers:Dictionary = new Dictionary(false); public function UIComponent(){ version = "3.0.0.15"; isLivePreview = false; invalidateFlag = false; _enabled = true; isFocused = false; _focusEnabled = true; _mouseFocusEnabled = true; _imeMode = null; _oldIMEMode = null; errorCaught = false; _inspector = false; super(); instanceStyles = {}; sharedStyles = {}; invalidHash = {}; callLaterMethods = new Dictionary(); StyleManager.registerInstance(this); configUI(); invalidate(InvalidationType.ALL); tabEnabled = (this is IFocusManagerComponent); focusRect = false; if (tabEnabled){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; initializeFocusManager(); addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true); } public function drawFocus(_arg1:Boolean):void{ var _local2:Number; isFocused = _arg1; if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){ removeChild(uiFocusRect); uiFocusRect = null; }; if (_arg1){ uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite); if (uiFocusRect == null){ return; }; _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = -(_local2); uiFocusRect.y = -(_local2); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); addChildAt(uiFocusRect, 0); }; } private function callLaterDispatcher(_arg1:Event):void{ var _local2:Dictionary; var _local3:Object; if (_arg1.type == Event.ADDED_TO_STAGE){ removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher); stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); return; }; _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher); if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); return; }; inCallLaterPhase = true; _local2 = callLaterMethods; for (_local3 in _local2) { _local3(); delete _local2[_local3]; }; inCallLaterPhase = false; } private function addedHandler(_arg1:Event):void{ removeEventListener("addedToStage", addedHandler); initializeFocusManager(); } protected function getStyleValue(_arg1:String):Object{ return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]); } protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((_arg1 == this)); } override public function get scaleX():Number{ return ((width / startWidth)); } override public function get scaleY():Number{ return ((height / startHeight)); } override public function set height(_arg1:Number):void{ if (_height == _arg1){ return; }; setSize(width, _arg1); } protected function keyDownHandler(_arg1:KeyboardEvent):void{ } protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (isOurFocus((_arg1.target as DisplayObject))){ _local2 = focusManager; if (((_local2) && (_local2.showFocusIndicator))){ drawFocus(true); isFocused = true; }; }; } public function setStyle(_arg1:String, _arg2:Object):void{ if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; instanceStyles[_arg1] = _arg2; invalidate(InvalidationType.STYLES); } override public function get visible():Boolean{ return (super.visible); } public function get componentInspectorSetting():Boolean{ return (_inspector); } override public function get x():Number{ return ((isNaN(_x)) ? super.x : _x); } override public function get y():Number{ return ((isNaN(_y)) ? super.y : _y); } protected function setIMEMode(_arg1:Boolean){ var enabled = _arg1; if (_imeMode != null){ if (enabled){ IME.enabled = true; _oldIMEMode = IME.conversionMode; try { if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _imeMode; }; errorCaught = false; } catch(e:Error) { errorCaught = true; throw (new Error(("IME mode not supported: " + _imeMode))); }; } else { if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _oldIMEMode; }; IME.enabled = false; }; }; } public function set enabled(_arg1:Boolean):void{ if (_arg1 == _enabled){ return; }; _enabled = _arg1; invalidate(InvalidationType.STATE); } public function setSharedStyle(_arg1:String, _arg2:Object):void{ if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; sharedStyles[_arg1] = _arg2; if (instanceStyles[_arg1] == null){ invalidate(InvalidationType.STYLES); }; } protected function keyUpHandler(_arg1:KeyboardEvent):void{ } public function set focusEnabled(_arg1:Boolean):void{ _focusEnabled = _arg1; } override public function set scaleX(_arg1:Number):void{ setSize((startWidth * _arg1), height); } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } override public function set scaleY(_arg1:Number):void{ setSize(width, (startHeight * _arg1)); } protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{ var classDef:Object; var skin = _arg1; classDef = null; if ((skin is Class)){ return ((new (skin) as DisplayObject)); }; if ((skin is DisplayObject)){ (skin as DisplayObject).x = 0; (skin as DisplayObject).y = 0; return ((skin as DisplayObject)); }; try { classDef = getDefinitionByName(skin.toString()); } catch(e:Error) { try { classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object); } catch(e:Error) { }; }; if (classDef == null){ return (null); }; return ((new (classDef) as DisplayObject)); } protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{ var _local3:String; for (_local3 in _arg2) { _arg1.setStyle(_local3, getStyleValue(_arg2[_local3])); }; } protected function beforeComponentParameters():void{ } protected function callLater(_arg1:Function):void{ if (inCallLaterPhase){ return; }; callLaterMethods[_arg1] = true; if (stage != null){ stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); } else { addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); }; } protected function createFocusManager():void{ if (focusManagers[stage] == null){ focusManagers[stage] = new FocusManager(stage); }; } override public function set visible(_arg1:Boolean):void{ var _local2:String; if (super.visible == _arg1){ return; }; super.visible = _arg1; _local2 = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE; dispatchEvent(new ComponentEvent(_local2, true)); } protected function hookAccessibility(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hookAccessibility); initializeAccessibility(); } public function set componentInspectorSetting(_arg1:Boolean):void{ _inspector = _arg1; if (_inspector){ beforeComponentParameters(); } else { afterComponentParameters(); }; } override public function set x(_arg1:Number):void{ move(_arg1, _y); } public function drawNow():void{ draw(); } override public function set y(_arg1:Number):void{ move(_x, _arg1); } protected function checkLivePreview():Boolean{ var className:String; if (parent == null){ return (false); }; try { className = getQualifiedClassName(parent); } catch(e:Error) { }; return ((className == "fl.livepreview::LivePreviewParent")); } protected function focusOutHandler(_arg1:FocusEvent):void{ if (isOurFocus((_arg1.target as DisplayObject))){ drawFocus(false); isFocused = false; }; } public function set mouseFocusEnabled(_arg1:Boolean):void{ _mouseFocusEnabled = _arg1; } public function getFocus():InteractiveObject{ if (stage){ return (stage.focus); }; return (null); } protected function validate():void{ invalidHash = {}; } override public function get height():Number{ return (_height); } public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{ invalidHash[_arg1] = true; if (_arg2){ this.callLater(draw); }; } public function get enabled():Boolean{ return (_enabled); } protected function getScaleX():Number{ return (super.scaleX); } protected function getScaleY():Number{ return (super.scaleY); } public function get focusEnabled():Boolean{ return (_focusEnabled); } protected function afterComponentParameters():void{ } protected function draw():void{ if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } protected function configUI():void{ var _local1:Number; var _local2:Number; var _local3:Number; isLivePreview = checkLivePreview(); _local1 = rotation; rotation = 0; _local2 = super.width; _local3 = super.height; var _local4 = 1; super.scaleY = _local4; super.scaleX = _local4; setSize(_local2, _local3); move(super.x, super.y); rotation = _local1; startWidth = _local2; startHeight = _local3; if (numChildren > 0){ removeChildAt(0); }; } protected function setScaleX(_arg1:Number):void{ super.scaleX = _arg1; } protected function setScaleY(_arg1:Number):void{ super.scaleY = _arg1; } private function initializeFocusManager():void{ if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true); } else { createFocusManager(); }; } public function set focusManager(_arg1:IFocusManager):void{ UIComponent.focusManagers[this] = _arg1; } public function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } protected function isInvalid(_arg1:String, ... _args):Boolean{ if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){ return (true); }; while (_args.length > 0) { if (invalidHash[_args.pop()]){ return (true); }; }; return (false); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; invalidate(InvalidationType.SIZE); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false)); } override public function set width(_arg1:Number):void{ if (_width == _arg1){ return; }; setSize(_arg1, height); } public function setFocus():void{ if (stage){ stage.focus = this; }; } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function get focusManager():IFocusManager{ var _local1:DisplayObject; _local1 = this; while (_local1) { if (UIComponent.focusManagers[_local1] != null){ return (IFocusManager(UIComponent.focusManagers[_local1])); }; _local1 = _local1.parent; }; return (null); } override public function get width():Number{ return (_width); } public function move(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; super.x = Math.round(_arg1); super.y = Math.round(_arg2); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); } public function validateNow():void{ invalidate(InvalidationType.ALL, false); draw(); } public function getStyle(_arg1:String):Object{ return (instanceStyles[_arg1]); } public static function getStyleDefinition():Object{ return (defaultStyles); } public static function mergeStyles(... _args):Object{ var _local2:Object; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:String; _local2 = {}; _local3 = _args.length; _local4 = 0; while (_local4 < _local3) { _local5 = _args[_local4]; for (_local6 in _local5) { if (_local2[_local6] != null){ } else { _local2[_local6] = _args[_local4][_local6]; }; }; _local4++; }; return (_local2); } } }//package fl.core
Section 30
//DataProvider (fl.data.DataProvider) package fl.data { import flash.events.*; import fl.events.*; public class DataProvider extends EventDispatcher { protected var data:Array; public function DataProvider(_arg1:Object=null){ if (_arg1 == null){ data = []; } else { data = getDataFromObject(_arg1); }; } protected function dispatchPreChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.PRE_DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } public function invalidateItemAt(_arg1:int):void{ checkIndex(_arg1, (data.length - 1)); dispatchChangeEvent(DataChangeType.INVALIDATE, [data[_arg1]], _arg1, _arg1); } public function getItemIndex(_arg1:Object):int{ return (data.indexOf(_arg1)); } protected function getDataFromObject(_arg1:Object):Array{ var _local2:Array; var _local3:Array; var _local4:uint; var _local5:Object; var _local6:XML; var _local7:XMLList; var _local8:XML; var _local9:XMLList; var _local10:XML; var _local11:XMLList; var _local12:XML; if ((_arg1 is Array)){ _local3 = (_arg1 as Array); if (_local3.length > 0){ if ((((_local3[0] is String)) || ((_local3[0] is Number)))){ _local2 = []; _local4 = 0; while (_local4 < _local3.length) { _local5 = {label:String(_local3[_local4]), data:_local3[_local4]}; _local2.push(_local5); _local4++; }; return (_local2); }; }; return (_arg1.concat()); //unresolved jump }; if ((_arg1 is DataProvider)){ return (_arg1.toArray()); }; if ((_arg1 is XML)){ _local6 = (_arg1 as XML); _local2 = []; _local7 = _local6.*; for each (_local8 in _local7) { _arg1 = {}; _local9 = _local8.attributes(); for each (_local10 in _local9) { _arg1[_local10.localName()] = _local10.toString(); }; _local11 = _local8.*; for each (_local12 in _local11) { if (_local12.hasSimpleContent()){ _arg1[_local12.localName()] = _local12.toString(); }; }; _local2.push(_arg1); }; return (_local2); //unresolved jump }; throw (new TypeError((("Error: Type Coercion failed: cannot convert " + _arg1) + " to Array or DataProvider."))); } public function removeItemAt(_arg1:uint):Object{ var _local2:Array; checkIndex(_arg1, (data.length - 1)); dispatchPreChangeEvent(DataChangeType.REMOVE, data.slice(_arg1, (_arg1 + 1)), _arg1, _arg1); _local2 = data.splice(_arg1, 1); dispatchChangeEvent(DataChangeType.REMOVE, _local2, _arg1, _arg1); return (_local2[0]); } public function addItem(_arg1:Object):void{ dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); data.push(_arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); } public function sortOn(_arg1:Object, _arg2:Object=null){ var _local3:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local3 = data.sortOn(_arg1, _arg2); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local3); } public function sort(... _args){ var _local2:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local2 = data.sort.apply(data, _args); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local2); } public function addItems(_arg1:Object):void{ addItemsAt(_arg1, data.length); } public function concat(_arg1:Object):void{ addItems(_arg1); } public function clone():DataProvider{ return (new DataProvider(data)); } public function toArray():Array{ return (data.concat()); } public function get length():uint{ return (data.length); } public function addItemAt(_arg1:Object, _arg2:uint):void{ checkIndex(_arg2, data.length); dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); data.splice(_arg2, 0, _arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); } public function getItemAt(_arg1:uint):Object{ checkIndex(_arg1, (data.length - 1)); return (data[_arg1]); } override public function toString():String{ return ((("DataProvider [" + data.join(" , ")) + "]")); } public function invalidateItem(_arg1:Object):void{ var _local2:uint; _local2 = getItemIndex(_arg1); if (_local2 == -1){ return; }; invalidateItemAt(_local2); } protected function dispatchChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } protected function checkIndex(_arg1:int, _arg2:int):void{ if ((((_arg1 > _arg2)) || ((_arg1 < 0)))){ throw (new RangeError((((("DataProvider index (" + _arg1) + ") is not in acceptable range (0 - ") + _arg2) + ")"))); }; } public function addItemsAt(_arg1:Object, _arg2:uint):void{ var _local3:Array; checkIndex(_arg2, data.length); _local3 = getDataFromObject(_arg1); dispatchPreChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); data.splice.apply(data, [_arg2, 0].concat(_local3)); dispatchChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); } public function replaceItem(_arg1:Object, _arg2:Object):Object{ var _local3:int; _local3 = getItemIndex(_arg2); if (_local3 != -1){ return (replaceItemAt(_arg1, _local3)); }; return (null); } public function removeItem(_arg1:Object):Object{ var _local2:int; _local2 = getItemIndex(_arg1); if (_local2 != -1){ return (removeItemAt(_local2)); }; return (null); } public function merge(_arg1:Object):void{ var _local2:Array; var _local3:uint; var _local4:uint; var _local5:uint; var _local6:Object; _local2 = getDataFromObject(_arg1); _local3 = _local2.length; _local4 = data.length; dispatchPreChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); _local5 = 0; while (_local5 < _local3) { _local6 = _local2[_local5]; if (getItemIndex(_local6) == -1){ data.push(_local6); }; _local5++; }; if (data.length > _local4){ dispatchChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); } else { dispatchChangeEvent(DataChangeType.ADD, [], -1, -1); }; } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ var _local3:Array; checkIndex(_arg2, (data.length - 1)); _local3 = [data[_arg2]]; dispatchPreChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); data[_arg2] = _arg1; dispatchChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); return (_local3[0]); } public function invalidate():void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, DataChangeType.INVALIDATE_ALL, data.concat(), 0, data.length)); } public function removeAll():void{ var _local1:Array; _local1 = data.concat(); dispatchPreChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); data = []; dispatchChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); } } }//package fl.data
Section 31
//SimpleCollectionItem (fl.data.SimpleCollectionItem) package fl.data { public dynamic class SimpleCollectionItem { public var label:String; public var data:String; public function toString():String{ return ((((("[SimpleCollectionItem: " + label) + ",") + data) + "]")); } } }//package fl.data
Section 32
//ComponentEvent (fl.events.ComponentEvent) package fl.events { import flash.events.*; public class ComponentEvent extends Event { public static const HIDE:String = "hide"; public static const BUTTON_DOWN:String = "buttonDown"; public static const MOVE:String = "move"; public static const RESIZE:String = "resize"; public static const ENTER:String = "enter"; public static const LABEL_CHANGE:String = "labelChange"; public static const SHOW:String = "show"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package fl.events
Section 33
//DataChangeEvent (fl.events.DataChangeEvent) package fl.events { import flash.events.*; public class DataChangeEvent extends Event { protected var _items:Array; protected var _endIndex:uint; protected var _changeType:String; protected var _startIndex:uint; public static const PRE_DATA_CHANGE:String = "preDataChange"; public static const DATA_CHANGE:String = "dataChange"; public function DataChangeEvent(_arg1:String, _arg2:String, _arg3:Array, _arg4:int=-1, _arg5:int=-1):void{ super(_arg1); _changeType = _arg2; _startIndex = _arg4; _items = _arg3; _endIndex = ((_arg5)==-1) ? _startIndex : _arg5; } public function get changeType():String{ return (_changeType); } public function get startIndex():uint{ return (_startIndex); } public function get items():Array{ return (_items); } override public function clone():Event{ return (new DataChangeEvent(type, _changeType, _items, _startIndex, _endIndex)); } override public function toString():String{ return (formatToString("DataChangeEvent", "type", "changeType", "startIndex", "endIndex", "bubbles", "cancelable")); } public function get endIndex():uint{ return (_endIndex); } } }//package fl.events
Section 34
//DataChangeType (fl.events.DataChangeType) package fl.events { public class DataChangeType { public static const ADD:String = "add"; public static const REMOVE:String = "remove"; public static const REMOVE_ALL:String = "removeAll"; public static const CHANGE:String = "change"; public static const REPLACE:String = "replace"; public static const INVALIDATE:String = "invalidate"; public static const INVALIDATE_ALL:String = "invalidateAll"; public static const SORT:String = "sort"; } }//package fl.events
Section 35
//ListEvent (fl.events.ListEvent) package fl.events { import flash.events.*; public class ListEvent extends Event { protected var _index:int; protected var _item:Object; protected var _columnIndex:int; protected var _rowIndex:int; public static const ITEM_DOUBLE_CLICK:String = "itemDoubleClick"; public static const ITEM_ROLL_OUT:String = "itemRollOut"; public static const ITEM_ROLL_OVER:String = "itemRollOver"; public static const ITEM_CLICK:String = "itemClick"; public function ListEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:int=-1, _arg5:int=-1, _arg6:int=-1, _arg7:Object=null){ super(_arg1, _arg2, _arg3); _rowIndex = _arg5; _columnIndex = _arg4; _index = _arg6; _item = _arg7; } public function get rowIndex():Object{ return (_rowIndex); } public function get index():int{ return (_index); } public function get item():Object{ return (_item); } public function get columnIndex():int{ return (_columnIndex); } override public function clone():Event{ return (new ListEvent(type, bubbles, cancelable, _columnIndex, _rowIndex)); } override public function toString():String{ return (formatToString("ListEvent", "type", "bubbles", "cancelable", "columnIndex", "rowIndex", "index", "item")); } } }//package fl.events
Section 36
//ScrollEvent (fl.events.ScrollEvent) package fl.events { import flash.events.*; public class ScrollEvent extends Event { private var _position:Number; private var _direction:String; private var _delta:Number; public static const SCROLL:String = "scroll"; public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Number){ super(ScrollEvent.SCROLL, false, false); _direction = _arg1; _delta = _arg2; _position = _arg3; } override public function clone():Event{ return (new ScrollEvent(_direction, _delta, _position)); } public function get position():Number{ return (_position); } override public function toString():String{ return (formatToString("ScrollEvent", "type", "bubbles", "cancelable", "direction", "delta", "position")); } public function get delta():Number{ return (_delta); } public function get direction():String{ return (_direction); } } }//package fl.events
Section 37
//FocusManager (fl.managers.FocusManager) package fl.managers { import fl.core.*; import fl.controls.*; import flash.display.*; import flash.events.*; import flash.utils.*; import flash.text.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ activated = false; calculateCandidates = true; _showFocusIndicator = true; _defaultButtonEnabled = true; super(); focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local5:int; var _local6:int; var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; _local5 = focusableCandidates.length; _local6 = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; _local2 = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject; _local2 = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject; _local2 = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } private function tabChildrenChangeHandler(_arg1:Event):void{ var _local2:DisplayObjectContainer; if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; _local2 = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } public function getFocus():InteractiveObject{ var _local1:InteractiveObject; _local1 = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; var _local3:TextField; var _local4:SimpleButton; _local2 = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } public function set defaultButton(_arg1:Button):void{ var _local2:Button; _local2 = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } private function setFocusToNextObject(_arg1:FocusEvent):void{ var _local2:InteractiveObject; if (!hasFocusableObjects()){ return; }; _local2 = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int; var _local3:int; _local2 = focusableCandidates.length; _local3 = 0; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local3:DisplayObject; var _local4:InteractiveObject; _local3 = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local3:String; var _local4:String; var _local5:int; var _local6:String; var _local7:String; var _local8:String; var _local9:DisplayObject; var _local10:DisplayObject; _local3 = ""; _local4 = ""; _local8 = "0000"; _local9 = DisplayObject(_arg1); _local10 = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local2:DisplayObject; var _local3:String; var _local4:int; var _local5:Boolean; var _local6:int; var _local7:int; var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; _local2 = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; _local4 = getIndexOfFocusedObject(_local2); _local5 = false; _local6 = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; _local7 = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ var _local2:InteractiveObject; if (_arg1.isDefaultPrevented()){ return; }; _local2 = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; _local2 = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; var _local3:Button; _local2 = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ var _local2:InteractiveObject; var _local3:Boolean; calculateCandidates = true; _local2 = InteractiveObject(_arg1.target); _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } } }//package fl.managers
Section 38
//IFocusManager (fl.managers.IFocusManager) package fl.managers { import fl.controls.*; import flash.display.*; public interface IFocusManager { function getFocus():InteractiveObject; function deactivate():void; function set defaultButton(_arg1:Button):void; function set showFocusIndicator(_arg1:Boolean):void; function get defaultButtonEnabled():Boolean; function get nextTabIndex():int; function get defaultButton():Button; function get showFocusIndicator():Boolean; function setFocus(_arg1:InteractiveObject):void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function hideFocus():void; function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject; function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject; } }//package fl.managers
Section 39
//IFocusManagerComponent (fl.managers.IFocusManagerComponent) package fl.managers { public interface IFocusManagerComponent { function set focusEnabled(_arg1:Boolean):void; function drawFocus(_arg1:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package fl.managers
Section 40
//IFocusManagerGroup (fl.managers.IFocusManagerGroup) package fl.managers { public interface IFocusManagerGroup { function set groupName(_arg1:String):void; function set selected(_arg1:Boolean):void; function get groupName():String; function get selected():Boolean; } }//package fl.managers
Section 41
//StyleManager (fl.managers.StyleManager) package fl.managers { import fl.core.*; import flash.utils.*; import flash.text.*; public class StyleManager { private var globalStyles:Object; private var classToDefaultStylesDict:Dictionary; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToInstancesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class; var _local5:Object; _local4 = getClassDef(_arg1); _local5 = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local2:StyleManager; var _local3:Class; var _local4:Object; var _local5:String; _local2 = getInstance(); _local3 = getClassDef(_arg1); _local4 = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local3:Dictionary; var _local4:Object; var _local5:UIComponent; _local3 = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local2:Dictionary; var _local3:Object; _local2 = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var inst:StyleManager; var classDef:Class; var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; inst = getInstance(); classDef = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; inst.classToStylesDict[classDef] = {}; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class; var _local4:StyleManager; var _local5:Object; _local3 = getClassDef(_arg1); _local4 = getInstance(); _local5 = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object; _local3 = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.managers
Section 42
//Boot (flash.Boot) package flash { import flash.display.*; import flash.utils.*; import flash.text.*; public dynamic class Boot extends MovieClip { protected static var lastError:Error; protected static var tf:TextField; public static var skip_constructor:Boolean = false; protected static var lines:Array; public function Boot(_arg1:MovieClip=null):void{ var aproto:*; var cca:*; var c:MovieClip; var mc = _arg1; if (!Boot.skip_constructor){ super(); aproto = Array.prototype; aproto.copy = function (){ return (this.slice()); }; aproto.insert = function (_arg1, _arg2):void{ this.splice(_arg1, 0, _arg2); }; aproto.remove = function (_arg1):Boolean{ var _local2:int; _local2 = this.indexOf(_arg1); if (_local2 == -1){ return (false); }; this.splice(_local2, 1); return (true); }; aproto.iterator = function (){ var cur:int; var arr:Array; cur = 0; arr = this; return ({hasNext:function ():Boolean{ return ((cur < arr.length)); }, next:function (){ return (arr[cur++]); }}); }; aproto.setPropertyIsEnumerable("copy", false); aproto.setPropertyIsEnumerable("insert", false); aproto.setPropertyIsEnumerable("remove", false); aproto.setPropertyIsEnumerable("iterator", false); cca = String.prototype.charCodeAt; String.prototype.charCodeAt = function (_arg1){ var _local2:*; _local2 = cca.call(this, _arg1); if (isNaN(_local2)){ return (null); }; return (_local2); }; Boot.lines = new Array(); c = ((mc == null)) ? this : mc; Lib.current = c; try { if (((!((c.stage == null))) && ((c.stage.align == "")))){ c.stage.align = "TOP_LEFT"; //unresolved jump }; } catch(e) { }; if (Boot.init != null){ init(); }; }; } public static function __trace(_arg1, _arg2):void{ var _local3:TextField; var _local4:String; var _local5:Stage; _local3 = getTrace(); _local4 = ((_arg2 == null)) ? "(null)" : ((_arg2.fileName + ":") + _arg2.lineNumber); Boot.lines = lines.concat(((_local4 + ": ") + __string_rec(_arg1, "")).split("\n")); _local3.text = lines.join("\n"); _local5 = Lib.current.stage; if (_local5 == null){ return; }; while ((((lines.length > 1)) && ((_local3.height > _local5.stageHeight)))) { lines.shift(); _local3.text = lines.join("\n"); }; } public static function __string_rec(_arg1, _arg2:String):String{ var cname:String; var k:Array; var s:String; var first:Boolean; var _g1:int; var _g:int; var i:int; var key:String; var s2:String; var i2:*; var first2:Boolean; var a:Array; var _g12:int; var _g2:int; var i1:int; var v = _arg1; var str = _arg2; cname = getQualifiedClassName(v); switch (cname){ case "Object": k = function ():Array{ var _local1:*; var _local2:*; _local1 = new Array(); for (_local2 in v) { _local1.push(_local2); }; return (_local1); }(); s = "{"; first = true; _g1 = 0; _g = k.length; while (_g1 < _g) { _g1 = (_g1 + 1); i = _g1; key = k[i]; if (first){ first = false; } else { s = (s + ","); }; s = (s + (((" " + key) + " : ") + __string_rec(v[key], str))); }; if (!first){ s = (s + " "); }; s = (s + "}"); return (s); case "Array": s2 = "["; first2 = true; a = v; _g12 = 0; _g2 = a.length; while (_g12 < _g2) { _g12 = (_g12 + 1); i1 = _g12; if (first2){ first2 = false; } else { s2 = (s2 + ","); }; s2 = (s2 + __string_rec(a[i1], str)); }; return ((s2 + "]")); default: switch (typeof(v)){ case "function": return ("<function>"); }; break; }; return (new String(v)); } public static function __instanceof(_arg1, _arg2):Boolean{ var v = _arg1; var t = _arg2; try { if (t == Object){ return (true); }; return ((v is t)); } catch(e) { }; return (false); } public static function getTrace():TextField{ var _local1:MovieClip; var _local2:TextFormat; _local1 = Lib.current; if (Boot.tf == null){ Boot.tf = new TextField(); _local2 = tf.getTextFormat(); _local2.font = "_sans"; tf.defaultTextFormat = _local2; tf.selectable = false; tf.width = ((_local1.stage == null)) ? 800 : _local1.stage.stageWidth; tf.autoSize = TextFieldAutoSize.LEFT; tf.mouseEnabled = false; }; _local1.addChild(tf); return (tf); } private static function init():void{ Math["NaN"] = Number.NaN; Math["NEGATIVE_INFINITY"] = Number.NEGATIVE_INFINITY; Math["POSITIVE_INFINITY"] = Number.POSITIVE_INFINITY; Math["isFinite"] = function (_arg1:Number):Boolean{ return (isFinite(_arg1)); }; Math["isNaN"] = function (_arg1:Number):Boolean{ return (isNaN(_arg1)); }; Date["now"] = function ():Date{ return (new Date()); }; Date["fromTime"] = function (_arg1:Number):Date{ var _local2:Date; _local2 = new Date(); _local2.setTime(_arg1); return (_local2); }; Date["fromString"] = function (_arg1:String):Date{ var _local2:Array; var _local3:Date; var _local4:Array; var _local5:Array; var _local6:Array; var _local7:Array; switch (_arg1.length){ case 8: _local2 = _arg1.split(":"); _local3 = new Date(); _local3.setTime(0); _local3.setUTCHours(_local2[0]); _local3.setUTCMinutes(_local2[1]); _local3.setUTCSeconds(_local2[2]); return (_local3); case 10: _local4 = _arg1.split("-"); return (new Date(_local4[0], (_local4[1] - 1), _local4[2], 0, 0, 0)); case 19: _local5 = _arg1.split(" "); _local6 = _local5[0].split("-"); _local7 = _local5[1].split(":"); return (new Date(_local6[0], (_local6[1] - 1), _local6[2], _local7[0], _local7[1], _local7[2])); default: throw (("Invalid date format : " + _arg1)); }; }; Date.prototype["toString"] = function ():String{ var _local1:Date; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local1 = this; _local2 = (_local1.getMonth() + 1); _local3 = _local1.getDate(); _local4 = _local1.getHours(); _local5 = _local1.getMinutes(); _local6 = _local1.getSeconds(); return (((((((((((_local1.getFullYear() + "-") + ((_local2 < 10)) ? ("0" + _local2) : ("" + _local2)) + "-") + ((_local3 < 10)) ? ("0" + _local3) : ("" + _local3)) + " ") + ((_local4 < 10)) ? ("0" + _local4) : ("" + _local4)) + ":") + ((_local5 < 10)) ? ("0" + _local5) : ("" + _local5)) + ":") + ((_local6 < 10)) ? ("0" + _local6) : ("" + _local6))); }; } public static function __clear_trace():void{ if (Boot.tf == null){ return; }; Lib.current.removeChild(tf); Boot.tf = null; Boot.lines = new Array(); } protected static function __unprotect__(_arg1:String):String{ return (_arg1); } public static function enum_to_string(_arg1):String{ if (_arg1.params == null){ return (_arg1.tag); }; return ((((_arg1.tag + "(") + _arg1.params.join(",")) + ")")); } public static function __set_trace_color(_arg1:uint):void{ getTrace().textColor = _arg1; } } }//package flash
Section 43
//Lib (flash.Lib) package flash { import flash.display.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class Lib { public static var current:MovieClip; public static function trace(_arg1):void{ trace(_arg1); } public static function fscommand(_arg1:String, _arg2:String=null):void{ fscommand(_arg1, ((_arg2 == null)) ? "" : _arg2); } public static function _as(_arg1, _arg2:Class){ return ((_arg1 as _arg2)); } public static function getURL(_arg1:URLRequest, _arg2:String=null):void{ var _local3:Function; _local3 = navigateToURL; if (_arg2 == null){ _local3(_arg1); } else { _local3(_arg1, _arg2); }; } public static function eval(_arg1:String){ var p:Array; var fields:Array; var o:*; var _g:int; var f:String; var path = _arg1; p = path.split("."); fields = new Array(); o = null; while (p.length > 0) { try { o = getDefinitionByName(p.join(".")); } catch(e) { fields.unshift(p.pop()); }; if (o != null){ break; }; }; _g = 0; while (_g < fields.length) { f = fields[_g]; _g = (_g + 1); if (o == null){ return (null); }; o = o[f]; }; return (o); } public static function attach(_arg1:String):MovieClip{ var _local2:*; _local2 = (getDefinitionByName(_arg1) as Class); return (new (_local2)); } public static function _getTimer():int{ return (getTimer()); } } }//package flash
Section 44
//_Error (haxe.io._Error) package haxe.io { public class _Error extends enum { public static const __isenum:Boolean = true; public static var Overflow:_Error = new _Error("Overflow", 1); ; public static var OutsideBounds:_Error = new _Error("OutsideBounds", 2); ; public static var Blocked:_Error = new _Error("Blocked", 0); ; public static var __constructs__:Array = ["Blocked", "Overflow", "OutsideBounds", "Custom"]; public function _Error(_arg1:String, _arg2:int, _arg3:Array=null):void{ this.tag = _arg1; this.index = _arg2; this.params = _arg3; } public static function Custom(_arg1):_Error{ return (new _Error("Custom", 3, [_arg1])); } } }//package haxe.io
Section 45
//Bytes (haxe.io.Bytes) package haxe.io { import flash.utils.*; import flash.*; public class Bytes { protected var b:ByteArray; public var length:int; public function Bytes(_arg1:int=0, _arg2:ByteArray=null):void{ if (!Boot.skip_constructor){ this.length = _arg1; this.b = _arg2; }; } public function sub(_arg1:int, _arg2:int):Bytes{ var _local3:ByteArray; if ((((((_arg1 < 0)) || ((_arg2 < 0)))) || (((_arg1 + _arg2) > this.length)))){ throw (_Error.OutsideBounds); }; this.b.position = _arg1; _local3 = new ByteArray(); this.b.readBytes(_local3, 0, _arg2); return (new Bytes(_arg2, _local3)); } public function compare(_arg1:Bytes):int{ var _local2:int; var _local3:ByteArray; var _local4:ByteArray; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; _local2 = ((this.length)<_arg1.length) ? this.length : _arg1.length; _local3 = this.b; _local4 = _arg1.b; _local3.position = 0; _local4.position = 0; _local5 = 0; _local6 = (_local2 >> 2); while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local9 = _temp1; if (_local3.readUnsignedInt() != _local4.readUnsignedInt()){ _local3.position = (_local3.position - 4); _local4.position = (_local4.position - 4); return ((_local3.readUnsignedInt() - _local4.readUnsignedInt())); }; }; _local7 = 0; _local8 = (_local2 & 3); while (_local7 < _local8) { var _temp2 = _local7; _local7 = (_local7 + 1); _local10 = _temp2; if (_local3.readUnsignedByte() != _local4.readUnsignedByte()){ return ((_local3[(_local3.position - 1)] - _local4[(_local4.position - 1)])); }; }; return ((this.length - _arg1.length)); } public function set(_arg1:int, _arg2:int):void{ this.b[_arg1] = _arg2; } public function readString(_arg1:int, _arg2:int):String{ if ((((((_arg1 < 0)) || ((_arg2 < 0)))) || (((_arg1 + _arg2) > this.length)))){ throw (_Error.OutsideBounds); }; this.b.position = _arg1; return (this.b.readUTFBytes(_arg2)); } public function blit(_arg1:int, _arg2:Bytes, _arg3:int, _arg4:int):void{ if ((((((((((_arg1 < 0)) || ((_arg3 < 0)))) || ((_arg4 < 0)))) || (((_arg1 + _arg4) > this.length)))) || (((_arg3 + _arg4) > _arg2.length)))){ throw (_Error.OutsideBounds); }; this.b.position = _arg1; this.b.writeBytes(_arg2.b, _arg3, _arg4); } public function get(_arg1:int):int{ return (this.b[_arg1]); } public function getData():ByteArray{ return (this.b); } public function toString():String{ this.b.position = 0; return (this.b.readUTFBytes(this.length)); } public static function ofString(_arg1:String):Bytes{ var _local2:ByteArray; _local2 = new ByteArray(); _local2.writeUTFBytes(_arg1); return (new Bytes(_local2.length, _local2)); } public static function ofData(_arg1:ByteArray):Bytes{ return (new Bytes(_arg1.length, _arg1)); } public static function alloc(_arg1:int):Bytes{ var _local2:ByteArray; _local2 = new ByteArray(); _local2.length = _arg1; return (new Bytes(_arg1, _local2)); } } }//package haxe.io
Section 46
//BaseCode (haxe.BaseCode) package haxe { import haxe.io.*; import flash.*; public class BaseCode { protected var tbl:Array; protected var base:Bytes; protected var nbits:int; public function BaseCode(_arg1:Bytes=null):void{ var _local2:int; var _local3:int; super(); if (!Boot.skip_constructor){ _local2 = _arg1.length; _local3 = 1; while (_local2 > (1 << _local3)) { _local3++; }; if ((((_local3 > 8)) || (!((_local2 == (1 << _local3)))))){ throw ("BaseCode : base length must be a power of two."); }; this.base = _arg1; this.nbits = _local3; }; } public function encodeString(_arg1:String):String{ return (this.encodeBytes(Bytes.ofString(_arg1)).toString()); } public function encodeBytes(_arg1:Bytes):Bytes{ var _local2:int; var _local3:Bytes; var _local4:int; var _local5:Bytes; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; _local2 = this.nbits; _local3 = this.base; _local4 = Std._int(((_arg1.length * 8) / _local2)); _local5 = Bytes.alloc((_local4 + ((((_arg1.length * 8) % _local2))==0) ? 0 : 1)); _local6 = 0; _local7 = 0; _local8 = ((1 << _local2) - 1); _local9 = 0; _local10 = 0; while (_local10 < _local4) { while (_local7 < _local2) { _local7 = (_local7 + 8); _local6 = (_local6 << 8); var _temp1 = _local9; _local9 = (_local9 + 1); _local6 = (_local6 | _arg1.get(_temp1)); }; _local7 = (_local7 - _local2); var _temp2 = _local10; _local10 = (_local10 + 1); _local5.set(_temp2, _local3.get(((_local6 >> _local7) & _local8))); }; if (_local7 > 0){ var _temp3 = _local10; _local10 = (_local10 + 1); _local5.set(_temp3, _local3.get(((_local6 << (_local2 - _local7)) & _local8))); }; return (_local5); } public function decodeBytes(_arg1:Bytes):Bytes{ var _local2:int; var _local3:Bytes; var _local4:Array; var _local5:int; var _local6:Bytes; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; _local2 = this.nbits; _local3 = this.base; if (this.tbl == null){ this.initTable(); }; _local4 = this.tbl; _local5 = ((_arg1.length * _local2) >> 3); _local6 = Bytes.alloc(_local5); _local7 = 0; _local8 = 0; _local9 = 0; _local10 = 0; while (_local10 < _local5) { while (_local8 < 8) { _local8 = (_local8 + _local2); _local7 = (_local7 << _local2); var _temp1 = _local9; _local9 = (_local9 + 1); _local11 = _local4[_arg1.get(_temp1)]; if (_local11 == -1){ throw ("BaseCode : invalid encoded char"); }; _local7 = (_local7 | _local11); }; _local8 = (_local8 - 8); var _temp2 = _local10; _local10 = (_local10 + 1); _local6.set(_temp2, ((_local7 >> _local8) & 0xFF)); }; return (_local6); } protected function initTable():void{ var _local1:Array; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local1 = new Array(); _local2 = 0; while (_local2 < 0x0100) { var _temp1 = _local2; _local2 = (_local2 + 1); _local5 = _temp1; _local1[_local5] = -1; }; _local3 = 0; _local4 = this.base.length; while (_local3 < _local4) { var _temp2 = _local3; _local3 = (_local3 + 1); _local6 = _temp2; _local1[this.base.get(_local6)] = _local6; }; this.tbl = _local1; } public function decodeString(_arg1:String):String{ return (this.decodeBytes(Bytes.ofString(_arg1)).toString()); } public static function decode(_arg1:String, _arg2:String):String{ var _local3:BaseCode; _local3 = new BaseCode(Bytes.ofString(_arg2)); return (_local3.decodeString(_arg1)); } public static function encode(_arg1:String, _arg2:String):String{ var _local3:BaseCode; _local3 = new BaseCode(Bytes.ofString(_arg2)); return (_local3.encodeString(_arg1)); } } }//package haxe
Section 47
//Log (haxe.Log) package haxe { import flash.*; public class Log { public static var setColor:Function = function (_arg1:int):void{ Boot.__set_trace_color(_arg1); }; public static var trace:Function = function (_arg1, _arg2=null):void{ Boot.__trace(_arg1, _arg2); }; public static var clear:Function = function ():void{ Boot.__clear_trace(); }; } }//package haxe
Section 48
//Md5 (haxe.Md5) package haxe { public class Md5 { protected static var inst:Md5 = new (Md5); ; public function Md5():void{ } protected function ff(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (this.cmn(this.bitOR(this.bitAND(_arg2, _arg3), this.bitAND(~(_arg2), _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7)); } protected function hh(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (this.cmn(this.bitXOR(this.bitXOR(_arg2, _arg3), _arg4), _arg1, _arg2, _arg5, _arg6, _arg7)); } protected function cmn(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int):int{ return (this.addme(this.rol(this.addme(this.addme(_arg2, _arg1), this.addme(_arg4, _arg6)), _arg5), _arg3)); } protected function doEncode(_arg1:String):String{ var _local2:Array; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; _local2 = this.str2blks(_arg1); _local3 = 1732584193; _local4 = -271733879; _local5 = -1732584194; _local6 = 271733878; _local8 = 0; while (_local8 < _local2.length) { _local9 = _local3; _local10 = _local4; _local11 = _local5; _local12 = _local6; _local7 = 0; _local3 = this.ff(_local3, _local4, _local5, _local6, _local2[_local8], 7, -680876936); _local6 = this.ff(_local6, _local3, _local4, _local5, _local2[(_local8 + 1)], 12, -389564586); _local5 = this.ff(_local5, _local6, _local3, _local4, _local2[(_local8 + 2)], 17, 606105819); _local4 = this.ff(_local4, _local5, _local6, _local3, _local2[(_local8 + 3)], 22, -1044525330); _local3 = this.ff(_local3, _local4, _local5, _local6, _local2[(_local8 + 4)], 7, -176418897); _local6 = this.ff(_local6, _local3, _local4, _local5, _local2[(_local8 + 5)], 12, 1200080426); _local5 = this.ff(_local5, _local6, _local3, _local4, _local2[(_local8 + 6)], 17, -1473231341); _local4 = this.ff(_local4, _local5, _local6, _local3, _local2[(_local8 + 7)], 22, -45705983); _local3 = this.ff(_local3, _local4, _local5, _local6, _local2[(_local8 + 8)], 7, 1770035416); _local6 = this.ff(_local6, _local3, _local4, _local5, _local2[(_local8 + 9)], 12, -1958414417); _local5 = this.ff(_local5, _local6, _local3, _local4, _local2[(_local8 + 10)], 17, -42063); _local4 = this.ff(_local4, _local5, _local6, _local3, _local2[(_local8 + 11)], 22, -1990404162); _local3 = this.ff(_local3, _local4, _local5, _local6, _local2[(_local8 + 12)], 7, 1804603682); _local6 = this.ff(_local6, _local3, _local4, _local5, _local2[(_local8 + 13)], 12, -40341101); _local5 = this.ff(_local5, _local6, _local3, _local4, _local2[(_local8 + 14)], 17, -1502002290); _local4 = this.ff(_local4, _local5, _local6, _local3, _local2[(_local8 + 15)], 22, 1236535329); _local3 = this.gg(_local3, _local4, _local5, _local6, _local2[(_local8 + 1)], 5, -165796510); _local6 = this.gg(_local6, _local3, _local4, _local5, _local2[(_local8 + 6)], 9, -1069501632); _local5 = this.gg(_local5, _local6, _local3, _local4, _local2[(_local8 + 11)], 14, 643717713); _local4 = this.gg(_local4, _local5, _local6, _local3, _local2[_local8], 20, -373897302); _local3 = this.gg(_local3, _local4, _local5, _local6, _local2[(_local8 + 5)], 5, -701558691); _local6 = this.gg(_local6, _local3, _local4, _local5, _local2[(_local8 + 10)], 9, 38016083); _local5 = this.gg(_local5, _local6, _local3, _local4, _local2[(_local8 + 15)], 14, -660478335); _local4 = this.gg(_local4, _local5, _local6, _local3, _local2[(_local8 + 4)], 20, -405537848); _local3 = this.gg(_local3, _local4, _local5, _local6, _local2[(_local8 + 9)], 5, 568446438); _local6 = this.gg(_local6, _local3, _local4, _local5, _local2[(_local8 + 14)], 9, -1019803690); _local5 = this.gg(_local5, _local6, _local3, _local4, _local2[(_local8 + 3)], 14, -187363961); _local4 = this.gg(_local4, _local5, _local6, _local3, _local2[(_local8 + 8)], 20, 1163531501); _local3 = this.gg(_local3, _local4, _local5, _local6, _local2[(_local8 + 13)], 5, -1444681467); _local6 = this.gg(_local6, _local3, _local4, _local5, _local2[(_local8 + 2)], 9, -51403784); _local5 = this.gg(_local5, _local6, _local3, _local4, _local2[(_local8 + 7)], 14, 1735328473); _local4 = this.gg(_local4, _local5, _local6, _local3, _local2[(_local8 + 12)], 20, -1926607734); _local3 = this.hh(_local3, _local4, _local5, _local6, _local2[(_local8 + 5)], 4, -378558); _local6 = this.hh(_local6, _local3, _local4, _local5, _local2[(_local8 + 8)], 11, -2022574463); _local5 = this.hh(_local5, _local6, _local3, _local4, _local2[(_local8 + 11)], 16, 1839030562); _local4 = this.hh(_local4, _local5, _local6, _local3, _local2[(_local8 + 14)], 23, -35309556); _local3 = this.hh(_local3, _local4, _local5, _local6, _local2[(_local8 + 1)], 4, -1530992060); _local6 = this.hh(_local6, _local3, _local4, _local5, _local2[(_local8 + 4)], 11, 1272893353); _local5 = this.hh(_local5, _local6, _local3, _local4, _local2[(_local8 + 7)], 16, -155497632); _local4 = this.hh(_local4, _local5, _local6, _local3, _local2[(_local8 + 10)], 23, -1094730640); _local3 = this.hh(_local3, _local4, _local5, _local6, _local2[(_local8 + 13)], 4, 681279174); _local6 = this.hh(_local6, _local3, _local4, _local5, _local2[_local8], 11, -358537222); _local5 = this.hh(_local5, _local6, _local3, _local4, _local2[(_local8 + 3)], 16, -722521979); _local4 = this.hh(_local4, _local5, _local6, _local3, _local2[(_local8 + 6)], 23, 76029189); _local3 = this.hh(_local3, _local4, _local5, _local6, _local2[(_local8 + 9)], 4, -640364487); _local6 = this.hh(_local6, _local3, _local4, _local5, _local2[(_local8 + 12)], 11, -421815835); _local5 = this.hh(_local5, _local6, _local3, _local4, _local2[(_local8 + 15)], 16, 530742520); _local4 = this.hh(_local4, _local5, _local6, _local3, _local2[(_local8 + 2)], 23, -995338651); _local3 = this.ii(_local3, _local4, _local5, _local6, _local2[_local8], 6, -198630844); _local6 = this.ii(_local6, _local3, _local4, _local5, _local2[(_local8 + 7)], 10, 1126891415); _local5 = this.ii(_local5, _local6, _local3, _local4, _local2[(_local8 + 14)], 15, -1416354905); _local4 = this.ii(_local4, _local5, _local6, _local3, _local2[(_local8 + 5)], 21, -57434055); _local3 = this.ii(_local3, _local4, _local5, _local6, _local2[(_local8 + 12)], 6, 1700485571); _local6 = this.ii(_local6, _local3, _local4, _local5, _local2[(_local8 + 3)], 10, -1894986606); _local5 = this.ii(_local5, _local6, _local3, _local4, _local2[(_local8 + 10)], 15, -1051523); _local4 = this.ii(_local4, _local5, _local6, _local3, _local2[(_local8 + 1)], 21, -2054922799); _local3 = this.ii(_local3, _local4, _local5, _local6, _local2[(_local8 + 8)], 6, 1873313359); _local6 = this.ii(_local6, _local3, _local4, _local5, _local2[(_local8 + 15)], 10, -30611744); _local5 = this.ii(_local5, _local6, _local3, _local4, _local2[(_local8 + 6)], 15, -1560198380); _local4 = this.ii(_local4, _local5, _local6, _local3, _local2[(_local8 + 13)], 21, 1309151649); _local3 = this.ii(_local3, _local4, _local5, _local6, _local2[(_local8 + 4)], 6, -145523070); _local6 = this.ii(_local6, _local3, _local4, _local5, _local2[(_local8 + 11)], 10, -1120210379); _local5 = this.ii(_local5, _local6, _local3, _local4, _local2[(_local8 + 2)], 15, 718787259); _local4 = this.ii(_local4, _local5, _local6, _local3, _local2[(_local8 + 9)], 21, -343485551); _local3 = this.addme(_local3, _local9); _local4 = this.addme(_local4, _local10); _local5 = this.addme(_local5, _local11); _local6 = this.addme(_local6, _local12); _local8 = (_local8 + 16); }; return ((((this.rhex(_local3) + this.rhex(_local4)) + this.rhex(_local5)) + this.rhex(_local6))); } protected function rhex(_arg1:int):String{ var _local2:String; var _local3:String; var _local4:int; var _local5:int; _local2 = ""; _local3 = "0123456789abcdef"; _local4 = 0; while (_local4 < 4) { var _temp1 = _local4; _local4 = (_local4 + 1); _local5 = _temp1; _local2 = (_local2 + (_local3.charAt(((_arg1 >> ((_local5 * 8) + 4)) & 15)) + _local3.charAt(((_arg1 >> (_local5 * 8)) & 15)))); }; return (_local2); } protected function bitAND(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; _local3 = ((_arg1 & 1) & (_arg2 & 1)); _local4 = ((_arg1 >>> 1) & (_arg2 >>> 1)); return (((_local4 << 1) | _local3)); } protected function ii(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (this.cmn(this.bitXOR(_arg3, this.bitOR(_arg2, ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } protected function bitXOR(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; _local3 = ((_arg1 & 1) ^ (_arg2 & 1)); _local4 = ((_arg1 >>> 1) ^ (_arg2 >>> 1)); return (((_local4 << 1) | _local3)); } protected function rol(_arg1:int, _arg2:int):int{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } protected function bitOR(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; _local3 = ((_arg1 & 1) | (_arg2 & 1)); _local4 = ((_arg1 >>> 1) | (_arg2 >>> 1)); return (((_local4 << 1) | _local3)); } protected function str2blks(_arg1:String):Array{ var _local2:int; var _local3:Array; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; _local2 = (((_arg1.length + 8) >> 6) + 1); _local3 = new Array(); _local4 = 0; _local5 = (_local2 * 16); while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local9 = _temp1; _local3[_local9] = 0; }; _local6 = 0; while (_local6 < _arg1.length) { _local3[(_local6 >> 2)] = (_local3[(_local6 >> 2)] | (_arg1["charCodeAt"](_local6) << ((((_arg1.length * 8) + _local6) % 4) * 8))); _local6++; }; _local3[(_local6 >> 2)] = (_local3[(_local6 >> 2)] | (128 << ((((_arg1.length * 8) + _local6) % 4) * 8))); _local7 = (_arg1.length * 8); _local8 = ((_local2 * 16) - 2); _local3[_local8] = (_local7 & 0xFF); _local3[_local8] = (_local3[_local8] | (((_local7 >>> 8) & 0xFF) << 8)); _local3[_local8] = (_local3[_local8] | (((_local7 >>> 16) & 0xFF) << 16)); _local3[_local8] = (_local3[_local8] | (((_local7 >>> 24) & 0xFF) << 24)); return (_local3); } protected function gg(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (this.cmn(this.bitOR(this.bitAND(_arg2, _arg4), this.bitAND(_arg3, ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } protected function addme(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; _local3 = ((_arg1 & 0xFFFF) + (_arg2 & 0xFFFF)); _local4 = (((_arg1 >> 16) + (_arg2 >> 16)) + (_local3 >> 16)); return (((_local4 << 16) | (_local3 & 0xFFFF))); } public static function encode(_arg1:String):String{ return (inst.doEncode(_arg1)); } } }//package haxe
Section 49
//BuildMission (logic.mission.BuildMission) package logic.mission { import ui.*; import flash.*; public class BuildMission extends Mission { protected var buildType:int; protected var shadow:TowerSprite; public function BuildMission(_arg1:Point=null, _arg2:Point=null, _arg3:Resource=null, _arg4:int=0):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2, _arg3); this.buildType = _arg4; this.shadow = null; if (_arg1 != null){ this.takePayload(); this.shadow = Game.map.getCell(this.dest.x, this.dest.y).setShadow(this.buildType); if (this.buildType == Tower.BARRICADE){ this.sourceTower.addIncomingSurvivor(this.survivorType); }; }; this.type = Mission.BUILD; }; } override public function canSucceed():Boolean{ return ((Game.map.getCell(this.dest.x, this.dest.y).getShadow() == this.shadow)); } override public function fail():Mission{ var _local1:int; this.cleanup(); _local1 = Option.truckLoad; if (this.payload == Resource.SURVIVORS){ _local1 = 1; }; return (ReturnMission.create(this.dest, this.source, this.payload, _local1, this.survivorType)); } override public function cleanup():void{ if (this.shadow == Game.map.getCell(this.dest.x, this.dest.y).getShadow()){ Game.map.getCell(this.dest.x, this.dest.y).clearShadow(); }; if (this.buildType == Tower.BARRICADE){ this.sourceTower.removeIncomingSurvivor(this.survivorType); }; } override public function complete():Mission{ var _local1:Mission; var _local2:MapCell; _local1 = null; _local2 = Game.map.getCell(this.dest.x, this.dest.y); if (((((!(_local2.hasZombies())) && (!(_local2.hasTower())))) && (_local2.hasShadow()))){ this.cleanup(); _local2.createTower(this.buildType); this.destTower = _local2.getTower(); if (this.sourceExists()){ this.sourceTower.addTradeLink(this.dest); }; Game.map.noise(this.dest.x, this.dest.y, Option.buildNoise, this.destTower.getZombieGuide()); Main.sound.play(SoundPlayer.TOWER_BUILD); if (this.buildType == Tower.BARRICADE){ this.destTower.giveResource(new ResourceCount(this.payload, Lib.truckLoad(this.payload))); _local1 = ReturnMission.create(this.dest, this.source, Resource.SURVIVORS, Lib.truckLoad(Resource.SURVIVORS), this.survivorType); } else { this.destTower.giveSurvivor(this.survivorType); }; } else { _local1 = this.fail(); }; return (_local1); } override public function save(){ return ({parent:super.save(), buildType:this.buildType}); } public static function create(_arg1:Point, _arg2:Point, _arg3:Resource, _arg4:int):Mission{ var _local5:Mission; _local5 = null; if (((Mission.sourceHasPayload(_arg1, _arg3)) && (!(Game.map.getCell(_arg2.x, _arg2.y).hasTower())))){ _local5 = new BuildMission(_arg1, _arg2, _arg3, _arg4); }; return (_local5); } public static function load(_arg1):BuildMission{ var _local2:BuildMission; _local2 = new BuildMission(null, null, null, 0); _local2.buildType = _arg1.buildType; _local2.shadow = Game.map.getCell(_arg1.parent.dest.x, _arg1.parent.dest.y).getShadow(); return (_local2); } } }//package logic.mission
Section 50
//Mission (logic.mission.Mission) package logic.mission { import flash.*; public class Mission { protected var destTower:Tower; protected var survivorType:int; protected var source:Point; protected var payload:Resource; protected var dest:Point; protected var sourceTower:Tower; protected var type:int; public static var RETURN:int = 1; public static var SUPPLY:int = 2; public static var UPGRADE:int = 3; public static var BUILD:int = 0; public function Mission(_arg1:Point=null, _arg2:Point=null, _arg3:Resource=null):void{ if (!Boot.skip_constructor){ this.source = null; this.sourceTower = null; this.dest = null; this.destTower = null; this.payload = null; if (_arg1 != null){ this.source = new Point(_arg1.x, _arg1.y); this.sourceTower = Game.map.getCell(this.source.x, this.source.y).getTower(); this.dest = new Point(_arg2.x, _arg2.y); this.destTower = Game.map.getCell(this.dest.x, this.dest.y).getTower(); this.payload = _arg3; }; this.type = 0; }; } public function takeFood():int{ var _local1:int; var _local2:ResourceCount; _local1 = 0; if (this.sourceTower != null){ _local1 = this.sourceTower.getTruckSpeed(); if (this.sourceTower.shouldUseFood()){ _local2 = new ResourceCount(Resource.FOOD, this.sourceTower.getFoodCost()); if (this.sourceTower.hasResource(_local2)){ this.sourceTower.takeResource(_local2); _local1 = (Option.foodTruckSpeedMin + Lib.rand(Option.foodTruckSpeedRange)); }; }; }; return (_local1); } public function getSurvivorType():int{ return (this.survivorType); } public function getSource():Point{ return (this.source); } public function canSucceed():Boolean{ return (this.destExists()); } protected function takePayload():void{ if (this.payload != Resource.SURVIVORS){ this.sourceTower.takeResource(new ResourceCount(this.payload, Lib.truckLoad(this.payload))); }; this.survivorType = this.sourceTower.takeSurvivor(); } protected function sourceExists():Boolean{ return (((!((this.sourceTower == null))) && ((Game.map.getCell(this.source.x, this.source.y).getTower() == this.sourceTower)))); } public function getDest():Point{ return (this.dest); } protected function destExists():Boolean{ return (((!((this.destTower == null))) && ((Game.map.getCell(this.dest.x, this.dest.y).getTower() == this.destTower)))); } public function getPayload():Resource{ return (this.payload); } public function cleanup():void{ } public function fail():Mission{ return (null); } public function dropLoad(_arg1:int, _arg2:int):void{ if (this.payload != Resource.SURVIVORS){ Game.map.getCell(_arg1, _arg2).addRubble(this.payload, Option.truckLoad); }; } public function complete():Mission{ return (null); } public function save(){ return ({source:this.source.save(), dest:this.dest.save(), payload:Lib.resourceToIndex(this.payload), type:this.type, survivorType:this.survivorType}); } public static function loadMission(_arg1):Mission{ var _local2:Mission; _local2 = null; if (_arg1.parent.type == BUILD){ _local2 = BuildMission.load(_arg1); } else { if (_arg1.parent.type == RETURN){ _local2 = ReturnMission.load(_arg1); } else { if (_arg1.parent.type == SUPPLY){ _local2 = SupplyMission.load(_arg1); } else { _local2 = UpgradeMission.load(_arg1); }; }; }; _local2.source = Point.load(_arg1.parent.source); _local2.sourceTower = Game.map.getCell(_local2.source.x, _local2.source.y).getTower(); _local2.dest = Point.load(_arg1.parent.dest); _local2.destTower = Game.map.getCell(_local2.dest.x, _local2.dest.y).getTower(); _local2.payload = Lib.indexToResource(_arg1.parent.payload); _local2.type = _arg1.parent.type; _local2.survivorType = _arg1.parent.survivorType; return (_local2); } protected static function sourceHasPayload(_arg1:Point, _arg2:Resource):Boolean{ var _local3:Tower; _local3 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); return (((((!((_local3 == null))) && (_local3.hasResource(new ResourceCount(_arg2, Lib.truckLoad(_arg2)))))) && (_local3.hasResource(Lib.survivorLoad)))); } } }//package logic.mission
Section 51
//ReturnMission (logic.mission.ReturnMission) package logic.mission { import flash.*; public class ReturnMission extends Mission { protected var amount:int; public function ReturnMission(_arg1:Point=null, _arg2:Point=null, _arg3:Resource=null, _arg4:int=0, _arg5:int=0):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2, _arg3); this.survivorType = _arg5; this.amount = _arg4; if (_arg1 != null){ if (this.payload != Resource.SURVIVORS){ this.destTower.addIncoming(new ResourceCount(this.payload, this.amount)); }; this.destTower.addIncomingSurvivor(this.survivorType); }; this.type = Mission.RETURN; }; } override public function takeFood():int{ return ((Option.returnTruckSpeedMin + Lib.rand(Option.returnTruckSpeedRange))); } override public function fail():Mission{ var _local1:Mission; var _local2:Point; _local1 = null; _local2 = Game.progress.getRandomDepot(); if (_local2 != null){ _local1 = create(this.source, _local2, this.payload, this.amount, this.survivorType); }; this.cleanup(); return (_local1); } override public function cleanup():void{ if (this.destExists()){ if (this.payload != Resource.SURVIVORS){ this.destTower.removeIncoming(new ResourceCount(this.payload, this.amount)); }; this.destTower.removeIncomingSurvivor(this.survivorType); }; } override public function dropLoad(_arg1:int, _arg2:int):void{ if (this.payload != Resource.SURVIVORS){ Game.map.getCell(_arg1, _arg2).addRubble(this.payload, this.amount); }; } override public function complete():Mission{ var _local1:Mission; _local1 = null; if (this.destExists()){ this.cleanup(); if (this.payload != Resource.SURVIVORS){ this.destTower.giveResource(new ResourceCount(this.payload, this.amount)); }; this.destTower.giveSurvivor(this.survivorType); } else { _local1 = this.fail(); }; return (_local1); } override public function save(){ return ({parent:super.save(), amount:this.amount}); } protected static function isValid(_arg1:Point, _arg2:Resource, _arg3:int):Boolean{ var _local4:Tower; _local4 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); return (!((_local4 == null))); } public static function create(_arg1:Point, _arg2:Point, _arg3:Resource, _arg4:int, _arg5:int):Mission{ var _local6:Mission; var _local7:Point; _local6 = null; _local7 = Game.progress.getRandomDepot(); if (isValid(_arg2, _arg3, _arg4)){ _local6 = new ReturnMission(_arg1, _arg2, _arg3, _arg4, _arg5); } else { if (((!((_local7 == null))) && (isValid(_local7, _arg3, _arg4)))){ _local6 = new ReturnMission(_arg1, _local7, _arg3, _arg4, _arg5); }; }; return (_local6); } public static function load(_arg1):ReturnMission{ var _local2:ReturnMission; _local2 = new ReturnMission(null, null, null, 0, 0); _local2.amount = _arg1.amount; return (_local2); } } }//package logic.mission
Section 52
//SupplyMission (logic.mission.SupplyMission) package logic.mission { import flash.*; public class SupplyMission extends Mission { protected var amount:int; public function SupplyMission(_arg1:Point=null, _arg2:Point=null, _arg3:Resource=null, _arg4:int=0):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2, _arg3); this.amount = _arg4; if (_arg1 != null){ if (this.payload != Resource.SURVIVORS){ this.sourceTower.takeResource(new ResourceCount(this.payload, this.amount)); }; this.survivorType = this.sourceTower.takeSurvivor(); if (this.payload == Resource.SURVIVORS){ this.destTower.addIncomingSurvivor(this.survivorType); } else { this.destTower.addIncoming(new ResourceCount(this.payload, this.amount)); this.sourceTower.addIncomingSurvivor(this.survivorType); }; }; this.type = Mission.SUPPLY; }; } override public function fail():Mission{ this.cleanup(); return (ReturnMission.create(this.dest, this.source, this.payload, this.amount, this.survivorType)); } override public function cleanup():void{ if (this.payload == Resource.SURVIVORS){ if (this.destExists()){ this.destTower.removeIncomingSurvivor(this.survivorType); }; } else { if (this.destExists()){ this.destTower.removeIncoming(new ResourceCount(this.payload, this.amount)); }; if (this.sourceExists()){ this.sourceTower.removeIncomingSurvivor(this.survivorType); }; }; } override public function dropLoad(_arg1:int, _arg2:int):void{ if (this.payload != Resource.SURVIVORS){ Game.map.getCell(_arg1, _arg2).addRubble(this.payload, this.amount); }; } override public function complete():Mission{ var _local1:Mission; _local1 = null; if (this.destExists()){ this.cleanup(); if (this.payload == Resource.SURVIVORS){ this.destTower.giveSurvivor(this.survivorType); } else { this.destTower.giveResource(new ResourceCount(this.payload, this.amount)); }; if (this.payload != Resource.SURVIVORS){ this.payload = Resource.SURVIVORS; _local1 = ReturnMission.create(this.dest, this.source, Resource.SURVIVORS, 1, this.survivorType); }; Main.sound.play(SoundPlayer.TOWER_SUPPLY); } else { _local1 = this.fail(); }; return (_local1); } override public function save(){ return ({parent:super.save(), amount:this.amount}); } public static function create(_arg1:Point, _arg2:Point, _arg3:Resource, _arg4:int):Mission{ var _local5:Mission; var _local6:Tower; var _local7:Tower; _local5 = null; _local6 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); _local7 = Game.map.getCell(_arg2.x, _arg2.y).getTower(); if ((((((_local6.countResource(_arg3) >= _arg4)) && (_local6.hasResource(Lib.survivorLoad)))) && (!((_local7 == null))))){ _local5 = new SupplyMission(_arg1, _arg2, _arg3, _arg4); } else { if (_local6.countResource(_arg3) < _arg4){ Lib.trace("Source tower does not have resources"); }; if (!_local6.hasResource(Lib.survivorLoad)){ Lib.trace("Source tower does not have a survivor"); }; if (_local7 == null){ Lib.trace("No Dest Tower"); }; }; return (_local5); } public static function load(_arg1):SupplyMission{ var _local2:SupplyMission; _local2 = new SupplyMission(null, null, null, 0); _local2.amount = _arg1.amount; return (_local2); } } }//package logic.mission
Section 53
//UpgradeMission (logic.mission.UpgradeMission) package logic.mission { import flash.*; public class UpgradeMission extends Mission { public function UpgradeMission(_arg1:Point=null, _arg2:Point=null, _arg3:Resource=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2, _arg3); if (_arg1 != null){ this.takePayload(); this.sourceTower.addIncomingSurvivor(this.survivorType); this.destTower.reserveUpgrade(); }; this.type = Mission.UPGRADE; }; } override public function fail():Mission{ var _local1:int; this.cleanup(); _local1 = Option.truckLoad; if (this.payload == Resource.SURVIVORS){ _local1 = 1; }; return (ReturnMission.create(this.dest, this.source, this.payload, _local1, this.survivorType)); } override public function cleanup():void{ if (this.sourceExists()){ this.sourceTower.removeIncomingSurvivor(this.survivorType); }; if (this.destExists()){ this.destTower.freeUpgrade(); }; } override public function complete():Mission{ var _local1:Mission; _local1 = null; if (this.destExists()){ this.cleanup(); this.destTower.upgrade(); this.payload = Resource.SURVIVORS; _local1 = ReturnMission.create(this.dest, this.source, Resource.SURVIVORS, 1, this.survivorType); } else { _local1 = this.fail(); }; return (_local1); } override public function save(){ return ({parent:super.save()}); } public static function create(_arg1:Point, _arg2:Point, _arg3:Resource):Mission{ var _local4:Mission; var _local5:Tower; _local4 = null; _local5 = Game.map.getCell(_arg2.x, _arg2.y).getTower(); if (((((Mission.sourceHasPayload(_arg1, _arg3)) && (!((_local5 == null))))) && (_local5.canUpgrade()))){ _local4 = new UpgradeMission(_arg1, _arg2, _arg3); }; return (_local4); } public static function load(_arg1):UpgradeMission{ var _local2:UpgradeMission; _local2 = new UpgradeMission(null, null, null); return (_local2); } } }//package logic.mission
Section 54
//Bridge (logic.Bridge) package logic { import mapgen.*; import flash.*; public class Bridge { protected var spawnArea:Section; protected var lot:Section; protected var dir:Direction; protected var isBroken:Boolean; protected static var bridgeRadius:int = (Option.cellPixels * MapGenerator.waterCount); public function Bridge(_arg1:Direction=null, _arg2:Section=null, _arg3:Boolean=false):void{ if (!Boot.skip_constructor){ this.lot = new Section(_arg2.offset, _arg2.limit); this.dir = _arg1; this.spawnArea = this.lot.center().slice(Util.opposite(this.dir), 1); this.isBroken = _arg3; }; } public function cleanup():void{ } public function getOffset():Point{ return (this.lot.offset); } public function clear():void{ Util.fillClearTiles(this.lot); } protected function calculateFrame():int{ var _local1:int; _local1 = (Lib.directionToIndex(this.dir) + 1); if (this.isBroken){ _local1 = (_local1 + 4); }; return (_local1); } public function spawnDir():Direction{ return (this.dir); } public function explosionDir():Direction{ return (Util.opposite(this.dir)); } public function spawnPos():Point{ var _local1:int; var _local2:int; _local1 = Lib.rand((this.spawnArea.limit.x - this.spawnArea.offset.x)); _local2 = Lib.rand((this.spawnArea.limit.y - this.spawnArea.offset.y)); return (new Point((this.spawnArea.offset.x + _local1), (this.spawnArea.offset.y + _local2))); } public function destroy():void{ var _local1:int; var _local2:int; var _local3:PlaceBridge; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:MapCell; var _local9:Zombie; this.isBroken = true; Game.progress.destroyBridge(this); _local1 = this.lot.offset.y; _local2 = this.lot.limit.y; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local4 = _temp1; _local5 = this.lot.offset.x; _local6 = this.lot.limit.x; while (_local5 < _local6) { var _temp2 = _local5; _local5 = (_local5 + 1); _local7 = _temp2; _local8 = Game.map.getCell(_local7, _local4); while (_local8.hasZombies()) { _local9 = _local8.getZombie(); _local9.removeFromMap(); _local9.cleanup(); }; _local8.setBlocked(); _local8.setBackground(BackgroundType.WATER); Game.view.mini.updateCell(_local7, _local4); }; }; _local3 = new PlaceBridge(this.dir, this.isBroken); _local3.place(this.lot); Game.view.window.fillRegion(this.lot.offset, this.lot.limit); Game.spawner.reduceZombies(); Game.sprites.recalculateFov(); Main.replay.addBox(this.lot.offset, this.lot.limit, Option.waterColor); } public function getLot():Section{ return (this.lot); } public function save(){ return ({dir:Lib.directionToIndex(this.dir), lot:Section.save(this.lot), isBroken:this.isBroken}); } public static function load(_arg1):Bridge{ return (new Bridge(Lib.indexToDirection(_arg1.dir), Section.load(_arg1.lot), _arg1.isBroken)); } public static function saveS(_arg1:Bridge){ return (_arg1.save()); } } }//package logic
Section 55
//GameSettings (logic.GameSettings) package logic { import ui.*; import flash.utils.*; 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)))){ throw (new Error((("Could not find required tag.\n" + "Every map must have: name, sizeX, sizeY, ") + "startX, startY, difficulty"))); }; this.cityName = Std.string(_local2.attribute("name")); this.size = new Point(Std._parseInt(Std.string(_local2.attribute("sizeX"))), Std._parseInt(Std.string(_local2.attribute("sizeY")))); this.start = new Point(Std._parseInt(Std.string(_local2.attribute("startX"))), Std._parseInt(Std.string(_local2.attribute("startY")))); this.difficulty = Std._parseInt(Std.string(_local2.attribute("difficulty"))); _local3 = _local2.elements("briefing"); if (_local3.length() > 0){ this.briefingText = Std.string(_local3.text()); } else { this.briefingText = Text.mainIntroText; }; if (_local2.elements("terrain").length() > 0){ this.loadCustomMap(Std.string(_local2.elements("terrain")), false); }; this.script = null; _local4 = _local2.elements("script"); if (_local4.length() > 0){ this.script = _local4.toXMLString(); }; }; } public function getNormalName():String{ return (this.normalName); } public function setCityName(_arg1:String):void{ this.cityName = _arg1; this.normalize(); } public function setMap(_arg1:ByteArray):void{ this.customMap = _arg1; } public function setKey(_arg1:String):void{ this.key = _arg1; } public function getPlayTime():int{ return (this.playTime); } public function saveMap():String{ var _local1:String; _local1 = (("<map name=\"" + this.cityName) + "\" "); _local1 = (_local1 + (("difficulty=\"" + Std.string(this.difficulty)) + "\" ")); _local1 = (_local1 + (("sizeX=\"" + Std.string(this.size.x)) + "\" ")); _local1 = (_local1 + (("sizeY=\"" + Std.string(this.size.y)) + "\" ")); _local1 = (_local1 + (("startX=\"" + Std.string(this.start.x)) + "\" ")); _local1 = (_local1 + (("startY=\"" + Std.string(this.start.y)) + "\" ")); _local1 = (_local1 + ">\n"); if (this.briefingText != Text.mainIntroText){ _local1 = (_local1 + "<briefing>\n"); _local1 = (_local1 + (this.briefingText + "\n")); _local1 = (_local1 + "</briefing>\n"); }; if (this.customMap != null){ _local1 = (_local1 + "<terrain>\n"); _local1 = (_local1 + this.getCustomMap()); _local1 = (_local1 + "\n</terrain>\n"); }; if (this.script != null){ _local1 = (_local1 + this.script); }; _local1 = (_local1 + "</map>\n"); return (_local1); } public function setStart(_arg1:Point):void{ this.start = _arg1.clone(); } public function clearEditor():void{ this.editor = false; } public function getMap():ByteArray{ if (this.customMap != null){ this.customMap.position = 0; }; return (this.customMap); } public function getKey():String{ return (this.key); } public function getStart():Point{ return (this.start); } public function setUrl(_arg1:String):void{ this.url = _arg1; } public function incrementPlayTime():void{ this.playTime++; } public function getDifficulty():int{ return (this.difficulty); } public function isEditor():Boolean{ return (this.editor); } public function getUrl():String{ return (this.url); } public function isCustom():Boolean{ return (this.custom); } public function setDifficulty(_arg1:int):void{ this.difficulty = _arg1; this.normalize(); } public function getScript():String{ return (this.script); } public function getBridgeCount():int{ return (bridgeCount[this.difficulty]); } public function doesHaveEdges():Boolean{ return (this.hasEdges); } public function getLoseText():String{ return (this.loseText); } public function beginLoadEdit(_arg1:String, _arg2:String, _arg3:String):void{ this.playTime = 0; this.editor = true; this.testing = false; this.custom = true; this.winText = _arg2; this.loseText = _arg3; this.loadMap(_arg1); } public function beginNewRandom(_arg1:int, _arg2:String):void{ this.difficulty = _arg1; this.cityName = _arg2; this.playTime = 0; this.customMap = null; this.editor = false; this.testing = false; this.custom = false; this.normalize(); } public function getDifficultyName():String{ return (difficultyText[this.difficulty]); } public function clone():GameSettings{ var _local1:GameSettings; var _local2:ByteArray; _local1 = new GameSettings(); _local1.difficulty = this.difficulty; _local1.cityName = this.cityName; _local1.playTime = this.playTime; _local2 = this.getMap(); if (_local2 == null){ _local1.customMap = null; } else { _local1.customMap = new ByteArray(); _local1.customMap.writeBytes(_local2); }; _local1.editor = this.editor; _local1.testing = this.testing; _local1.hasEdges = this.hasEdges; _local1.custom = this.custom; _local1.size = this.size.clone(); _local1.start = this.start.clone(); _local1.key = this.key; _local1.url = this.url; _local1.script = this.script; _local1.campaign = this.campaign; _local1.briefingText = this.briefingText; _local1.winText = this.winText; _local1.loseText = this.loseText; _local1.normalize(); return (_local1); } public function beginLoadTest(_arg1:String):void{ this.playTime = 0; this.editor = false; this.testing = true; this.custom = true; this.loadMap(_arg1); } protected function updateDifficulty():void{ if (this.cityName.toLowerCase().indexOf("tutorial") != -1){ this.difficulty = 0; }; if (((!(this.custom)) && (!(this.editor)))){ this.size = new Point(sizeList[this.difficulty], sizeList[this.difficulty]); }; if (this.size.x < 15){ this.size.x = 15; }; if (this.size.x > 90){ this.size.x = 90; }; if (this.size.y < 15){ this.size.y = 15; }; if (this.size.y > 90){ this.size.y = 90; }; } protected function loadCustomMap(_arg1:String, _arg2:Boolean):void{ var _local3:String; var _local4:Array; var _local5:String; var _local6:String; var _local7:String; var _local8:Bytes; var _local9:BaseCode; var _local10:ByteArray; var _local11:ByteArray; if (_arg1 == null){ this.customMap = null; this.normalize(); } else { _local3 = NativeBase.removeWhitespace(_arg1); _local4 = _local3.split("."); if (_local4.length != 2){ throw (new Error("Could not find hash in terrain")); }; _local5 = _local4[0]; _local6 = _local4[1]; _local7 = Md5.encode(_local6); if (_local5 != _local7){ throw (new Error(((((("Could not verify terrain.\n" + "Specified Hash: ") + _local5) + "\n") + "Calculated Hash: ") + _local7))); }; _local8 = Bytes.ofString(_local6); _local9 = new BaseCode(baseBytes); _local10 = _local9.decodeBytes(_local8).getData(); _local10.uncompress(); _local11 = _local10; if (_arg2){ this.cityName = _local11.readUTF(); this.difficulty = _local11.readUnsignedByte(); this.size.x = (_local11.readUnsignedByte() + (Editor.edgeCount * 2)); this.size.y = (_local11.readUnsignedByte() + (Editor.edgeCount * 2)); this.start.x = _local11.readUnsignedByte(); this.start.y = _local11.readUnsignedByte(); }; this.customMap = new ByteArray(); _local11.readBytes(this.customMap); this.normalize(); }; } public function load(_arg1):void{ this.difficulty = _arg1.difficulty; this.cityName = _arg1.cityName; this.playTime = _arg1.playTime; this.editor = _arg1.editor; this.testing = _arg1.testing; this.hasEdges = _arg1.hasEdges; this.custom = _arg1.custom; this.size = Point.load(_arg1.size); this.start = Point.load(_arg1.start); this.key = _arg1.key; this.url = _arg1.url; this.script = _arg1.script; this.campaign = _arg1.campaign; this.briefingText = _arg1.briefingText; this.winText = _arg1.winText; this.loseText = _arg1.loseText; this.loadMap(_arg1.map); } public function setWinText(_arg1:String):void{ this.winText = _arg1; } public function beginNewEdit(_arg1:int, _arg2:String, _arg3:Point):void{ this.difficulty = _arg1; this.cityName = _arg2; this.playTime = 0; this.customMap = null; this.editor = true; this.testing = false; this.custom = false; this.size = _arg3.clone(); this.key = null; this.url = null; this.script = null; this.normalize(); } public function getBriefingText():String{ return (this.briefingText); } public function getResourceMultiplier():int{ return (resourceMultiplier[this.difficulty]); } public function setEditor():void{ this.editor = true; } protected function updateEasterEgg():void{ if (this.custom){ this.easterEgg = NO_EASTER_EGG; } else { if (this.normalName.indexOf("london") != -1){ this.easterEgg = LONDON; } else { if (this.normalName.indexOf("monroeville") != -1){ this.easterEgg = MONROEVILLE; } else { if (this.normalName.indexOf("cumberland") != -1){ this.easterEgg = CUMBERLAND; } else { if (this.normalName.indexOf("raccooncity") != -1){ this.easterEgg = RACCOONCITY; } else { if (this.normalName.indexOf("fiddlersgreen") != -1){ this.easterEgg = FIDDLERSGREEN; } else { if (this.normalName.indexOf("saltlakecity") != -1){ this.easterEgg = SALTLAKECITY; } else { if (this.normalName.indexOf("eastlosangeles") != -1){ this.easterEgg = EASTLOSANGELES; } else { this.easterEgg = NO_EASTER_EGG; }; }; }; }; }; }; }; }; if (((!((this.easterEgg == NO_EASTER_EGG))) && (!((Main.kongregate == null))))){ Main.kongregate.stats.submit("Easter Egg", 1); }; } public function getWinText():String{ return (this.winText); } protected function updateName():void{ this.normalName = Util.getNormal(this.cityName, this.difficulty); } protected function getCustomMap():String{ var _local1:String; var _local2:ByteArray; var _local3:BaseCode; var _local4:Bytes; var _local5:String; var _local6:String; var _local7:String; var _local8:Array; var _local9:int; var _local10:int; _local1 = null; if (this.customMap != null){ _local2 = new ByteArray(); _local2.writeBytes(this.customMap); _local2.compress(); _local3 = new BaseCode(baseBytes); _local4 = _local3.encodeBytes(Bytes.ofData(_local2)); _local5 = _local4.toString(); _local6 = Md5.encode(_local5); _local7 = ((_local6 + ".") + _local5); _local8 = []; _local9 = 0; _local10 = 50; while (_local9 < _local7.length) { _local8.push(_local7.substr(_local9, _local10)); _local9 = (_local9 + _local10); }; _local1 = _local8.join("\n"); }; return (_local1); } public function getScarceCount():int{ return (scarceCount[this.difficulty]); } public function getSize():Point{ return (this.size); } public function setLoseText(_arg1:String):void{ this.loseText = _arg1; } public function getZombieMultiplier():int{ return (zombieMultiplier[this.difficulty]); } public static function getDifficultyLimit():int{ return (difficultyText.length); } public static function getDifficultyNameS(_arg1:int):String{ return (difficultyText[_arg1]); } } }//package logic
Section 56
//Script (logic.Script) package logic { import ui.*; import flash.*; public class Script { protected var current:Array; protected var states:Hash; protected var sprite:ScriptView; public static var BUILD_SNIPER:int = 20; public static var CLICK_ADD_BOARDS:int = 42; public static var CLICK_SHOOT:int = 46; public static var ZOMBIE_HORDE_END:int = 33; public static var SELECT_DEPOT:int = 3; public static var CLICK_NEXT:int = 60; public static var BUILD_BARRICADE:int = 21; public static var SELECT_SNIPER:int = 1; public static var START_BUILD_BARRICADE:int = 11; public static var MOVE_WINDOW:int = 0; public static var CLICK_REMOVE_SURVIVORS:int = 45; public static var CLICK_HOLD_FIRE:int = 47; public static var COUNTDOWN_COMPLETE:int = 36; public static var DESTROY_BARRICADE:int = 25; public static var CLICK_UPGRADE:int = 48; public static var CLICK_ADD_AMMO:int = 40; public static var SELECT_BARRICADE:int = 2; public static var CANCEL_BUILD:int = 14; public static var CLICK_ADD_SURVIVORS:int = 44; public static var CLICK_REMOVE_BOARDS:int = 43; public static var CLICK_REMOVE_AMMO:int = 41; public static var DESTROY_WORKSHOP:int = 27; public static var BUILD_WORKSHOP:int = 23; public static var CREATE_TRADE_SOURCE:int = 30; public static var ZOMBIE_CLEAR:int = 34; public static var START_BUILD_SNIPER:int = 10; public static var CREATE_TRADE_DEST:int = 31; public static var ZOMBIE_HORDE_BEGIN:int = 32; public static var START_BUILD_DEPOT:int = 12; public static var SELECT_NOTHING:int = 5; public static var CLICK_FLEE:int = 49; public static var DESTROY_DEPOT:int = 26; public static var BUILD_DEPOT:int = 22; public static var DESTROY_SNIPER:int = 24; public static var START_BUILD_WORKSHOP:int = 13; public static var BRIDGE_CLEAR:int = 35; public static var SELECT_WORKSHOP:int = 4; public static var CLICK_SKIP:int = 61; public function Script(_arg1:ScriptView=null):void{ if (!Boot.skip_constructor){ this.sprite = _arg1; this.states = new Hash(); this.current = new Array(); this.sprite.setButtons(this.clickNext, this.clickSkip); this.sprite.update(this.current); }; } public function takeAction():void{ var _local1:int; var _local2:Array; var _local3:ScriptState; _local1 = 0; _local2 = this.current; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.takeAction(); }; } public function load(_arg1):void{ this.current = Load.loadArray(_arg1.current, this.loadState); } public function checkStates():Boolean{ var _local1:Boolean; var _local2:*; var _local3:ScriptState; _local1 = true; _local2 = this.states.iterator(); while (_local2.hasNext()) { _local3 = _local2.next(); _local1 = _local3.checkEdges(this.states); if (!_local1){ break; }; }; return (_local1); } protected function loadState(_arg1):ScriptState{ var _local2:String; _local2 = Std.string(_arg1); return (this.states.get(_local2)); } protected function clickSkip():void{ this.trigger(CLICK_SKIP); } public function addState(_arg1:ScriptState):void{ this.states.set(_arg1.getName(), _arg1); if (_arg1.getName() == "start"){ this.current.push(_arg1); this.sprite.update(this.current); }; } public function trigger(_arg1:int, _arg2:Point=null):void{ var _local3:int; var _local4:String; var _local5:ScriptState; _local3 = 0; while (_local3 < this.current.length) { _local4 = this.current[_local3].trigger(_arg1, _arg2); if (_local4 == null){ _local3++; } else { _local5 = this.states.get(_local4); if (_local5 != null){ this.current[_local3] = _local5; this.current[_local3].takeAction(); _local3++; } else { this.current.splice(_local3, 1); }; }; }; if (_arg1 == MOVE_WINDOW){ this.sprite.redraw(); } else { this.sprite.update(this.current); }; } public function addCurrentState(_arg1:String):void{ var _local2:ScriptState; _local2 = this.states.get(_arg1); if (_local2 != null){ this.current.push(_local2); _local2.takeAction(); }; } protected function clickNext():void{ this.trigger(CLICK_NEXT); } public function save(){ return ({current:Save.saveArray(this.current, Script.saveState)}); } public static function saveState(_arg1:ScriptState):String{ return (_arg1.getName()); } } }//package logic
Section 57
//ScriptAction (logic.ScriptAction) package logic { import ui.*; import action.*; import flash.*; public class ScriptAction implements Interface { protected var action:int; protected var arg:String; public static var WIN:int = 0; public static var HORDE:int = 3; public static var MOVE_MAP:int = 4; public static var COUNTDOWN:int = 2; public static var ADD_STATE:int = 5; public static var LOSE:int = 1; public function ScriptAction(_arg1:int=0, _arg2:String=null):void{ if (!Boot.skip_constructor){ this.action = _arg1; this.arg = _arg2; }; } public function run():void{ var _local1:String; var _local2:String; var _local3:*; var _local4:*; var _local5:Point; var _local6:Array; var _local7:*; var _local8:*; var _local9:Array; var _local10:*; var _local11:*; if (this.action == WIN){ _local1 = this.arg; if (_local1 == null){ _local1 = Text.mainWinText; }; Game.settings.setWinText(_local1); Game.endGame(GameOver.WIN); } else { if (this.action == LOSE){ _local2 = this.arg; if (_local2 == null){ _local2 = Text.mainLoseText; }; Game.settings.setLoseText(_local2); Game.endGame(GameOver.LOSE); } else { if (this.action == COUNTDOWN){ _local3 = Std._parseInt(this.arg); Game.spawner.startCountDown(_local3); } else { if (this.action == HORDE){ _local4 = null; _local5 = null; if (this.arg != null){ _local6 = this.arg.split(" "); if (_local6.length >= 1){ _local4 = Std._parseInt(_local6[0]); }; if (_local6.length >= 3){ _local7 = Std._parseInt(_local6[1]); _local8 = Std._parseInt(_local6[2]); if (((!((_local7 == null))) && (!((_local8 == null))))){ _local5 = new Point(_local7, _local8); }; }; }; Game.spawner.startHorde(_local4, _local5); } else { if (this.action == MOVE_MAP){ _local9 = this.arg.split(" "); if (_local9.length >= 2){ _local10 = Std._parseInt(_local9[0]); _local11 = Std._parseInt(_local9[1]); if (((!((_local10 == null))) && (!((_local11 == null))))){ Game.view.window.moveWindowCenter(_local10, _local11); }; }; } else { if (this.action == ADD_STATE){ Game.script.addCurrentState(this.arg); }; }; }; }; }; }; } } }//package logic
Section 58
//ScriptEdge (logic.ScriptEdge) package logic { import mapgen.*; import flash.*; public class ScriptEdge { protected var type:int; protected var next:String; protected var area:Section; public function ScriptEdge(_arg1:int=0, _arg2:Section=null, _arg3:String=null):void{ if (!Boot.skip_constructor){ this.type = _arg1; this.area = _arg2; this.next = _arg3; }; } public function trigger(_arg1:int, _arg2:Point):String{ var _local3:String; _local3 = null; if (_arg1 == this.type){ if ((((this.area == null)) || (((((!((this.area == null))) && (!((_arg2 == null))))) && (this.area.contains(_arg2)))))){ _local3 = this.next; }; }; return (_local3); } public function getNext():String{ return (this.next); } } }//package logic
Section 59
//ScriptParse (logic.ScriptParse) package logic { import mapgen.*; public class ScriptParse { protected static var stringToTransition:Hash = new Hash(); protected static var stringToButton:Hash = new Hash(); public static var defaultScript:String = " <script> <state name="start"> <action type="add-state" arg="countdown" /> <edge type="bridge-clear" next="bridge"/> <edge type="zombie-clear" next="zombie" /> </state> <state name="bridge"> <edge type="zombie-clear" next="bridge-zombie" /> </state> <state name="zombie"> <edge type="bridge-clear" next="bridge-zombie" /> <edge type="zombie-horde-begin" next="start" /> </state> <state name="bridge-zombie"> <action type="win" /> </state> <state name="countdown"> <action type="countdown" arg="150" /> <edge type="countdown-complete" next="horde" /> </state> <state name="horde"> <action type="horde" /> <edge type="zombie-horde-end" next="countdown" /> </state> </script> "; public static var editScript:String = "<script></script>"; protected static var stringToAction:Hash = new Hash(); public function ScriptParse():void{ } protected static function parseAction(_arg1:XML):ScriptAction{ var _local2:XMLList; var _local3:*; var _local4:String; var _local5:ScriptAction; _local2 = _arg1.attribute("type"); _local3 = stringToAction.get(Std.string(_local2)); _local4 = null; _local2 = _arg1.attribute("arg"); if (_local2.length() > 0){ _local4 = Std.string(_local2); } else { _local2 = _arg1.elements("arg"); if (_local2.length() > 0){ _local4 = Std.string(_local2); }; }; _local5 = new ScriptAction(_local3, _local4); return (_local5); } protected static function calculatePoint(_arg1:XMLList, _arg2:XMLList):Point{ var _local3:Point; var _local4:*; var _local5:*; _local3 = null; if ((((_arg1.length() > 0)) && ((_arg2.length() > 0)))){ _local4 = Std._parseInt(Std.string(_arg1)); _local5 = Std._parseInt(Std.string(_arg2)); if (((!((_local4 == null))) && (!((_local5 == null))))){ _local3 = new Point(_local4, _local5); }; }; return (_local3); } public static function init():void{ var _local1:Hash; var _local2:Hash; var _local3:Hash; _local1 = stringToTransition; _local1.set("move-window", Script.MOVE_WINDOW); _local1.set("select-sniper", Script.SELECT_SNIPER); _local1.set("select-barricade", Script.SELECT_BARRICADE); _local1.set("select-depot", Script.SELECT_DEPOT); _local1.set("select-workshop", Script.SELECT_WORKSHOP); _local1.set("select-nothing", Script.SELECT_NOTHING); _local1.set("start-build-sniper", Script.START_BUILD_SNIPER); _local1.set("start-build-barricade", Script.START_BUILD_BARRICADE); _local1.set("start-build-depot", Script.START_BUILD_DEPOT); _local1.set("start-build-workshop", Script.START_BUILD_WORKSHOP); _local1.set("cancel-build", Script.CANCEL_BUILD); _local1.set("build-sniper", Script.BUILD_SNIPER); _local1.set("build-barricade", Script.BUILD_BARRICADE); _local1.set("build-depot", Script.BUILD_DEPOT); _local1.set("build-workshop", Script.BUILD_WORKSHOP); _local1.set("destroy-sniper", Script.DESTROY_SNIPER); _local1.set("destroy-barricade", Script.DESTROY_BARRICADE); _local1.set("destroy-depot", Script.DESTROY_DEPOT); _local1.set("destroy-workshop", Script.DESTROY_WORKSHOP); _local1.set("create-trade-source", Script.CREATE_TRADE_SOURCE); _local1.set("create-trade-dest", Script.CREATE_TRADE_DEST); _local1.set("zombie-horde-begin", Script.ZOMBIE_HORDE_BEGIN); _local1.set("zombie-horde-end", Script.ZOMBIE_HORDE_END); _local1.set("zombie-clear", Script.ZOMBIE_CLEAR); _local1.set("bridge-clear", Script.BRIDGE_CLEAR); _local1.set("countdown-complete", Script.COUNTDOWN_COMPLETE); _local1.set("click-add-ammo", Script.CLICK_ADD_AMMO); _local1.set("click-remove-ammo", Script.CLICK_REMOVE_AMMO); _local1.set("click-add-boards", Script.CLICK_ADD_BOARDS); _local1.set("click-remove-boards", Script.CLICK_REMOVE_BOARDS); _local1.set("click-add-survivors", Script.CLICK_ADD_SURVIVORS); _local1.set("click-remove-survivors", Script.CLICK_REMOVE_SURVIVORS); _local1.set("click-shoot", Script.CLICK_SHOOT); _local1.set("click-hold-fire", Script.CLICK_HOLD_FIRE); _local1.set("click-upgrade", Script.CLICK_UPGRADE); _local1.set("click-flee", Script.CLICK_FLEE); _local1.set("click-next", Script.CLICK_NEXT); _local1.set("click-skip", Script.CLICK_SKIP); _local2 = stringToAction; _local2.set("win", ScriptAction.WIN); _local2.set("lose", ScriptAction.LOSE); _local2.set("countdown", ScriptAction.COUNTDOWN); _local2.set("horde", ScriptAction.HORDE); _local2.set("move-map", ScriptAction.MOVE_MAP); _local2.set("add-state", ScriptAction.ADD_STATE); _local3 = stringToButton; _local3.set("timer", ScriptState.TIMER); _local3.set("minimap", ScriptState.MINIMAP); _local3.set("system", ScriptState.SYSTEM); _local3.set("zombipedia", ScriptState.PEDIA); _local3.set("range", ScriptState.RANGE); _local3.set("build-sniper", ScriptState.BUILD_SNIPER); _local3.set("build-barricade", ScriptState.BUILD_BARRICADE); _local3.set("build-workshop", ScriptState.BUILD_WORKSHOP); _local3.set("build-depot", ScriptState.BUILD_DEPOT); _local3.set("depot-flee", ScriptState.DEPOT_FLEE); _local3.set("depot-resource", ScriptState.DEPOT_RESOURCE); _local3.set("barricade-increase", ScriptState.BARRICADE_INCREASE); _local3.set("barricade-decrease", ScriptState.BARRICADE_DECREASE); _local3.set("workshop-increase", ScriptState.WORKSHOP_INCREASE); _local3.set("workshop-decrease", ScriptState.WORKSHOP_DECREASE); _local3.set("workshop-flee", ScriptState.WORKSHOP_FLEE); _local3.set("workshop-extract", ScriptState.WORKSHOP_EXTRACT); _local3.set("sniper-shoot", ScriptState.SNIPER_SHOOT); _local3.set("sniper-hold-fire", ScriptState.SNIPER_HOLD_FIRE); _local3.set("sniper-upgrade", ScriptState.SNIPER_UPGRADE); _local3.set("sniper-flee", ScriptState.SNIPER_FLEE); _local3.set("sniper-resource", ScriptState.SNIPER_RESOURCE); _local3.set("sniper-increase-ammo", ScriptState.SNIPER_INCREASE_AMMO); _local3.set("sniper-increase-survivors", ScriptState.SNIPER_INCREASE_SURVIVORS); _local3.set("sniper-decrease-ammo", ScriptState.SNIPER_DECREASE_AMMO); _local3.set("sniper-decrease-survivors", ScriptState.SNIPER_DECREASE_SURVIVORS); _local3.set("depot-increase-ammo", ScriptState.DEPOT_INCREASE_AMMO); _local3.set("depot-decrease-ammo", ScriptState.DEPOT_DECREASE_AMMO); _local3.set("depot-increase-boards", ScriptState.DEPOT_INCREASE_BOARDS); _local3.set("depot-decrease-boards", ScriptState.DEPOT_DECREASE_BOARDS); _local3.set("depot-increase-survivors", ScriptState.DEPOT_INCREASE_SURVIVORS); _local3.set("depot-decrease-survivors", ScriptState.DEPOT_DECREASE_SURVIVORS); _local3.set("total-resources", ScriptState.TOTAL_RESOURCES); } public static function parse(_arg1:String, _arg2:Script):void{ var _local3:String; var _local4:XML; var _local5:XMLList; var _local6:int; var _local7:int; var _local8:Boolean; var _local9:int; var _local10:ScriptState; _local3 = _arg1; if (Game.settings.isEditor()){ _local3 = editScript; }; if (_local3 == null){ _local3 = defaultScript; }; _local4 = new XML(_local3); _local5 = _local4.child("state"); _local6 = 0; _local7 = _local5.length(); while (_local6 < _local7) { var _temp1 = _local6; _local6 = (_local6 + 1); _local9 = _temp1; _local10 = parseState(_local5[_local9]); _arg2.addState(_local10); }; _local8 = _arg2.checkStates(); if (!_local8){ Lib.trace("Failed sanity check"); }; } protected static function parseEdge(_arg1:XML):ScriptEdge{ var _local2:XMLList; var _local3:*; var _local4:Point; var _local5:Point; var _local6:Section; var _local7:String; var _local8:ScriptEdge; _local2 = _arg1.attribute("type"); _local3 = stringToTransition.get(Std.string(_local2)); _local4 = calculatePoint(_arg1.attribute("offsetX"), _arg1.attribute("offsetY")); _local5 = calculatePoint(_arg1.attribute("limitX"), _arg1.attribute("limitY")); if (((!((_local4 == null))) && ((_local5 == null)))){ _local5 = new Point((_local4.x + 1), (_local4.y + 1)); }; _local6 = null; if (_local4 != null){ _local6 = new Section(_local4, _local5); }; _local2 = _arg1.attribute("next"); _local7 = Std.string(_local2); _local8 = new ScriptEdge(_local3, _local6, _local7); return (_local8); } protected static function parseState(_arg1:XML):ScriptState{ var _local2:XMLList; var _local3:String; var _local4:String; var _local5:Point; var _local6:Boolean; var _local7:int; var _local8:ScriptState; var _local9:XMLList; var _local10:int; var _local11:int; var _local12:XMLList; var _local13:int; var _local14:int; var _local15:String; var _local16:int; var _local17:ScriptEdge; var _local18:int; var _local19:ScriptAction; _local2 = _arg1.attribute("name"); _local3 = Std.string(_local2); _local2 = _arg1.elements("text"); _local4 = null; if (_local2.length() > 0){ _local4 = Std.string(_local2); }; _local5 = calculatePoint(_arg1.attribute("posX"), _arg1.attribute("posY")); _local6 = false; _local2 = _arg1.child("next"); if (_local2.length() > 0){ _local6 = true; }; _local7 = ScriptState.NO_BUTTON; _local2 = _arg1.attribute("button"); if (_local2.length() > 0){ _local15 = Std.string(_local2); if (stringToButton.exists(_local15)){ _local7 = stringToButton.get(_local15); }; }; _local8 = new ScriptState(_local3, _local4, _local5, _local7, _local6); _local9 = _arg1.child("edge"); _local10 = 0; _local11 = _local9.length(); while (_local10 < _local11) { var _temp1 = _local10; _local10 = (_local10 + 1); _local16 = _temp1; _local17 = parseEdge(_local9[_local16]); _local8.addEdge(_local17); }; _local12 = _arg1.child("action"); _local13 = 0; _local14 = _local12.length(); while (_local13 < _local14) { var _temp2 = _local13; _local13 = (_local13 + 1); _local18 = _temp2; _local19 = parseAction(_local12[_local18]); _local8.addAction(_local19); }; return (_local8); } } }//package logic
Section 60
//ScriptState (logic.ScriptState) package logic { import ui.*; import flash.*; public class ScriptState { protected var buttonPos:int; protected var name:String; protected var mapPos:Point; protected var edges:Array; protected var text:String; protected var hasNext:Boolean; protected var actions:Array; public static var MINIMAP:int = 1; public static var BUILD_SNIPER:int = 5; public static var SNIPER_DECREASE_SURVIVORS:int = 25; public static var BUILD_BARRICADE:int = 6; public static var RANGE:int = 4; public static var WORKSHOP_FLEE:int = 15; public static var TIMER:int = 0; public static var WORKSHOP_EXTRACT:int = 16; public static var TOTAL_RESOURCES:int = 32; public static var SYSTEM:int = 2; public static var SNIPER_INCREASE_SURVIVORS:int = 23; public static var DEPOT_FLEE:int = 9; public static var SNIPER_UPGRADE:int = 19; public static var SNIPER_FLEE:int = 20; public static var SNIPER_SHOOT:int = 17; public static var DEPOT_INCREASE_AMMO:int = 26; public static var PEDIA:int = 3; public static var DEPOT_INCREASE_BOARDS:int = 28; public static var BARRICADE_DECREASE:int = 12; public static var WORKSHOP_DECREASE:int = 14; public static var BUILD_WORKSHOP:int = 7; public static var DEPOT_RESOURCE:int = 10; public static var SNIPER_INCREASE_AMMO:int = 22; public static var BUILD_DEPOT:int = 8; public static var DEPOT_DECREASE_AMMO:int = 27; public static var SNIPER_HOLD_FIRE:int = 18; public static var DEPOT_DECREASE_SURVIVORS:int = 31; public static var DEPOT_DECREASE_BOARDS:int = 29; public static var DEPOT_INCREASE_SURVIVORS:int = 30; public static var SNIPER_RESOURCE:int = 21; public static var NO_BUTTON:int = -1; public static var BARRICADE_INCREASE:int = 11; public static var WORKSHOP_INCREASE:int = 13; public static var SNIPER_DECREASE_AMMO:int = 24; public function ScriptState(_arg1:String=null, _arg2:String=null, _arg3:Point=null, _arg4:int=0, _arg5:Boolean=false):void{ if (!Boot.skip_constructor){ this.name = _arg1; this.text = _arg2; this.mapPos = _arg3; this.buttonPos = _arg4; this.hasNext = _arg5; this.edges = new Array(); this.actions = new Array(); }; } public function getName():String{ return (this.name); } public function shouldShowArrow():Boolean{ return (((!((this.mapPos == null))) || (!((this.buttonPos == NO_BUTTON))))); } public function takeAction():void{ var _local1:int; var _local2:Array; var _local3:ScriptAction; _local1 = 0; _local2 = this.actions; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; Game.actions.push(_local3); }; } public function getPos():Point{ var _local1:Point; var _local2:LayoutGame; _local1 = null; if (this.isMapPos()){ _local1 = this.mapPos; } else { if (this.buttonPos != NO_BUTTON){ _local1 = new Point(0, 0); _local2 = Game.view.layout; if (this.buttonPos == TIMER){ _local1.x = (_local2.countDownOffset.x + Math.floor((_local2.countDownSize.x / 2))); _local1.y = ((_local2.countDownOffset.y + _local2.countDownSize.y) - 30); } else { if (this.buttonPos == MINIMAP){ _local1.x = (_local2.miniOffset.x + Math.floor((_local2.miniSize.x / 2))); _local1.y = (_local2.miniOffset.y + _local2.miniSize.y); } else { if (this.buttonPos == SYSTEM){ _local1.x = (_local2.quickOffset.x + 30); _local1.y = ((_local2.quickOffset.y - 30) - 20); } else { if (this.buttonPos == PEDIA){ _local1.x = (_local2.quickOffset.x + 80); _local1.y = ((_local2.quickOffset.y - 30) - 20); } else { if (this.buttonPos == RANGE){ _local1.x = (_local2.quickOffset.x + 130); _local1.y = ((_local2.quickOffset.y - 30) - 20); } else { if (this.buttonPos == BUILD_SNIPER){ _local1.x = (_local2.buildMenuOffset.x + 43); _local1.y = ((_local2.buildMenuOffset.y - 106) - 20); } else { if (this.buttonPos == BUILD_BARRICADE){ _local1.x = (_local2.buildMenuOffset.x + 103); _local1.y = ((_local2.buildMenuOffset.y - 106) - 20); } else { if (this.buttonPos == BUILD_WORKSHOP){ _local1.x = (_local2.buildMenuOffset.x + 43); _local1.y = ((_local2.buildMenuOffset.y - 61) - 20); } else { if (this.buttonPos == BUILD_DEPOT){ _local1.x = (_local2.buildMenuOffset.x + 103); _local1.y = ((_local2.buildMenuOffset.y - 61) - 20); } else { if (this.buttonPos == DEPOT_FLEE){ _local1.x = ((_local2.sideMenuOffset.x + 370) - 15); _local1.y = ((_local2.sideMenuOffset.y + 520) - 15); } else { if (this.buttonPos == DEPOT_RESOURCE){ _local1.x = ((_local2.sideMenuOffset.x + 30) + 150); _local1.y = (_local2.sideMenuOffset.y + 525); } else { if (this.buttonPos == BARRICADE_INCREASE){ _local1.x = ((_local2.sideMenuOffset.x + 385) - 8); _local1.y = (_local2.sideMenuOffset.y + 538); } else { if (this.buttonPos == BARRICADE_DECREASE){ _local1.x = ((_local2.sideMenuOffset.x + 385) - 8); _local1.y = (_local2.sideMenuOffset.y + 558); } else { if (this.buttonPos == WORKSHOP_INCREASE){ _local1.x = ((_local2.sideMenuOffset.x + 375) - 8); _local1.y = (_local2.sideMenuOffset.y + 510); } else { if (this.buttonPos == WORKSHOP_DECREASE){ _local1.x = ((_local2.sideMenuOffset.x + 375) - 8); _local1.y = (_local2.sideMenuOffset.y + 530); } else { if (this.buttonPos == WORKSHOP_FLEE){ _local1.x = ((_local2.sideMenuOffset.x + 368) - 15); _local1.y = ((_local2.sideMenuOffset.y + 568) - 15); } else { if (this.buttonPos == WORKSHOP_EXTRACT){ _local1.x = ((_local2.sideMenuOffset.x + 183) + 30); _local1.y = ((_local2.sideMenuOffset.y + 515) - 15); } else { if (this.buttonPos == SNIPER_SHOOT){ _local1.x = ((_local2.sideMenuOffset.x + 320) - 15); _local1.y = ((_local2.sideMenuOffset.y + 463) - 15); } else { if (this.buttonPos == SNIPER_HOLD_FIRE){ _local1.x = ((_local2.sideMenuOffset.x + 365) - 15); _local1.y = ((_local2.sideMenuOffset.y + 463) - 15); } else { if (this.buttonPos == SNIPER_UPGRADE){ _local1.x = ((_local2.sideMenuOffset.x + 365) - 15); _local1.y = ((_local2.sideMenuOffset.y + 508) - 15); } else { if (this.buttonPos == SNIPER_FLEE){ _local1.x = ((_local2.sideMenuOffset.x + 365) - 15); _local1.y = ((_local2.sideMenuOffset.y + 568) - 15); } else { if (this.buttonPos == SNIPER_RESOURCE){ _local1.x = ((_local2.sideMenuOffset.x + 12) + 220); _local1.y = ((_local2.sideMenuOffset.y + 525) - 10); } else { if (this.buttonPos == SNIPER_INCREASE_AMMO){ _local1.x = (((_local2.sideMenuOffset.x + 12) + 159) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 45) - 8); } else { if (this.buttonPos == SNIPER_INCREASE_SURVIVORS){ _local1.x = (((_local2.sideMenuOffset.x + 12) + 219) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 45) - 8); } else { if (this.buttonPos == SNIPER_DECREASE_AMMO){ _local1.x = (((_local2.sideMenuOffset.x + 12) + 159) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 65) - 8); } else { if (this.buttonPos == SNIPER_DECREASE_SURVIVORS){ _local1.x = (((_local2.sideMenuOffset.x + 12) + 219) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 65) - 8); } else { if (this.buttonPos == DEPOT_INCREASE_AMMO){ _local1.x = (((_local2.sideMenuOffset.x + 30) + 104) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 45) - 8); } else { if (this.buttonPos == DEPOT_DECREASE_AMMO){ _local1.x = (((_local2.sideMenuOffset.x + 30) + 104) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 65) - 8); } else { if (this.buttonPos == DEPOT_INCREASE_BOARDS){ _local1.x = (((_local2.sideMenuOffset.x + 30) + 159) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 45) - 8); } else { if (this.buttonPos == DEPOT_DECREASE_BOARDS){ _local1.x = (((_local2.sideMenuOffset.x + 30) + 159) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 65) - 8); } else { if (this.buttonPos == DEPOT_INCREASE_SURVIVORS){ _local1.x = (((_local2.sideMenuOffset.x + 30) + 219) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 45) - 8); } else { if (this.buttonPos == DEPOT_DECREASE_SURVIVORS){ _local1.x = (((_local2.sideMenuOffset.x + 30) + 219) - 8); _local1.y = (((_local2.sideMenuOffset.y + 525) + 65) - 8); } else { if (this.buttonPos == TOTAL_RESOURCES){ _local1.x = _local2.totalResourceOffset.x; _local1.y = (_local2.totalResourceOffset.y + 40); }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; return (_local1); } public function isMapPos():Boolean{ return ((this.buttonPos == NO_BUTTON)); } public function shouldShowNext():Boolean{ return (this.hasNext); } public function shouldShowText():Boolean{ return (!((this.text == null))); } public function getText():String{ return (this.text); } public function checkEdges(_arg1:Hash):Boolean{ var _local2:Boolean; var _local3:int; var _local4:Array; var _local5:ScriptEdge; var _local6:String; var _local7:ScriptState; _local2 = true; _local3 = 0; _local4 = this.edges; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local6 = _local5.getNext(); if (_local6 != ""){ _local7 = _arg1.get(_local6); if (_local7 == null){ _local2 = false; break; }; }; }; return (_local2); } public function addAction(_arg1:ScriptAction):void{ this.actions.push(_arg1); } public function trigger(_arg1:int, _arg2:Point):String{ var _local3:String; var _local4:int; var _local5:Array; var _local6:ScriptEdge; _local3 = null; _local4 = 0; _local5 = this.edges; while (_local4 < _local5.length) { _local6 = _local5[_local4]; _local4++; _local3 = _local6.trigger(_arg1, _arg2); if (_local3 != null){ break; }; }; return (_local3); } public function addEdge(_arg1:ScriptEdge):void{ this.edges.push(_arg1); } } }//package logic
Section 61
//BlockApartment (mapgen.BlockApartment) package mapgen { import flash.*; public class BlockApartment extends BlockRoot { protected var baseLot:Section; protected var walkLot:Section; protected var parkingLot:Section; protected var doPlaceRubble:Boolean; protected var primaryCornerLot:Section; protected var secondaryCornerLot:Section; protected var primaryLot:Section; protected var secondaryDir:Direction; protected var primaryDir:Direction; protected var entranceLot:Section; protected var baseDir:Direction; protected var secondaryLot:Section; protected static var longs:Array = [[-1, -1, 903, 861], [-1, -1, 883, 921], [886, 928, -1, -1], [887, 925, -1, -1]]; protected static var tiling:int = 872; protected static var trees:Array = [[-1, -1, 922, 882], [-1, -1, 862, 902], [905, 907, -1, -1], [908, 906, -1, -1]]; protected static var shorts:Array = [[-1, -1, 924, 880], [-1, -1, 864, 900], [865, 947, -1, -1], [868, 946, -1, -1]]; protected static var entrances:Array = [[-1, -1, 923, 881], [-1, -1, 863, 901], [885, 927, -1, -1], [888, 926, -1, -1]]; protected static var corners:Array = [[-1, -1, 904, 860], [-1, -1, 884, 920], [866, 948, -1, -1], [867, 945, -1, -1]]; public function BlockApartment(_arg1:Direction=null, _arg2:Direction=null, _arg3:Direction=null, _arg4=null):void{ if (!Boot.skip_constructor){ this.baseDir = _arg1; this.primaryDir = _arg2; this.secondaryDir = _arg3; this.doPlaceRubble = true; if (_arg4 == false){ this.doPlaceRubble = false; }; }; } protected function setLots(_arg1:Section):void{ var _local2:int; var _local3:int; var _local4:Section; var _local5:Section; var _local6:Section; _local2 = 2; if (_arg1.dirSize(this.baseDir) > 5){ _local2 = 3; }; _local3 = 3; _local4 = _arg1; _local5 = _local4.slice(this.primaryDir, _local3); this.primaryCornerLot = _local5.slice(this.baseDir, _local2); this.primaryLot = _local5.remainder(this.baseDir, _local2); _local4 = _local4.remainder(this.primaryDir, _local3); this.secondaryLot = null; this.secondaryCornerLot = null; if (this.secondaryDir != null){ _local6 = _local4.slice(this.secondaryDir, _local3); this.secondaryCornerLot = _local6.slice(this.baseDir, _local2); this.secondaryLot = _local6.remainder(this.baseDir, _local2); _local4 = _local4.remainder(this.secondaryDir, _local3); }; this.baseLot = _local4.slice(this.baseDir, _local2); _local4 = _local4.remainder(this.baseDir, _local2); _local5 = _local4.slice(this.baseDir, 1); this.entranceLot = _local5.slice(this.primaryDir, 1); this.walkLot = _local5.remainder(this.primaryDir, 1); _local4 = _local4.remainder(this.baseDir, 1); this.parkingLot = _local4; } public function placeBuilding(_arg1:Section):Building{ var _local2:Building; this.setDirections(_arg1); this.setLots(_arg1); _local2 = this.placeApartment(); this.placeEntrance(); this.placeParking(); return (_local2); } protected function setDirections(_arg1:Section):void{ var _local2:Array; var _local3:int; var _local4:Array; if ((((this.baseDir == null)) || ((this.primaryDir == null)))){ _local2 = [[Direction.NORTH, Direction.SOUTH], [Direction.EAST, Direction.WEST]]; Util.shuffle(_local2); _local3 = 0; while (_local3 < _local2.length) { _local4 = _local2[_local3]; _local3++; Util.shuffle(_local4); }; this.baseDir = _local2[0][0]; this.primaryDir = _local2[1][0]; this.secondaryDir = _local2[1][1]; }; if (_arg1.dirSize(this.primaryDir) < 8){ this.secondaryDir = null; }; } override public function place(_arg1:Section):void{ this.placeBuilding(_arg1); } protected function placeEntrance():void{ var _local1:Point; var _local2:Point; var _local3:Point; var _local4:Point; var _local5:int; var _local6:int; _local1 = this.entranceLot.offset; _local2 = this.primaryLot.slice(this.baseDir, 1).slice(Util.opposite(this.primaryDir), 1).offset; _local3 = this.baseLot.slice(this.primaryDir, 1).slice(Util.opposite(this.baseDir), 1).offset; _local4 = this.primaryCornerLot.slice(Util.opposite(this.baseDir), 1).slice(Util.opposite(this.primaryDir), 1).offset; _local5 = Lib.directionToIndex(this.baseDir); _local6 = Lib.directionToIndex(this.primaryDir); Util.addTile(_local1, entrances[_local5][_local6]); Util.addTile(_local2, shorts[_local5][_local6]); Util.addTile(_local3, longs[_local5][_local6]); Util.addTile(_local4, corners[_local5][_local6]); Util.setArea(this.walkLot, this.placeWalkTile, new Point(_local5, _local6)); } protected function placeApartment():Building{ var _local1:Direction; var _local2:Array; var _local3:Building; var _local4:int; var _local5:BuildingApartment; var _local6:Array; var _local7:Section; _local1 = Util.opposite(this.baseDir); _local2 = [this.baseLot, this.primaryLot, this.primaryCornerLot, this.secondaryLot, this.secondaryCornerLot, this.entranceLot]; _local3 = new Building(Util.APARTMENT); _local4 = 0; while (_local4 < _local2.length) { _local7 = _local2[_local4]; _local4++; if (_local7 != null){ _local3.addLot(_local7); }; }; _local3.setEntrance(this.entranceLot.offset, _local1); Game.map.addBuilding(_local3); _local3.attach(); _local5 = new BuildingApartment(_local3); _local6 = [this.primaryDir]; if (this.secondaryDir != null){ _local6.push(this.secondaryDir); }; _local5.setDirs(_local6); _local5.place(this.baseLot); _local5.setDirs([this.baseDir]); _local5.place(this.primaryLot); _local5.setDirs([_local1, Util.opposite(this.primaryDir)]); _local5.place(this.primaryCornerLot); if (this.secondaryDir != null){ _local5.setDirs([this.baseDir]); _local5.place(this.secondaryLot); _local5.setDirs([_local1, Util.opposite(this.secondaryDir)]); _local5.place(this.secondaryCornerLot); }; return (_local3); } protected function placeParking():void{ var _local1:Building; var _local2:Section; var _local3:Point; var _local4:Point; _local1 = Util.createBuilding(this.parkingLot, Util.PARKING_LOT); _local2 = this.parkingLot.slice(Util.opposite(this.baseDir), 1); _local3 = _local2.getSize(); _local4 = new Point((_local2.offset.x + Math.floor((_local3.x / 2))), (_local2.offset.y + Math.floor((_local3.y / 2)))); _local1.setEntrance(_local4, Util.opposite(this.baseDir)); Util.drawBuilding(this.parkingLot, _local1, this.doPlaceRubble); } protected function placeWalkTile(_arg1:Point, _arg2:Point):void{ if (Util.rand(2) == 0){ Util.addTile(_arg1, trees[_arg2.x][_arg2.y]); Util.changeBlocked(_arg1, true); } else { Util.addTile(_arg1, tiling); Util.changeBlocked(_arg1, false); }; Util.setBackground(_arg1, BackgroundType.STREET); } } }//package mapgen
Section 62
//BlockChurch (mapgen.BlockChurch) package mapgen { import flash.*; public class BlockChurch extends BlockRoot { protected var fillGaps:Boolean; protected var primary:Direction; protected static var pathTiles:Array = [703, 707, 711, 715]; protected static var NORTH:int = 0; protected static var SOUTH:int = 1; protected static var WEST:int = 1; protected static var NEITHER:int = 2; protected static var parkCornerTiles:Array = [215, 216, 195, 196]; protected static var parkEdgeTiles:Array = [[68, 66, 67], [108, 106, 107], [88, 86, 87]]; protected static var parkCornerDelta:Array = [new Point(1, -1), new Point(-1, -1), new Point(1, 1), new Point(-1, 1)]; protected static var EAST:int = 0; public function BlockChurch(_arg1=null, _arg2:Direction=null):void{ if (!Boot.skip_constructor){ this.fillGaps = true; if (_arg1 == false){ this.fillGaps = false; }; this.primary = _arg2; }; } protected function isPark(_arg1:Point, _arg2:Direction):Boolean{ return (this.isParkDelta(_arg1, Lib.directionToDelta(_arg2))); } protected function isParkDelta(_arg1:Point, _arg2:Point):Boolean{ var _local3:MapCell; _local3 = Game.map.getCell((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return ((_local3.getBackground() == BackgroundType.PARK)); } protected function addPath(_arg1:Point, _arg2:Building):void{ var _local3:int; _local3 = Lib.directionToIndex(_arg2.getEntranceDir()); Util.addTile(_arg1, pathTiles[_local3]); } protected function addBlocked(_arg1:Point):void{ Util.addRandTile(_arg1, Tile.trees); Util.changeBlocked(_arg1, true); } protected function placeScenery(_arg1:Section, _arg2:Building):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:Point; _local3 = _arg1.offset.y; _local4 = _arg1.limit.y; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = _arg1.offset.x; _local7 = _arg1.limit.x; while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local8 = _temp2; _local9 = new Point(_local8, _local5); this.addPark(_local9); this.addOverlay(_local9, _arg2); }; }; } protected function findChurchDir(_arg1:Section, _arg2:Section):Direction{ var _local3:Direction; var _local4:int; var _local5:int; var _local6:int; var _local7:Direction; var _local8:int; _local3 = Direction.NORTH; _local4 = this.boxDiff(_arg1, _arg2, _local3); _local5 = 0; while (_local5 < 4) { var _temp1 = _local5; _local5 = (_local5 + 1); _local6 = _temp1; _local7 = Lib.indexToDirection(_local6); _local8 = this.boxDiff(_arg1, _arg2, _local7); if (_local8 > _local4){ _local3 = _local7; _local4 = _local8; }; }; return (_local3); } protected function placeChurch(_arg1:Section):Building{ var _local2:Section; var _local3:Direction; var _local4:Building; _local2 = this.findChurchLot(_arg1); _local3 = this.primary; if (_local3 == null){ _local3 = this.findChurchDir(_arg1, _local2); }; _local4 = Util.createBuilding(_local2, Util.CHURCH, _local3); Util.drawBuilding(_local2, _local4); return (_local4); } protected function boxDiff(_arg1:Section, _arg2:Section, _arg3:Direction):int{ var _local4:int; var _local5:enum; _local4 = 0; _local5 = _arg3; switch (_local5.index){ case 0: _local4 = (_arg2.offset.y - _arg1.offset.y); break; case 1: _local4 = (_arg1.limit.y - _arg2.limit.y); break; case 2: _local4 = (_arg1.limit.x - _arg2.limit.x); break; case 3: _local4 = (_arg2.offset.x - _arg1.offset.x); break; }; return (_local4); } protected function findChurchLot(_arg1:Section):Section{ var _local2:Section; var _local3:int; var _local4:int; _local2 = _arg1.randSublot(new Point(3, 3)); if ((((_local2.offset.x == (_arg1.offset.x + 1))) || ((_local2.limit.x == (_arg1.limit.x - 1))))){ _local3 = this.randAdjust(); _local2.offset.x = (_local2.offset.x + _local3); _local2.limit.x = (_local2.limit.x + _local3); }; if ((((_local2.offset.y == (_arg1.offset.y + 1))) || ((_local2.limit.y == (_arg1.limit.y - 1))))){ _local4 = this.randAdjust(); _local2.offset.y = (_local2.offset.y + _local4); _local2.limit.y = (_local2.limit.y + _local4); }; return (_local2); } protected function addPark(_arg1:Point):void{ var _local2:int; var _local3:int; var _local4:int; if (Game.map.getCell(_arg1.x, _arg1.y).getBackground() == BackgroundType.PARK){ _local2 = NEITHER; if (!this.isPark(_arg1, Direction.NORTH)){ _local2 = NORTH; } else { if (!this.isPark(_arg1, Direction.SOUTH)){ _local2 = SOUTH; }; }; _local3 = NEITHER; if (!this.isPark(_arg1, Direction.EAST)){ _local3 = EAST; } else { if (!this.isPark(_arg1, Direction.WEST)){ _local3 = WEST; }; }; _local4 = parkEdgeTiles[_local2][_local3]; if ((((_local2 == NEITHER)) && ((_local3 == NEITHER)))){ _local4 = this.getCornerPark(_arg1); }; Util.addTile(_arg1, _local4); }; } protected function randAdjust():int{ var _local1:int; var _local2:int; _local1 = 0; _local2 = Util.rand(2); if (_local2 == 0){ _local1 = 1; } else { _local1 = -1; }; return (_local1); } protected function getCornerPark(_arg1:Point):int{ var _local2:int; var _local3:int; var _local4:int; _local2 = 87; _local3 = 0; while (_local3 < 4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local4 = _temp1; if (!this.isParkDelta(_arg1, parkCornerDelta[_local4])){ _local2 = parkCornerTiles[_local4]; }; }; return (_local2); } override public function place(_arg1:Section):void{ this.placeBuilding(_arg1); } public function placeEditBox(_arg1:Section):Building{ var _local2:PlaceTerrain; var _local3:Section; var _local4:Building; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:Point; _local2 = new PlaceTerrain(); _local2.place(_arg1, PlaceTerrain.park); _local3 = _arg1.slice(Util.opposite(this.primary), 3); _local3 = _local3.randSublot(new Point(3, 3)); _local4 = Util.createBuilding(_local3, Util.CHURCH, this.primary); Util.drawBuilding(_local3, _local4); _local5 = _arg1.offset.y; _local6 = _arg1.limit.y; while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local7 = _temp1; _local8 = _arg1.offset.x; _local9 = _arg1.limit.x; while (_local8 < _local9) { var _temp2 = _local8; _local8 = (_local8 + 1); _local10 = _temp2; _local11 = new Point(_local10, _local7); this.addOverlay(_local11, _local4); }; }; return (_local4); } public function placeBuilding(_arg1:Section):Building{ var _local2:Building; Util.fillUnblocked(_arg1); Util.fillBackground(_arg1, BackgroundType.PARK); _local2 = this.placeChurch(_arg1); this.placeScenery(_arg1, _local2); if (this.fillGaps){ Util.fillBlockedGaps(_arg1); }; return (_local2); } protected function isPath(_arg1:Point, _arg2:Building):Boolean{ var _local3:Boolean; var _local4:Direction; var _local5:Point; var _local6:enum; _local3 = false; _local4 = _arg2.getEntranceDir(); _local5 = _arg2.getEntrance(); _local6 = _local4; switch (_local6.index){ case 0: _local3 = (((_arg1.x == _local5.x)) && ((_arg1.y < _local5.y))); break; case 1: _local3 = (((_arg1.x == _local5.x)) && ((_arg1.y > _local5.y))); break; case 2: _local3 = (((_arg1.x > _local5.x)) && ((_arg1.y == _local5.y))); break; case 3: _local3 = (((_arg1.x < _local5.x)) && ((_arg1.y == _local5.y))); break; }; return (_local3); } protected function addOverlay(_arg1:Point, _arg2:Building):void{ var _local3:BackgroundType; _local3 = Game.map.getCell(_arg1.x, _arg1.y).getBackground(); if (_local3 == BackgroundType.PARK){ if (this.isPath(_arg1, _arg2)){ this.addPath(_arg1, _arg2); } else { if (((this.fillGaps) && ((Util.rand(100) < 30)))){ this.addBlocked(_arg1); }; }; }; } } }//package mapgen
Section 63
//BlockHouses (mapgen.BlockHouses) package mapgen { public class BlockHouses extends BlockRoot { protected static var drivewayTiles:Array = [683, 687, 691, 695]; protected static var startOffsets:Array = [new Point(0, -1), new Point(1, 2), new Point(2, 0), new Point(-1, 1)]; public function BlockHouses():void{ } protected function middleLot(_arg1:Section):Section{ var _local2:Point; var _local3:Section; _local2 = _arg1.centerPoint(); _local3 = new Section(_local2, new Point((_local2.x + 2), (_local2.y + 2))); _local3.north = _arg1.north; _local3.south = _arg1.south; _local3.east = _arg1.east; _local3.west = _arg1.west; return (_local3); } override public function place(_arg1:Section):void{ var _local2:List; var _local3:*; var _local4:Section; var _local5:Section; var _local6:Building; Util.fillWithBorder(_arg1, Tile.parkTiles); Util.fillUnblocked(_arg1); Util.fillBackground(_arg1, BackgroundType.PARK); _local2 = new List(); Util.subdivide(_arg1, Option.minHouseSize, _local2); _local3 = _local2.iterator(); while (_local3.hasNext()) { _local4 = _local3.next(); _local5 = _local4.randSublot(new Point(Option.minHouseSize, Option.minHouseSize)); _local6 = Util.createBuilding(_local5, Util.HOUSE); Util.drawBuilding(_local5, _local6); addDriveway(_local5.offset, _local6.getEntranceDir(), _arg1); }; Util.fillBlockedGaps(_arg1); } protected static function addDriveway(_arg1:Point, _arg2:Direction, _arg3:Section):void{ var _local4:int; var _local5:Point; _local4 = Lib.directionToIndex(_arg2); _local5 = new Point((_arg1.x + startOffsets[_local4].x), (_arg1.y + startOffsets[_local4].y)); while (_arg3.contains(_local5)) { Util.addTile(_local5, drivewayTiles[_local4]); _local5.x = (_local5.x + Lib.directionToDelta(_arg2).x); _local5.y = (_local5.y + Lib.directionToDelta(_arg2).y); }; } public static function placeEditBox(_arg1:Section, _arg2:Direction, _arg3:Direction):Building{ var _local4:PlaceTerrain; var _local5:Section; var _local6:Building; _local4 = new PlaceTerrain(); _local4.place(_arg1, PlaceTerrain.park); _local5 = _arg1.slice(Util.opposite(_arg2), 2); _local5 = _local5.slice(Util.opposite(_arg3), 2); _local6 = Util.createBuilding(_local5, Util.HOUSE, _arg2); Util.drawBuilding(_local5, _local6); addDriveway(_local5.offset, _arg2, _arg1); return (_local6); } } }//package mapgen
Section 64
//BlockMall (mapgen.BlockMall) package mapgen { import flash.*; public class BlockMall extends BlockRoot { protected var primary:Direction; protected var vertTileLot:Section; protected var placeRubble:Boolean; protected var horizTileLot:Section; protected var secondary:Direction; protected static var horizDirs:Array = [Direction.EAST, Direction.WEST, Direction.EAST, Direction.WEST]; protected static var EDGE_CORNER:int = 0; protected static var EDGE_BEGIN:int = 1; protected static var EDGE_MIDDLE:int = 2; protected static var tileCornerTile:int = 746; protected static var vertCornerTile:Array = [748, 747, 808, 807]; protected static var edges:Array = [[746, 826, 827, 828], [746, 846, 847, 848], [746, 810, 830, 850], [746, 809, 829, 849]]; protected static var mallCornerTile:Array = [0x0300, 767, 788, 787]; protected static var EDGE_END:int = 3; protected static var tileTile:int = 746; protected static var vertDirs:Array = [Direction.NORTH, Direction.NORTH, Direction.SOUTH, Direction.SOUTH]; protected static var horizCornerTile:Array = [769, 766, 789, 786]; public function BlockMall(_arg1=null, _arg2:Direction=null, _arg3:Direction=null):void{ if (!Boot.skip_constructor){ this.placeRubble = true; if (_arg1 == false){ this.placeRubble = false; }; this.primary = _arg2; this.secondary = _arg3; }; } protected function setupTiles(_arg1:Section, _arg2:Direction, _arg3:Direction):Section{ var _local4:Section; _local4 = _arg1; this.horizTileLot = null; this.vertTileLot = null; if (_local4.getSize().x > 5){ this.horizTileLot = _local4.slice(Util.opposite(_arg2), 1); _local4 = _local4.slice(_arg2, (_local4.getSize().x - 1)); }; if (_local4.getSize().y > 5){ this.vertTileLot = _local4.slice(Util.opposite(_arg3), 1); _local4 = _local4.slice(_arg3, (_local4.getSize().y - 1)); }; return (_local4); } override public function place(_arg1:Section):void{ this.placeBuilding(_arg1); } protected function placeEdgeTiles(_arg1:Section, _arg2:Direction, _arg3:Point):void{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; if (_arg1 != null){ Util.fillClearTiles(_arg1); Util.fillUnblocked(_arg1); Util.fillBackground(_arg1, BackgroundType.STREET); _local4 = Lib.directionToIndex(_arg2); _local5 = _arg1.offset.y; _local6 = _arg1.limit.y; while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local7 = _temp1; _local8 = _arg1.offset.x; _local9 = _arg1.limit.x; while (_local8 < _local9) { var _temp2 = _local8; _local8 = (_local8 + 1); _local10 = _temp2; _local11 = this.findEdgeIndex(_local10, _local7, _arg1, _arg2, _arg3); Util.addTile(new Point(_local10, _local7), edges[_local4][_local11]); }; }; }; } protected function placeParkingLots(_arg1:Section, _arg2:int, _arg3:Direction, _arg4:Direction):Section{ var _local5:Section; var _local6:Direction; var _local7:Direction; var _local8:int; var _local9:int; var _local10:Section; var _local11:Section; var _local12:Section; var _local13:Section; var _local14:Section; _local5 = _arg1; _local6 = null; _local7 = null; if (_arg1.getSize().x > _arg1.getSize().y){ _local6 = _arg4; _local7 = _arg3; } else { _local6 = _arg3; _local7 = _arg4; }; _local5 = this.placeParkingStrip(_local5, _local6, _local7, true, this.getParkingSize(_arg1.dirSize(_local6)), this.getParkingSize(_arg1.dirSize(_local7))); _local5 = this.placeParkingStrip(_local5, _local7, _local6, false, this.getParkingSize(_arg1.dirSize(_local7)), this.getParkingSize(_arg1.dirSize(_local6))); _local8 = this.getParkingSize(_arg1.getSize().x); _local9 = this.getParkingSize(_arg1.getSize().y); if ((((_local8 == 2)) && ((_local9 == 2)))){ _local10 = _arg1.slice(Util.opposite(_local6), this.getParkingSize(_arg1.dirSize(_local6))); _local11 = _local10.slice(Util.opposite(_local7), 2); _local12 = _local11.slice(_local7, 1); _local12 = _local12.slice(_local6, 1); _local13 = _local11.slice(Util.opposite(_local7), 1); _local14 = _local13.slice(_local6, 1); _local13 = _local13.slice(Util.opposite(_local6), 1); PlaceParkingLot.fixCorner(_local12, _local13, _local14, PlaceRoot.oppositeCorner(_arg2), (_local6 == _arg4)); }; return (_local5); } protected function getCornerIndex(_arg1:Direction, _arg2:Direction):int{ var _local3:int; _local3 = PlaceRoot.NORTHEAST; if ((((_arg2 == Direction.NORTH)) && ((_arg1 == Direction.WEST)))){ _local3 = PlaceRoot.NORTHWEST; } else { if ((((_arg2 == Direction.SOUTH)) && ((_arg1 == Direction.EAST)))){ _local3 = PlaceRoot.SOUTHEAST; } else { if ((((_arg2 == Direction.SOUTH)) && ((_arg1 == Direction.WEST)))){ _local3 = PlaceRoot.SOUTHWEST; }; }; }; return (_local3); } public function placeBuilding(_arg1:Section):Building{ var _local2:Direction; var _local3:Direction; var _local4:int; var _local5:Section; var _local6:Building; _local2 = this.primary; _local3 = this.secondary; if ((((this.primary == Direction.NORTH)) || ((this.primary == Direction.SOUTH)))){ _local2 = this.secondary; _local3 = this.primary; }; _local4 = 0; if ((((this.primary == null)) || ((this.secondary == null)))){ _local4 = Util.rand(4); _local2 = horizDirs[_local4]; _local3 = vertDirs[_local4]; } else { _local4 = PlaceRoot.lessCorner(_local2); if (_local3 == Direction.SOUTH){ _local4 = PlaceRoot.greaterCorner(_local2); }; }; _local5 = _arg1; _local5 = this.placeParkingLots(_local5, _local4, _local2, _local3); _local5 = this.setupTiles(_local5, _local2, _local3); _local6 = this.placeMall(_local5, _local2, _local3); this.placeTiles(_local5, _local6, _local2, _local3); return (_local6); } protected function findEdgeIndex(_arg1:int, _arg2:int, _arg3:Section, _arg4:Direction, _arg5:Point):int{ var _local6:int; _local6 = EDGE_CORNER; if ((((Lib.intAbs((_arg1 - _arg5.x)) <= 1)) && ((Lib.intAbs((_arg2 - _arg5.y)) <= 1)))){ if ((((_arg4 == Direction.NORTH)) || ((_arg4 == Direction.SOUTH)))){ _local6 = this.edgeEntranceIndex(_arg1, _arg5.x); } else { _local6 = this.edgeEntranceIndex(_arg2, _arg5.y); }; } else { if ((((_arg4 == Direction.NORTH)) || ((_arg4 == Direction.SOUTH)))){ _local6 = this.edgeNormalIndex(_arg1, _arg3.offset.x, _arg3.limit.x); } else { _local6 = this.edgeNormalIndex(_arg2, _arg3.offset.y, _arg3.limit.y); }; }; return (_local6); } protected function getParkingSize(_arg1:int):int{ if (_arg1 <= 6){ return (0); }; if (_arg1 <= 9){ return (2); }; return (3); } protected function placeParkingStrip(_arg1:Section, _arg2:Direction, _arg3:Direction, _arg4:Boolean, _arg5:int, _arg6:int):Section{ var _local7:Section; var _local8:int; var _local9:Section; var _local10:PlaceParkingLot; var _local11:List; var _local12:Section; var _local13:Section; var _local14:Section; var _local15:Section; var _local16:Section; var _local17:Section; _local7 = _arg1; _local8 = _arg1.dirSize(_arg2); if (_arg5 > 0){ _local9 = _local7.slice(Util.opposite(_arg2), _arg5); _local7 = _local7.slice(_arg2, (_local8 - _arg5)); _local10 = new PlaceParkingLot(); _local11 = new List(); if (_arg6 > 0){ if (_arg4){ _local12 = _local9.slice(Util.opposite(_arg3), 2); _local12 = _local12.slice(_arg3, 1); _local12 = _local12.slice(_arg2, 1); _local11.add(_local12.offset); } else { if (_arg5 == 3){ _local13 = _local9.slice(Util.opposite(_arg3), 1); _local13 = _local13.slice(_arg2, 2); _local13 = _local13.slice(Util.opposite(_arg2), 1); _local11.add(_local13.offset); } else { if (_arg5 == 2){ _local9 = _local9.slice(_arg3, (_local9.dirSize(_arg3) + 1)); }; }; }; }; if (_arg5 == 3){ _local14 = _local9.slice(_arg3, 1); _local14 = _local14.slice(_arg2, 2); _local14 = _local14.slice(Util.opposite(_arg2), 1); _local11.add(_local14.offset); PlaceParkingLot.addCrossStreet(_local14, _local14.offset, _arg3, CrossStreet.PARKING_ENTRANCE); } else { _local15 = _local9.slice(_arg3, 1); _local16 = _local15.slice(_arg2, 1); _local11.add(_local16.offset); _local17 = _local15.slice(Util.opposite(_arg2), 1); _local11.add(_local17.offset); if ((((_local16.offset.x < _local17.offset.x)) || ((_local16.offset.y < _local17.offset.y)))){ PlaceParkingLot.addCrossStreet(_local16, _local16.offset, _arg3, CrossStreet.BEGIN_PARKING_ENTRANCE); PlaceParkingLot.addCrossStreet(_local17, _local17.offset, _arg3, CrossStreet.END_PARKING_ENTRANCE); } else { PlaceParkingLot.addCrossStreet(_local16, _local16.offset, _arg3, CrossStreet.END_PARKING_ENTRANCE); PlaceParkingLot.addCrossStreet(_local17, _local17.offset, _arg3, CrossStreet.BEGIN_PARKING_ENTRANCE); }; }; _local10.place(_local9, _local11, this.placeRubble, _arg2); }; return (_local7); } protected function edgeNormalIndex(_arg1:int, _arg2:int, _arg3:int):int{ if (_arg1 == _arg2){ return (EDGE_BEGIN); }; if (_arg1 == (_arg3 - 1)){ return (EDGE_END); }; return (EDGE_MIDDLE); } protected function placeMall(_arg1:Section, _arg2:Direction, _arg3:Direction):Building{ var _local4:Array; var _local5:Direction; var _local6:Building; _local4 = [_arg2, _arg3]; _local5 = Util.opposite(_local4[Util.rand(2)]); if (this.primary != null){ _local5 = Util.opposite(this.primary); }; _local6 = Util.createBuilding(_arg1, Util.MALL, _local5); Util.drawBuilding(_arg1, _local6); return (_local6); } protected function placeTiles(_arg1:Section, _arg2:Building, _arg3:Direction, _arg4:Direction):void{ var _local5:int; var _local6:Section; var _local7:Section; var _local8:Section; var _local9:Section; var _local10:Section; this.placeEdgeTiles(this.horizTileLot, Util.opposite(_arg3), _arg2.getEntrance()); this.placeEdgeTiles(this.vertTileLot, Util.opposite(_arg4), _arg2.getEntrance()); if (((!((this.horizTileLot == null))) && (!((this.vertTileLot == null))))){ _local5 = this.getCornerIndex(Util.opposite(_arg3), Util.opposite(_arg4)); _local6 = _arg1; _local6 = _local6.slice(Util.opposite(_arg3), 1); _local6 = _local6.slice(Util.opposite(_arg4), 1); Util.addTile(_local6.offset, mallCornerTile[_local5]); _local7 = this.horizTileLot.slice(Util.opposite(_arg4), 2); _local8 = _local7.slice(Util.opposite(_arg4), 1); Util.addTile(_local8.offset, tileCornerTile); _local9 = _local7.slice(_arg4, 1); Util.addTile(_local9.offset, horizCornerTile[_local5]); _local10 = this.vertTileLot.slice(Util.opposite(_arg3), 1); Util.addTile(_local10.offset, vertCornerTile[_local5]); }; } protected function edgeEntranceIndex(_arg1:int, _arg2:int):int{ if (_arg1 < _arg2){ return (EDGE_END); }; if (_arg1 > _arg2){ return (EDGE_BEGIN); }; return (EDGE_CORNER); } } }//package mapgen
Section 65
//BlockPark (mapgen.BlockPark) package mapgen { import flash.*; public class BlockPark extends BlockRoot { protected var addTrees:Boolean; public function BlockPark(_arg1=null):void{ if (!Boot.skip_constructor){ this.addTrees = true; if (_arg1 == false){ this.addTrees = false; }; }; } override public function place(_arg1:Section):void{ Util.fillWithBorder(_arg1, Tile.parkTiles); Util.fillUnblocked(_arg1); Util.fillBackground(_arg1, BackgroundType.PARK); if (this.addTrees){ Util.blockRandom(_arg1, [Tile.trees, Tile.rocks, Tile.lakes], [3, 1, 1]); Util.fillBlockedGaps(_arg1); }; } } }//package mapgen
Section 66
//BlockRoot (mapgen.BlockRoot) package mapgen { public class BlockRoot extends PlaceRoot { public function place(_arg1:Section):void{ } } }//package mapgen
Section 67
//BlockStandard (mapgen.BlockStandard) package mapgen { public class BlockStandard extends BlockRoot { public function BlockStandard():void{ } override public function place(_arg1:Section):void{ var _local2:List; var _local3:*; var _local4:Section; var _local5:Building; _local2 = new List(); Util.subdivide(_arg1, Option.minGenericSize, _local2); _local3 = _local2.iterator(); while (_local3.hasNext()) { _local4 = _local3.next(); _local5 = Util.createBuilding(_local4); Util.drawBuilding(_local4, _local5); }; } } }//package mapgen
Section 68
//BuildingApartment (mapgen.BuildingApartment) package mapgen { import flash.*; public class BuildingApartment extends BuildingRoot { protected var dirs:Array; protected static var middle:int = 963; protected static var EXTENDS_BOTH:int = 3; protected static var STOPS:int = 0; protected static var EXTENDS_HORIZ:int = 1; protected static var EXTENDS_VERT:int = 2; protected static var EXTENDS:int = 1; protected static var edges:Array = [[943, 963], [983, 963], [964, 963], [962, 963]]; protected static var corners:Array = [[944, 943, 964, 960], [942, 943, 962, 961], [984, 983, 964, 940], [982, 983, 962, 941]]; public function BuildingApartment(_arg1:Building=null):void{ if (!Boot.skip_constructor){ super(_arg1); this.dirs = []; }; } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ var _local6:int; _local6 = STOPS; if (this.doesExtend(PlaceRoot.cornerToVert(_arg2))){ _local6 = (_local6 | EXTENDS_VERT); }; if (this.doesExtend(PlaceRoot.cornerToHoriz(_arg2))){ _local6 = (_local6 | EXTENDS_HORIZ); }; Util.addTile(_arg1, corners[_arg2][_local6]); } override protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ var _local5:int; _local5 = STOPS; if (this.doesExtend(Lib.indexToDirection(_arg2))){ _local5 = EXTENDS; }; Util.fillAddTile(_arg1, edges[_arg2][_local5]); } public function setDirs(_arg1:Array):void{ this.dirs = _arg1; } protected function doesExtend(_arg1:Direction):Boolean{ var _local2:Boolean; var _local3:int; var _local4:Array; var _local5:Direction; _local2 = false; _local3 = 0; _local4 = this.dirs; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; if (_arg1 == _local5){ _local2 = true; }; }; return (_local2); } override protected function placeMiddle(_arg1:Section, _arg2:int):void{ Util.fillAddTile(_arg1, middle); } } }//package mapgen
Section 69
//BuildingChurch (mapgen.BuildingChurch) package mapgen { import flash.*; public class BuildingChurch extends BuildingRoot { protected static var center:Array = [701, 705, 709, 713]; protected static var edges:Array = [[723, 685, 689, 693], [721, 727, 729, 733], [702, 706, 731, 714], [700, 704, 708, 735]]; protected static var corners:Array = [[682, 686, 690, 694], [680, 684, 688, 692], [722, 726, 730, 734], [720, 724, 728, 732]]; public function BuildingChurch(_arg1:Building=null):void{ if (!Boot.skip_constructor){ super(_arg1); }; } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ Util.addTile(_arg1, corners[_arg2][this.getDir()]); } override protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ Util.addTile(_arg1.offset, edges[_arg2][this.getDir()]); } protected function getDir():int{ return (Lib.directionToIndex(this.building.getEntranceDir())); } override protected function placeMiddle(_arg1:Section, _arg2:int):void{ Util.addTile(_arg1.offset, center[this.getDir()]); } } }//package mapgen
Section 70
//BuildingFringe (mapgen.BuildingFringe) package mapgen { import flash.*; public class BuildingFringe extends BuildingRoot { protected static var ROAD:int = 1; protected static var start:int = 320; protected static var colors:Array = [0, 5, 10]; protected static var FRINGE:int = 0; protected static var BUILDING:int = 2; protected static var corner:Array = [[[4, 64, 104, 4], [1, 4, 4, 4], [61, 4, 4, 4], [4, 4, 4, 4]], [[2, 62, 102, 2], [0, 2, 2, 2], [60, 2, 2, 2], [2, 2, 2, 2]], [[44, 84, 124, 44], [41, 44, 44, 44], [101, 44, 44, 44], [44, 44, 44, 44]], [[42, 82, 122, 42], [40, 42, 42, 42], [100, 42, 42, 42], [42, 42, 42, 42]]]; protected static var ENTRANCE:int = 3; protected static var center:int = 23; protected static var edge:Array = [[63, 3, 3, 103], [83, 43, 43, 123], [21, 24, 24, 81], [20, 22, 22, 80]]; public function BuildingFringe(_arg1:Building=null):void{ if (!Boot.skip_constructor){ super(_arg1); }; } override protected function getColorCount():int{ return (colors.length); } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ var _local6:int; var _local7:int; var _local8:int; _local6 = BUILDING; if (this.building.getEntrance().y == _arg1.y){ _local6 = FRINGE; } else { if (_arg3 != null){ _local6 = ROAD; }; }; _local7 = BUILDING; if (this.building.getEntrance().x == _arg1.x){ _local7 = FRINGE; } else { if (_arg4 != null){ _local7 = ROAD; }; }; _local8 = ((BuildingFringe.start + colors[_arg5]) + corner[_arg2][_local6][_local7]); Util.addTile(_arg1, _local8); if (((!((_local6 == FRINGE))) && (!((_local7 == FRINGE))))){ Util.addRoofOverlay(_arg1, Tile.cornerRoof); }; } override protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:Point; var _local13:int; _local5 = BUILDING; if (_arg1.contains(this.building.getEntrance())){ _local5 = FRINGE; } else { if (_arg3 != null){ _local5 = ROAD; }; }; _local6 = _arg1.offset.y; _local7 = _arg1.limit.y; while (_local6 < _local7) { var _temp1 = _local6; _local6 = (_local6 + 1); _local8 = _temp1; _local9 = _arg1.offset.x; _local10 = _arg1.limit.x; while (_local9 < _local10) { var _temp2 = _local9; _local9 = (_local9 + 1); _local11 = _temp2; _local12 = new Point(_local11, _local8); _local13 = Tile.NO_TILE; if (Point.isEqual(_local12, this.building.getEntrance())){ _local13 = ((BuildingFringe.start + colors[_arg4]) + edge[_arg2][ENTRANCE]); } else { _local13 = ((BuildingFringe.start + colors[_arg4]) + edge[_arg2][_local5]); }; Util.addTile(_local12, _local13); if (_local5 != FRINGE){ Util.addRoofOverlay(_local12, Tile.edgeRoof[_arg2]); }; }; }; } override protected function placeMiddle(_arg1:Section, _arg2:int):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; _local3 = ((BuildingFringe.start + colors[_arg2]) + center); Util.fillAddTile(_arg1, _local3); _local4 = _arg1.offset.y; _local5 = _arg1.limit.y; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; _local7 = _arg1.offset.x; _local8 = _arg1.limit.x; while (_local7 < _local8) { var _temp2 = _local7; _local7 = (_local7 + 1); _local9 = _temp2; Util.addRoofOverlay(new Point(_local9, _local6), Tile.centerRoof); }; }; } } }//package mapgen
Section 71
//BuildingGeneric (mapgen.BuildingGeneric) package mapgen { import flash.*; public class BuildingGeneric extends BuildingRoot { public function BuildingGeneric(_arg1:Building=null):void{ if (!Boot.skip_constructor){ super(_arg1); }; } override public function place(_arg1:Section):void{ var _local2:Array; var _local3:int; _local2 = [new BuildingFringe(this.building), new BuildingPlant(this.building)]; _local3 = Util.rand(_local2.length); _local2[_local3].place(_arg1); } } }//package mapgen
Section 72
//BuildingHardware (mapgen.BuildingHardware) package mapgen { import flash.*; public class BuildingHardware extends BuildingRoot { protected var orientation:int; protected static var signCorners:Array = [[876, 877], [878, 879], [839, 859], [838, 858]]; protected static var lumberEdges:Array = [[699, 739], [719, 759], [612, 749], [632, 806]]; protected static var corners:Array = [[752, 758, 755, 698], [750, 756, 753, 696], [792, 798, 795, 738], [790, 796, 793, 736]]; protected static var entrance:Array = [779, 799, 819, 818]; protected static var LUMBER:int = 4; protected static var lumberCorners:Array = [659, 658, 679, 678]; protected static var edges:Array = [[751, 757, 754, 697], [791, 797, 794, 737], [772, 778, 775, 718], [770, 776, 773, 716]]; protected static var signMiddle:Array = [[851, 852, 853], [873, 874, 875], [815, 835, 855], [814, 834, 854]]; protected static var centers:Array = [0x0303, 777, 774, 717]; public function BuildingHardware(_arg1:Building=null):void{ if (!Boot.skip_constructor){ super(_arg1); this.orientation = 0; }; } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ var _local6:Direction; var _local7:Direction; var _local8:Direction; var _local9:Direction; var _local10:int; Util.addTile(_arg1, corners[_arg2][this.orientation]); _local6 = PlaceRoot.cornerToVert(_arg2); _local7 = PlaceRoot.cornerToHoriz(_arg2); _local8 = this.building.getEntranceDir(); _local9 = null; if (_local6 == _local8){ _local9 = _local7; } else { if (_local7 == _local8){ _local9 = _local6; }; }; if (_local9 != null){ _local10 = -1; if ((((_local9 == Direction.NORTH)) || ((_local9 == Direction.WEST)))){ _local10 = signCorners[Lib.directionToIndex(_local8)][0]; } else { _local10 = signCorners[Lib.directionToIndex(_local8)][1]; }; Util.addTile(_arg1, _local10); }; } override protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ Util.fillAddTile(_arg1, edges[_arg2][this.orientation]); if (Lib.indexToDirection(_arg2) == this.building.getEntranceDir()){ Util.addTile(this.building.getEntrance(), entrance[_arg2]); Util.fillAddTile(_arg1, signMiddle[_arg2][Util.rand(3)]); }; } override public function place(_arg1:Section):void{ var _local2:Direction; var _local3:Section; var _local4:Direction; var _local5:Section; super.setupMap(_arg1); _local2 = this.building.getEntranceDir(); this.orientation = Lib.directionToIndex(_local2); _local3 = _arg1.slice(_local2, 3); this.setupTiles(_local3); _local4 = Util.opposite(_local2); _local5 = _arg1.slice(_local4, (_arg1.dirSize(_local4) - 3)); while (_local5.dirSize(_local4) > 0) { _local5 = this.placeLumber(_local5, _local4); }; } protected function placeLumber(_arg1:Section, _arg2:Direction):Section{ var _local3:Section; var _local4:Section; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; _local3 = _arg1.slice(Util.opposite(_arg2), (_arg1.dirSize(_arg2) - 1)); _local4 = _arg1.slice(_arg2, 1); _local5 = Lib.directionToIndex(_arg2); _local6 = _local4.offset.y; _local7 = _local4.limit.y; while (_local6 < _local7) { var _temp1 = _local6; _local6 = (_local6 + 1); _local8 = _temp1; _local9 = _local4.offset.x; _local10 = _local4.limit.x; while (_local9 < _local10) { var _temp2 = _local9; _local9 = (_local9 + 1); _local11 = _temp2; _local12 = Util.rand(2); Util.addTile(new Point(_local11, _local8), lumberEdges[_local5][_local12]); }; }; Util.addTile(_local4.offset, lumberCorners[PlaceRoot.lessCorner(_arg2)]); Util.addTile(new Point((_local4.limit.x - 1), (_local4.limit.y - 1)), lumberCorners[PlaceRoot.greaterCorner(_arg2)]); return (_local3); } override protected function placeMiddle(_arg1:Section, _arg2:int):void{ Util.fillAddTile(_arg1, centers[this.orientation]); } } }//package mapgen
Section 73
//BuildingHospital (mapgen.BuildingHospital) package mapgen { import flash.*; public class BuildingHospital extends BuildingRoot { protected static var ROAD_BOTH:int = 1; protected static var ROAD_NONE_EDGE:int = 0; protected static var BEFORE_ENTRANCE:int = 1; protected static var ROAD_BOTH_VERT:int = 0; protected static var center:int = 243; protected static var edges:Array = [[[226, 223], [283, 283], [284, 284], [285, 285]], [[266, 263], [303, 303], [304, 304], [305, 305]], [[247, 244], [241, 241], [261, 261], [281, 281]], [[245, 242], [240, 240], [260, 260], [280, 280]]]; protected static var overlay:int = 228; protected static var AFTER_ENTRANCE:int = 3; protected static var ROAD_BOTH_EDGE:int = 1; protected static var ROAD_BOTH_HORIZ:int = 1; protected static var ROAD_VERT:int = 2; protected static var BUILDING:int = 0; protected static var ENTRANCE:int = 2; protected static var ROAD_NONE:int = 0; protected static var ROAD_HORIZ:int = 3; protected static var corners:Array = [[[227, 224, 286, 221], [-1, 252, -1, 292], [-1, -1, -1, -1], [288, -1, 290, -1]], [[225, 222, 282, 220], [287, 251, 289, 291], [-1, -1, -1, -1], [-1, -1, -1, -1]], [[267, 264, 306, 301], [-1, -1, -1, -1], [-1, -1, -1, -1], [308, 272, 310, 312]], [[265, 262, 302, 300], [307, -1, 309, -1], [-1, -1, -1, -1], [-1, 271, -1, 311]]]; public function BuildingHospital(_arg1:Building=null):void{ if (!Boot.skip_constructor){ super(_arg1); }; } protected function getNextEdgeType(_arg1:Point, _arg2:int):int{ var _local3:int; _local3 = BUILDING; if (_arg2 == BEFORE_ENTRANCE){ _local3 = ENTRANCE; } else { if (_arg2 == ENTRANCE){ _local3 = AFTER_ENTRANCE; } else { if ((((_arg2 == BUILDING)) && (Point.isAdjacent(_arg1, this.building.getEntrance())))){ _local3 = BEFORE_ENTRANCE; }; }; }; return (_local3); } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ var _local6:int; var _local7:int; _local6 = ROAD_NONE; if (((!((_arg3 == null))) && (!((_arg4 == null))))){ _local6 = ROAD_BOTH; } else { if (_arg3 != null){ _local6 = ROAD_VERT; } else { if (_arg4 != null){ _local6 = ROAD_HORIZ; }; }; }; _local7 = BUILDING; if (Point.isVerticallyAdjacent(_arg1, this.building.getEntrance())){ if (_local6 == ROAD_BOTH){ _local6 = ROAD_BOTH_HORIZ; } else { _local6 = ROAD_HORIZ; }; if ((((_arg2 == PlaceRoot.NORTHWEST)) || ((_arg2 == PlaceRoot.NORTHEAST)))){ _local7 = BEFORE_ENTRANCE; } else { _local7 = AFTER_ENTRANCE; }; } else { if (Point.isHorizontallyAdjacent(_arg1, this.building.getEntrance())){ if (_local6 == ROAD_BOTH){ _local6 = ROAD_BOTH_VERT; } else { _local6 = ROAD_VERT; }; if ((((_arg2 == PlaceRoot.NORTHWEST)) || ((_arg2 == PlaceRoot.SOUTHWEST)))){ _local7 = BEFORE_ENTRANCE; } else { _local7 = AFTER_ENTRANCE; }; }; }; Util.addTile(_arg1, corners[_arg2][_local7][_local6]); } override protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:Point; _local5 = ROAD_NONE_EDGE; _local6 = BUILDING; if (Point.isEqual(_arg1.offset, this.building.getEntrance())){ _local6 = BEFORE_ENTRANCE; }; if (_arg3 != null){ _local5 = ROAD_BOTH_EDGE; }; _local7 = _arg1.offset.y; _local8 = _arg1.limit.y; while (_local7 < _local8) { var _temp1 = _local7; _local7 = (_local7 + 1); _local9 = _temp1; _local10 = _arg1.offset.x; _local11 = _arg1.limit.x; while (_local10 < _local11) { var _temp2 = _local10; _local10 = (_local10 + 1); _local12 = _temp2; _local13 = new Point(_local12, _local9); _local6 = this.getNextEdgeType(_local13, _local6); Util.addTile(_local13, edges[_arg2][_local6][_local5]); }; }; } override protected function placeOverlay(_arg1:Point):void{ var _local2:Point; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; _local2 = new Point((_arg1.x - 1), (_arg1.y - 1)); _local3 = 0; while (_local3 < 3) { var _temp1 = _local3; _local3 = (_local3 + 1); _local4 = _temp1; _local5 = 0; while (_local5 < 3) { var _temp2 = _local5; _local5 = (_local5 + 1); _local6 = _temp2; _local7 = ((BuildingHospital.overlay + (_local4 * Tile.X_COUNT)) + _local6); Util.addTile(new Point((_local2.x + _local6), (_local2.y + _local4)), _local7); }; }; } override protected function placeMiddle(_arg1:Section, _arg2:int):void{ Util.fillAddTile(_arg1, center); } } }//package mapgen
Section 74
//BuildingHouse (mapgen.BuildingHouse) package mapgen { import flash.*; public class BuildingHouse extends BuildingRoot { protected static var colors:Array = [600, 604]; protected static var corner:Array = [[1, 3, 41, 43], [0, 2, 40, 42], [21, 23, 61, 63], [20, 22, 60, 62]]; public function BuildingHouse(_arg1:Building=null):void{ if (!Boot.skip_constructor){ super(_arg1); }; } override protected function getColorCount():int{ return (colors.length); } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ var _local6:int; _local6 = Lib.directionToIndex(this.building.getEntranceDir()); Util.addTile(_arg1, (corner[_arg2][_local6] + colors[_arg5])); } } }//package mapgen
Section 75
//BuildingMall (mapgen.BuildingMall) package mapgen { import flash.*; public class BuildingMall extends BuildingRoot { protected var center:Point; protected static var BEGIN:int = 1; protected static var centerTiles:Array = [[761, 762, 763, 764, 761], [781, 782, 783, 784, 781], [801, 802, 803, 804, 801], [821, 822, 823, 824, 821], [761, 762, 763, 764, 761]]; protected static var MIDDLE:int = 2; protected static var END:int = 3; protected static var AFTER:int = 4; protected static var edges:Array = [[741, 742, 743, 744, 741], [841, 842, 843, 844, 841], [765, 785, 805, 825, 765], [760, 780, 800, 820, 760]]; protected static var corners:Array = [745, 740, 845, 840]; protected static var BEFORE:int = 0; public function BuildingMall(_arg1:Building=null, _arg2:Section=null):void{ var _local3:Point; var _local4:Point; var _local5:Point; var _local6:int; var _local7:int; if (!Boot.skip_constructor){ super(_arg1); this.center = new Point(0, 0); _local3 = _arg2.offset; _local4 = _arg2.limit; _local5 = _arg1.getEntrance(); if ((((_local5.x > _local3.x)) && ((_local5.x < (_local4.x - 1))))){ this.center.x = _local5.x; } else { _local6 = ((_local4.x - _local3.x) - 4); this.center.x = ((Util.rand(_local6) + _local3.x) + 2); }; if ((((_local5.y > _local3.y)) && ((_local5.y < (_local4.y - 1))))){ this.center.y = _local5.y; } else { _local7 = ((_local4.y - _local3.y) - 4); this.center.y = ((Util.rand(_local7) + _local3.y) + 2); }; }; } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ Util.addTile(_arg1, corners[_arg2]); } override protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; _local5 = _arg1.offset.y; _local6 = _arg1.limit.y; while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local7 = _temp1; _local8 = _arg1.offset.x; _local9 = _arg1.limit.x; while (_local8 < _local9) { var _temp2 = _local8; _local8 = (_local8 + 1); _local10 = _temp2; _local11 = 0; if ((((_arg2 == PlaceRoot.NORTH)) || ((_arg2 == PlaceRoot.SOUTH)))){ _local11 = this.findIndex(_local10, this.center.x); } else { _local11 = this.findIndex(_local7, this.center.y); }; Util.addTile(new Point(_local10, _local7), edges[_arg2][_local11]); }; }; } protected function findIndex(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; _local3 = BEFORE; _local4 = (_arg1 - _arg2); if (_local4 < -1){ _local3 = BEFORE; } else { if (_local4 == -1){ _local3 = BEGIN; } else { if (_local4 == 0){ _local3 = MIDDLE; } else { if (_local4 == 1){ _local3 = END; } else { _local3 = AFTER; }; }; }; }; return (_local3); } override protected function placeMiddle(_arg1:Section, _arg2:int):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; _local3 = _arg1.offset.y; _local4 = _arg1.limit.y; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = _arg1.offset.x; _local7 = _arg1.limit.x; while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local8 = _temp2; _local9 = this.findIndex(_local8, this.center.x); _local10 = this.findIndex(_local5, this.center.y); Util.addTile(new Point(_local8, _local5), centerTiles[_local10][_local9]); }; }; } } }//package mapgen
Section 76
//BuildingPlant (mapgen.BuildingPlant) package mapgen { import flash.*; public class BuildingPlant extends BuildingRoot { protected var ignoreStreets:Boolean; protected static var edgeWeights:Array = [1, 0, 1, 1, 0, 0, 6]; protected static var END_SHRUB:int = 1; protected static var WIDE_ENTRANCE:int = 5; protected static var colors:Array = [0, 5, 10]; protected static var SIMPLE:int = 6; protected static var SINGLE_SHRUB:int = 3; protected static var BEGIN_SHRUB:int = 0; protected static var edges:Array = [[522, 523, 524, 562, 563, 564, 463], [542, 543, 544, 582, 583, 584, 503], [461, 481, 501, 521, 541, 561, 484], [460, 480, 500, 520, 540, 560, 482]]; protected static var center:int = 483; protected static var NARROW_ENTRANCE:int = 4; protected static var DOUBLE_SHRUB:int = 2; protected static var corners:Array = [464, 462, 504, 502]; public function BuildingPlant(_arg1:Building=null, _arg2=null):void{ if (!Boot.skip_constructor){ super(_arg1); this.ignoreStreets = false; if (_arg2 == true){ this.ignoreStreets = true; }; }; } override protected function getColorCount():int{ return (colors.length); } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ Util.addTile(_arg1, (corners[_arg2] + colors[_arg5])); Util.addRoofOverlay(_arg1, Tile.cornerRoof); } override protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:Point; var _local13:Boolean; var _local14:int; _local5 = SIMPLE; _local6 = _arg1.offset.y; _local7 = _arg1.limit.y; while (_local6 < _local7) { var _temp1 = _local6; _local6 = (_local6 + 1); _local8 = _temp1; _local9 = _arg1.offset.x; _local10 = _arg1.limit.x; while (_local9 < _local10) { var _temp2 = _local9; _local9 = (_local9 + 1); _local11 = _temp2; _local12 = new Point(_local11, _local8); _local13 = (((_local8 == (_arg1.limit.y - 1))) && ((_local11 == (_arg1.limit.x - 1)))); _local5 = this.findEdge(_local12, this.building.getEntrance(), _local5, _arg3, _local13); _local14 = (edges[_arg2][_local5] + colors[_arg4]); Util.addTile(_local12, _local14); if (_local5 == SIMPLE){ Util.addRoofOverlay(_local12, Tile.edgeRoof[_arg2]); }; }; }; } override protected function placeMiddle(_arg1:Section, _arg2:int):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; Util.fillAddTile(_arg1, (BuildingPlant.center + colors[_arg2])); _local3 = _arg1.offset.y; _local4 = _arg1.limit.y; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = _arg1.offset.x; _local7 = _arg1.limit.x; while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local8 = _temp2; Util.addRoofOverlay(new Point(_local8, _local5), Tile.centerRoof); }; }; } protected function findEdge(_arg1:Point, _arg2:Point, _arg3:int, _arg4:Street, _arg5:Boolean):int{ var _local6:int; _local6 = SIMPLE; if (Point.isEqual(_arg1, _arg2)){ _local6 = (BuildingPlant.NARROW_ENTRANCE + Util.rand(2)); } else { if (_arg3 == BEGIN_SHRUB){ _local6 = END_SHRUB; } else { if ((((_arg3 == NARROW_ENTRANCE)) || ((((_arg3 == WIDE_ENTRANCE)) && (((!((_arg4 == null))) || (this.ignoreStreets))))))){ _local6 = Util.randWeightedIndex(edgeWeights); if (_local6 != BEGIN_SHRUB){ _local6 = SIMPLE; }; } else { if (Point.isAdjacent(_arg1, _arg2)){ _local6 = SIMPLE; } else { if ((((_arg3 == SIMPLE)) && (((!((_arg4 == null))) || (this.ignoreStreets))))){ _local6 = Util.randWeightedIndex(edgeWeights); } else { _local6 = SIMPLE; }; }; }; }; }; if (((_arg5) && ((_local6 == BEGIN_SHRUB)))){ _local6 = SIMPLE; }; return (_local6); } } }//package mapgen
Section 77
//BuildingPolice (mapgen.BuildingPolice) package mapgen { import flash.*; public class BuildingPolice extends BuildingRoot { protected var baseDir:Direction; protected var currentLevel:int; protected var placeRubble:Boolean; protected var legDir:Direction; protected var currentEndings:Array; protected static var FLOOR_1:int = 1; protected static var centers:Array = [-1, 890, 991]; protected static var GROUND:int = 0; protected static var edges:Array = [[[-1, -1, -1], [870, 890, 890], [1014, 971, 991]], [[-1, -1, -1], [910, 890, 890], [974, 1011, 991]], [[-1, -1, -1], [891, 890, 890], [993, 992, 991]], [[-1, -1, -1], [889, 890, 890], [995, 990, 991]]]; protected static var walkTile:int = 872; protected static var helipad:Array = [[967, 968], [987, 988]]; protected static var entrances:Array = [[-1, -1, 952, 953], [-1, -1, 932, 933], [952, 932, -1, -1], [953, 933, -1, -1]]; protected static var corners:Array = [[[[-1, -1, -1], [-1, -1, -1], [-1, -1, -1]], [[871, 870, 870], [891, 950, 950], [891, 950, 950]], [[935, 893, 1014], [895, 897, 958], [993, 918, 1013]]], [[[-1, -1, -1], [-1, -1, -1], [-1, -1, -1]], [[869, 870, 870], [889, 951, 951], [889, 951, 951]], [[934, 892, 1014], [894, 896, 959], [995, 919, 1015]]], [[[-1, -1, -1], [-1, -1, -1], [-1, -1, -1]], [[911, 910, 910], [891, 930, 930], [891, 930, 930]], [[955, 913, 974], [915, 917, 938], [993, 898, 973]]], [[[-1, -1, -1], [-1, -1, -1], [-1, -1, -1]], [[909, 910, 910], [889, 931, 931], [889, 931, 931]], [[954, 912, 974], [914, 916, 939], [995, 899, 975]]]]; protected static var FLOOR_2:int = 2; public function BuildingPolice(_arg1:Building=null, _arg2=null, _arg3:Direction=null, _arg4:Direction=null):void{ if (!Boot.skip_constructor){ super(_arg1); this.placeRubble = true; if (_arg2 == false){ this.placeRubble = false; }; this.baseDir = _arg3; this.legDir = _arg4; }; } override protected function placeMiddle(_arg1:Section, _arg2:int):void{ Util.fillAddTile(_arg1, centers[this.currentLevel]); } protected function placePolice(_arg1:Section, _arg2:Section, _arg3:Section):void{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:Array; _local4 = Lib.directionToIndex(Util.opposite(this.legDir)); _local5 = Lib.directionToIndex(Util.opposite(this.baseDir)); _local6 = Util.rand((_arg2.dirSize(this.baseDir) + 1)); _local7 = Util.rand((_arg3.dirSize(this.legDir) + 1)); _local8 = this.placeLeg(_arg3, _local7, this.legDir); _local9 = this.placeLeg(_arg2, _local6, this.baseDir); _local10 = [GROUND, GROUND, GROUND, GROUND]; _local10[_local4] = _local8; _local10[_local5] = _local9; this.placePoliceSection(_arg1, FLOOR_2, _local10); this.placeHelipad(_arg1); } protected function placeLeg(_arg1:Section, _arg2:int, _arg3:Direction):int{ var _local4:int; var _local5:int; var _local6:Section; var _local7:Section; var _local8:int; var _local9:int; var _local10:Array; var _local11:Array; _local4 = Lib.directionToIndex(_arg3); _local5 = Lib.directionToIndex(Util.opposite(_arg3)); _local6 = _arg1.slice(_arg3, _arg2); _local7 = _arg1.remainder(_arg3, _arg2); _local8 = GROUND; if (_arg2 < _arg1.dirSize(_arg3)){ _local8 = FLOOR_1; _local10 = [GROUND, GROUND, GROUND, GROUND]; _local10[_local4] = FLOOR_2; this.placePoliceSection(_local7, _local8, _local10); }; if (_arg2 > 0){ _local11 = [GROUND, GROUND, GROUND, GROUND]; _local11[_local4] = FLOOR_2; _local11[_local5] = _local8; this.placePoliceSection(_local6, FLOOR_2, _local11); }; _local9 = FLOOR_2; if (_arg2 == 0){ _local9 = FLOOR_1; }; return (_local9); } override public function place(_arg1:Section):void{ this.setDirections(_arg1); this.divideAndPlace(_arg1); this.building.attach(); } protected function divideAndPlace(_arg1:Section):void{ var _local2:int; var _local3:Section; var _local4:Section; var _local5:Section; var _local6:Section; var _local7:Direction; var _local8:Direction; _local2 = 2; _local3 = _arg1.slice(this.baseDir, _local2); _local4 = _arg1.remainder(this.baseDir, _local2); _local5 = _local3.slice(this.legDir, _local2); _local3 = _local3.remainder(this.legDir, _local2); _local6 = _local4.slice(this.legDir, _local2); _local4 = _local4.remainder(this.legDir, _local2); this.placePolice(_local5, _local6, _local3); _local7 = this.baseDir; _local8 = this.legDir; if (_local4.dirSize(this.legDir) > _local4.dirSize(this.baseDir)){ _local7 = this.legDir; _local8 = this.baseDir; }; this.placeOutside(_local4, _local7, _local8); } protected function placeHelipad(_arg1:Section):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; _local2 = 0; while (_local2 < 2) { var _temp1 = _local2; _local2 = (_local2 + 1); _local3 = _temp1; _local4 = 0; while (_local4 < 2) { var _temp2 = _local4; _local4 = (_local4 + 1); _local5 = _temp2; Util.addTile(new Point((_arg1.offset.x + _local5), (_arg1.offset.y + _local3)), helipad[_local3][_local5]); }; }; } protected function placeEntrance(_arg1:Section):void{ var _local2:int; var _local3:int; _local2 = Lib.directionToIndex(this.baseDir); _local3 = Lib.directionToIndex(this.legDir); Util.fillAddTile(_arg1, entrances[_local2][_local3]); Util.fillBackground(_arg1, BackgroundType.ENTRANCE); Util.fillUnblocked(_arg1); this.building.addLot(_arg1); this.building.setEntrance(_arg1.offset, Util.opposite(this.baseDir)); } protected function placeOutside(_arg1:Section, _arg2:Direction, _arg3:Direction):void{ var _local4:Section; var _local5:Section; var _local6:Section; _local4 = _arg1.slice(_arg2, 1); _local5 = _arg1.remainder(_arg2, 1); _local6 = _local4.slice(_arg3, 1); _local4 = _local4.remainder(_arg3, 1); this.placeWalk(_local4); this.placeParking(_local5); this.placeEntrance(_local6); } protected function placePoliceSection(_arg1:Section, _arg2:int, _arg3:Array):void{ var _local4:Direction; var _local5:int; this.currentEndings = _arg3; this.currentLevel = _arg2; this.setupMap(_arg1); if ((((_arg1.dirSize(this.baseDir) > 1)) && ((_arg1.dirSize(this.legDir) > 1)))){ this.setupTiles(_arg1); } else { _local4 = this.legDir; if (_arg1.dirSize(this.baseDir) == 1){ _local4 = this.baseDir; }; if (this.getEnd(_local4) != GROUND){ _local4 = Util.opposite(_local4); }; _local5 = PlaceRoot.lessCorner(_local4); this.placeCorner(_arg1.corner(_local5), _local5, null, null, 0); _local5 = PlaceRoot.greaterCorner(_local4); this.placeCorner(_arg1.corner(_local5), _local5, null, null, 0); this.placeEdge(_arg1.edge(_local4), Lib.directionToIndex(_local4), null, 0); }; this.building.addLot(_arg1); } override protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ var _local5:int; _local5 = this.currentEndings[_arg2]; Util.fillAddTile(_arg1, edges[_arg2][this.currentLevel][_local5]); } protected function getEnd(_arg1:Direction):int{ return (this.currentEndings[Lib.directionToIndex(_arg1)]); } protected function setDirections(_arg1:Section):void{ var _local2:Array; var _local3:int; var _local4:Array; var _local5:Direction; if ((((this.baseDir == null)) || ((this.legDir == null)))){ _local2 = []; _local3 = 0; _local4 = Lib.directions; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; if (_arg1.getStreet(_local5) != null){ _local2.push(_local5); }; }; if (_local2.length == 0){ _local2 = Lib.directions.copy(); }; this.baseDir = Util.opposite(_local2[Util.rand(_local2.length)]); this.legDir = Lib.rotateCW(this.baseDir); if (Util.rand(2) == 0){ this.legDir = Lib.rotateCCW(this.baseDir); }; }; } protected function placeWalk(_arg1:Section):void{ Util.fillAddTile(_arg1, walkTile); Util.fillBackground(_arg1, BackgroundType.STREET); Util.fillUnblocked(_arg1); } protected function placeParking(_arg1:Section):void{ var _local2:Building; if ((((_arg1.dirSize(this.baseDir) > 1)) && ((_arg1.dirSize(this.legDir) > 1)))){ _local2 = Util.createBuilding(_arg1, Util.PARKING_LOT); Util.drawBuilding(_arg1, _local2, this.placeRubble); } else { this.placeWalk(_arg1); }; } override protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ var _local6:Direction; var _local7:int; var _local8:Direction; var _local9:int; var _local10:int; _local6 = PlaceRoot.cornerToVert(_arg2); _local7 = this.getEnd(_local6); _local8 = PlaceRoot.cornerToHoriz(_arg2); _local9 = this.getEnd(_local8); _local10 = corners[_arg2][this.currentLevel][_local7][_local9]; Util.addTile(_arg1, _local10); } } }//package mapgen
Section 78
//BuildingRoot (mapgen.BuildingRoot) package mapgen { import flash.*; public class BuildingRoot extends PlaceRoot { protected var building:Building; public function BuildingRoot(_arg1:Building=null):void{ if (!Boot.skip_constructor){ this.building = _arg1; }; } protected function getColorCount():int{ return (1); } protected function placeCorner(_arg1:Point, _arg2:int, _arg3:Street, _arg4:Street, _arg5:int):void{ } protected function placeEdge(_arg1:Section, _arg2:int, _arg3:Street, _arg4:int):void{ } public function place(_arg1:Section):void{ this.setupMap(_arg1); this.setupTiles(_arg1); } protected function setupTiles(_arg1:Section):void{ var _local2:int; var _local3:Direction; var _local4:Direction; var _local5:Direction; var _local6:Direction; _local2 = Util.rand(this.getColorCount()); this.placeCorner(_arg1.northwest(), PlaceRoot.NORTHWEST, _arg1.north, _arg1.west, _local2); this.placeCorner(_arg1.northeast(), PlaceRoot.NORTHEAST, _arg1.north, _arg1.east, _local2); this.placeCorner(_arg1.southwest(), PlaceRoot.SOUTHWEST, _arg1.south, _arg1.west, _local2); this.placeCorner(_arg1.southeast(), PlaceRoot.SOUTHEAST, _arg1.south, _arg1.east, _local2); _local3 = Direction.NORTH; _local4 = Direction.SOUTH; _local5 = Direction.EAST; _local6 = Direction.WEST; this.placeEdge(_arg1.edge(_local3), PlaceRoot.NORTH, _arg1.north, _local2); this.placeEdge(_arg1.edge(_local4), PlaceRoot.SOUTH, _arg1.south, _local2); this.placeEdge(_arg1.edge(_local5), PlaceRoot.EAST, _arg1.east, _local2); this.placeEdge(_arg1.edge(_local6), PlaceRoot.WEST, _arg1.west, _local2); this.placeMiddle(_arg1.center(), _local2); this.placeOverlay(_arg1.centerPoint()); } protected function placeOverlay(_arg1:Point):void{ } protected function placeMiddle(_arg1:Section, _arg2:int):void{ } protected function setupMap(_arg1:Section):void{ var _local2:Point; Util.fillBackground(_arg1, BackgroundType.BUILDING); Util.fillBlocked(_arg1); _local2 = this.building.getEntrance(); if (_local2 != null){ Util.setBackground(_local2, BackgroundType.ENTRANCE); Util.changeBlocked(_local2, false); }; } } }//package mapgen
Section 79
//CrossStreet (mapgen.CrossStreet) package mapgen { public class CrossStreet extends enum { public static const __isenum:Boolean = true; public static var ROAD:CrossStreet = new CrossStreet("ROAD", 4); ; public static var END_PARKING_ENTRANCE:CrossStreet = new CrossStreet("END_PARKING_ENTRANCE", 1); ; public static var BEGIN_PARKING_ENTRANCE:CrossStreet = new CrossStreet("BEGIN_PARKING_ENTRANCE", 0); ; public static var ALLEY:CrossStreet = new CrossStreet("ALLEY", 3); ; public static var NONE:CrossStreet = new CrossStreet("NONE", 5); ; public static var __constructs__:Array = ["BEGIN_PARKING_ENTRANCE", "END_PARKING_ENTRANCE", "PARKING_ENTRANCE", "ALLEY", "ROAD", "NONE"]; public static var PARKING_ENTRANCE:CrossStreet = new CrossStreet("PARKING_ENTRANCE", 2); ; public function CrossStreet(_arg1:String, _arg2:int, _arg3:Array=null):void{ this.tag = _arg1; this.index = _arg2; this.params = _arg3; } } }//package mapgen
Section 80
//Division (mapgen.Division) package mapgen { import logic.*; import flash.*; public class Division { protected var middle:Street; protected var left:Section; protected var minBuildingSize:int; protected var right:Section; public function Division(_arg1:int=0):void{ if (!Boot.skip_constructor){ this.left = null; this.right = null; this.middle = null; this.minBuildingSize = _arg1; }; } public function getRight():Section{ return (this.right); } public function getBottom():Section{ return (this.right); } public function getMiddle():Street{ return (this.middle); } protected function randSplit(_arg1:int, _arg2:int, _arg3:int):int{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; _local4 = (((_arg2 - _arg1) - (2 * this.minBuildingSize)) - _arg3); _local5 = 0; if (Game.settings.getEasterEgg() == GameSettings.SALTLAKECITY){ _local5 = Math.floor((_local4 / 2)); } else { _local6 = Math.floor((_local4 / _arg3)); _local7 = ((_local4 % _arg3) + _arg3); _local8 = 0; while (_local8 < _arg3) { var _temp1 = _local8; _local8 = (_local8 + 1); _local9 = _temp1; _local5 = (_local5 + Util.rand(_local6)); }; _local5 = (_local5 + Util.rand(_local7)); }; return (((_local5 + _arg1) + this.minBuildingSize)); } public function split(_arg1:Section, _arg2:int):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; this.left = null; this.right = null; this.middle = null; _local3 = (_arg2 + (this.minBuildingSize * 2)); _local4 = (_arg1.limit.x - _arg1.offset.x); _local5 = (_arg1.limit.y - _arg1.offset.y); if ((((((_local4 <= _local5)) && ((_local5 >= _local3)))) && (((((!((_arg1.west == null))) || (!((_arg1.east == null))))) || (((!((_arg1.north == null))) && (!((_arg1.south == null))))))))){ this.left = _arg1.clone(); this.right = _arg1.clone(); _local6 = this.randSplit(_arg1.offset.y, _arg1.limit.y, _arg2); if (_arg2 > 0){ this.middle = new Street(new Point(_arg1.offset.x, _local6), _arg2, (_arg1.limit.x - _arg1.offset.x), false, _arg1.west, _arg1.east); }; this.left.limit.y = _local6; this.left.south = this.middle; this.right.offset.y = (_local6 + _arg2); this.right.north = this.middle; } else { if ((((_local4 >= _local3)) && (((((!((_arg1.north == null))) || (!((_arg1.south == null))))) || (((!((_arg1.east == null))) && (!((_arg1.west == null))))))))){ this.left = _arg1.clone(); this.right = _arg1.clone(); _local7 = this.randSplit(_arg1.offset.x, _arg1.limit.x, _arg2); if (_arg2 > 0){ this.middle = new Street(new Point(_local7, _arg1.offset.y), _arg2, (_arg1.limit.y - _arg1.offset.y), true, _arg1.north, _arg1.south); }; this.left.limit.x = _local7; this.left.east = this.middle; this.right.offset.x = (_local7 + _arg2); this.right.west = this.middle; }; }; } public function getLeft():Section{ return (this.left); } public function getTop():Section{ return (this.left); } } }//package mapgen
Section 81
//EditBox (mapgen.EditBox) package mapgen { import logic.*; import ui.*; import flash.utils.*; import action.*; import feature.*; import flash.*; public class EditBox { protected var primary:Direction; protected var street:Street; protected var zombies:int; protected var bridge:Bridge; protected var resources:Array; protected var isBroken:Boolean; protected var building:Building; protected var entrance:Point; protected var isSpawnPoint:Boolean; protected var type:EditType; protected var lot:Section; protected var isBridge:Boolean; protected var color:int; protected var isBreakable:Boolean; protected var hasTwoEnds:Boolean; protected var secondary:Direction; protected var dynamitePos:Point; public static var HOUSE:EditType = new EditType(38, 2, Text.editHouse); public static var STREET:EditType = new EditType(9, 1, Text.editStreet); public static var BRIDGE:EditType = new EditType(8, 3, Text.editBridge); public static var PARKING_LOT:EditType = new EditType(3, 2, Text.editParking); public static var STREET_H:EditType = new EditType(1, 1, Text.editStreetH); public static var FRINGE:EditType = new EditType(32, 3, Text.editFringe); public static var INTERSECTION:EditType = new EditType(11, 1, Text.editIntersection); public static var APARTMENT:EditType = new EditType(36, 5, Text.editApartment); public static var MALL:EditType = new EditType(39, 5, Text.editMall); public static var STREET_V:EditType = new EditType(2, 1, Text.editStreetV); public static var POLICE:EditType = new EditType(40, 3, Text.editPolice); public static var CHURCH:EditType = new EditType(37, 3, Text.editChurch); public static var UNKNOWN:EditType = new EditType(0, 1, Text.editUnknown); public static var PLAZA:EditType = new EditType(5, 1, Text.editPlaza); public static var BUILDING_END:int = POLICE.number; public static var HOSPITAL:EditType = new EditType(35, 3, Text.editHospital); public static var BUILDING_BEGIN:int = FRINGE.number; public static var PLANT:EditType = new EditType(33, 3, Text.editPlant); public static var CORNER:EditType = new EditType(10, 1, Text.editCorner); public static var DEEP_WATER:EditType = new EditType(7, 1, Text.editDeepWater); public static var HARDWARE:EditType = new EditType(34, 3, Text.editHardware); public static var PARK:EditType = new EditType(4, 1, Text.editPark); public static var SHALLOW_WATER:EditType = new EditType(6, 1, Text.editShallowWater); public static var typeList:Array = [UNKNOWN, STREET_H, STREET_V, INTERSECTION, CORNER, FRINGE, PLANT, HARDWARE, HOSPITAL, APARTMENT, CHURCH, HOUSE, MALL, POLICE, PARKING_LOT, PARK, PLAZA, SHALLOW_WATER, DEEP_WATER, BRIDGE]; public function EditBox(_arg1:Point=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ this.color = (0x808080 | Util.rand(16777216)); this.type = UNKNOWN; this.lot = new Section(_arg1, _arg2); this.building = null; this.bridge = null; this.dynamitePos = null; this.street = null; this.zombies = 0; this.resources = Lib.newResourceArray(); this.entrance = null; this.primary = Util.randDirection(); this.secondary = Lib.rotateCW(this.primary); this.isBroken = false; this.checkEntrance(); }; } public function addResources(_arg1:Resource, _arg2:int):void{ var _local3:int; var _local4:int; _local3 = Lib.resourceToIndex(_arg1); _local4 = (Lib.truckLoad(_arg1) * _arg2); this.resources[_local3] = (this.resources[_local3] + _local4); if (this.building != null){ this.building.getSalvage().addResource(_arg1, _local4); }; } public function getLimit():Point{ return (this.lot.limit); } public function removeResources(_arg1:Resource, _arg2:int):void{ var _local3:int; var _local4:int; _local3 = Lib.resourceToIndex(_arg1); _local4 = (Lib.truckLoad(_arg1) * _arg2); this.resources[_local3] = (this.resources[_local3] - _local4); if (this.resources[_local3] < 0){ this.resources[_local3] = 0; }; if (this.building != null){ this.building.getSalvage().addResource(_arg1, -(_local4)); }; } public function getOffset():Point{ return (this.lot.offset); } public function changeType(_arg1:EditType, _arg2=null):void{ var _local3:EditType; _local3 = this.type; this.type = _arg1; if (_arg2 != true){ this.show(); this.refreshStreets(); }; } public function isAlley():Boolean{ if (this.type == STREET_H){ return ((this.lot.dirSize(Direction.NORTH) == 1)); }; if (this.type == STREET_V){ return ((this.lot.dirSize(Direction.EAST) == 1)); }; return (false); } public function drawPixels():void{ if (!EditLoader.isLoading){ if (this.type == UNKNOWN){ Game.view.window.fillSolid(this.lot.offset.toPixel(), this.lot.limit.toPixel(), this.color); } else { Game.view.window.fillEdit(this.lot.offset, this.lot.limit); }; }; } public function remove():void{ Game.view.window.fillSolid(this.lot.offset.toPixel(), this.lot.limit.toPixel(), Color.editEmpty); this.free(); this.clear(); Game.editor.clickSquare(null); Game.editor.removeBoxFromList(this); Game.view.window.refresh(); this.refreshStreets(); } protected function addRefreshStreet(_arg1:int, _arg2:int, _arg3:List):void{ var _local4:Point; var _local5:EditBox; _local4 = new Point(_arg1, _arg2); if (((!(Lib.outsideMap(_local4))) && (!((Game.map.getCell(_arg1, _arg2).edit == null))))){ _local5 = Game.map.getCell(_arg1, _arg2).edit; _arg3.remove(_local5); _arg3.add(_local5); }; } public function saveMap(_arg1:ByteArray):void{ _arg1.writeByte(this.type.number); EditLoader.savePos(this.lot.offset.x, this.lot.offset.y, _arg1); EditLoader.savePos(this.lot.getSize().x, this.lot.getSize().y, _arg1); if (isBuilding(this.type)){ EditLoader.savePos(this.entrance.x, this.entrance.y, _arg1); _arg1.writeByte(this.zombies); EditLoader.saveResources(this.resources, _arg1); }; if (this.type == BRIDGE){ EditLoader.saveBool(this.isBroken, _arg1); }; EditLoader.saveDirections(this.type, this.primary, this.secondary, _arg1); } protected function doesIntersect(_arg1:EditType):Boolean{ var _local2:Boolean; _local2 = false; _local2 = ((_local2) || ((((this.type == STREET_H)) && ((_arg1 == STREET_V))))); _local2 = ((_local2) || ((((this.type == STREET_V)) && ((_arg1 == STREET_H))))); _local2 = ((_local2) || ((((((this.type == BRIDGE)) && ((_arg1 == STREET_H)))) && ((((this.primary == Direction.NORTH)) || ((this.primary == Direction.SOUTH))))))); _local2 = ((_local2) || ((((((this.type == BRIDGE)) && ((_arg1 == STREET_V)))) && ((((this.primary == Direction.EAST)) || ((this.primary == Direction.WEST))))))); return (_local2); } public function addZombies(_arg1:int):void{ this.zombies = (this.zombies + _arg1); if (this.building != null){ this.building.addZombies(_arg1); }; if (this.zombies < 0){ this.zombies = 0; }; } protected function getCrossStreet(_arg1:Point):CrossStreet{ var _local2:CrossStreet; _local2 = CrossStreet.NONE; if (this.type == STREET_V){ _local2 = CrossStreet.ROAD; if (this.lot.getSize().x == 1){ _local2 = CrossStreet.ALLEY; }; } else { if (this.type == STREET_H){ _local2 = CrossStreet.ROAD; if (this.lot.getSize().y == 1){ _local2 = CrossStreet.ALLEY; }; } else { if ((((this.type == BRIDGE)) && (this.lot.edge(this.primary).contains(_arg1)))){ _local2 = CrossStreet.ROAD; }; }; }; return (_local2); } public function getType():EditType{ return (this.type); } public function setEntrance(_arg1:Point, _arg2=null):void{ if (_arg1 != null){ this.entrance = _arg1.clone(); if (_arg2 != true){ this.show(); }; }; } public function resize(_arg1:Point, _arg2:Point):void{ Game.view.window.fillSolid(this.lot.offset.toPixel(), this.lot.limit.toPixel(), Color.editEmpty); this.free(); this.clear(); this.refreshStreets(); this.lot = new Section(_arg1, _arg2); this.checkEntrance(); this.bind(); this.show(); this.refreshStreets(); } public function bind():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local1 = this.lot.offset.y; _local2 = this.lot.limit.y; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = this.lot.offset.x; _local5 = this.lot.limit.x; while (_local4 < _local5) { var _temp2 = _local4; _local4 = (_local4 + 1); _local6 = _temp2; Game.map.getCell(_local6, _local3).edit = this; }; }; } protected function populateBuilding():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:Resource; if (this.zombies > 0){ this.building.addZombies(this.zombies); }; _local1 = 0; _local2 = Option.resourceCount; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = Lib.indexToResource(_local3); if (this.resources[_local3] > 0){ this.building.getSalvage().addResource(_local4, this.resources[_local3]); }; }; } public function reflect():void{ this.primary = Util.opposite(this.primary); this.show(); this.refreshStreets(); } public function showObstacles():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:MapCell; var _local8:*; var _local9:Array; var _local10:int; _local1 = this.lot.offset.y; _local2 = this.lot.limit.y; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = this.lot.offset.x; _local5 = this.lot.limit.x; while (_local4 < _local5) { var _temp2 = _local4; _local4 = (_local4 + 1); _local6 = _temp2; _local7 = Game.map.getCell(_local6, _local3); _local8 = _local7.getObstacle(); if (_local8 != null){ _local9 = Tile.obstacles[_local8]; _local10 = Util.rand(_local9.length); _local7.addTile(_local9[_local10]); _local7.setBlocked(); if (_local8 == Tile.OBSTACLE_LAKE){ _local7.setBackground(BackgroundType.WATER); }; }; }; }; } protected function setIntersections(_arg1:Street):void{ var _local2:int; var _local3:int; var _local4:Boolean; var _local5:Boolean; var _local6:int; var _local7:int; var _local8:int; var _local9:int; _local2 = 0; _local3 = _arg1.getLength(); while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local8 = _temp1; this.addIntersection(_local8, -1, _arg1.addLess); this.addIntersection(_local8, _arg1.getWidth(), _arg1.addGreater); }; _local4 = true; _local5 = true; _local6 = 0; _local7 = _arg1.getWidth(); while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local9 = _temp2; if (!this.isStreet(-1, _local9)){ _local4 = false; }; if (!this.isStreet(_arg1.getLength(), _local9)){ _local5 = false; }; }; if (_local4){ _arg1.setDrawLess(); }; if (_local5){ _arg1.setDrawGreater(); }; } public function toggleBroken():void{ this.isBroken = !(this.isBroken); this.show(); } protected function addIntersection(_arg1:int, _arg2:int, _arg3:Function):void{ var _local4:Point; var _local5:EditBox; var _local6:CrossStreet; _local4 = new Point((this.lot.offset.x + _arg2), (this.lot.offset.y + _arg1)); if (this.type == STREET_H){ _local4.x = (this.lot.offset.x + _arg1); _local4.y = (this.lot.offset.y + _arg2); }; if (((!(Lib.outsideMap(_local4))) && (!((Game.map.getCell(_local4.x, _local4.y).edit == null))))){ _local5 = Game.map.getCell(_local4.x, _local4.y).edit; if (_local5.doesIntersect(this.type)){ _local6 = _local5.getCrossStreet(_local4); _arg3(_local4, 1, _local6); }; }; } protected function clear():void{ Util.fillClearTiles(this.lot); Util.fillBlocked(this.lot); Util.fillBackground(this.lot, BackgroundType.STREET); if (this.building != null){ Game.map.getBuildings().remove(this.building); this.building.clearZombies(); this.building.detach(); this.building = null; }; if (this.bridge != null){ Game.progress.clearBridge(this.bridge); this.bridge = null; }; if (this.dynamitePos != null){ Game.actions.push(new RemoveFeature(this.dynamitePos)); this.dynamitePos = null; }; } protected function findBridgeLot(_arg1:Direction, _arg2:Direction):Section{ var _local3:Section; _local3 = this.lot.slice(this.primary, 8); _local3 = _local3.slice(this.secondary, 6); return (_local3); } protected function createBuilding(_arg1:int):void{ var _local2:Direction; this.building = new Building(_arg1); _local2 = Util.calculateDir(this.entrance, this.lot); if (_arg1 != Util.POLICE_STATION){ this.building.addLot(this.lot); this.building.setEntrance(this.entrance, _local2); }; if (_arg1 != Util.PARKING_LOT){ Game.map.addBuilding(this.building); if (_arg1 != Util.POLICE_STATION){ this.building.attach(); }; }; this.populateBuilding(); } protected function isStreet(_arg1:int, _arg2:int):Boolean{ var _local3:Boolean; var _local4:Point; var _local5:EditBox; _local3 = false; _local4 = new Point((this.lot.offset.x + _arg2), (this.lot.offset.y + _arg1)); if (this.type == STREET_H){ _local4.x = (this.lot.offset.x + _arg1); _local4.y = (this.lot.offset.y + _arg2); }; if (((!(Lib.outsideMap(_local4))) && (!((Game.map.getCell(_local4.x, _local4.y).edit == null))))){ _local5 = Game.map.getCell(_local4.x, _local4.y).edit; _local3 = (((((((this.type == STREET_H)) && ((_local5.type == STREET_V)))) || ((((this.type == STREET_V)) && ((_local5.type == STREET_H)))))) || ((_local5.type == INTERSECTION))); }; return (_local3); } public function setDirections(_arg1:Direction, _arg2:Direction):void{ this.primary = _arg1; this.secondary = _arg2; } public function canSetEntrance():Boolean{ return ((((((((this.type == FRINGE)) || ((this.type == PLANT)))) || ((this.type == HARDWARE)))) || ((this.type == HOSPITAL)))); } public function rotate():void{ this.primary = Lib.rotateCW(this.primary); this.secondary = Lib.rotateCW(this.secondary); this.show(); this.refreshStreets(); } protected function checkEntrance():void{ if (((!((this.entrance == null))) && (!(this.lot.contains(this.entrance))))){ this.entrance = null; }; if (this.entrance == null){ this.entrance = Util.chooseEntrance(this.lot, Lib.randDirection(), Util.STANDARD); }; } public function getZombies():int{ return (this.zombies); } public function free():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local1 = this.lot.offset.y; _local2 = this.lot.limit.y; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = this.lot.offset.x; _local5 = this.lot.limit.x; while (_local4 < _local5) { var _temp2 = _local4; _local4 = (_local4 + 1); _local6 = _temp2; Game.map.getCell(_local6, _local3).edit = null; }; }; } public function getResources(_arg1:Resource):int{ var _local2:int; _local2 = Lib.resourceToIndex(_arg1); return (this.resources[_local2]); } public function refreshStreets():void{ var _local1:List; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:*; var _local7:int; var _local8:int; var _local9:EditBox; _local1 = new List(); _local2 = (this.lot.offset.x - 1); _local3 = (this.lot.limit.x + 1); while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local7 = _temp1; this.addRefreshStreet(_local7, (this.lot.offset.y - 1), _local1); this.addRefreshStreet(_local7, this.lot.limit.y, _local1); }; _local4 = this.lot.offset.y; _local5 = this.lot.limit.y; while (_local4 < _local5) { var _temp2 = _local4; _local4 = (_local4 + 1); _local8 = _temp2; this.addRefreshStreet((this.lot.offset.x - 1), _local8, _local1); this.addRefreshStreet(this.lot.limit.x, _local8, _local1); }; _local6 = _local1.iterator(); while (_local6.hasNext()) { _local9 = _local6.next(); _local9.show(); }; } public function setBroken(_arg1:Boolean, _arg2=null):void{ this.isBroken = _arg1; if (_arg2 != true){ this.show(); }; } public function show():void{ var _local1:PlaceParkingLot; var _local2:Section; var _local3:Section; var _local4:List; var _local5:PlaceTerrain; var _local6:PlacePlaza; var _local7:PlaceTerrain; var _local8:PlaceTerrain; var _local9:PlaceBridge; var _local10:Section; var _local11:Dynamite; var _local12:PlaceIntersection; var _local13:PlaceStreetCorner; var _local14:BuildingFringe; var _local15:BuildingPlant; var _local16:BuildingHardware; var _local17:BuildingHospital; var _local18:BlockApartment; var _local19:BlockChurch; var _local20:BlockMall; var _local21:BuildingPolice; this.clear(); if (this.type == STREET_H){ this.street = new Street(this.lot.offset, (this.lot.limit.y - this.lot.offset.y), (this.lot.limit.x - this.lot.offset.x), false, null, null); this.setIntersections(this.street); this.street.draw(Game.map, false); } else { if (this.type == STREET_V){ this.street = new Street(this.lot.offset, (this.lot.limit.x - this.lot.offset.x), (this.lot.limit.y - this.lot.offset.y), true, null, null); this.setIntersections(this.street); this.street.draw(Game.map, false); } else { if (this.type == PARKING_LOT){ this.createBuilding(Util.PARKING_LOT); _local1 = new PlaceParkingLot(); _local2 = this.lot.edge(this.primary); _local3 = _local2.randSublot(new Point(1, 1)); _local4 = new List(); _local4.push(_local3.offset); _local1.place(this.lot, _local4, false); } else { if (this.type == PARK){ _local5 = new PlaceTerrain(); _local5.place(this.lot, PlaceTerrain.park); } else { if (this.type == PLAZA){ _local6 = new PlacePlaza(); _local6.place(this.lot); } else { if (this.type == SHALLOW_WATER){ _local7 = new PlaceTerrain(); _local7.place(this.lot, PlaceTerrain.shallowWater); } else { if (this.type == DEEP_WATER){ _local8 = new PlaceTerrain(); _local8.place(this.lot, PlaceTerrain.deepWater); } else { if (this.type == BRIDGE){ _local9 = new PlaceBridge(this.primary, this.isBroken); _local9.place(this.lot); this.bridge = new Bridge(this.primary, this.lot, this.isBroken); Game.progress.addBridge(this.bridge, this.isBroken); if (!this.isBroken){ _local10 = this.lot.extend(this.primary, 1); _local10 = _local10.slice(this.primary, 1); this.dynamitePos = _local10.centerPoint(); if (Lib.outsideMap(this.dynamitePos)){ this.dynamitePos = null; } else { _local11 = new Dynamite(this.dynamitePos, Option.dynamiteWork, this.bridge); }; }; } else { if (this.type == INTERSECTION){ _local12 = new PlaceIntersection(); _local12.place(this.lot); } else { if (this.type == CORNER){ _local13 = new PlaceStreetCorner(); _local13.place(this.lot, this.primary); } else { if (this.type == FRINGE){ this.createBuilding(Util.STANDARD); _local14 = new BuildingFringe(this.building); _local14.place(this.lot); } else { if (this.type == PLANT){ this.createBuilding(Util.STANDARD); _local15 = new BuildingPlant(this.building, true); _local15.place(this.lot); } else { if (this.type == HARDWARE){ this.createBuilding(Util.HARDWARE_STORE); _local16 = new BuildingHardware(this.building); _local16.place(this.lot); } else { if (this.type == HOSPITAL){ this.createBuilding(Util.HOSPITAL); _local17 = new BuildingHospital(this.building); _local17.place(this.lot); } else { if (this.type == APARTMENT){ _local18 = new BlockApartment(this.primary, this.secondary, Util.opposite(this.secondary), false); this.building = _local18.placeBuilding(this.lot); this.populateBuilding(); } else { if (this.type == CHURCH){ _local19 = new BlockChurch(false, this.primary); this.building = _local19.placeEditBox(this.lot); this.populateBuilding(); } else { if (this.type == HOUSE){ this.building = BlockHouses.placeEditBox(this.lot, this.primary, this.secondary); this.populateBuilding(); } else { if (this.type == MALL){ _local20 = new BlockMall(false, this.primary, this.secondary); this.building = _local20.placeBuilding(this.lot); this.populateBuilding(); } else { if (this.type == POLICE){ this.createBuilding(Util.POLICE_STATION); _local21 = new BuildingPolice(this.building, false, this.primary, this.secondary); _local21.place(this.lot); }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; this.showObstacles(); this.drawPixels(); if (!EditLoader.isLoading){ Game.sprites.recalculateFov(); }; } public static function hasDirection(_arg1:EditType):Boolean{ return ((((((((((((((((((_arg1 == BRIDGE)) || ((_arg1 == PARKING_LOT)))) || ((_arg1 == CHURCH)))) || ((_arg1 == HOUSE)))) || ((_arg1 == APARTMENT)))) || ((_arg1 == MALL)))) || ((_arg1 == POLICE)))) || ((_arg1 == STREET)))) || ((_arg1 == CORNER)))); } public static function intToType(_arg1:int):EditType{ var _local2:EditType; var _local3:int; var _local4:Array; var _local5:EditType; _local2 = null; _local3 = 0; _local4 = typeList; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; if (_arg1 == _local5.number){ _local2 = _local5; break; }; }; return (_local2); } public static function isBuilding(_arg1:EditType):Boolean{ return ((((_arg1.number >= BUILDING_BEGIN)) && ((_arg1.number <= BUILDING_END)))); } } }//package mapgen
Section 82
//EditChange (mapgen.EditChange) package mapgen { import ui.*; public class EditChange { public static function removeLevel(_arg1:Point):void{ var _local2:Tower; if (canRemoveLevel(_arg1)){ _local2 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); _local2.downgrade(); }; } public static function addLevel(_arg1:Point):void{ var _local2:Tower; if (canAddLevel(_arg1)){ _local2 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); _local2.upgradeLevel(); }; } public static function remove(_arg1:Point):void{ var _local2:MapCell; if (canRemove(_arg1)){ _local2 = Game.map.getCell(_arg1.x, _arg1.y); if (_local2.hasTower()){ _local2.destroyTower(); } else { if (_local2.hasRubble()){ _local2.clearRubble(); } else { if (_local2.hasObstacle()){ _local2.removeObstacle(); }; }; }; }; } public static function changeObstacle(_arg1:Point):void{ var _local2:MapCell; var _local3:*; var _local4:int; if (canChangeObstacle(_arg1)){ _local2 = Game.map.getCell(_arg1.x, _arg1.y); _local3 = _local2.getObstacle(); _local4 = ((_local3 + 1) % Tile.obstacles.length); _local2.removeObstacle(); _local2.addObstacle(_local4); }; } public static function addZombie(_arg1:Point, _arg2:int):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:MapCell; var _local7:Zombie; if (canAddZombie(_arg1)){ _local3 = Math.round(Math.abs(_arg2)); _local4 = 0; while (_local4 < _local3) { var _temp1 = _local4; _local4 = (_local4 + 1); _local5 = _temp1; if (_arg2 > 0){ Util.forcePlaceZombie(_arg1.x, _arg1.y); } else { _local6 = Game.map.getCell(_arg1.x, _arg1.y); _local7 = _local6.getZombie(); if (_local7 != null){ _local6.removeZombie(_local7); _local7.cleanup(); }; }; }; }; } public static function canCreateRubble(_arg1:Point):Boolean{ var _local2:MapCell; _local2 = Game.map.getCell(_arg1.x, _arg1.y); return (((((((!(_local2.isBlocked())) && (!(_local2.hasTower())))) && (!(_local2.hasRubble())))) && (!((_local2.getBackground() == BackgroundType.ENTRANCE))))); } public static function addResourceRubble(_arg1:Point, _arg2:Resource, _arg3:int, _arg4=null):void{ var _local5:MapCell; _local5 = Game.map.getCell(_arg1.x, _arg1.y); if (_local5.hasRubble()){ _local5.addRubble(_arg2, (_arg3 * Lib.truckLoad(_arg2)), _arg4); }; } public static function createTower(_arg1:Point, _arg2:int, _arg3=null, _arg4:Array=null, _arg5:Array=null):void{ var _local6:MapCell; var _local7:Tower; var _local8:int; var _local9:int; var _local10:int; var _local11:Resource; var _local12:int; var _local13:int; if (canCreateTower(_arg1, _arg2)){ _local6 = Game.map.getCell(_arg1.x, _arg1.y); _local6.createTower(_arg2); _local7 = _local6.getTower(); while (((((!((_arg3 == null))) && ((_local7.getLevel() < _arg3)))) && (_local7.canUpgrade()))) { _local7.upgradeLevel(); }; if (((!((_arg4 == null))) && (!((_arg5 == null))))){ _local8 = 0; _local9 = Option.resourceCount; while (_local8 < _local9) { var _temp1 = _local8; _local8 = (_local8 + 1); _local10 = _temp1; _local11 = Lib.indexToResource(_local10); addResourceTower(_arg1, _local11, _arg4[_local10]); _local12 = _local7.countReserve(_local11); _local13 = (Lib.truckLoad(_local11) * _arg5[_local10]); _local7.addReserve(new ResourceCount(_local11, (_local13 - _local12))); }; }; }; } public static function addResource(_arg1:Point, _arg2:Resource, _arg3:int):void{ if (canAddResource(_arg1)){ if (Game.map.getCell(_arg1.x, _arg1.y).hasTower()){ addResourceTower(_arg1, _arg2, _arg3); } else { addResourceRubble(_arg1, _arg2, _arg3); }; }; } public static function canRemoveLevel(_arg1:Point):Boolean{ var _local2:Tower; _local2 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); return (((!((_local2 == null))) && (_local2.canDowngrade()))); } public static function addObstacle(_arg1:Point, _arg2=null):void{ var _local3:int; var _local4:MapCell; _local3 = Tile.OBSTACLE_START; if (_arg2 != null){ _local3 = _arg2; }; if (canAddObstacle(_arg1)){ _local4 = Game.map.getCell(_arg1.x, _arg1.y); _local4.addObstacle(_local3); }; } public static function canAddLevel(_arg1:Point):Boolean{ var _local2:Tower; _local2 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); return (((!((_local2 == null))) && (_local2.canUpgrade()))); } public static function canRemove(_arg1:Point):Boolean{ var _local2:MapCell; _local2 = Game.map.getCell(_arg1.x, _arg1.y); return (((((((_local2.hasRubble()) && (!((_local2.getBackground() == BackgroundType.ENTRANCE))))) || (_local2.hasTower()))) || (_local2.hasObstacle()))); } public static function canChangeObstacle(_arg1:Point):Boolean{ var _local2:MapCell; _local2 = Game.map.getCell(_arg1.x, _arg1.y); return (_local2.hasObstacle()); } public static function canAddZombie(_arg1:Point):Boolean{ var _local2:MapCell; _local2 = Game.map.getCell(_arg1.x, _arg1.y); return (((((!(_local2.isBlocked())) && (!(_local2.hasTower())))) && (!((_local2.getBackground() == BackgroundType.ENTRANCE))))); } public static function createRubble(_arg1:Point, _arg2:Array=null):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; if (canCreateRubble(_arg1)){ _local3 = Util.randWeightedIndex(Parameter.rubbleWeight); Game.map.getCell(_arg1.x, _arg1.y).addRubble(Resource.AMMO, 0); if (_arg2 != null){ _local4 = 0; _local5 = _arg2.length; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; addResourceRubble(_arg1, Lib.indexToResource(_local6), _arg2[_local6], _local3); }; }; }; } public static function canAddObstacle(_arg1:Point):Boolean{ var _local2:MapCell; _local2 = Game.map.getCell(_arg1.x, _arg1.y); return (((((((((((((!(_local2.isBlocked())) && (!(_local2.hasRubble())))) && (!(_local2.hasObstacle())))) && (!(_local2.hasZombies())))) && (!(_local2.hasTower())))) && (!((_local2.getBackground() == BackgroundType.ENTRANCE))))) && (!((_local2.getBackground() == BackgroundType.BUILDING))))); } public static function addResourceTower(_arg1:Point, _arg2:Resource, _arg3:int):void{ var _local4:Tower; var _local5:int; var _local6:int; var _local7:int; var _local8:ResourceCount; _local4 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); if (_local4 != null){ if (_arg2 == Resource.SURVIVORS){ _local5 = 0; while (_local5 < _arg3) { var _temp1 = _local5; _local5 = (_local5 + 1); _local6 = _temp1; _local7 = Util.rand(Animation.carryAmmo.getTypeCount()); _local4.giveSurvivor(_local7); }; } else { _local8 = new ResourceCount(_arg2, (_arg3 * Lib.truckLoad(_arg2))); _local4.giveResource(_local8); }; }; } public static function canCreateTower(_arg1:Point, _arg2:int):Boolean{ return (Tower.canPlace(_arg2, _arg1.x, _arg1.y, true)); } public static function canAddResource(_arg1:Point):Boolean{ var _local2:MapCell; var _local3:Boolean; _local2 = Game.map.getCell(_arg1.x, _arg1.y); _local3 = ((_local2.hasRubble()) && (!((_local2.getBackground() == BackgroundType.ENTRANCE)))); return (((_local3) || (_local2.hasTower()))); } } }//package mapgen
Section 83
//EditLoader (mapgen.EditLoader) package mapgen { import flash.utils.*; public class EditLoader { public static var SUPPLY_LINE:int = 131; public static var OBSTACLE:int = 132; public static var ZOMBIE:int = 128; public static var TOWER:int = 130; public static var isLoading:Boolean = false; public static var RUBBLE:int = 129; protected static function loadRubble(_arg1:ByteArray):void{ var _local2:Point; var _local3:Array; _local2 = loadPos(_arg1); _local3 = loadResources(_arg1); if (!Lib.outsideMap(_local2)){ EditChange.createRubble(_local2, _local3); }; } protected static function loadTower(_arg1:ByteArray):void{ var _local2:Point; var _local3:uint; var _local4:uint; var _local5:Array; var _local6:Array; _local2 = loadPos(_arg1); _local3 = _arg1.readUnsignedByte(); _local4 = _arg1.readUnsignedByte(); _local5 = loadResources(_arg1); _local6 = loadResources(_arg1); if (!Lib.outsideMap(_local2)){ EditChange.createTower(_local2, _local3, _local4, _local5, _local6); }; } protected static function loadSupplyLine(_arg1:ByteArray):void{ var _local2:Point; var _local3:Point; var _local4:Tower; var _local5:Tower; _local2 = loadPos(_arg1); _local3 = loadPos(_arg1); if (((!(Lib.outsideMap(_local2))) && (!(Lib.outsideMap(_local3))))){ _local4 = Game.map.getCell(_local2.x, _local2.y).getTower(); _local5 = Game.map.getCell(_local3.x, _local3.y).getTower(); if (((!((_local4 == null))) && (!((_local5 == null))))){ _local4.addTradeLink(_local3); }; }; } protected static function loadPos(_arg1:ByteArray, _arg2=null):Point{ var _local3:uint; var _local4:uint; _local3 = _arg1.readUnsignedByte(); _local4 = _arg1.readUnsignedByte(); if (((!(Game.settings.doesHaveEdges())) && (!((_arg2 == true))))){ _local3 = (_local3 + 5); _local4 = (_local4 + 5); }; return (new Point(_local3, _local4)); } protected static function drawPixels(_arg1:List):void{ var _local2:*; var _local3:EditBox; if (Game.settings.isEditor()){ _local2 = _arg1.iterator(); while (_local2.hasNext()) { _local3 = _local2.next(); _local3.drawPixels(); }; } else { Game.view.window.fillBitmap(); }; } protected static function loadObstacle(_arg1:ByteArray):void{ var _local2:Point; var _local3:uint; _local2 = loadPos(_arg1); _local3 = _arg1.readUnsignedByte(); if (!Lib.outsideMap(_local2)){ EditChange.addObstacle(_local2, _local3); }; } public static function loadMap(_arg1:ByteArray, _arg2:List):void{ var _local3:Section; var _local4:Boolean; var _local5:*; var _local6:uint; var _local7:EditType; var _local8:*; var _local9:EditBox; var _local10:*; var _local11:EditBox; var _local12:EditBox; EditLoader.isLoading = true; _local3 = new Section(new Point(Editor.edgeCount, Editor.edgeCount), new Point((Game.map.size().x - Editor.edgeCount), (Game.map.size().y - Editor.edgeCount))); Util.fillBlocked(_local3); Util.fillBackground(_local3, BackgroundType.STREET); _local4 = false; while (_arg1.bytesAvailable > 0) { _local6 = _arg1.readUnsignedByte(); _local7 = EditBox.intToType(_local6); if (((!(_local4)) && ((((((((((_local6 == ZOMBIE)) || ((_local6 == RUBBLE)))) || ((_local6 == TOWER)))) || ((_local6 == SUPPLY_LINE)))) || ((_local6 == OBSTACLE)))))){ _local8 = _arg2.iterator(); while (_local8.hasNext()) { _local9 = _local8.next(); _local9.show(); }; _local4 = true; }; if (_local6 == ZOMBIE){ loadZombie(_arg1); } else { if (_local6 == RUBBLE){ loadRubble(_arg1); } else { if (_local6 == TOWER){ loadTower(_arg1); } else { if (_local6 == SUPPLY_LINE){ loadSupplyLine(_arg1); } else { if (_local6 == OBSTACLE){ loadObstacle(_arg1); } else { if ((((((((((((((((((((((((_local7 == EditBox.UNKNOWN)) || ((_local7 == EditBox.STREET_H)))) || ((_local7 == EditBox.STREET_V)))) || ((_local7 == EditBox.PARKING_LOT)))) || ((_local7 == EditBox.PARK)))) || ((_local7 == EditBox.PLAZA)))) || ((_local7 == EditBox.SHALLOW_WATER)))) || ((_local7 == EditBox.DEEP_WATER)))) || ((_local7 == EditBox.BRIDGE)))) || ((_local7 == EditBox.STREET)))) || ((_local7 == EditBox.CORNER)))) || ((_local7 == EditBox.INTERSECTION)))){ loadSimple(_local7, _arg1, _arg2); } else { if (EditBox.isBuilding(_local7)){ loadStandardBuilding(_local7, _arg1, _arg2); }; }; }; }; }; }; }; }; if (!_local4){ _local10 = _arg2.iterator(); while (_local10.hasNext()) { _local11 = _local10.next(); _local11.show(); }; }; sanityCheck(); EditLoader.isLoading = false; _local5 = _arg2.iterator(); while (_local5.hasNext()) { _local12 = _local5.next(); _local12.showObstacles(); }; drawPixels(_arg2); Game.sprites.recalculateFov(); } public static function savePos(_arg1:int, _arg2:int, _arg3:ByteArray):void{ _arg3.writeByte(_arg1); _arg3.writeByte(_arg2); } protected static function addSaveLink(_arg1:Route, _arg2:Array, _arg3:Array):void{ var _local4:Boolean; var _local5:int; var _local6:int; var _local7:int; _local4 = false; _local5 = 0; _local6 = _arg2.length; while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local7 = _temp1; if (((((Point.isEqual(_arg1.source, _arg2[_local7])) && (Point.isEqual(_arg1.dest, _arg3[_local7])))) || (((Point.isEqual(_arg1.source, _arg3[_local7])) && (Point.isEqual(_arg1.dest, _arg2[_local7])))))){ _local4 = true; break; }; }; if (!_local4){ _arg2.push(_arg1.source); _arg3.push(_arg1.dest); }; } protected static function loadDirections(_arg1:EditType, _arg2:EditBox, _arg3:ByteArray):void{ var _local4:uint; var _local5:int; var _local6:int; if (EditBox.hasDirection(_arg1)){ _local4 = _arg3.readUnsignedByte(); _local5 = (_local4 & 3); _local6 = ((_local4 >> 2) & 3); _arg2.setDirections(Lib.indexToDirection(_local5), Lib.indexToDirection(_local6)); }; } protected static function cleanupMapSquare(_arg1:Point):void{ var _local2:MapCell; var _local3:Zombie; var _local4:Building; var _local5:Salvage; var _local6:int; var _local7:Array; var _local8:Resource; var _local9:int; _local2 = Game.map.getCell(_arg1.x, _arg1.y); if (_local2.hasTower()){ _local2.destroyTower(); }; if (_local2.hasRubble()){ _local2.clearRubble(); }; while (_local2.hasZombies()) { _local3 = _local2.getZombie(); if (_local3 != null){ _local2.removeZombie(_local3); _local3.cleanup(); }; }; if (_local2.getBackground() == BackgroundType.ENTRANCE){ _local4 = _local2.getBuilding(); _local4.clearZombies(); _local5 = _local4.getSalvage(); _local6 = 0; _local7 = Lib.resource; while (_local6 < _local7.length) { _local8 = _local7[_local6]; _local6++; _local9 = _local5.getResourceCount(_local8); _local5.addResource(_local8, -(_local9)); }; }; _local2.setBlocked(); } protected static function loadStandardBuilding(_arg1:EditType, _arg2:ByteArray, _arg3:List):void{ var _local4:Section; var _local5:Point; var _local6:uint; var _local7:Array; var _local8:EditBox; var _local9:int; var _local10:int; var _local11:int; var _local12:Resource; _local4 = loadSection(_arg2); _local5 = loadPos(_arg2); _local6 = _arg2.readUnsignedByte(); _local7 = loadResources(_arg2); if (((((!(Lib.outsideMap(_local4.offset))) && ((_local4.limit.x <= Game.map.sizeX())))) && ((_local4.limit.y <= Game.map.sizeY())))){ _local8 = new EditBox(_local4.offset, _local4.limit); _arg3.add(_local8); _local8.changeType(_arg1, true); _local8.bind(); _local8.setEntrance(_local5, true); _local8.addZombies(_local6); _local9 = 0; _local10 = _local7.length; while (_local9 < _local10) { var _temp1 = _local9; _local9 = (_local9 + 1); _local11 = _temp1; if (_local7[_local11] > 0){ _local12 = Lib.indexToResource(_local11); _local8.addResources(_local12, _local7[_local11]); }; }; loadDirections(_arg1, _local8, _arg2); } else { if (EditBox.hasDirection(_arg1)){ _arg2.readUnsignedByte(); }; }; } public static function saveMap(_arg1:ByteArray, _arg2:List):void{ var _local3:*; var _local4:Array; var _local5:Array; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:EditBox; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:MapCell; var _local16:int; _local3 = _arg2.iterator(); while (_local3.hasNext()) { _local10 = _local3.next(); _local10.saveMap(_arg1); }; _local4 = []; _local5 = []; _local6 = 0; _local7 = Game.map.sizeY(); while (_local6 < _local7) { var _temp1 = _local6; _local6 = (_local6 + 1); _local11 = _temp1; _local12 = 0; _local13 = Game.map.sizeX(); while (_local12 < _local13) { var _temp2 = _local12; _local12 = (_local12 + 1); _local14 = _temp2; _local15 = Game.map.getCell(_local14, _local11); saveCell(_local14, _local11, _local15, _arg1, _local4, _local5); }; }; _local8 = 0; _local9 = _local4.length; while (_local8 < _local9) { var _temp3 = _local8; _local8 = (_local8 + 1); _local16 = _temp3; _arg1.writeByte(SUPPLY_LINE); savePos(_local4[_local16].x, _local4[_local16].y, _arg1); savePos(_local5[_local16].x, _local5[_local16].y, _arg1); }; } protected static function sanityCheck():void{ var _local1:Section; var _local2:int; var _local3:Array; var _local4:Point; var _local5:Direction; var _local6:Section; var _local7:PathFinder; _local1 = new Section(new Point(0, 0), Game.map.size().clone()); _local2 = 0; _local3 = Lib.directions; while (_local2 < _local3.length) { _local5 = _local3[_local2]; _local2++; _local6 = _local1.slice(_local5, 1); Util.fillBlocked(_local6); }; _local4 = Game.progress.getRandomDepot(); if (_local4 != null){ _local7 = new PathFinder(_local4, null, true, null); _local7.setupVisit(); _local7.startCalculation(); while (!(_local7.isDone())) { _local7.step(100); }; cleanupMap(_local7); }; } protected static function checkRubble(_arg1:Point):void{ var _local2:MapCell; var _local3:Boolean; var _local4:int; var _local5:Array; var _local6:int; _local2 = Game.map.getCell(_arg1.x, _arg1.y); if (_local2.hasRubble()){ _local3 = true; _local4 = 0; _local5 = _local2.getAllRubbleCounts(); while (_local4 < _local5.length) { _local6 = _local5[_local4]; _local4++; if (_local6 != 0){ _local3 = false; break; }; }; if (_local3){ _local2.clearRubble(); }; }; } protected static function cleanupMap(_arg1:PathFinder):void{ var _local2:Point; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; _local2 = new Point(0, 0); _local3 = 0; _local4 = Game.map.sizeY(); while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = 0; _local7 = Game.map.sizeX(); while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local8 = _temp2; _local2.x = _local8; _local2.y = _local5; if (!_arg1.isVisited(_local2)){ cleanupMapSquare(_local2); }; checkRubble(_local2); }; }; } public static function saveResources(_arg1:Array, _arg2:ByteArray):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:Resource; var _local7:int; _local3 = 0; _local4 = _arg1.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = Lib.indexToResource(_local5); if (_local6 != Resource.FOOD){ _local7 = Math.floor((_arg1[_local5] / Lib.truckLoad(_local6))); _arg2.writeByte(_local7); }; }; } protected static function loadZombie(_arg1:ByteArray):void{ var _local2:Point; var _local3:uint; _local2 = loadPos(_arg1); _local3 = _arg1.readUnsignedByte(); if (!Lib.outsideMap(_local2)){ EditChange.addZombie(_local2, _local3); }; } protected static function loadSection(_arg1:ByteArray):Section{ var _local2:Point; var _local3:Point; _local2 = loadPos(_arg1); _local3 = _local2.clone(); _local3.plusEquals(loadPos(_arg1, true)); return (new Section(_local2, _local3)); } protected static function loadBool(_arg1:ByteArray):Boolean{ var _local2:uint; _local2 = _arg1.readUnsignedByte(); if (_local2 == 0){ return (false); }; return (true); } public static function saveDirections(_arg1:EditType, _arg2:Direction, _arg3:Direction, _arg4:ByteArray):void{ var _local5:int; var _local6:int; var _local7:int; if (EditBox.hasDirection(_arg1)){ _local5 = Lib.directionToIndex(_arg2); _local6 = Lib.directionToIndex(_arg3); _local7 = (_local5 & 3); _local7 = (_local7 | ((_local6 & 3) << 2)); _arg4.writeByte(_local7); }; } public static function saveBool(_arg1:Boolean, _arg2:ByteArray):void{ if (_arg1){ _arg2.writeByte(1); } else { _arg2.writeByte(0); }; } protected static function loadResources(_arg1:ByteArray):Array{ var _local2:Array; var _local3:int; var _local4:int; var _local5:int; _local2 = Lib.newResourceArray(); _local3 = 0; _local4 = _local2.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; if (_local5 != Lib.resourceToIndex(Resource.FOOD)){ _local2[_local5] = _arg1.readUnsignedByte(); }; }; return (_local2); } protected static function loadSimple(_arg1:EditType, _arg2:ByteArray, _arg3:List):void{ var _local4:Section; var _local5:EditBox; _local4 = loadSection(_arg2); if (((((!(Lib.outsideMap(_local4.offset))) && ((_local4.limit.x <= Game.map.sizeX())))) && ((_local4.limit.y <= Game.map.sizeY())))){ _local5 = new EditBox(_local4.offset, _local4.limit); _arg3.add(_local5); _local5.bind(); _local5.changeType(_arg1, true); if (_arg1 == EditBox.BRIDGE){ _local5.setBroken(loadBool(_arg2), true); }; loadDirections(_arg1, _local5, _arg2); } else { if (_arg1 == EditBox.BRIDGE){ loadBool(_arg2); }; if (EditBox.hasDirection(_arg1)){ _arg2.readUnsignedByte(); }; }; } protected static function saveCell(_arg1:int, _arg2:int, _arg3:MapCell, _arg4:ByteArray, _arg5:Array, _arg6:Array):void{ var _local7:Tower; var _local8:List; var _local9:*; var _local10:Route; if (_arg3.hasZombies()){ _arg4.writeByte(ZOMBIE); savePos(_arg1, _arg2, _arg4); _arg4.writeByte(_arg3.zombieCount()); }; if (((_arg3.hasRubble()) && (!((_arg3.getBackground() == BackgroundType.ENTRANCE))))){ _arg4.writeByte(RUBBLE); savePos(_arg1, _arg2, _arg4); saveResources(_arg3.getAllRubbleCounts(), _arg4); }; if (_arg3.hasTower()){ _local7 = _arg3.getTower(); _arg4.writeByte(TOWER); savePos(_arg1, _arg2, _arg4); _arg4.writeByte(_local7.getType()); _arg4.writeByte(_local7.getLevel()); _local7.saveEditResources(_arg4); _local8 = _local7.getTradeLinks(); _local9 = _local8.iterator(); while (_local9.hasNext()) { _local10 = _local9.next(); addSaveLink(_local10, _arg5, _arg6); }; }; if (_arg3.hasObstacle()){ _arg4.writeByte(OBSTACLE); savePos(_arg1, _arg2, _arg4); _arg4.writeByte(_arg3.getObstacle()); }; } } }//package mapgen
Section 84
//EditMenu (mapgen.EditMenu) package mapgen { import flash.display.*; import flash.events.*; import ui.*; import flash.text.*; import flash.*; public class EditMenu { protected var posClip:EditPosClip; protected var sprites:Array; protected var clip:EditMenuClip; protected var selectedSquare:Point; protected var buttons:ButtonList; protected var selected:EditBox; public function EditMenu(_arg1:DisplayObjectContainer=null):void{ var _local2:int; var _local3:Array; var _local4:TextFormat; var _local5:*; super(); if (!Boot.skip_constructor){ this.selected = null; this.selectedSquare = null; this.posClip = new EditPosClip(); _arg1.addChild(this.posClip); this.clip = new EditMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; _local2 = 0; _local3 = [this.clip.zombies, this.clip.ammo, this.clip.boards, this.clip.survivors, this.clip.setEntranceLabel, this.clip.deleteBoxLabel, this.clip.addRubbleLabel, this.clip.addObstacleLabel, this.clip.rotateLabel, this.clip.reflectLabel, this.clip.brokenLabel, this.clip.changeTypeLabel]; while (_local2 < _local3.length) { _local5 = _local3[_local2]; _local2++; _local5.mouseEnabled = false; }; this.clip.type.focusEnabled = false; this.clip.type.addEventListener(Event.CHANGE, this.changeType); _local4 = new TextFormat(); _local4.size = FontSize.comboListTitle; this.clip.type.textField.setStyle("textFormat", _local4); this.clip.type.dropdown.setStyle("cellRenderer", CustomCellRenderer); this.initSprites(); this.buttons = new ButtonList(this.click, null, [this.clip.zombiesDown, this.clip.zombiesUp, this.clip.ammoDown, this.clip.ammoUp, this.clip.boardsDown, this.clip.boardsUp, this.clip.survivorsDown, this.clip.survivorsUp, this.clip.setEntrance, this.clip.deleteBox, this.clip.addRubble, this.clip.addObstacle, this.clip.rotate, this.clip.reflect, this.clip.levelsDown, this.clip.levelsUp, this.clip.broken, this.clip.changeType]); }; } protected function removeResources(_arg1:Resource):void{ if (this.selectedSquare == null){ this.selected.removeResources(_arg1, 1); } else { EditChange.addResource(this.selectedSquare, _arg1, -1); }; } protected function addResources(_arg1:Resource):void{ if (this.selectedSquare == null){ this.selected.addResources(_arg1, 1); } else { EditChange.addResource(this.selectedSquare, _arg1, 1); }; } protected function updateSquare():void{ var _local1:int; var _local2:int; var _local3:MapCell; var _local4:int; var _local5:int; var _local6:Array; var _local7:int; var _local8:int; var _local9:int; var _local10:*; var _local11:int; if (this.selectedSquare != null){ _local1 = this.selectedSquare.x; _local2 = this.selectedSquare.y; _local3 = Game.map.getCell(_local1, _local2); if (EditChange.canAddZombie(this.selectedSquare)){ this.clip.zombiesUp.visible = true; this.clip.zombiesDown.visible = true; this.clip.zombies.visible = true; _local4 = _local3.zombieCount(); this.clip.zombies.text = Text.zombiesEdit(Std.string(_local4)); }; if (EditChange.canAddResource(this.selectedSquare)){ _local5 = 0; _local6 = [this.clip.ammoUp, this.clip.ammoDown, this.clip.ammo, this.clip.boardsUp, this.clip.boardsDown, this.clip.boards, this.clip.survivorsUp, this.clip.survivorsDown, this.clip.survivors]; while (_local5 < _local6.length) { _local10 = _local6[_local5]; _local5++; _local10.visible = true; }; _local7 = _local3.getRubbleCount(Resource.AMMO); _local8 = _local3.getRubbleCount(Resource.BOARDS); _local9 = _local3.getRubbleCount(Resource.SURVIVORS); if (_local3.hasTower()){ _local7 = _local3.getTower().countResource(Resource.AMMO); _local8 = _local3.getTower().countResource(Resource.BOARDS); _local9 = _local3.getTower().countResource(Resource.SURVIVORS); }; this.clip.ammo.text = Text.ammoEdit(Std.string(_local7)); this.clip.boards.text = Text.boardsEdit(Std.string(_local8)); this.clip.survivors.text = Text.survivorsEdit(Std.string(_local9)); }; if (((EditChange.canAddLevel(this.selectedSquare)) || (EditChange.canRemoveLevel(this.selectedSquare)))){ this.clip.levels.visible = true; _local11 = _local3.getTower().getLevel(); this.clip.levels.text = Text.levelsEdit(Std.string(_local11)); }; if (EditChange.canRemoveLevel(this.selectedSquare)){ this.clip.levelsDown.visible = true; }; if (EditChange.canAddLevel(this.selectedSquare)){ this.clip.levelsUp.visible = true; }; if (EditChange.canCreateRubble(this.selectedSquare)){ this.clip.addRubble.visible = true; this.clip.addRubbleLabel.visible = true; }; if (EditChange.canAddObstacle(this.selectedSquare)){ this.clip.addObstacle.visible = true; this.clip.addObstacleLabel.visible = true; }; if (EditChange.canChangeObstacle(this.selectedSquare)){ this.clip.changeType.visible = true; this.clip.changeTypeLabel.visible = true; }; if (EditChange.canRemove(this.selectedSquare)){ this.clip.deleteBox.visible = true; this.clip.deleteBoxLabel.visible = true; }; }; } public function update(_arg1:EditBox, _arg2:Point):void{ var _local3:int; var _local4:Array; var _local5:DisplayObject; this.selected = _arg1; this.selectedSquare = _arg2; if (this.selected == null){ this.clip.visible = false; } else { this.clip.visible = true; _local3 = 0; _local4 = this.sprites; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local5.visible = false; }; this.updateType(); this.updateBuilding(); this.updateDirections(); if (this.selectedSquare == null){ this.clip.deleteBox.visible = true; this.clip.deleteBoxLabel.visible = true; if (this.selected.getType() == EditBox.BRIDGE){ this.clip.broken.visible = true; this.clip.brokenLabel.visible = true; }; }; this.updateSquare(); }; Game.settings.setMap(Game.editor.saveMap()); Main.setEditSave(Game.settings.saveMap()); } protected function changeType(_arg1:Event):void{ Game.editor.changeType(this.clip.type.selectedItem.data); Game.view.window.refresh(); Game.view.mini.update(); } protected function reflect():void{ if (this.selected != null){ this.selected.reflect(); }; } protected function click(_arg1:int):void{ if (this.selected == null){ return; }; if (_arg1 == 0){ this.addZombies(-1); } else { if (_arg1 == 1){ this.addZombies(1); } else { if (_arg1 == 2){ this.removeResources(Resource.AMMO); } else { if (_arg1 == 3){ this.addResources(Resource.AMMO); } else { if (_arg1 == 4){ this.removeResources(Resource.BOARDS); } else { if (_arg1 == 5){ this.addResources(Resource.BOARDS); } else { if (_arg1 == 6){ this.removeResources(Resource.SURVIVORS); } else { if (_arg1 == 7){ this.addResources(Resource.SURVIVORS); } else { if (_arg1 == 8){ this.selected.setEntrance(this.selectedSquare); } else { if (_arg1 == 9){ this.removeSelected(); } else { if (_arg1 == 10){ if (this.selectedSquare != null){ EditChange.createRubble(this.selectedSquare); }; } else { if (_arg1 == 11){ if (this.selectedSquare != null){ EditChange.addObstacle(this.selectedSquare); this.selected.show(); }; } else { if (_arg1 == 12){ this.rotate(); } else { if (_arg1 == 13){ this.reflect(); } else { if (_arg1 == 14){ if (this.selectedSquare != null){ EditChange.removeLevel(this.selectedSquare); }; } else { if (_arg1 == 15){ if (this.selectedSquare != null){ EditChange.addLevel(this.selectedSquare); }; } else { if (_arg1 == 16){ this.selected.toggleBroken(); } else { if (_arg1 == 17){ if (this.selectedSquare != null){ EditChange.changeObstacle(this.selectedSquare); this.selected.show(); }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; Game.view.mini.update(); Game.view.window.refresh(); Game.editor.updateSelect(); } protected function rotate():void{ if (this.selected != null){ this.selected.rotate(); }; } protected function updateBuilding():void{ var _local1:int; var _local2:Array; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:*; var _local8:int; var _local9:Array; var _local10:*; if (EditBox.isBuilding(this.selected.getType())){ if (this.selectedSquare == null){ _local1 = 0; _local2 = [this.clip.zombiesDown, this.clip.zombiesUp, this.clip.zombies, this.clip.ammoDown, this.clip.ammoUp, this.clip.ammo, this.clip.boardsDown, this.clip.boardsUp, this.clip.boards, this.clip.survivorsDown, this.clip.survivorsUp, this.clip.survivors]; while (_local1 < _local2.length) { _local7 = _local2[_local1]; _local1++; _local7.visible = true; }; _local3 = this.selected.getZombies(); _local4 = this.selected.getResources(Resource.AMMO); _local5 = this.selected.getResources(Resource.BOARDS); _local6 = this.selected.getResources(Resource.SURVIVORS); this.clip.zombies.text = Text.zombiesEdit(Std.string(_local3)); this.clip.ammo.text = Text.ammoEdit(Std.string(_local4)); this.clip.boards.text = Text.boardsEdit(Std.string(_local5)); this.clip.survivors.text = Text.survivorsEdit(Std.string(_local6)); } else { if (this.selected.canSetEntrance()){ _local8 = 0; _local9 = [this.clip.setEntrance, this.clip.setEntranceLabel]; while (_local8 < _local9.length) { _local10 = _local9[_local8]; _local8++; _local10.visible = true; }; }; }; }; } protected function initSprites():void{ this.sprites = [function (_arg1:EditMenu):DisplayObject{ var $r:*; var tmp:*; var $this = _arg1; tmp = $this.clip.zombiesDown; $r = (Std._is(tmp, DisplayObject)) ? tmp : function (_arg1:EditMenu):MovieClip{ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this), this.clip.zombiesUp, this.clip.zombies, this.clip.ammoDown, this.clip.ammoUp, this.clip.ammo, this.clip.boardsDown, this.clip.boardsUp, this.clip.boards, this.clip.survivorsDown, this.clip.survivorsUp, this.clip.survivors, this.clip.setEntrance, this.clip.setEntranceLabel, this.clip.deleteBox, this.clip.deleteBoxLabel, this.clip.addRubble, this.clip.addRubbleLabel, this.clip.addObstacle, this.clip.addObstacleLabel, this.clip.rotate, this.clip.rotateLabel, this.clip.reflect, this.clip.reflectLabel, this.clip.levelsDown, this.clip.levelsUp, this.clip.levels, this.clip.broken, this.clip.brokenLabel, this.clip.changeType, this.clip.changeTypeLabel]; } protected function updateType():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:Array; var _local5:EditType; _local1 = Math.floor(Math.min((this.selected.getLimit().x - this.selected.getOffset().x), (this.selected.getLimit().y - this.selected.getOffset().y))); this.clip.type.removeAll(); _local2 = 0; _local3 = 0; _local4 = EditBox.typeList; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; if (_local1 >= _local5.minSize){ this.clip.type.addItem(_local5.item); if (_local5 == this.selected.getType()){ this.clip.type.selectedIndex = _local2; }; _local2++; }; }; } public function cleanup():void{ this.buttons.cleanup(); this.clip.type.removeEventListener(Event.CHANGE, this.changeType); this.clip.parent.removeChild(this.clip); this.posClip.parent.removeChild(this.posClip); } protected function addZombies(_arg1:int):void{ if (this.selectedSquare == null){ this.selected.addZombies(_arg1); } else { EditChange.addZombie(this.selectedSquare, _arg1); }; } public function hover(_arg1:Point):void{ this.posClip.pos.text = _arg1.toString(); } protected function updateDirections():void{ var _local1:int; var _local2:Array; var _local3:*; if (((!((this.selected == null))) && ((this.selectedSquare == null)))){ if (EditBox.hasDirection(this.selected.getType())){ _local1 = 0; _local2 = [this.clip.rotate, this.clip.rotateLabel, this.clip.reflect, this.clip.reflectLabel]; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.visible = true; }; }; }; } protected function removeSelected():void{ if (this.selectedSquare == null){ this.selected.remove(); } else { EditChange.remove(this.selectedSquare); this.selected.show(); }; } } }//package mapgen
Section 85
//EditMenuClip (mapgen.EditMenuClip) package mapgen { import fl.controls.*; import flash.display.*; import flash.text.*; import fl.data.*; public dynamic class EditMenuClip extends MovieClip { public var ammoUp:MovieClip; public var changeTypeLabel:TextField; public var deleteBox:MovieClip; public var brokenLabel:TextField; public var reflectLabel:TextField; public var survivors:TextField; public var addObstacle:MovieClip; public var rotateLabel:TextField; public var boards:TextField; public var levelsUp:MovieClip; public var addRubbleLabel:TextField; public var survivorsDown:MovieClip; public var addRubble:MovieClip; public var zombiesUp:MovieClip; public var ammoDown:MovieClip; public var boardsDown:MovieClip; public var setEntranceLabel:TextField; public var addObstacleLabel:TextField; public var levelsDown:MovieClip; public var deleteBoxLabel:TextField; public var reflect:MovieClip; public var collProps1:Array; public var ammo:TextField; public var i1:int; public var zombies:TextField; public var j1; public var changeType:MovieClip; public var collObj1:DataProvider; public var setEntrance:MovieClip; public var type:ComboBox; public var zombiesDown:MovieClip; public var rotate:MovieClip; public var levels:TextField; public var collProp1:Object; public var boardsUp:MovieClip; public var itemObj1:SimpleCollectionItem; public var survivorsUp:MovieClip; public var broken:MovieClip; public function EditMenuClip(){ __setProp_type_EditMenuClip_Layer2_1(); } function __setProp_type_EditMenuClip_Layer2_1(){ try { type["componentInspectorSetting"] = true; } catch(e:Error) { }; collObj1 = new DataProvider(); collProps1 = []; i1 = 0; while (i1 < collProps1.length) { itemObj1 = new SimpleCollectionItem(); collProp1 = collProps1[i1]; for (j1 in collProp1) { itemObj1[j1] = collProp1[j1]; }; collObj1.addItem(itemObj1); i1++; }; type.dataProvider = collObj1; type.editable = false; type.enabled = true; type.prompt = ""; type.restrict = ""; type.rowCount = 15; type.visible = true; try { type["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package mapgen
Section 86
//Editor (mapgen.Editor) package mapgen { import flash.display.*; import ui.*; import flash.utils.*; import flash.*; public class Editor { protected var selectedClip:Shape; protected var dragCurrent:Point; protected var selectedSquare:Point; protected var selected:EditBox; protected var menu:EditMenu; protected var dragBox:Shape; protected var boxes:List; protected var dragOrigin:Point; public static var edgeCount:int = 5; protected static var dragBoxBorder:int = 2; protected static var selectedBorder:int = 4; protected static var waterCount:int = 3; public function Editor(_arg1:DisplayObjectContainer=null):void{ if (!Boot.skip_constructor){ this.boxes = new List(); this.selected = null; this.selectedSquare = null; this.dragOrigin = null; this.dragCurrent = null; this.selectedClip = new Shape(); _arg1.addChild(this.selectedClip); this.dragBox = new Shape(); _arg1.addChild(this.dragBox); this.menu = new EditMenu(_arg1); }; } protected function isOverlap(_arg1:Point, _arg2:Point):Boolean{ var _local3:Boolean; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:EditBox; var _local11:BackgroundType; _local3 = false; _local4 = _arg1.y; _local5 = _arg2.y; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; _local7 = _arg1.x; _local8 = _arg2.x; while (_local7 < _local8) { var _temp2 = _local7; _local7 = (_local7 + 1); _local9 = _temp2; _local10 = Game.map.getCell(_local9, _local6).edit; _local11 = Game.map.getCell(_local9, _local6).getBackground(); if ((((_local11 == BackgroundType.EDGE)) || (!((((_local10 == null)) || ((_local10 == this.selected))))))){ _local3 = true; break; }; }; if (_local3){ break; }; }; return (_local3); } public function clickSquare(_arg1:Point):void{ var _local2:EditBox; if (_arg1 == null){ this.selected = null; this.selectedSquare = null; } else { _local2 = Game.map.getCell(_arg1.x, _arg1.y).edit; if (((!((this.selected == _local2))) || (!((this.selectedSquare == null))))){ this.selected = _local2; this.selectedSquare = null; } else { this.selectedSquare = _arg1.clone(); }; }; this.updateSelect(); } public function changeType(_arg1:EditType):void{ if (this.selected != null){ this.selected.changeType(_arg1); this.updateSelect(); Game.view.mini.update(); Game.view.window.refresh(); }; } public function getSelectedSquare():Point{ return (this.selectedSquare); } protected function tooSmall(_arg1:Point, _arg2:Point):Boolean{ var _local3:Boolean; var _local4:EditType; _local3 = false; if (this.selected != null){ _local4 = this.selected.getType(); _local3 = ((((_arg2.x - _arg1.x) < _local4.minSize)) || (((_arg2.y - _arg1.y) < _local4.minSize))); }; return (_local3); } public function loadMap(_arg1:ByteArray):void{ EditLoader.loadMap(_arg1, this.boxes); } public function updateDrag(_arg1:Point=null):void{ var _local2:EditBox; var _local3:Point; var _local4:Point; var _local5:Point; var _local6:Point; var _local7:int; if (_arg1 != null){ this.dragCurrent = _arg1.clone(); }; if (((((((!((this.dragOrigin == null))) && (!((this.dragCurrent == null))))) && (!(Lib.outsideMap(this.dragOrigin))))) && (!(Lib.outsideMap(this.dragCurrent))))){ _local2 = Game.map.getCell(this.dragOrigin.x, this.dragOrigin.y).edit; if (this.selected != _local2){ this.selected = _local2; }; this.selectedSquare = null; this.updateSelect(); _local3 = Lib.getOffset(this.dragOrigin, this.dragCurrent); _local4 = Lib.getLimit(this.dragOrigin, this.dragCurrent); _local5 = Game.view.window.toRelative(_local3.x, _local3.y).toPixel(); _local6 = new Point((_local4.x - _local3.x), (_local4.y - _local3.y)).toPixel(); _local7 = Color.allowEditBox; if (((this.isOverlap(_local3, _local4)) || (this.tooSmall(_local3, _local4)))){ _local7 = Color.denyEditBox; }; this.dragBox.graphics.clear(); this.dragBox.graphics.lineStyle(dragBoxBorder, Color.editBoxBorder); this.dragBox.graphics.beginFill(_local7); this.dragBox.graphics.drawRect(_local5.x, _local5.y, _local6.x, _local6.y); this.dragBox.graphics.endFill(); }; } public function saveMap():ByteArray{ var _local1:ByteArray; _local1 = new ByteArray(); EditLoader.saveMap(_local1, this.boxes); return (_local1); } public function cleanup():void{ this.menu.cleanup(); this.dragBox.parent.removeChild(this.dragBox); this.selectedClip.parent.removeChild(this.selectedClip); } protected function createBorderEdge(_arg1:Section, _arg2:Direction, _arg3:int, _arg4:EditType):Section{ var _local5:Section; var _local6:Section; var _local7:EditBox; _local5 = _arg1.remainder(_arg2, _arg3); _local6 = _arg1.slice(_arg2, _arg3); _local7 = new EditBox(_local6.offset, _local6.limit); _local7.bind(); _local7.changeType(_arg4); this.boxes.add(_local7); return (_local5); } public function createBorders():void{ var _local1:Section; var _local2:int; var _local3:Array; var _local4:int; var _local5:Array; var _local6:Direction; var _local7:Direction; _local1 = new Section(new Point(edgeCount, edgeCount), new Point((Game.map.size().x - edgeCount), (Game.map.size().y - edgeCount))); Util.fillBlocked(_local1); Util.fillBackground(_local1, BackgroundType.STREET); _local2 = 0; _local3 = Lib.directions; while (_local2 < _local3.length) { _local6 = _local3[_local2]; _local2++; _local1 = this.createBorderEdge(_local1, _local6, (Editor.waterCount - 1), EditBox.DEEP_WATER); }; _local4 = 0; _local5 = Lib.directions; while (_local4 < _local5.length) { _local7 = _local5[_local4]; _local4++; _local1 = this.createBorderEdge(_local1, _local7, 1, EditBox.SHALLOW_WATER); }; } public function updateSelect():void{ var _local1:Point; var _local2:Point; var _local3:Point; var _local4:Point; this.selectedClip.graphics.clear(); if (this.selected != null){ if (this.selectedSquare == null){ _local1 = Game.view.window.toRelative(this.selected.getOffset().x, this.selected.getOffset().y).toPixel(); _local2 = Game.view.window.toRelative(this.selected.getLimit().x, this.selected.getLimit().y).toPixel(); this.selectedClip.graphics.lineStyle(selectedBorder, Color.editSelected); this.selectedClip.graphics.drawRect(_local1.x, _local1.y, (_local2.x - _local1.x), (_local2.y - _local1.y)); } else { _local3 = Game.view.window.toRelative(this.selectedSquare.x, this.selectedSquare.y).toPixel(); _local4 = new Point((_local3.x + Option.cellPixels), (_local3.y + Option.cellPixels)); this.selectedClip.graphics.lineStyle(selectedBorder, Color.editSelected); this.selectedClip.graphics.drawRect(_local3.x, _local3.y, (_local4.x - _local3.x), (_local4.y - _local3.y)); }; }; if (this.selectedSquare == null){ Game.update.changeSelect(null); }; this.menu.update(this.selected, this.selectedSquare); } public function endDrag(_arg1:Point):void{ var _local2:Point; var _local3:Point; var _local4:Point; var _local5:EditBox; if (((((!((this.dragOrigin == null))) && (!(Lib.outsideMap(this.dragOrigin))))) && (!(Lib.outsideMap(_arg1))))){ _local2 = this.dragOrigin; _local3 = Lib.getOffset(_local2, _arg1); _local4 = Lib.getLimit(_local2, _arg1); if (((!(this.isOverlap(_local3, _local4))) && (!(this.tooSmall(_local3, _local4))))){ if (this.selected == null){ _local5 = new EditBox(_local3, _local4); _local5.bind(); _local5.show(); this.boxes.add(_local5); this.clickSquare(_arg1); } else { this.selected.resize(_local3, _local4); this.selectedSquare = null; this.updateSelect(); }; }; this.dragOrigin = null; this.dragCurrent = null; this.dragBox.graphics.clear(); Game.view.mini.update(); Game.view.window.refresh(); }; } public function hover(_arg1:Point):void{ this.menu.hover(_arg1); } public function beginDrag(_arg1:Point):void{ var _local2:EditBox; var _local3:Point; var _local4:Point; _local2 = Game.map.getCell(_arg1.x, _arg1.y).edit; if (_local2 != null){ _local3 = _local2.getOffset(); _local4 = _local2.getLimit(); if ((((((_arg1.x == _local3.x)) || ((_arg1.x == (_local4.x - 1))))) && ((((_arg1.y == _local3.y)) || ((_arg1.y == (_local4.y - 1))))))){ this.dragOrigin = _local3.clone(); if (_arg1.x == _local3.x){ this.dragOrigin.x = (_local4.x - 1); }; if (_arg1.y == _local3.y){ this.dragOrigin.y = (_local4.y - 1); }; }; } else { if (_local2 == null){ this.dragOrigin = _arg1.clone(); this.dragCurrent = null; this.clickSquare(null); } else { this.dragOrigin = null; this.dragCurrent = null; }; }; } public function removeBoxFromList(_arg1:EditBox):void{ this.boxes.remove(_arg1); Game.view.mini.update(); Game.view.window.refresh(); } public static function createEdges():void{ var _local1:Section; var _local2:int; var _local3:Array; var _local4:Direction; var _local5:Section; _local1 = new Section(new Point(0, 0), Game.map.size().clone()); _local2 = 0; _local3 = Lib.directions; while (_local2 < _local3.length) { _local4 = _local3[_local2]; _local2++; _local5 = _local1.slice(_local4, edgeCount); Util.fillBlocked(_local5); Util.fillBackground(_local5, BackgroundType.EDGE); Util.fillAddTile(_local5, Tile.EDGE); Game.view.window.fillRegion(_local5.offset, _local5.limit); _local1 = _local1.remainder(_local4, edgeCount); }; } } }//package mapgen
Section 87
//EditPosClip (mapgen.EditPosClip) package mapgen { import flash.display.*; import flash.text.*; public dynamic class EditPosClip extends MovieClip { public var pos:TextField; } }//package mapgen
Section 88
//EditType (mapgen.EditType) package mapgen { import flash.*; import native.*; public class EditType { public var number:int; public var minSize:int; public var item:EditMenuItem; public function EditType(_arg1:int=0, _arg2:int=0, _arg3:String=null):void{ if (!Boot.skip_constructor){ this.number = _arg1; this.minSize = _arg2; this.item = new EditMenuItem(_arg3, this); }; } } }//package mapgen
Section 89
//Parameter (mapgen.Parameter) package mapgen { public class Parameter { public static var roofOverlayChance:int = 5; public static var rubbleWeight:Array = [0, 0, 0, 0, 10, 10, 30, 30, 30, 30, 30, 30, 30, 10, 30, 5, 5, 5, 5, 5]; public static var zombieStreetFactor:Number = 0.1; public static var rubbleStreetFactor:Number = 0.15; } }//package mapgen
Section 90
//PlaceBridge (mapgen.PlaceBridge) package mapgen { import flash.*; public class PlaceBridge { protected var isBroken:Boolean; protected var dir:Direction; protected static var firstCenter:Array = [202, 182, 213, 214]; protected static var secondEnd:Array = [205, 185, 273, 274]; protected static var secondCenter:Array = [203, 183, 233, 234]; protected static var rightTile:Array = [207, 187, 314, 313]; protected static var firstEnd:Array = [204, 184, 253, 254]; protected static var threeBroken:Array = [1207, 1186, 1206, 1187]; protected static var leftTile:Array = [206, 186, 294, 293]; protected static var firstBegin:Array = [200, 180, 173, 174]; protected static var randBroken:Array = [[1207, 1247], [1186, 1226], [1206, 1246], [1187, 1227]]; protected static var secondBegin:Array = [201, 181, 193, 194]; public function PlaceBridge(_arg1:Direction=null, _arg2:Boolean=false):void{ if (!Boot.skip_constructor){ this.dir = _arg1; this.isBroken = _arg2; }; } public function intersectStreet(_arg1:Section):void{ var _local2:Section; var _local3:Street; var _local4:enum; _local2 = _arg1.edge(Util.opposite(this.dir)); _local3 = _arg1.getStreet(Util.opposite(this.dir)); if (_local3 != null){ _local4 = this.dir; switch (_local4.index){ case 0: _local3.addLess(_local2.offset, 4, CrossStreet.ROAD); break; case 1: _local3.addGreater(_local2.offset, 4, CrossStreet.ROAD); break; case 2: _local3.addGreater(_local2.offset, 4, CrossStreet.ROAD); break; case 3: _local3.addLess(_local2.offset, 4, CrossStreet.ROAD); break; }; }; } public function place(_arg1:Section):void{ var _local2:PlaceTerrain; var _local3:Direction; var _local4:Section; var _local5:Section; var _local6:Section; var _local7:int; _local2 = new PlaceTerrain(); _local2.place(_arg1, PlaceTerrain.shallowWater); _local3 = Lib.rotateCW(this.dir); if (_local3 == Direction.SOUTH){ _local3 = Direction.NORTH; }; if (_local3 == Direction.EAST){ _local3 = Direction.WEST; }; _local4 = _arg1.slice(_local3, 1); _local5 = _arg1.slice(Util.opposite(_local3), 1); _local6 = _arg1.remainder(_local3, 1).remainder(Util.opposite(_local3), 1); Util.fillBlocked(_local4); Util.fillBlocked(_local5); if (this.isBroken){ this.placeBrokenEdge(_arg1, this.dir); } else { Util.fillBackground(_local6, BackgroundType.BRIDGE); Util.fillUnblocked(_local6); _local7 = Lib.directionToIndex(this.dir); Util.fillAddTile(_local4, leftTile[_local7]); Util.fillAddTile(_local5, rightTile[_local7]); this.placeInside(_local6); Main.replay.addBox(_local6.offset, _local6.limit, Option.roadMiniColor); }; } protected function placeBrokenEdge(_arg1:Section, _arg2:Direction):void{ var _local3:int; var _local4:Section; var _local5:int; var _local6:int; var _local7:Point; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:Array; _local3 = Lib.directionToIndex(_arg2); _local4 = _arg1.slice(_arg2, 1); _local5 = 0; _local6 = (Math.floor(Math.max(_local4.getSize().x, _local4.getSize().y)) - 1); _local7 = new Point(0, 0); _local8 = _local4.offset.y; _local9 = _local4.limit.y; while (_local8 < _local9) { var _temp1 = _local8; _local8 = (_local8 + 1); _local10 = _temp1; _local11 = _local4.offset.x; _local12 = _local4.limit.x; while (_local11 < _local12) { var _temp2 = _local11; _local11 = (_local11 + 1); _local13 = _temp2; _local14 = Tile.NO_TILE; if ((((_local5 == 1)) && ((_local6 == 2)))){ _local14 = threeBroken[_local3]; } else { if (_local5 == 0){ _local14 = firstBegin[_local3]; } else { if (_local5 == 1){ _local14 = secondBegin[_local3]; } else { if (_local5 == (_local6 - 1)){ _local14 = firstEnd[_local3]; } else { if (_local5 == _local6){ _local14 = secondEnd[_local3]; } else { if ((((((_local6 + 1) % 2) == 0)) && ((_local5 == (Math.floor(((_local6 + 1) / 2)) - 1))))){ _local14 = firstCenter[_local3]; } else { if ((((((_local6 + 1) % 2) == 0)) && ((_local5 == Math.floor(((_local6 + 1) / 2)))))){ _local14 = secondCenter[_local3]; } else { _local15 = randBroken[_local3]; _local14 = _local15[Util.rand(_local15.length)]; }; }; }; }; }; }; }; _local7.x = _local13; _local7.y = _local10; Util.addTile(_local7, _local14); _local5++; }; }; } protected function placeInside(_arg1:Section):void{ var _local2:Boolean; var _local3:Point; var _local4:int; var _local5:int; var _local6:Street; _local2 = (((this.dir == Direction.NORTH)) || ((this.dir == Direction.SOUTH))); _local3 = _arg1.getSize(); _local4 = _local3.x; _local5 = _local3.y; if (!_local2){ _local4 = _local3.y; _local5 = _local3.x; }; _local6 = new Street(_arg1.offset, _local4, _local5, _local2, null, null); _local6.draw(Game.map, false); } } }//package mapgen
Section 91
//PlaceIntersection (mapgen.PlaceIntersection) package mapgen { public class PlaceIntersection extends PlaceRoot { protected static var STREET:int = 3; protected static var MIDDLE:int = 1; protected static var BEGIN:int = 0; protected static var INTERSECTION:int = 0; protected static var BUILDING:int = 2; protected static var ALLEY:int = 1; protected static var END:int = 2; protected static var edges:Array = [[[1200, 198, 1201], [138, 138, 138], [98, 98, 98], [133, 178, 134]], [[1220, 198, 1221], [158, 158, 158], [118, 118, 118], [153, 218, 154]], [[1201, 198, 1221], [96, 96, 96], [94, 94, 94], [136, 199, 156]], [[1200, 198, 1220], [95, 95, 95], [93, 93, 93], [135, 197, 155]]]; protected static var corners:Array = [[[1181, 96, 94, 136], [138, 1189, 1229, 139], [98, 1189, 1221, 99], [134, 76, 74, 179]], [[1180, 95, 93, 135], [138, 1188, 1188, 137], [98, 1228, 1220, 97], [133, 75, 73, 177]], [[1201, 96, 94, 156], [158, 1209, 1209, 159], [118, 1249, 1241, 119], [154, 116, 114, 219]], [[1200, 95, 93, 155], [158, 1208, 1248, 157], [118, 1208, 1240, 117], [153, 115, 113, 217]]]; public function PlaceIntersection():void{ } protected function getEdit(_arg1:Point):EditBox{ var _local2:EditBox; _local2 = null; if (!Lib.outsideMap(_arg1)){ _local2 = Game.map.getCell(_arg1.x, _arg1.y).edit; }; return (_local2); } protected function placeCorner(_arg1:Point, _arg2:int):void{ var _local3:int; var _local4:int; var _local5:int; _local3 = this.getType(_arg1, PlaceRoot.cornerToVert(_arg2)); _local4 = this.getType(_arg1, PlaceRoot.cornerToHoriz(_arg2)); _local5 = corners[_arg2][_local3][_local4]; Util.addTile(_arg1, _local5); } protected function placeAllCorners(_arg1:Section):void{ var _local2:int; var _local3:int; var _local4:int; _local2 = 0; _local3 = PlaceRoot.CORNER_COUNT; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; this.placeCorner(_arg1.corner(_local4), _local4); }; } public function place(_arg1:Section):void{ var _local2:Point; Util.fillUnblocked(_arg1); Util.fillBackground(_arg1, BackgroundType.STREET); Util.fillClearTiles(_arg1); _local2 = _arg1.getSize(); if ((((_local2.x <= 1)) || ((_local2.y <= 1)))){ Util.fillAddTile(_arg1, 1064); } else { Util.fillAddTile(_arg1.center(), 198); this.placeAllCorners(_arg1); this.placeAllEdges(_arg1); }; } protected function hop(_arg1:Point, _arg2:Direction):Point{ var _local3:Point; _local3 = Lib.directionToDelta(_arg2); return (new Point((_arg1.x + _local3.x), (_arg1.y + _local3.y))); } protected function getTransition(_arg1:Point, _arg2:Direction):int{ var _local3:int; var _local4:Direction; var _local5:Direction; var _local6:Point; var _local7:Point; var _local8:Point; var _local9:EditBox; _local3 = MIDDLE; _local4 = Direction.WEST; _local5 = Direction.EAST; if ((((_arg2 == Direction.EAST)) || ((_arg2 == Direction.WEST)))){ _local4 = Direction.NORTH; _local5 = Direction.SOUTH; }; _local6 = this.hop(_arg1, _arg2); _local7 = this.hop(_local6, _local4); _local8 = this.hop(_local6, _local5); _local9 = this.getEdit(_local6); if (_local9 != this.getEdit(_local7)){ _local3 = BEGIN; } else { if (_local9 != this.getEdit(_local8)){ _local3 = END; }; }; return (_local3); } protected function getType(_arg1:Point, _arg2:Direction):int{ var _local3:Point; var _local4:int; var _local5:EditBox; _local3 = this.hop(_arg1, _arg2); _local4 = BUILDING; _local5 = this.getEdit(_local3); if (_local5 != null){ if (_local5.getType() == EditBox.INTERSECTION){ _local4 = INTERSECTION; } else { if ((((((((_local5.getType() == EditBox.STREET)) || ((_local5.getType() == EditBox.CORNER)))) || ((_local5.getType() == EditBox.STREET_H)))) || ((_local5.getType() == EditBox.STREET_V)))){ if (_local5.isAlley()){ _local4 = ALLEY; } else { _local4 = STREET; }; }; }; }; return (_local4); } protected function placeEdgeTile(_arg1:Point, _arg2:Direction):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local3 = Lib.directionToIndex(_arg2); _local4 = this.getType(_arg1, _arg2); _local5 = this.getTransition(_arg1, _arg2); _local6 = edges[_local3][_local4][_local5]; Util.addTile(_arg1, _local6); } protected function placeAllEdges(_arg1:Section):void{ var _local2:int; var _local3:Array; var _local4:Direction; _local2 = 0; _local3 = Lib.directions; while (_local2 < _local3.length) { _local4 = _local3[_local2]; _local2++; Util.setArea(_arg1.edge(_local4), this.placeEdgeTile, _local4); }; } } }//package mapgen
Section 92
//PlaceParkingLot (mapgen.PlaceParkingLot) package mapgen { public class PlaceParkingLot { protected static var END_BUILDING:int = 4; protected static var horizontalLot:Array = [[[517, 617], [515, 615], [535, 537], [557, 637], [555, 635]], [[455, 575], [457, 577], [475, 477], [495, 595], [497, 597]], [[518, 618], [458, 578], [478, 478], [558, 638], [498, 598]], [[519, 619], [516, 616], [536, 539], [559, 639], [556, 636]], [[456, 576], [459, 579], [476, 479], [496, 596], [499, 599]]]; protected static var MIDDLE:int = 2; protected static var BEGIN_ROAD:int = 0; protected static var HORIZ:int = 1; protected static var outsideCorner:Array = [[657, 616, 653, 655], [656, 615, 652, 654], [677, 636, 673, 675], [676, 635, 672, 674]]; protected static var END_ROAD:int = 3; protected static var NORMAL:int = 0; protected static var entranceCorner:Array = [[279, 458], [277, 458], [279, 498], [277, 498]]; protected static var insideCorner:Array = [210, 235, 212, 211]; protected static var VERT:int = 0; protected static var BEGIN_BUILDING:int = 1; protected static var verticalLot:Array = [[[357, 355], [417, 415], [418, 358], [359, 356], [419, 416]], [[317, 315], [0x0101, 0xFF], [318, 258], [319, 316], [259, 0x0100]], [[377, 375], [277, 275], [378, 378], [379, 376], [279, 276]], [[397, 395], [437, 435], [438, 398], [399, 396], [439, 436]], [[337, 335], [297, 295], [338, 298], [339, 336], [299, 296]]]; protected static var ENTRANCE:int = 1; public function PlaceParkingLot():void{ } protected function entranceIndex(_arg1:int, _arg2:int, _arg3:Boolean, _arg4:List):int{ var _local5:int; var _local6:int; var _local7:int; var _local8:*; var _local9:Point; _local5 = _arg1; _local6 = _arg2; if (!_arg3){ _local5 = _arg2; _local6 = _arg1; }; _local7 = NORMAL; _local8 = _arg4.iterator(); while (_local8.hasNext()) { _local9 = _local8.next(); if ((((_local5 == _local9.x)) && ((_local6 == _local9.y)))){ _local7 = ENTRANCE; break; }; }; return (_local7); } protected function placeVertical(_arg1:Section, _arg2:List):void{ var _local3:Array; var _local4:Array; _local3 = this.createWithArray(_arg1.getSize().y, _arg1.north, _arg1.south); _local4 = this.createCrossArray(_arg1.getSize().x, _arg1.west, _arg1.east); this.placeTiles(_arg1.offset.y, _arg1.limit.y, _local3, _arg1.offset.x, _arg1.limit.x, _local4, verticalLot, false, _arg2); } public function place(_arg1:Section, _arg2:List, _arg3:Boolean, _arg4:Direction=null):void{ var _local5:List; var _local6:Point; var _local7:*; var _local8:Point; _local5 = new List(); _local6 = null; _local7 = _arg2.iterator(); while (_local7.hasNext()) { _local8 = _local7.next(); _local6 = _local8; _local5.add(_local8.clone()); }; if (_arg4 == null){ if (_local6 != null){ if ((((_local6.y == _arg1.offset.y)) || ((_local6.y == (_arg1.limit.y - 1))))){ _arg4 = Direction.NORTH; } else { _arg4 = Direction.WEST; }; } else { _arg4 = Direction.NORTH; }; }; Util.fillClearTiles(_arg1); Util.fillUnblocked(_arg1); Util.fillBackground(_arg1, BackgroundType.STREET); if ((((_arg4 == Direction.NORTH)) || ((_arg4 == Direction.SOUTH)))){ this.placeHorizontal(_arg1, _local5); } else { this.placeVertical(_arg1, _local5); }; if (_arg3){ this.placeRubble(_arg1); }; } protected function fixEdges(_arg1:Array, _arg2:Street, _arg3:Street):void{ if (_arg2 == null){ _arg1[0] = BEGIN_BUILDING; } else { _arg1[0] = BEGIN_ROAD; }; if (_arg3 == null){ _arg1[(_arg1.length - 1)] = END_BUILDING; } else { _arg1[(_arg1.length - 1)] = END_ROAD; }; } protected function placeRubble(_arg1:Section):void{ var _local2:Point; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; _local2 = _arg1.getSize(); _local3 = (Math.ceil(((_local2.x * _local2.y) * Parameter.rubbleStreetFactor)) + 1); _local4 = Util.rand(_local3); _local5 = 0; while (_local5 < _local4) { var _temp1 = _local5; _local5 = (_local5 + 1); _local6 = _temp1; _local7 = (_arg1.offset.x + Util.rand(_local2.x)); _local8 = (_arg1.offset.y + Util.rand(_local2.y)); Util.placeSingleSalvage(Game.map, _local7, _local8); }; } protected function placeHorizontal(_arg1:Section, _arg2:List):void{ var _local3:Array; var _local4:Array; _local3 = this.createWithArray(_arg1.getSize().x, _arg1.west, _arg1.east); _local4 = this.createCrossArray(_arg1.getSize().y, _arg1.north, _arg1.south); this.placeTiles(_arg1.offset.x, _arg1.limit.x, _local3, _arg1.offset.y, _arg1.limit.y, _local4, horizontalLot, true, _arg2); } protected function createCrossArray(_arg1:int, _arg2:Street, _arg3:Street):Array{ var _local4:Array; var _local5:int; _local4 = []; _local5 = _arg1; if ((_local5 % 3) != 0){ _local4.push(BEGIN_BUILDING); _local4.push(END_BUILDING); _local5 = (_local5 - 2); }; while (_local5 >= 3) { _local4.push(BEGIN_BUILDING); _local4.push(MIDDLE); _local4.push(END_BUILDING); _local5 = (_local5 - 3); }; if (_local5 == 2){ _local4.push(BEGIN_BUILDING); _local4.push(END_BUILDING); }; this.fixEdges(_local4, _arg2, _arg3); return (_local4); } protected function createWithArray(_arg1:int, _arg2:Street, _arg3:Street):Array{ var _local4:Array; var _local5:int; var _local6:int; _local4 = []; _local5 = 0; while (_local5 < _arg1) { var _temp1 = _local5; _local5 = (_local5 + 1); _local6 = _temp1; _local4.push(MIDDLE); }; this.fixEdges(_local4, _arg2, _arg3); return (_local4); } protected function getPoint(_arg1:int, _arg2:int, _arg3:Boolean):Point{ var _local4:Point; _local4 = new Point(_arg1, _arg2); if (!_arg3){ _local4.x = _arg2; _local4.y = _arg1; }; return (_local4); } protected function addEntrances(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Array, _arg6:Boolean, _arg7:List):void{ var _local8:int; var _local9:int; var _local10:int; var _local11:int; _local8 = Math.floor(((_arg1 + _arg2) / 2)); _local9 = 1; _local10 = (_arg5.length - 1); while (_local9 < _local10) { var _temp1 = _local9; _local9 = (_local9 + 1); _local11 = _temp1; if ((((_arg5[_local11] == BEGIN_BUILDING)) || ((_arg5[_local11] == END_BUILDING)))){ _arg7.add(this.getPoint(_local8, (_arg3 + _local11), _arg6)); }; }; } protected function placeSingleTile(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean):void{ var _local5:int; var _local6:int; _local5 = _arg1; _local6 = _arg2; if (!_arg4){ _local5 = _arg2; _local6 = _arg1; }; Util.addTile(new Point(_local5, _local6), _arg3); } protected function placeTiles(_arg1:int, _arg2:int, _arg3:Array, _arg4:int, _arg5:int, _arg6:Array, _arg7:Array, _arg8:Boolean, _arg9:List):void{ var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:int; var _local16:int; var _local17:int; var _local18:int; this.addEntrances(_arg1, _arg2, _arg4, _arg5, _arg6, _arg8, _arg9); _local10 = _arg1; while (_local10 < _arg2) { var _temp1 = _local10; _local10 = (_local10 + 1); _local11 = _temp1; _local12 = (_local11 - _arg1); _local13 = _arg4; while (_local13 < _arg5) { var _temp2 = _local13; _local13 = (_local13 + 1); _local14 = _temp2; _local15 = (_local14 - _arg4); _local16 = _arg3[_local12]; _local17 = _arg6[_local15]; _local18 = this.entranceIndex(_local11, _local14, _arg8, _arg9); this.placeSingleTile(_local11, _local14, _arg7[_local16][_local17][_local18], _arg8); }; }; } public static function addCrossStreet(_arg1:Section, _arg2:Point, _arg3:Direction, _arg4:CrossStreet):void{ if ((((_arg3 == Direction.NORTH)) && (!((_arg1.north == null))))){ _arg1.north.addGreater(_arg2, 1, _arg4); } else { if ((((_arg3 == Direction.SOUTH)) && (!((_arg1.south == null))))){ _arg1.south.addLess(_arg2, 1, _arg4); } else { if ((((_arg3 == Direction.EAST)) && (!((_arg1.east == null))))){ _arg1.east.addLess(_arg2, 1, _arg4); } else { if ((((_arg3 == Direction.WEST)) && (!((_arg1.west == null))))){ _arg1.west.addGreater(_arg2, 1, _arg4); }; }; }; }; } public static function fixCorner(_arg1:Section, _arg2:Section, _arg3:Section, _arg4:int, _arg5:Boolean):void{ var _local6:Direction; var _local7:Direction; var _local8:int; Util.addTile(_arg1.offset, insideCorner[_arg4]); _local6 = PlaceRoot.cornerToVert(_arg4); _local7 = PlaceRoot.cornerToHoriz(_arg4); _local8 = 0; if (_arg2.getStreet(_local6) != null){ _local8 = (_local8 + 2); }; if (_arg2.getStreet(_local7) != null){ _local8 = (_local8 + 1); }; Util.addTile(_arg2.offset, outsideCorner[_arg4][_local8]); _local8 = 0; if (!_arg5){ _local8 = 1; }; Util.addTile(_arg3.offset, entranceCorner[_arg4][_local8]); } } }//package mapgen
Section 93
//PlacePlaza (mapgen.PlacePlaza) package mapgen { public class PlacePlaza extends PlaceRoot { public function PlacePlaza():void{ } public function place(_arg1:Section):void{ Util.fillAddTile(_arg1, 872); Util.fillUnblocked(_arg1); Util.fillBackground(_arg1, BackgroundType.STREET); } } }//package mapgen
Section 94
//PlaceRoot (mapgen.PlaceRoot) package mapgen { public class PlaceRoot { public static var CORNER_COUNT:int = 4; protected static var oppositeCornerTable:Array = [SOUTHWEST, SOUTHEAST, NORTHWEST, NORTHEAST]; public static var NORTHWEST:int = 1; public static var NORTHEAST:int = 0; public static var SOUTHWEST:int = 3; protected static var NORTH:int = 0; public static var SOUTHEAST:int = 2; protected static var SOUTH:int = 1; protected static var WEST:int = 3; protected static var EAST:int = 2; public static function cornerToVert(_arg1:int):Direction{ if ((((_arg1 == NORTHEAST)) || ((_arg1 == NORTHWEST)))){ return (Direction.NORTH); }; return (Direction.SOUTH); } protected static function lessCorner(_arg1:Direction):int{ var _local2:int; var _local3:enum; _local2 = NORTHWEST; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = NORTHWEST; break; case 1: _local2 = SOUTHWEST; break; case 2: _local2 = NORTHEAST; break; case 3: _local2 = NORTHWEST; break; }; return (_local2); } public static function oppositeCorner(_arg1:int):int{ return (oppositeCornerTable[_arg1]); } protected static function clockwiseCorner(_arg1:Direction):int{ var _local2:int; var _local3:enum; _local2 = NORTHEAST; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = NORTHEAST; break; case 1: _local2 = SOUTHWEST; break; case 2: _local2 = SOUTHEAST; break; case 3: _local2 = NORTHWEST; break; }; return (_local2); } public static function cornerToHoriz(_arg1:int):Direction{ if ((((_arg1 == NORTHEAST)) || ((_arg1 == SOUTHEAST)))){ return (Direction.EAST); }; return (Direction.WEST); } protected static function greaterCorner(_arg1:Direction):int{ var _local2:int; var _local3:enum; _local2 = NORTHEAST; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = NORTHEAST; break; case 1: _local2 = SOUTHEAST; break; case 2: _local2 = SOUTHEAST; break; case 3: _local2 = SOUTHWEST; break; }; return (_local2); } } }//package mapgen
Section 95
//PlaceStreetCorner (mapgen.PlaceStreetCorner) package mapgen { public class PlaceStreetCorner extends PlaceRoot { protected static var TWO_LEFT:int = 1; protected static var MULTI_PATCH:int = 11; protected static var VERTICAL:int = 0; protected static var LARGE_ROAD:int = 1; protected static var corners:Array = [[1141, 84, 103, 84, 1151, 1204, 1155, 1157, 1153, 1159, 1143, 1204, 1149], [1140, 81, 102, 81, 1150, 1203, 1154, 1156, 1152, 1158, 1142, 1203, 1148], [1161, 144, 123, 144, 1171, 1224, 1175, 1177, 1173, 1179, 1163, 1224, 1169], [1160, 141, 122, 141, 1170, 1223, 1174, 1176, 1172, 1178, 1162, 1223, 1168]]; protected static var FOUR_MIDDLE:int = 12; protected static var edges:Array = [[20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 29, 24, 25], [11, 31, 51, 71, 91, 111, 131, 151, 171, 191, 191, 91, 111]]; protected static var MULTI_A:int = 3; protected static var MULTI_B:int = 4; protected static var MULTI_C:int = 5; protected static var MULTI_D:int = 6; protected static var MULTI_E:int = 7; protected static var MULTI_F:int = 8; protected static var MULTI_G:int = 9; protected static var HORIZONTAL:int = 1; protected static var TWO_RIGHT:int = 2; protected static var transitions:Array = [[[104, 1145], [83, 1147]], [[101, 1146], [82, 1144]], [[124, 1167], [143, 1165]], [[121, 1164], [142, 1166]]]; protected static var ALLEY:int = 0; protected static var THREE_MIDDLE:int = 10; protected static var types:Array = [[ALLEY], [TWO_LEFT, TWO_RIGHT], [MULTI_A, THREE_MIDDLE, MULTI_F], [MULTI_A, FOUR_MIDDLE, MULTI_D, MULTI_F]]; protected static var SMALL_ROAD:int = 0; public function PlaceStreetCorner():void{ } protected function getType(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:Boolean; _local3 = Tile.NO_TILE; if (_arg2 <= 4){ _local3 = types[(_arg2 - 1)][_arg1]; } else { _local4 = ((_arg2 % 2) == 0); if (_arg1 == 0){ _local3 = MULTI_A; } else { if (_arg1 == (_arg2 - 1)){ _local3 = MULTI_F; } else { if (((_local4) && ((_arg1 == (Math.floor((_arg2 / 2)) - 1))))){ _local3 = MULTI_C; } else { if (((_local4) && ((_arg1 == Math.floor((_arg2 / 2)))))){ _local3 = MULTI_D; } else { if (((!(_local4)) && ((_arg1 == Math.floor((_arg2 / 2)))))){ _local3 = MULTI_G; } else { if (_arg1 < Math.floor((_arg2 / 2))){ if (_arg1 > 1){ _local3 = MULTI_PATCH; } else { _local3 = MULTI_B; }; } else { _local3 = MULTI_E; }; }; }; }; }; }; }; return (_local3); } protected function placeEdge(_arg1:Section, _arg2:Direction, _arg3:int, _arg4:int):void{ var _local5:int; var _local6:int; var _local7:int; _local5 = this.getType(_arg3, _arg4); if ((((_arg2 == Direction.EAST)) || ((_arg2 == Direction.SOUTH)))){ _local5 = this.getType(((_arg4 - _arg3) - 1), _arg4); }; _local6 = VERTICAL; if ((((_arg2 == Direction.SOUTH)) || ((_arg2 == Direction.NORTH)))){ _local6 = HORIZONTAL; }; _local7 = edges[_local6][_local5]; Util.fillAddTile(_arg1, _local7); } public function place(_arg1:Section, _arg2:Direction):void{ var _local3:int; var _local4:Point; var _local5:int; var _local6:Section; var _local7:int; var _local8:int; Util.fillUnblocked(_arg1); Util.fillBackground(_arg1, BackgroundType.STREET); Util.fillClearTiles(_arg1); _local3 = PlaceRoot.clockwiseCorner(_arg2); _local4 = _arg1.getSize(); _local5 = Math.floor(Math.min(_local4.x, _local4.y)); _local6 = _arg1; _local7 = _local5; _local8 = 0; while (_local5 > 0) { _local6 = this.placeNext(_local6, _local3, _local8, _local7); _local4 = _local6.getSize(); _local5 = Math.floor(Math.min(_local4.x, _local4.y)); _local8++; }; } protected function placeNext(_arg1:Section, _arg2:int, _arg3:int, _arg4:int):Section{ var _local5:Direction; var _local6:Direction; var _local7:Section; var _local8:Section; var _local9:Point; var _local10:Section; var _local11:Section; var _local12:Section; _local5 = PlaceRoot.cornerToVert(_arg2); _local6 = PlaceRoot.cornerToHoriz(_arg2); _local7 = _arg1.slice(_local6, 1).remainder(_local5, 1); _local8 = _arg1.slice(_local5, 1).remainder(_local6, 1); _local9 = _arg1.corner(_arg2); if ((((_arg3 == 0)) && ((_arg4 > 1)))){ _local11 = _local7.slice(_local5, 1); _local7 = _local7.remainder(_local5, 1); _local12 = _local8.slice(_local6, 1); _local8 = _local8.remainder(_local6, 1); this.placeTransition(_local11, _local6, _arg2, _arg4); this.placeTransition(_local12, _local5, _arg2, _arg4); }; this.placeEdge(_local7, _local6, _arg3, _arg4); this.placeEdge(_local8, _local5, _arg3, _arg4); this.placeCorner(_local9, _arg2, _arg3, _arg4); _local10 = _arg1.remainder(_local6, 1).remainder(_local5, 1); return (_local10); } protected function placeTransition(_arg1:Section, _arg2:Direction, _arg3:int, _arg4:int):void{ var _local5:int; var _local6:int; var _local7:int; _local5 = VERTICAL; if ((((_arg2 == Direction.NORTH)) || ((_arg2 == Direction.SOUTH)))){ _local5 = HORIZONTAL; }; _local6 = SMALL_ROAD; if (_arg4 > 2){ _local6 = LARGE_ROAD; }; _local7 = transitions[_arg3][_local5][_local6]; Util.fillAddTile(_arg1, _local7); } protected function placeCorner(_arg1:Point, _arg2:int, _arg3:int, _arg4:int):void{ var _local5:int; var _local6:int; _local5 = this.getType(_arg3, _arg4); _local6 = corners[_arg2][_local5]; Util.addTile(_arg1, _local6); } } }//package mapgen
Section 96
//PlaceTerrain (mapgen.PlaceTerrain) package mapgen { public class PlaceTerrain extends PlaceRoot { public static var shallowWater:Terrain = new Terrain(PlaceTerrain.isWater, true, BackgroundType.WATER, [989, 160, 165, 161, 60, 80, 949, 1119, 65, 969, 145, 1118, 64, 1139, 1138, 929]); protected static var cornerOffset:Array = [[new Point(0, -1), new Point(1, -1), new Point(1, 0)], [new Point(0, -1), new Point(-1, -1), new Point(-1, 0)], [new Point(0, 1), new Point(1, 1), new Point(1, 0)], [new Point(0, 1), new Point(-1, 1), new Point(-1, 0)]]; public static var park:Terrain = new Terrain(PlaceTerrain.isPark, false, BackgroundType.PARK, [87, 215, 216, 67, 195, 88, 231, 68, 196, 232, 86, 66, 107, 108, 106, 246]); public static var deepWater:Terrain = new Terrain(PlaceTerrain.isDeepWater, true, BackgroundType.WATER, [147, 166, 168, 167, 126, 146, 1082, 1097, 128, 1086, 148, 1096, 127, 1077, 1095, 994]); public function PlaceTerrain():void{ } public function place(_arg1:Section, _arg2:Terrain):void{ var _local3:Point; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; Util.fillChangeBlocked(_arg1, _arg2.isBlocked()); Util.fillBackground(_arg1, _arg2.getBackground()); Util.fillClearTiles(_arg1); _local3 = new Point(0, 0); _local4 = _arg1.offset.y; _local5 = _arg1.limit.y; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; _local7 = _arg1.offset.x; _local8 = _arg1.limit.x; while (_local7 < _local8) { var _temp2 = _local7; _local7 = (_local7 + 1); _local9 = _temp2; _local3.x = _local9; _local3.y = _local6; _local10 = this.checkCorners(_local3, _arg2); Util.addTile(_local3, _arg2.getCorner(_local10)); }; }; } protected function checkCorners(_arg1:Point, _arg2:Terrain):int{ var _local3:int; var _local4:Point; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:Array; var _local10:Point; var _local11:MapCell; _local3 = 0; _local4 = new Point(0, 0); _local5 = 0; _local6 = PlaceRoot.CORNER_COUNT; while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local7 = _temp1; _local8 = 0; _local9 = cornerOffset[_local7]; while (_local8 < _local9.length) { _local10 = _local9[_local8]; _local8++; _local4.x = (_arg1.x + _local10.x); _local4.y = (_arg1.y + _local10.y); if (!Lib.outsideMap(_local4)){ _local11 = Game.map.getCell(_local4.x, _local4.y); if ((((((((_local11.edit == null)) || (!(_arg2.isTerrain(_local11.edit.getType()))))) && (((!((_local11.getBackground() == _arg2.getBackground()))) || (!((_arg2 == shallowWater))))))) && (!((_local11.getBackground() == BackgroundType.EDGE))))){ _local3 = (_local3 | (1 << _local7)); }; }; }; }; return (_local3); } protected static function isDeepWater(_arg1:EditType):Boolean{ return ((_arg1 == EditBox.DEEP_WATER)); } protected static function isWater(_arg1:EditType):Boolean{ return ((((((_arg1 == EditBox.SHALLOW_WATER)) || ((_arg1 == EditBox.DEEP_WATER)))) || ((_arg1 == EditBox.BRIDGE)))); } protected static function isPark(_arg1:EditType):Boolean{ return ((((((((((_arg1 == EditBox.SHALLOW_WATER)) || ((_arg1 == EditBox.CHURCH)))) || ((_arg1 == EditBox.HOUSE)))) || ((_arg1 == EditBox.PARK)))) || ((_arg1 == EditBox.BRIDGE)))); } } }//package mapgen
Section 97
//Section (mapgen.Section) package mapgen { import flash.*; public class Section { public var east:Street; public var north:Street; public var south:Street; public var offset:Point; public var limit:Point; public var west:Street; public function Section(_arg1:Point=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ this.offset = _arg1.clone(); this.limit = _arg2.clone(); this.north = null; this.south = null; this.east = null; this.west = null; }; } public function northeast():Point{ return (new Point((this.limit.x - 1), this.offset.y)); } public function setStreet(_arg1:Direction, _arg2:Street):void{ var _local3:enum; _local3 = _arg1; switch (_local3.index){ case 0: this.north = _arg2; break; case 1: this.south = _arg2; break; case 2: this.east = _arg2; break; case 3: this.west = _arg2; break; }; } public function southeast():Point{ return (new Point((this.limit.x - 1), (this.limit.y - 1))); } public function slice(_arg1:Direction, _arg2:int):Section{ var _local3:Section; var _local4:enum; _local3 = null; _local4 = _arg1; switch (_local4.index){ case 0: _local3 = new Section(this.offset, new Point(this.limit.x, (this.offset.y + _arg2))); break; case 1: _local3 = new Section(new Point(this.offset.x, (this.limit.y - _arg2)), this.limit); break; case 2: _local3 = new Section(new Point((this.limit.x - _arg2), this.offset.y), this.limit); break; case 3: _local3 = new Section(this.offset, new Point((this.offset.x + _arg2), this.limit.y)); break; }; _local3.north = this.north; _local3.south = this.south; _local3.east = this.east; _local3.west = this.west; _local3.setStreet(Util.opposite(_arg1), null); return (_local3); } public function corner(_arg1:int):Point{ var _local2:Point; _local2 = null; if (_arg1 == PlaceRoot.NORTHEAST){ _local2 = this.northeast(); } else { if (_arg1 == PlaceRoot.NORTHWEST){ _local2 = this.northwest(); } else { if (_arg1 == PlaceRoot.SOUTHEAST){ _local2 = this.southeast(); } else { if (_arg1 == PlaceRoot.SOUTHWEST){ _local2 = this.southwest(); }; }; }; }; return (_local2); } public function randSublot(_arg1:Point):Section{ var _local2:int; var _local3:int; var _local4:Section; _local2 = Util.rand((((this.limit.x - this.offset.x) - _arg1.x) + 1)); _local3 = Util.rand((((this.limit.y - this.offset.y) - _arg1.y) + 1)); _local4 = new Section(new Point((this.offset.x + _local2), (this.offset.y + _local3)), new Point(((this.offset.x + _local2) + _arg1.x), ((this.offset.y + _local3) + _arg1.y))); _local4.north = this.north; _local4.south = this.south; _local4.east = this.east; _local4.west = this.west; return (_local4); } public function extend(_arg1:Direction, _arg2:int):Section{ var _local3:Section; var _local4:enum; _local3 = null; _local4 = _arg1; switch (_local4.index){ case 0: _local3 = new Section(new Point(this.offset.x, (this.offset.y - _arg2)), this.limit); break; case 1: _local3 = new Section(this.offset, new Point(this.limit.x, (this.limit.y + _arg2))); break; case 2: _local3 = new Section(this.offset, new Point((this.limit.x + _arg2), this.limit.y)); break; case 3: _local3 = new Section(new Point((this.offset.x - _arg2), this.offset.y), this.limit); break; }; return (_local3); } public function center():Section{ return (new Section(new Point((this.offset.x + 1), (this.offset.y + 1)), new Point((this.limit.x - 1), (this.limit.y - 1)))); } public function clone():Section{ var _local1:Section; _local1 = new Section(this.offset, this.limit); _local1.north = this.north; _local1.south = this.south; _local1.east = this.east; _local1.west = this.west; return (_local1); } public function contains(_arg1:Point):Boolean{ return ((((((((_arg1.x >= this.offset.x)) && ((_arg1.x < this.limit.x)))) && ((_arg1.y >= this.offset.y)))) && ((_arg1.y < this.limit.y)))); } public function remainder(_arg1:Direction, _arg2:int):Section{ return (this.slice(Util.opposite(_arg1), (this.dirSize(_arg1) - _arg2))); } public function dirSize(_arg1:Direction):int{ var _local2:int; _local2 = 0; if ((((_arg1 == Direction.NORTH)) || ((_arg1 == Direction.SOUTH)))){ _local2 = (this.limit.y - this.offset.y); } else { _local2 = (this.limit.x - this.offset.x); }; return (_local2); } public function isNear(_arg1:Point, _arg2:int):Boolean{ var _local3:int; var _local4:int; _local3 = 0; if (_arg1.x < this.offset.x){ _local3 = (this.offset.x - _arg1.x); } else { if (_arg1.x >= this.limit.x){ _local3 = ((_arg1.x - this.limit.x) + 1); }; }; _local4 = 0; if (_arg1.y < this.offset.y){ _local4 = (this.offset.y - _arg1.y); } else { if (_arg1.y >= this.limit.y){ _local4 = ((_arg1.y - this.limit.y) + 1); }; }; return ((((_local3 < _arg2)) && ((_local4 < _arg2)))); } public function northwest():Point{ return (this.offset.clone()); } public function getSize():Point{ return (new Point((this.limit.x - this.offset.x), (this.limit.y - this.offset.y))); } public function getStreet(_arg1:Direction):Street{ var _local2:Street; var _local3:enum; _local2 = this.north; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = this.north; break; case 1: _local2 = this.south; break; case 2: _local2 = this.east; break; case 3: _local2 = this.west; break; }; return (_local2); } public function centerPoint():Point{ var _local1:int; var _local2:int; _local1 = ((this.limit.x + this.offset.x) - 1); _local2 = ((this.limit.y + this.offset.y) - 1); return (new Point(Math.floor((_local1 / 2)), Math.floor((_local2 / 2)))); } public function southwest():Point{ return (new Point(this.offset.x, (this.limit.y - 1))); } public function edge(_arg1:Direction):Section{ var _local2:Section; var _local3:enum; _local2 = null; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = new Section(new Point((this.offset.x + 1), this.offset.y), new Point((this.limit.x - 1), (this.offset.y + 1))); _local2.north = this.north; break; case 1: _local2 = new Section(new Point((this.offset.x + 1), (this.limit.y - 1)), new Point((this.limit.x - 1), this.limit.y)); _local2.south = this.south; break; case 2: _local2 = new Section(new Point((this.limit.x - 1), (this.offset.y + 1)), new Point(this.limit.x, (this.limit.y - 1))); _local2.east = this.east; break; case 3: _local2 = new Section(new Point(this.offset.x, (this.offset.y + 1)), new Point((this.offset.x + 1), (this.limit.y - 1))); break; }; return (_local2); } public static function save(_arg1:Section){ return ({offset:_arg1.offset.save(), limit:_arg1.limit.save()}); } public static function load(_arg1):Section{ return (new Section(Point.load(_arg1.offset), Point.load(_arg1.limit))); } } }//package mapgen
Section 98
//Street (mapgen.Street) package mapgen { import logic.*; import flash.*; public class Street { protected var isVertical:Boolean; protected var width:int; protected var greater:Array; protected var drawLessEnd:Boolean; protected var less:Array; protected var start:Point; protected var drawGreaterEnd:Boolean; protected var length:int; protected static var road:Array = [[Tile.alley], [Tile.twoLaneLeft, Tile.twoLaneRight], [Tile.multiLaneA, Tile.multiLaneG, Tile.multiLaneF], [Tile.multiLaneA, Tile.multiLaneC, Tile.multiLaneD, Tile.multiLaneF]]; protected static var greaterEdgeHoriz:Array = [[Tile.swCornerFadeBoth, Tile.swCornerFadeBoth, Tile.swCornerFadeBoth, Tile.fadeWestWalkSouth, Tile.fadeWestAlleySouth], [Tile.swCornerFadeSouth, Tile.seCornerFadeSouth, Tile.fadeFromSouth, Tile.walkSouth, Tile.alleySouth], [Tile.seCornerFadeBoth, Tile.seCornerFadeBoth, Tile.seCornerFadeBoth, Tile.fadeEastWalkSouth, Tile.fadeEastAlleySouth]]; protected static var centerVert:Array = [Tile.fadeFromNorth, Tile.centerRoad, Tile.fadeFromSouth]; protected static var centerHoriz:Array = [Tile.fadeFromWest, Tile.centerRoad, Tile.fadeFromEast]; protected static var greaterEdgeVert:Array = [[Tile.neCornerFadeBoth, Tile.neCornerFadeBoth, Tile.neCornerFadeBoth, Tile.fadeNorthWalkEast, Tile.fadeNorthAlleyEast], [Tile.neCornerFadeEast, Tile.seCornerFadeEast, Tile.fadeFromEast, Tile.walkEast, Tile.alleyEast], [Tile.seCornerFadeBoth, Tile.seCornerFadeBoth, Tile.seCornerFadeBoth, Tile.fadeSouthWalkEast, Tile.fadeSouthAlleyEast]]; protected static var lessEdgeVert:Array = [[Tile.nwCornerFadeBoth, Tile.nwCornerFadeBoth, Tile.nwCornerFadeBoth, Tile.fadeNorthWalkWest, Tile.fadeNorthAlleyWest], [Tile.nwCornerFadeWest, Tile.swCornerFadeWest, Tile.fadeFromWest, Tile.walkWest, Tile.alleyWest], [Tile.swCornerFadeBoth, Tile.swCornerFadeBoth, Tile.swCornerFadeBoth, Tile.fadeSouthWalkWest, Tile.fadeSouthAlleyWest]]; protected static var parkingAlleyOverlay:Array = [[649, 650, 648], [669, 670, 668], [609, 629, 628], [610, 630, 608]]; protected static var parkingOverlay:Array = [[590, 591, 236], [450, 451, 238], [651, 671, 239], [611, 631, 237]]; protected static var lessEdgeHoriz:Array = [[Tile.nwCornerFadeBoth, Tile.nwCornerFadeBoth, Tile.nwCornerFadeBoth, Tile.fadeWestWalkNorth, Tile.fadeWestAlleyNorth], [Tile.nwCornerFadeNorth, Tile.neCornerFadeNorth, Tile.fadeFromNorth, Tile.walkNorth, Tile.alleyNorth], [Tile.neCornerFadeBoth, Tile.neCornerFadeBoth, Tile.neCornerFadeBoth, Tile.fadeEastWalkNorth, Tile.fadeEastAlleyNorth]]; public function Street(_arg1:Point=null, _arg2:int=0, _arg3:int=0, _arg4:Boolean=false, _arg5:Street=null, _arg6:Street=null):void{ var _local7:int; var _local8:int; var _local9:CrossStreet; var _local10:int; super(); if (!Boot.skip_constructor){ this.start = _arg1.clone(); this.width = _arg2; this.length = _arg3; this.isVertical = _arg4; this.less = []; this.greater = []; _local7 = 0; _local8 = this.length; while (_local7 < _local8) { var _temp1 = _local7; _local7 = (_local7 + 1); _local10 = _temp1; this.less.push(CrossStreet.NONE); this.greater.push(CrossStreet.NONE); }; _local9 = CrossStreet.NONE; if (this.width == 1){ _local9 = CrossStreet.ALLEY; } else { if (this.width > 1){ _local9 = CrossStreet.ROAD; }; }; if (_arg5 != null){ _arg5.addGreater(this.start, this.width, _local9); }; if (_arg6 != null){ _arg6.addLess(this.start, this.width, _local9); }; this.drawLessEnd = !((_arg5 == null)); this.drawGreaterEnd = !((_arg6 == null)); }; } public function edgeCol(_arg1:int, _arg2:int, _arg3:Array, _arg4:Array):int{ if (((this.isRoad(_arg1, _arg4)) && (!(this.isRoad((_arg1 - 1), _arg4))))){ return (_arg3[_arg2][0]); }; if (((this.isRoad(_arg1, _arg4)) && (!(this.isRoad((_arg1 + 1), _arg4))))){ return (_arg3[_arg2][1]); }; if (this.isRoad(_arg1, _arg4)){ return (_arg3[_arg2][2]); }; if (_arg4[_arg1] == CrossStreet.ALLEY){ return (_arg3[_arg2][4]); }; return (_arg3[_arg2][3]); } public function draw(_arg1:Map, _arg2=null):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; _local3 = 0; _local4 = this.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = 0; _local7 = this.width; while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local8 = _temp2; this.drawTile(_arg1, _local5, _local8); }; }; if (_arg2 != false){ this.fillStreet(_arg1, Parameter.rubbleStreetFactor, this.placeUnbiasedSalvage); if (Game.settings.getEasterEgg() != GameSettings.FIDDLERSGREEN){ this.fillStreet(_arg1, Parameter.zombieStreetFactor, Util.placeSingleZombie); }; }; } protected function calculateOverlay(_arg1:int, _arg2:int):int{ var _local3:int; _local3 = this.calculateLessOverlay(_arg1, _arg2); if (_local3 == Tile.NO_TILE){ _local3 = this.calculateGreaterOverlay(_arg1, _arg2); }; return (_local3); } public function getWidth():int{ return (this.width); } protected function drawTile(_arg1:Map, _arg2:int, _arg3:int):void{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; _local4 = this.calculateTile(_arg2, _arg3); _local5 = 0; _local6 = 0; if (this.isVertical){ _local5 = (this.start.x + _arg3); _local6 = (this.start.y + _arg2); } else { _local5 = (this.start.x + _arg2); _local6 = (this.start.y + _arg3); }; _arg1.getCell(_local5, _local6).clearTiles(); _arg1.getCell(_local5, _local6).addTile(_local4); _local7 = Tile.NO_TILE; _local8 = Tile.NO_TILE; if (this.width > 1){ _local7 = this.calculateOverlay(_arg2, _arg3); } else { _local7 = this.calculateLessOverlay(_arg2, _arg3); _local8 = this.calculateGreaterOverlay(_arg2, _arg3); }; if (_local7 != Tile.NO_TILE){ _arg1.getCell(_local5, _local6).addTile(_local7); }; if (_local8 != Tile.NO_TILE){ _arg1.getCell(_local5, _local6).addTile(_local8); }; if (this.width > 1){ _arg1.getCell(_local5, _local6).setBackground(BackgroundType.STREET); } else { _arg1.getCell(_local5, _local6).setBackground(BackgroundType.ALLEY); }; _arg1.getCell(_local5, _local6).clearBlocked(); } public function setDrawGreater():void{ this.drawGreaterEnd = true; } protected function isCrossed(_arg1:int):Boolean{ return ((((this.less[_arg1] == CrossStreet.ROAD)) || ((this.greater[_arg1] == CrossStreet.ROAD)))); } protected function calculateIntersection(_arg1:int, _arg2:int):int{ if (((!(this.isCrossed((_arg1 - 1)))) && (!(this.isCrossed((_arg1 - 2)))))){ return (this.calculateCol(_arg1, _arg2, Tile.BEGIN)); }; if (((!(this.isCrossed((_arg1 + 1)))) && (!(this.isCrossed((_arg1 + 2)))))){ return (this.calculateCol(_arg1, _arg2, Tile.END)); }; return (this.calculateCol(_arg1, _arg2, Tile.MIDDLE)); } public function addGreater(_arg1:Point, _arg2:int, _arg3:CrossStreet):void{ this.addChild(_arg1, _arg2, _arg3, this.greater); } public function addLess(_arg1:Point, _arg2:int, _arg3:CrossStreet):void{ this.addChild(_arg1, _arg2, _arg3, this.less); } protected function hasAlley(_arg1:int, _arg2:int):Boolean{ return ((((((_arg2 == 0)) && ((this.less[_arg1] == CrossStreet.ALLEY)))) || ((((_arg2 == (this.width - 1))) && ((this.greater[_arg1] == CrossStreet.ALLEY)))))); } public function getLength():int{ return (this.length); } protected function getNormal(_arg1:int, _arg2:int, _arg3:int):int{ var _local4:int; var _local5:int; var _local6:int; _local4 = 0; _local5 = 0; _local6 = 0; if (this.hasAlley(_arg1, _arg2)){ _local5 = this.getAlleyOffset(_arg2); if (this.isVertical){ _local4 = Tile.alleyVertical[_arg3]; _local6 = Tile.verticalFactor; } else { _local4 = Tile.alleyHorizontal[_arg3]; _local6 = Tile.horizontalFactor; }; } else { if (this.width <= 4){ _local5 = road[(this.width - 1)][_arg2]; } else { _local5 = this.roadTile(this.width, _arg2); }; if (this.isVertical){ _local4 = Tile.roadVertical[_arg3]; _local6 = Tile.verticalFactor; } else { _local4 = Tile.roadHorizontal[_arg3]; _local6 = Tile.horizontalFactor; }; }; return ((_local4 + (_local5 * _local6))); } protected function getAlleyOffset(_arg1:int):int{ var _local2:int; _local2 = 0; if (_arg1 == 0){ if (this.width == 2){ _local2 = Tile.alleyCrossTwoLeft; } else { _local2 = Tile.alleyCrossMultiLeft; }; } else { if (this.width == 2){ _local2 = Tile.alleyCrossTwoRight; } else { _local2 = Tile.alleyCrossMultiRight; }; }; return (_local2); } protected function crossedBy(_arg1:int, _arg2:CrossStreet):Boolean{ return ((((this.less[_arg1] == _arg2)) || ((this.greater[_arg1] == _arg2)))); } protected function fillStreet(_arg1:Map, _arg2:Number, _arg3:Function):void{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; _local4 = (Math.ceil(((this.length * this.width) * _arg2)) + 1); _local5 = Util.rand(_local4); _local6 = 0; while (_local6 < _local5) { var _temp1 = _local6; _local6 = (_local6 + 1); _local7 = _temp1; _local8 = 0; _local9 = 0; if (this.isVertical){ _local8 = (this.start.x + Util.rand(this.width)); _local9 = (this.start.y + Util.rand(this.length)); } else { _local8 = (this.start.x + Util.rand(this.length)); _local9 = (this.start.y + Util.rand(this.width)); }; _arg3(_arg1, _local8, _local9); }; } protected function isRoad(_arg1:int, _arg2:Array):Boolean{ return ((_arg2[_arg1] == CrossStreet.ROAD)); } protected function roadTile(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:Boolean; _local3 = Tile.multiLaneG; _local4 = ((_arg1 % 2) == 0); if (_arg2 == 0){ _local3 = Tile.multiLaneA; } else { if (_arg2 == (_arg1 - 1)){ _local3 = Tile.multiLaneF; } else { if (((_local4) && ((_arg2 == (Math.floor((_arg1 / 2)) - 1))))){ _local3 = Tile.multiLaneC; } else { if (((_local4) && ((_arg2 == Math.floor((_arg1 / 2)))))){ _local3 = Tile.multiLaneD; } else { if (((!(_local4)) && ((_arg2 == Math.floor((_arg1 / 2)))))){ _local3 = Tile.multiLaneG; } else { if (_arg2 < Math.floor((_arg1 / 2))){ _local3 = Tile.multiLaneB; } else { _local3 = Tile.multiLaneE; }; }; }; }; }; }; return (_local3); } protected function placeUnbiasedSalvage(_arg1:Map, _arg2:int, _arg3:int):void{ Util.placeSingleSalvage(_arg1, _arg2, _arg3); } protected function calculateLessOverlay(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; _local3 = Tile.NO_TILE; if (_arg2 == 0){ _local4 = 0; if (this.isVertical){ _local4 = 2; }; _local3 = this.genericOverlay(this.less[_arg1], _local4); }; return (_local3); } protected function calculateTile(_arg1:int, _arg2:int):int{ var _local3:int; _local3 = 0; if (_arg1 == 0){ if (this.drawLessEnd){ _local3 = this.getNormal(_arg1, _arg2, Tile.BEGIN); } else { _local3 = this.getNormal(_arg1, _arg2, Tile.MIDDLE); }; } else { if (_arg1 == (this.length - 1)){ if (this.drawGreaterEnd){ _local3 = this.getNormal(_arg1, _arg2, Tile.END); } else { _local3 = this.getNormal(_arg1, _arg2, Tile.MIDDLE); }; } else { if (((((!(this.isCrossed(_arg1))) && (!(this.isCrossed((_arg1 - 1)))))) && (this.isCrossed((_arg1 + 1))))){ if (((!(this.crossedBy(_arg1, CrossStreet.BEGIN_PARKING_ENTRANCE))) && (!(this.crossedBy(_arg1, CrossStreet.PARKING_ENTRANCE))))){ _local3 = this.getNormal(_arg1, _arg2, Tile.END); } else { _local3 = this.getNormal(_arg1, _arg2, Tile.MIDDLE); }; } else { if (((((!(this.isCrossed(_arg1))) && (!(this.isCrossed((_arg1 + 1)))))) && (this.isCrossed((_arg1 - 1))))){ if (((!(this.crossedBy(_arg1, CrossStreet.END_PARKING_ENTRANCE))) && (!(this.crossedBy(_arg1, CrossStreet.PARKING_ENTRANCE))))){ _local3 = this.getNormal(_arg1, _arg2, Tile.BEGIN); } else { _local3 = this.getNormal(_arg1, _arg2, Tile.MIDDLE); }; } else { if (((((this.isCrossed(_arg1)) || (this.isCrossed((_arg1 - 1))))) || (this.isCrossed((_arg1 + 1))))){ _local3 = this.calculateIntersection(_arg1, _arg2); } else { _local3 = this.getNormal(_arg1, _arg2, Tile.MIDDLE); }; }; }; }; }; return (_local3); } protected function genericOverlay(_arg1:CrossStreet, _arg2:int):int{ var _local3:int; var _local4:Array; _local3 = 0; _local4 = parkingOverlay; if (this.width == 1){ _local4 = parkingAlleyOverlay; }; if (_arg1 == CrossStreet.BEGIN_PARKING_ENTRANCE){ _local3 = 0; } else { if (_arg1 == CrossStreet.END_PARKING_ENTRANCE){ _local3 = 1; } else { if (_arg1 == CrossStreet.PARKING_ENTRANCE){ _local3 = 2; } else { return (Tile.NO_TILE); }; }; }; return (_local4[_arg2][_local3]); } public function calculateCol(_arg1:int, _arg2:int, _arg3:int):int{ if (_arg2 == 0){ if (this.isVertical){ return (this.edgeCol(_arg1, _arg3, lessEdgeVert, this.less)); }; return (this.edgeCol(_arg1, _arg3, lessEdgeHoriz, this.less)); } else { if (_arg2 == (this.width - 1)){ if (this.isVertical){ return (this.edgeCol(_arg1, _arg3, greaterEdgeVert, this.greater)); }; return (this.edgeCol(_arg1, _arg3, greaterEdgeHoriz, this.greater)); } else { if (this.isVertical){ return (centerVert[_arg3]); }; }; }; return (!NULL!); } public function addChild(_arg1:Point, _arg2:int, _arg3:CrossStreet, _arg4:Array):void{ var _local5:int; var _local6:int; var _local7:int; var _local8:int; _local5 = 0; if (this.isVertical){ _local5 = (_arg1.y - this.start.y); } else { _local5 = (_arg1.x - this.start.x); }; _local6 = _local5; _local7 = (_local5 + _arg2); while (_local6 < _local7) { var _temp1 = _local6; _local6 = (_local6 + 1); _local8 = _temp1; _arg4[_local8] = _arg3; }; } protected function calculateGreaterOverlay(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; _local3 = Tile.NO_TILE; if (_arg2 == (this.width - 1)){ _local4 = 0; if (this.isVertical){ _local4 = 2; }; _local3 = this.genericOverlay(this.greater[_arg1], (_local4 + 1)); }; return (_local3); } public function setDrawLess():void{ this.drawLessEnd = true; } } }//package mapgen
Section 99
//Terrain (mapgen.Terrain) package mapgen { import flash.*; public class Terrain { protected var blocked:Boolean; protected var background:BackgroundType; protected var terrainFunc:Function; protected var corners:Array; public function Terrain(_arg1:Function=null, _arg2:Boolean=false, _arg3:BackgroundType=null, _arg4:Array=null):void{ if (!Boot.skip_constructor){ this.terrainFunc = _arg1; this.blocked = _arg2; this.background = _arg3; this.corners = _arg4; }; } public function isBlocked():Boolean{ return (this.blocked); } public function getBackground():BackgroundType{ return (this.background); } public function getCorner(_arg1:int):int{ return (this.corners[_arg1]); } public function isTerrain(_arg1:EditType):Boolean{ return (this.terrainFunc(_arg1)); } } }//package mapgen
Section 100
//Util (mapgen.Util) package mapgen { import logic.*; import twister.*; import haxe.*; public class Util { public static var HOUSE:int = 8; public static var PARKING_LOT:int = 9; public static var APARTMENT:int = 1; public static var MALL:int = 7; protected static var churchEntrances:Array = [new Point(1, 0), new Point(1, 2), new Point(2, 1), new Point(0, 1)]; public static var CHURCH:int = 5; public static var HARDWARE_STORE:int = 4; public static var HOSPITAL:int = 6; public static var STANDARD:int = 0; protected static var houseEntrances:Array = [new Point(1, 0), new Point(0, 1), new Point(1, 1), new Point(0, 0)]; protected static var generator:Twister = null; public static var SUPERMARKET:int = 2; public static var POLICE_STATION:int = 3; protected static function fillInGaps(_arg1:Point, _arg2, _arg3:Grid):void{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:Point; _local4 = 1; _local5 = (_arg2.y - 1); while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; _local7 = 1; _local8 = (_arg2.x - 1); while (_local7 < _local8) { var _temp2 = _local7; _local7 = (_local7 + 1); _local9 = _temp2; if (neitherTouchBlockedGap(_local9, _local6, _arg1, _arg3)){ _local10 = new Point((_local9 + _arg1.x), (_local6 + _arg1.y)); addRandTile(_local10, Tile.trees); changeBlocked(_local10, true); }; }; }; } public static function setArea(_arg1:Section, _arg2:Function, _arg3):void{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:Point; _local4 = _arg1.offset.y; _local5 = _arg1.limit.y; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; _local7 = _arg1.offset.x; _local8 = _arg1.limit.x; while (_local7 < _local8) { var _temp2 = _local7; _local7 = (_local7 + 1); _local9 = _temp2; _local10 = new Point(_local9, _local6); _arg2(_local10, _arg3); }; }; } public static function fillBackground(_arg1:Section, _arg2:BackgroundType):void{ setArea(_arg1, Util.setBackground, _arg2); } public static function drawBuilding(_arg1:Section, _arg2:Building, _arg3=null):void{ var _local4:Boolean; var _local5:int; var _local6:PlaceParkingLot; var _local7:Point; var _local8:Direction; var _local9:Point; var _local10:List; var _local11:Direction; var _local12:int; var _local13:BuildingRoot; _local4 = true; if (_arg3 == false){ _local4 = false; }; _local5 = _arg2.getType(); if (_local5 == PARKING_LOT){ _local6 = new PlaceParkingLot(); _local7 = _arg2.getEntrance(); _local8 = _arg2.getEntranceDir(); _local9 = null; if ((((_local7.x == (_arg1.limit.x - 1))) && ((((_local8 == Direction.NORTH)) || ((_local8 == Direction.SOUTH)))))){ _local9 = new Point(_arg1.offset.x, _local7.y); }; if ((((_local7.y == (_arg1.limit.y - 1))) && ((((_local8 == Direction.EAST)) || ((_local8 == Direction.WEST)))))){ _local9 = new Point(_local7.x, _arg1.offset.y); }; _local10 = new List(); _local10.add(_local7); if (_local9 == null){ PlaceParkingLot.addCrossStreet(_arg1, _local7, _local8, CrossStreet.PARKING_ENTRANCE); } else { _local10.add(_local9); PlaceParkingLot.addCrossStreet(_arg1, _local9, _local8, CrossStreet.BEGIN_PARKING_ENTRANCE); PlaceParkingLot.addCrossStreet(_arg1, _local7, _local8, CrossStreet.END_PARKING_ENTRANCE); }; _local11 = Lib.rotateCW(_local8); _local12 = _arg1.dirSize(_local11); if ((((_local12 == 2)) || ((_local12 == 3)))){ _local6.place(_arg1, _local10, _local4, Lib.rotateCW(_local8)); } else { _local6.place(_arg1, _local10, _local4, _local8); }; } else { _local13 = null; if (_local5 == CHURCH){ _local13 = new BuildingChurch(_arg2); } else { if (_local5 == HOSPITAL){ _local13 = new BuildingHospital(_arg2); } else { if (_local5 == HOUSE){ _local13 = new BuildingHouse(_arg2); } else { if (_local5 == MALL){ _local13 = new BuildingMall(_arg2, _arg1); } else { if (_local5 == HARDWARE_STORE){ _local13 = new BuildingHardware(_arg2); } else { if (_local5 == POLICE_STATION){ _local13 = new BuildingPolice(_arg2); } else { _local13 = new BuildingGeneric(_arg2); }; }; }; }; }; }; _local13.place(_arg1); }; } public static function fillClearTiles(_arg1:Section):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; _local2 = _arg1.offset.y; _local3 = _arg1.limit.y; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local5 = _arg1.offset.x; _local6 = _arg1.limit.x; while (_local5 < _local6) { var _temp2 = _local5; _local5 = (_local5 + 1); _local7 = _temp2; clearTiles(new Point(_local7, _local4)); }; }; } public static function changeBlocked(_arg1:Point, _arg2:Boolean):void{ if (_arg2){ Game.map.getCell(_arg1.x, _arg1.y).setBlocked(); } else { Game.map.getCell(_arg1.x, _arg1.y).clearBlocked(); }; } public static function forcePlaceZombie(_arg1:int, _arg2:int):void{ var _local3:int; var _local4:Zombie; _local3 = Lib.directionToAngle(randDirection()); _local4 = new Zombie(_arg1, _arg2, _local3, _arg1, _arg2, Zombie.START_SPAWN); } public static function rand(_arg1:int):int{ return ((generator.getPositiveInt() % _arg1)); } public static function setBackground(_arg1:Point, _arg2:BackgroundType):void{ Game.map.getCell(_arg1.x, _arg1.y).setBackground(_arg2); } protected static function chooseRandEntrance(_arg1:Section, _arg2:Direction, _arg3:int):Point{ if (_arg2 == Direction.NORTH){ return (new Point((rand(((_arg1.limit.x - _arg1.offset.x) - (_arg3 * 2))) + _arg3), 0)); }; if (_arg2 == Direction.SOUTH){ return (new Point((rand(((_arg1.limit.x - _arg1.offset.x) - (_arg3 * 2))) + _arg3), ((_arg1.limit.y - _arg1.offset.y) - 1))); }; if (_arg2 == Direction.EAST){ return (new Point(((_arg1.limit.x - _arg1.offset.x) - 1), (rand(((_arg1.limit.y - _arg1.offset.y) - (_arg3 * 2))) + _arg3))); }; return (new Point(0, (rand(((_arg1.limit.y - _arg1.offset.y) - (_arg3 * 2))) + _arg3))); } public static function addRandTile(_arg1:Point, _arg2:Array):void{ var _local3:int; _local3 = rand(_arg2.length); addTile(_arg1, _arg2[_local3]); } public static function placeSingleZombie(_arg1:Map, _arg2:int, _arg3:int):void{ var _local4:Point; var _local5:int; var _local6:int; _local4 = Game.settings.getStart(); _local5 = Math.floor(Math.abs((_arg2 - _local4.x))); _local6 = Math.floor(Math.abs((_arg3 - _local4.y))); if ((((_local5 > Option.hqInfluence)) || ((_local6 > Option.hqInfluence)))){ if (_arg1.getCell(_arg2, _arg3).getBuilding() != null){ _arg1.getCell(_arg2, _arg3).getBuilding().addZombies(1); } else { if (!_arg1.getCell(_arg2, _arg3).isBlocked()){ forcePlaceZombie(_arg2, _arg3); }; }; }; } protected static function neitherTouchBlockedGap(_arg1:int, _arg2:int, _arg3:Point, _arg4:Grid):Boolean{ return (((!(_arg4.get(_arg1, _arg2))) && (!(Game.map.getCell((_arg1 + _arg3.x), (_arg2 + _arg3.y)).isBlocked())))); } public static function blockRandom(_arg1:Section, _arg2:Array, _arg3:Array):void{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:Point; var _local11:int; _local4 = ((_arg1.limit.x - _arg1.offset.x) * (_arg1.limit.y - _arg1.offset.y)); _local5 = Math.floor((_local4 / 3)); _local6 = 0; while (_local6 < _local5) { var _temp1 = _local6; _local6 = (_local6 + 1); _local7 = _temp1; _local8 = (rand((_arg1.limit.x - _arg1.offset.x)) + _arg1.offset.x); _local9 = (rand((_arg1.limit.y - _arg1.offset.y)) + _arg1.offset.y); if (Game.map.getCell(_local8, _local9).getTiles().length <= 1){ _local10 = new Point(_local8, _local9); _local11 = randWeightedIndex(_arg3); addRandTile(_local10, _arg2[_local11]); changeBlocked(_local10, true); }; }; } public static function clearTiles(_arg1:Point):void{ Game.map.getCell(_arg1.x, _arg1.y).clearTiles(); } public static function subdivide(_arg1:Section, _arg2:int, _arg3:List):void{ var _local4:Division; _local4 = new Division(_arg2); _local4.split(_arg1, 0); if ((((_local4.getLeft() == null)) || ((_local4.getRight() == null)))){ _arg3.add(_arg1); } else { subdivide(_local4.getLeft(), _arg2, _arg3); subdivide(_local4.getRight(), _arg2, _arg3); }; } protected static function chooseBuildingType(_arg1:Section, _arg2):int{ var _local3:int; _local3 = STANDARD; if (_arg2 == null){ if (_arg1.isNear(Game.settings.getStart(), Option.hqInfluence)){ _local3 = randWeightedIndex(Option.hqBuildingDistribution); } else { if ((((Game.settings.getEasterEgg() == GameSettings.CUMBERLAND)) && ((rand(10) < 2)))){ _local3 = HOSPITAL; } else { _local3 = randWeightedIndex(Option.buildingDistribution); if ((((_local3 == STANDARD)) && ((Game.settings.getEasterEgg() == GameSettings.RACCOONCITY)))){ _local3 = randWeightedIndex(Option.buildingDistribution); }; }; }; } else { _local3 = _arg2; }; return (_local3); } public static function calculateDir(_arg1:Point, _arg2:Section):Direction{ var _local3:Direction; _local3 = Direction.EAST; if (_arg1 != null){ if (_arg1.x == _arg2.offset.x){ _local3 = Direction.WEST; } else { if (_arg1.y == _arg2.offset.y){ _local3 = Direction.NORTH; } else { if (_arg1.y == (_arg2.limit.y - 1)){ _local3 = Direction.SOUTH; }; }; }; }; return (_local3); } protected static function markGaps(_arg1:Point, _arg2:Point, _arg3:List, _arg4:Grid):void{ var _local5:Array; var _local6:Point; var _local7:int; var _local8:int; var _local9:int; var _local10:int; _local5 = [new Point(0, -1), new Point(0, 1), new Point(1, 0), new Point(-1, 0)]; while (!(_arg3.isEmpty())) { _local6 = _arg3.pop(); _local7 = 0; while (_local7 < 4) { var _temp1 = _local7; _local7 = (_local7 + 1); _local8 = _temp1; _local9 = (_local6.x + _local5[_local8].x); _local10 = (_local6.y + _local5[_local8].y); if ((((((((((_local9 >= 0)) && ((_local9 < _arg2.x)))) && ((_local10 >= 0)))) && ((_local10 < _arg2.y)))) && (neitherTouchBlockedGap(_local9, _local10, _arg1, _arg4)))){ _arg4.set(_local9, _local10, true); _arg3.add(new Point(_local9, _local10)); }; }; }; } public static function createBuilding(_arg1:Section, _arg2=null, _arg3:Direction=null):Building{ var _local4:int; var _local5:Building; var _local6:Direction; var _local7:Point; _local4 = chooseBuildingType(_arg1, _arg2); _local5 = new Building(_local4); _local6 = _arg3; if (_local6 == null){ _local6 = chooseEntranceDir(_arg1); }; _local7 = chooseEntrance(_arg1, _local6, _local4); if (_local4 != POLICE_STATION){ _local5.addLot(_arg1); _local5.setEntrance(_local7, _local6); }; if (_local4 != PARKING_LOT){ Game.map.addBuilding(_local5); if (_local4 != POLICE_STATION){ _local5.attach(); }; }; return (_local5); } public static function randWeightedIndex(_arg1:Array):int{ return (Lib.randWeightedIndex(_arg1, generator)); } public static function fillChangeBlocked(_arg1:Section, _arg2:Boolean):void{ setArea(_arg1, Util.changeBlocked, _arg2); } public static function randDirection():Direction{ return (Lib.randDirection(generator)); } public static function getNormal(_arg1:String, _arg2:int):String{ var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:String; var _local8:StringBuf; var _local9:int; var _local10:int; var _local11:int; var _local12:*; _local3 = "a"["charCodeAt"](0); _local4 = "z"["charCodeAt"](0); _local5 = "0"["charCodeAt"](0); _local6 = "9"["charCodeAt"](0); _local7 = (_arg1.toLowerCase() + Std.string(_arg2)); _local8 = new StringBuf(); _local9 = 0; _local10 = _local7.length; while (_local9 < _local10) { var _temp1 = _local9; _local9 = (_local9 + 1); _local11 = _temp1; _local12 = _local7["charCodeAt"](_local11); if ((((((_local12 >= _local3)) && ((_local12 <= _local4)))) || ((((_local12 >= _local5)) && ((_local12 <= _local6)))))){ _local8.addChar(_local12); }; }; return (_local8.toString()); } protected static function chooseEntranceDir(_arg1:Section):Direction{ var _local2:Array; var _local3:Array; var _local4:Array; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; _local2 = [_arg1.north, _arg1.south, _arg1.east, _arg1.west]; _local3 = [Direction.NORTH, Direction.SOUTH, Direction.EAST, Direction.WEST]; _local4 = []; _local5 = 0; _local6 = 0; _local7 = _local2.length; while (_local6 < _local7) { var _temp1 = _local6; _local6 = (_local6 + 1); _local9 = _temp1; if (_local2[_local9] != null){ if (_local2[_local9].getWidth() > _local5){ while (_local4.length > 0) { _local4.pop(); }; _local5 = _local2[_local9].getWidth(); }; if (_local2[_local9].getWidth() >= _local5){ _local4.push(_local9); }; }; }; _local8 = _local4[rand(_local4.length)]; return (_local3[_local8]); } public static function fillBlockedGaps(_arg1:Section):void{ var _local2:Point; var _local3:Point; var _local4:Grid; var _local5:int; var _local6:int; var _local7:List; var _local8:int; var _local9:int; var _local10:int; var _local11:int; _local2 = new Point(_arg1.offset.x, _arg1.offset.y); _local3 = new Point(_arg1.getSize().x, _arg1.getSize().y); _local4 = new Grid(_local3.x, _local3.y); _local5 = 0; _local6 = _local3.y; while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local8 = _temp1; _local9 = 0; _local10 = _local3.x; while (_local9 < _local10) { var _temp2 = _local9; _local9 = (_local9 + 1); _local11 = _temp2; _local4.set(_local11, _local8, false); }; }; _local7 = new List(); setupGapQueue(_arg1, _local3, _local7, _local4); markGaps(_local2, _local3, _local7, _local4); fillInGaps(_local2, _local3, _local4); } public static function opposite(_arg1:Direction):Direction{ var _local2:Direction; var _local3:enum; _local2 = Direction.SOUTH; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = Direction.SOUTH; break; case 1: _local2 = Direction.NORTH; break; case 2: _local2 = Direction.WEST; break; case 3: _local2 = Direction.EAST; break; }; return (_local2); } public static function fillBlocked(_arg1:Section):void{ setArea(_arg1, Util.changeBlocked, true); } public static function fillAddTile(_arg1:Section, _arg2:int):void{ setArea(_arg1, Util.addTile, _arg2); } public static function chooseEntrance(_arg1:Section, _arg2:Direction, _arg3:int):Point{ var _local4:int; var _local5:Point; _local4 = Lib.directionToIndex(_arg2); _local5 = null; if (_arg3 == CHURCH){ _local5 = churchEntrances[_local4]; } else { if (_arg3 == HOUSE){ _local5 = houseEntrances[_local4]; } else { if (_arg3 == MALL){ _local5 = chooseRandEntrance(_arg1, _arg2, 2); } else { _local5 = chooseRandEntrance(_arg1, _arg2, 1); }; }; }; return (new Point((_arg1.offset.x + _local5.x), (_arg1.offset.y + _local5.y))); } public static function addTile(_arg1:Point, _arg2:int):void{ Game.map.getCell(_arg1.x, _arg1.y).addTile(_arg2); } public static function fillUnblocked(_arg1:Section):void{ setArea(_arg1, Util.changeBlocked, false); } public static function seed(_arg1:String, _arg2:Point=null, _arg3:Point=null):void{ var _local4:String; var _local5:Array; var _local6:String; var _local7:int; var _local8:int; var _local9:int; var _local10:String; var _local11:*; _local4 = _arg1; if (_arg2 != null){ _local4 = (_local4 + _arg2.toString()); }; if (_arg3 != null){ _local4 = (_local4 + _arg3.toString()); }; _local5 = []; _local6 = Md5.encode(_local4); _local7 = 0; while (_local7 < 4) { var _temp1 = _local7; _local7 = (_local7 + 1); _local8 = _temp1; _local9 = (_local8 * 4); _local10 = ("0x" + _local6.substr(_local9, 4)); _local11 = Std._parseInt(_local10); if (_local11 == null){ Lib.trace(("nextSeed is null: " + _local10)); } else { _local5.push(_local11); }; }; Util.generator = new Twister(null, _local5); } public static function fillWithBorder(_arg1:Section, _arg2:Array):void{ fillClearTiles(_arg1); addTile(_arg1.northwest(), _arg2[0]); addTile(_arg1.northeast(), _arg2[2]); addTile(_arg1.southwest(), _arg2[6]); addTile(_arg1.southeast(), _arg2[8]); fillAddTile(_arg1.edge(Direction.NORTH), _arg2[1]); fillAddTile(_arg1.edge(Direction.WEST), _arg2[3]); fillAddTile(_arg1.edge(Direction.EAST), _arg2[5]); fillAddTile(_arg1.edge(Direction.SOUTH), _arg2[7]); if (_arg2[4] != Tile.NO_TILE){ fillAddTile(_arg1.center(), _arg2[4]); }; } protected static function addToGapQueue(_arg1:Point, _arg2:List, _arg3:Grid):void{ _arg3.set(_arg1.x, _arg1.y, true); _arg2.add(_arg1); } protected static function setupGapQueue(_arg1:Section, _arg2:Point, _arg3:List, _arg4:Grid):void{ var _local5:Section; var _local6:int; var _local7:Array; var _local8:Direction; var _local9:Section; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:int; _local5 = _arg1.clone(); _local5.limit = _arg1.getSize(); _local5.offset = new Point(0, 0); _local6 = 0; _local7 = Lib.directions; while (_local6 < _local7.length) { _local8 = _local7[_local6]; _local6++; if (_local5.getStreet(_local8) != null){ _local9 = _local5.edge(_local8); _local10 = _local9.offset.y; _local11 = _local9.limit.y; while (_local10 < _local11) { var _temp1 = _local10; _local10 = (_local10 + 1); _local12 = _temp1; _local13 = _local9.offset.x; _local14 = _local9.limit.x; while (_local13 < _local14) { var _temp2 = _local13; _local13 = (_local13 + 1); _local15 = _temp2; addToGapQueue(new Point(_local15, _local12), _arg3, _arg4); }; }; }; }; if (((!((_local5.north == null))) || (!((_local5.west == null))))){ addToGapQueue(_local5.northwest(), _arg3, _arg4); }; if (((!((_local5.north == null))) || (!((_local5.east == null))))){ addToGapQueue(_local5.northeast(), _arg3, _arg4); }; if (((!((_local5.south == null))) || (!((_local5.west == null))))){ addToGapQueue(_local5.southwest(), _arg3, _arg4); }; if (((!((_local5.south == null))) || (!((_local5.east == null))))){ addToGapQueue(_local5.southeast(), _arg3, _arg4); }; } public static function shuffle(_arg1:Array):void{ Lib.shuffle(_arg1, generator); } public static function addRoofOverlay(_arg1:Point, _arg2:Array):void{ var _local3:int; if (rand(100) < Parameter.roofOverlayChance){ _local3 = rand(_arg2.length); addTile(_arg1, _arg2[_local3]); }; } public static function placeSingleSalvage(_arg1:Map, _arg2:int, _arg3:int, _arg4:Resource=null):void{ var _local5:Building; var _local6:Array; var _local7:int; var _local8:Resource; var _local9:int; var _local10:int; _local5 = _arg1.getCell(_arg2, _arg3).getBuilding(); _local6 = Option.groundSalvageDistribution; if (_local5 != null){ _local6 = Option.salvageDistribution[_local5.getType()]; }; _local7 = randWeightedIndex(_local6); _local8 = Lib.indexToResource(_local7); if (_arg4 != null){ _local7 = Lib.resourceToIndex(_arg4); _local8 = _arg4; }; _local9 = Lib.truckLoad(_local8); if (_local5 != null){ _local5.getSalvage().addResource(_local8, _local9); } else { if (((((!(_arg1.getCell(_arg2, _arg3).isBlocked())) && (!((_local8 == Resource.SURVIVORS))))) && (!(_arg1.getCell(_arg2, _arg3).hasTower())))){ _local10 = randWeightedIndex(Parameter.rubbleWeight); _arg1.getCell(_arg2, _arg3).addRubble(_local8, _local9, _local10); }; }; } } }//package mapgen
Section 101
//EditMenuItem (native.EditMenuItem) package native { public class EditMenuItem { public var label:String; public var icon:String; public var data; public function EditMenuItem(_arg1:String, _arg2):void{ label = _arg1; data = _arg2; icon = ""; } } }//package native
Section 102
//NativeBase (native.NativeBase) package native { public class NativeBase { public static function removeWhitespace(_arg1:String):String{ var _local2:*; _local2 = new RegExp("\\s", "g"); return (_arg1.replace(_local2, "")); } public static function nativeTrace(_arg1):void{ trace(_arg1); } } }//package native
Section 103
//Twister (twister.Twister) package twister { import flash.*; public class Twister { protected var statePos:int; protected var state:Array; protected static var MAG01:Array = [0, -1727483681]; protected static var LOWER_MASK:int = 2147483647; protected static var UPPER_MASK:int = -2147483648; protected static var M:int = 397; protected static var N:int = 624; public function Twister(_arg1=null, _arg2:Array=null):void{ var _local3:int; var _local4:int; var _local5:int; super(); if (!Boot.skip_constructor){ this.state = new Array(); if (_arg2 != null){ this.init(19650218); _local3 = 1; _local4 = 0; _local5 = ((Twister.N > _arg2.length)) ? N : _arg2.length; while (_local5 > 0) { this.state[_local3] = (((this.state[_local3] ^ this.unsignedMultiply((this.state[(_local3 - 1)] ^ (this.state[(_local3 - 1)] >>> 30)), 1664525)) + _arg2[_local4]) + _local4); ++_local3; if (_local3 >= N){ this.state[0] = this.state[(Twister.N - 1)]; _local3 = 1; }; ++_local4; if (_local4 >= _arg2.length){ _local4 = 0; }; _local5--; }; _local5 = (Twister.N - 1); while (_local5 > 0) { this.state[_local3] = ((this.state[_local3] ^ this.unsignedMultiply((this.state[(_local3 - 1)] ^ (this.state[(_local3 - 1)] >>> 30)), 1566083941)) - _local3); ++_local3; if (_local3 >= N){ this.state[0] = this.state[(Twister.N - 1)]; _local3 = 1; }; _local5--; }; this.state[0] = UPPER_MASK; } else { if (_arg1 == null){ _arg1 = Math.floor(Date["now"]().getTime()); }; this.init(_arg1); }; this.statePos = N; }; } public function getInt():int{ var _local1:int; var _local2:int; if (this.statePos >= N){ _local2 = 0; while (_local2 < (Twister.N - M)) { _local1 = ((this.state[_local2] & UPPER_MASK) | (this.state[(_local2 + 1)] & LOWER_MASK)); this.state[_local2] = ((this.state[(_local2 + M)] ^ (_local1 >>> 1)) ^ MAG01[(_local1 & 1)]); _local2++; }; while (_local2 < (Twister.N - 1)) { _local1 = ((this.state[_local2] & UPPER_MASK) | (this.state[(_local2 + 1)] & LOWER_MASK)); this.state[_local2] = ((this.state[(_local2 + (Twister.M - N))] ^ (_local1 >>> 1)) ^ MAG01[(_local1 & 1)]); _local2++; }; _local1 = ((this.state[(Twister.N - 1)] & UPPER_MASK) | (this.state[0] & LOWER_MASK)); this.state[(Twister.N - 1)] = ((this.state[(Twister.M - 1)] ^ (_local1 >>> 1)) ^ MAG01[(_local1 & 1)]); this.statePos = 0; }; _local1 = this.state[this.statePos++]; _local1 = (_local1 ^ (_local1 >>> 11)); _local1 = (_local1 ^ ((_local1 << 7) & -1658038656)); _local1 = (_local1 ^ ((_local1 << 15) & -272236544)); _local1 = (_local1 ^ (_local1 >>> 18)); return (_local1); } public function getFloat():Number{ return ((this.getInt() / 4294967295)); } public function getPositiveInt():int{ return ((this.getInt() >>> 1)); } protected function init(_arg1:int):void{ var _local2:int; var _local3:int; var _local4:int; this.state[0] = _arg1; _local2 = 1; _local3 = N; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; this.state[_local4] = (this.unsignedMultiply(1812433253, (this.state[(_local4 - 1)] ^ (this.state[(_local4 - 1)] >>> 30))) + _local4); }; } public function getFloatExclusive():Number{ return ((this.getInt() / 4294967296)); } protected function unsignedMultiply(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; _arg1 = (_arg1 & -1); _arg2 = (_arg2 & -1); _local3 = 1; _local4 = 0; _local5 = 0; while (_local5 < 32) { var _temp1 = _local5; _local5 = (_local5 + 1); _local6 = _temp1; if ((_arg2 & _local3) != 0){ _local4 = (_local4 + _arg1); }; _arg1 = (_arg1 << 1); _local3 = (_local3 << 1); }; return (_local4); } } }//package twister
Section 104
//AccuracyClip (ui.menu.AccuracyClip) package ui.menu { import flash.display.*; public dynamic class AccuracyClip extends MovieClip { public var bar:MovieClip; } }//package ui.menu
Section 105
//BarricadeMenuClip (ui.menu.BarricadeMenuClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class BarricadeMenuClip extends MovieClip { public var boardsQuota:TextField; public var boardsIcon:MovieClip; public var quota:TextField; public var boardsDown:ButtonMinus; public var boardsQuotaBackground:MovieClip; public var boardsStock:TextField; public var boardsUp:ButtonPlus; public var boardsStockBackground:MovieClip; public function BarricadeMenuClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 106
//Bookmark (ui.menu.Bookmark) package ui.menu { import flash.*; public class Bookmark { public var pos:int; public var name:String; public function Bookmark(_arg1:String=null, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.name = _arg1; this.pos = _arg2; }; } } }//package ui.menu
Section 107
//BuildMenu (ui.menu.BuildMenu) package ui.menu { import flash.display.*; import flash.events.*; import logic.*; import ui.*; import flash.*; public class BuildMenu { protected var clip:BuildMenuClip; protected var action:int; protected var buttonList:ButtonList; protected static var DEPOT:int = 1; protected static var SNIPER:int = 2; protected static var WORKSHOP:int = 3; protected static var BARRICADE:int = 0; protected static var NO_ACTION:int = -1; public function BuildMenu(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ if (!Boot.skip_constructor){ this.clip = new BuildMenuClip(); _arg1.addChild(this.clip); this.clip.visible = true; this.clip.mouseEnabled = false; this.buttonList = new ButtonList(this.click, this.hover, [this.clip.barricade, this.clip.depot, this.clip.sniper, this.clip.workshop]); this.clip.addEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.resize(_arg2); this.action = NO_ACTION; }; } public function clickTower(_arg1:Point):void{ var _local2:Point; _local2 = Game.select.getSelected(); if (this.action == NO_ACTION){ this.changeSelect(_arg1); Util.success(); } else { Util.failure(); if (!Main.key.shift()){ this.resetAction(); }; Game.view.warning.show(Text.towerWarning); }; } public function cleanup():void{ this.clip.removeEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.buttonList.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function resetAction():void{ this.action = NO_ACTION; Game.floater.stop(); Game.script.trigger(Script.CANCEL_BUILD); } public function hoverBackground(_arg1:Point):void{ var _local2:String; var _local3:MapCell; var _local4:int; _local2 = null; _local3 = Game.map.getCell(_arg1.x, _arg1.y); if (this.action == NO_ACTION){ if (_local3.hasShadow()){ _local2 = Text.hoverPlanTip; } else { if (_local3.feature != null){ _local2 = _local3.feature.getHoverTip(); } else { if (_local3.hasZombies()){ _local2 = Text.hoverZombieTip; } else { if (_local3.getBuilding() != null){ _local2 = _local3.getBuilding().getToolTip(); } else { if (_local3.hasRubble()){ _local2 = Text.hoverRubbleTip; }; }; }; }; }; } else { if (_local3.hasShadow()){ _local2 = Text.backgroundBuildShadowTip; } else { if (_local3.hasZombies()){ _local2 = Text.backgroundBuildZombieTip; } else { if (_local3.getBackground() == BackgroundType.BRIDGE){ _local2 = Text.backgroundBuildBridgeTip; } else { if (!Tower.isSupplied(_arg1.x, _arg1.y)){ _local2 = Text.backgroundBuildSupplyTip(Std.string(Option.supplyRange)); } else { if (this.getBuildType(this.action) == Tower.WORKSHOP){ if (((!((_local3.getBuilding() == null))) && (_local3.getBuilding().hasZombies()))){ _local2 = Text.workshopBuildingZombiesTip; } else { if (((!((_local3.getBuilding() == null))) && (!(_local3.getBuilding().hasResources())))){ _local2 = Text.workshopBuildingEmptyTip; } else { if (_local3.getBackground() == BackgroundType.BUILDING){ _local2 = Text.workshopBuildingTip; } else { if (_local3.isBlocked()){ _local2 = Text.backgroundBuildBlockedTip; } else { if (_local3.getBackground() == BackgroundType.ENTRANCE){ _local2 = Text.workshopEntranceTip; } else { if (_local3.feature != null){ _local2 = _local3.feature.getWorkshopTip(); } else { if (_local3.hasRubble()){ _local2 = Text.workshopRubbleTip; } else { _local2 = Text.workshopBackgroundTip; }; }; }; }; }; }; }; } else { _local4 = this.getBuildType(this.action); if (_local3.isBlocked()){ _local2 = Text.backgroundBuildBlockedTip; } else { if (_local3.feature != null){ _local2 = _local3.feature.getBuildTip(); } else { if ((((_local3.getBackground() == BackgroundType.ENTRANCE)) && (_local3.getBuilding().hasResources()))){ _local2 = Text.backgroundEntranceTip; } else { if (_local3.getBackground() == BackgroundType.ENTRANCE){ _local2 = Text.backgroundEmptyEntranceTip; } else { if (_local3.hasRubble()){ _local2 = Text.backgroundBuildRubbleTip; } else { if (_local4 == Tower.BARRICADE){ _local2 = Text.backgroundBarricadeTip; } else { if (_local4 == Tower.SNIPER){ _local2 = Text.backgroundSniperTip; } else { _local2 = Text.backgroundDepotTip; }; }; }; }; }; }; }; }; }; }; }; }; }; Game.view.toolTip.show(_local2); } protected function changeSelect(_arg1:Point):void{ Game.view.changeSelect(_arg1); } public function hoverTower(_arg1:Point):void{ var _local2:String; var _local3:Tower; var _local4:int; _local2 = null; if (this.action == NO_ACTION){ _local3 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); _local4 = _local3.getType(); if (_local4 == Tower.DEPOT){ _local2 = Text.hoverDepotTip; } else { if (_local4 == Tower.WORKSHOP){ _local2 = Text.hoverWorkshopTip; } else { if (_local4 == Tower.SNIPER){ if (_local3.countResource(Resource.SURVIVORS) == 0){ _local2 = Text.hoverSniperNoSurvivorsTip; } else { if (_local3.countResource(Resource.AMMO) == 0){ _local2 = Text.hoverSniperNoAmmoTip; } else { if (_local3.isHoldingFire()){ _local2 = Text.hoverSniperHoldFireTip; } else { _local2 = Text.hoverSniperTip; }; }; }; } else { if (_local3.countResource(Resource.BOARDS) == 0){ _local2 = Text.hoverBarricadeNoBoardsTip; } else { _local2 = Text.hoverBarricadeTip; }; }; }; }; } else { _local2 = Text.towerBuildTip; }; Game.view.toolTip.show(_local2); } protected function rollOver(_arg1:MouseEvent):void{ Game.view.toolTip.hide(); } public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg1 == "s")) || ((_arg1 == "S")))){ this.click(SNIPER); } else { if ((((_arg1 == "b")) || ((_arg1 == "B")))){ this.click(BARRICADE); } else { if ((((_arg1 == "d")) || ((_arg1 == "D")))){ this.click(DEPOT); } else { if ((((_arg1 == "w")) || ((_arg1 == "W")))){ this.click(WORKSHOP); } else { if (((!((this.action == NO_ACTION))) && ((_arg2 == Keyboard.escapeCode)))){ Util.success(); this.resetAction(); } else { _local3 = false; }; }; }; }; }; return (_local3); } public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.buildMenuOffset.x; this.clip.y = _arg1.buildMenuOffset.y; } public function clickBackground(_arg1:Point):void{ var _local2:int; var _local3:Tower; var _local4:List; var _local5:*; var _local6:Point; var _local7:Tower; var _local8:int; var _local9:MapCell; var _local10:String; if (this.action == NO_ACTION){ this.changeSelect(_arg1); Util.success(); } else { _local2 = this.getBuildType(this.action); if (Tower.canPlace(_local2, _arg1.x, _arg1.y)){ Game.map.getCell(_arg1.x, _arg1.y).createTower(_local2); _local3 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); _local4 = Game.map.findTowers(_arg1.x, _arg1.y, Option.supplyRange); _local5 = _local4.iterator(); while (_local5.hasNext()) { _local6 = _local5.next(); _local7 = Game.map.getCell(_local6.x, _local6.y).getTower(); _local8 = _local7.getType(); if ((((_local2 == Tower.DEPOT)) || ((_local8 == Tower.DEPOT)))){ _local3.addTradeLink(_local6); }; }; Util.success(); if (!Main.key.shift()){ this.resetAction(); } else { Game.floater.updatePublic(); }; } else { _local9 = Game.map.getCell(_arg1.x, _arg1.y); if (!Main.key.shift()){ this.resetAction(); }; Util.failure(); _local10 = null; if (((_local9.hasTower()) || (_local9.hasShadow()))){ _local10 = Text.towerWarning; } else { if (_local9.hasZombies()){ _local10 = Text.placeZombieWarning; } else { if (_local9.isBlocked()){ _local10 = Text.placeBlockedWarning; } else { if (_local9.getBackground() == BackgroundType.BRIDGE){ _local10 = Text.placeBridgeWarning; } else { if (!Tower.isSupplied(_arg1.x, _arg1.y)){ _local10 = Text.placeSupplyWarning; } else { if (_local2 == Tower.WORKSHOP){ if (((!((_local9.getBuilding() == null))) && (_local9.getBuilding().hasZombies()))){ _local10 = Text.placeZombieWarning; } else { if (((!(_local9.hasRubble())) && ((_local9.feature == null)))){ _local10 = Text.placeBoringWarning; }; }; } else { if (_local9.hasRubble()){ _local10 = Text.placeRubbleWarning; } else { if (_local9.feature != null){ _local10 = Text.placeFeatureWarning; } else { if ((((_local9.getBackground() == BackgroundType.ENTRANCE)) || ((_local9.getBackground() == BackgroundType.BUILDING)))){ _local10 = Text.placeBuildingWarning; }; }; }; }; }; }; }; }; }; Game.view.warning.show(_local10); }; }; } protected function click(_arg1:int):void{ var _local2:int; if (this.action == NO_ACTION){ this.action = _arg1; Util.success(); _local2 = this.getBuildType(this.action); if (_local2 == Tower.SNIPER){ Game.script.trigger(Script.START_BUILD_SNIPER); } else { if (_local2 == Tower.BARRICADE){ Game.script.trigger(Script.START_BUILD_BARRICADE); } else { if (_local2 == Tower.DEPOT){ Game.script.trigger(Script.START_BUILD_DEPOT); } else { if (_local2 == Tower.WORKSHOP){ Game.script.trigger(Script.START_BUILD_WORKSHOP); }; }; }; }; Game.floater.start(_local2); } else { this.resetAction(); }; } protected function getBuildType(_arg1:int):int{ var _local2:int; _local2 = Tower.SNIPER; if (_arg1 == BARRICADE){ _local2 = Tower.BARRICADE; } else { if (_arg1 == DEPOT){ _local2 = Tower.DEPOT; } else { if (_arg1 == WORKSHOP){ _local2 = Tower.WORKSHOP; }; }; }; return (_local2); } protected function hover(_arg1:int):String{ var _local2:String; _local2 = Text.buildWorkshopTip; if (_arg1 == SNIPER){ _local2 = Text.buildSniperTip; } else { if (_arg1 == BARRICADE){ _local2 = Text.buildBarricadeTip; } else { if (_arg1 == DEPOT){ _local2 = Text.buildDepotTip; }; }; }; return (_local2); } } }//package ui.menu
Section 108
//BuildMenuClip (ui.menu.BuildMenuClip) package ui.menu { import flash.display.*; public dynamic class BuildMenuClip extends MovieClip { public var depot:ButtonBuildDepot; public var workshop:ButtonBuildWorkshop; public var barricade:ButtonBuildBarricade; public var sniper:ButtonBuildSniper; } }//package ui.menu
Section 109
//CenterMenu (ui.menu.CenterMenu) package ui.menu { import flash.display.*; import ui.*; public class CenterMenu { protected var menus:Array; protected var oldState:int; protected var state:int; protected var backdrop:Sprite; public static var SAVE_MAP_FAIL:int = 6; public static var OPTIONS:int = 2; public static var PEDIA:int = 3; public static var BRIEFING:int = 5; public static var UPLOAD_MAP:int = 9; public static var SYSTEM:int = 1; public static var UPLOAD_MAP_WAIT:int = 8; public static var SAVE_WAIT:int = 4; public static var NONE:int = 0; public static var SAVE_MAP:int = 7; public function CenterMenu():void{ } public function cleanup():void{ var _local1:int; var _local2:Array; var _local3:MenuRoot; _local1 = 0; _local2 = this.menus; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.cleanup(); }; this.menus = null; this.backdrop.parent.removeChild(this.backdrop); this.backdrop = null; } public function changeState(_arg1:int):void{ this.menus[this.state].hide(); this.menus[_arg1].show(); this.oldState = this.state; this.state = _arg1; Game.view.toolTip.hide(); if (this.state == NONE){ Game.view.sideMenu.enableHover(); this.backdrop.visible = false; Game.pause.systemResume(); } else { Game.update.changeSelect(null); Game.view.sideMenu.disableHover(); this.backdrop.visible = true; Game.pause.systemPause(); }; } public function lookup(_arg1:String):void{ this.changeState(PEDIA); this.menus[PEDIA].visitPage(_arg1); } public function systemTutorial():void{ this.changeState(SYSTEM); this.menus[this.state].showTutorial(); } public function init(_arg1:DisplayObjectContainer, _arg2:LayoutGame):void{ var _local3:Point; var _local4:String; this.backdrop = new Sprite(); _arg1.addChild(this.backdrop); this.backdrop.visible = false; this.backdrop.mouseEnabled = true; this.backdrop.useHandCursor = false; this.state = NONE; this.oldState = NONE; _local3 = Util.minSize(_arg2.screenSize); _local4 = Text.playPediaRoot; if (Game.settings.isEditor()){ _local4 = Text.editPediaRoot; }; this.menus = []; this.menus.push(new MenuRoot()); this.menus.push(new CenterSystem(_arg1, _local3)); this.menus.push(new CenterOptions(_arg1, _local3, true)); this.menus.push(new CenterPedia(_arg1, _local3, _local4, true)); this.menus.push(new WaitMenu(_arg1, _local3, WaitMenu.SAVE_GAME)); this.menus.push(new StoryMenu(_arg1, _local3, StoryMenu.CENTER)); this.menus.push(new MainFail(_arg1, _local3, true)); this.menus.push(new SaveMapMenu(_arg1, _local3)); this.menus.push(new WaitMenu(_arg1, _local3, WaitMenu.UPLOAD_MAP)); this.menus.push(new UploadMapMenu(_arg1, _local3)); this.drawBackdrop(_arg2.screenSize); } public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:int; _local3 = this.state; this.menus[this.state].hotkey(_arg1, _arg2); return (!((_local3 == NONE))); } public function resize(_arg1:LayoutGame):void{ var _local2:Point; var _local3:int; var _local4:Array; var _local5:MenuRoot; this.drawBackdrop(_arg1.screenSize); _local2 = Util.minSize(_arg1.screenSize); _local3 = 0; _local4 = this.menus; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local5.resize(_local2); }; } protected function drawBackdrop(_arg1:Point):void{ Util.drawBase(this.backdrop.graphics, new Point(0, 0), _arg1, Color.centerGhost, Color.centerGhostAlpha); } public function revertState():void{ this.changeState(this.oldState); } } }//package ui.menu
Section 110
//CenterOptions (ui.menu.CenterOptions) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class CenterOptions extends MenuRoot { protected var buttons:ButtonList; protected var clip:OptionsMenuClip; protected var isCenter:Boolean; public function CenterOptions(_arg1:DisplayObjectContainer=null, _arg2:Point=null, _arg3:Boolean=false):void{ if (!Boot.skip_constructor){ super(); this.isCenter = _arg3; this.clip = new OptionsMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.soundUp, this.clip.soundDown, this.clip.musicUp, this.clip.musicDown, this.clip.scrollUp, this.clip.scrollDown, this.clip.back]); this.clip.music.barText.text = Text.musicBarLabel; this.clip.sound.barText.text = Text.soundBarLabel; this.clip.scroll.barText.text = Text.scrollBarLabel; if (this.isCenter){ this.clip.background.visible = false; }; this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function showMusic():void{ this.showBar(Config.MUSIC, this.clip.music, this.clip.musicUp, this.clip.musicDown); Main.music.setVolume(Main.config.getProportion(Config.MUSIC)); } protected function showScroll():void{ this.showBar(Config.SCROLL, this.clip.scroll, this.clip.scrollUp, this.clip.scrollDown); } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(6); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } protected function showBar(_arg1:int, _arg2:StatusClip, _arg3:MovieClip, _arg4:MovieClip):void{ var _local5:Number; _local5 = Main.config.getProportion(_arg1); _arg2.bar.width = (_local5 * Option.statusBarSize); if (Main.config.canIncrease(_arg1)){ this.buttons.setNormal(_arg3); } else { this.buttons.setGhosted(_arg3); }; if (Main.config.canDecrease(_arg1)){ this.buttons.setNormal(_arg4); } else { this.buttons.setGhosted(_arg4); }; } protected function click(_arg1:int):void{ if ((((_arg1 == 0)) && (Main.config.canIncrease(Config.SOUND)))){ Main.config.increase(Config.SOUND); this.showSound(); Util.success(); } else { if ((((_arg1 == 1)) && (Main.config.canDecrease(Config.SOUND)))){ Main.config.decrease(Config.SOUND); this.showSound(); Util.success(); } else { if ((((_arg1 == 2)) && (Main.config.canIncrease(Config.MUSIC)))){ Main.config.increase(Config.MUSIC); this.showMusic(); Util.success(); } else { if ((((_arg1 == 3)) && (Main.config.canDecrease(Config.MUSIC)))){ Main.config.decrease(Config.MUSIC); this.showMusic(); Util.success(); } else { if ((((_arg1 == 4)) && (Main.config.canIncrease(Config.SCROLL)))){ Main.config.increase(Config.SCROLL); this.showScroll(); Util.success(); } else { if ((((_arg1 == 5)) && (Main.config.canDecrease(Config.SCROLL)))){ Main.config.decrease(Config.SCROLL); this.showScroll(); Util.success(); } else { if (_arg1 == 6){ Util.success(); if (this.isCenter){ Game.view.centerMenu.changeState(CenterMenu.SYSTEM); } else { Main.menu.changeState(MainMenu.START); }; } else { Util.failure(); }; }; }; }; }; }; }; } protected function showSound():void{ this.showBar(Config.SOUND, this.clip.sound, this.clip.soundUp, this.clip.soundDown); Main.sound.setVolume(Main.config.getProportion(Config.SOUND)); } override public function show():void{ this.clip.visible = true; this.showSound(); this.showMusic(); this.showScroll(); } } }//package ui.menu
Section 111
//CenterPedia (ui.menu.CenterPedia) package ui.menu { import flash.display.*; import flash.events.*; import ui.*; import flash.text.*; import flash.*; public class CenterPedia extends MenuRoot { protected var clip:PediaMenuClip; protected var history:Array; protected var buttons:ButtonList; protected var isCenter:Boolean; protected var root:String; protected var current:int; protected static var maxHistory:int = 20; protected static var hash:PediaHash = new PediaHash(); public function CenterPedia(_arg1:DisplayObjectContainer=null, _arg2:Point=null, _arg3:String=null, _arg4:Boolean=false):void{ var _local5:StyleSheet; if (!Boot.skip_constructor){ super(); this.root = _arg3; this.isCenter = _arg4; this.clip = new PediaMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.back, this.clip.up, this.clip.forward, this.clip.returnToMenu]); this.clip.entry.multiline = true; this.clip.entry.wordWrap = true; this.clip.entry.autoSize = TextFieldAutoSize.NONE; this.clip.entry.addEventListener(TextEvent.LINK, this.link); _local5 = new StyleSheet(); _local5.parseCSS(Text.pediaStyleSheet); this.clip.entry.styleSheet = _local5; this.history = [new Bookmark(this.root, 1)]; this.current = 0; this.moveCursor(0); if (this.isCenter){ this.clip.background.visible = false; this.clip.splash.visible = false; }; this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } protected function click(_arg1:int):void{ var _local2:Boolean; _local2 = true; if (_arg1 == 0){ _local2 = this.moveCursor(-1); } else { if (_arg1 == 1){ if (this.history[this.current].name == this.root){ this.exitPedia(); } else { this.visitPage(this.root); }; } else { if (_arg1 == 2){ _local2 = this.moveCursor(1); } else { if (_arg1 == 3){ this.exitPedia(); }; }; }; }; if (_local2){ Util.success(); } else { Util.failure(); }; } protected function moveCursor(_arg1:int):Boolean{ var _local2:Boolean; _local2 = true; if (((((this.current + _arg1) >= 0)) && (((this.current + _arg1) < this.history.length)))){ this.history[this.current].pos = this.clip.entry.scrollV; this.current = (this.current + _arg1); this.clip.entry.htmlText = hash.lookup(this.history[this.current].name); this.clip.entry.scrollV = this.history[this.current].pos; this.clip.scrollBar.update(); } else { _local2 = false; }; if (this.current == 0){ this.buttons.setGhosted(this.clip.back); } else { this.buttons.setNormal(this.clip.back); }; if (this.current == (this.history.length - 1)){ this.buttons.setGhosted(this.clip.forward); } else { this.buttons.setNormal(this.clip.forward); }; return (_local2); } protected function link(_arg1:TextEvent):void{ Util.success(); this.visitPage(_arg1.text); } override public function cleanup():void{ this.clip.entry.removeEventListener(TextEvent.LINK, this.link); this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function componentUpdate(_arg1:Event):void{ this.clip.scrollBar.update(); this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); } protected function exitPedia():void{ if (this.isCenter){ Game.view.centerMenu.revertState(); } else { Main.menu.revertState(); }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(3); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ var _local2:int; Util.centerHorizontally(this.clip.returnToMenu, _arg1); Util.alignBottom(this.clip.returnToMenu, _arg1); Util.scaleToFit(this.clip.background, _arg1); Util.scaleToFit(this.clip.splash, _arg1); _local2 = (_arg1.x - 60); if (_local2 > 600){ _local2 = 600; }; this.clip.entry.x = (((_arg1.x - _local2) / 2) - 10); this.clip.entry.width = _local2; this.clip.entry.height = (_arg1.y - 200); this.clip.scrollBar.x = ((this.clip.entry.x + this.clip.entry.width) + 5); this.clip.scrollBar.height = (_arg1.y - 200); this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } override public function visitPage(_arg1:String):void{ var _local2:int; var _local3:int; _local2 = ((this.current - maxHistory) + 1); if (_local2 < 0){ _local2 = 0; }; _local3 = Math.floor(Math.min((this.current + 1), (_local2 + maxHistory))); this.history = this.history.slice(_local2, _local3); this.history.push(new Bookmark(_arg1, 1)); this.current = (this.current - _local2); this.moveCursor(1); } override public function showTutorial():void{ this.show(); } override public function show():void{ this.clip.visible = true; } } }//package ui.menu
Section 112
//CenterSystem (ui.menu.CenterSystem) package ui.menu { import flash.display.*; import ui.*; import flash.text.*; import flash.*; public class CenterSystem extends MenuRoot { protected var clip:SystemMenuClip; protected var buttons:ButtonList; public function CenterSystem(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ var _local3:int; var _local4:Array; var _local5:TextField; var _local6:int; var _local7:Array; var _local8:*; var _local9:int; var _local10:Array; var _local11:*; var _local12:int; var _local13:Array; var _local14:*; if (!Boot.skip_constructor){ super(); this.clip = new SystemMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; _local3 = 0; _local4 = [this.clip.saveMapLabel, this.clip.uploadMapLabel, this.clip.testMapLabel, this.clip.editMapLabel, this.clip.briefingLabel]; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local5.mouseEnabled = false; }; if (Game.settings.isEditor()){ _local6 = 0; _local7 = [this.clip.pedia, this.clip.options, this.clip.saveGame, this.clip.loadGame, this.clip.retryGame, this.clip.editMapLabel, this.clip.editMap, this.clip.briefing, this.clip.briefingLabel]; while (_local6 < _local7.length) { _local8 = _local7[_local6]; _local6++; _local8.visible = false; }; } else { if (Game.settings.isTesting()){ _local9 = 0; _local10 = [this.clip.saveMap, this.clip.saveMapLabel, this.clip.uploadMap, this.clip.uploadMapLabel, this.clip.testMap, this.clip.testMapLabel, this.clip.loadGame, this.clip.mainMenu]; while (_local9 < _local10.length) { _local11 = _local10[_local9]; _local9++; _local11.visible = false; }; } else { _local12 = 0; _local13 = [this.clip.saveMap, this.clip.saveMapLabel, this.clip.uploadMap, this.clip.uploadMapLabel, this.clip.testMap, this.clip.testMapLabel, this.clip.editMap, this.clip.editMapLabel]; while (_local12 < _local13.length) { _local14 = _local13[_local12]; _local12++; _local14.visible = false; }; }; }; this.buttons = new ButtonList(this.click, null, [this.clip.resume, this.clip.pedia, this.clip.options, this.clip.saveGame, this.clip.loadGame, this.clip.retryGame, this.clip.mainMenu, this.clip.saveMap, this.clip.uploadMap, this.clip.testMap, this.clip.editMap, this.clip.briefing]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ if (_arg1 == 0){ Util.success(); Game.view.centerMenu.changeState(CenterMenu.NONE); } else { if (_arg1 == 1){ Util.success(); Game.view.centerMenu.changeState(CenterMenu.PEDIA); } else { if (_arg1 == 2){ Util.success(); Game.view.centerMenu.changeState(CenterMenu.OPTIONS); } else { if (_arg1 == 3){ Util.success(); this.hide(); Game.attemptSave(); } else { if (_arg1 == 4){ if (Main.canLoad()){ Util.success(); Game.endGame(GameOver.RESTART_LOAD); } else { Util.failure(); }; } else { if (_arg1 == 5){ Util.success(); Game.endGame(GameOver.RESTART); } else { if (_arg1 == 6){ Util.success(); Game.endGame(GameOver.END); } else { if ((((_arg1 == 7)) && (Game.settings.isEditor()))){ Util.success(); Game.settings.setMap(Game.editor.saveMap()); Game.settings.setStart(Game.view.window.getCenter()); Game.view.centerMenu.changeState(CenterMenu.SAVE_MAP); } else { if ((((_arg1 == 8)) && (Game.settings.isEditor()))){ Util.success(); Game.settings.setMap(Game.editor.saveMap()); Game.settings.setStart(Game.view.window.getCenter()); Game.view.centerMenu.changeState(CenterMenu.UPLOAD_MAP_WAIT); } else { if ((((_arg1 == 9)) && (Game.settings.isEditor()))){ Util.success(); Game.settings.setMap(Game.editor.saveMap()); Game.settings.setStart(Game.view.window.getCenter()); Game.loadMap = Game.settings.saveMap(); Game.endGame(GameOver.TRY_MAP); } else { if ((((_arg1 == 10)) && (Game.settings.isTesting()))){ Util.success(); Game.endGame(GameOver.EDIT_MAP); } else { if (_arg1 == 11){ Util.success(); Game.view.centerMenu.changeState(CenterMenu.BRIEFING); } else { Util.failure(); }; }; }; }; }; }; }; }; }; }; }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(0); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.alignRight(this.clip.city, _arg1); Util.alignRight(this.clip.difficulty, _arg1); Util.alignRight(this.clip.zombies, _arg1); Util.alignRight(this.clip.bridges, _arg1); } override public function showTutorial():void{ this.show(); } override public function show():void{ var _local1:String; var _local2:String; this.clip.visible = true; this.clip.city.text = Game.settings.getCityName(); this.clip.difficulty.text = Game.settings.getDifficultyName(); _local1 = Std.string(Game.progress.getZombieCount()); this.clip.zombies.text = Text.zombiesLeft(_local1); _local2 = Std.string(Game.progress.getBridgeCount()); this.clip.bridges.text = Text.bridgesLeft(_local2); if (Main.canLoad()){ this.buttons.setNormal(this.clip.loadGame); } else { this.buttons.setGhosted(this.clip.loadGame); }; this.buttons.setNormal(this.clip.saveGame); } } }//package ui.menu
Section 113
//DepotMenuClip (ui.menu.DepotMenuClip) package ui.menu { import flash.display.*; public dynamic class DepotMenuClip extends MovieClip { public var resource:ResourceMenuClip; public var abandon:ButtonAbandon; public var gather:ButtonJumpToDepot; public function DepotMenuClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 114
//MainBrowse (ui.menu.MainBrowse) package ui.menu { import flash.display.*; import ui.*; import flash.net.*; import flash.*; public class MainBrowse extends MenuRoot { protected var clip:MainBrowseClip; protected var cursor:int; protected var names:Array; protected var buttons:ButtonList; protected var maxCursor:int; protected var dbKeys:Array; protected var dbNames:Array; protected var levels:Array; public static var dbValues:String; public static var EASY:int = 4; public static var LOAD_STEP:int = 5; public static var typeToString:Array = ["fun", "recent", "hard", "medium", "easy"]; public static var RECENT:int = 1; protected static var cursorLength:int = 5; public static var FUN:int = 0; public static var typeToButton:Array = ["Most Fun", "Most Recent", "Hardest", "Moderate", "Easiest"]; public static var start:int = 0; public static var HARD:int = 2; public static var TYPE_COUNT:int = 5; public static var MEDIUM:int = 3; public static var type:int = FUN; public function MainBrowse(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainBrowseClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.clip.sortText.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.level1, this.clip.level2, this.clip.level3, this.clip.level4, this.clip.level5, this.clip.prev, this.clip.next, this.clip.sort, this.clip.back]); this.levels = [this.clip.level1, this.clip.level2, this.clip.level3, this.clip.level4, this.clip.level5]; this.names = [this.clip.name1, this.clip.name2, this.clip.name3, this.clip.name4, this.clip.name5]; this.cursor = 0; this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } protected function click(_arg1:int):void{ var _local2:String; if (_arg1 == 5){ if (this.cursor > 0){ this.cursor = (this.cursor - cursorLength); this.update(); } else { if (MainBrowse.start > 0){ MainBrowse.start = (MainBrowse.start - LOAD_STEP); Main.menu.changeState(MainMenu.BROWSE_WAIT); }; }; } else { if (_arg1 == 6){ if (this.cursor < (this.maxCursor - cursorLength)){ this.cursor = (this.cursor + cursorLength); this.update(); } else { if (this.cursor == (this.maxCursor - cursorLength)){ MainBrowse.start = (MainBrowse.start + this.maxCursor); Main.menu.changeState(MainMenu.BROWSE_WAIT); }; }; } else { if (_arg1 == 7){ MainBrowse.type = ((MainBrowse.type + 1) % TYPE_COUNT); MainBrowse.start = 0; Main.menu.changeState(MainMenu.BROWSE_WAIT); } else { if (_arg1 == 8){ Main.menu.changeState(MainMenu.PLAY); } else { _local2 = this.dbKeys[(this.cursor + _arg1)]; Main.menu.rateState = MainMenu.BROWSE; Main.menu.getSettings().setUrl(("http://auriga-squad.appspot.com/get/" + _local2)); Main.menu.changeState(MainMenu.DOWNLOAD_MAP_WAIT); }; }; }; }; } protected function update():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; if ((((this.cursor == 0)) && ((MainBrowse.start == 0)))){ this.buttons.setGhosted(this.clip.prev); } else { this.buttons.setNormal(this.clip.prev); }; if ((this.cursor + cursorLength) > this.maxCursor){ this.buttons.setGhosted(this.clip.next); } else { this.buttons.setNormal(this.clip.next); }; this.clip.sortText.text = typeToButton[type]; _local1 = Math.floor(Math.min(cursorLength, (this.maxCursor - this.cursor))); this.clip.page.text = ((Std.string(((MainBrowse.start + this.cursor) + 1)) + " - ") + Std.string(((MainBrowse.start + this.cursor) + _local1))); _local2 = 0; while (_local2 < _local1) { var _temp1 = _local2; _local2 = (_local2 + 1); _local5 = _temp1; this.names[_local5].visible = true; this.levels[_local5].visible = true; this.names[_local5].text = this.dbNames[(_local5 + this.cursor)]; }; _local3 = _local1; _local4 = cursorLength; while (_local3 < _local4) { var _temp2 = _local3; _local3 = (_local3 + 1); _local6 = _temp2; this.names[_local6].visible = false; this.levels[_local6].visible = false; }; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(8); } else { _local3 = false; }; return (_local3); } protected function parse():void{ var _local1:URLVariables; var _local2:int; var _local3:int; var _local4:int; this.dbNames = []; this.dbKeys = []; _local1 = new URLVariables(dbValues); _local2 = Reflect.field(_local1, "size"); _local3 = 0; while (_local3 < _local2) { var _temp1 = _local3; _local3 = (_local3 + 1); _local4 = _temp1; this.dbNames.push(Reflect.field(_local1, ("name" + Std.string(_local4)))); this.dbKeys.push(Reflect.field(_local1, ("key" + Std.string(_local4)))); }; this.maxCursor = _local2; } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } override public function show():void{ this.clip.visible = true; this.parse(); this.cursor = 0; this.update(); } } }//package ui.menu
Section 115
//MainBrowseClip (ui.menu.MainBrowseClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class MainBrowseClip extends MovieClip { public var name1:TextField; public var name3:TextField; public var name4:TextField; public var next:MovieClip; public var sortText:TextField; public var name2:TextField; public var name5:TextField; public var level1:MovieClip; public var background:MovieClip; public var level5:MovieClip; public var prev:MovieClip; public var level2:MovieClip; public var level3:MovieClip; public var level4:MovieClip; public var level7:MovieClip; public var page:TextField; public var sort:MovieClip; public var back:MovieClip; public function MainBrowseClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 116
//MainCampaign (ui.menu.MainCampaign) package ui.menu { import flash.display.*; import ui.*; import flash.net.*; import flash.*; public class MainCampaign extends MenuRoot { protected var clip:MainCampaignClip; protected var levels:Array; protected var buttons:ButtonList; public function MainCampaign(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainCampaignClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.level1, this.clip.level2, this.clip.level3, this.clip.level4, this.clip.level5, this.clip.level6, this.clip.level7, this.clip.back]); this.levels = [this.clip.level1, this.clip.level2, this.clip.level3, this.clip.level4, this.clip.level5, this.clip.level6, this.clip.level7]; this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 7){ Main.menu.changeState(MainMenu.PLAY); } else { Main.menu.rateState = MainMenu.CAMPAIGN; WaitMenu.loadMap(Text.levels[_arg1]); Main.menu.getSettings().setCampaign(_arg1); }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(7); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } override public function show():void{ var _local1:Boolean; var _local2:Array; var _local3:int; var _local4:int; var _local5:int; var _local6:MovieClip; this.clip.visible = true; _local1 = true; _local2 = getComplete(); _local3 = 0; _local4 = _local2.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = this.levels[_local5]; if (_local2[_local5] == 1){ this.buttons.setGhosted(_local6); } else { if (_local1){ this.buttons.setGreen(_local6); _local1 = false; } else { this.buttons.setNormal(_local6); }; }; }; } public static function setComplete(_arg1:int):void{ var _local2:SharedObject; var _local3:Array; _local2 = Main.gameDisk; _local3 = getComplete(); if ((((_arg1 >= 0)) && ((_arg1 < _local3.length)))){ _local3[_arg1] = 1; }; _local2.data.campaign = _local3; } public static function getComplete():Array{ var _local1:SharedObject; var _local2:*; var _local3:Array; _local1 = Main.gameDisk; _local2 = _local1.data.campaign; _local3 = []; if (_local2 == null){ _local3 = [0, 0, 0, 0, 0, 0, 0]; _local1.data.campaign = _local3; } else { _local3 = Load.loadArrayInt(_local2); }; return (_local3); } } }//package ui.menu
Section 117
//MainCampaignClip (ui.menu.MainCampaignClip) package ui.menu { import flash.display.*; public dynamic class MainCampaignClip extends MovieClip { public var level1:MovieClip; public var background:MovieClip; public var level4:MovieClip; public var level5:MovieClip; public var level6:MovieClip; public var level7:MovieClip; public var level2:MovieClip; public var level3:MovieClip; public var back:MovieClip; public function MainCampaignClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 118
//MainCredits (ui.menu.MainCredits) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class MainCredits extends MenuRoot { protected var buttons:ButtonList; protected var clip:MainCreditsClip; protected var credits:ScrollingText; public function MainCredits(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ var scrolls:Array; var parent = _arg1; var screenSize = _arg2; if (!Boot.skip_constructor){ super(); this.clip = new MainCreditsClip(); parent.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.returnClick, null, [this.clip.back]); scrolls = [function (_arg1:MainCredits):DisplayObject{ var $r:*; var tmp:*; var $this = _arg1; tmp = $this.clip.credits; $r = (Std._is(tmp, DisplayObject)) ? tmp : function (_arg1:MainCredits):MovieClip{ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this)]; this.credits = new ScrollingText(parent, scrolls, [-130], screenSize); this.resize(screenSize); }; } override public function hide():void{ this.clip.visible = false; this.credits.end(); } override public function cleanup():void{ this.credits.cleanup(); this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.returnClick(0); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ var _local2:int; Util.scaleToFit(this.clip.background, _arg1); _local2 = Math.floor((this.clip.back.x + this.clip.back.width)); this.clip.credits.x = (_local2 + (((_arg1.x - _local2) - this.clip.credits.width) / 2)); this.credits.resize(_arg1); } protected function returnClick(_arg1:int):void{ Util.success(); Main.menu.changeState(MainMenu.START); } override public function show():void{ this.clip.visible = true; this.credits.begin(); } } }//package ui.menu
Section 119
//MainCreditsClip (ui.menu.MainCreditsClip) package ui.menu { import flash.display.*; public dynamic class MainCreditsClip extends MovieClip { public var background:MovieClip; public var credits:MovieClip; public var back:MovieClip; public function MainCreditsClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 120
//MainDifficulty (ui.menu.MainDifficulty) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class MainDifficulty extends MenuRoot { protected var clip:MainDifficultyClip; protected var buttons:ButtonList; public function MainDifficulty(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainDifficultyClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.novice, this.clip.veteran, this.clip.expert, this.clip.quartermaster, this.clip.back]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 4){ Main.menu.changeState(MainMenu.PLAY); } else { Main.menu.getSettings().setDifficulty((_arg1 + 1)); Main.menu.changeState(MainMenu.NAME); }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(4); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } override public function show():void{ this.clip.visible = true; } public static function tutorialClick():void{ } } }//package ui.menu
Section 121
//MainDifficultyClip (ui.menu.MainDifficultyClip) package ui.menu { import flash.display.*; public dynamic class MainDifficultyClip extends MovieClip { public var quartermaster:MovieClip; public var background:MovieClip; public var expert:MovieClip; public var novice:MovieClip; public var veteran:MovieClip; public var back:MovieClip; public function MainDifficultyClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 122
//MainDownloadMap (ui.menu.MainDownloadMap) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class MainDownloadMap extends MenuRoot { protected var clip:MainDownloadMapClip; protected var buttons:ButtonList; public function MainDownloadMap(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainDownloadMapClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; Util.setupInputText(this.clip.url); this.buttons = new ButtonList(this.click, null, [this.clip.loadButton, this.clip.back]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 0){ if (this.clip.url.text != ""){ Main.menu.rateState = MainMenu.DOWNLOAD_MAP; Main.menu.getSettings().setUrl(this.clip.url.text); Main.menu.changeState(MainMenu.DOWNLOAD_MAP_WAIT); }; } else { if (_arg1 == 1){ if (Main.menu.getSettings().isEditor()){ Main.menu.changeState(MainMenu.EDIT_SELECT); } else { Main.menu.changeState(MainMenu.PLAY); }; }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(1); } else { if (_arg2 == Keyboard.enterCode){ this.click(0); } else { _local3 = false; }; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } override public function show():void{ this.clip.visible = true; this.clip.url.text = ""; this.clip.stage.focus = this.clip.url; } } }//package ui.menu
Section 123
//MainDownloadMapClip (ui.menu.MainDownloadMapClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class MainDownloadMapClip extends MovieClip { public var background:MovieClip; public var url:TextField; public var loadButton:MovieClip; public var back:MovieClip; public function MainDownloadMapClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 124
//MainEdit (ui.menu.MainEdit) package ui.menu { import flash.display.*; import logic.*; import ui.*; import flash.*; public class MainEdit extends MenuRoot { protected var difficulty:int; protected var clip:MainEditClip; protected var buttons:ButtonList; public function MainEdit(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.difficulty = 1; this.clip = new MainEditClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; Util.setupInputText(this.clip.cityName, Text.nameConstraint, Util.NAME_MAX_CHARS); Util.setupInputText(this.clip.widthText, Text.sizeConstraint, Util.SIZE_MAX_CHARS); Util.setupInputText(this.clip.heightText, Text.sizeConstraint, Util.SIZE_MAX_CHARS); this.clip.cityName.tabEnabled = true; this.clip.cityName.tabIndex = 1; this.clip.widthText.tabEnabled = true; this.clip.widthText.tabIndex = 2; this.clip.heightText.tabEnabled = true; this.clip.heightText.tabIndex = 3; this.clip.newMapLabel.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.difficultyDown, this.clip.difficultyUp, this.clip.newMap, this.clip.back]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ var _local2:*; var _local3:int; var _local4:*; var _local5:int; var _local6:GameSettings; if (_arg1 == 0){ if (this.difficulty > 1){ this.difficulty--; Util.success(); } else { Util.failure(); }; this.updateDifficulty(); } else { if (_arg1 == 1){ if (this.difficulty < (GameSettings.getDifficultyLimit() - 1)){ this.difficulty++; Util.success(); } else { Util.failure(); }; this.updateDifficulty(); } else { if (_arg1 == 2){ Util.success(); _local2 = Std._parseInt(this.clip.widthText.text); _local3 = 0; if (_local2 != null){ _local3 = _local2; }; _local4 = Std._parseInt(this.clip.heightText.text); _local5 = 0; if (_local4 != null){ _local5 = _local4; }; _local6 = new GameSettings(); _local6.beginNewEdit(this.difficulty, this.clip.cityName.text, new Point(_local3, _local5)); Main.menu.setSettings(_local6); Main.menu.changeState(MainMenu.EDIT_WAIT); } else { if (_arg1 == 3){ Util.success(); Main.menu.changeState(MainMenu.EDIT_SELECT); }; }; }; }; } protected function updateDifficulty():void{ var _local1:int; var _local2:int; this.clip.difficulty.barText.text = GameSettings.getDifficultyNameS(this.difficulty); _local1 = this.difficulty; _local2 = (GameSettings.getDifficultyLimit() - 1); this.clip.difficulty.bar.width = ((_local1 / _local2) * Option.statusBarSize); if (this.difficulty == 0){ this.buttons.setGhosted(this.clip.difficultyDown); } else { this.buttons.setNormal(this.clip.difficultyDown); }; if (this.difficulty == (GameSettings.getDifficultyLimit() - 1)){ this.buttons.setGhosted(this.clip.difficultyUp); } else { this.buttons.setNormal(this.clip.difficultyUp); }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(3); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } override public function show():void{ var _local1:int; var _local2:int; this.clip.visible = true; this.difficulty = 1; this.clip.cityName.setSelection(0, 0); _local1 = Lib.rand(Text.cities.length); this.clip.cityName.text = Text.cities[_local1]; _local2 = this.clip.cityName.text.length; this.clip.cityName.setSelection(0, _local2); this.clip.stage.focus = this.clip.cityName; this.clip.widthText.setSelection(0, 0); this.clip.widthText.text = "50"; this.clip.widthText.setSelection(0, _local2); this.clip.heightText.setSelection(0, 0); this.clip.heightText.text = "50"; this.clip.heightText.setSelection(0, _local2); this.updateDifficulty(); } } }//package ui.menu
Section 125
//MainEditClip (ui.menu.MainEditClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class MainEditClip extends MovieClip { public var widthText:TextField; public var heightText:TextField; public var background:MovieClip; public var cityName:TextField; public var difficulty:StatusClip; public var difficultyUp:MovieClip; public var newMap:MovieClip; public var newMapLabel:TextField; public var back:MovieClip; public var difficultyDown:MovieClip; public function MainEditClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 126
//MainEditSelect (ui.menu.MainEditSelect) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class MainEditSelect extends MenuRoot { protected var clip:MainEditSelectClip; protected var buttons:ButtonList; public function MainEditSelect(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainEditSelectClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.newMap, this.clip.continueMap, this.clip.downloadMap, this.clip.loadMap, this.clip.instructions, this.clip.back]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); } protected function click(_arg1:int):void{ if (_arg1 == 0){ Main.menu.changeState(MainMenu.EDIT); Util.success(); }; if (_arg1 == 1){ if (Main.getEditSave() != null){ MainPasteMap.shouldContinue = true; Main.menu.changeState(MainMenu.PASTE_MAP); }; Util.success(); } else { if (_arg1 == 2){ Main.menu.changeState(MainMenu.DOWNLOAD_MAP); Util.success(); } else { if (_arg1 == 3){ Main.menu.changeState(MainMenu.PASTE_MAP); Util.success(); } else { if (_arg1 == 4){ Main.menu.changeState(MainMenu.EDIT_PEDIA); Util.success(); } else { if (_arg1 == 5){ Main.menu.changeState(MainMenu.START); Util.success(); }; }; }; }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(5); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } override public function show():void{ this.clip.visible = true; Main.menu.getSettings().setEditor(); if (Main.getEditSave() == null){ this.buttons.setGhosted(this.clip.continueMap); } else { this.buttons.setNormal(this.clip.continueMap); }; } } }//package ui.menu
Section 127
//MainEditSelectClip (ui.menu.MainEditSelectClip) package ui.menu { import flash.display.*; public dynamic class MainEditSelectClip extends MovieClip { public var background:MovieClip; public var continueMap:MovieClip; public var loadMap:MovieClip; public var instructions:MovieClip; public var downloadMap:MovieClip; public var newMap:MovieClip; public var back:MovieClip; public function MainEditSelectClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 128
//MainFail (ui.menu.MainFail) package ui.menu { import flash.display.*; import flash.events.*; import ui.*; import flash.text.*; import flash.*; public class MainFail extends MenuRoot { protected var clip:MainFailClip; protected var buttons:ButtonList; protected var isCenter:Boolean; public function MainFail(_arg1:DisplayObjectContainer=null, _arg2:Point=null, _arg3:Boolean=false):void{ if (!Boot.skip_constructor){ super(); this.isCenter = _arg3; this.clip = new MainFailClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.back]); this.clip.entry.multiline = true; this.clip.entry.wordWrap = true; this.clip.entry.autoSize = TextFieldAutoSize.NONE; this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function componentUpdate(_arg1:Event):void{ this.clip.scrollBar.update(); this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); } protected function click(_arg1:int):void{ Util.success(); if (this.isCenter){ Game.view.centerMenu.changeState(CenterMenu.SYSTEM); } else { Main.menu.changeState(Main.menu.rateState); }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg2 == Keyboard.escapeCode)) || ((_arg2 == Keyboard.enterCode)))){ this.click(0); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ var _local2:int; Util.centerHorizontally(this.clip.back, _arg1); Util.alignBottom(this.clip.back, _arg1); Util.scaleToFit(this.clip.background, _arg1); _local2 = (_arg1.x - 60); if (_local2 > 600){ _local2 = 600; }; this.clip.entry.x = (((_arg1.x - _local2) / 2) - 10); this.clip.entry.width = _local2; this.clip.entry.height = (_arg1.y - 140); this.clip.scrollBar.x = ((this.clip.entry.x + this.clip.entry.width) + 5); this.clip.scrollBar.height = (_arg1.y - 140); this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } override public function show():void{ this.clip.visible = true; this.clip.entry.text = Main.error; this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } } }//package ui.menu
Section 129
//MainFailClip (ui.menu.MainFailClip) package ui.menu { import fl.controls.*; import flash.display.*; import flash.text.*; public dynamic class MainFailClip extends MovieClip { public var scrollBar:UIScrollBar; public var background:MovieClip; public var entry:TextField; public var back:MovieClip; public function MainFailClip(){ addFrameScript(0, frame1); __setProp_scrollBar_MainFailClip_Layer1_1(); } function frame1(){ stop(); } function __setProp_scrollBar_MainFailClip_Layer1_1(){ try { scrollBar["componentInspectorSetting"] = true; } catch(e:Error) { }; scrollBar.direction = "vertical"; scrollBar.scrollTargetName = "background"; scrollBar.visible = true; try { scrollBar["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package ui.menu
Section 130
//MainLose (ui.menu.MainLose) package ui.menu { import flash.display.*; import logic.*; import ui.*; import flash.*; public class MainLose extends MenuRoot { protected var clip:MainLoseClip; protected var buttons:ButtonList; public function MainLose(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainLoseClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.clip.rateLabel.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.replay, this.clip.loadGame, this.clip.retryMap, this.clip.mainMenu, this.clip.rateButton]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ if (_arg1 == 0){ Util.success(); Main.beginReplay(); } else { if (_arg1 == 1){ if (Main.canLoad()){ Util.success(); Main.menu.changeState(MainMenu.LOAD_WAIT); } else { Util.failure(); }; } else { if (_arg1 == 2){ Util.success(); Main.menu.changeState(MainMenu.GENERATE_MAP); } else { if (_arg1 == 3){ Util.success(); Main.menu.setSettings(new GameSettings()); Main.menu.changeState(MainMenu.START); } else { if (_arg1 == 4){ Main.menu.rateState = MainMenu.LOSE; Main.menu.changeState(MainMenu.RATE_MAP); }; }; }; }; }; } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); Util.alignRight(this.clip.city, _arg1); Util.alignRight(this.clip.difficulty, _arg1); Util.alignRight(this.clip.time, _arg1); Util.alignBottom(this.clip.rateButton, _arg1); Util.alignLabel(this.clip.rateButton, this.clip.rateLabel); } override public function show():void{ var _local1:int; this.clip.visible = true; if (Main.canLoad()){ this.buttons.setNormal(this.clip.loadGame); } else { this.buttons.setGhosted(this.clip.loadGame); }; this.clip.city.text = Main.menu.getSettings().getCityName(); this.clip.difficulty.text = Main.menu.getSettings().getDifficultyName(); _local1 = Main.menu.getSettings().getPlayTime(); this.clip.time.text = new Time(_local1).toString(); if (Main.menu.getSettings().getKey() == null){ this.clip.rateButton.visible = false; this.clip.rateLabel.visible = false; } else { this.clip.rateButton.visible = true; this.clip.rateLabel.visible = true; }; } } }//package ui.menu
Section 131
//MainLoseClip (ui.menu.MainLoseClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class MainLoseClip extends MovieClip { public var rateLabel:TextField; public var background:MovieClip; public var rateButton:MovieClip; public var city:TextField; public var retryMap:MovieClip; public var difficulty:TextField; public var time:TextField; public var mainMenu:MovieClip; public var replay:MovieClip; public var loadGame:MovieClip; public function MainLoseClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 132
//MainMenu (ui.menu.MainMenu) package ui.menu { import flash.display.*; import logic.*; import ui.*; import flash.*; public class MainMenu { protected var menus:Array; protected var oldState:int; protected var settings:GameSettings; protected var state:int; public var rateState:int; public var rateDifficulty:String; public var rateFun:String; public static var CREDITS:int = 3; public static var DOWNLOAD_MAP:int = 18; public static var EDIT_WAIT:int = 11; public static var NAME:int = 2; public static var OPTIONS:int = 7; public static var CAMPAIGN:int = 25; public static var EDIT:int = 12; public static var LOSE:int = 5; public static var RATE_MAP_WAIT:int = 24; public static var BROWSE:int = 26; public static var LOAD_WAIT:int = 10; public static var PLAY:int = 14; public static var BROWSE_WAIT:int = 27; public static var DIFFICULTY:int = 1; public static var WIN:int = 4; public static var STORY_LOSE:int = 17; public static var START:int = 0; public static var PEDIA:int = 8; public static var EDIT_SELECT:int = 20; public static var EDIT_PEDIA:int = 13; public static var STORY_BRIEFING:int = 15; public static var RATE_MAP:int = 23; public static var TUTORIAL:int = 6; public static var STORY_WIN:int = 16; public static var DOWNLOAD_MAP_WAIT:int = 19; public static var PASTE_MAP:int = 22; public static var GENERATE_MAP:int = 9; public static var LOAD_MAP_FAIL:int = 21; public function MainMenu(_arg1:DisplayObjectContainer=null, _arg2:LayoutMain=null):void{ var _local3:Point; super(); if (!Boot.skip_constructor){ this.rateState = WIN; this.rateFun = ""; this.rateDifficulty = ""; Main.key.addHandler(this.hotkey); _local3 = Util.minSize(_arg2.screenSize); this.oldState = START; this.state = START; this.menus = []; this.menus.push(new MainStart(_arg1, _local3)); this.menus.push(new MainDifficulty(_arg1, _local3)); this.menus.push(new MainName(_arg1, _local3)); this.menus.push(new MainCredits(_arg1, _local3)); this.menus.push(new MainWin(_arg1, _local3)); this.menus.push(new MainLose(_arg1, _local3)); this.menus.push(new MainTutorial(_arg1, _local3)); this.menus.push(new CenterOptions(_arg1, _local3, false)); this.menus.push(new CenterPedia(_arg1, _local3, Text.playPediaRoot, false)); this.menus.push(new WaitMenu(_arg1, _local3, WaitMenu.GENERATE_MAP)); this.menus.push(new WaitMenu(_arg1, _local3, WaitMenu.LOAD_GAME)); this.menus.push(new WaitMenu(_arg1, _local3, WaitMenu.EDIT_MAP)); this.menus.push(new MainEdit(_arg1, _local3)); this.menus.push(new CenterPedia(_arg1, _local3, Text.editPediaRoot, false)); this.menus.push(new MainPlay(_arg1, _local3)); this.menus.push(new StoryMenu(_arg1, _local3, StoryMenu.BRIEFING)); this.menus.push(new StoryMenu(_arg1, _local3, StoryMenu.WIN)); this.menus.push(new StoryMenu(_arg1, _local3, StoryMenu.LOSE)); this.menus.push(new MainDownloadMap(_arg1, _local3)); this.menus.push(new WaitMenu(_arg1, _local3, WaitMenu.DOWNLOAD_MAP)); this.menus.push(new MainEditSelect(_arg1, _local3)); this.menus.push(new MainFail(_arg1, _local3, false)); this.menus.push(new MainPasteMap(_arg1, _local3)); this.menus.push(new MainRate(_arg1, _local3)); this.menus.push(new WaitMenu(_arg1, _local3, WaitMenu.RATE_MAP)); this.menus.push(new MainCampaign(_arg1, _local3)); this.menus.push(new MainBrowse(_arg1, _local3)); this.menus.push(new WaitMenu(_arg1, _local3, WaitMenu.BROWSE)); this.menus[this.state].show(); this.settings = new GameSettings(); }; } public function cleanup():void{ var _local1:int; var _local2:Array; var _local3:MenuRoot; _local1 = 0; _local2 = this.menus; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.cleanup(); }; this.menus = null; Main.key.clearHandlers(); } public function setSettings(_arg1:GameSettings):void{ this.settings = _arg1; } public function changeState(_arg1:int):void{ this.oldState = this.state; this.menus[this.state].hide(); this.menus[_arg1].show(); this.state = _arg1; } public function revertState():void{ this.changeState(this.oldState); } public function hotkey(_arg1:String, _arg2:int):Boolean{ return (this.menus[this.state].hotkey(_arg1, _arg2)); } public function resize(_arg1:LayoutMain):void{ var _local2:Point; var _local3:int; var _local4:Array; var _local5:MenuRoot; _local2 = Util.minSize(_arg1.screenSize); _local3 = 0; _local4 = this.menus; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local5.resize(_local2); }; } public function getSettings():GameSettings{ return (this.settings); } } }//package ui.menu
Section 133
//MainName (ui.menu.MainName) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class MainName extends MenuRoot { protected var clip:MainNameClip; protected var buttons:ButtonList; public function MainName(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainNameClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; Util.setupInputText(this.clip.cityName, Text.nameConstraint, Util.NAME_MAX_CHARS); this.buttons = new ButtonList(this.click, null, [this.clip.playGame, this.clip.back]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 0){ Main.menu.getSettings().setCityName(this.clip.cityName.text); Main.menu.changeState(MainMenu.STORY_BRIEFING); } else { if (_arg1 == 1){ Main.menu.changeState(MainMenu.DIFFICULTY); }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(1); } else { if (_arg2 == Keyboard.enterCode){ this.click(0); } else { _local3 = false; }; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); Util.alignRight(this.clip.notice, _arg1); Util.alignBottom(this.clip.difficulty, _arg1); Util.centerHorizontally(this.clip.difficulty, _arg1); } override public function show():void{ var _local1:int; var _local2:int; this.clip.visible = true; this.clip.cityName.setSelection(0, 0); _local1 = Lib.rand(Text.cities.length); this.clip.cityName.text = Text.cities[_local1]; _local2 = this.clip.cityName.text.length; this.clip.cityName.setSelection(0, _local2); this.clip.stage.focus = this.clip.cityName; this.clip.difficulty.text = Main.menu.getSettings().getDifficultyName(); } } }//package ui.menu
Section 134
//MainNameClip (ui.menu.MainNameClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class MainNameClip extends MovieClip { public var notice:TextField; public var background:MovieClip; public var playGame:MovieClip; public var cityName:TextField; public var difficulty:TextField; public var back:MovieClip; public function MainNameClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 135
//MainPasteMap (ui.menu.MainPasteMap) package ui.menu { import flash.display.*; import flash.events.*; import ui.*; import flash.text.*; import flash.*; public class MainPasteMap extends MenuRoot { protected var clip:MainPasteMapClip; protected var buttons:ButtonList; public static var shouldContinue:Boolean = false; public function MainPasteMap(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainPasteMapClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.clip.loadLabel.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.back, this.clip.loadButton]); this.clip.entry.multiline = true; this.clip.entry.wordWrap = true; this.clip.entry.autoSize = TextFieldAutoSize.NONE; this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function componentUpdate(_arg1:Event):void{ this.clip.scrollBar.update(); this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 0){ if (Main.menu.getSettings().isEditor()){ Main.menu.changeState(MainMenu.EDIT_SELECT); } else { Main.menu.changeState(MainMenu.PLAY); }; } else { if (_arg1 == 1){ Main.menu.rateState = MainMenu.PASTE_MAP; WaitMenu.loadMap(this.clip.entry.text); }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(0); } else { if (_arg2 == Keyboard.enterCode){ this.click(1); } else { _local3 = false; }; }; return (_local3); } override public function resize(_arg1:Point):void{ var _local2:int; Util.alignBottom(this.clip.back, _arg1); Util.alignBottom(this.clip.loadButton, _arg1); Util.centerHorizontally(this.clip.loadButton, _arg1); Util.alignLabel(this.clip.loadButton, this.clip.loadLabel); Util.scaleToFit(this.clip.background, _arg1); _local2 = (_arg1.x - 60); if (_local2 > 600){ _local2 = 600; }; this.clip.entry.x = (((_arg1.x - _local2) / 2) - 10); this.clip.entry.width = _local2; this.clip.entry.height = (_arg1.y - 140); this.clip.scrollBar.x = ((this.clip.entry.x + this.clip.entry.width) + 5); this.clip.scrollBar.height = (_arg1.y - 140); this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } override public function show():void{ Main.error = ""; this.clip.visible = true; this.clip.entry.text = ""; if (shouldContinue){ this.clip.entry.text = Main.getEditSave(); MainPasteMap.shouldContinue = false; }; this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } } }//package ui.menu
Section 136
//MainPasteMapClip (ui.menu.MainPasteMapClip) package ui.menu { import fl.controls.*; import flash.display.*; import flash.text.*; public dynamic class MainPasteMapClip extends MovieClip { public var scrollBar:UIScrollBar; public var background:MovieClip; public var entry:TextField; public var loadLabel:TextField; public var loadButton:MovieClip; public var back:MovieClip; public function MainPasteMapClip(){ addFrameScript(0, frame1); __setProp_scrollBar_MainPasteMapClip_Layer1_1(); } function __setProp_scrollBar_MainPasteMapClip_Layer1_1(){ try { scrollBar["componentInspectorSetting"] = true; } catch(e:Error) { }; scrollBar.direction = "vertical"; scrollBar.scrollTargetName = "background"; scrollBar.visible = true; try { scrollBar["componentInspectorSetting"] = false; } catch(e:Error) { }; } function frame1(){ stop(); } } }//package ui.menu
Section 137
//MainPlay (ui.menu.MainPlay) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class MainPlay extends MenuRoot { protected var clip:MainPlayClip; protected var buttons:ButtonList; public function MainPlay(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainPlayClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.campaign, this.clip.randomMap, this.clip.browse, this.clip.downloadMap, this.clip.loadMap, this.clip.back]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 0){ Main.menu.changeState(MainMenu.CAMPAIGN); } else { if (_arg1 == 1){ Main.menu.changeState(MainMenu.DIFFICULTY); } else { if (_arg1 == 2){ Main.menu.changeState(MainMenu.BROWSE_WAIT); } else { if (_arg1 == 3){ Main.menu.changeState(MainMenu.DOWNLOAD_MAP); } else { if (_arg1 == 4){ Main.menu.changeState(MainMenu.PASTE_MAP); } else { if (_arg1 == 5){ Main.menu.changeState(MainMenu.START); }; }; }; }; }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(5); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } override public function show():void{ Main.menu.getSettings().clearEditor(); this.clip.visible = true; } } }//package ui.menu
Section 138
//MainPlayClip (ui.menu.MainPlayClip) package ui.menu { import flash.display.*; public dynamic class MainPlayClip extends MovieClip { public var campaign:MovieClip; public var background:MovieClip; public var browse:MovieClip; public var randomMap:MovieClip; public var loadMap:MovieClip; public var downloadMap:MovieClip; public var back:MovieClip; public function MainPlayClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 139
//MainRate (ui.menu.MainRate) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class MainRate extends MenuRoot { protected var difficulty:int; protected var clip:MainRateClip; protected var buttons:ButtonList; protected var fun:int; protected static var funRatings:Array = [Text.rateBad, Text.rateOk, Text.rateGood]; protected static var difficultyLabels:Array = ["easy", "medium", "hard"]; protected static var difficultyRatings:Array = [Text.rateEasy, Text.rateMedium, Text.rateHard]; protected static var funLabels:Array = ["bad", "ok", "good"]; public function MainRate(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.difficulty = 1; this.fun = 1; this.clip = new MainRateClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.back, this.clip.submitButton, this.clip.difficultyDown, this.clip.difficultyUp, this.clip.funDown, this.clip.funUp]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ if (_arg1 == 0){ Main.menu.revertState(); } else { if (_arg1 == 1){ Main.menu.rateFun = funLabels[this.fun]; Main.menu.rateDifficulty = difficultyLabels[this.difficulty]; Main.menu.changeState(MainMenu.RATE_MAP_WAIT); } else { if (_arg1 == 2){ if (this.difficulty > 0){ this.difficulty--; Util.success(); } else { Util.failure(); }; this.updateDifficulty(); } else { if (_arg1 == 3){ if (this.difficulty < 2){ this.difficulty++; Util.success(); } else { Util.failure(); }; this.updateDifficulty(); } else { if (_arg1 == 4){ if (this.fun > 0){ this.fun--; Util.success(); } else { Util.failure(); }; this.updateFun(); } else { if (_arg1 == 5){ if (this.fun < 2){ this.fun++; Util.success(); } else { Util.failure(); }; this.updateFun(); }; }; }; }; }; }; } protected function updateDifficulty():void{ var _local1:int; var _local2:int; this.clip.difficulty.barText.text = difficultyRatings[this.difficulty]; _local1 = this.difficulty; _local2 = 2; this.clip.difficulty.bar.width = ((_local1 / _local2) * Option.statusBarSize); if (this.difficulty == 0){ this.buttons.setGhosted(this.clip.difficultyDown); } else { this.buttons.setNormal(this.clip.difficultyDown); }; if (this.difficulty == 2){ this.buttons.setGhosted(this.clip.difficultyUp); } else { this.buttons.setNormal(this.clip.difficultyUp); }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(0); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } protected function updateFun():void{ var _local1:int; var _local2:int; this.clip.fun.barText.text = funRatings[this.fun]; _local1 = this.fun; _local2 = 2; this.clip.fun.bar.width = ((_local1 / _local2) * Option.statusBarSize); if (this.fun == 0){ this.buttons.setGhosted(this.clip.funDown); } else { this.buttons.setNormal(this.clip.funDown); }; if (this.fun == 2){ this.buttons.setGhosted(this.clip.funUp); } else { this.buttons.setNormal(this.clip.funUp); }; } override public function show():void{ this.clip.visible = true; this.difficulty = 1; this.fun = 1; this.updateDifficulty(); this.updateFun(); } } }//package ui.menu
Section 140
//MainRateClip (ui.menu.MainRateClip) package ui.menu { import flash.display.*; public dynamic class MainRateClip extends MovieClip { public var background:MovieClip; public var submitButton:MovieClip; public var fun:StatusClip; public var funUp:MovieClip; public var difficulty:StatusClip; public var difficultyUp:MovieClip; public var funDown:MovieClip; public var back:MovieClip; public var difficultyDown:MovieClip; public function MainRateClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 141
//MainStart (ui.menu.MainStart) package ui.menu { import flash.display.*; import logic.*; import ui.*; import flash.*; public class MainStart extends MenuRoot { protected var clip:MainStartClip; protected var buttons:ButtonList; public function MainStart(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainStartClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.newGame, this.clip.loadGame, this.clip.pedia, this.clip.options, this.clip.editor, this.clip.credits]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ if (_arg1 == 0){ Util.success(); Main.menu.getSettings().clearEditor(); if (Main.firstGame()){ Main.menu.changeState(MainMenu.TUTORIAL); } else { Main.menu.changeState(MainMenu.PLAY); }; } else { if (_arg1 == 1){ if (Main.canLoad()){ Util.success(); Main.menu.changeState(MainMenu.LOAD_WAIT); } else { Util.failure(); }; } else { if (_arg1 == 2){ Util.success(); Main.menu.changeState(MainMenu.PEDIA); } else { if (_arg1 == 3){ Util.success(); Main.menu.changeState(MainMenu.OPTIONS); } else { if (_arg1 == 4){ Util.success(); Main.menu.changeState(MainMenu.EDIT_SELECT); } else { if (_arg1 == 5){ Util.success(); Main.menu.changeState(MainMenu.CREDITS); }; }; }; }; }; }; } override public function resize(_arg1:Point):void{ var _local2:int; Util.scaleToFit(this.clip.background, _arg1); _local2 = Math.floor((this.clip.newGame.x + this.clip.newGame.width)); this.clip.title.x = ((_local2 + (((_arg1.x - _local2) - this.clip.title.width) / 2)) + 10); this.clip.armor.x = ((_arg1.x - this.clip.armor.width) - 10); this.clip.armor.y = ((_arg1.y - this.clip.armor.height) - 10); this.clip.facebook.x = ((_arg1.x - this.clip.facebook.width) - 148); this.clip.facebook.y = ((_arg1.y - this.clip.facebook.height) - 80); this.clip.twitter.x = ((_arg1.x - this.clip.twitter.width) - 34); this.clip.twitter.y = ((_arg1.y - this.clip.twitter.height) - 80); } override public function show():void{ if (Main.menu != null){ Main.menu.setSettings(new GameSettings()); }; this.clip.visible = true; if (Main.canLoad()){ this.buttons.setNormal(this.clip.loadGame); } else { this.buttons.setGhosted(this.clip.loadGame); }; } } }//package ui.menu
Section 142
//MainStartClip (ui.menu.MainStartClip) package ui.menu { import flash.display.*; import flash.events.*; import flash.net.*; public dynamic class MainStartClip extends MovieClip { public var background:MovieClip; public var armor:MovieClip; public var title:MovieClip; public var editor:MovieClip; public var pedia:MovieClip; public var twitter:MovieClip; public var credits:MovieClip; public var options:MovieClip; public var newGame:MovieClip; public var facebook:MovieClip; public var loadGame:MovieClip; public function MainStartClip(){ addFrameScript(0, frame1); } public function armorHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://armorgames.com"), "_blank"); } public function twitterHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://twitter.com/armorgames"), "_blank"); } function frame1(){ stop(); if (armor != null){ armor.addEventListener(MouseEvent.CLICK, armorHandler, false, 0, true); }; if (twitter != null){ twitter.addEventListener(MouseEvent.CLICK, twitterHandler, false, 0, true); }; if (facebook != null){ facebook.addEventListener(MouseEvent.CLICK, facebookHandler, false, 0, true); }; } public function facebookHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.facebook.com/pages/Armor-Games/19522089061"), "_blank"); } } }//package ui.menu
Section 143
//MainTutorial (ui.menu.MainTutorial) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class MainTutorial extends MenuRoot { protected var clip:MainTutorialClip; protected var buttons:ButtonList; public function MainTutorial(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainTutorialClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.playTutorial, this.clip.skipTutorial, this.clip.back]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 0){ Main.menu.rateState = MainMenu.CAMPAIGN; WaitMenu.loadMap(Text.levels[0]); Main.menu.getSettings().setCampaign(0); } else { if (_arg1 == 1){ Main.menu.changeState(MainMenu.PLAY); } else { if (_arg1 == 2){ Main.menu.changeState(MainMenu.START); }; }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(2); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); } override public function show():void{ this.clip.visible = true; } } }//package ui.menu
Section 144
//MainTutorialClip (ui.menu.MainTutorialClip) package ui.menu { import flash.display.*; public dynamic class MainTutorialClip extends MovieClip { public var background:MovieClip; public var playTutorial:MovieClip; public var back:MovieClip; public var skipTutorial:MovieClip; public function MainTutorialClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 145
//MainWin (ui.menu.MainWin) package ui.menu { import flash.display.*; import logic.*; import ui.*; import mapgen.*; import flash.*; public class MainWin extends MenuRoot { protected var clip:MainWinClip; protected var buttons:ButtonList; public function MainWin(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new MainWinClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.clip.rateLabel.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.replay, this.clip.mainMenu, this.clip.rateButton]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } protected function hintText():String{ var _local1:String; var _local2:int; var _local3:int; _local1 = ""; _local2 = Main.menu.getSettings().getDifficulty(); Util.seed(Main.menu.getSettings().getNormalName()); if (_local2 == 1){ _local1 = Text.easter[0]; } else { if (_local2 == 2){ _local1 = Text.easter[1]; } else { if (_local2 >= 3){ _local3 = Util.rand((Text.easter.length - 2)); _local1 = Text.easter[(_local3 + 2)]; }; }; }; return (_local1); } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ var _local2:int; Util.success(); if (_arg1 == 0){ Main.beginReplay(); } else { if (_arg1 == 1){ _local2 = MainMenu.START; if (Main.menu.getSettings().getCampaign() != -1){ _local2 = MainMenu.CAMPAIGN; }; Main.menu.setSettings(new GameSettings()); Main.menu.changeState(_local2); } else { if (_arg1 == 2){ Main.menu.rateState = MainMenu.WIN; Main.menu.changeState(MainMenu.RATE_MAP); }; }; }; } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); Util.alignRight(this.clip.city, _arg1); Util.alignRight(this.clip.difficulty, _arg1); Util.alignRight(this.clip.time, _arg1); Util.alignBottom(this.clip.rateButton, _arg1); Util.alignLabel(this.clip.rateButton, this.clip.rateLabel); } override public function show():void{ var _local1:int; this.clip.visible = true; this.clip.city.text = Main.menu.getSettings().getCityName(); this.clip.difficulty.text = Main.menu.getSettings().getDifficultyName(); _local1 = Main.menu.getSettings().getPlayTime(); this.clip.time.text = new Time(_local1).toString(); if (Main.menu.getSettings().getKey() == null){ this.clip.rateButton.visible = false; this.clip.rateLabel.visible = false; } else { this.clip.rateButton.visible = true; this.clip.rateLabel.visible = true; }; } } }//package ui.menu
Section 146
//MainWinClip (ui.menu.MainWinClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class MainWinClip extends MovieClip { public var rateLabel:TextField; public var background:MovieClip; public var rateButton:MovieClip; 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(); } } }//package ui.menu
Section 147
//MenuRoot (ui.menu.MenuRoot) package ui.menu { public class MenuRoot { public function MenuRoot():void{ } public function hotkey(_arg1:String, _arg2:int):Boolean{ return (false); } public function cleanup():void{ } public function hide():void{ } public function showTutorial():void{ this.show(); } public function resize(_arg1:Point):void{ } public function visitPage(_arg1:String):void{ } public function show():void{ } } }//package ui.menu
Section 148
//OptionsMenuClip (ui.menu.OptionsMenuClip) package ui.menu { import flash.display.*; public dynamic class OptionsMenuClip extends MovieClip { public var scrollDown:MovieClip; public var soundUp:MovieClip; public var music:StatusClip; public var background:MovieClip; public var sound:StatusClip; public var scrollUp:MovieClip; public var soundDown:MovieClip; public var musicDown:MovieClip; public var musicUp:MovieClip; public var scroll:StatusClip; public var back:MovieClip; } }//package ui.menu
Section 149
//PediaHash (ui.menu.PediaHash) package ui.menu { import ui.*; import flash.*; public class PediaHash { protected var hash:Hash; public function PediaHash():void{ var _local1:int; var _local2:String; var _local3:String; super(); if (!Boot.skip_constructor){ this.hash = new Hash(); _local1 = 0; while (_local1 < (Text.pedia.length - 1)) { _local2 = Text.pedia[_local1]; _local2 = StringTools.trim(_local2); _local3 = Text.pedia[(_local1 + 1)]; this.hash.set(_local2, _local3); _local1 = (_local1 + 2); }; }; } public function lookup(_arg1:String):String{ var _local2:String; _local2 = (("ERROR: " + _arg1) + " not found"); if (this.hash.exists(_arg1)){ _local2 = this.hash.get(_arg1); }; return (_local2); } } }//package ui.menu
Section 150
//PediaMenuClip (ui.menu.PediaMenuClip) package ui.menu { import fl.controls.*; import flash.display.*; import flash.text.*; public dynamic class PediaMenuClip extends MovieClip { public var scrollBar:UIScrollBar; public var background:MovieClip; public var splash:MovieClip; public var entry:TextField; public var up:ButtonUpgrade; public var forward:MovieClip; public var returnToMenu:MovieClip; public var back:MovieClip; public function PediaMenuClip(){ __setProp_scrollBar_PediaMenuClip_Layer1_1(); } function __setProp_scrollBar_PediaMenuClip_Layer1_1(){ try { scrollBar["componentInspectorSetting"] = true; } catch(e:Error) { }; scrollBar.direction = "vertical"; scrollBar.scrollTargetName = "entry"; scrollBar.visible = true; try { scrollBar["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package ui.menu
Section 151
//PlanMenuClip (ui.menu.PlanMenuClip) package ui.menu { import flash.display.*; public dynamic class PlanMenuClip extends MovieClip { public var abandon:ButtonAbandon; public function PlanMenuClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 152
//Quick (ui.menu.Quick) package ui.menu { import flash.display.*; import flash.events.*; import ui.*; import flash.*; public class Quick { protected var clip:QuickClip; protected var buttonList:ButtonList; protected static var HELP:int = 1; protected static var RANGE_ON:int = 3; protected static var RANGE_OFF:int = 2; protected static var SYSTEM:int = 0; public function Quick(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ if (!Boot.skip_constructor){ this.clip = new QuickClip(); _arg1.addChild(this.clip); this.clip.visible = true; this.clip.mouseEnabled = false; this.clip.rangeOn.visible = false; if (Game.settings.isEditor()){ this.clip.rangeOff.visible = false; this.clip.rangeOn.visible = false; }; this.buttonList = new ButtonList(this.click, this.hover, [this.clip.system, this.clip.help, this.clip.rangeOff, this.clip.rangeOn]); this.clip.addEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.resize(_arg2); }; } protected function findDepot(_arg1:Point):Point{ var _local2:Point; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; _local2 = _arg1.clone(); if (this.hasDepot(_local2)){ return (_local2); }; _local3 = Math.floor(Math.max(Game.map.sizeX(), Game.map.sizeY())); _local4 = 1; while (_local4 < _local3) { var _temp1 = _local4; _local4 = (_local4 + 1); _local5 = _temp1; _local6 = -(_local5); _local7 = _local5; while (_local6 < _local7) { var _temp2 = _local6; _local6 = (_local6 + 1); _local8 = _temp2; _local2.y = (_arg1.y + _local8); _local2.x = (_arg1.x - _local5); if (this.hasDepot(_local2)){ return (_local2); }; _local2.x = (_arg1.x + _local5); if (this.hasDepot(_local2)){ return (_local2); }; _local2.x = (_arg1.x + _local8); _local2.y = (_arg1.y - _local5); if (this.hasDepot(_local2)){ return (_local2); }; _local2.y = (_arg1.y + _local5); if (this.hasDepot(_local2)){ return (_local2); }; }; }; return (null); } public function cleanup():void{ this.clip.removeEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.buttonList.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == SYSTEM){ Game.view.centerMenu.changeState(CenterMenu.SYSTEM); } else { if (_arg1 == HELP){ Game.view.centerMenu.changeState(CenterMenu.PEDIA); } else { if ((((_arg1 == RANGE_ON)) || ((_arg1 == RANGE_OFF)))){ Game.view.window.toggleRanges(); }; }; }; } public function updateView(_arg1:Boolean):void{ if (_arg1){ this.clip.rangeOn.visible = true; this.clip.rangeOff.visible = false; } else { this.clip.rangeOn.visible = false; this.clip.rangeOff.visible = true; }; } protected function rollOver(_arg1:MouseEvent):void{ Game.view.toolTip.hide(); } public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg1 == "/")) || ((_arg1 == "?")))){ this.click(HELP); } else { if (_arg1 == " "){ Game.pause.toggle(); } else { if (_arg1 == "v"){ this.click(RANGE_ON); } else { _local3 = false; }; }; }; return (_local3); } protected function centerOn(_arg1:int, _arg2:int):void{ var _local3:LayoutGame; _local3 = Game.view.layout; Game.view.window.moveWindow((_arg1 - _local3.windowCenter.x), (_arg2 - _local3.windowCenter.y)); } protected function hasDepot(_arg1:Point):Boolean{ var _local2:Boolean; var _local3:Tower; _local2 = false; if (!Lib.outsideMap(_arg1)){ _local3 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); if (((!((_local3 == null))) && ((_local3.getType() == Tower.DEPOT)))){ _local2 = true; }; }; return (_local2); } public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.quickOffset.x; this.clip.y = _arg1.quickOffset.y; } protected function hover(_arg1:int):String{ var _local2:String; _local2 = null; if (_arg1 == SYSTEM){ _local2 = Text.systemTip; } else { if (_arg1 == HELP){ _local2 = Text.pediaTip; } else { if ((((_arg1 == RANGE_ON)) || ((_arg1 == RANGE_OFF)))){ if (Game.view.window.isShowingRanges()){ _local2 = Text.hideRangeTip; } else { _local2 = Text.showRangeTip; }; }; }; }; return (_local2); } } }//package ui.menu
Section 153
//QuickClip (ui.menu.QuickClip) package ui.menu { import flash.display.*; public dynamic class QuickClip extends MovieClip { public var rangeOn:ButtonRangeOn; public var system:ButtonSystem; public var help:ButtonHelp; public var rangeOff:ButtonRangeOff; } }//package ui.menu
Section 154
//ReplayMenuClip (ui.menu.ReplayMenuClip) package ui.menu { import flash.display.*; public dynamic class ReplayMenuClip extends MovieClip { public var slow:MovieClip; public var speed:StatusClip; public var fast:MovieClip; public var back:MovieClip; } }//package ui.menu
Section 155
//ResourceMenuClip (ui.menu.ResourceMenuClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class ResourceMenuClip extends MovieClip { public var ammoUp:ButtonPlus; public var boardsQuota:TextField; public var ammoQuotaBackground:MovieClip; public var ammoStockBackground:MovieClip; public var survivorsQuota:TextField; public var boardsIcon:MovieClip; public var ammoQuota:TextField; public var quota:TextField; public var survivorsIcon:MovieClip; public var ammoDown:ButtonMinus; public var boardsDown:ButtonMinus; public var ammoIcon:MovieClip; public var boardsQuotaBackground:MovieClip; public var survivorsDown:ButtonMinus; public var survivorsQuotaBackground:MovieClip; public var boardsUp:ButtonPlus; public var boardsStock:TextField; public var boardsStockBackground:MovieClip; public var survivorsStock:TextField; public var survivorsUp:ButtonPlus; public var ammoStock:TextField; public var survivorsStockBackground:MovieClip; } }//package ui.menu
Section 156
//SaveMapMenu (ui.menu.SaveMapMenu) package ui.menu { import flash.display.*; import flash.events.*; import ui.*; import flash.text.*; import flash.*; import flash.system.*; public class SaveMapMenu extends MenuRoot { protected var clip:SaveMapMenuClip; protected var buttons:ButtonList; public function SaveMapMenu(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new SaveMapMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.clip.copyLabel.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.back, this.clip.copyButton]); this.clip.entry.multiline = true; this.clip.entry.wordWrap = true; this.clip.entry.autoSize = TextFieldAutoSize.NONE; this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function componentUpdate(_arg1:Event):void{ this.clip.scrollBar.update(); this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 0){ Game.view.centerMenu.changeState(CenterMenu.SYSTEM); } else { if (_arg1 == 1){ System.setClipboard(this.clip.entry.text); }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(0); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ var _local2:int; Util.centerHorizontally(this.clip.back, _arg1); Util.alignBottom(this.clip.back, _arg1); Util.alignBottom(this.clip.copyButton, _arg1); Util.alignLabel(this.clip.copyButton, this.clip.copyLabel); _local2 = (_arg1.x - 60); if (_local2 > 600){ _local2 = 600; }; this.clip.entry.x = (((_arg1.x - _local2) / 2) - 10); this.clip.entry.width = _local2; this.clip.entry.height = (_arg1.y - 140); this.clip.scrollBar.x = ((this.clip.entry.x + this.clip.entry.width) + 5); this.clip.scrollBar.height = (_arg1.y - 140); this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } override public function show():void{ this.clip.visible = true; this.clip.entry.text = Game.settings.saveMap(); this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } } }//package ui.menu
Section 157
//SaveMapMenuClip (ui.menu.SaveMapMenuClip) package ui.menu { import fl.controls.*; import flash.display.*; import flash.text.*; public dynamic class SaveMapMenuClip extends MovieClip { public var scrollBar:UIScrollBar; public var copyButton:MovieClip; public var copyLabel:TextField; public var entry:TextField; public var back:MovieClip; public function SaveMapMenuClip(){ __setProp_scrollBar_SaveMapMenuClip_Layer1_1(); } function __setProp_scrollBar_SaveMapMenuClip_Layer1_1(){ try { scrollBar["componentInspectorSetting"] = true; } catch(e:Error) { }; scrollBar.direction = "vertical"; scrollBar.scrollTargetName = "entry"; scrollBar.visible = true; try { scrollBar["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package ui.menu
Section 158
//ScrollMenu (ui.menu.ScrollMenu) package ui.menu { import flash.display.*; import flash.events.*; import ui.*; import flash.*; public class ScrollMenu { protected var hoverDir:Direction; protected var arrows:Array; public function ScrollMenu(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ var _local3:int; var _local4:Array; var _local5:Direction; var _local6:ScrollArrowClip; super(); if (!Boot.skip_constructor){ this.arrows = []; _local3 = 0; _local4 = Lib.directions; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local6 = new ScrollArrowClip(); _arg1.addChild(_local6); _local6.rotation = Lib.directionToAngle(_local5); _local6.gotoAndStop(1); _local6.addEventListener(MouseEvent.ROLL_OVER, this.rollOver); _local6.addEventListener(MouseEvent.ROLL_OUT, this.rollOut); this.arrows.push(_local6); if (!Game.settings.isEditor()){ _local6.visible = false; }; }; this.hoverDir = null; this.resize(_arg2); }; } public function cleanup():void{ var _local1:int; var _local2:Array; var _local3:MovieClip; _local1 = 0; _local2 = this.arrows; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.removeEventListener(MouseEvent.ROLL_OVER, this.rollOver); _local3.removeEventListener(MouseEvent.ROLL_OUT, this.rollOut); _local3.parent.removeChild(_local3); }; } protected function rollOut(_arg1:MouseEvent):void{ var _local2:int; if (this.hoverDir != null){ _local2 = Lib.directionToIndex(this.hoverDir); this.arrows[_local2].gotoAndStop(1); this.hoverDir = null; }; } public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; var _local4:Direction; var _local5:Window; _local3 = true; _local4 = Direction.NORTH; _local5 = Game.view.window; if ((((_arg2 == 38)) || ((_arg2 == 104)))){ _local4 = Direction.NORTH; _local5.scrollWindow(_local4, 1); } else { if ((((_arg2 == 40)) || ((_arg2 == 98)))){ _local4 = Direction.SOUTH; _local5.scrollWindow(_local4, 1); } else { if ((((_arg2 == 39)) || ((_arg2 == 102)))){ _local4 = Direction.EAST; _local5.scrollWindow(_local4, 1); } else { if ((((_arg2 == 37)) || ((_arg2 == 100)))){ _local4 = Direction.WEST; _local5.scrollWindow(_local4, 1); } else { _local3 = false; }; }; }; }; return (_local3); } public function resize(_arg1:Point):void{ this.arrows[0].x = (_arg1.x / 2); this.arrows[0].y = 50; this.arrows[1].x = (_arg1.x / 2); this.arrows[1].y = _arg1.y; this.arrows[2].x = _arg1.x; this.arrows[2].y = (_arg1.y / 2); this.arrows[3].x = 0; this.arrows[3].y = (_arg1.y / 2); } public function enterFrame():void{ if (this.hoverDir != null){ Game.view.window.scrollWindow(this.hoverDir, 1); }; } protected function rollOver(_arg1:MouseEvent):void{ var _local2:int; var _local3:Boolean; var _local4:int; var _local5:Array; var _local6:MovieClip; this.hoverDir = null; _local2 = 0; _local3 = false; _local4 = 0; _local5 = this.arrows; while (_local4 < _local5.length) { _local6 = _local5[_local4]; _local4++; if (_local6 == _arg1.target){ _local6.gotoAndStop(2); _local3 = true; break; }; _local2++; }; if (_local3){ this.hoverDir = Lib.indexToDirection(_local2); }; } } }//package ui.menu
Section 159
//SetChargesClip (ui.menu.SetChargesClip) package ui.menu { import flash.display.*; public dynamic class SetChargesClip extends MovieClip { public var bar:MovieClip; } }//package ui.menu
Section 160
//SideBar (ui.menu.SideBar) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class SideBar { protected var state:int; protected var sideBars:Array; protected var useHover:Boolean; public static var WORKSHOP:int = 3; public static var PLAN:int = 4; public static var SNIPER:int = 1; public static var BARRICADE:int = 0; public static var DEPOT:int = 2; public static var NONE:int = 5; public function SideBar(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ if (!Boot.skip_constructor){ this.state = NONE; this.sideBars = []; this.sideBars.push(new SideBarricade(_arg1, _arg2)); this.sideBars.push(new SideSniper(_arg1, _arg2)); this.sideBars.push(new SideDepot(_arg1, _arg2)); this.sideBars.push(new SideWorkshop(_arg1, _arg2)); this.sideBars.push(new SidePlan(_arg1, _arg2)); this.sideBars.push(new SideRoot(null)); this.useHover = true; }; } public function cleanup():void{ var _local1:int; var _local2:Array; var _local3:SideRoot; _local1 = 0; _local2 = this.sideBars; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.cleanup(); }; this.sideBars = null; } public function clickTower(_arg1:Point):void{ this.changeState(this.sideBars[this.state].tower(_arg1)); } public function hoverBackground(_arg1:Point):void{ if (this.useHover){ this.sideBars[this.state].hoverBackground(_arg1); }; } public function changeSelect():void{ var _local1:int; var _local2:Point; var _local3:MapCell; _local1 = NONE; _local2 = Game.select.getSelected(); if (_local2 != null){ _local3 = Game.map.getCell(_local2.x, _local2.y); if (_local3.hasTower()){ _local1 = _local3.getTower().getType(); } else { if (_local3.hasShadow()){ _local1 = PLAN; }; }; }; this.changeState(_local1); } public function hoverTower(_arg1:Point):void{ if (this.useHover){ this.sideBars[this.state].hoverTower(_arg1); }; } protected function changeState(_arg1:int):void{ if (_arg1 != this.state){ this.sideBars[this.state].hide(); this.sideBars[_arg1].show(); this.state = _arg1; }; } public function hotkey(_arg1:String, _arg2:int):Boolean{ return (this.sideBars[this.state].hotkey(_arg1, _arg2)); } public function resize(_arg1:LayoutGame):void{ var _local2:int; var _local3:Array; var _local4:SideRoot; _local2 = 0; _local3 = this.sideBars; while (_local2 < _local3.length) { _local4 = _local3[_local2]; _local2++; _local4.resize(_arg1); }; } public function enterFrame():void{ var _local1:int; var _local2:int; var _local3:int; _local1 = 0; _local2 = this.sideBars.length; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; if (_local3 == this.state){ this.sideBars[_local3].stepShow(); } else { this.sideBars[_local3].stepHide(); }; }; } public function clickBackground(_arg1:Point):void{ this.changeState(this.sideBars[this.state].background(_arg1)); } public function enableHover():void{ this.useHover = true; } public function disableHover():void{ this.useHover = false; } public function show():void{ this.sideBars[this.state].show(); } } }//package ui.menu
Section 161
//SideBarricade (ui.menu.SideBarricade) package ui.menu { import flash.display.*; import ui.*; import flash.text.*; import flash.*; public class SideBarricade extends SideRoot { protected var clip:BarricadeMenuClip; protected var hoverBase:HoverList; protected static var BOARDS_DOWN:int = 1; protected static var BOARDS_UP:int = 0; public function SideBarricade(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ var parent = _arg1; var l = _arg2; if (!Boot.skip_constructor){ this.clip = new BarricadeMenuClip(); parent.addChild(this.clip); this.clip.visible = false; this.resize(l); super(this.clip, [this.clip.boardsUp, this.clip.boardsDown]); this.hoverBase = new HoverList([function (_arg1:SideBarricade):DisplayObject{ var $r:*; var tmp:*; var $this = _arg1; tmp = $this.clip.boardsStock; $r = (Std._is(tmp, DisplayObject)) ? tmp : function (_arg1:SideBarricade):TextField{ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this), this.clip.boardsIcon, this.clip.boardsStockBackground, this.clip.boardsQuota, this.clip.boardsQuotaBackground, this.clip.quota], [Text.boardsTip, Text.boardsTip, Text.boardsTip, Text.boardsQuotaTip, Text.boardsQuotaTip, Text.quotaTip]); }; } protected function barClick(_arg1:Resource, _arg2:Boolean):void{ this.changeReserve(Resource.BOARDS, _arg2); } override protected function click(_arg1:int):void{ if (_arg1 == BOARDS_UP){ this.barClick(Resource.BOARDS, true); } else { if (_arg1 == BOARDS_DOWN){ this.barClick(Resource.BOARDS, false); }; }; } override protected function hover(_arg1:int):String{ if (_arg1 == BOARDS_UP){ return (this.boardHover(Resource.BOARDS, true)); }; if (_arg1 == BOARDS_DOWN){ return (this.boardHover(Resource.BOARDS, false)); }; return (null); } override public function cleanup():void{ this.hoverBase.cleanup(); super.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg1 == "-")) || ((_arg1 == "_")))){ this.click(BOARDS_DOWN); } else { if ((((_arg1 == "=")) || ((_arg1 == "+")))){ this.click(BOARDS_UP); } else { _local3 = false; }; }; return (_local3); } override public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.sideMenuOffset.x; this.clip.y = _arg1.sideMenuOffset.y; } protected function boardHover(_arg1:Resource, _arg2:Boolean):String{ var _local3:String; _local3 = null; if (_arg2){ return (Text.barricadeBoardsIncreaseTip); }; return (Text.barricadeBoardsDecreaseTip); } override public function show():void{ var _local1:Point; var _local2:Tower; super.show(); _local1 = Game.select.getSelected(); _local2 = Game.map.getCell(_local1.x, _local1.y).getTower(); this.clip.boardsStock.text = Std.string(_local2.countResource(Resource.BOARDS)); this.clip.boardsQuota.text = Std.string(_local2.countReserve(Resource.BOARDS)); } } }//package ui.menu
Section 162
//SideDepot (ui.menu.SideDepot) package ui.menu { import flash.display.*; import ui.*; import flash.text.*; import flash.*; public class SideDepot extends SideRoot { protected var quotaText:Array; protected var hoverBase:HoverList; protected var clip:DepotMenuClip; protected var stockText:Array; protected static var SURVIVORS_DOWN:int = 4; protected static var resources:Array = [Resource.AMMO, Resource.BOARDS, Resource.SURVIVORS]; protected static var AMMO_UP:int = 5; protected static var BOARDS_UP:int = 6; protected static var AMMO_DOWN:int = 2; protected static var BOARDS_DOWN:int = 3; protected static var ABANDON:int = 0; protected static var barDecreaseTip:Array = [Text.depotAmmoDecreaseTip, Text.depotBoardsDecreaseTip, null, Text.depotSurvivorsDecreaseTip]; protected static var GATHER:int = 1; protected static var SURVIVORS_UP:int = 7; protected static var barIncreaseTip:Array = [Text.depotAmmoIncreaseTip, Text.depotBoardsIncreaseTip, null, Text.depotSurvivorsIncreaseTip]; public function SideDepot(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ var parent = _arg1; var l = _arg2; if (!Boot.skip_constructor){ this.clip = new DepotMenuClip(); parent.addChild(this.clip); this.clip.visible = false; this.resize(l); this.quotaText = [this.clip.resource.ammoQuota, this.clip.resource.boardsQuota, this.clip.resource.survivorsQuota]; this.stockText = [this.clip.resource.ammoStock, this.clip.resource.boardsStock, this.clip.resource.survivorsStock]; super(this.clip, [this.clip.abandon, this.clip.gather, this.clip.resource.ammoDown, this.clip.resource.boardsDown, this.clip.resource.survivorsDown, this.clip.resource.ammoUp, this.clip.resource.boardsUp, this.clip.resource.survivorsUp]); this.setResourceClip(this.clip, this.clip.resource); this.hoverBase = new HoverList([function (_arg1:SideDepot):DisplayObject{ var $r:*; var tmp:*; var $this = _arg1; tmp = $this.clip.resource.ammoStock; $r = (Std._is(tmp, DisplayObject)) ? tmp : function (_arg1:SideDepot):TextField{ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this), this.clip.resource.ammoIcon, this.clip.resource.ammoStockBackground, this.clip.resource.boardsStock, this.clip.resource.boardsIcon, this.clip.resource.boardsStockBackground, this.clip.resource.survivorsStock, this.clip.resource.survivorsIcon, this.clip.resource.survivorsStockBackground, this.clip.resource.quota, this.clip.resource.ammoQuota, this.clip.resource.ammoQuotaBackground, this.clip.resource.boardsQuota, this.clip.resource.boardsQuotaBackground, this.clip.resource.survivorsQuota, this.clip.resource.survivorsQuotaBackground], [Text.ammoTip, Text.ammoTip, Text.ammoTip, Text.boardsTip, Text.boardsTip, Text.boardsTip, Text.survivorsTip, Text.survivorsTip, Text.survivorsTip, Text.quotaTip, Text.ammoQuotaTip, Text.ammoQuotaTip, Text.boardsQuotaTip, Text.boardsQuotaTip, Text.survivorsQuotaTip, Text.survivorsQuotaTip]); if (Game.settings.isEditor()){ this.clip.abandon.visible = false; }; }; } override public function hide():void{ super.hide(); } protected function showButtons():void{ this.showReserveButtons([this.clip.resource.ammoDown, this.clip.resource.boardsDown, this.clip.resource.survivorsDown], [Resource.AMMO, Resource.BOARDS, Resource.SURVIVORS]); if (Game.progress.getDepotCount() <= 1){ this.buttonList.setGhosted(this.clip.abandon); } else { this.buttonList.setNormal(this.clip.abandon); }; } override protected function click(_arg1:int):void{ var _local2:Tower; var _local3:int; var _local4:Array; var _local5:Resource; var _local6:Boolean; var _local7:Resource; if (_arg1 == ABANDON){ if (Game.progress.getDepotCount() <= 1){ Util.failure(); } else { Util.fleeClick(); Util.success(); }; } else { if (_arg1 == GATHER){ _local2 = this.getTower(); _local3 = 0; _local4 = Lib.resource; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local2.addSand(new ResourceCount(_local5, 100)); }; Util.success(); } else { _local6 = this.getIncreasing(_arg1); _local7 = this.getResource(_arg1); this.barClick(_local7, _local6); }; }; if (_arg1 != ABANDON){ this.show(); }; } override protected function hover(_arg1:int):String{ var _local2:String; var _local3:Boolean; var _local4:Resource; _local2 = null; if (_arg1 == ABANDON){ if (Game.progress.getDepotCount() <= 1){ _local2 = Text.noFleeTip; } else { _local2 = Text.fleeTip; }; } else { if (_arg1 == GATHER){ _local2 = Text.gatherResourcesTip; } else { _local3 = this.getIncreasing(_arg1); _local4 = this.getResource(_arg1); _local2 = this.barHover(_local4, _local3); }; }; return (_local2); } protected function getIncreasing(_arg1:int):Boolean{ var _local2:Boolean; _local2 = true; if ((((((_arg1 == AMMO_DOWN)) || ((_arg1 == BOARDS_DOWN)))) || ((_arg1 == SURVIVORS_DOWN)))){ _local2 = false; }; return (_local2); } protected function barHover(_arg1:Resource, _arg2:Boolean):String{ var _local3:String; var _local4:int; _local3 = null; _local4 = Lib.resourceToIndex(_arg1); if (_arg2){ _local3 = barIncreaseTip[_local4]; } else { if (this.getTower().countReserve(_arg1) > 0){ _local3 = barDecreaseTip[_local4]; } else { _local3 = SideRoot.barNoDecreaseTip[_local4]; }; }; return (_local3); } protected function barClick(_arg1:Resource, _arg2:Boolean):void{ this.changeReserve(_arg1, _arg2); } protected function getResource(_arg1:int):Resource{ var _local2:Resource; _local2 = Resource.SURVIVORS; if ((((_arg1 == AMMO_DOWN)) || ((_arg1 == AMMO_UP)))){ _local2 = Resource.AMMO; } else { if ((((_arg1 == BOARDS_DOWN)) || ((_arg1 == BOARDS_UP)))){ _local2 = Resource.BOARDS; }; }; return (_local2); } override public function cleanup():void{ this.hoverBase.cleanup(); super.removeResourceClip(this.clip); super.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ Util.success(); this.show(); } else { if ((((_arg1 == "-")) || ((_arg1 == "_")))){ this.click(SURVIVORS_DOWN); } else { if ((((_arg1 == "=")) || ((_arg1 == "+")))){ this.click(SURVIVORS_UP); } else { _local3 = Util.towerMenuHotkey(_arg1, _arg2); }; }; }; return (_local3); } override public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.sideMenuOffset.x; this.clip.y = _arg1.sideMenuOffset.y; } override public function show():void{ super.show(); showResources(this.quotaText, this.stockText); this.showButtons(); } protected static function showResources(_arg1:Array, _arg2:Array):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:Resource; var _local7:Tower; var _local8:int; var _local9:int; var _local10:int; _local3 = 0; _local4 = _arg1.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local6 = resources[_local5]; _local7 = SideRoot.getSelectedTower(); _local8 = 1; _local9 = Math.floor((_local7.countReserve(_local6) / _local8)); _arg1[_local5].text = Std.string(_local9); _local10 = Math.floor((_local7.countResource(_local6) / _local8)); _arg2[_local5].text = Std.string(_local10); }; } } }//package ui.menu
Section 163
//SidePlan (ui.menu.SidePlan) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class SidePlan extends SideRoot { protected var clip:PlanMenuClip; public function SidePlan(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ if (!Boot.skip_constructor){ this.clip = new PlanMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.resize(_arg2); super(this.clip, [this.clip.abandon]); }; } protected function cancelClick():void{ var _local1:Point; _local1 = Game.select.getSelected(); Game.map.getCell(_local1.x, _local1.y).clearShadow(); Game.update.changeSelect(null); Util.success(); } override protected function click(_arg1:int):void{ this.cancelClick(); } override protected function hover(_arg1:int):String{ return (this.cancelHover()); } override public function cleanup():void{ super.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg2 == Keyboard.deleteCode)) || ((_arg2 == Keyboard.backSpaceCode)))){ this.cancelClick(); } else { if (_arg2 == Keyboard.escapeCode){ Game.update.changeSelect(null); Util.success(); } else { _local3 = false; }; }; return (_local3); } override public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.sideMenuOffset.x; this.clip.y = _arg1.sideMenuOffset.y; } protected function cancelHover():String{ return (Text.planCancelTip); } } }//package ui.menu
Section 164
//SideRoot (ui.menu.SideRoot) package ui.menu { import flash.display.*; import flash.events.*; import logic.*; import ui.*; import flash.*; public class SideRoot { protected var base:MovieClip; protected var alpha:int; protected var buttonList:ButtonList; protected var resourceClip:MovieClip; protected static var maxAlpha:int = 3; protected static var barNoDecreaseTip:Array = [Text.ammoNoDecreaseTip, Text.boardsNoDecreaseTip, Text.foodNoDecreaseTip, Text.survivorsNoDecreaseTip]; public function SideRoot(_arg1:MovieClip=null, _arg2:Array=null):void{ var _local3:Array; super(); if (!Boot.skip_constructor){ this.base = _arg1; this.alpha = 0; if (this.base != null){ this.base.alpha = 0; this.base.addEventListener(MouseEvent.ROLL_OVER, this.baseOver); }; this.resourceClip = null; _local3 = []; if (_arg2 != null){ _local3 = _arg2; }; this.buttonList = new ButtonList(this.click, this.hover, _local3); }; } protected function setResourceClip(_arg1:MovieClip, _arg2:MovieClip):void{ this.resourceClip = _arg2; this.resourceClip.y = Game.view.layout.resourceShownOffset; _arg1.addEventListener(MouseEvent.ROLL_OVER, this.rollOver); _arg1.addEventListener(MouseEvent.ROLL_OUT, this.rollOut); } public function hide():void{ } protected function baseOver(_arg1:MouseEvent):void{ Game.view.toolTip.hide(); } protected function click(_arg1:int):void{ } public function tower(_arg1:Point):int{ Util.success(); return (this.changeSelect(_arg1)); } public function hoverBackground(_arg1:Point):void{ var _local2:MapCell; var _local3:String; _local2 = Game.map.getCell(_arg1.x, _arg1.y); _local3 = null; if (_local2.hasShadow()){ _local3 = Text.hoverPlanTip; } else { if (_local2.feature != null){ _local3 = _local2.feature.getHoverTip(); } else { if (_local2.hasZombies()){ _local3 = Text.hoverZombieTip; } else { if (_local2.getBuilding() != null){ _local3 = _local2.getBuilding().getToolTip(); } else { if (_local2.hasRubble()){ _local3 = Text.hoverRubbleTip; }; }; }; }; }; Game.view.toolTip.show(_local3); } protected function changeSelect(_arg1:Point):int{ var _local2:MapCell; if (_arg1 == null){ Game.update.changeSelect(null); } else { _local2 = Game.map.getCell(_arg1.x, _arg1.y); if (((_local2.hasTower()) || (_local2.hasShadow()))){ if (((!(Game.settings.isEditor())) || (Point.isEqual(Game.editor.getSelectedSquare(), _arg1)))){ Game.update.changeSelect(_arg1); } else { Game.update.changeSelect(null); }; } else { Game.update.changeSelect(null); }; }; return (SideBar.NONE); } protected function rollOut(_arg1:MouseEvent):void{ } protected function getTower():Tower{ return (getSelectedTower()); } protected function showReserveButtons(_arg1:Array, _arg2:Array):void{ var _local3:Tower; var _local4:int; var _local5:int; var _local6:int; _local3 = this.getTower(); _local4 = 0; _local5 = _arg1.length; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; if (_local3.countReserve(_arg2[_local6]) < Lib.truckLoad(_arg2[_local6])){ this.buttonList.setGhosted(_arg1[_local6]); } else { this.buttonList.setNormal(_arg1[_local6]); }; }; } protected function removeResourceClip(_arg1:MovieClip):void{ if (this.resourceClip != null){ _arg1.removeEventListener(MouseEvent.ROLL_OVER, this.rollOver); _arg1.removeEventListener(MouseEvent.ROLL_OUT, this.rollOut); this.resourceClip = null; }; } public function cleanup():void{ if (this.base != null){ this.base.removeEventListener(MouseEvent.ROLL_OVER, this.baseOver); }; this.buttonList.cleanup(); } public function stepShow():void{ if (this.base != null){ if (this.alpha < maxAlpha){ this.alpha++; if (this.alpha == maxAlpha){ this.base.alpha = 1; } else { this.base.alpha = (this.alpha / maxAlpha); }; }; }; } protected function changeReserve(_arg1:Resource, _arg2:Boolean):void{ var _local3:Boolean; var _local4:int; var _local5:int; var _local6:int; var _local7:ResourceCount; var _local8:Point; var _local9:Tower; _local3 = false; _local4 = 1; if (Main.key.shift()){ _local4 = 5; }; _local5 = 0; while (_local5 < _local4) { var _temp1 = _local5; _local5 = (_local5 + 1); _local6 = _temp1; _local7 = new ResourceCount(_arg1, Lib.truckLoad(_arg1)); _local8 = Game.select.getSelected(); if (_arg2){ _local9 = this.getTower(); if (((((!((_local9.getType() == Tower.SNIPER))) || (!((_arg1 == Resource.SURVIVORS))))) || ((_local9.countReserve(Resource.SURVIVORS) < Sniper.maxSurvivors)))){ _local9.addReserve(_local7); if (!_local3){ Util.success(); _local3 = true; }; if (_arg1 == Resource.AMMO){ Game.script.trigger(Script.CLICK_ADD_AMMO, _local8); } else { if (_arg1 == Resource.BOARDS){ Game.script.trigger(Script.CLICK_ADD_BOARDS, _local8); } else { if (_arg1 == Resource.SURVIVORS){ Game.script.trigger(Script.CLICK_ADD_SURVIVORS, _local8); }; }; }; } else { if (!_local3){ Util.failure(); _local3 = true; }; }; } else { if (this.getTower().countReserve(_arg1) > 0){ this.getTower().removeReserve(_local7); if (!_local3){ Util.success(); _local3 = true; }; if (_arg1 == Resource.AMMO){ Game.script.trigger(Script.CLICK_REMOVE_AMMO, _local8); } else { if (_arg1 == Resource.BOARDS){ Game.script.trigger(Script.CLICK_REMOVE_BOARDS, _local8); } else { if (_arg1 == Resource.SURVIVORS){ Game.script.trigger(Script.CLICK_REMOVE_SURVIVORS, _local8); }; }; }; } else { if (!_local3){ Util.failure(); _local3 = true; }; }; }; }; } public function hoverTower(_arg1:Point):void{ var _local2:String; var _local3:Tower; var _local4:int; _local2 = null; _local3 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); _local4 = _local3.getType(); if (_local4 == Tower.DEPOT){ _local2 = Text.hoverDepotTip; } else { if (_local4 == Tower.WORKSHOP){ _local2 = Text.hoverWorkshopTip; } else { if (_local4 == Tower.SNIPER){ if (_local3.countResource(Resource.SURVIVORS) == 0){ _local2 = Text.hoverSniperNoSurvivorsTip; } else { if (_local3.countResource(Resource.AMMO) == 0){ _local2 = Text.hoverSniperNoAmmoTip; } else { if (_local3.isHoldingFire()){ _local2 = Text.hoverSniperHoldFireTip; } else { _local2 = Text.hoverSniperTip; }; }; }; } else { if (_local3.countResource(Resource.BOARDS) == 0){ _local2 = Text.hoverBarricadeNoBoardsTip; } else { _local2 = Text.hoverBarricadeTip; }; }; }; }; Game.view.toolTip.show(_local2); } public function background(_arg1:Point):int{ if (Game.select.getSelected() != null){ Util.success(); }; return (this.changeSelect(_arg1)); } protected function rollOver(_arg1:MouseEvent):void{ } public function hotkey(_arg1:String, _arg2:int):Boolean{ return (false); } public function resize(_arg1:LayoutGame):void{ } public function stepHide():void{ if (this.base != null){ if (this.alpha > 0){ this.alpha--; if (this.alpha == 0){ this.base.alpha = 0; this.base.visible = false; } else { this.base.alpha = (this.alpha / maxAlpha); }; }; }; } protected function hover(_arg1:int):String{ return (null); } public function show():void{ if (this.base != null){ this.base.visible = true; }; } protected static function getSelectedTower():Tower{ var _local1:Point; _local1 = Game.select.getSelected(); return (Game.map.getCell(_local1.x, _local1.y).getTower()); } } }//package ui.menu
Section 165
//SideSniper (ui.menu.SideSniper) package ui.menu { import flash.display.*; import logic.*; import ui.*; import flash.*; public class SideSniper extends SideRoot { protected var stocks:Array; protected var resources:Array; protected var hoverBase:HoverList; protected var clip:SniperMenuClip; protected var quotas:Array; protected static var SURVIVORS_UP:int = 8; protected static var FIRE_AT_WILL:int = 3; protected static var SURVIVORS_DOWN:int = 6; protected static var SHOOT_INTO_AIR:int = 1; protected static var barIncreaseTip:Array = [Text.sniperAmmoIncreaseTip, null, null, Text.sniperSurvivorsIncreaseTip]; protected static var AMMO_DOWN:int = 5; protected static var ABANDON:int = 0; protected static var barDecreaseTip:Array = [Text.sniperAmmoDecreaseTip, null, null, Text.sniperSurvivorsDecreaseTip]; protected static var accuracySize:int = 92; protected static var AMMO_UP:int = 7; protected static var UPGRADE:int = 4; protected static var HOLD_FIRE:int = 2; public function SideSniper(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ var parent = _arg1; var l = _arg2; if (!Boot.skip_constructor){ this.clip = new SniperMenuClip(); parent.addChild(this.clip); this.clip.visible = false; this.clip.accuracy.mouseChildren = false; this.resize(l); super(this.clip, [this.clip.abandon, this.clip.shootIntoAir, this.clip.holdFire, this.clip.fireAtWill, this.clip.upgrade, this.clip.resource.ammoDown, this.clip.resource.survivorsDown, this.clip.resource.ammoUp, this.clip.resource.survivorsUp]); this.setResourceClip(this.clip, this.clip.resource); this.stocks = [this.clip.resource.ammoStock, this.clip.resource.survivorsStock]; this.quotas = [this.clip.resource.ammoQuota, this.clip.resource.survivorsQuota]; this.resources = [Resource.AMMO, Resource.SURVIVORS]; this.hoverBase = new HoverList([function (_arg1:SideSniper):DisplayObject{ var $r:*; var tmp:*; var $this = _arg1; tmp = $this.clip.accuracy; $r = (Std._is(tmp, DisplayObject)) ? tmp : function (_arg1:SideSniper):AccuracyClip{ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this), this.clip.resource.ammoStock, this.clip.resource.ammoIcon, this.clip.resource.ammoStockBackground, this.clip.resource.survivorsStock, this.clip.resource.survivorsIcon, this.clip.resource.survivorsStockBackground, this.clip.resource.quota, this.clip.resource.ammoQuota, this.clip.resource.ammoQuotaBackground, this.clip.resource.survivorsQuota, this.clip.resource.survivorsQuotaBackground], [Text.accuracyBarTip, Text.ammoTip, Text.ammoTip, Text.ammoTip, Text.survivorsTip, Text.survivorsTip, Text.survivorsTip, Text.quotaTip, Text.ammoQuotaTip, Text.ammoQuotaTip, Text.survivorsQuotaTip, Text.survivorsQuotaTip]); if (Game.settings.isEditor()){ this.clip.abandon.visible = false; this.clip.shootIntoAir.visible = false; this.clip.holdFire.visible = false; this.clip.fireAtWill.visible = false; this.clip.upgrade.visible = false; }; }; } protected function getResource(_arg1:int):Resource{ var _local2:Resource; _local2 = Resource.SURVIVORS; if ((((_arg1 == AMMO_DOWN)) || ((_arg1 == AMMO_UP)))){ _local2 = Resource.AMMO; }; return (_local2); } protected function upgradeHover():String{ var _local1:String; var _local2:Point; var _local3:Tower; var _local4:String; _local1 = null; _local2 = Game.select.getSelected(); _local3 = Game.map.getCell(_local2.x, _local2.y).getTower(); if (_local3.isUpgrading()){ _local1 = Text.upgradeInProgressTip; } else { if (!_local3.canUpgrade()){ _local1 = Text.upgradeMaxTip; } else { if (_local3.getUpgradeSupplier() != null){ _local4 = _local3.getUpgradeLeftText(); _local1 = Text.upgradeSniperTip(_local4); } else { _local1 = Text.upgradeNoResourceTip; }; }; }; return (_local1); } override protected function click(_arg1:int):void{ var _local2:Boolean; var _local3:Resource; if (_arg1 == ABANDON){ Util.fleeClick(); Util.success(); } else { if (_arg1 == SHOOT_INTO_AIR){ this.wasteShotClick(); } else { if ((((_arg1 == HOLD_FIRE)) || ((_arg1 == FIRE_AT_WILL)))){ this.toggleFireClick(); } else { if (_arg1 == UPGRADE){ this.upgradeClick(); } else { _local2 = this.getIncreasing(_arg1); _local3 = this.getResource(_arg1); this.barClick(_local3, _local2); }; }; }; }; } override public function cleanup():void{ this.hoverBase.cleanup(); super.removeResourceClip(this.clip); super.cleanup(); this.clip.parent.removeChild(this.clip); } protected function toggleFireHover():String{ var _local1:Point; var _local2:Tower; _local1 = Game.select.getSelected(); _local2 = Game.map.getCell(_local1.x, _local1.y).getTower(); if (_local2.isHoldingFire()){ return (Text.enableFireTip); }; return (Text.disableFireTip); } override public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.sideMenuOffset.x; this.clip.y = _arg1.sideMenuOffset.y; } protected function barClick(_arg1:Resource, _arg2:Boolean):void{ this.changeReserve(_arg1, _arg2); } protected function wasteShotClick():void{ var _local1:Point; var _local2:Tower; _local1 = Game.select.getSelected(); _local2 = Game.map.getCell(_local1.x, _local1.y).getTower(); if (_local2.canWasteShot()){ Util.success(); _local2.wasteShot(); Game.script.trigger(Script.CLICK_SHOOT, _local1); } else { Util.failure(); if (_local2.countResource(Resource.SURVIVORS) == 0){ Game.view.warning.show(Text.noSurvivorsWarning); } else { if (_local2.countResource(Resource.AMMO) == 0){ Game.view.warning.show(Text.noAmmoWarning); } else { Game.view.warning.show(Text.noBoardsWarning); }; }; }; this.show(); } override protected function hover(_arg1:int):String{ var _local2:String; var _local3:Boolean; var _local4:Resource; _local2 = null; if (_arg1 == ABANDON){ _local2 = Util.fleeHover(); } else { if (_arg1 == SHOOT_INTO_AIR){ _local2 = this.wasteShotHover(); } else { if ((((_arg1 == HOLD_FIRE)) || ((_arg1 == FIRE_AT_WILL)))){ _local2 = this.toggleFireHover(); } else { if (_arg1 == UPGRADE){ _local2 = this.upgradeHover(); } else { _local3 = this.getIncreasing(_arg1); _local4 = this.getResource(_arg1); _local2 = this.barHover(_local4, _local3); }; }; }; }; return (_local2); } protected function upgradeClick():void{ var _local1:Point; var _local2:Tower; var _local3:Boolean; _local1 = Game.select.getSelected(); _local2 = Game.map.getCell(_local1.x, _local1.y).getTower(); _local3 = _local2.startUpgradeTruck(); if (_local3){ Game.script.trigger(Script.CLICK_UPGRADE, _local1); Util.success(); } else { Util.failure(); if (_local2.isUpgrading()){ Game.view.warning.show(Text.upgradeInProgressWarning); } else { Game.view.warning.show(Text.noUpgradeResourcesWarning); }; }; this.show(); } protected function wasteShotHover():String{ var _local1:Point; var _local2:Tower; _local1 = Game.select.getSelected(); _local2 = Game.map.getCell(_local1.x, _local1.y).getTower(); if (_local2.canWasteShot()){ return (Text.wasteShotTip); }; return (Text.noWasteShotTip); } protected function barHover(_arg1:Resource, _arg2:Boolean):String{ var _local3:String; var _local4:int; _local3 = null; _local4 = Lib.resourceToIndex(_arg1); if (_arg2){ _local3 = barIncreaseTip[_local4]; } else { if (this.getTower().countReserve(_arg1) > 0){ _local3 = barDecreaseTip[_local4]; } else { _local3 = SideRoot.barNoDecreaseTip[_local4]; }; }; return (_local3); } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg1 == "a")) || ((_arg1 == "A")))){ this.wasteShotClick(); } else { if ((((_arg1 == "f")) || ((_arg1 == "F")))){ this.toggleFireClick(); } else { if ((((_arg1 == "u")) || ((_arg1 == "U")))){ this.upgradeClick(); } else { if ((((_arg1 == "-")) || ((_arg1 == "_")))){ this.click(SURVIVORS_DOWN); } else { if ((((_arg1 == "=")) || ((_arg1 == "+")))){ this.click(SURVIVORS_UP); } else { _local3 = Util.towerMenuHotkey(_arg1, _arg2); }; }; }; }; }; return (_local3); } protected function getIncreasing(_arg1:int):Boolean{ var _local2:Boolean; _local2 = true; if ((((_arg1 == AMMO_DOWN)) || ((_arg1 == SURVIVORS_DOWN)))){ _local2 = false; }; return (_local2); } override public function show():void{ var _local1:Point; var _local2:Tower; var _local3:int; var _local4:int; var _local5:int; super.show(); _local1 = Game.select.getSelected(); _local2 = Game.map.getCell(_local1.x, _local1.y).getTower(); _local3 = 0; _local4 = this.resources.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; this.stocks[_local5].text = Std.string(_local2.countResource(this.resources[_local5])); this.quotas[_local5].text = Std.string(_local2.countReserve(this.resources[_local5])); }; this.clip.accuracy.bar.width = ((_local2.getAccuracy() / 100) * accuracySize); if (_local2.canWasteShot()){ this.buttonList.setNormal(this.clip.shootIntoAir); } else { this.buttonList.setGhosted(this.clip.shootIntoAir); }; if (!Game.settings.isEditor()){ if (_local2.isHoldingFire()){ this.clip.holdFire.visible = true; this.clip.fireAtWill.visible = false; } else { this.clip.holdFire.visible = false; this.clip.fireAtWill.visible = true; }; if (_local2.isUpgrading()){ this.buttonList.setProgress(this.clip.upgrade); this.clip.upgrade.visible = true; } else { if (!_local2.canUpgrade()){ this.clip.upgrade.visible = false; } else { if (_local2.getUpgradeSupplier() == null){ this.buttonList.setGhosted(this.clip.upgrade); this.clip.upgrade.visible = true; } else { this.buttonList.setNormal(this.clip.upgrade); this.clip.upgrade.visible = true; }; }; }; }; this.showReserveButtons([this.clip.resource.ammoDown, this.clip.resource.survivorsDown], [Resource.AMMO, Resource.SURVIVORS]); if (_local2.countReserve(Resource.SURVIVORS) >= Sniper.maxSurvivors){ this.buttonList.setGhosted(this.clip.resource.survivorsUp); } else { this.buttonList.setNormal(this.clip.resource.survivorsUp); }; } protected function toggleFireClick():void{ var _local1:Point; var _local2:Tower; _local1 = Game.select.getSelected(); _local2 = Game.map.getCell(_local1.x, _local1.y).getTower(); _local2.toggleHoldFire(); Game.script.trigger(Script.CLICK_HOLD_FIRE, _local1); Util.success(); this.show(); } } }//package ui.menu
Section 166
//SideWorkshop (ui.menu.SideWorkshop) package ui.menu { import flash.display.*; import ui.*; import flash.*; public class SideWorkshop extends SideRoot { protected var clip:WorkshopMenuClip; protected var hoverBase:HoverList; protected var lefts:Array; protected var stocks:Array; protected static var ABANDON:int = 0; protected static var resources:Array = [Resource.AMMO, Resource.BOARDS, Resource.SURVIVORS]; protected static var SURVIVORS_DOWN:int = 1; protected static var SURVIVORS_UP:int = 2; protected static var setChargesSize:int = 128; public function SideWorkshop(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ var parent = _arg1; var l = _arg2; if (!Boot.skip_constructor){ this.clip = new WorkshopMenuClip(); parent.addChild(this.clip); this.clip.visible = false; this.clip.setCharges.mouseChildren = false; this.resize(l); super(this.clip, [this.clip.abandon, this.clip.survivorsDown, this.clip.survivorsUp]); this.stocks = [this.clip.ammoStock, this.clip.boardsStock, this.clip.survivorsStock]; this.lefts = [this.clip.ammoLeft, this.clip.boardsLeft, this.clip.survivorsLeft]; this.hoverBase = new HoverList([function (_arg1:SideWorkshop):DisplayObject{ var $r:*; var tmp:*; var $this = _arg1; tmp = $this.clip.setCharges; $r = (Std._is(tmp, DisplayObject)) ? tmp : function (_arg1:SideWorkshop):SetChargesClip{ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this), this.clip.ammoStock, this.clip.ammoIcon, this.clip.ammoStockBackground, this.clip.boardsStock, this.clip.boardsIcon, this.clip.boardsStockBackground, this.clip.survivorsStock, this.clip.survivorsIcon, this.clip.survivorsStockBackground, this.clip.quota, this.clip.survivorsQuota, this.clip.survivorsQuotaBackground, this.clip.leftToExtract, this.clip.ammoLeft, this.clip.ammoLeftBackground, this.clip.boardsLeft, this.clip.boardsLeftBackground, this.clip.survivorsLeft, this.clip.survivorsLeftBackground], [Text.setChargesBarTip, Text.ammoTip, Text.ammoTip, Text.ammoTip, Text.boardsTip, Text.boardsTip, Text.boardsTip, Text.survivorsTip, Text.survivorsTip, Text.survivorsTip, Text.quotaTip, Text.survivorsQuotaTip, Text.survivorsQuotaTip, Text.leftToExtractTip, Text.ammoLeftTip, Text.ammoLeftTip, Text.boardsLeftTip, Text.boardsLeftTip, Text.survivorsLeftTip, Text.survivorsLeftTip]); if (Game.settings.isEditor()){ this.clip.abandon.visible = false; }; }; } override public function hide():void{ } protected function barClick(_arg1:Resource, _arg2:Boolean):void{ if (_arg1 == Resource.SURVIVORS){ this.changeReserve(_arg1, _arg2); }; } override protected function click(_arg1:int):void{ if (_arg1 == ABANDON){ Util.fleeClick(); Util.success(); } else { if (_arg1 == SURVIVORS_DOWN){ this.barClick(Resource.SURVIVORS, false); } else { this.barClick(Resource.SURVIVORS, true); }; }; } override protected function hover(_arg1:int):String{ var _local2:String; _local2 = null; if (_arg1 == ABANDON){ _local2 = Util.fleeHover(); } else { if (_arg1 == SURVIVORS_DOWN){ _local2 = this.barHover(Resource.SURVIVORS, false); } else { _local2 = this.barHover(Resource.SURVIVORS, true); }; }; return (_local2); } protected function barHover(_arg1:Resource, _arg2:Boolean):String{ var _local3:String; _local3 = null; if (_arg1 == Resource.SURVIVORS){ if (_arg2){ _local3 = Text.workshopSurvivorsIncreaseTip; } else { if (this.getTower().countReserve(_arg1) > 0){ _local3 = Text.workshopSurvivorsDecreaseTip; } else { _local3 = Text.survivorsNoDecreaseTip; }; }; }; return (_local3); } override public function cleanup():void{ this.hoverBase.cleanup(); super.cleanup(); this.clip.parent.removeChild(this.clip); } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg1 == "-")) || ((_arg1 == "_")))){ this.click(SURVIVORS_DOWN); } else { if ((((_arg1 == "=")) || ((_arg1 == "+")))){ this.click(SURVIVORS_UP); } else { _local3 = Util.towerMenuHotkey(_arg1, _arg2); }; }; return (_local3); } override public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.sideMenuOffset.x; this.clip.y = _arg1.sideMenuOffset.y; } override public function show():void{ var _local1:Point; var _local2:MapCell; var _local3:Tower; var _local4:int; var _local5:int; var _local6:int; var _local7:Resource; var _local8:int; var _local9:int; var _local10:Number; super.show(); _local1 = Game.select.getSelected(); _local2 = Game.map.getCell(_local1.x, _local1.y); _local3 = _local2.getTower(); this.clip.survivorsQuota.text = Std.string(_local3.countReserve(Resource.SURVIVORS)); _local4 = 0; _local5 = this.stocks.length; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; _local7 = resources[_local6]; this.stocks[_local6].text = Std.string(_local3.countResource(_local7)); this.lefts[_local6].text = Std.string(_local2.getRubbleCount(_local7)); }; if (_local2.feature != null){ _local8 = _local2.feature.workLeft(); _local9 = _local2.feature.maxWork(); _local10 = ((_local9 - _local8) / _local9); this.clip.setCharges.visible = true; this.clip.setCharges.bar.width = (_local10 * setChargesSize); } else { this.clip.setCharges.visible = false; }; this.showReserveButtons([this.clip.survivorsDown], [Resource.SURVIVORS]); } } }//package ui.menu
Section 167
//SniperMenuClip (ui.menu.SniperMenuClip) package ui.menu { import flash.display.*; public dynamic class SniperMenuClip extends MovieClip { public var resource:SniperResourceMenuClip; public var upgrade:ButtonUpgrade; public var abandon:ButtonAbandon; public var fireAtWill:ButtonFireAtWill; public var holdFire:ButtonFireHold; public var shootIntoAir:ButtonFlare; public var accuracy:AccuracyClip; public function SniperMenuClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 168
//SniperResourceMenuClip (ui.menu.SniperResourceMenuClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class SniperResourceMenuClip extends MovieClip { public var ammoUp:ButtonPlus; public var ammoQuotaBackground:MovieClip; public var ammoStockBackground:MovieClip; public var survivorsQuota:TextField; public var survivorsIcon:MovieClip; public var ammoQuota:TextField; public var quota:TextField; public var ammoDown:ButtonMinus; public var survivorsDown:ButtonMinus; public var ammoIcon:MovieClip; public var survivorsQuotaBackground:MovieClip; public var survivorsUp:ButtonPlus; public var survivorsStock:TextField; public var ammoStock:TextField; public var survivorsStockBackground:MovieClip; } }//package ui.menu
Section 169
//StatusClip (ui.menu.StatusClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class StatusClip extends MovieClip { public var bar:MovieClip; public var barText:TextField; } }//package ui.menu
Section 170
//StoryMenu (ui.menu.StoryMenu) package ui.menu { import flash.display.*; import flash.events.*; import ui.*; import flash.text.*; import flash.*; public class StoryMenu extends MenuRoot { protected var clip:StoryMenuClip; protected var context:int; protected var buttons:ButtonList; public static var CENTER:int = 3; public static var LOSE:int = 1; public static var WIN:int = 0; public static var BRIEFING:int = 2; public function StoryMenu(_arg1:DisplayObjectContainer=null, _arg2:Point=null, _arg3:int=0):void{ if (!Boot.skip_constructor){ super(); this.context = _arg3; this.clip = new StoryMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.buttons = new ButtonList(this.click, null, [this.clip.okButton]); this.clip.briefing.multiline = true; this.clip.briefing.wordWrap = true; this.clip.briefing.autoSize = TextFieldAutoSize.NONE; this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function componentUpdate(_arg1:Event):void{ this.clip.scrollBar.update(); this.clip.removeEventListener(Event.ENTER_FRAME, this.componentUpdate); } protected function click(_arg1:int):void{ Util.success(); if (this.context == WIN){ if (Main.menu.getSettings().isEditor()){ Main.menu.changeState(MainMenu.GENERATE_MAP); } else { Main.menu.changeState(MainMenu.WIN); }; } else { if (this.context == LOSE){ if (Main.menu.getSettings().isEditor()){ Main.menu.changeState(MainMenu.GENERATE_MAP); } else { Main.menu.changeState(MainMenu.LOSE); }; } else { if (this.context == BRIEFING){ Main.menu.changeState(MainMenu.GENERATE_MAP); } else { if (this.context == CENTER){ Game.view.centerMenu.revertState(); }; }; }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg2 == Keyboard.escapeCode)) || ((_arg2 == Keyboard.enterCode)))){ this.click(0); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ var _local2:int; Util.centerHorizontally(this.clip.okButton, _arg1); Util.alignBottom(this.clip.okButton, _arg1); Util.scaleToFit(this.clip.background, _arg1); Util.scaleToFit(this.clip.splash, _arg1); Util.scaleToFit(this.clip.splashWin, _arg1); Util.scaleToFit(this.clip.splashLose, _arg1); _local2 = (_arg1.x - 60); if (_local2 > 600){ _local2 = 600; }; this.clip.briefing.x = (((_arg1.x - _local2) / 2) - 10); this.clip.briefing.width = _local2; this.clip.briefing.height = (_arg1.y - 140); this.clip.scrollBar.x = ((this.clip.briefing.x + this.clip.briefing.width) + 5); this.clip.scrollBar.height = (_arg1.y - 140); this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } override public function show():void{ this.clip.visible = true; this.clip.splash.visible = false; this.clip.splashWin.visible = false; this.clip.splashLose.visible = false; if (this.context == WIN){ MainCampaign.setComplete(Main.menu.getSettings().getCampaign()); this.clip.splashWin.visible = true; this.clip.briefing.text = Main.menu.getSettings().getWinText(); } else { if (this.context == LOSE){ this.clip.splashLose.visible = true; this.clip.briefing.text = Main.menu.getSettings().getLoseText(); } else { if (this.context == BRIEFING){ this.clip.splash.visible = true; this.clip.briefing.text = Main.menu.getSettings().getBriefingText(); } else { if (this.context == CENTER){ this.clip.background.visible = false; this.clip.briefing.text = Game.settings.getBriefingText(); }; }; }; }; this.clip.scrollBar.update(); this.clip.addEventListener(Event.ENTER_FRAME, this.componentUpdate); } } }//package ui.menu
Section 171
//StoryMenuClip (ui.menu.StoryMenuClip) package ui.menu { import fl.controls.*; import flash.display.*; import flash.text.*; public dynamic class StoryMenuClip extends MovieClip { public var splashWin:MovieClip; public var scrollBar:UIScrollBar; public var splashLose:MovieClip; public var background:MovieClip; public var okButton:MovieClip; public var splash:MovieClip; public var briefing:TextField; public function StoryMenuClip(){ __setProp_scrollBar_StoryMenuClip_Layer1_1(); } function __setProp_scrollBar_StoryMenuClip_Layer1_1(){ try { scrollBar["componentInspectorSetting"] = true; } catch(e:Error) { }; scrollBar.direction = "vertical"; scrollBar.scrollTargetName = "briefing"; scrollBar.visible = true; try { scrollBar["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package ui.menu
Section 172
//SystemMenuClip (ui.menu.SystemMenuClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class SystemMenuClip extends MovieClip { public var zombies:TextField; public var saveGame:MovieClip; public var editMapLabel:TextField; public var bridges:TextField; public var resume:MovieClip; public var uploadMapLabel:TextField; public var testMap:MovieClip; public var city:TextField; public var pedia:MovieClip; public var briefing:MovieClip; public var saveMapLabel:TextField; public var saveMap:MovieClip; public var briefingLabel:TextField; public var options:MovieClip; public var testMapLabel:TextField; public var uploadMap:MovieClip; public var retryGame:MovieClip; public var difficulty:TextField; public var mainMenu:MovieClip; public var editMap:MovieClip; public var loadGame:MovieClip; } }//package ui.menu
Section 173
//UploadMapMenu (ui.menu.UploadMapMenu) package ui.menu { import flash.display.*; import ui.*; import flash.text.*; import flash.*; import flash.system.*; public class UploadMapMenu extends MenuRoot { protected var clip:UploadMapMenuClip; protected var buttons:ButtonList; public function UploadMapMenu(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ super(); this.clip = new UploadMapMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.clip.url.selectable = true; this.clip.url.autoSize = TextFieldAutoSize.NONE; this.clip.url.mouseEnabled = true; this.clip.url.multiline = false; this.clip.url.wordWrap = false; this.clip.url.alwaysShowSelection = true; this.buttons = new ButtonList(this.click, null, [this.clip.back, this.clip.copyButton]); this.resize(_arg2); }; } override public function hide():void{ this.clip.visible = false; } override public function cleanup():void{ this.buttons.cleanup(); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function click(_arg1:int):void{ Util.success(); if (_arg1 == 0){ Game.view.centerMenu.changeState(CenterMenu.SYSTEM); } else { if (_arg1 == 1){ System.setClipboard(this.clip.url.text); }; }; } override public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if (_arg2 == Keyboard.escapeCode){ this.click(0); } else { _local3 = false; }; return (_local3); } override public function resize(_arg1:Point):void{ } override public function show():void{ this.clip.visible = true; this.clip.url.text = Game.settings.getUrl(); this.clip.url.setSelection(0, this.clip.url.text.length); this.clip.stage.focus = this.clip.url; } } }//package ui.menu
Section 174
//UploadMapMenuClip (ui.menu.UploadMapMenuClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class UploadMapMenuClip extends MovieClip { public var copyButton:MovieClip; public var url:TextField; public var back:MovieClip; public function UploadMapMenuClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 175
//WaitMenu (ui.menu.WaitMenu) package ui.menu { import flash.display.*; import flash.events.*; import logic.*; import ui.*; import flash.net.*; import 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, Text.waitBrowse]; public static var BROWSE:int = 7; public static var GENERATE_MAP:int = 0; public static var SAVE_GAME:int = 2; public static var RATE_MAP:int = 6; public static var UPLOAD_MAP:int = 5; public function WaitMenu(_arg1:DisplayObjectContainer=null, _arg2:Point=null, _arg3:int=0):void{ if (!Boot.skip_constructor){ super(); this.usage = _arg3; this.clip = new WaitMenuClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.mouseEnabled = false; this.clip.message.text = waitText[this.usage]; this.frame = 0; this.loader = new URLLoader(); this.loader.dataFormat = URLLoaderDataFormat.VARIABLES; this.loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, this.status); this.loader.addEventListener(IOErrorEvent.IO_ERROR, this.ioError); this.loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.securityError); this.loader.addEventListener(Event.COMPLETE, this.complete); this.resize(_arg2); }; } protected function complete(_arg1:Event):void{ var _local2:URLVariables; var _local3:String; var _local4:String; _local2 = this.loader.data; _local3 = _local2.error; _local4 = _local2.result; if (_local3 != null){ Main.error = (Main.error + (("Server Error: " + _local3) + "\n")); errorSwitch(this.usage); } else { if (this.usage == RATE_MAP){ Main.menu.changeState(Main.menu.rateState); } else { if (_local4 == null){ Main.error = (Main.error + "No Result From Server\n"); } else { if (this.usage == DOWNLOAD_MAP){ loadMap(_local4, _local2.key); } else { if (this.usage == UPLOAD_MAP){ Game.settings.setUrl(_local4); Game.view.centerMenu.changeState(CenterMenu.UPLOAD_MAP); } else { if (this.usage == BROWSE){ MainBrowse.dbValues = _local4; Main.menu.changeState(MainMenu.BROWSE); }; }; }; }; }; }; } override public function hide():void{ this.clip.visible = false; this.clip.removeEventListener(Event.ENTER_FRAME, this.enterFrame); } override public function cleanup():void{ this.loader.removeEventListener(HTTPStatusEvent.HTTP_STATUS, this.status); this.loader.removeEventListener(IOErrorEvent.IO_ERROR, this.ioError); this.loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, this.securityError); this.loader.removeEventListener(Event.COMPLETE, this.complete); this.clip.removeEventListener(Event.ENTER_FRAME, this.enterFrame); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function securityError(_arg1:SecurityErrorEvent):void{ Main.error = (Main.error + "Could not access network (Security Error)\n"); errorSwitch(this.usage); } protected function ioError(_arg1:IOErrorEvent):void{ Main.error = (Main.error + "Could not access network (IO Error)\n"); errorSwitch(this.usage); } override public function resize(_arg1:Point):void{ Util.scaleToFit(this.clip.background, _arg1); Util.alignBottom(this.clip.message, _arg1); Util.centerHorizontally(this.clip.message, _arg1); } protected function enterFrame(_arg1:Event):void{ var _local2:URLRequest; var _local3:String; var _local4:URLVariables; var _local5:String; var _local6:String; var _local7:URLVariables; var _local8:URLVariables; this.frame--; if (this.frame == 0){ _local2 = new URLRequest(); if (this.usage == GENERATE_MAP){ Main.beginPlay(); } else { if (this.usage == LOAD_GAME){ Main.loadGame(); } else { if (this.usage == SAVE_GAME){ Game.saveGame(); Game.view.centerMenu.changeState(CenterMenu.SYSTEM); } else { if (this.usage == EDIT_MAP){ Main.beginPlay(); } else { if (this.usage == DOWNLOAD_MAP){ Main.error = "Map Download Failed:\n"; _local2.url = Main.menu.getSettings().getUrl(); this.loader.load(_local2); } else { if (this.usage == UPLOAD_MAP){ _local3 = "men judge generally more by the eye than by the hand, because it belongs to everybody to see you, to few to come in touch with you."; Main.error = "Map Upload Failed:\n"; _local2.method = URLRequestMethod.POST; _local4 = new URLVariables(); _local5 = Game.settings.saveMap(); _local4.name = Game.settings.getCityName(); _local4.map = _local5; _local4.verify = Md5.encode((_local3 + _local5)); _local2.data = _local4; _local2.url = "http://auriga-squad.appspot.com/upload"; this.loader.load(_local2); } else { if (this.usage == RATE_MAP){ Main.error = "Map Rate Failed:\n"; _local2.method = URLRequestMethod.POST; _local6 = Main.menu.getSettings().getKey(); _local7 = new URLVariables(); _local7.fun = Main.menu.rateFun; _local7.difficulty = Main.menu.rateDifficulty; _local2.data = _local7; _local2.url = ("http://auriga-squad.appspot.com/rate/" + _local6); this.loader.load(_local2); } else { if (this.usage == BROWSE){ Main.error = "Download Map List Failed:\n"; _local2.method = URLRequestMethod.POST; _local8 = new URLVariables(); _local8.type = MainBrowse.typeToString[MainBrowse.type]; _local8.start = Std.string(MainBrowse.start); _local8.count = Std.string(MainBrowse.LOAD_STEP); _local2.data = _local8; _local2.url = "http://auriga-squad.appspot.com/find"; this.loader.load(_local2); }; }; }; }; }; }; }; }; }; } protected function status(_arg1:HTTPStatusEvent):void{ if (_arg1.status != 200){ Main.error = (Main.error + (("HTML Status: " + Std.string(_arg1.status)) + "\n")); }; } override public function show():void{ this.clip.visible = true; this.clip.addEventListener(Event.ENTER_FRAME, this.enterFrame); this.frame = frameWait; } protected static function errorSwitch(_arg1:int):void{ if ((((((_arg1 == DOWNLOAD_MAP)) || ((_arg1 == RATE_MAP)))) || ((_arg1 == BROWSE)))){ Main.menu.changeState(MainMenu.LOAD_MAP_FAIL); } else { if (_arg1 == UPLOAD_MAP){ Game.view.centerMenu.changeState(CenterMenu.SAVE_MAP_FAIL); }; }; } public static function loadMap(_arg1:String, _arg2:String=null):void{ var map = _arg1; var key = _arg2; try { if (Main.menu.getSettings().isEditor()){ Main.menu.setSettings(new GameSettings()); Main.menu.getSettings().beginLoadEdit(map, "", ""); Main.menu.changeState(MainMenu.EDIT_WAIT); } else { Main.menu.setSettings(new GameSettings()); Main.menu.getSettings().setKey(key); Main.menu.getSettings().beginNewCustom(map); Main.menu.changeState(MainMenu.STORY_BRIEFING); }; } catch(e:Error) { Main.error = (Main.error + (("Failed to load map: " + e.message) + "\n")); errorSwitch(DOWNLOAD_MAP); }; } } }//package ui.menu
Section 176
//WaitMenuClip (ui.menu.WaitMenuClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class WaitMenuClip extends MovieClip { public var message:TextField; public var background:MovieClip; public function WaitMenuClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 177
//WorkshopMenuClip (ui.menu.WorkshopMenuClip) package ui.menu { import flash.display.*; import flash.text.*; public dynamic class WorkshopMenuClip extends MovieClip { public var ammoLeft:TextField; public var survivorsLeft:TextField; public var ammoLeftBackground:MovieClip; public var boardsLeft:TextField; public var survivorsLeftBackground:MovieClip; public var ammoStockBackground:MovieClip; public var survivorsQuota:TextField; public var leftToExtract:TextField; public var survivorsIcon:MovieClip; public var boardsIcon:MovieClip; public var abandon:ButtonAbandon; public var boardsLeftBackground:MovieClip; public var quota:TextField; public var setCharges:SetChargesClip; public var survivorsDown:ButtonMinus; public var ammoIcon:MovieClip; public var survivorsQuotaBackground:MovieClip; public var boardsStock:TextField; public var boardsStockBackground:MovieClip; public var survivorsStock:TextField; public var survivorsUp:ButtonPlus; public var survivorsStockBackground:MovieClip; public var ammoStock:TextField; public function WorkshopMenuClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui.menu
Section 178
//AbstractFrame (ui.AbstractFrame) package ui { public interface AbstractFrame { function fixedStep():void; } }//package ui
Section 179
//AmbientMusic (ui.AmbientMusic) package ui { import flash.net.*; import flash.media.*; import flash.*; public class AmbientMusic extends Sound { public function AmbientMusic(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package ui
Section 180
//Animation (ui.Animation) package ui { import flash.*; public class Animation { protected var advance:Array; protected var linkage:Array; protected var number:int; protected var doRotate:Boolean; protected var layer:int; protected var scale:Number; protected var doReverse:Boolean; protected var doFace:Boolean; protected var doWait:Boolean; protected var doOffset:Boolean; protected var moveCount:int; protected static var survivorAdvanceTable:Array = null; public static var zombieDeathWait:int = 7; public static var carryAmmo:Animation = null; public static var carryFood:Animation = null; public static var sniperScale:Number = 1; protected static var validSurvivors:Array = [1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20]; public static var attackTower:Animation = null; public static var fireRifle:Animation = null; public static var bodyLinkage:Array = linkageTable("gunCycle_midlayer_", "", validSurvivors); public static var headLinkage:Array = linkageTable("gunCycle_toplayer_", "", validSurvivors); public static var carryBoards:Animation = null; protected static var mobileScale:Number = 0.9; protected static var fireAdvanceTable:Array = null; public static var attackSurvivor:Animation = null; public static var carrySurvivors:Animation = null; public static var zombieDeath:Animation = null; public static var animations:Array = null; public static var fireShotgun:Animation = null; public static var feature:Animation = null; public static var headShot:Animation = null; public static var zombieShamble:Animation = null; public static var rubble:Animation = null; public function Animation(_arg1:int=0, _arg2:Array=null, _arg3:Array=null, _arg4:int=0, _arg5:int=0):void{ if (!Boot.skip_constructor){ this.moveCount = _arg1; this.advance = _arg2; this.linkage = _arg3; this.layer = _arg4; this.doReverse = false; this.doFace = false; this.doRotate = true; this.doWait = false; this.scale = 1; this.number = _arg5; this.doOffset = false; }; } public function getTypeCount():int{ return (this.linkage.length); } public function getMove(_arg1:int):int{ var _local2:int; _local2 = 0; if (this.advance[_arg1] > 0){ _local2 = this.advance[_arg1]; }; return (_local2); } public function getMoveCount():int{ return (this.moveCount); } public function getLinkage(_arg1:int):String{ return (this.linkage[_arg1]); } public function getScale():Number{ return (this.scale); } public function shouldWait():Boolean{ return (this.doWait); } public function getFrameCount():int{ return (this.advance.length); } public function getLayer():int{ return (this.layer); } public function shouldOffset():Boolean{ return (this.doOffset); } public function getWait(_arg1:int):int{ var _local2:int; _local2 = 0; if (this.advance[_arg1] < 0){ _local2 = -(this.advance[_arg1]); }; return (_local2); } public function shouldRotate():Boolean{ return (this.doRotate); } public function shouldReverse():Boolean{ return (this.doReverse); } public function shouldFace():Boolean{ return (this.doFace); } public function getNumber():int{ return (this.number); } protected static function linkageTable(_arg1:String, _arg2:String, _arg3:Array):Array{ var _local4:Array; var _local5:int; var _local6:int; _local4 = []; _local5 = 0; while (_local5 < _arg3.length) { _local6 = _arg3[_local5]; _local5++; _local4.push(((_arg1 + Std.string(_local6)) + _arg2)); }; return (_local4); } public static function init():void{ Animation.carryAmmo = new Animation(32, survivorAdvance(), survivorLinkage(0), SpriteDisplay.SURVIVOR_LAYER, 0); carryAmmo.scale = mobileScale; Animation.carryBoards = new Animation(32, survivorAdvance(), survivorLinkage(1), SpriteDisplay.SURVIVOR_LAYER, 1); carryBoards.scale = mobileScale; Animation.carryFood = new Animation(32, survivorAdvance(), survivorLinkage(2), SpriteDisplay.SURVIVOR_LAYER, 2); carryFood.scale = mobileScale; Animation.carrySurvivors = new Animation(32, survivorAdvance(), survivorLinkage(3), SpriteDisplay.SURVIVOR_LAYER, 3); carrySurvivors.scale = mobileScale; Animation.fireRifle = new Animation(20, fireAdvance(), fireLinkage(2), SpriteDisplay.SNIPER_LAYER, 4); fireRifle.scale = sniperScale; fireRifle.doWait = true; Animation.fireShotgun = new Animation(20, fireAdvance(), fireLinkage(1), SpriteDisplay.SNIPER_LAYER, 5); fireShotgun.scale = sniperScale; fireShotgun.doWait = true; Animation.attackTower = new Animation(60, attackTowerAdvance(), zombieLinkage("attack"), SpriteDisplay.CREATURE_LAYER, 6); attackTower.doReverse = true; attackTower.doFace = true; attackTower.doRotate = false; attackTower.scale = mobileScale; attackTower.doOffset = true; Animation.attackSurvivor = new Animation(72, attackSurvivorAdvance(), zombieLinkage("attack"), SpriteDisplay.CREATURE_LAYER, 7); attackSurvivor.scale = mobileScale; attackSurvivor.doFace = true; attackSurvivor.doRotate = false; attackSurvivor.scale = mobileScale; attackSurvivor.doOffset = true; Animation.zombieDeath = new Animation(34, zombieDeathAdvance(), zombieLinkage("death"), SpriteDisplay.CREATURE_LAYER, 8); zombieDeath.doWait = true; zombieDeath.scale = mobileScale; zombieDeath.doOffset = true; Animation.zombieShamble = new Animation(32, zombieShambleAdvance(), zombieLinkage("shamble"), SpriteDisplay.CREATURE_LAYER, 9); zombieShamble.scale = mobileScale; Animation.headShot = new Animation(12, headShotAdvance(), ["zombie_headshot"], SpriteDisplay.SURVIVOR_LAYER, 10); headShot.doWait = true; headShot.doOffset = true; Animation.rubble = new Animation(1, [wait(1)], ["RubbleClip"], SpriteDisplay.FLOOR_LAYER, 11); Animation.feature = new Animation(1, [wait(1)], ["FeatureClip"], SpriteDisplay.FLOOR_LAYER, 12); Animation.animations = [carryAmmo, carryBoards, carryFood, carrySurvivors, fireRifle, fireShotgun, attackTower, attackSurvivor, zombieDeath, zombieShamble, headShot, rubble, feature]; } public static function carry(_arg1:Resource):Animation{ var _local2:Animation; var _local3:enum; _local2 = null; _local3 = _arg1; switch (_local3.index){ case 0: _local2 = carryAmmo; break; case 1: _local2 = carryBoards; break; case 2: _local2 = carryFood; break; case 3: _local2 = carrySurvivors; break; }; return (_local2); } protected static function survivorAdvance():Array{ var _local1:int; var _local2:int; if (Animation.survivorAdvanceTable == null){ Animation.survivorAdvanceTable = []; _local1 = 0; while (_local1 < 8) { var _temp1 = _local1; _local1 = (_local1 + 1); _local2 = _temp1; survivorAdvanceTable.push(move(8)); }; }; return (survivorAdvanceTable); } protected static function headShotAdvance():Array{ var _local1:Array; var _local2:int; var _local3:int; _local1 = []; _local1.push(wait(zombieDeathWait)); _local2 = 0; while (_local2 < 5) { var _temp1 = _local2; _local2 = (_local2 + 1); _local3 = _temp1; _local1.push(wait(1)); }; return (_local1); } protected static function attackTowerAdvance():Array{ var _local1:Array; var _local2:int; var _local3:int; _local1 = []; _local2 = 0; while (_local2 < 60) { var _temp1 = _local2; _local2 = (_local2 + 1); _local3 = _temp1; _local1.push(move(1)); }; return (_local1); } protected static function zombieDeathAdvance():Array{ var _local1:Array; var _local2:int; var _local3:int; _local1 = []; _local1.push(wait(zombieDeathWait)); _local2 = 0; while (_local2 < 27) { var _temp1 = _local2; _local2 = (_local2 + 1); _local3 = _temp1; _local1.push(wait(1)); }; return (_local1); } protected static function fireLinkage(_arg1:int):Array{ var _local2:Array; var _local3:String; var _local4:int; var _local5:Array; var _local6:int; _local2 = []; _local3 = "gunCycle_"; _local4 = 0; _local5 = validSurvivors; while (_local4 < _local5.length) { _local6 = _local5[_local4]; _local4++; _local2.push((((_local3 + Std.string(_local6)) + "_gun") + Std.string(_arg1))); }; return (_local2); } protected static function zombieLinkage(_arg1:String):Array{ var _local2:Array; var _local3:String; var _local4:int; var _local5:int; _local2 = []; _local3 = "zombieCycle_"; _local4 = 0; while (_local4 < 12) { var _temp1 = _local4; _local4 = (_local4 + 1); _local5 = _temp1; _local2.push((((_local3 + _arg1) + "_") + Std.string((_local5 + 1)))); }; return (_local2); } protected static function attackSurvivorAdvance():Array{ var _local1:Array; var _local2:int; var _local3:int; _local1 = []; _local2 = 0; while (_local2 < 72) { var _temp1 = _local2; _local2 = (_local2 + 1); _local3 = _temp1; _local1.push(move(1)); }; return (_local1); } protected static function move(_arg1:int):int{ return (_arg1); } protected static function fireAdvance():Array{ var _local1:int; var _local2:int; if (Animation.fireAdvanceTable == null){ Animation.fireAdvanceTable = []; _local1 = 0; while (_local1 < 20) { var _temp1 = _local1; _local1 = (_local1 + 1); _local2 = _temp1; fireAdvanceTable.push(wait(1)); }; }; return (fireAdvanceTable); } protected static function wait(_arg1:int):int{ return (-(_arg1)); } protected static function zombieShambleAdvance():Array{ var _local1:Array; var _local2:int; var _local3:int; var _local4:int; var _local5:int; _local1 = []; _local1.push(move(2)); _local2 = 0; while (_local2 < 5) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local1.push(move(1)); _local1.push(wait(1)); }; _local1.push(move(1)); _local3 = 0; while (_local3 < 6) { var _temp2 = _local3; _local3 = (_local3 + 1); _local5 = _temp2; _local1.push(move(2)); _local1.push(move(2)); }; return (_local1); } protected static function survivorLinkage(_arg1:int):Array{ var _local2:Array; var _local3:String; var _local4:int; var _local5:Array; var _local6:int; _local2 = []; _local3 = "Survivor_"; _local4 = 0; _local5 = validSurvivors; while (_local4 < _local5.length) { _local6 = _local5[_local4]; _local4++; _local2.push((((_local3 + Std.string(_arg1)) + "_") + Std.string(_local6))); }; return (_local2); } } }//package ui
Section 181
//ButtonList (ui.ButtonList) package ui { import flash.display.*; import flash.events.*; import flash.*; public class ButtonList { protected var frame:int; protected var hoverAction:Function; protected var clickAction:Function; protected var lastHovered; protected var buttonList:Array; protected var lastClicked:DisplayObject; public static var GREEN:int = 5; public static var IN_PROGRESS:int = 4; public static var GREEN_OVER:int = 6; public static var OVER:int = 2; public static var NORMAL:int = 1; protected static var mouseWait:int = 6; public static var GHOSTED:int = 3; public function ButtonList(_arg1:Function=null, _arg2:Function=null, _arg3:Array=null):void{ var _local4:int; var _local5:Array; var _local6:MovieClip; super(); if (!Boot.skip_constructor){ this.clickAction = _arg1; this.hoverAction = _arg2; this.buttonList = _arg3; _local4 = 0; _local5 = this.buttonList; while (_local4 < _local5.length) { _local6 = _local5[_local4]; _local4++; _local6.mouseChildren = false; _local6.addEventListener(MouseEvent.MOUSE_DOWN, this.buttonDown); _local6.addEventListener(MouseEvent.MOUSE_UP, this.buttonUp); _local6.addEventListener(MouseEvent.MOUSE_OVER, this.buttonOver); _local6.addEventListener(MouseEvent.MOUSE_OUT, this.buttonOut); _local6.gotoAndStop(NORMAL); }; this.lastHovered = null; this.lastClicked = null; this.frame = mouseWait; }; } protected function changeState(_arg1:MovieClip, _arg2:int):void{ _arg1.gotoAndStop(_arg2); } protected function buttonOut(_arg1:MouseEvent):void{ var _local2:*; _local2 = this.getButtonIndex(_arg1.target); if (_local2 != null){ if (this.buttonList[_local2].currentFrame == OVER){ this.buttonList[_local2].gotoAndStop(NORMAL); } else { if (this.buttonList[_local2].currentFrame == GREEN_OVER){ this.buttonList[_local2].gotoAndStop(GREEN); }; }; }; if (this.hoverAction != null){ Game.view.toolTip.hide(); }; this.lastHovered = null; Main.getRoot().removeEventListener(Event.ENTER_FRAME, this.enterFrame); } protected function getButtonIndex(_arg1){ var _local2:*; var _local3:int; var _local4:int; var _local5:int; _local2 = null; _local3 = 0; _local4 = this.buttonList.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; if (this.buttonList[_local5] == _arg1){ _local2 = _local5; break; }; }; return (_local2); } public function setGreen(_arg1:MovieClip):void{ var _local2:*; _local2 = this.getButtonIndex(_arg1); if (((!((this.lastHovered == null))) && ((_local2 == this.lastHovered)))){ this.changeState(_arg1, GREEN_OVER); } else { this.changeState(_arg1, GREEN); }; } public function get(_arg1:int):MovieClip{ return (this.buttonList[_arg1]); } public function cleanup():void{ var _local1:int; var _local2:Array; var _local3:MovieClip; _local1 = 0; _local2 = this.buttonList; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.removeEventListener(MouseEvent.MOUSE_DOWN, this.buttonDown); _local3.removeEventListener(MouseEvent.MOUSE_UP, this.buttonUp); _local3.removeEventListener(MouseEvent.MOUSE_OVER, this.buttonOver); _local3.removeEventListener(MouseEvent.MOUSE_OUT, this.buttonOut); }; Main.getRoot().removeEventListener(Event.ENTER_FRAME, this.enterFrame); } protected function buttonOver(_arg1:MouseEvent):void{ var _local2:*; var _local3:String; _local2 = this.getButtonIndex(_arg1.target); if (this.hoverAction != null){ _local3 = null; if (_local2 != null){ _local3 = this.hoverAction(_local2); }; if (_local3 == null){ Game.view.toolTip.hide(); } else { Game.view.toolTip.show(_local3); }; }; if (_local2 != null){ if (this.buttonList[_local2].currentFrame == NORMAL){ this.buttonList[_local2].gotoAndStop(OVER); } else { if (this.buttonList[_local2].currentFrame == GREEN){ this.buttonList[_local2].gotoAndStop(GREEN_OVER); }; }; }; this.lastHovered = _local2; } public function setNormal(_arg1:MovieClip):void{ var _local2:*; _local2 = this.getButtonIndex(_arg1); if (((!((this.lastHovered == null))) && ((_local2 == this.lastHovered)))){ this.changeState(_arg1, OVER); } else { this.changeState(_arg1, NORMAL); }; } public function setGhosted(_arg1:MovieClip):void{ this.changeState(_arg1, GHOSTED); } protected function buttonUp(_arg1:MouseEvent):void{ Main.getRoot().removeEventListener(Event.ENTER_FRAME, this.enterFrame); } public function setProgress(_arg1:MovieClip):void{ this.changeState(_arg1, IN_PROGRESS); } protected function buttonDown(_arg1:MouseEvent):void{ var event = _arg1; this.lastClicked = function (_arg1:ButtonList):DisplayObject{ var $r:*; var tmp:*; var $this = _arg1; tmp = event.target; $r = (Std._is(tmp, DisplayObject)) ? tmp : function (_arg1:ButtonList){ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this); Main.getRoot().addEventListener(Event.ENTER_FRAME, this.enterFrame); this.frame = mouseWait; this.buttonClick(); } protected function enterFrame(_arg1:Event):void{ this.frame--; if ((((((((this.frame <= 0)) && (this.lastClicked.visible))) && (this.lastClicked.parent.visible))) && (this.lastClicked.parent.parent.visible))){ this.buttonClick(); this.frame = mouseWait; }; } protected function buttonClick():void{ var _local1:*; var _local2:*; _local1 = this.getButtonIndex(this.lastClicked); _local2 = null; if (_local1 != null){ this.clickAction(_local1); }; } } }//package ui
Section 182
//Check (ui.Check) package ui { public class Check { public static var ADD_OK:int = 0; public static var ADD_SAME:int = 1; public static var REMOVE_NO_DEST:int = 2; public static var ADD_NO_DEST:int = 3; public static var REMOVE_NO_SUPPLY:int = 1; public static var REMOVE_OK:int = 0; public static var ADD_EXISTS:int = 2; public static var ADD_NO_SELECT:int = 4; public static var REMOVE_NO_SELECT:int = 3; public static function checkAddSupply(_arg1:Point):int{ var _local2:Point; var _local3:Tower; var _local4:Tower; _local2 = Game.select.getSelected(); if (_local2 == null){ return (ADD_NO_SELECT); }; _local3 = Game.map.getCell(_local2.x, _local2.y).getTower(); _local4 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); if (_local3 == null){ return (ADD_NO_SELECT); }; if (_local4 == null){ return (ADD_NO_DEST); }; if (_local3 == _local4){ return (ADD_SAME); }; if (_local3.getRoute(_arg1) != null){ return (ADD_EXISTS); }; return (ADD_OK); } public static function checkRemoveSupply(_arg1:Point):int{ var _local2:Point; var _local3:Tower; var _local4:Tower; _local2 = Game.select.getSelected(); if (_local2 == null){ return (REMOVE_NO_SELECT); }; _local3 = Game.map.getCell(_local2.x, _local2.y).getTower(); _local4 = Game.map.getCell(_arg1.x, _arg1.y).getTower(); if (_local3 == null){ return (REMOVE_NO_SELECT); }; if (_local4 == null){ return (REMOVE_NO_DEST); }; if (_local3.getRoute(_arg1) == null){ return (REMOVE_NO_SUPPLY); }; return (REMOVE_OK); } } }//package ui
Section 183
//Color (ui.Color) package ui { import flash.geom.*; public class Color { public static var editBoxBorder:int = 0; public static var buttonBackground:int = 0x9999; public static var plannedTransform:ColorTransform = new ColorTransform(0.6, 0.6, 0.6, 0.8, 0, 0, 0, 0); public static var shadowAllow:int = 0xFF00; public static var supplyDepotLine:int = 6711039; public static var toggledOnBackground:int = 0x999900; public static var countDownText:int = 0xDDDDDD; public static var shouldAvoidRollOverBackground:int = 0xFF0000; public static var allowTransform:ColorTransform = new ColorTransform(0.5, 1.5, 0.5, 2, 0, 0, 0, 0); public static var shadowAlpha:Number = 0.3; public static var tutorialBorder:int = 0xFFFFFF; public static var tutorialBackground:int = 0; public static var mainMenuBackdrop:int = 0x404040; public static var barricadeReplay:int = 0x6D4900; public static var supplyLineThickness:int = 10; public static var shadowBuild:int = 0; public static var menuTitle:int = 0xFFFFFF; public static var centerGhost:int = 0; public static var depotReplay:int = 204; public static var inProgressBackground:int = 0x9900; public static var ghostedBackground:int = 0x999999; public static var centerGhostAlpha:Number = 0.85; public static var normalTransform:ColorTransform = new ColorTransform(1, 1, 1, 1, 0, 0, 0, 0); public static var shadowDeny:int = 0xFF0000; public static var resourceBarOverflow:int = -16746633; public static var shouldAvoidBackground:int = 0x990000; public static var resourceBarQuota:int = -16746752; public static var workshopReplay:int = 8454143; public static var countDownBackground:int = 0x404040; public static var fpsCounterBackground:int = 0xFFFFFF; public static var supplyInterruptedLine:int = 16737894; public static var gameMenuAlpha:Number = 1; public static var progressBarBackground:int = 0x300000; public static var shadowPlanAlpha:Number = 0.7; public static var announceBackground:int = 0x400000; public static var progressBarBorder:int = 0xFFFFFF; public static var mouseLureOn:int = 0xFF0000; public static var shouldClickRollOverBackground:int = 0xFF00; public static var editEmpty:int = 0xFFFFFF; public static var mainMenuAlpha:Number = 0.4; public static var progressBarForeground:int = 0x7700; public static var announceForeground:int = 0xDDDDDD; public static var miniCursor:int = 0xAAAAAA; public static var countDownForeground:int = 0x400000; public static var supplyLineAlpha:Number = 1; public static var textBoxAlpha:Number = 1; public static var shouldClickBackground:int = 0x9900; public static var tutorialAlpha:Number = 0.8; public static var resourceBarBorder:int = -13619152; public static var denyEditBox:int = 0x800000; public static var sniperReplay:int = 0xCC0000; public static var denyTransform:ColorTransform = new ColorTransform(1.5, 0.5, 0.5, 2, 0, 0, 0, 0); public static var editSelected:int = 0; public static var mainMenuBackdropAlpha:Number = 1; public static var buttonRollOverBackground:int = 0xFFFF; public static var allowEditBox:int = 0x8000; public static var countDownBorder:int = 0; public static var noShoot:int = 0xEE0000; public static var toolTip:int = 16777130; public static var nameNoteText:int = 0xFFFFFF; public static var menuBackground:int = 0x4000; public static var toggledOnRollOverBackground:int = 0xFFFF00; public static var resourceBarText:int = 0; public static var progressBarText:int = 0xFFFFFF; public static var supplyOtherLine:int = 0xDDDDDD; public static var mouseLureOff:int = 0xFFFF00; public static var buttonBorder:int = 0; } }//package ui
Section 184
//CustomCellRenderer (ui.CustomCellRenderer) package ui { import fl.controls.listClasses.*; import flash.text.*; import flash.*; public class CustomCellRenderer extends CellRenderer { public function CustomCellRenderer():void{ var _local1:TextFormat; if (!Boot.skip_constructor){ super(); _local1 = new TextFormat(); _local1.size = FontSize.comboList; this.setStyle("textFormat", _local1); }; } } }//package ui
Section 185
//Explosion (ui.Explosion) package ui { import flash.display.*; import logic.*; import flash.*; public class Explosion implements AbstractFrame { protected var bigPoints:Array; protected var bridge:Bridge; protected var smallPoints:Array; protected var bigImages:Array; protected var bridgeBitmap:Bitmap; protected var imageStacks:Array; protected var frame:int; protected var smallImages:Array; protected var bridgeClip:MovieClip; protected var bridgeTiles:BitmapData; protected static var bigFrameCount:int = 90; protected static var bigRadius:int = 375; protected static var smallFrameCount:int = 36; protected static var sideTable:Array = [new Point(1, 0), new Point(1, 0), new Point(0, 1), new Point(0, 1)]; protected static var forwardTable:Array = [new Point(0, 1), new Point(0, 1), new Point(1, 0), new Point(1, 0)]; protected static var smallRadius:int = 40; public function Explosion(_arg1:Bridge=null):void{ if (!Boot.skip_constructor){ this.imageStacks = []; if (_arg1 != null){ this.bigImages = []; this.smallImages = []; this.bridge = _arg1; this.frame = 0; this.setupPoints(); this.setupBridgeClip(); Main.sound.play(SoundPlayer.BRIDGE_EXPLOSION); }; Game.view.frameAdvance.add(this); Game.view.explosions.add(this); if (((!(Game.settings.isCustom())) && (!((Main.kongregate == null))))){ Main.kongregate.stats.submit("Bridge", 1); }; }; } protected function setupPoints():void{ var _local1:Point; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; _local1 = this.bridge.getLot().getSize(); _local2 = _local1.x; _local3 = _local1.y; if ((((this.bridge.spawnDir() == Direction.NORTH)) || ((this.bridge.spawnDir() == Direction.SOUTH)))){ _local2 = _local1.y; _local3 = _local1.x; }; this.smallPoints = []; _local4 = 1; while (_local4 < _local2) { this.smallPoints.push(new Point(_local4, 1)); this.smallPoints.push(new Point(_local4, (_local3 - 1))); _local4 = (_local4 + 2); }; Lib.shuffle(this.smallPoints); this.bigPoints = []; _local5 = 0; _local6 = (_local3 - 1); while (_local5 < _local6) { var _temp1 = _local5; _local5 = (_local5 + 1); _local7 = _temp1; _local8 = 0; while (_local8 < _local2) { var _temp2 = _local8; _local8 = (_local8 + 1); _local9 = _temp2; if (((((_local7 % 2) == 1)) && ((((_local9 + _local7) % 3) == 2)))){ this.bigPoints.push(new Point(_local9, _local7)); }; }; }; Lib.shuffle(this.bigPoints); } protected function addSmallExplosion(_arg1:Point):void{ var _local2:ImageStack; var _local3:VirtualImage; _local2 = new ImageStack(smallRadius); _local3 = new VirtualImage(SpriteDisplay.SMALL_EXPLOSION_LAYER, new Point(0, 0), Label.smallExplosion); _local2.addImage(_local3); _local2.setPixel(this.getExplosionPos(_arg1, true)); _local2.update(); this.imageStacks.push(_local2); this.smallImages.push(_local3); } protected function setupBridgeClip():void{ var _local1:DisplayObjectContainer; var _local2:Point; _local1 = Game.sprites.getLayer(SpriteDisplay.BRIDGE_LAYER); this.bridgeClip = new MovieClip(); _local1.addChild(this.bridgeClip); this.bridgeClip.mouseEnabled = false; this.bridgeClip.mouseChildren = false; this.bridgeClip.cacheAsBitmap = true; _local2 = this.bridge.getLot().getSize(); this.bridgeTiles = new BitmapData(Lib.cellToPixel(_local2.x), Lib.cellToPixel(_local2.y), true, 0xFFFFFF); this.bridgeBitmap = new Bitmap(this.bridgeTiles); this.bridgeClip.addChild(this.bridgeBitmap); Game.view.window.fillBitmapRegion(this.bridgeBitmap, this.bridge.getOffset(), this.bridge.getLot().offset, this.bridge.getLot().limit, false); this.moveWindow(); } public function cleanupBridgeBitmap():void{ if (this.bridgeBitmap != null){ this.bridgeBitmap.bitmapData.dispose(); this.bridgeBitmap.parent.removeChild(this.bridgeBitmap); this.bridgeBitmap = null; this.bridgeClip.parent.removeChild(this.bridgeClip); this.bridgeClip = null; }; } public function fixedStep():void{ var _local1:Boolean; var _local2:int; var _local3:Array; var _local4:int; var _local5:Array; var _local6:VirtualImage; var _local7:VirtualImage; this.frame--; _local1 = true; _local2 = 0; _local3 = this.bigImages; while (_local2 < _local3.length) { _local6 = _local3[_local2]; _local2++; if (_local6.getFrame() != bigFrameCount){ _local6.advanceFrame(); _local6.update(); _local1 = false; }; }; _local4 = 0; _local5 = this.smallImages; while (_local4 < _local5.length) { _local7 = _local5[_local4]; _local4++; if (_local7.getFrame() != smallFrameCount){ _local7.advanceFrame(); _local7.update(); _local1 = false; }; }; if (this.smallPoints.length > 0){ this.addSmallExplosion(this.smallPoints.pop()); this.frame = 21; } else { if (this.bigPoints.length > 0){ if (this.frame <= 0){ this.addBigExplosion(this.bigPoints.pop()); this.frame = 3; if (this.bigPoints.length == 0){ this.frame = 10; }; }; } else { if (this.frame == 0){ this.bridge.destroy(); this.cleanupBridgeBitmap(); this.bridge = null; } else { if (_local1){ this.cleanup(); }; }; }; }; } public function moveWindow():void{ var _local1:Point; if (this.bridgeClip != null){ _local1 = Game.view.window.toRelative(this.bridge.getOffset().x, this.bridge.getOffset().y); this.bridgeClip.x = Lib.cellToPixel(_local1.x); this.bridgeClip.y = Lib.cellToPixel(_local1.y); }; } public function cleanup():void{ var _local1:int; var _local2:Array; var _local3:ImageStack; _local1 = 0; _local2 = this.imageStacks; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.cleanup(); }; Game.view.frameAdvance.remove(this); Game.view.explosions.remove(this); this.cleanupBridgeBitmap(); } protected function getExplosionPos(_arg1:Point, _arg2:Boolean):Point{ var _local3:int; var _local4:Point; var _local5:Point; var _local6:Point; var _local7:int; var _local8:int; var _local9:Point; _local3 = Lib.directionToIndex(this.bridge.explosionDir()); _local4 = forwardTable[_local3]; _local5 = sideTable[_local3]; _local6 = this.bridge.getOffset(); _local7 = ((_local6.x + (_arg1.x * _local4.x)) + (_arg1.y * _local5.x)); _local8 = ((_local6.y + (_arg1.x * _local4.y)) + (_arg1.y * _local5.y)); _local9 = new Point(_local7, _local8).toPixel(); if (_arg2){ _local9.x = (_local9.x - Option.halfCell); _local9.y = (_local9.y - Option.halfCell); }; return (_local9); } protected function addBigExplosion(_arg1:Point):void{ var _local2:ImageStack; var _local3:VirtualImage; _local2 = new ImageStack(bigRadius); _local3 = new VirtualImage(SpriteDisplay.EXPLOSION_LAYER, new Point(0, 0), Label.largeExplosion); _local2.addImage(_local3); _local2.setPixel(this.getExplosionPos(_arg1, false)); _local2.update(); this.imageStacks.push(_local2); this.bigImages.push(_local3); } public function save(){ return ({bigImages:Save.saveArray(this.bigImages, VirtualImage.saveS), smallImages:Save.saveArray(this.smallImages, VirtualImage.saveS), bridge:Save.maybe(this.bridge, Bridge.saveS), frame:this.frame, bigPoints:Save.saveArray(this.bigPoints, Point.saveS), smallPoints:Save.saveArray(this.smallPoints, Point.saveS)}); } public static function load(_arg1):Explosion{ var _local2:Explosion; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:ImageStack; var _local9:int; var _local10:ImageStack; _local2 = new Explosion(null); _local2.bigImages = Load.loadArray(_arg1.bigImages, VirtualImage.load); _local3 = 0; _local4 = _local2.bigImages.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local7 = _temp1; _local8 = new ImageStack(bigRadius); _local8.setPixel(_local2.bigImages[_local7].getPos()); _local8.addImage(_local2.bigImages[_local7]); _local8.update(); _local2.imageStacks.push(_local8); }; _local2.smallImages = Load.loadArray(_arg1.smallImages, VirtualImage.load); _local5 = 0; _local6 = _local2.smallImages.length; while (_local5 < _local6) { var _temp2 = _local5; _local5 = (_local5 + 1); _local9 = _temp2; _local10 = new ImageStack(smallRadius); _local10.setPixel(_local2.smallImages[_local9].getPos()); _local10.addImage(_local2.smallImages[_local9]); _local10.update(); _local2.imageStacks.push(_local10); }; _local2.bridge = Load.maybe(_arg1.bridge, Bridge.load); if (_local2.bridge != null){ Game.progress.addBridge(_local2.bridge, false); _local2.setupBridgeClip(); }; _local2.frame = _arg1.frame; _local2.bigPoints = Load.loadArray(_arg1.bigPoints, Point.load); _local2.smallPoints = Load.loadArray(_arg1.smallPoints, Point.load); return (_local2); } public static function saveS(_arg1:Explosion){ return (_arg1.save()); } } }//package ui
Section 186
//FailClip (ui.FailClip) package ui { import flash.display.*; import flash.text.*; public dynamic class FailClip extends MovieClip { public var fail:TextField; } }//package ui
Section 187
//FailWarning (ui.FailWarning) package ui { import flash.display.*; import flash.text.*; import flash.*; public class FailWarning { protected var clip:FailClip; protected var frame:int; protected static var maxFrame:int = 15; protected static var alphaFrame:int = 10; public function FailWarning(_arg1:DisplayObjectContainer=null, _arg2:Point=null):void{ if (!Boot.skip_constructor){ this.clip = new FailClip(); this.clip.mouseEnabled = false; this.clip.mouseChildren = false; _arg1.addChild(this.clip); this.clip.visible = false; this.clip.fail.wordWrap = true; this.clip.fail.autoSize = TextFieldAutoSize.LEFT; this.frame = (FailWarning.maxFrame + 1); this.resize(_arg2); }; } public function cleanup():void{ this.clip.parent.removeChild(this.clip); } public function enterFrame():void{ if (this.frame < alphaFrame){ this.clip.visible = true; this.clip.alpha = 1; this.frame++; } else { if (this.frame < maxFrame){ this.clip.visible = true; this.clip.alpha = ((FailWarning.maxFrame - this.frame) / (FailWarning.maxFrame - alphaFrame)); this.frame++; } else { if (this.frame == maxFrame){ this.clip.visible = false; this.frame++; }; }; }; } public function resize(_arg1:Point):void{ Util.centerHorizontally(this.clip.fail, _arg1); Util.centerVertically(this.clip.fail, _arg1); } public function show(_arg1:String):void{ if (_arg1 != null){ this.clip.fail.text = _arg1; this.resize(Game.view.layout.screenSize); this.frame = 0; this.clip.visible = true; this.clip.alpha = 1; }; } } }//package ui
Section 188
//FontSize (ui.FontSize) package ui { public class FontSize { public static var resourceBar:int = 12; public static var announce:int = 36; public static var countDown:int = 18; public static var comboListTitle:int = 18; public static var pause:int = 36; public static var button:int = 12; public static var comboList:int = 14; } }//package ui
Section 189
//FpsCounter (ui.FpsCounter) package ui { import flash.display.*; import flash.text.*; public class FpsCounter { protected var timeCount:int; protected var lastTime:Number; protected var counter:TextField; public function FpsCounter(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ } public function cleanup():void{ } public function enterFrame():void{ } } }//package ui
Section 190
//FrameAdvance (ui.FrameAdvance) package ui { import flash.*; public class FrameAdvance { protected var frames:Array; public function FrameAdvance():void{ if (!Boot.skip_constructor){ this.frames = []; }; } public function fixedStep():void{ var _local1:int; var _local2:Array; var _local3:AbstractFrame; _local1 = 0; _local2 = this.frames; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.fixedStep(); }; } public function remove(_arg1:AbstractFrame):void{ this.frames.remove(_arg1); } public function add(_arg1:AbstractFrame):void{ this.frames.push(_arg1); } } }//package ui
Section 191
//HoverList (ui.HoverList) package ui { import flash.display.*; import flash.events.*; import flash.*; public class HoverList { protected var textList:Array; protected var clipList:Array; public function HoverList(_arg1:Array=null, _arg2:Array=null):void{ var _local3:int; var _local4:Array; var _local5:DisplayObject; super(); if (!Boot.skip_constructor){ this.clipList = _arg1; this.textList = _arg2; _local3 = 0; _local4 = this.clipList; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local5.addEventListener(MouseEvent.MOUSE_OVER, this.rollOver); _local5.addEventListener(MouseEvent.MOUSE_OUT, this.rollOut); }; }; } protected function rollOut(_arg1:MouseEvent):void{ Game.view.toolTip.hide(); } protected function rollOver(_arg1:MouseEvent):void{ var _local2:*; _local2 = this.getIndex(_arg1); if (_local2 != null){ Game.view.toolTip.show(this.textList[_local2]); }; } public function cleanup():void{ var _local1:int; var _local2:Array; var _local3:DisplayObject; _local1 = 0; _local2 = this.clipList; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.removeEventListener(MouseEvent.MOUSE_OVER, this.rollOver); _local3.removeEventListener(MouseEvent.MOUSE_OUT, this.rollOut); }; } protected function getIndex(_arg1:MouseEvent){ var _local2:*; var _local3:int; var _local4:int; var _local5:int; _local2 = null; _local3 = 0; _local4 = this.clipList.length; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; if (this.clipList[_local5] == _arg1.target){ _local2 = _local5; break; }; }; return (_local2); } } }//package ui
Section 192
//ImageStack (ui.ImageStack) package ui { import flash.*; public class ImageStack { protected var pixel:Point; protected var maxRadius:int; protected var source:Point; protected var stepNum:int; protected var dest:Point; protected var danceBase:int; protected var totalSteps:int; protected var shouldShow:Boolean; protected var danceCounter:int; protected var control:Point; protected var shouldRotate:Boolean; protected var images:List; protected var rotation:int; protected static var stepDenom:int = Math.floor((Option.cellPixels / 2)); public function ImageStack(_arg1=null):void{ if (!Boot.skip_constructor){ this.shouldShow = true; this.images = new List(); this.pixel = new Point(0, 0); this.shouldRotate = true; this.rotation = 0; this.source = new Point(0, 0); this.dest = new Point(0, 0); this.control = new Point(0, 0); this.stepNum = 1; this.totalSteps = 1; this.maxRadius = Option.cellPixels; this.danceCounter = 0; this.danceBase = 0; if (_arg1 != null){ this.maxRadius = _arg1; }; Game.view.imageList.add(this); }; } public function show():void{ this.shouldShow = true; this.update(); } protected function findScalar(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ var _local5:Number; var _local6:Number; var _local7:Number; _local5 = ((_arg4 - (2 * _arg3)) + _arg2); _local6 = ((2 * _arg3) - (2 * _arg2)); _local7 = _arg2; return (((((_local5 * _arg1) * _arg1) + (_local6 * _arg1)) + _local7)); } public function travel(_arg1:int, _arg2:Point, _arg3:Point=null):void{ this.totalSteps = _arg1; this.source = this.pixel.clone(); this.dest = _arg2.clone(); if (_arg3 == null){ this.control = new Point(Math.floor(((this.dest.x + this.source.x) / 2)), Math.floor(((this.dest.y + this.source.y) / 2))); } else { this.control = _arg3.clone(); }; this.stepNum = 0; } public function getPos():Point{ return (this.pixel.clone()); } public function isDancing():Boolean{ return (!((this.danceCounter == 0))); } public function cleanup():void{ var _local1:*; var _local2:VirtualImage; _local1 = this.images.iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); _local2.cleanup(); }; this.images = null; Game.view.imageList.remove(this); } public function faceEnemy(_arg1:int):int{ var _local2:int; var _local3:Boolean; _local2 = 0; _local3 = true; while ((((_local2 < _arg1)) && (_local3))) { _local3 = this.stepRotate(this.source.x, this.source.y, this.control.x, this.control.y); if (_local3){ _local2++; }; }; return (_local2); } public function forbidRotation():void{ this.shouldRotate = false; } public function addImage(_arg1:VirtualImage):void{ this.images.add(_arg1); } public function hide():void{ this.shouldShow = false; this.update(); } public function setPixel(_arg1:Point):void{ this.pixel = _arg1.clone(); this.dest = _arg1.clone(); this.control = _arg1.clone(); } public function stepRotate(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Boolean{ var _local5:Boolean; var _local6:int; _local5 = false; while (true) { _local6 = 0; if (this.danceCounter == 0){ _local6 = Lib.slopeToAngle((_arg1 - _arg3), (_arg2 - _arg4)); } else { if (this.danceCounter > 0){ _local6 = (((this.danceBase + Option.danceMoves[this.danceCounter]) + 360) % 360); } else { _local6 = (((this.danceBase - Option.danceMoves[-(this.danceCounter)]) + 360) % 360); }; }; _local5 = this.tryRotate(_local6); if (_local5){ break; } else { if (this.danceCounter > 0){ this.danceCounter--; } else { if (this.danceCounter < 0){ this.danceCounter++; } else { break; }; }; }; }; return (_local5); } public function update():void{ var _local1:LayoutGame; var _local2:Point; var _local3:Point; var _local4:*; var _local5:VirtualImage; var _local6:*; var _local7:VirtualImage; _local1 = Game.view.layout; _local2 = Game.view.window.toAbsolute(0, 0).toPixel(); _local3 = new Point((this.pixel.x - _local2.x), (this.pixel.y - _local2.y)); if (((((((((!(this.shouldShow)) || ((_local3.x <= -(this.maxRadius))))) || ((_local3.x >= (Lib.cellToPixel(_local1.windowSize.x) + this.maxRadius))))) || ((_local3.y <= -(this.maxRadius))))) || ((_local3.y >= (Lib.cellToPixel(_local1.windowSize.y) + this.maxRadius))))){ _local4 = this.images.iterator(); while (_local4.hasNext()) { _local5 = _local4.next(); _local5.setPos(this.pixel); _local5.setRotation(this.rotation); _local5.outside(_local2); }; } else { _local6 = this.images.iterator(); while (_local6.hasNext()) { _local7 = _local6.next(); _local7.setPos(this.pixel); _local7.setRotation(this.rotation); _local7.inside(_local2); }; }; } public function step(_arg1:int):int{ var _local2:int; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Point; var _local8:Boolean; _local2 = 0; _local3 = this.findScalarX((this.stepNum - 1)); _local4 = this.findScalarY((this.stepNum - 1)); _local5 = this.findScalarX(this.stepNum); _local6 = this.findScalarY(this.stepNum); _local7 = new Point(Math.floor(_local5), Math.floor(_local6)); while ((((_local2 < _arg1)) && ((this.stepNum <= this.totalSteps)))) { _local5 = this.findScalarX(this.stepNum); _local6 = this.findScalarY(this.stepNum); _local7.x = Math.floor(_local5); _local7.y = Math.floor(_local6); _local8 = false; if (((this.shouldRotate) && (!(Point.isEqual(this.pixel, _local7))))){ _local8 = this.stepRotate(_local3, _local4, _local5, _local6); }; if (!_local8){ this.pixel = _local7; this.stepNum++; _local3 = _local5; _local4 = _local6; }; _local2++; }; return (_local2); } public function getPixel():Point{ return (this.pixel); } public function rotate(_arg1:int):void{ this.rotation = _arg1; if (this.rotation > 180){ this.rotation = (this.rotation - 360); }; if (this.rotation <= -180){ this.rotation = (this.rotation + 360); }; } public function allowRotation():void{ this.shouldRotate = true; } public function startDance(_arg1:int):void{ this.danceCounter = _arg1; this.danceBase = this.rotation; } protected function findScalarX(_arg1:int):Number{ if (_arg1 >= 0){ return (this.findScalar((_arg1 / this.totalSteps), this.source.x, this.control.x, this.dest.x)); }; return (this.source.x); } protected function findScalarY(_arg1:int):Number{ if (_arg1 >= 0){ return (this.findScalar((_arg1 / this.totalSteps), this.source.y, this.control.y, this.dest.y)); }; return (this.source.y); } public function tryRotate(_arg1:int):Boolean{ var _local2:Boolean; var _local3:int; _local2 = false; _local3 = Util.angleDistance(this.rotation, _arg1); if (Util.angleDistance(this.rotation, _arg1) < Option.rotateStep){ this.rotate(_arg1); } else { if (Util.angleDistance((this.rotation + Option.rotateStep), _arg1) < _local3){ this.rotate((this.rotation + Option.rotateStep)); _local2 = true; } else { this.rotate((this.rotation - Option.rotateStep)); _local2 = true; }; }; return (_local2); } public function save(){ return ({shouldShow:this.shouldShow, pixel:this.pixel.save(), shouldRotate:this.shouldRotate, rotation:this.rotation, stepNum:this.stepNum, totalSteps:this.totalSteps, source:this.source.save(), dest:this.dest.save(), control:this.control.save(), maxRadius:this.maxRadius, danceCounter:this.danceCounter, danceBase:this.danceBase}); } public static function load(_arg1):ImageStack{ var _local2:ImageStack; _local2 = new (ImageStack); _local2.shouldShow = _arg1.shouldShow; _local2.pixel = Point.load(_arg1.pixel); _local2.shouldRotate = _arg1.shouldRotate; _local2.rotation = _arg1.rotation; _local2.stepNum = _arg1.stepNum; _local2.totalSteps = _arg1.totalSteps; _local2.source = Point.load(_arg1.source); _local2.dest = Point.load(_arg1.dest); _local2.control = Point.load(_arg1.control); _local2.maxRadius = _arg1.maxRadius; _local2.danceCounter = _arg1.danceCounter; _local2.danceBase = _arg1.danceBase; return (_local2); } } }//package ui
Section 193
//Label (ui.Label) package ui { public class Label { public static var workshopScreen:String = "WorkshopScreen"; public static var barricadeScreen:String = "BarricadeScreen"; public static var configDisk:String = "ZomLogConfig"; public static var tower:String = "towerclip"; public static var smallExplosion:String = "ExplosionSmallClip"; public static var bridge:String = "BridgeClip"; public static var timerScreen:String = "TimerScreen"; public static var depotMiscScreen:String = "DepotMiscScreen"; public static var floater:String = "FloaterClip"; public static var largeExplosion:String = "ExplosionLargeClip"; public static var depotBuildScreen:String = "DepotBuildScreen"; public static var background:String = "backgroundtiles"; public static var gameDisk:String = "ZomLog"; public static var depotResourceScreen:String = "DepotResourceScreen"; public static var pause:String = "PauseClip"; public static var sniperScreen:String = "SniperScreen"; public static var select:String = "SelectClip"; public static var towerNeed:String = "TowerNeedClip"; } }//package ui
Section 194
//LayoutGame (ui.LayoutGame) package ui { import logic.*; import flash.*; public class LayoutGame { public var tutorialBoxOffset:Point; public var sideMenuOffset:Point; public var fpsSize:Point; public var resourceHiddenOffset:int; public var screenSize:Point; public var mapOffset:Point; public var windowSize:Point; public var resourceShownOffset:int; public var pauseToggleOffset:Point; public var tutorialTextOffset:Point; public var margin:int; public var monitorOffset:Point; public var totalResourceOffset:Point; public var miniScreenSize:Point; public var monitorScaleX:Number; public var monitorScaleY:Number; public var countDownOffset:Point; public var scrollOutMargin:int; public var miniOffset:Point; public var scrollMargin:int; public var fpsOffset:Point; public var buildMenuOffset:Point; public var playToggleOffset:Point; public var windowCenter:Point; public var quickOffset:Point; public var tipWidth:int; public var countDownSize:Point; public var miniSize:Point; public var miniCellSize:int; public var monitorSize:Point; public var mapSize:Point; public var tutorialSize:Point; public function LayoutGame(_arg1:int=0, _arg2:int=0, _arg3:GameSettings=null):void{ if (!Boot.skip_constructor){ this.screenSize = new Point(_arg1, _arg2); this.margin = 10; this.scrollMargin = 5; this.scrollOutMargin = 100; this.initMiniMap(_arg3); this.initWindow(_arg3); this.initFpsCounter(); this.initMenu(); this.initQuick(); this.initZombieSpawner(); this.initToolTip(); this.initTutorial(); }; } protected function initFpsCounter():void{ this.fpsSize = new Point(60, 15); this.fpsOffset = new Point(0, (this.screenSize.y - this.fpsSize.y)); } protected function initTutorial():void{ this.tutorialBoxOffset = new Point(5, 200); this.tutorialTextOffset = new Point((this.tutorialBoxOffset.x + 10), (this.tutorialBoxOffset.y + 10)); this.tutorialSize = new Point(200, 50); } protected function initWindow(_arg1:GameSettings):void{ this.windowSize = new Point(Math.ceil((this.screenSize.x / Option.cellPixels)), Math.ceil((this.screenSize.y / Option.cellPixels))); if (this.windowSize.x > _arg1.getSize().x){ this.windowSize.x = _arg1.getSize().x; }; if (this.windowSize.y > _arg1.getSize().y){ this.windowSize.y = _arg1.getSize().y; }; this.mapOffset = new Point(0, 0); this.mapSize = new Point(Lib.cellToPixel(this.windowSize.x), Lib.cellToPixel(this.windowSize.y)); this.windowCenter = new Point(Math.floor((this.windowSize.x / 2)), Math.floor((this.windowSize.y / 2))); } protected function initMenu():void{ this.sideMenuOffset = new Point((this.screenSize.x - 400), (this.screenSize.y - 600)); this.resourceHiddenOffset = 565; this.resourceShownOffset = 525; } protected function initZombieSpawner():void{ this.playToggleOffset = new Point(157, 39); this.pauseToggleOffset = new Point(160, 60); this.countDownSize = new Point(221, 140); if (this.screenSize.x < 800){ this.countDownSize = new Point(166, 105); }; this.countDownOffset = new Point(0, 0); } protected function initQuick():void{ this.quickOffset = new Point(0, this.screenSize.y); this.totalResourceOffset = new Point(Math.floor((this.screenSize.x / 2)), 0); this.buildMenuOffset = new Point(0, (this.quickOffset.y - 20)); } protected function initToolTip():void{ this.tipWidth = Math.floor((this.screenSize.x / 3)); if (this.tipWidth > 200){ this.tipWidth = 200; }; } protected function initMiniMap(_arg1:GameSettings):void{ var _local2:int; this.miniCellSize = 2; if ((((_arg1.getSize().x > 65)) && ((_arg1.getSize().y > 65)))){ this.miniCellSize = 1; }; _local2 = 10; this.miniSize = new Point((_arg1.getSize().x * this.miniCellSize), (_arg1.getSize().y * this.miniCellSize)); this.miniScreenSize = new Point(160, 160); this.monitorScaleX = (this.miniSize.x / this.miniScreenSize.x); this.monitorScaleY = (this.miniSize.y / this.miniScreenSize.y); this.monitorSize = new Point(Math.ceil((245 * this.monitorScaleX)), Math.ceil((217 * this.monitorScaleY))); this.monitorOffset = new Point(((this.screenSize.x - this.monitorSize.x) + _local2), -(_local2)); this.miniOffset = new Point((Math.ceil((27 * this.monitorScaleX)) + this.monitorOffset.x), (Math.ceil((30 * this.monitorScaleY)) + this.monitorOffset.y)); } } }//package ui
Section 195
//LayoutMain (ui.LayoutMain) package ui { import flash.*; public class LayoutMain { public var screenSize:Point; public function LayoutMain(_arg1:int=0, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.screenSize = new Point(_arg1, _arg2); }; } } }//package ui
Section 196
//MainIntroMusic (ui.MainIntroMusic) package ui { import flash.net.*; import flash.media.*; import flash.*; public class MainIntroMusic extends Sound { public function MainIntroMusic(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package ui
Section 197
//MainLoopMusic (ui.MainLoopMusic) package ui { import flash.net.*; import flash.media.*; import flash.*; public class MainLoopMusic extends Sound { public function MainLoopMusic(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package ui
Section 198
//MiniMap (ui.MiniMap) package ui { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.*; public class MiniMap { protected var foreground:Bitmap; protected var clip:DisplayObjectContainer; protected var glare:MovieClip; protected var monitor:MonitorClip; protected var background:Bitmap; protected var supply:Shape; protected var window:Shape; public function MiniMap(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ var _local3:BitmapData; var _local4:BitmapData; super(); if (!Boot.skip_constructor){ this.monitor = new MonitorClip(); _arg1.addChild(this.monitor); this.monitor.visible = true; this.monitor.scaleX = _arg2.monitorScaleX; this.monitor.scaleY = _arg2.monitorScaleY; this.clip = new Sprite(); _arg1.addChild(this.clip); this.clip.visible = true; this.clip.addEventListener(MouseEvent.MOUSE_DOWN, this.bitmapPress); this.clip.addEventListener(MouseEvent.MOUSE_UP, this.bitmapRelease); this.glare = new MonitorOverlayClip(); _arg1.addChild(this.glare); this.glare.visible = true; this.glare.scaleX = _arg2.monitorScaleX; this.glare.scaleY = _arg2.monitorScaleY; this.glare.mouseEnabled = false; _local3 = new BitmapData(_arg2.miniSize.x, _arg2.miniSize.y, false, Option.roadMiniColor); this.background = new Bitmap(_local3); this.clip.addChild(this.background); this.background.visible = true; this.supply = new Shape(); this.clip.addChild(this.supply); this.supply.visible = true; this.window = new Shape(); this.clip.addChild(this.window); this.window.visible = true; _local4 = new BitmapData(_arg2.miniSize.x, _arg2.miniSize.y, true, 0xFFFFFF); this.foreground = new Bitmap(_local4); this.clip.addChild(this.foreground); this.foreground.visible = true; this.monitor.addEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.resize(_arg2); }; } public function update():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local1 = 0; _local2 = Game.map.sizeY(); while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = 0; _local5 = Game.map.sizeX(); while (_local4 < _local5) { var _temp2 = _local4; _local4 = (_local4 + 1); _local6 = _temp2; this.updateCell(_local6, _local3); }; }; } public function updateCell(_arg1:int, _arg2:int):void{ var _local3:MapCell; var _local4:int; var _local5:BitmapData; var _local6:int; var _local7:enum; _local3 = Game.map.getCell(_arg1, _arg2); _local4 = Option.roadMiniColor; _local5 = this.background.bitmapData; if (_local3.hasZombies()){ _local4 = Option.zombieMiniColor; _local5 = this.foreground.bitmapData; } else { if (Point.isEqual(new Point(_arg1, _arg2), Game.select.getSelected())){ _local4 = Option.selectedMiniColor; _local5 = this.foreground.bitmapData; } else { if (_local3.hasTower()){ _local4 = Option.towerMiniColor; _local5 = this.foreground.bitmapData; } else { if (_local3.hasTrucks()){ _local4 = Option.truckMiniColor; _local5 = this.foreground.bitmapData; } else { if (_local3.buildingHasZombies()){ _local6 = _local3.getBuilding().getZombieCount(); _local4 = Lib.zombieColor(_local6); } else { _local7 = _local3.getBackground(); switch (_local7.index){ case 0: _local4 = Option.emptyBuildingMiniColor; break; case 1: _local4 = Option.emptyBuildingMiniColor; break; case 2: _local4 = Option.roadMiniColor; break; case 3: _local4 = Option.roadMiniColor; break; case 4: _local4 = Option.roadMiniColor; break; case 5: _local4 = Option.roadMiniColor; break; case 6: _local4 = Option.waterColor; break; case 7: _local4 = Option.waterColor; break; }; }; }; }; }; }; this.setCell(_arg1, _arg2, _local4, _local5); } protected function showSupply(_arg1:int, _arg2:int):void{ var _local3:LayoutGame; var _local4:Number; var _local5:Tower; var _local6:*; var _local7:Route; _local3 = Game.view.layout; _local4 = (_local3.miniCellSize / 2); this.supply.graphics.clear(); this.supply.graphics.lineStyle(Option.miniSupplyThickness, Option.miniSupplyColor); _local5 = Game.map.getCell(_arg1, _arg2).getTower(); _local6 = _local5.getTradeLinks().iterator(); while (_local6.hasNext()) { _local7 = _local6.next(); this.supply.graphics.moveTo(((_arg1 * _local3.miniCellSize) + _local4), ((_arg2 * _local3.miniCellSize) + _local4)); this.supply.graphics.lineTo(((_local7.dest.x * _local3.miniCellSize) + _local4), ((_local7.dest.y * _local3.miniCellSize) + _local4)); }; } protected function drawWindow(_arg1:LayoutGame):void{ var _local2:Point; _local2 = new Point((_arg1.windowSize.x * _arg1.miniCellSize), (_arg1.windowSize.y * _arg1.miniCellSize)); this.window.graphics.clear(); this.window.graphics.lineStyle(1, Color.miniCursor); this.window.graphics.moveTo(0, 0); this.window.graphics.lineTo(_local2.x, 0); this.window.graphics.lineTo(_local2.x, _local2.y); this.window.graphics.lineTo(0, _local2.y); this.window.graphics.lineTo(0, 0); } public function updateSupply():void{ var _local1:Point; _local1 = Game.select.getSelected(); if ((((_local1 == null)) || ((Game.map.getCell(_local1.x, _local1.y).getTower() == null)))){ this.clearSupply(); } else { this.showSupply(_local1.x, _local1.y); }; } public function bitmapPress(_arg1:MouseEvent):void{ this.clip.addEventListener(MouseEvent.MOUSE_MOVE, this.bitmapMouseMove); this.bitmapUpdate(Math.floor(_arg1.localX), Math.floor(_arg1.localY)); } protected function clearSupply():void{ this.supply.graphics.clear(); } public function bitmapRelease(_arg1:MouseEvent):void{ this.clip.removeEventListener(MouseEvent.MOUSE_MOVE, this.bitmapMouseMove); } public function moveWindow(_arg1:int, _arg2:int):void{ var _local3:LayoutGame; _local3 = Game.view.layout; this.window.x = (_arg1 * _local3.miniCellSize); this.window.y = (_arg2 * _local3.miniCellSize); } public function cleanup():void{ this.monitor.removeEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.foreground.parent.removeChild(this.foreground); this.foreground.bitmapData.dispose(); this.foreground = null; this.window.parent.removeChild(this.window); this.window = null; this.supply.parent.removeChild(this.supply); this.supply = null; this.background.parent.removeChild(this.background); this.background.bitmapData.dispose(); this.background = null; this.glare.parent.removeChild(this.glare); this.glare = null; this.clip.removeEventListener(MouseEvent.MOUSE_DOWN, this.bitmapPress); this.clip.removeEventListener(MouseEvent.MOUSE_UP, this.bitmapRelease); this.clip.removeEventListener(MouseEvent.MOUSE_MOVE, this.bitmapMouseMove); this.clip.parent.removeChild(this.clip); this.clip = null; this.monitor.parent.removeChild(this.monitor); this.monitor = null; } public function bitmapMouseMove(_arg1:MouseEvent):void{ if (_arg1.buttonDown){ this.bitmapUpdate(Math.floor(_arg1.localX), Math.floor(_arg1.localY)); } else { this.bitmapRelease(_arg1); }; } protected function setCell(_arg1:int, _arg2:int, _arg3:int, _arg4:BitmapData):void{ var _local5:int; var _local6:Rectangle; _local5 = Game.view.layout.miniCellSize; _local6 = new Rectangle((_arg1 * _local5), (_arg2 * _local5), _local5, _local5); _arg4.fillRect(_local6, _arg3); if (_arg4 == this.background.bitmapData){ this.foreground.bitmapData.fillRect(_local6, 0xFFFFFF); }; } protected function bitmapUpdate(_arg1:int, _arg2:int):void{ var _local3:LayoutGame; var _local4:int; var _local5:int; var _local6:int; _local3 = Game.view.layout; _local4 = _local3.miniCellSize; _local5 = (Math.floor((_arg1 / _local4)) - _local3.windowCenter.x); _local6 = (Math.floor((_arg2 / _local4)) - _local3.windowCenter.y); Game.view.window.moveWindow(_local5, _local6); } protected function rollOver(_arg1:MouseEvent):void{ Game.view.toolTip.hide(); } public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.miniOffset.x; this.clip.y = _arg1.miniOffset.y; this.monitor.x = _arg1.monitorOffset.x; this.monitor.y = _arg1.monitorOffset.y; this.glare.x = _arg1.monitorOffset.x; this.glare.y = _arg1.monitorOffset.y; this.drawWindow(_arg1); } } }//package ui
Section 199
//MonitorClip (ui.MonitorClip) package ui { import flash.display.*; public dynamic class MonitorClip extends MovieClip { } }//package ui
Section 200
//MonitorOverlayClip (ui.MonitorOverlayClip) package ui { import flash.display.*; public dynamic class MonitorOverlayClip extends MovieClip { } }//package ui
Section 201
//MouseFloater (ui.MouseFloater) package ui { import flash.display.*; import flash.events.*; import flash.*; public class MouseFloater { protected var buildType:int; protected var supplies:Shape; protected var isActive:Boolean; protected var shadow:CenteredImage; protected var parent:DisplayObjectContainer; protected var oldPos:Point; protected var range:Range; public static var REMOVE_SUPPLY:int = 5; public static var ADD_SUPPLY:int = 4; public function MouseFloater(_arg1:DisplayObjectContainer=null):void{ if (!Boot.skip_constructor){ this.parent = _arg1; this.range = new Range(this.parent, Option.newRangeColor, Option.newRangeOpacity); this.supplies = new Shape(); this.parent.addChild(this.supplies); this.supplies.visible = false; this.shadow = new CenteredImage(this.parent, Label.floater); this.shadow.setCenter(new Point(0, 0)); this.shadow.hide(); this.isActive = false; this.oldPos = null; this.buildType = 0; }; } public function stop():void{ if (this.isActive){ this.parent.removeEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.shadow.hide(); this.isActive = false; this.range.clear(); this.supplies.visible = false; }; } protected function updateShadow(_arg1:Point):void{ var _local2:Point; _local2 = Game.view.window.toRelative(_arg1.x, _arg1.y); this.shadow.goto(Lib.cellToPixel(_local2.x), Lib.cellToPixel(_local2.y)); } protected function updateOverlay(_arg1:Point):void{ if (this.isValid(_arg1)){ this.shadow.setTransform(Color.allowTransform); this.updateSupplies(_arg1); } else { this.shadow.setTransform(Color.denyTransform); this.supplies.visible = false; }; } public function update(_arg1:Number, _arg2:Number, _arg3:Boolean):void{ var _local4:LayoutGame; var _local5:Point; var _local6:Point; _local4 = Game.view.layout; _local5 = new Point(Math.floor(_arg1), Math.floor(_arg2)); if ((((((((((_local5.x >= _local4.mapOffset.x)) && ((_local5.x < (_local4.mapSize.x + _local4.mapOffset.x))))) && ((_local5.y >= _local4.mapOffset.y)))) && ((_local5.y < (_local4.mapSize.y + _local4.mapOffset.y))))) && (this.isActive))){ this.shadow.show(); _local6 = Game.view.window.toAbsolute(Lib.pixelToCell((_local5.x - _local4.mapOffset.x)), Lib.pixelToCell((_local5.y - _local4.mapOffset.y))); if ((((((this.oldPos == null)) || (!(Point.isEqual(_local6, this.oldPos))))) || (_arg3))){ this.oldPos = _local6; this.updateShadow(_local6); this.updateOverlay(_local6); this.updateRange(_local6); }; } else { this.shadow.hide(); this.range.clear(); this.supplies.visible = false; this.oldPos = null; }; } public function updatePublic():void{ this.update(Main.getRoot().mouseX, Main.getRoot().mouseY, true); } public function mouseMove(_arg1:MouseEvent):void{ this.update(_arg1.stageX, _arg1.stageY, false); } public function start(_arg1:int):void{ if (((!(this.isActive)) || (!((_arg1 == this.buildType))))){ this.buildType = _arg1; this.shadow.gotoFrame((this.buildType + 2)); this.shadow.show(); this.parent.addEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.isActive = true; this.oldPos = null; this.update(Main.getRoot().mouseX, Main.getRoot().mouseY, false); }; } public function cleanup():void{ this.parent.removeEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.parent = null; this.shadow.cleanup(); this.shadow = null; this.supplies.parent.removeChild(this.supplies); this.supplies = null; this.range.cleanup(); this.range = null; this.isActive = false; } protected function isValid(_arg1:Point):Boolean{ var _local2:Boolean; _local2 = true; if (this.buildType == ADD_SUPPLY){ _local2 = (Check.checkAddSupply(_arg1) == Check.ADD_OK); } else { if (this.buildType == REMOVE_SUPPLY){ _local2 = (Check.checkRemoveSupply(_arg1) == Check.REMOVE_OK); } else { _local2 = Tower.canPlace(this.buildType, _arg1.x, _arg1.y); }; }; return (_local2); } public function resize(_arg1:LayoutGame):void{ var _local2:Point; this.range.resize(_arg1); if (this.oldPos != null){ _local2 = this.oldPos; this.oldPos = null; this.update(_local2.x, _local2.y, false); }; } protected function updateSupplies(_arg1:Point):void{ var _local2:Point; var _local3:List; var _local4:*; var _local5:Point; var _local6:Tower; var _local7:int; var _local8:int; var _local9:int; _local2 = Game.view.window.toRelative(_arg1.x, _arg1.y); this.supplies.x = (Lib.cellToPixel(_local2.x) + Option.halfCell); this.supplies.y = (Lib.cellToPixel(_local2.y) + Option.halfCell); this.supplies.graphics.clear(); _local3 = Game.map.findTowers(_arg1.x, _arg1.y, Option.supplyRange); _local4 = _local3.iterator(); while (_local4.hasNext()) { _local5 = _local4.next(); _local6 = Game.map.getCell(_local5.x, _local5.y).getTower(); if ((((this.buildType == Tower.DEPOT)) || ((_local6.getType() == Tower.DEPOT)))){ _local7 = Color.supplyOtherLine; if ((((this.buildType == Tower.DEPOT)) && ((_local6.getType() == Tower.DEPOT)))){ _local7 = Color.supplyDepotLine; }; this.supplies.graphics.lineStyle(Color.supplyLineThickness, _local7, Color.supplyLineAlpha, true, LineScaleMode.NORMAL, CapsStyle.ROUND); _local8 = Lib.cellToPixel((_local5.x - _arg1.x)); _local9 = Lib.cellToPixel((_local5.y - _arg1.y)); this.supplies.graphics.moveTo(0, 0); this.supplies.graphics.lineTo(_local8, _local9); }; }; this.supplies.visible = true; } protected function updateRange(_arg1:Point):void{ var _local2:int; this.range.clear(); if ((((this.buildType == Tower.SNIPER)) && (Tower.canPlace(this.buildType, _arg1.x, _arg1.y)))){ _local2 = Option.sniperRange[0]; PermissiveFov.permissiveFov(_arg1.x, _arg1.y, _local2, Sniper.isBlocked, this.addNewSquare); this.range.draw(); }; } protected function addNewSquare(_arg1:int, _arg2:int):void{ if (!Sniper.isBlocked(_arg1, _arg2)){ this.range.set(_arg1, _arg2); }; } } }//package ui
Section 202
//MouseScroller (ui.MouseScroller) package ui { import flash.display.*; import flash.events.*; import flash.*; public class MouseScroller { protected var north:Boolean; protected var enabled:Boolean; protected var south:Boolean; protected var parent:InteractiveObject; protected var west:Boolean; protected var counter:int; protected var east:Boolean; protected static var basePos:Point = null; protected static var mouseOut:Boolean = false; protected static var mousePos:Point = null; protected static var maxScroll:int = 7; protected static var outMargin:int = 75; public function MouseScroller(_arg1:InteractiveObject=null):void{ if (!Boot.skip_constructor){ this.enabled = true; this.north = false; this.south = false; this.east = false; this.west = false; this.parent = _arg1; this.counter = 0; this.parent.stage.addEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.parent.stage.addEventListener(MouseEvent.ROLL_OVER, this.mouseMove); this.parent.stage.addEventListener(Event.MOUSE_LEAVE, this.mouseLeave); }; } public function enable():void{ this.enabled = true; } protected function mouseLeave(_arg1:Event):void{ this.parent.addEventListener(Event.ENTER_FRAME, this.enterFrame); Game.view.toolTip.hide(); this.updateMouse(Math.floor(this.parent.stage.mouseX), Math.floor(this.parent.stage.mouseY), Game.view.layout.scrollOutMargin); } public function mouseMove(_arg1:MouseEvent):void{ this.mouseClear(); this.updateMouse(Math.floor(_arg1.stageX), Math.floor(_arg1.stageY), Game.view.layout.scrollMargin); } protected function updateMouse(_arg1:int, _arg2:int, _arg3:int):void{ var _local4:Point; _local4 = Game.view.layout.screenSize; this.north = (((_arg2 <= _arg3)) && (this.withinGutter(_local4, _arg1, _arg2))); this.south = (((_arg2 > (_local4.y - _arg3))) && (this.withinGutter(_local4, _arg1, _arg2))); this.east = (((_arg1 > (_local4.x - _arg3))) && (this.withinGutter(_local4, _arg1, _arg2))); this.west = (((_arg1 <= _arg3)) && (this.withinGutter(_local4, _arg1, _arg2))); if (((((((this.north) || (this.south))) || (this.east))) || (this.west))){ this.parent.addEventListener(Event.ENTER_FRAME, this.enterFrame); } else { this.parent.removeEventListener(Event.ENTER_FRAME, this.enterFrame); }; } public function cleanup():void{ this.parent.stage.removeEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.parent.stage.removeEventListener(MouseEvent.ROLL_OVER, this.mouseMove); this.parent.stage.removeEventListener(Event.MOUSE_LEAVE, this.mouseLeave); this.parent.removeEventListener(Event.ENTER_FRAME, this.enterFrame); } protected function withinGutter(_arg1:Point, _arg2:int, _arg3:int):Boolean{ return ((((((((_arg2 >= -(outMargin))) && ((_arg3 >= -(outMargin))))) && ((_arg2 <= (_arg1.x + outMargin))))) && ((_arg3 <= (_arg1.y + outMargin))))); } public function mouseClear():void{ this.north = false; this.south = false; this.east = false; this.west = false; this.parent.removeEventListener(Event.ENTER_FRAME, this.enterFrame); } public function disable():void{ this.enabled = false; } protected function updateExternal():void{ } public function enterFrame(_arg1:Event):void{ if (((this.enabled) && (!(Game.pause.isSystemPaused())))){ this.updateExternal(); this.counter = (this.counter + (Main.config.getValue(Config.SCROLL) + 1)); if (this.counter >= maxScroll){ if (this.north){ Game.view.window.scrollWindow(Direction.NORTH, 1); }; if (this.south){ Game.view.window.scrollWindow(Direction.SOUTH, 1); }; if (this.east){ Game.view.window.scrollWindow(Direction.EAST, 1); }; if (this.west){ Game.view.window.scrollWindow(Direction.WEST, 1); }; this.counter = (this.counter - maxScroll); }; }; } protected static function setMouseOut():void{ MouseScroller.mouseOut = true; } protected static function setMousePosition(_arg1:int, _arg2:int):void{ if (MouseScroller.basePos != null){ MouseScroller.mousePos = new Point((_arg1 - basePos.x), (_arg2 - basePos.y)); } else { MouseScroller.mousePos = new Point(_arg1, _arg2); }; } protected static function getBasePos(_arg1:String):Point{ var _local2:Point; _local2 = null; return (_local2); } protected static function clearMouseOut():void{ MouseScroller.mouseOut = false; } public static function trackMouse():void{ } } }//package ui
Section 203
//MusicPlayer (ui.MusicPlayer) package ui { import flash.events.*; import flash.media.*; import flash.*; public class MusicPlayer { protected var channel:SoundChannel; protected var currentMusic:Sound; protected var pos:int; protected var transform:SoundTransform; public static var QUIET:int = 6; protected static var musicList:Array = [new MainIntroMusic(), new MainLoopMusic(), new Wave1Music(), new Wave2Music(), new Wave3Music(), new WaveEndMusic(), new QuietMusic(), new AmbientMusic()]; public static var WAVE_3:int = 4; public static var MAIN_INTRO:int = 0; public static var MAIN_LOOP:int = 1; public static var WAVE_1:int = 2; protected static var bufferLength:Number = 1000; protected static var nextMusic:Array = [MAIN_LOOP, MAIN_INTRO, WAVE_2, WAVE_3, WAVE_1, QUIET, AMBIENT, QUIET]; public static var WAVE_END:int = 5; public static var WAVE_2:int = 3; public static var AMBIENT:int = 7; public function MusicPlayer():void{ if (!Boot.skip_constructor){ this.pos = MAIN_INTRO; this.transform = new SoundTransform(); this.advance(); }; } public function stop():void{ if (this.channel != null){ this.channel.removeEventListener(Event.SOUND_COMPLETE, this.complete); this.channel.stop(); this.channel = null; }; } public function cleanup():void{ this.stop(); } protected function advance(_arg1=null):void{ var start:Number; var optStart = _arg1; try { start = 0; if (optStart != null){ start = optStart; }; this.stop(); this.currentMusic = musicList[this.pos]; this.transform.volume = Main.config.getProportion(Config.MUSIC); this.channel = this.currentMusic.play(start, 0, this.transform); this.channel.addEventListener(Event.SOUND_COMPLETE, this.complete); this.pos = nextMusic[this.pos]; } catch(e) { }; } protected function enterFrame(_arg1:Event):void{ var _local2:SoundChannel; var _local3:Number; var _local4:Number; if ((((this.pos == MAIN_INTRO)) || ((this.pos == MAIN_LOOP)))){ if (this.channel.position > (this.currentMusic.length - bufferLength)){ Lib.trace("within buffer"); _local2 = this.channel; this.stop(); _local3 = (musicList[this.pos].length - _local2.position); _local4 = (MusicPlayer.bufferLength - _local3); this.advance(_local4); }; }; } public function changeMusic(_arg1:int, _arg2:Boolean):void{ this.pos = _arg1; if (_arg2){ this.advance(); }; } protected function complete(_arg1:Event):void{ this.advance(); } public function setVolume(_arg1:Number):void{ if (this.channel != null){ this.transform.volume = _arg1; this.channel.soundTransform = this.transform; }; } public static function randomWave():int{ return ((Lib.rand(3) + WAVE_1)); } } }//package ui
Section 204
//QuietMusic (ui.QuietMusic) package ui { import flash.net.*; import flash.media.*; import flash.*; public class QuietMusic extends Sound { public function QuietMusic(_arg1:URLRequest=null, _arg2:SoundLoaderContext=null):void{ if (!Boot.skip_constructor){ super(_arg1, _arg2); }; } } }//package ui
Section 205
//ResourceBar (ui.ResourceBar) package ui { import flash.display.*; import flash.events.*; import flash.text.*; import flash.geom.*; import flash.*; public class ResourceBar { protected var allowedWidth:int; protected var clip:DisplayObjectContainer; protected var bar:Bitmap; protected var payload:Resource; protected var hoverAction:Function; protected var survivorImages:Array; protected var clickAction:Function; protected var truckLoad:int; protected var baseY:int; protected var text:TextField; protected var sourceRect:Rectangle; protected var survivorOffset:int; protected var middle:int; protected static var groupSize:int = (Option.truckLoad * 5); protected static var resourceRow:Array = [0, 2, 4, 0]; protected static var INCOMING:int = 2; protected static var STUFF:int = 1; protected static var iconWidth:int = 24; protected static var BACKGROUND:int = 0; protected static var evenOut:int = 1; protected static var margin:int = 35; protected static var backgroundColor:Array = [0xFF, 0xFF, 0xFF]; protected static var incomingColor:Array = [0, 119, 0]; public function ResourceBar(_arg1:DisplayObjectContainer=null, _arg2:Resource=null, _arg3:int=0, _arg4:int=0, _arg5:int=0, _arg6:Function=null, _arg7:Function=null, _arg8:LayoutGame=null):void{ var _local9:BitmapData; var _local10:TextFormat; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:String; super(); if (!Boot.skip_constructor){ this.payload = _arg2; this.clickAction = _arg6; this.hoverAction = _arg7; this.clip = new Sprite(); _arg1.addChild(this.clip); this.clip.x = _arg3; this.clip.y = _arg4; this.clip.visible = false; this.clip.addEventListener(MouseEvent.CLICK, this.release); this.clip.addEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.clip.addEventListener(MouseEvent.MOUSE_MOVE, this.rollOver); this.clip.addEventListener(MouseEvent.ROLL_OUT, this.rollOut); _local9 = new BitmapData(_arg5, Option.cellPixels, true, 0xFFFFFF); this.bar = new Bitmap(_local9); this.clip.addChild(this.bar); this.bar.visible = true; this.bar.x = 0; this.bar.y = 0; this.bar.width = _arg5; this.bar.height = Option.cellPixels; this.text = Util.createTextField(this.clip, new Point(0, 0), new Point(_arg5, Option.cellPixels)); this.text.visible = true; this.text.border = false; this.text.background = false; _local10 = Util.createTextFormat(); _local10.align = TextFormatAlign.RIGHT; _local10.size = FontSize.resourceBar; _local10.color = Color.resourceBarText; this.text.defaultTextFormat = _local10; this.survivorImages = null; if (this.payload == Resource.SURVIVORS){ this.survivorImages = []; _local12 = 0; _local13 = Animation.carryAmmo.getTypeCount(); while (_local12 < _local13) { var _temp1 = _local12; _local12 = (_local12 + 1); _local14 = _temp1; _local15 = Sprite.getSurvivorLinkage(Resource.SURVIVORS, _local14); this.survivorImages[_local14] = new CenteredImage(this.clip, _local15); this.survivorImages[_local14].detach(); this.survivorImages[_local14].setCenter(new Point(0, 0)); }; }; _local11 = Lib.resourceToIndex(this.payload); this.baseY = (resourceRow[_local11] * Option.cellPixels); this.sourceRect = new Rectangle(0, 0, Option.cellPixels, Option.cellPixels); this.truckLoad = Lib.truckLoad(this.payload); this.allowedWidth = _arg5; this.middle = Math.floor((this.allowedWidth / 2)); }; } public function hide():void{ this.clip.visible = false; } protected function draw(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:Boolean):void{ var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:int; var _local16:int; var _local17:int; var _local18:Point; var _local19:Tower; var _local20:int; var _local21:Array; this.sourceRect.x = Lib.cellToPixel(_arg4); _local9 = (Option.cellPixels - 8); _local10 = (Math.floor(((_arg2 / this.truckLoad) * _local9)) + 4); _local11 = (Math.floor(((_arg3 / this.truckLoad) * _local9)) + 4); this.sourceRect.y = (this.baseY + (Option.cellPixels - _local11)); if (_arg8){ this.sourceRect.y = (this.sourceRect.y + Option.cellPixels); }; _local12 = (_arg5 - 1); _local13 = _arg1; if (this.payload == Resource.SURVIVORS){ _local12 = (Math.ceil((_arg5 / 2)) - 1); _local13 = Math.floor((_arg1 / 2)); }; if (_local12 == 0){ _local12 = 1; _local13 = 0; }; _local14 = (Math.floor((((_arg7 - iconWidth) / _local12) * _local13)) + _arg6); if (_local14 > (Lib.cellToPixel(_local13) + _arg6)){ _local14 = (Lib.cellToPixel(_local13) + _arg6); }; this.sourceRect.height = (_local11 - _local10); if ((((this.payload == Resource.SURVIVORS)) && (((_arg3 - _arg2) > 0)))){ _local15 = Math.floor((Option.cellPixels / 2)); _local16 = Math.floor((Option.cellPixels / 4)); if ((_arg1 % 2) == 1){ _local16 = (_local16 * 3); }; _local17 = (this.survivorOffset + _arg1); _local18 = Game.select.getSelected(); _local19 = Game.map.getCell(_local18.x, _local18.y).getTower(); _local20 = _local19.getSurvivorType(_local17); _local21 = null; if (_arg4 == BACKGROUND){ _local21 = backgroundColor; } else { if (_arg4 == INCOMING){ _local21 = incomingColor; }; }; Workaround.drawOverPixels(this.bar, this.survivorImages[_local20].getImage(), (_local14 + _local15), _local16, _local21); } else { Workaround.copyOverPixels(this.bar, Game.view.barSource, this.sourceRect, _local14, (Option.cellPixels - _local11)); }; } protected function release(_arg1:MouseEvent):void{ var _local2:Point; var _local3:Boolean; _local2 = new Point(Math.floor(_arg1.stageX), Math.floor(_arg1.stageY)); _local3 = (_arg1.localX >= this.middle); this.clickAction(this.payload, _local3); } public function move(_arg1:int, _arg2:int):void{ this.clip.x = _arg1; this.clip.y = _arg2; } protected function drawHalf(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int):void{ var _local7:int; var _local8:int; var _local9:int; var _local10:int; _local7 = ((_arg3 - _arg4) - _arg5); _local8 = 0; _local9 = _arg4; if (this.payload != Resource.SURVIVORS){ _local10 = Math.floor((_arg4 / groupSize)); this.drawGroup(_local10, STUFF, _arg2, _arg1, _arg6); _local8 = (_local10 * this.truckLoad); _local9 = (_arg4 - (_local10 * groupSize)); if ((((_local10 > 0)) && ((_local9 > 0)))){ _local8 = (_local8 + this.truckLoad); _arg2 = (_arg2 + 1); }; }; this.drawRegion(_local8, _local9, STUFF, _arg2, _arg1, _arg6); _local8 = (_local8 + _arg4); this.drawRegion(_local8, _arg5, INCOMING, _arg2, _arg1, _arg6); _local8 = (_local8 + _arg5); this.drawRegion(_local8, _local7, BACKGROUND, _arg2, _arg1, _arg6); _local8 = (_local8 + _local7); } protected function drawRegion(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int):void{ var _local7:int; var _local8:int; var _local9:int; _local7 = Math.floor((_arg1 / this.truckLoad)); _local8 = (_arg1 % this.truckLoad); _local9 = _arg2; while ((_local9 + _local8) >= this.truckLoad) { this.draw(_local7, _local8, this.truckLoad, _arg3, _arg4, _arg5, _arg6, false); _local9 = ((_local9 - this.truckLoad) + _local8); _local7++; _local8 = 0; }; this.draw(_local7, _local8, (_local9 + _local8), _arg3, _arg4, _arg5, _arg6, false); } protected function drawGroup(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int):void{ var _local6:int; var _local7:int; _local6 = 0; while (_local6 < _arg1) { var _temp1 = _local6; _local6 = (_local6 + 1); _local7 = _temp1; this.draw(_local7, 0, this.truckLoad, _arg2, _arg3, _arg4, _arg5, true); }; } public function getPayload():Resource{ return (this.payload); } public function cleanup():void{ var _local1:int; var _local2:Array; var _local3:CenteredImage; if (this.survivorImages != null){ _local1 = 0; _local2 = this.survivorImages; while (_local1 < _local2.length) { _local3 = _local2[_local1]; _local1++; _local3.cleanup(); }; this.survivorImages = null; }; this.text.parent.removeChild(this.text); this.text = null; this.bar.parent.removeChild(this.bar); this.bar.bitmapData.dispose(); this.bar = null; this.clip.removeEventListener(MouseEvent.CLICK, this.release); this.clip.removeEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.clip.removeEventListener(MouseEvent.MOUSE_MOVE, this.rollOver); this.clip.removeEventListener(MouseEvent.ROLL_OUT, this.rollOut); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function rollOut(_arg1:MouseEvent):void{ } protected function rollOver(_arg1:MouseEvent):void{ var _local2:Boolean; _local2 = (_arg1.localX >= this.middle); Game.view.toolTip.show(this.hoverAction(this.payload, _local2)); } public function show(_arg1:int, _arg2:int, _arg3:int, _arg4:int):void{ var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; this.middle = calculateMiddle(_arg1, _arg2, _arg3, this.payload, this.allowedWidth); this.clip.visible = true; this.bar.bitmapData.fillRect(new Rectangle(0, 0, this.allowedWidth, Option.cellPixels), Color.resourceBarBorder); this.bar.bitmapData.fillRect(new Rectangle(1, 1, this.middle, (Option.cellPixels - 2)), Color.resourceBarQuota); this.bar.bitmapData.fillRect(new Rectangle(this.middle, 1, (this.allowedWidth - 2), (Option.cellPixels - 2)), Color.resourceBarOverflow); if (_arg4 > 0){ this.text.htmlText = ((Lib.resourceToString(this.payload) + " left: ") + Std.string(_arg4)); } else { if ((((((((_arg1 == 0)) && ((_arg2 == 0)))) && ((_arg3 == 0)))) && ((_arg4 == 0)))){ this.text.htmlText = Lib.resourceToString(this.payload); } else { this.text.htmlText = ""; }; }; this.text.y = ((Option.cellPixels - this.text.textHeight) / 2); _local5 = (Math.ceil((_arg3 / this.truckLoad)) + 1); _local6 = Math.floor(Math.min(_arg3, _arg1)); if (this.payload != Resource.SURVIVORS){ _local5 = (_local5 - (4 * Math.floor((_local6 / groupSize)))); }; _local7 = Math.floor(Math.min((_arg3 - _local6), _arg2)); this.survivorOffset = 0; this.drawHalf(0, _local5, _arg3, _local6, _local7, this.middle); if ((_arg1 + _arg2) > _arg3){ _local8 = ((_arg1 + _arg2) - _arg3); _local9 = (Math.ceil((_local8 / this.truckLoad)) + 1); _local10 = (this.allowedWidth - this.middle); this.survivorOffset = Math.floor((_arg3 / this.truckLoad)); if (_arg1 >= _arg3){ if (this.payload != Resource.SURVIVORS){ _local9 = (_local9 - (4 * Math.floor(((_arg1 - _arg3) / groupSize)))); }; this.drawHalf(this.middle, _local9, _local8, (_arg1 - _arg3), _arg2, _local10); } else { this.drawHalf(this.middle, _local9, _local8, 0, _local8, _local10); }; }; } public static function calculateMiddle(_arg1:int, _arg2:int, _arg3:int, _arg4:Resource, _arg5:int):int{ var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; _local6 = Lib.truckLoad(_arg4); _local7 = Math.ceil((_arg3 / _local6)); _local8 = Math.ceil(((_arg1 + _arg2) / _local6)); _local9 = (Math.floor(Math.max(_local8, _local7)) + (ResourceBar.evenOut * 2)); _local10 = Math.floor((_arg5 * ((_local7 + evenOut) / _local9))); _local11 = ((_local7 + 1) * margin); _local10 = Math.floor(Math.min(_local10, _local11)); _local10 = Math.floor(Math.max(_local10, margin)); _local10 = Math.floor(Math.min(_local10, (_arg5 - margin))); return (_local10); } } }//package ui
Section 206
//ScriptView (ui.ScriptView) package ui { import flash.display.*; import flash.events.*; import logic.*; import flash.text.*; import flash.*; public class ScriptView { protected var clip:TutorialClip; protected var state:ScriptState; protected var buttons:ButtonList; protected var clickNext:Function; protected var clickSkip:Function; protected static var borderThickness:int = 2; public function ScriptView(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ if (!Boot.skip_constructor){ this.state = null; this.clickNext = null; this.clickSkip = null; this.clip = new TutorialClip(); _arg1.addChild(this.clip); this.clip.mouseEnabled = false; this.clip.back.mouseEnabled = false; this.clip.back.mouseChildren = false; this.buttons = new ButtonList(this.click, null, [this.clip.next]); this.clip.next.mouseEnabled = true; this.clip.next.mouseChildren = false; this.clip.text.wordWrap = true; this.clip.text.autoSize = TextFieldAutoSize.LEFT; this.clip.text.addEventListener(TextEvent.LINK, this.link); this.clip.arrow.mouseEnabled = false; this.clip.arrow.mouseChildren = false; this.clip.arrow.visible = false; this.resize(_arg2); }; } protected function click(_arg1:int):void{ if (_arg1 == 0){ this.clickNext(); } else { this.clickSkip(); }; } public function update(_arg1:Array):void{ var _local2:ScriptState; var _local3:int; var _local4:ScriptState; _local2 = null; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _arg1[_local3]; _local3++; if (((_local4.shouldShowText()) || (_local4.shouldShowArrow()))){ _local2 = _local4; break; }; }; if (this.state != _local2){ this.state = _local2; this.redraw(); }; } protected function showArrow(_arg1:Point):void{ var _local2:Number; var _local3:Number; var _local4:int; this.clip.arrow.visible = true; this.clip.arrow.x = _arg1.x; this.clip.arrow.y = _arg1.y; _local2 = (_arg1.x - (this.clip.text.x + (this.clip.text.width / 2))); _local3 = (_arg1.y - (this.clip.text.y + (this.clip.text.height / 2))); _local4 = Lib.slopeToAngle(_local2, _local3); this.clip.arrow.rotation = (180 + _local4); this.clip.arrow.tail.width = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); } protected function link(_arg1:TextEvent):void{ Util.success(); Game.view.centerMenu.lookup(_arg1.text); } protected function hideText():void{ this.clip.text.visible = false; this.clip.next.visible = false; this.clip.back.visible = false; } public function cleanup():void{ this.buttons.cleanup(); this.clip.text.removeEventListener(TextEvent.LINK, this.link); this.clip.parent.removeChild(this.clip); this.clip = null; } protected function hideArrow():void{ this.clip.arrow.visible = false; } protected function setText():void{ var _local1:int; var _local2:int; var _local3:Point; this.clip.text.visible = true; this.clip.back.visible = true; this.clip.text.text = this.state.getText(); _local1 = Math.floor(this.clip.text.width); _local2 = Math.floor(this.clip.text.height); if (this.state.shouldShowNext()){ this.clip.next.visible = true; this.clip.next.x = (this.clip.text.x + 15); this.clip.next.y = ((this.clip.text.y + _local2) + 10); _local2 = (_local2 + (5 + Math.floor(this.clip.next.height))); } else { this.clip.next.visible = false; }; _local3 = new Point((_local1 + 10), (_local2 + 15)); this.clip.back.graphics.clear(); this.clip.back.graphics.lineStyle(); this.clip.back.graphics.beginFill(Color.tutorialBackground, Color.tutorialAlpha); this.clip.back.graphics.drawRoundRect(0, 0, _local3.x, _local3.y, 10, 10); this.clip.back.graphics.endFill(); } protected function updateGuide(_arg1:Point, _arg2:Boolean):void{ var _local3:Point; var _local4:Point; var _local5:Array; var _local6:Direction; var _local7:int; if (_arg2){ _local3 = Game.view.layout.screenSize; _local4 = new Point(Math.floor((_local3.x / 2)), Math.floor((_local3.y / 2))); _local5 = [new Point(_local4.x, 0), new Point(_local4.x, _local3.y), new Point(_local3.x, _local4.y), new Point(0, _local4.y)]; _local6 = Game.view.window.getDir(_arg1); if (_local6 == null){ _arg1 = Game.view.window.toRelative(_arg1.x, _arg1.y).toPixel(); _arg1.x = (_arg1.x + Option.halfCell); _arg1.y = (_arg1.y + Option.halfCell); } else { _local7 = Lib.directionToIndex(_local6); _arg1 = _local5[_local7]; }; }; this.showArrow(_arg1); } public function resize(_arg1:LayoutGame):void{ this.clip.back.x = _arg1.tutorialBoxOffset.x; this.clip.back.y = _arg1.tutorialBoxOffset.y; this.clip.text.x = _arg1.tutorialTextOffset.x; this.clip.text.y = _arg1.tutorialTextOffset.y; this.clip.text.width = _arg1.tutorialSize.x; this.redraw(); } public function redraw():void{ if (this.state == null){ this.clip.visible = false; this.hideArrow(); } else { this.clip.visible = true; if (this.state.shouldShowText()){ this.setText(); } else { this.hideText(); }; if (this.state.shouldShowArrow()){ this.updateGuide(this.state.getPos(), this.state.isMapPos()); } else { this.hideArrow(); }; }; } public function setButtons(_arg1:Function, _arg2:Function):void{ this.clickNext = _arg1; this.clickSkip = _arg2; } } }//package ui
Section 207
//ScrollArrowClip (ui.ScrollArrowClip) package ui { import flash.display.*; public dynamic class ScrollArrowClip extends MovieClip { } }//package ui
Section 208
//ScrollingText (ui.ScrollingText) package ui { import flash.display.*; import flash.events.*; import flash.*; public class ScrollingText { protected var parent:DisplayObjectContainer; protected var height:int; protected var starts:Array; protected var clips:Array; protected var offset:Number; protected static var delta:Number = 1; protected static var skipDelta:Number = 100; public function ScrollingText(_arg1:DisplayObjectContainer=null, _arg2:Array=null, _arg3:Array=null, _arg4:Point=null):void{ if (!Boot.skip_constructor){ this.parent = _arg1; this.clips = _arg2; this.starts = _arg3; this.height = _arg4.y; this.reset(); }; } public function cleanup():void{ this.end(); } public function update():void{ var _local1:int; var _local2:int; var _local3:int; _local1 = 0; _local2 = this.clips.length; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; this.clips[_local3].y = ((this.height + this.starts[_local3]) + this.offset); }; } protected function reset():void{ this.offset = 0; this.update(); } public function begin():void{ this.parent.addEventListener(Event.ENTER_FRAME, this.enterFrame); this.reset(); } public function resize(_arg1:Point):void{ this.height = _arg1.y; this.update(); } protected function enterFrame(_arg1:Event):void{ this.offset = (this.offset - delta); this.update(); } public function end():void{ this.parent.removeEventListener(Event.ENTER_FRAME, this.enterFrame); } public function skip():void{ this.offset = (this.offset - skipDelta); this.update(); } } }//package ui
Section 209
//SniperSprite (ui.SniperSprite) package ui { import flash.*; public class SniperSprite { protected var headAngle:int; protected var idle:ImageStack; protected var bodyAngle:int; protected var idleHead:VirtualImage; protected var type:int; protected var shooter:Sprite; protected var idleBody:VirtualImage; public function SniperSprite(_arg1:Point=null, _arg2:int=0):void{ var _local3:Point; super(); if (!Boot.skip_constructor){ if (_arg1 != null){ _local3 = _arg1.toPixel(); this.type = _arg2; this.shooter = new Sprite(_local3, 0, this.type, Animation.fireShotgun); this.idle = new ImageStack(); this.idle.setPixel(_local3); this.idleHead = new VirtualImage(SpriteDisplay.SNIPER_LAYER, new Point(0, 0), Animation.headLinkage[this.type]); this.idleHead.setScale(Animation.sniperScale); this.idle.addImage(this.idleHead); this.idleBody = new VirtualImage(SpriteDisplay.BODY_LAYER, new Point(0, 0), Animation.bodyLinkage[this.type]); this.idleBody.setScale(Animation.sniperScale); this.idle.addImage(this.idleBody); this.shooter.hide(); this.idle.show(); }; }; } public function cleanup():void{ this.shooter.cleanup(); this.shooter = null; this.idle.cleanup(); this.idle = null; this.idleHead = null; this.idleBody = null; } public function startShooting():void{ this.idle.hide(); this.shooter.setRotationOffset(this.bodyAngle); this.shooter.show(); this.shooter.resetWait(); } public function shootStep(_arg1:int):int{ return (this.shooter.step(_arg1)); } public function stopShooting():void{ this.idle.show(); this.shooter.hide(); } public function rotateStep(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local3 = 0; _local4 = _arg1; if (_local4 > 0){ _local5 = Option.sniperHeadRotate; _local3 = (_local3 + Util.homeInCount(_local4, _local5, this.headAngle, _arg2)); this.headAngle = Util.homeIn(_local4, _local5, this.headAngle, _arg2); this.idleHead.setRotationOffset(this.headAngle); }; if (_local4 > 0){ _local6 = Option.sniperBodyRotate; if (Util.angleDistance(this.headAngle, this.bodyAngle) >= 40){ _local3 = 0; }; _local4 = (_arg1 - _local3); _local3 = (_local3 + Util.homeInCount(_local4, _local6, this.bodyAngle, _arg2)); this.bodyAngle = Util.homeIn(_local4, _local6, this.bodyAngle, _arg2); this.idleBody.setRotationOffset(this.bodyAngle); }; this.idle.update(); return (_local3); } public function save(){ return ({type:this.type, shooter:Save.maybe(this.shooter, Sprite.saveS), idle:this.idle.save(), idleHead:this.idleHead.save(), idleBody:this.idleBody.save(), headAngle:this.headAngle, bodyAngle:this.bodyAngle}); } public static function load(_arg1):SniperSprite{ var _local2:SniperSprite; _local2 = new SniperSprite(null, 0); _local2.type = _arg1.type; _local2.shooter = Load.maybe(_arg1.shooter, Sprite.load); _local2.idle = ImageStack.load(_arg1.idle); _local2.idleHead = VirtualImage.load(_arg1.idleHead); _local2.idleBody = VirtualImage.load(_arg1.idleBody); _local2.idle.addImage(_local2.idleHead); _local2.idle.addImage(_local2.idleBody); _local2.headAngle = _arg1.headAngle; _local2.bodyAngle = _arg1.bodyAngle; return (_local2); } public static function saveS(_arg1:SniperSprite){ return (_arg1.save()); } } }//package ui
Section 210
//SpawnDisplay (ui.SpawnDisplay) package ui { import flash.display.*; import flash.events.*; import logic.*; import flash.*; public class SpawnDisplay { protected var timer:TimerClip; protected var oldCount:int; public function SpawnDisplay(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ if (!Boot.skip_constructor){ this.oldCount = 0; this.timer = new TimerClip(); _arg1.addChild(this.timer); if (Game.settings.isEditor()){ this.timer.visible = false; }; this.timer.mouseChildren = false; this.timer.addEventListener(MouseEvent.CLICK, this.click); this.timer.addEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.timer.addEventListener(MouseEvent.ROLL_OUT, this.rollOut); this.timer.addEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.resize(_arg2); this.setPlay(); }; } public function cleanup():void{ this.timer.removeEventListener(MouseEvent.CLICK, this.click); this.timer.removeEventListener(MouseEvent.ROLL_OVER, this.rollOver); this.timer.removeEventListener(MouseEvent.ROLL_OUT, this.rollOut); this.timer.removeEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.timer.parent.removeChild(this.timer); this.timer = null; } public function showAnnounce():void{ } protected function click(_arg1:MouseEvent):void{ Game.pause.toggle(); this.updateTip(_arg1.localX, _arg1.localY); } public function update():void{ var _local1:int; var _local2:int; var _local3:int; _local1 = Game.spawner.getWaveCount(); if (((!((Game.settings.getEasterEgg() == GameSettings.FIDDLERSGREEN))) && ((((_local1 > 0)) || (!(Game.spawner.getIsCounting())))))){ this.timer.minutes.visible = false; this.timer.tens.visible = false; this.timer.seconds.visible = false; } else { this.timer.minutes.visible = true; this.timer.tens.visible = true; this.timer.seconds.visible = true; _local2 = Game.spawner.getFramesLeft(); _local3 = Math.floor((_local2 / Option.fps)); if ((((_local3 <= 10)) && (!((_local3 == this.oldCount))))){ Main.sound.play(SoundPlayer.TIMER_PIP); }; this.oldCount = _local3; if (Game.settings.getEasterEgg() != GameSettings.FIDDLERSGREEN){ this.outputTime(_local2); } else { this.outputTime(Math.floor((Game.settings.getPlayTime() / 60))); }; }; } public function step():void{ this.update(); } protected function outputTime(_arg1:int):void{ var _local2:Time; _local2 = new Time(_arg1); if ((_local2.minutes + 1) != this.timer.minutes.currentFrame){ this.timer.minutes.gotoAndStop((_local2.minutes + 1)); }; if ((_local2.tens + 1) != this.timer.tens.currentFrame){ this.timer.tens.gotoAndStop((_local2.tens + 1)); }; if ((_local2.seconds + 1) != this.timer.seconds.currentFrame){ this.timer.seconds.gotoAndStop((_local2.seconds + 1)); }; } protected function rollOver(_arg1:MouseEvent):void{ this.updateTip(_arg1.localX, _arg1.localY); } protected function updateTip(_arg1:Number, _arg2:Number):void{ if (_arg1 < 115){ Game.view.toolTip.show(Text.countDownTip); } else { if (Game.pause.isPaused()){ Game.view.toolTip.show(Text.unpauseTip); } else { Game.view.toolTip.show(Text.pauseTip); }; }; } public function resize(_arg1:LayoutGame):void{ this.timer.x = _arg1.countDownOffset.x; this.timer.y = _arg1.countDownOffset.y; this.timer.width = _arg1.countDownSize.x; this.timer.height = _arg1.countDownSize.y; } protected function mouseMove(_arg1:MouseEvent):void{ this.updateTip(_arg1.localX, _arg1.localY); } protected function rollOut(_arg1:MouseEvent):void{ Game.view.toolTip.hide(); } public function setPause():void{ this.timer.isPause.visible = true; this.timer.isPlay.visible = false; } public function setPlay():void{ this.timer.isPause.visible = false; this.timer.isPlay.visible = true; } } }//package ui
Section 211
//Sprite (ui.Sprite) package ui { import mapgen.*; import flash.filters.*; import flash.*; public class Sprite { protected var stack:ImageStack; protected var offset:Point; protected var currentFrame:int; protected var toWait:int; protected var anim:Animation; protected var toMove:int; protected var image:VirtualImage; protected var type:int; protected var maxWait:int; public function Sprite(_arg1:Point=null, _arg2:int=0, _arg3:int=0, _arg4:Animation=null):void{ if (!Boot.skip_constructor){ this.anim = _arg4; this.type = _arg3; if (_arg1 != null){ this.maxWait = 0; this.toWait = 0; this.toMove = 0; this.stack = new ImageStack(); this.image = new VirtualImage(this.anim.getLayer(), new Point(0, 0), this.anim.getLinkage(this.type)); this.image.setScale(this.anim.getScale()); this.image.setFrame(1); this.updateGlowFilter(); this.stack.addImage(this.image); this.stack.rotate(_arg2); this.offset = new Point(0, 0); this.setOffset(); if (this.anim.shouldRotate()){ this.stack.allowRotation(); } else { this.stack.forbidRotation(); }; if (_arg1 != null){ this.stack.setPixel(_arg1.plus(this.offset)); }; this.resetWait(); }; }; } public function hide():void{ this.stack.hide(); } public function save(){ return ({animNumber:this.anim.getNumber(), type:this.type, stack:this.stack.save(), image:this.image.save(), offset:this.offset.save(), currentFrame:this.currentFrame, maxWait:this.maxWait, toWait:this.toWait, toMove:this.toMove}); } public function update():void{ this.stack.update(); } public function dance(_arg1:Boolean):void{ var _local2:int; _local2 = (Option.danceMoves.length - 1); if (!_arg1){ _local2 = -(_local2); }; this.stack.startDance(_local2); } public function step(_arg1:int):int{ var _local2:int; _local2 = 0; if (((this.anim.shouldFace()) || (this.stack.isDancing()))){ _local2 = (_local2 + this.stack.faceEnemy((_arg1 - _local2))); }; if (_arg1 > _local2){ _local2 = (_local2 + this.move((_arg1 - _local2))); }; if (_local2 > 0){ this.stack.update(); }; return (_local2); } protected function updateGlowFilter():void{ if ((((((((this.anim == Animation.zombieDeath)) || ((this.anim == Animation.zombieShamble)))) || ((this.anim == Animation.attackTower)))) || ((this.anim == Animation.attackSurvivor)))){ this.image.setGlowFilter(new GlowFilter(0xFF0000, 1, 8, 8, 1)); }; } public function move(_arg1:int):int{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local2 = this.anim.getFrameCount(); _local3 = this.currentFrame; while ((((_arg1 > (this.toMove + this.toWait))) && (((!(this.anim.shouldWait())) || ((this.maxWait > 0)))))) { this.toWait = (this.toWait + this.anim.getWait(_local3)); this.maxWait = (this.maxWait - this.anim.getWait(_local3)); this.toMove = (this.toMove + this.anim.getMove(_local3)); _local3 = ((_local3 + 1) % _local2); }; _local4 = Math.floor(Math.min(this.toWait, _arg1)); this.toWait = (this.toWait - _local4); _local5 = 0; if (((!(this.anim.shouldWait())) && ((_local4 < _arg1)))){ _local5 = this.stack.step((_arg1 - _local4)); this.toMove = (this.toMove - _local5); }; if (_local3 != this.currentFrame){ _local6 = _local3; if (_local6 == 0){ _local6 = this.anim.getFrameCount(); }; if (((this.anim.shouldReverse()) && ((_local6 > Math.floor((_local2 / 2)))))){ _local6 = ((_local2 - _local6) + 1); }; this.image.setFrame(_local6); }; this.currentFrame = _local3; return ((_local4 + _local5)); } public function setPos(_arg1:Point):void{ this.stack.setPixel(_arg1.plus(this.offset)); } protected function setOffset():void{ if (this.anim.shouldOffset()){ this.offset.x = (Util.rand(7) - 3); this.offset.y = (Util.rand(7) - 3); }; } public function setAlpha(_arg1:Number):void{ this.image.setAlpha(_arg1); } public function getPos():Point{ return (this.stack.getPos().minus(this.offset)); } public function cleanup():void{ this.stack.cleanup(); } public function resetWait():void{ if (this.anim.shouldWait()){ this.maxWait = this.anim.getMoveCount(); this.toWait = 0; this.toMove = 0; this.currentFrame = 0; this.image.setFrame(1); this.stack.update(); } else { this.maxWait = 0; }; } public function travelSimple(_arg1:Point, _arg2:Point=null):void{ var _local3:Point; var _local4:Point; _local3 = _arg1.plus(this.offset); _local4 = _arg2; if (_local4 != null){ _local4.plusEquals(this.offset); }; this.stack.travel(this.anim.getMoveCount(), _local3, _local4); } public function setFrame(_arg1:int):void{ this.currentFrame = _arg1; this.image.setFrame(_arg1); } public function setRotationOffset(_arg1:int):void{ this.image.setRotationOffset(_arg1); } public function changeAnimation(_arg1:Animation):void{ var _local2:Animation; if (this.anim != _arg1){ _local2 = this.anim; this.anim = _arg1; if (!_local2.shouldOffset()){ this.setOffset(); }; this.currentFrame = 0; if (this.anim.shouldRotate()){ this.stack.allowRotation(); } else { this.stack.forbidRotation(); }; this.resetWait(); this.image.changeLinkage(this.anim.getLinkage(this.type)); }; } public function travelCurve(_arg1:Point, _arg2:Point, _arg3:Point):Boolean{ var _local4:Point; var _local5:Point; var _local6:Point; var _local7:Boolean; var _local8:Point; _local4 = _arg1.plus(this.offset); _local5 = _arg2.plus(this.offset); _local6 = _arg3; if (_local6 != null){ _local6.plusEquals(this.offset); }; _local7 = true; _local8 = this.averagePos(_local4, _local5); if (_local6 == null){ this.stack.travel(Math.floor((this.anim.getMoveCount() / 2)), _local5); } else { if (Point.isEqual(this.stack.getPixel(), _local8)){ this.stack.travel(this.anim.getMoveCount(), this.averagePos(_local5, _local6), _local5); } else { if (Point.isEqual(this.stack.getPixel(), _local4)){ this.stack.travel(Math.floor((this.anim.getMoveCount() / 2)), _local8, _local4); _local7 = false; } else { this.stack.travel(this.anim.getMoveCount(), _local8, _local4); _local7 = false; }; }; }; return (_local7); } protected function averagePos(_arg1:Point, _arg2:Point):Point{ return (new Point(Math.floor(((_arg1.x + _arg2.x) / 2)), Math.floor(((_arg1.y + _arg2.y) / 2)))); } public function getRotation():int{ return (this.image.getRotation()); } public function show():void{ this.stack.show(); } public static function getSurvivorLinkage(_arg1:Resource, _arg2:int):String{ return (Animation.carry(_arg1).getLinkage(_arg2)); } public static function load(_arg1):Sprite{ var _local2:Sprite; _local2 = new Sprite(null, 0, _arg1.type, Animation.animations[_arg1.animNumber]); _local2.stack = ImageStack.load(_arg1.stack); _local2.image = VirtualImage.load(_arg1.image); _local2.stack.addImage(_local2.image); _local2.offset = Point.load(_arg1.offset); _local2.currentFrame = _arg1.currentFrame; _local2.maxWait = _arg1.maxWait; _local2.toWait = _arg1.toWait; _local2.toMove = _arg1.toMove; return (_local2); } public static function saveS(_arg1:Sprite){ return (_arg1.save()); } } }//package ui
Section 212
//Text (ui.Text) package ui { public class Text { public static var hoverBarricadeNoBoardsTip:String = (((((("<p>" + "<span class=\"title\">") + "Barricade is Vulnerable ") + "</span>\n") + "There are no boards left in this barricade. The next hit will ") + "destroy it unless it is resupplied first. ") + "</p>"); public static var upgradeDepotTip:String = (((((("<p>" + "<span class=\"title\">") + "<span class=\"hotkey\">U</span>pgrade (30 Boards)") + "</span>\n") + "Increase the speed of this depot. The survivors at upgraded depots move 50% faster ") + "than normal survivors. ") + "</p>"); public static var boardsLeftTip:String = ((("<p>" + "<span class=\"title\">Survivors Left</span>\n") + "How many boards will be recovered before the tower is closed. ") + "</p>"); public static var sniperSurvivorsIncreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Increase Survivor Quota ") + "</span>\n") + "More survivors will make this sniper tower more accurate. ") + "</p>"); public static var upgradeInProgressTip:String = ((((("<p>" + "<span class=\"title\">") + "Upgrade In Progress ") + "</span>\n") + "The materials necessary to upgrade this structure are on the way. ") + "</p> "); public static var mainIntroText:String = ((((((((((((((((((((((("No one knows how it happened. Soon, there'll be no one left to " + "care. But the simple truth is that overnight a globe full of civilized ") + "people festered, and changed, and became something less than ") + "civilized. Less than human. And if you weren't the smartest, or the ") + "fastest, or the best-armed on your block, well... you're one of them ") + "now.\n\n") + "Auriga Squad was the best, and you were its leader. Your final ") + "orders before static filled the airwaves for good were ") + "simple. Parachute onto the island. Secure the city. Blow the ") + "bridges. And set up a secure command post surrounded by water, a safe ") + "haven from the roving, hungry packs.\n\n") + "But it didn't work out that way. There were so many of them, ") + "lurching through the streets, feeding in dark alleyways. Sure, it only ") + "took one shot to drop them, but it only took one bite to drop you. And ") + "those bites went through flak suits, through Kevlar, through ") + "bone...\n\n") + "Now everyone is dead. Except you and the handful of civilians ") + "you've rounded up, scared, defiant, looking for a leader. The ") + "explosives sit useless where the airdrop left them, ready to drop the ") + "bridges-- if only someone could reach them.\n\n") + "What the hell. Maybe there's still a chance. There'll be time to ") + "mourn later, but for now, you'd better get these people moving. ") + "Something tells you this quiet won't last.\n\n") + "The clock is ticking. "); public static var buildingHouseText:String = "House "; public static var spendFoodTip:String = ((((((("<p>" + "<span class=\"title\">") + "Begin spending <span class=\"hotkey\">F</span>ood") + "</span>\n") + "This depot is currently sending out slower survivors to conserve ") + "food. You can click here to begin spending food to double the speed ") + "of survivors. ") + "</p>"); public static var hoverFeatureTip:String = (((((("<p>" + "<span class=\"title\">") + "Special Feature ") + "</span>\n") + "There is a special feature here. You can build a workshop here to ") + "begin activate it. ") + "</p>"); public static var tutorialStyleSheet:String = ((((((((((((("p { " + "font-size: 12; ") + "color: #ffffff ") + "} ") + ".title { ") + "font-size: 14; ") + "font-weight: bold; ") + "color: #ffff00 ") + "} ") + "a { ") + "font-size: 12; ") + "text-decoration: underline; ") + "color: #ffaaaa ") + "} "); public static var sniperSurvivorsDecreaseTip:String = (((((("<p>" + "<span class=\"title\">") + "Decrease Survivor Quota ") + "</span>\n") + "Fewer survivors will make this sniper less accurate. This tower ") + "needs at least one survivor to shoot zombies. ") + "</p>"); public static var jumpToDepotTip:String = ((((("<p>" + "<span class=\"title\">") + "<span class=\"hotkey\">J</span>ump to Depot") + "</span>\n") + "Select the nearest depot and center it in the window. ") + "</p>"); public static var buildingMallText:String = "Mall "; public static var buildingPoliceStationText:String = "Police Station (Ammo) "; public static var showRangeTip:String = (((((("<p>" + "<span class=\"title\">") + "Show Range <span class=\"hotkey\">V</span>iew") + "</span>\n") + "Show global range view. The range of every sniper tower will be ") + "shown with a white overlay. ") + "</p>"); public static var pauseText:String = "Paused "; public static var backgroundBuildDynamiteTip:String = (((((((("<p>" + "<span class=\"title\">") + "Dynamite Here ") + "</span>\n") + "There is some dynamite here which blocks you from building a ") + "structure. You can build a workshop on the dynamite to place the charges ") + "and prevent more zombies from getting onto the island. You may press ") + "escape to cancel. ") + "</p>"); public static var editApartment:String = "Apartment Building "; public static var salvageProspectsHigh:String = "High "; public static var noBoardsWarning:String = "No Boards "; public static var editChurch:String = "Church "; public static var buildingHardwareStoreText:String = "Hardware Store (Boards) "; public static var towerWarning:String = "Structure Already There "; public static var unpauseTip:String = ((((("<p>" + "<span class=\"title\">") + "Resume Game <span class=\"hotkey\">[Space]</span>") + "</span>\n") + "Click to resume the game. ") + "</p>"); public static var waitBrowse:String = "Fetching Map List... "; public static var ammoLeftTip:String = ((("<p>" + "<span class=\"title\">Ammo Left</span>\n") + "How much ammo will be recovered before the tower is closed. ") + "</p>"); public static var survivorsQuotaTip:String = (((("<p>" + "<span class=\"title\">Survivor Quota</span>\n") + "How many survivors should stay here. Survivors transport resources, ") + "staff buildings, and increase accuracy at sniper towers. ") + "</p>"); public static var noAmmoWarning:String = "No Ammo "; public static var upgradeNoResourceTip:String = (((((("<p>" + "<span class=\"title\">") + "Not Enough Boards to Upgrade ") + "</span>\n") + "The suppliers to this structure do not have enough boards, or survivors ") + "to transport those boards. ") + "</p>"); public static var moveWindowWest:String = "<p>Move window West.</p>"; public static var rateMedium:String = "Medium "; public static var boardsQuotaTip:String = (((("<p>" + "<span class=\"title\">Board Quota</span>\n") + "How many boards you want to keep on hand here. You can use boards ") + "to build, upgrade, and repair structures. ") + "</p>"); public static var countDownTip:String = (((("<p>" + "<span class=\"title\">Countdown Timer</span>\n") + "The timer counts down till the next zombie horde invasion. You can ") + "also click here to pause the game. ") + "</p>"); public static var scrollBarLabel:String = "Scroll Speed "; public static var editPediaRootSecret:String = "map_editor "; public static var clickSniper:String = "<p>Click on your sniper tower to select it.</p>"; public static var survivorsInside:String = ("<span class=\"survivor\">Survivors Inside</span>" + "</p>"); public static var buildingDepotTip:String = (((((((("<p>" + "<span class=\"title\">") + "Place Depot ") + "</span>\n") + "Move the mouse to on an open square and click to build a depot ") + "there. It will take some time for a survivor to bring the ") + "construction materials to your planned building location. You may ") + "press escape to cancel. ") + "</p>"); public static var editDeepWater:String = "Deep Water "; public static var clickNext:String = "<p>Click Next to continue</p>"; public static var workshopSurvivorsIncreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Increase Survivor Quota ") + "</span>\n") + "More survivors will make this workshop faster. ") + "</p>"); public static var boardsLabel:String = "Boards "; public static var placeFeatureWarning:String = "Blocked by Dynamite "; public static var salvageProspectsLow:String = "Low "; public static var veteranText:String = "Veteran "; public static var sizeConstraint:String = "0-9 "; public static var ammoLabel:String = "Ammo "; public static var workshopSurvivorsDecreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Decrease Survivor Quota ") + "</span>\n") + "Fewer survivors will make this workshop slower. ") + "</p>"); public static var placeZombieWarning:String = "Blocked by Zombie "; public static var depotSurvivorsIncreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Increase Survivor Quota ") + "</span>\n") + "More survivors will be here ready to ferry supplies to nearby structures. ") + "</p>"); public static var pediaTip:String = ((("<p>" + "<span class=\"title\">Zombipedia</span>") + "Click here for more details on how the game works. ") + "</p>"); public static var soundBarLabel:String = "Sound Volume "; public static var buildingSniperTip:String = (((((((("<p>" + "<span class=\"title\">") + "Place Sniper ") + "</span>\n") + "Move the mouse to on an open square and click to build a sniper tower ") + "there. It will take some time for a survivor to bring the ") + "construction materials to your planned building location. You may ") + "press escape to cancel. ") + "</p>"); public static var hoverSniperNoAmmoTip:String = (((((("<p>" + "<span class=\"title\">") + "Sniper Tower Cannot Fire ") + "</span>\n") + "This sniper tower has run out of ammo. It cannot shoot until it is ") + "resupplied. ") + "</p>"); public static var noTowerWarning:String = "No Structure There "; public static var noUpgradeResourcesWarning:String = "No Resources "; public static var depotSurvivorsDecreaseTip:String = (((((("<p>" + "<span class=\"title\">") + "Decrease Survivor Quota ") + "</span>\n") + "Fewer survivors will be on hand to transfer supplies to nearby ") + "structures. ") + "</p>"); public static var eastLabel:String = "East "; public static var workshopNoSurvivorTip:String = (((((("<p>" + "<span class=\"title\">") + "Cannot Construct Workshop ") + "</span>\n") + "You cannot construct a workshop from this depot. There are no ") + "survivors here to build it. ") + "</p>"); public static var editCorner:String = "Street Corner "; public static var zombieThreatModerate:String = "Moderate "; public static var towerNoRemoveSupplyTip:String = ((((((("<p>" + "<span class=\"title\">") + "No Supply Line ") + "</span>\n") + "You cannot remove a supply line to this structure because there is no ") + "supply line from the source depot to here. You may press escape to ") + "cancel. ") + "</p>"); public static var placeBlockedWarning:String = "Blocked "; public static var northLabel:String = "North "; public static var removeSupplyTip:String = ((((((("<p>" + "<span class=\"title\">") + "<span class=\"hotkey\">R</span>emove Supply Line") + "</span>\n") + "Remove the supply line from this depot to another structure. After ") + "removing the supply line, no new survivors will be sent to carry ") + "resources between the two structures. ") + "</p>"); public static var rateEasy:String = "Easy "; public static var editPediaRoot:String = StringTools.trim(editPediaRootSecret); public static var backgroundBuildBlockedTip:String = (((((("<p>" + "<span class=\"title\">") + "Location Blocked ") + "</span>\n") + "This location is blocked by an obstruction. No structure may be built ") + "here. You may press escape to cancel. ") + "</p>"); public static var backgroundDepotTip:String = (((((("<p>" + "<span class=\"title\">") + "Click To Build Depot ") + "</span>\n") + "If you click here, a survivor will be dispatched to this location ") + "with some boards to build a depot. You may press escape to cancel. ") + "</p>"); public static var buildingParkingLotText:String = "Parking Lot "; public static var editPark:String = "Park "; public static var survivorsTip:String = ((((("<p>" + "<span class=\"title\">Survivors</span>\n") + "How many survivors are here right now. Once liberated, survivors can ") + "be put to work ferrying supplies, scavenging buildings, making ") + "fortifications, manning sniper towers, and setting charges. ") + "</p>"); public static var southLabel:String = "South "; public static var buildingApartmentText:String = "Apartment Complex "; public static var workshopBuildingTip:String = (((((("<p>" + "<span class=\"title\">") + "Move to Entrance ") + "</span>\n") + "Move the mouse to the entrance of this building and click if you ") + "want to salvage the resources inside. You may press escape to cancel. ") + "</p>"); public static var clickBarricade:String = "<p>Click on your barricade to select it.</p>"; public static var buildingChurchText:String = "Church (Survivors) "; public static var waitRateMap:String = "Submitting Rating... "; public static var hoverBarricadeTip:String = ((((("<p>" + "<span class=\"title\">") + "Barricade ") + "</span>\n") + "Barricades use boards to slow down zombies. Click to select it. ") + "</p>"); public static var boardsNoDecreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Cannot Decrease Board Quota ") + "</span>\n") + "The board quota is now zero. You cannot further decrease the quota. ") + "</p>"); public static var backgroundBuildShadowTip:String = (((((("<p>" + "<span class=\"title\">") + "Structure Already Planned ") + "</span>\n") + "You cannot build here because a structure is already being constructed ") + "here. You may press escape to cancel. ") + "</p>"); public static var foodLabel:String = "Food "; public static var easter:Array = ["Some city names cause special maps which change the rules a bit. ", "Map names must contain a certain name to be special. For instance, if 'New York' was a special map, then 'New York City' would also be the same kind of special map. ", "The author's home town map is a perfect grid, just like in the real world. ", "In the city from \"28 Days Later\", the zombies run. ", "There is a mall city inspired by \"Dawn of the Dead\". ", "A medical reference from \"Night of the Living Dead\" creates an extra challenge. ", "Umbrella Corporation's home town is cut off from the mainland but has lots of special buildings. ", "If you visit the city from \"Land of the Dead\", survive as long as you can because the zombies can cross the water... ", "In the city where Thriller was shot, the zombies can dance. "]; public static var depotNoSurvivorTip:String = (((((("<p>" + "<span class=\"title\">") + "Cannot Construct Depot ") + "</span>\n") + "You cannot construct a depot from this structure. There are no survivors ") + "here to build it. ") + "</p>"); public static var towerBuildTip:String = (((((("<p>" + "<span class=\"title\">") + "Structure Already Here ") + "</span>\n") + "You cannot build here because there is already a structure here. You may ") + "press escape to cancel. ") + "</p>"); public static var hideRangeTip:String = ((((("<p>" + "<span class=\"title\">") + "Hide Range <span class=\"hotkey\">V</span>iew") + "</span>\n") + "Hide the global range view. ") + "</p>"); public static var levels:Array = [(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("<map name=\"Basic Training\" difficulty=\"0\" sizeX=\"25\" sizeY=\"19\" startX=\"12\" startY=\"9\" >" + "<terrain>") + "aa1ea42d3c903d1fa27aa713a477f59c.eNoVikESgDAIxFwsC ") + "y2tdPTHvly85JDEVBOmK8GwBs5poPqP8ArGQrk2nWgrFNAewtu ") + "g9lSM3UVa2gle1JrZ8W6XY4wE8AF+HwLw ") + "</terrain>") + "<briefing>") + "No one knows how it happened. Soon, there'll be no one left to ") + "care. But the simple truth is that overnight a globe full of civilized ") + "people festered, and changed, and became something less than ") + "civilized. Less than human. And if you weren't the smartest, or the ") + "fastest, or the best-armed on your block, well... you're one of them ") + "now.\n\n") + "*Begin Transmission*\n\n") + "The hordes of undead are growing. We need to get you up to speed as fast as possible. Lets start with the basics.\n\n") + "*End Transmission* ") + "</briefing>") + "<script>") + "<state name=\"start\" posX=\"16\" posY=\"8\">") + "<text>Your depot is the backbone of your supply network</text>") + "<next/>") + "<edge type=\"click-next\" next=\"1\"/>") + "<edge type=\"start-build-sniper\" next=\"4\"/>") + "<edge type=\"build-sniper\" next=\"5\"/>") + "</state>") + "<state name=\"1\">") + "<text>Depots store your resources and send them to other towers.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"2\"/>") + "<edge type=\"start-build-sniper\" next=\"4\"/>") + "<edge type=\"build-sniper\" next=\"5\"/>") + "</state>") + "<state name=\"2\">") + "<text>Everything must be built within 7 tiles of a depot.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"3\"/>") + "<edge type=\"start-build-sniper\" next=\"4\"/>") + "<edge type=\"build-sniper\" next=\"5\"/>") + "</state>") + "<state name=\"3\" button=\"build-sniper\">") + "<text>We need a sniper tower to protect us from zombies. Click the build sniper button on the left.</text>") + "<edge type=\"start-build-sniper\" next=\"4\"/>") + "<edge type=\"build-sniper\" next=\"5\"/>") + "</state>") + "<state name=\"4\" posX=\"12\" posY=\"8\">") + "<text>Now click to place a sniper tower at the indicated location. You can hold down shift to easily place multiple towers.</text>") + "<edge type=\"build-sniper\" next=\"5\"/>") + "<edge type=\"cancel-build\" next=\"3\"/>") + "</state>") + "<state name=\"5\" posX=\"12\" posY=\"10\">") + "<text>Build one more sniper tower here to support the other one. The sniper tower's range is shown in light blue.</text>") + "<edge type=\"build-sniper\" next=\"6\"/>") + "</state>") + "<state name=\"6\" button=\"build-barricade\">") + "<text>If a zombie gets too close to a sniper, it will be toast. We need barricades to hold off the hordes. Click to build a barricade.</text>") + "<edge type=\"start-build-barricade\" next=\"7\"/>") + "</state>") + "<state name=\"7\" posX=\"10\" posY=\"10\">") + "<text>Place the new barricade a bit in front of the snipers. Make sure at least one side is clear so the barricade can be properly supplied.</text>") + "<edge type=\"build-barricade\" next=\"8\"/>") + "<edge type=\"cancel-build\" next=\"6\"/>") + "</state>") + "<state name=\"8\" posX=\"10\" posY=\"9\">") + "<text>Place another barricade to seal off the road. Otherwise some zombies might bypass your defenses.</text>") + "<edge type=\"build-barricade\" next=\"9\"/>") + "</state>") + "<state name=\"9\">") + "<text>Zombies are coming! Get ready!</text>") + "<action type=\"countdown\" arg=\"10\"/>") + "<edge type=\"countdown-complete\" next=\"10\"/>") + "</state>") + "<state name=\"10\">") + "<text>Hold off this wave of zombies, and victory will be yours!</text>") + "<action type=\"horde\" arg=\"5 5 9\"/>") + "<action type=\"horde\" arg=\"5 5 10\"/>") + "<edge type=\"zombie-clear\" next=\"11\"/>") + "</state>") + "<state name=\"11\">") + "<action type=\"win\">") + "<arg>") + "*Begin Transmission*\n\n") + "Congratulations! This was your first meeting with our awful enemy, but you still have much to learn.\n\n") + "*End Transmission*</arg>") + "</action>") + "</state>") + "</script>") + "</map>"), ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("<map name=\"Boom\" difficulty=\"1\" sizeX=\"20\" sizeY=\"31\" startX=\"10\" startY=\"14\" >" + "<terrain>") + "1151f1ee463c72420c6686469eb083eb.eNoVzksSwjAMA9DId ") + "izn21LacgPuCScnbN5CMxqJOVfhJHbmhZMOHxXhTlDKLv6uIVp ") + "LqnUbzhPwdgksGoq1CbK/VJkXEbdZCusN7v0B8x5QDv45kFuZI ") + "lqa6jAGsnNAjTvEeUDoz1XxDUafaybOlfFa9BtrcN34tIaUvqV ") + "LSkkA/AApEQYw ") + "</terrain>") + "<briefing>") + "*Begin Transmission*\n\n") + "You've done well so far, soldier. But out in the field you will often have to scavenge what you can from the local area. You need to learn about workshops and resources.\n\n") + "*End Transmission* ") + "</briefing>") + "<script>") + "<state name=\"start\">") + "<text>Most maps are bigger than your flash window. Scroll by dragging the map or using the arrow keys.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"build-workshop\" next=\"5\" offsetX=\"10\" offsetY = \"9\" ") + "limitX=\"11\" limitY=\"10\"/>") + "<edge type=\"click-next\" next=\"1\"/>") + "</state>") + "<state name=\"1\" button=\"total-resources\">") + "<text>Your unallocated resources are shown at the top. Oh no! Resource levels are extremely low!</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"build-workshop\" next=\"5\" offsetX=\"10\" offsetY = \"9\" ") + "limitX=\"11\" limitY=\"10\"/>") + "<edge type=\"click-next\" next=\"2\"/>") + "</state>") + "<state name=\"2\" posX=\"10\" posY=\"9\">") + "<text>This house has a green arrow which means it is clear of zombies and there are resources inside.</text>") + "<action type=\"move-map\" arg=\"10 9\"/>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"build-workshop\" next=\"5\" offsetX=\"10\" offsetY = \"9\" ") + "limitX=\"11\" limitY=\"10\"/>") + "<edge type=\"click-next\" next=\"3\"/>") + "</state>") + "<state name=\"3\" button=\"build-workshop\">") + "<text>Click on the build workshop button so we can scavenge the valuable resources.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"build-workshop\" next=\"5\" offsetX=\"10\" offsetY = \"9\" ") + "limitX=\"11\" limitY=\"10\"/>") + "<edge type=\"start-build-workshop\" next=\"4\"/>") + "</state>") + "<state name=\"4\" posX=\"10\" posY=\"9\">") + "<text>Click on the entrance to the house to build a workshop there. This workshop will collect the resources in a building over time and return them to the depot.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"build-workshop\" next=\"5\" offsetX=\"10\" offsetY = \"9\" ") + "limitX=\"11\" limitY=\"10\"/>") + "<edge type=\"cancel-build\" next=\"3\"/>") + "</state>") + "<state name=\"5\" posX=\"10\" posY=\"9\">") + "<text>There are a lot of resources there and it will take a long time for one survivor to collect them all. Lets speed things up. Click on the new workshop.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"select-workshop\" next=\"6\"/>") + "</state>") + "<state name=\"6\" button=\"workshop-increase\">") + "<text>Click the plus button to increase the worker quota. New workers will start working here when available and speed up the collection.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"select-nothing\" next=\"5\"/>") + "<edge type=\"click-add-survivors\" next=\"7\" offsetX=\"10\" offsetY=\"9\" limitX=\"11\" limitY=\"10\"/>") + "</state>") + "<state name=\"7\">") + "<text>You can see how many resources are left to extract on the right. Increase the survivor quota to 10, then click next.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"click-next\" next=\"8\"/>") + "</state>") + "<state name=\"8\">") + "<text>There are three kinds of resources: Ammo, Boards, and Survivors.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"click-next\" next=\"9\"/>") + "</state>") + "<state name=\"9\">") + "<text>Ammo is used by snipers to shoot zombies.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"click-next\" next=\"10\"/>") + "</state>") + "<state name=\"10\">") + "<text>Boards are used to build sniper towers and barricades.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"click-next\" next=\"11\"/>") + "</state>") + "<state name=\"11\">") + "<text>Survivors carry resources around and staff buildings.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"click-next\" next=\"12\"/>") + "</state>") + "<state name=\"12\" button=\"total-resources\">") + "<text>When you increase quotas and spend resources, these numbers go down. If they are negative, that means you've allocated more resources than you have.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"click-next\" next=\"13\"/>") + "</state>") + "<state name=\"13\">") + "<text>There are no zombies on this island, and we need to keep it that way by blowing up the bridge which gives them access.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"click-next\" next=\"14\"/>") + "</state>") + "<state name=\"14\" button=\"build-depot\">") + "<text>We need to expand our supply lines to cover the bridge. Click the build depot button.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "<edge type=\"start-build-depot\" next=\"15\"/>") + "</state>") + "<state name=\"15\" posX=\"9\" posY=\"19\">") + "<action type=\"move-map\" arg=\"9 19\"/>") + "<text>Click to place the depot as far south as you can.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "<edge type=\"cancel-build\" next=\"14\"/>") + "<edge type=\"build-depot\" next=\"16\" offsetX=\"5\" offsetY=\"14\" ") + "limitX=\"15\" limitY=\"26\"/>") + "</state>") + "<state name=\"16\" posX=\"9\" posY=\"21\">") + "<text>Now build a workshop on the dynamite location to set charges and blow up the bridge.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"build-workshop\" next=\"17\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "</state>") + "<state name=\"17\">") + "<text>Click on the workshop to see the progress it is making.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"select-workshop\" next=\"18\" offsetX=\"9\" offsetY=\"21\" ") + "limitX=\"10\" limitY=\"22\"/>") + "</state>") + "<state name=\"18\">") + "<text>Many hands make light work. Increase the number of survivors here as much as you can to speed the work, then click next.</text>") + "<next/>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "<edge type=\"click-next\" next=\"19\"/>") + "</state>") + "<state name=\"19\">") + "<text>Clearing an island of zombies and blowing the bridges is how you win. Sit back and wait for victory.</text>") + "<edge type=\"bridge-clear\" next=\"win\"/>") + "</state>") + "<state name=\"win\">") + "<action type=\"win\">") + "<arg>") + "*Begin Transmission*\n\n") + "Well done on that demolition work, soldier. Destroying bridges will be crucial to preventing new zombies from entering an area. The last thing you need to learn is how to manage your snipers effectively in the field.\n\n") + "*End Transmission* ") + "</arg>") + "</action>") + "</state>") + "</script>") + "</map>"), ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("<map name=\"Bang\" difficulty=\"0\" sizeX=\"25\" sizeY=\"30\" startX=\"12\" startY=\"9\" >" + "<terrain>") + "8d3979175577820f4d5fe645fca194c1.eNody9ESgyAMRFEX2 ") + "MSAELTV/q72ywt9OXNndlb58ZBypYFZItogFEaWkmMUqwjCmiB ") + "eEaWPUrZoerRgSjKpDyQTFBohbZbPskuRvIOpH/Prg32f6xmg/ ") + "Zq0we4IyeZqB5KsDdT1hXRvhtsKnty5LE/5W/+26Xc7w7L4G8A ") + "PlKcJBA ") + "</terrain>") + "<briefing>") + "*Begin Transmission*\n\n") + "We don't have much time left. Outbreaks have been reported on every major continent. I'll show you how to use your snipers well, otherwise you will be slaughtered out there.\n\n") + "*End Transmission* ") + "</briefing>") + "<script>") + "<state name=\"start\" posX=\"12\" posY=\"9\">") + "<text>There are zombies to the north, and we don't have any ammo!</text>") + "<next/>") + "<edge type=\"click-next\" next=\"1\"/>") + "</state>") + "<state name=\"1\">") + "<text>Luckily, they haven't heard us yet. They will stay where they are until they hear a noise.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"2\"/>") + "</state>") + "<state name=\"2\" posX=\"11\" posY=\"16\">") + "<text>Before we do anything else, we need to restock on ammo. There is some rubble left on the street. Build a workshop to search for resources.</text>") + "<action type=\"move-map\" arg=\"11 16\" />") + "<edge type=\"build-workshop\" next=\"3\"/>") + "</state>") + "<state name=\"3\">") + "<text>In addition to finding resources, the rubble must be cleared away before you can build other towers there.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"4\"/>") + "</state>") + "<state name=\"4\">") + "<text>Build workshops on the other rubble tiles and add survivors until you have a good stock of ammo. Then click next.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"5\"/>") + "</state>") + "<state name=\"5\" posX=\"12\" posY=\"16\">") + "<text>Now build a sniper to take out these three zombies. Don't worry if the zombies aren't in range yet, we'll take care of that.</text>") + "<edge type=\"build-sniper\" next=\"6\"/>") + "</state>") + "<state name=\"6\">") + "<text>If we make some noise, we can pull the zombies within range. And shooting off a round should do that. Select your sniper.</text>") + "<edge type=\"select-sniper\" next=\"7\"/>") + "</state>") + "<state name=\"7\" button=\"sniper-shoot\">") + "<text>Now tell your sniper to shoot into the air. That will attract all nearby zombies.</text>") + "<edge type=\"select-nothing\" next=\"6\"/>") + "<edge type=\"click-shoot\" next=\"8\"/>") + "</state>") + "<state name=\"8\">") + "<text>Your sniper should make short work of these zombies. You can often draw zombies out of an area to clear it in a controlled manner.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"9\"/>") + "</state>") + "<state name=\"9\" button=\"sniper-upgrade\">") + "<text>Your snipers are versatile and you can improve them in several ways. First, you can upgrade your sniper to increase its range.</text>") + "<next/>") + "<edge type=\"click-upgrade\" next=\"10\"/>") + "<edge type=\"click-next\" next=\"10\"/>") + "</state>") + "<state name=\"10\" button=\"sniper-increase-survivors\">") + "<text>Second, you can add extra survivors as spotters. Each additional survivor increases accuracy.</text>") + "<next/>") + "<edge type=\"click-add-survivors\" next=\"11\"/>") + "<edge type=\"click-next\" next=\"11\"/>") + "</state>") + "<state name=\"11\" button=\"sniper-increase-ammo\">") + "<text>Third, you can increase the amount of ammo. More ammo means that the sniper tower can shoot longer between resupplies</text>") + "<next/>") + "<edge type=\"click-add-ammo\" next=\"12\"/>") + "<edge type=\"click-next\" next=\"12\"/>") + "</state>") + "<state name=\"12\">") + "<text>Finally, be sure to use barricades to protect your vulnerable snipers. A sniper is much more accurate when attacking zombies delayed by a barricade.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"13\"/>") + "</state>") + "<state name=\"13\">") + "<text>Set up a defensive perimeter here, upgrading your towers as necessary. Click next when you are ready for the final zombie attack.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"14\"/>") + "</state>") + "<state name=\"14\">") + "<text>Make sure you have at least two sniper towers and plenty of ammo. Then click next.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"15\"/>") + "</state>") + "<state name=\"15\">") + "<text>Defeat the zombie swarms!</text>") + "<action type=\"horde\" arg=\"4 12 5\"/>") + "<action type=\"horde\" arg=\"3 5 11\"/>") + "<action type=\"horde\" arg=\"4 19 11\"/>") + "<edge type=\"zombie-clear\" next=\"16\"/>") + "</state>") + "<state name=\"16\">") + "<action type=\"win\">") + "<arg>") + "*Begin Transmission*\n\n") + "For the next part of the course...\n\n") + "One minute...\n\n") + "I've just recieved reports that a zombie horde has overrun the final training facility. This time will be for real. Get ready.\n\n") + "*End Transmission* ") + "</arg>") + "</action>") + "</state>") + "</script>") + "</map>"), (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("<map name=\"Graduation\" difficulty=\"1\" sizeX=\"40\" sizeY=\"40\" startX=\"12\" startY=\"27\" >" + "<terrain>") + "84dc19f602cc8396e8735db89eb5a222.eNodkoGyoyAMRUlCC ") + "IJoa9Gqrdr33mx3P7OzX77XdYY7hxC4MWCqO5t+tWxfxqvpyhb ") + "MVgrtSym8Ik3BCsVXbIKk7LzTV9+oDFmc6msE3rOqhtcKfOaEj ") + "60h4e6UCqEYA1FumfjA9B0Lc9M5Igrv2IMvjtiBr8xxcCwMviF ") + "+c+Il/FqKyd4751R+5mrymJBtv/uidu26WmvUWki0K2Q6FpF3h ") + "kPbETGD4dBeHMzBcMinA9k7w6Gtjp2TdzPBbUIOxXcGt3cnxJE ") + "TfpziiHiGcIEB9VWZ68DMM0xlu4gI20RMcVbkTKyy3lXku59E+ ") + "9mhZd8D8DY5uP2ZZvHzQgW+uVSGx4O5UP8Q9tNgTNNdKA8PD3q ") + "iimUm75vFa7we3rsYRtyJjV8d0iuLbjdUNmzM/roR+3pK2bz4c ") + "TPx6xrEHzcy/9yYwnMnDvtJ285k2+HZDlBoDk/BFlBcSX3aBbG ") + "d6HwJZvHlyeJBlOoFPaXpopyOFhdISxsoz8BcITS2QumIaGSu8 ") + "ZzHRLng6qlvlXJ3xvqolAwkybCn5HTujEgKweCmkLQ8cXpa7lj ") + "gcSbJI1qcKxqWH6ghpxHroaJo7RgCSjb+P3PGmT4i/bO29NkxS ") + "kefy0CfEWO40d/mwa5PCa4fNO0fd7UhUg ") + "</terrain>") + "<briefing>") + "*Begin Transmission*\n\n") + "The training ground has been overrun. You must clear the island of zombies and blow the bridge to prevent others from coming.\n\n") + "*End Transmission* ") + "</briefing>") + "<script>") + "<state name=\"start\">") + "<text>There are zombies in many of the buildings. Yellow, orange, and red triangles show increasing threat levels.</text>") + "<next/>") + "<action type=\"add-state\" arg=\"none\" />") + "<edge type=\"click-next\" next=\"1\" />") + "</state>") + "<state name=\"1\">") + "<text>If the zombies hear a noise, they will come out and attack. Be especially careful when dealing with buildings marked in red.</text>") + "<next/>") + "<edge type=\"click-next\" next=\"2\" />") + "</state>") + "<state name=\"2\" button=\"timer\">") + "<text>The timer counts down till the next zombie wave. You can also click it to pause the game. You can still issue orders while the game is paused.</text>") + "<next/>") + "<action type=\"add-state\" arg=\"countdown\" />") + "<edge type=\"click-next\" next=\"3\" />") + "</state>") + "<state name=\"3\">") + "<text>Clear the island of zombies and blow up the bridge. Good luck!</text>") + "<next/>") + "<edge type=\"click-next\" />") + "</state>") + "<state name=\"none\">") + "<edge type=\"bridge-clear\" next=\"bridge\"/>") + "<edge type=\"zombie-clear\" next=\"zombie\" />") + "</state>") + "<state name=\"bridge\">") + "<edge type=\"zombie-clear\" next=\"bridge-zombie\" />") + "</state>") + "<state name=\"zombie\">") + "<edge type=\"bridge-clear\" next=\"bridge-zombie\" />") + "<edge type=\"zombie-horde-begin\" next=\"none\" />") + "</state>") + "<state name=\"bridge-zombie\">") + "<action type=\"win\">") + "<arg>") + "*Begin Transmission*\n\n") + "The training island is now secured. Now it is time for you to move into the field.\n\n") + "*End Transmission* ") + "</arg>") + "</action>") + "</state>") + "<state name=\"countdown\">") + "<action type=\"countdown\" arg=\"150\" />") + "<edge type=\"countdown-complete\" next=\"horde\" />") + "</state>") + "<state name=\"horde\">") + "<action type=\"horde\" />") + "<edge type=\"zombie-horde-end\" next=\"countdown\" />") + "</state>") + "</script>") + "</map>"), (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("<map name=\"Bridge\" difficulty=\"1\" sizeX=\"60\" sizeY=\"60\" startX=\"26\" startY=\"49\" >" + "<briefing>") + "*Begin Transmission*\n\n") + "Zombies have infiltrated the heart of the city. Your goal is to create a checkpoint on the south bridge.\n\n") + "Enter the area, clear out undead you find there, and make sure nobody enters or leaves the city. We need to quarantine the whole island.\n\n") + "*End Transmission* ") + "</briefing>") + "<terrain>") + "40b96b8ff8119e279e1fb5ff8c004a08.eNpFkguXojoMgJukD ") + "ygIXBEVGUB8jasr4mPm94HbH75hz7kOpwlfEpomKfreKaPXl5T ") + "MYydD7bUThJk/JT0LJWLOSi5DQB1FFk2UWKPNxJA2ijyjEt8Yp ") + "TCAyNcko1CjtKGETaQUxYb3cwYl5TZVRDO2AZs548JIAMRAkTy ") + "WbFdjSHjrtZLUGAIQsgxT1GWUgu4UWnNXyq7PnpJnO4bxwFlpp ") + "5D05qQ0nTR7yTS7qa+zC5FR+4mvvQ65zpYMRN2cMG+5l7Ilbqg ") + "F3KRPrunJ+3A7Z1w8BTDnDylV+ZjApnxKqp6CW9g3HN98j+jBr ") + "tOEpwfJpu0ktTckEk37YORvQajLA6RsvyUcdrzr8CX48ZpP5uO ") + "Tu1ZGLWxk1vEi03UFni736OuyQjDzBRo9P7Ba7MdKKunJtNZal ") + "jVqnVYa9HSvwEwP0pjphdhcSKPjnQQdV6B1/EFo4gUpzCOZ6GU ") + "EiS5jilXp+aBOHkgVeQFIy0kwP3D6+gIgl3vwZVKR1usdU30AY ") + "wOfaBIcfEn21BF56nIDlJcOwAZsEwY8AWk7MMeEW5t+aR6Opuj ") + "J41DRgw/xvhG0+QI06guxXxnsC4NDYfj6+iPT8R8lvhwSnyffZ ") + "z4Nmc8j7Gsfh5p92MeW+qmlYWpH/8JyHiv7wuq+Yt5w9JOjnxz ") + "FPgxwYGHKAs7EBP1HQH3D/uaftQvQ2RBcEgpXsqyZG37vQ3RHf ") + "v9maVmiiXApy3Ii+tVEupp5y3JgOU/AXSborhwrEnRFyjXNaFj ") + "NxnqLOQ3FfKTVEofVkumVF/wHyHG9Vj9Y/ODHG4e85D7dtBJ9W ") + "uOQ1jx+l9ViKGpC8SprEMCNILiqFu6/NQ6LtSbhZg24okGXbIS ") + "bb9DNttzgVgzZTiOXucM+/+Ryjpyk//iFLj+BW57F8HFG5DZbM ") + "ZTteHDdsnVl/5Wv5lVef467cvAKQ9yNdWQdFwzjejVvdL874ex ") + "NuPCGLrvha357f7W6obA251t+NW+vm9451f0n1Rvd/s4X9RAuY ") + "2ke8Mqf/1fyKt74p7yubn+yjlUzqvmN1erW3Fllo2pGs3iyyp9 ") + "/AZagfKk ") + "</terrain>") + "<script>") + "<state name=\"start\">") + "<action type=\"add-state\" arg=\"countdown\" />") + "<edge type=\"bridge-clear\" next=\"bridge\"/>") + "<edge type=\"zombie-clear\" next=\"zombie\" />") + "</state>") + "<state name=\"bridge\">") + "<edge type=\"zombie-clear\" next=\"bridge-zombie\" />") + "</state>") + "<state name=\"zombie\">") + "<edge type=\"bridge-clear\" next=\"bridge-zombie\" />") + "<edge type=\"zombie-horde-begin\" next=\"start\" />") + "</state>") + "<state name=\"bridge-zombie\">") + "<action type=\"win\">") + "<arg>") + "*Begin Transmission*\n\n") + "Excellent work, soldier. Other squads are reporting that their bridges are secure as well. We might just contain this.\n\n") + "*End Transmission*</arg>") + "</action>") + "</state>") + "<state name=\"countdown\">") + "<action type=\"countdown\" arg=\"150\" />") + "<edge type=\"countdown-complete\" next=\"horde\" />") + "</state>") + "<state name=\"horde\">") + "<action type=\"horde\" />") + "<edge type=\"zombie-horde-end\" next=\"countdown\" />") + "</state>") + "</script>") + "</map>"), ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("<map name=\"Survival\" difficulty=\"2\" sizeX=\"90\" sizeY=\"70\" startX=\"6\" startY=\"39\" >" + "<briefing>") + "*Begin Transmission*\n\n") + "Make your way inland, clearing the area of zombies and collecting survivors. We will contact you with...\n\n") + "*Gunshots*\n\n") + "*Moans*\n\n") + "My God! They are overrunning the command center! Fall back!\n\n") + "*End Transmission*\n\n") + "It looks like you are on your own. If you can establish a beach head here, you may be able to secure the entire island and destroy the bridges connecting it to the mainland. You could create a sanctuary here. ") + "</briefing>") + "<terrain>") + "61d9972b068f4bcbfb4fbba385ae0dc3.eNpNlg1b2swShvc7g ") + "ZCAAgomYAIhCEgQDGj9OMVaa8UWbfv+IJI3P/w867kajpd38mR ") + "2dmcyO1k15M2VoYzrJVNGwoSSCWOGXEE9L02u3hZKGG8rxdSXl ") + "WRUtixu1Vqcs5rDlVWzOKd1q8atPhTrO7zM+pIrGlnw68OPdlu ") + "SU8uSnJkfAy2Tl2MMmCx2uVGOe5zbdN6rcOsekt0P4BRPqnicY ") + "PZ60uTWBIpNYi7Kk4RjOEwMxHd5zappn3Bi8HIbIzZrx0iqrY3 ") + "1iYJPDFWZC14uzfVwaYyIpSGCUzkU3Jrr9BOrhGA6/XuHN+gam ") + "ZdfLZ3gq8Mt67UNn20bEV89rsqvPZ3BugcnE052uYaV1bDrW5Y ") + "/qBrKVEHLE8LtcMZY0PS5bAaMUuo3YG10BKXMb2GNkz4nhPSaA ") + "y6aEdfWrifFqQdJg8jjIuoKhnqPAk7leUBx6VIuRh6XYtqlQox ") + "6ksvQpVL0PTwOPMrE4BR+gy4uXVdRdjJirHwyZIyXPZc5SrQGg ") + "tF6C+/rtRiXA9fAsi7jvOULpqTbQwQPk2TdZyVZx+Ky4ZpU1Ee ") + "SidaQidCLlQoWeDXOwzA21OCSIEvFejFT1EPNrV7COPUSrSaMn ") + "9VjxVszwplhB3XsxNECr03k8Rwr1OGlejXs3EGilxSlxBCiMhR ") + "lUbvq0GiGLb+YEcZJKVpAJ3NCtF5Cr2b0Q88w+2JFkIUZLaCTp ") + "aCMmNESermEHXo94+IB6yBE9Aj9OBeE8kr0Dfr7XOdj9jbQmwv ") + "tP3ibcf4+Myglpvgzw5xrxPs0x4YSO7rGup8QjwiT3cNu3S84o ") + "/GiyqwJlLiNmRDryyqVLzMq5Do+pOJLYuOylFT8nDEhf8cY+BM ") + "zKm4T7Nz0yqEiTlD6GAOBnHBlTIkSgkvUi0lzTA0px5z2Zccwy ") + "h0iMFTpCENh/y2uhHQtFsqqlMbBx7uE5aqSdh210n3esFgkj7D ") + "O8cdgZEKXj1ELaAu6ckS0Fs4RbDUYrFoD3iXHQJaOwEXykprUq ") + "kIlDVUSSUcxcVPjh2J+WuI8coRpiolzyMSkgaTHDi2L6EiwsIG ") + "MGofoDm6HriPl6YFucxV261IGx0iOqch3OOtVdWI2bzSkUMxro ") + "lvdOk4Lq11HRm2HSdaGUbpNymXDQRXriBH5B5wF/3th4dc49a8 ") + "jIW5GknMSXEKuzvRYMIvQQyO99/4Y1vHwo/1GgwaVVxFe7i5Ck ") + "4/GdSpj/bjQlxEu4Xpgyocz9VGbJ1RfrHGRj2NGw/eulO+neiE ") + "Vvvel+iesCiFV+H2g1Iv+xIgttiODiXmDW2LrMVu8ezg8122L+ ") + "2tHiMcqR5MGT5DfDnRfBes6rA3UhPhPkN/qyBjdc2hR+RXtIb/ ") + "WqeIvDk5l8VLXHXYsmHg6Vqz/3OH8WZ8VrP8A+dhFa0v25DHF1 ") + "75kNn/Gt22LjT4knnG8yK8dtNraQx3XUOwep7K/kJa6MwihLFh ") + "LUz0b+vTqbbAhr+WPMm6lYb5VtPS3Djfeq9hX5v+G/H2g+yfYH ") + "hl8+9FicmvjWPnloGu3TYOy7xKbfi6VOjernAszjKAjQ1CUj/u ") + "IroITqXjX0JP5SUkxe9CQUhwriSTssCINWVG6qqa0JFWyUsb6d ") + "a0aJclkW6sTE+fdPb5Ncae/pDUOIfXlus7UwxXlxsNNwzDvrmS ") + "ZmLkyyM40eGoaOJZzwyR5A7SAKpGsX0ISVP/uPpd4+rlEtZNFs ") + "muL6MMBA9lGS65l+gop858WyWWFZH6lmBxWeBpWECEbF8bsdi8 ") + "3lWKNHxW9hmGT3cLm6cJGxGxj70NAymxbGPK5Q9Klg3LkK4fkN ") + "+DWIdmrUzj8cFj2Uz+Kj8dJleQxuAAJuAZ3VbJr12jarmEf85s ") + "azT7X/uaW3xzAAdQPSTY4LMydOobAHdiAywbN4ybN5022WzRZu ") + "mhSPbkJjybJ7pvFxA2c6keYAF5A9ZjkERiCMzAC5yAGt+ARfD8 ") + "m6XFL1++8VRQ1brE0bukoFy2SLlq6BjctxGvRfI37E3gGG4wGb ") + "XRletvWPndttlu3Wbpu69p+bxeZvbdZVjspNuVgLw/3cljIfH6 ") + "CtwA34A5Il+QVl+aOS7KqW8yoFzI/csnut8vT365uJOXRvOShA ") + "h7ZHXgiPfB0D45gmYA5uAVr8AC+gEewxaxfuI87NF91EB33dYf ") + "sfnR45nSLqF636NBOIfNRl+TTLslm3f1bwHQH0/3etIZpfIo0T ") + "mk+xX0Bbk9Zvj0l6dBHJfORj1GwAtfg1ie7WsDTGv67IdkoKAJ ") + "OA0QAC5AEJL3SDvknPN2Bt4BklV4Rd9RDXDDpIS7ucY/tPvVY+ ") + "qmH8zG73Ts+9Fj29f/m9dEyfbK76PP0oo9jInvsF22ygXEDI8l ") + "Ow78fReaH+5KECBrSfIL7FMQhyVZhUccvhcxbA5K3wQlwB6jro ") + "CjxYVR4nUQ0dyOS30csf4tIpoaMlEpl3WvWsPCqDLHekOVt3E+ ") + "GJLPPqP6rhJ+8eoYh0AadM5L956xIxhrtkxnBA3igM8LLjYpkg ") + "r3Xb4w6Y5q3xvAGHuiM8f7jfS1h+gbewC/wz5hm5UkxbE9Ydlg ") + "87poTlgJEOSmMmbt3v4T7aj9yW8j08wR7sHvB/Bc9P32f4O9/X ") + "jlH/5+T3eCcp4NzvUuz8yLYEsblh9Ge/i1PFkyLYGdTlt+A5yl ") + "LWzF6JL+LSfoW6yo6M7KbzlgK8FGtZzhEwBb8AZULmi/m6FvwZ ") + "06y0qIIerCg6cFCd+nPBT6FS3x1YAPKCSYm+L4TnIRJkUUM8xx ") + "cgitwA74mdPec0PQ50Qv9gGULSkt8P0tdhtGSp6OlzvNxifKD0 ") + "ork1ors7BVLAd7FWZG0u9I+pSsEBrUrmh/j7oIO8EEfDGCPcD8 ") + "DEzAFCbi9Yv9Wemr4rxqWJ7hYI33Rj/aZvkz/C6qQhVY ") + "</terrain>") + "<script>") + "<state name=\"start\">") + "<action type=\"add-state\" arg=\"countdown\" />") + "<edge type=\"bridge-clear\" next=\"bridge\"/>") + "<edge type=\"zombie-clear\" next=\"zombie\" />") + "</state>") + "<state name=\"bridge\">") + "<edge type=\"zombie-clear\" next=\"bridge-zombie\" />") + "</state>") + "<state name=\"zombie\">") + "<edge type=\"bridge-clear\" next=\"bridge-zombie\" />") + "<edge type=\"zombie-horde-begin\" next=\"start\" />") + "</state>") + "<state name=\"bridge-zombie\">") + "<action type=\"win\">") + "<arg>") + "The old world is gone, lost to this grim tide. But your sanctuary contains the hope of new life. Perhaps humankind will survive.\n\n") + "For more challenges, try playing a random map or creating your own levels! ") + "</arg>") + "</action>") + "</state>") + "<state name=\"countdown\">") + "<action type=\"countdown\" arg=\"150\" />") + "<edge type=\"countdown-complete\" next=\"horde\" />") + "</state>") + "<state name=\"horde\">") + "<action type=\"horde\" />") + "<edge type=\"zombie-horde-end\" next=\"countdown\" />") + "</state>") + "</script>") + "</map>"), ((((((((((((((((((((((((((((((((((((((("<map name=\"Hide and Seek\" difficulty=\"2\" sizeX=\"90\" sizeY=\"64\" startX=\"35\" startY=\"35\" >" + "<terrain>") + "41d079c7f0eaa432f235005707feb90f.eNollIt22jgQhq2RR ") + "r6BodxqSgm2IUDC2jGXBJJectgk9NAmTdLuI+nB97fgnM/zazQ ") + "ajUcyLt+9Cc23a6G3N02pDxuf9O8F+/p9KCP9t0/K/W8oIvfvg ") + "hru60Zp98eNp9zdbUOod8yq1z611GGthXrMyVfbTZ3U9YZY8XW ") + "pBDebMuw2paRuW3phdyCliAdtGS6gaHEma+HiEr7iMpbBAUrTI ") + "ZL18BDCeQx9zIQxAivfIqyWsNQiDttIGEkKu5Wvy9UyPII/YZX ") + "hTzXuVrm7Ve7aJdLEl1iyyCUHi5WsUqyqFNW4i3FdFINYhoeqq ") + "AMWkp9JL/BHUnqCR0qGfpWIL5XkIgoE7SJS4a5FJO5aTOE9FN1 ") + "3yKVdB76iF9CkaLBbNhz8vMm6wbxpV1omd5FSd9affI+kuo8qK ") + "fZIk+4xfrBT8hEbeMldh9XXjo196GCuV8n0IZby8ZMN22NPGex ") + "6RDq5i1l+s+7kJlZyF9vgFeTGyqSAvLJSrTtM5wVrXQbVuJ5so ") + "HdWp3es9Bcrkz2z3vt2p+/oaX0WR+369IN1pHN45l6laeKiHRP ") + "GqyesKDiDqquYNSWxK1Vsg5KBy2p42iJxlcpcm2bKpGXSDJmbd ") + "eto+vCIpou2Ri7aGvkkg6iGNxRc80lxFFLqM3NoC0sYN8091ci ") + "Bj307beGpqK3FOOy53LQ9U9xTruS2j/OMOiixhXPyqNUjFuEgo ") + "MAfoGTye9W9HTZpXBu5Xn1ql7ZH5MnazJf1hDPsNT3tNVNSZ1G ") + "pub20jih3cXmCnISoFURBgEedO6WQqrMWpGqYUZyzTLlk9kpbf ") + "FAqrlnpjjKl1GjmkZqkkvVkJEl/HnlSf86k0uNMKD2aKqHG1eP ") + "zVKKvZ6qmPp+FGF7gMcMwiXNWfZswHUKmha1tnLsks/GVKydXl ") + "YMvc8GcVY94GYj5Ed/7Lz7dz7cGy/fTJXzBffSyIy7ss3XwW8Q ") + "ifWkp+ft0KY+QP61M3yH/WsnHbk2kbz2Wf2zvk1+Qz1bK40Arq ") + "X71Fakjep0eR1r9HJ1yjbU6TiqZHWeQc9v84wLfxQ907Yd9E9r ") + "nxMF+Vd2G9SqiYLmqzm1ZouFLNNwTRSFp8jVnvl+evr0t9O50R ") + "Ok6V7y2HVBFzkL+KFnib2cpRJ0OuVDqsBJCPeTCVc85uWlRSr7 ") + "a2PjlRolJmbm6tDXWJ7eJ1l/Pbd7J/oy9f63WdH9GXnA/rSq8n ") + "WoKt5C0zfCBbJPqvyHxMZwTqeLsAx4ZaVXMca9v5zj6/ZSVitg ") + "lg06bNjsm0o5pgjUoPMdc+cKsfMe4kWMCUAfccIzXEKYB224jt ") + "uOYLbjuOuZnD7EfHdMBHCMuFuYI6/Yd8wz4E2KAHmAOvAM9FMY ") + "dOiYEDdAakunAvgI+c4wP6uADGIIMnINLsAQ34CvojBzTBwUow ") + "QZsR8Lcwn4ZkfkO+wo7SBwzT/C+KeLBJBVmBvsGLjKsB52xYwb ") + "gHPQnwlxM0AvQPocfvIHzKeJBAfbgCfRnqBHMZ2QeYAdzx6RzY ") + "a5gb8AXsAePczLZBeoHG3AHvoMn8Ap+/uOYF8A5+gQegC7Qx4L ") + "MI+wL8K6E8a8wV2IMnpbo8VKYxzV6voYPrDY4F3ALvoH7jTBPs ") + "PoafQU10AI9MAAjkIEpKK+F2cJ+AXvwAKIbx3y8EWZ8QyaHXoF ") + "roLeoZytMCNsCfTAEKTgHF2CxJdPcOaYLRjthStjrnfgfv7rhH ") + "g ") + "</terrain>") + "</map>")]; public static var addSupplyTip:String = (((((("<p>" + "<span class=\"title\">") + "<span class=\"hotkey\">A</span>dd Supply Line") + "</span>\n") + "Click here to create a supply line to another structure. The two structures ") + "will send resources to each other as needed. ") + "</p>"); public static var towerSameWarning:String = "Structure Can't Supply Itself "; public static var clickDepot:String = "<p>Click on your depot to select it.</p>"; public static var zombieThreatHigh:String = "High "; public static var waitUploadMap:String = "Uploading Map... "; public static var tutorialText:String = "Tutorial "; public static var editIntersection:String = "Intersection "; public static var rateGood:String = "Good "; public static var gatherResourcesTip:String = (((((("<p>" + "<span class=\"title\">") + "Gather Resources ") + "</span>\n") + "For a short time, gather nearby unallocated resources to this depot. ") + "Click multiple times to increase the range and effect. ") + "</p>"); public static var upgradeMaxTip:String = ((((("<p>" + "<span class=\"title\">") + "Upgrading Complete ") + "</span>\n") + "This structure has been completely upgraded. ") + "</p>"); public static var noFleeTip:String = ((((("<p>" + "<span class=\"title\">") + "Cannot Flee ") + "</span>\n") + "This is your last depot. There can be no further retreat from this structure. ") + "</p>"); public static var salvageProspectsNone:String = "None "; public static var backgroundAddSupplyTip:String = (((((("<p>" + "<span class=\"title\">") + "How To Add ") + "</span>\n") + "Move the mouse to the structure you want to add a supply line to and ") + "click it, or press escape to cancel. ") + "</p>"); public static var accuracyBarTip:String = ((((("<p>" + "<span class=\"title\">Accuracy</span>\n") + "Shows the accuracy of shots fired by this sniper. Extra survivors ") + "act as spotters to increase accuracy. It is much easier to hit ") + "zombies as they are attacking a barricade. ") + "</p>"); public static var noviceText:String = "Novice "; public static var placeSupplyWarning:String = "No Supply Line "; public static var rateHard:String = "Hard "; public static var backgroundRemoveSupplyTip:String = ((((((("<p>" + "<span class=\"title\">") + "How To Remove ") + "</span>\n") + "Move the mouse to the structure that you want to remove a supply line to ") + "and click on it. The blue arrows show current supply lines from this ") + "depot. You may press escape to cancel. ") + "</p>"); public static var workshopEntranceTip:String = (((((((("<p>" + "<span class=\"title\">") + "Click to Salvage ") + "</span>\n") + "You can build a workshop here to salvage all usable ") + "resources in this building. The workshop will automatically close ") + "down and return the survivor when finished. You may press escape to ") + "cancel. ") + "</p>"); public static var workshopBuildingZombiesTip:String = (((((("<p>" + "<span class=\"title\">") + "Zombies Inside ") + "</span>\n") + "You cannot build a workshop at a building with zombies inside. Lure ") + "out and destroy the zombies first. You may press escape to cancel. ") + "</p>"); public static var depotNoBoardTip:String = (((((("<p>" + "<span class=\"title\">") + "Cannot Construct Depot ") + "</span>\n") + "You cannot construct a depot from this structure. There are not enough ") + "boards here to build the depot with. ") + "</p>"); public static var placeBridgeWarning:String = "Bridge Unstable "; public static var upgradeInProgressWarning:String = "Upgrade in Progress "; public static var survivorsLeftTip:String = ((("<p>" + "<span class=\"title\">Survivors Left</span>\n") + "How many survivors will be found before the tower is closed. ") + "</p>"); public static var editHardware:String = "Hardware Store "; public static var playPediaRootSecret:String = "index "; public static var editBridge:String = "Bridge "; public static var editFringe:String = "Office (A) "; public static var workshopDynamiteTip:String = (((((((("<p>" + "<span class=\"title\">") + "Click to Place Charges ") + "</span>\n") + "If you build a workshop here, it will begin placing explosive ") + "charges on this bridge. After this bridge is destroyed, no more ") + "zombies can cross it to enter the island. You may press escape to ") + "cancel. ") + "</p>"); public static var backgroundBarricadeTip:String = ((((((("<p>" + "<span class=\"title\">") + "Click To Build Barricade ") + "</span>\n") + "If you click here, a survivor will be dispatched to this location ") + "with some boards to build a barricade. You may press escape to ") + "cancel. ") + "</p>"); public static var placeBuildingWarning:String = "Building Unsafe "; public static var buildWorkshopTip:String = ((((((((("<p>" + "<span class=\"title\">") + "Construct <span class=\"hotkey\">W</span>orkshop") + "</span>\n") + "<span class=\"cost\">1 Survivor</span>\n") + "Workshops can be built at the entrances of buildings to collect the ") + "resources inside. They can also reclaim resources after a structure has ") + "been destroyed or abandoned. Finally, they can be used to activate ") + "special features on the map such as dynamite. ") + "</p>"); public static var buildingWorkshopTip:String = (((((((("<p>" + "<span class=\"title\">") + "Place Workshop ") + "</span>\n") + "Move the mouse to on the entrance of a building, rubble on the ") + "ground, or a special feature and click to build a workshop there. It ") + "will take some time for a survivor to arrive at your planned ") + "building location. You may press escape to cancel. ") + "</p>"); public static var workshopBackgroundTip:String = (((((((("<p>" + "<span class=\"title\">") + "Nothing Here ") + "</span>\n") + "There is nothing for a workshop to do here. Workshops can only be ") + "placed at the entrance to a building with resources inside, at some ") + "rubble on the street, or at a special feature. You may press escape ") + "to cancel. ") + "</p>"); public static var backgroundBuildBridgeTip:String = ((((("<p>" + "<span class=\"title\">") + "Cannot Build on Bridge ") + "</span>\n") + "It is too dangerous to build on a bridge. You may press escape to cancel. ") + "</p>"); public static var buildDepotTip:String = ((((((("<p>" + "<span class=\"title\">") + "Construct <span class=\"hotkey\">D</span>epot") + "</span>\n") + "<span class=\"cost\">1 Survivor</span>\n") + "Depots store your resources and transfer them through your ") + "supply network as needed. ") + "</p>"); public static var quartermasterText:String = "Quartermaster "; public static var sniperAmmoIncreaseTip:String = (((((("<p>" + "<span class=\"title\">") + "Increase Ammo Quota ") + "</span>\n") + "Storing more ammo allows this sniper to shoot more zombies between ") + "resupplies. ") + "</p>"); public static var buildSniperTip:String = (((((((("<p>" + "<span class=\"title\">") + "Construct <span class=\"hotkey\">S</span>niper") + "</span>\n") + "<span class=\"cost\">1 Survivor</span>\n") + "<span class=\"cost\">20 Boards</span>\n") + "Snipers are your only way to kill zombies. They are inaccurate, but ") + "will kill a zombie in one hit. ") + "</p>"); public static var moveWindowNorth:String = "<p>Move window North.</p>"; public static var buildingStandardText:String = "Office "; public static var editParking:String = "Parking Lot "; public static var pedia:Array = ["index ", (((((((((((((((((((((((((((((((((((("<p><span class=\"title\">Index</span></p>\n" + "<a href=\"event:goal\">Goal</a>") + "\n\n") + "<a href=\"event:timer\">Timer</a>") + "\n\n") + "<a href=\"event:resources\">Resources</a>") + "<li><a href=\"event:ammo\">Ammo</a></li>") + "<li><a href=\"event:boards\">Boards</a></li>") + "<li><a href=\"event:survivors\">Survivors</a></li>") + "\n\n") + "Towers ") + "<li><a href=\"event:sniper\">Sniper</a></li>") + "<li><a href=\"event:workshop\">Workshop</a></li>") + "<li><a href=\"event:depot\">Depot</a></li>") + "<li><a href=\"event:barricade\">Barricade</a></li>") + "\n\n") + "<a href=\"event:buildings\">Buildings</a>\n") + "<a href=\"event:building_types\">Building Types</a>") + "<li><a href=\"event:house\">House</a></li>") + "<li><a href=\"event:office\">Office</a></li>") + "<li><a href=\"event:apartment\">Apartment</a></li>") + "<li><a href=\"event:mall\">Mall</a></li>") + "<li><a href=\"event:police_station\">Police Station</a></li>") + "<li><a href=\"event:hardware_store\">Hardware Store</a></li>") + "<li><a href=\"event:church\">Church</a></li>") + "<li><a href=\"event:hospital\">Hospital</a></li>") + "\n\n") + "<a href=\"event:zombies\">Zombies</a>\n") + "<li><a href=\"event:zombie_hordes\">Zombie Hordes</a></li>") + "<li><a href=\"event:noise\">Noise</a></li>") + "<li><a href=\"event:scent\">Scent</a></li>") + "\n\n") + "<a href=\"event:map_features\">Map Features</a>") + "<li><a href=\"event:charges\">Charges</a></li>") + "<li><a href=\"event:rubble\">Rubble</a></li>") + "\n\n") + "<a href=\"event:map_editor\">Map Editor</a>"), "goal ", (((((((((("<p><span class=\"title\">Goal</span></p>\n" + "<p>") + "Without safe havens, civilization will be destroyed. Your goal is to ") + "secure the city by slowly expanding your perimeter, killing <a ") + "href=\"event:zombies\">zombies</a> and looting <a ") + "href=\"event:resources\">resources</a> as you go, until you reach and ") + "destroy each bridge by setting off the <a ") + "href=\"event:charges\">charges</a> that were airlifted in. Only once ") + "the island is secure can you think about the future-- and whether ") + "you'll live to see it. ") + "</p>"), "timer ", ((((((("<p><span class=\"title\">Timer</span></p>\n" + "<p>") + "The timer is your friend and your worst enemy. It ticks down the ") + "precious seconds until the next <a ") + "href=\"event:zombie_horde\">horde</a> arrives, so keep a close eye on ") + "it. If you can't take the heat, you can pause the game by ") + "clicking on the timer. ") + "</p>"), "resources ", (((((((("<p><span class=\"title\">Resources</span></p>\n" + "<p>") + "You'll need three things for this mission to succeed: <a ") + "href=\"event:boards\">lumber</a>, <a href=\"event:ammo\">ammo</a>, and ") + "fellow <a href=\"event:survivors\">survivors</a>. You'll find these by ") + "looting the city's eerily quiet <a ") + "href=\"event:buildings\">buildings</a>. But plan ahead: some types ") + "contain more of certain resources. ") + "</p>"), "ammo ", (((((((((("<p><span class=\"title\">Ammo</span></p>\n" + "<p>") + "<img src=\"pedia_ammo\">") + "The folks who once lived here had time to stockpile ammunition, but ") + "in the end it didn't save them. Maybe it will save you. Ammo is one ") + "of three <a href=\"event:resources\">resources</a> your team is ") + "searching for in <a href=\"event:buildings\">buildings</a>. Once your ") + "people get it to a supply <a href=\"event:depot\">depot</a>, it can be ") + "distributed to your <a href=\"event:sniper\">snipers</a>. You can bet ") + "your ass they'll need it. ") + "</p>"), "boards ", (((((((((("<p><span class=\"title\">Boards</span></p>\n" + "<p>") + "<img src=\"pedia_boards\">") + "You've ordered your team to strip all spare lumber from any <a ") + "href=\"event:buildings\">buildings</a> they reconnoiter. Once they ") + "haul it back to the nearest <a href=\"event:depot\">depot</a>, it will ") + "fuel your survival: you can order survivors to build <a ") + "href=\"event:sniper\">sniper towers</a> or <a ") + "href=\"event:barricade\">barricades</a>. You can even ") + "upgrade your sniper towers... if there's time. ") + "</p>"), "survivors ", (((((((((((("<p><span class=\"title\">Survivors</span></p>\n" + "<p>") + "<img src=\"pedia_survivors\">") + "Anyone left alive is holed up deep inside one of these <a ") + "href=\"event:buildings\">buildings</a>, scared and hungry. But their ") + "fear has kept them alive, and they'll be eager to join you, once ") + "your scouts find them. You can put them to work ferrying <a ") + "href=\"event:resources\">supplies</a>, scavenging buildings, making <a ") + "href=\"event:barricade\">fortifications</a>, manning <a ") + "href=\"event:sniper\">sniper towers</a>, and even setting <a ") + "href=\"event:charges\">charges</a>. If you survive long enough to ") + "reach them. ") + "</p>"), "sniper ", ((((((((((((((((((("<p><span class=\"title\">Sniper</span></p>\n" + "<p>") + "<img src=\"pedia_sniper\">") + "Anyone who's handy with a rifle gets sent to man these towers, ") + "thrown together from <a href=\"event:boards\">boards</a> and ") + "sweat. Send more <a href=\"event:survivors\">survivors</a> to a tower ") + "and they'll act as spotters, increasing the accuracy of your shots; ") + "and make damn sure your snipers have enough <a ") + "href=\"event:ammo\">ammo</a>. If you have the time ") + "and boards, you can upgrade a sniper tower, building it up higher ") + "to improve your range. ") + "</p>\n") + "<p>") + "Your snipers are good shots, and sharp: they'll obey tactical orders ") + "without question, like firing in the air to attract the <a ") + "href=\"event:zombies\">zombies</a>, or holding fire to avoid a ") + "swarm. But the towers themselves are rickety scrap heaps; one good ") + "swipe from those monsters and they'll collapse. So don't let ") + "them get within swiping distance. ") + "</p>"), "workshop ", ((((((((((((((("<p><span class=\"title\">Workshop</span></p>\n" + "<p>") + "<img src=\"pedia_workshop\">") + "If something needs doing, assign a <a ") + "href=\"event:survivors\">civvie</a> to the job by building a workshop ") + "there: at the entrance to a <a href=\"event:buildings\">building</a> ") + "to loot it, on a piece of <a href=\"event:rubble\">rubble</a> to clear ") + "it, or on the bridge <a href=\"event:charges\">charges</a> to prime ") + "them to blow. Up the quota of survivors at a workshop to get the job done faster. Collected <a ") + "href=\"event:resources\">resources</a> get taken ") + "back to the nearest <a href=\"event:depot\">depot</a>, ready to be ferried wherever they're needed. ") + "</p>\n") + "<p>") + "When the job's done, the workshop automatically closes and the ") + "assigned survivors return to base. ") + "</p>"), "depot ", (((((((((((((((("<p><span class=\"title\">Depot</span></p>\n" + "<p>") + "<img src=\"pedia_depot\">") + "Your command posts and sanctuaries against the <a ") + "href=\"event:zombies\">horde</a>. All the <a ") + "href=\"event:resources\">resources</a> and <a ") + "href=\"event:survivors\">survivors</a> you gather will be staged at ") + "the nearest depot, and you can only build new structures close by ") + "a depot which can keep them supplied. ") + "</p>\n") + "<p>") + "As you start to control more area, you should keep a tight eye on ") + "your supply lines. Each <a href=\"event:sniper\">sniper tower</a> or ") + "<a href=\"event:workshop\">workshop</a> is connected to a depot; add ") + "and remove supply lines to make sure your survivors are being routed ") + "as efficiently as possible. ") + "</p>"), "barricade ", (((((((((((((((((("<p><span class=\"title\">Barricade</span></p>\n" + "<p>") + "<img src=\"pedia_barricade\">") + "Unmanned heaps of <a href=\"event:boards\">boards</a> and other junk that should ") + "hold back the <a href=\"event:zombies\">horde</a>, though not for ") + "long. Each costs 10 boards to build and will stand up to about that ") + "many blows from a zombie before it collapses. You can assign <a ") + "href=\"event:survivors\">survivors</a> to repair them if you act fast, ") + "and increase the board quota to add durability, but you can only put ") + "off the inevitable: those things will break through, sooner or ") + "later. ") + "</p>\n") + "<p>") + "But here's the good news: zombies held up by a barricade are easy ") + "pickings for your <a href=\"event:sniper\">snipers</a>, and the things ") + "are usually too stupid to go around them. Put up a barricade between ") + "your sniper towers and the advancing horde and pick them off like ") + "ducks in a shooting gallery. ") + "</p>"), "buildings ", (((((((((((((((((((("<p><span class=\"title\">Buildings</span></p>\n" + "<p>") + "Whoever once owned them is dead now. Inside are exactly three things ") + "you care about: <a href=\"event:boards\">lumber</a>, <a ") + "href=\"event:ammo\">ammo</a>, and <a ") + "href=\"event:survivors\">survivors</a>. The quicker you can get them ") + "out, the better your chances. But be careful: <a ") + "href=\"event:zombies\">zombies</a> are lurking inside too, and any ") + "loud <a href=\"event:noise\">noise</a> nearby will draw them out into ") + "the street. To feed. ") + "</p>\n") + "<p>") + "Through initial recon runs you know a little about what's inside ") + "each building. A green triangle means a cakewalk: plenty of loot and ") + "no sign of trouble. But yellow, orange, and red triangles point to ") + "increasing levels of bad news inside: zombies, hiding and waiting in ") + "the quiet shadows. ") + "</p>\n") + "<p>") + "See also: <a href=\"event:building_types\">Building Types</a>") + "</p>"), "building_types ", ((((((((((((("<p><span class=\"title\">Building Types</span></p>\n" + "<p>") + "Based on a few scouting runs and detailed intel on the <a ") + "href=\"event:zombies\">zombies</a>, you have a sense of what to expect ") + "inside each type of <a href=\"event:buildings\">building</a>. ") + "</p>\n") + "<li><a href=\"event:house\">House</a></li>") + "<li><a href=\"event:office\">Office</a></li>") + "<li><a href=\"event:apartment\">Apartment</a></li>") + "<li><a href=\"event:mall\">Mall</a></li>") + "<li><a href=\"event:police_station\">Police Station</a></li>") + "<li><a href=\"event:hardware_store\">Hardware Store</a></li>") + "<li><a href=\"event:church\">Church</a></li>") + "<li><a href=\"event:hospital\">Hospital</a></li>"), "house ", ((((((("<p><span class=\"title\">House</span></p>\n" + "<p>") + "<img src=\"pedia_house\">") + "You can't expect to find too many <a ") + "href=\"event:resources\">resources</a> in these yuppie McMansions, but ") + "on the plus side, 2.4 kids can't turn into too many <a ") + "href=\"event:zombies\">zombies</a>. ") + "</p>"), "office ", ((((((("<p><span class=\"title\">Office</span></p>\n" + "<p>") + "<img src=\"pedia_office\">") + "A good source for basic <a href=\"event:resources\">resources</a> in ") + "reasonable quantities, and only a moderate amount of <a ") + "href=\"event:zombies\">zombies</a>. Bet these schmucks wish they ") + "hadn't put in for overtime now. ") + "</p>"), "apartment ", ((((("<p><span class=\"title\">Apartment</span></p>\n" + "<p>") + "<img src=\"pedia_apartment\">") + "<a href=\"event:resources\">Resource</a>-heavy, but swarming with <a ") + "href=\"event:zombies\">former occupants</a>. Watch out. ") + "</p>"), "mall ", (((((("<p><span class=\"title\">Mall</span></p>\n" + "<p>") + "<img src=\"pedia_mall\">") + "The mother lode for <a href=\"event:resources\">resources</a>, but ") + "swarming with <a href=\"event:zombies\">monsters</a>: ain't no free ") + "lunch in this food court. ") + "</p>"), "police_station ", (((((("<p><span class=\"title\">Police Station</span></p>\n" + "<p>") + "<img src=\"pedia_police_station\">") + "<a href=\"event:ammo\">Ammunition</a> by the truckful, but since cops ") + "were usually the first ones infected, they've had plenty of time to ") + "feed and grow strong. Be on your guard. ") + "</p>"), "hardware_store ", (((((("<p><span class=\"title\">Hardware Store</span></p>\n" + "<p>") + "<img src=\"pedia_hardware_store\">") + "Your best source for <a href=\"event:boards\">lumber</a>, but these ") + "seem to attract the <a href=\"event:zombies\">zombies</a>, too. Maybe ") + "it's the smell of sawdust. ") + "</p>"), "church ", ((((((("<p><span class=\"title\">Church</span></p>\n" + "<p>") + "<img src=\"pedia_church\">") + "You can bet your ass a congregation's worth of <a ") + "href=\"event:survivors\">survivors</a> is holed up inside. But the ") + "overgrown graveyard and shadowy halls inside offer far too many ") + "perfect hiding places for <a href=\"event:zombies\">unholy things</a>. ") + "</p>"), "hospital ", (((((("<p><span class=\"title\">Hospital</span></p>\n" + "<p>") + "<img src=\"pedia_hospital\">") + "The sick and weak were the first to be taken, God rest their ") + "souls. There's precious little hope of finding survivors here. What ") + "roams the halls now is beyond your skill to heal. ") + "</p>"), "zombies ", ((((((((((((((((((("<p><span class=\"title\">Zombies</span></p>\n" + "<p>") + "<img src=\"pedia_zombies\">") + "Keep two things in mind and you have a chance to stay alive. First, ") + "their sense of hearing is far more acute than their vision. They're ") + "attracted by <a href=\"event:noise\">noise</a>-- gunfire or ") + "construction-- and will mindlessly move towards it. They can <a ") + "href=\"event:scent\">smell</a> you too, so keep your distance and ") + "stay quiet. ") + "</p>\n") + "<p>") + "Second, it only takes one good shot to the head to drop them. On the ") + "flip side, one bite from those rotten teeth and it's curtains for ") + "you. If you get within hand-to-hand distance, you're as good as ") + "dead. Scratch that. You're worse than dead, because soon you'll be ") + "one of them. ") + "</p>\n") + "<p>") + "See also: <a href=\"event:zombie_hordes\">Zombie Hordes</a>") + "</p>"), "zombie_hordes ", ((((((("<p><span class=\"title\">Zombie Hordes</span></p>\n" + "<p>") + "These <a href=\"event:zombies\">things</a> seem to like to move in ") + "packs, or waves. Every so often a new horde will sweep into town ") + "across a bridge, or swarm out of unexplored buildings angry and ") + "drooling. The hordes only get bigger each time it happens. Better ") + "get to those bridge <a href=\"event:charges\">charges</a> fast. ") + "</p>"), "noise ", ((((((("<p><span class=\"title\">Noise</span></p>\n" + "The <a href=\"event:zombies\">zombies</a> flock to noise like moths to ") + "flame. Loud noises like gunshots bring them from far away, but ") + "construction noise wakes up the ones at a medium distance. Remember ") + "that it's not just the ones in the street you have to worry about; ") + "most of the <a href=\"event:buildings\">buildings</a> are swarming ") + "with them too. ") + "</p>"), "scent ", (((((((("<p><span class=\"title\">Scent</span></p>\n" + "<p>") + "Almost anything you'll do makes <a href=\"event:noise\">noise</a>, ") + "which attracts the <a href=\"event:zombies\">zombies</a>. But those ") + "bastards can smell you, too. Walk past some and they'll follow your ") + "scent trail all the way back to base. Noise seems more important to ") + "them, though; distract them with a loud noise and they'll forget ") + "about the delicious scent of flesh-- for a while. ") + "</p>"), "map_features ", (((((((((((((((((("<p><span class=\"title\">Map Features</span></p>\n" + "<p>") + "Keep an eye on the topography around your <a ") + "href=\"event:depot\">depots</a>. <a ") + "href=\"event:survivors\">Survivors</a> can't move through <a ") + "href=\"event:barricade\">barricades</a> or other structures, so make ") + "sure they have clear paths to work, and run. Mind the urban warfare tradeoff: wide streets make your ") + "structures harder to defend, and narrow streets make them harder to ") + "supply. And keep an eye on where the bridges are, since both the <a ") + "href=\"event:zombie_hordes\">hordes</a> and the <a ") + "href=\"event:charges\">charges</a> are in that direction. ") + "</p>\n") + "<p>") + "<a href=\"event:rubble\">Destroyed structures</a> block construction, ") + "and must be cleared by building a <a ") + "href=\"event:workshop\">workshop</a> on them. Also watch for parks, ") + "whose vegetation provides cover and is hard for <a ") + "href=\"event:sniper\">snipers</a> to shoot through. ") + "</p>"), "charges ", (((("<p><span class=\"title\">Charges</span></p>\n" + "<p>") + "<img src=\"pedia_charges\">") + "Your only prayer of surviving this mission is to get to the charges at each bridge, build <a href=\"event:workshop\">workshops</a> on them, and buy your team enough time to get them ready to blow. ") + "</p>"), "rubble ", (((("<p><span class=\"title\">Rubble</span></p>\n" + "<p>") + "<img src=\"pedia_rubble\">") + "Jetsam left over from the initial attack, or the sorry ruins of your own construction. Either way, it'll have to go if you want to clear a path for <a href=\"event:survivors\">survivors</a> or build new structures. Build a <a href=\"event:workshop\">workshop</a> on a tile of rubble to clear it and recover most of its <a href=\"event:resources\">resources</a>. ") + "</p>"), "map_editor ", (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("<p><span class=\"title\">Map Editor</span></p>\n" + "<p>") + "When editing a map, you can click the question mark icon in the ") + "lower-left to access this help again. ") + "</p>\n") + "<p><span class=\"title\">Boxes</span></p>\n") + "<p>") + "Boxes represent areas or buildings. The outlines of boxes are shown ") + "by thin white lines surrounding them. A box might be a single office ") + "or a street or an area of water. ") + "</p>\n") + "<p>") + "When you create a new map, boxes representing the ocean around an ") + "island are created for you automatically. You can adjust them or ") + "move them aside to create bridges. I recommend that you always make ") + "sure to leave at least the starting amount of water around the edges ") + "so that the status displays on the edges of the screens do not ") + "interfere with the player's visibility. ") + "</p>\n") + "<p><span class=\"title\">Creating a Box</span></p>\n") + "<p>") + "To create a new box, move the mouse to an empty (white) area of the ") + "map. Click and drag. A green rectangle will follow your cursor ") + "showing where the new box will be placed. If the rectangle turns ") + "red, that means the prospective box overlaps an existing box and ") + "will not be created. When you have a size that you want, release the ") + "mouse and a new box will be created. ") + "</p>\n") + "<p><span class=\"title\">Resizing a Box</span></p>\n") + "<p>") + "Existing boxes can be resized by dragging their corners. Move the ") + "mouse so it is inside the box you want to resize near one of the ") + "corners. Click and drag. You can resize the box to any dimension you ") + "want. If it overlaps with another box or is too small for the ") + "current box type, it will turn red. ") + "</p>\n") + "<p><span class=\"title\">Selecting</span></p>\n") + "<p>") + "Select boxes and squares to edit them. A box or square which is ") + "selected has a black outline. Click on an unselected box to select ") + "it. Click within a selected box to select a particular square. ") + "</p>\n") + "<p><span class=\"title\">Editing Boxes</span></p>\n") + "<p>") + "You can edit boxes using the combo-box and buttons on the ") + "left. Click on the box you want to edit. Then click on the combo-box ") + "widget in the upper-left and select what kind of area you want the ") + "box to be. Keep in mind that some box types have a minimum size and ") + "a box must be that size before you can change to those types. ") + "</p>\n") + "<p>") + "All boxes can be deleted using the delete button in the ") + "lower-left. Buildings can have zombies and resources added to ") + "them. Some kinds of boxes, like bridges, have a direction which you ") + "can modify using the rotate and reflect buttons. ") + "</p>\n") + "<p><span class=\"title\">Editing Squares</span></p>\n") + "<p>") + "In addition to editing boxes as a whole, individual squares may be ") + "edited as well. Some buildings allow you to set an entrance anywhere ") + "on the perimiter. On those boxes, select the square where you want ") + "the entrance and click 'Set Entrance' on the left. ") + "</p>\n") + "<p>") + "You can also place zombies, rubble, or towers on any square where ") + "they are normally allowed. You can add obstacles which permanently ") + "block a square. You can edit the resources available at any tower or ") + "rubble location. You can also select towers to change their quotas ") + "or to create and destroy trade links. ") + "</p>\n") + "<p>") + "Finally, you can select a square and remove the obstacle, rubble, or ") + "tower there with the delete button. To remove zombies just click '-' ") + "next to the zombie count. ") + "</p>\n") + "<p><span class=\"title\">Saving, Loading, and Testing</span></p>\n") + "<p>") + "Open the system menu by clicking the system button in the lower-left ") + "corner. From the system menu, you can save, load, and test the ") + "current map. ") + "</p>\n") + "<p>") + "When you click \"Save Map\", the map is encoded into a plain text ") + "format and displayed in the white text box. You can copy and paste ") + "that into a file for later use. ") + "</p>\n") + "<p>") + "To load a map, copy a the text for a map into the text box. Make ") + "sure that the only text in the text box is the map you wish to ") + "load. Then click \"Load Map\" to load that map for editing. ") + "</p>\n") + "<p>") + "You can also test a map by clicking \"Test Map\". When you do, you ") + "will begin playing the current map. If you win or lose, you will be ") + "returned to the map editor. You can also end the test by opening the ") + "system menu and clicking \"Edit Map\". ") + "</p>")]; public static var editHospital:String = "Hospital "; public static var ammoNoDecreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Cannot Decrease Ammo Quota ") + "</span>\n") + "The ammo quota is now zero. You cannot further decrease the quota. ") + "</p>"); public static var toolTipStyleSheet:String = (((((((((((((((((((("p { " + "font-size: 14; ") + "color: #333333 ") + "} ") + ".title { ") + "font-size: 16; ") + "font-weight: bold; ") + "color: #000000 ") + "} ") + ".hotkey { ") + "color: #0000ff ") + "} ") + ".status { ") + "color: #008888 ") + "} ") + ".survivor { ") + "color: #008800 ") + "} ") + ".cost { ") + "color: #ff0000 ") + "} "); public static var toggleTipTip:String = ((((("<p>" + "<span class=\"title\">") + "Toggle Tooltips <span class=\"hotkey\">[?]</span>") + "</span>\n") + "Click here to turn off tool tips like this one. ") + "</p>"); public static var depotAmmoIncreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Increase Ammo Quota ") + "</span>\n") + "More ammo will be stored here to resupply nearby snipers. ") + "</p>"); public static var hoverSniperHoldFireTip:String = (((((("<p>" + "<span class=\"title\">") + "Sniper Tower Will Not Fire ") + "</span>\n") + "You have ordered this sniper tower to hold fire. It will not shoot until ") + "you change its orders. ") + "</p>"); public static var disableFireTip:String = (((((("<p>" + "<span class=\"title\">") + "Forbid Sniper from <span class=\"hotkey\">F</span>iring") + "</span>\n") + "This sniper's current orders are to shoot any zombies within ") + "range. Click this button to prevent the sniper from firing. ") + "</p>"); public static var expertText:String = "Expert "; public static var backgroundBuildRubbleTip:String = ((((((("<p>" + "<span class=\"title\">") + "Rubble Here ") + "</span>\n") + "You cannot build here because there is rubble blocking this ") + "area. You can build a workshop here to clear the rubble and salvage ") + "the resources in this square. You may press escape to cancel. ") + "</p>"); public static var editPlant:String = "Office (B) "; public static var westLabel:String = "West "; public static var sniperAmmoDecreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Decrease Ammo Quota ") + "</span>\n") + "Storing less ammo makes this sniper more reliant on its supplier. ") + "</p>"); public static var workshopBuildingEmptyTip:String = (((((("<p>" + "<span class=\"title\">") + "No Resources Left ") + "</span>\n") + "This building has already been stripped of all usable resources. You ") + "may press escape to cancel. ") + "</p>"); public static var waitLoadGame:String = "Loading... "; public static var noSurvivorsWarning:String = "No Survivors "; public static var editShallowWater:String = "Shallow Water "; public static var backgroundBuildZombieTip:String = (((((("<p>" + "<span class=\"title\">") + "Zombies Here ") + "</span>\n") + "There are zombies here. Structures cannot be built where there are ") + "zombies. You may press escape to cancel. ") + "</p>"); public static var depotBoardsIncreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Increase Board Quota ") + "</span>\n") + "More boards will be kept on hand to build or upgrade towers. ") + "</p>"); public static var depotAmmoDecreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Decrease Ammo Quota ") + "</span>\n") + "Less ammo will be kept for resupplying nearby snipers. ") + "</p>"); public static var sniperNoSurvivorTip:String = (((((("<p>" + "<span class=\"title\">") + "Cannot Construct Sniper ") + "</span>\n") + "You cannot construct a sniper tower from this depot. There are no ") + "survivors here to build it. ") + "</p>"); public static var planCancelTip:String = (((((("<p>" + "<span class=\"title\">") + "Cancel Construction <span class=\"hotkey\">[Del]</span>") + "</span>\n") + "Click here to cancel the planned structure. The survivor sent to build it ") + "will return to the depot which sent it. ") + "</p>"); public static var hoverRubbleTip:String = (((((("<p>" + "<span class=\"title\">") + "Rubble ") + "</span>\n") + "Some rubble blocks the street. You can only build a workshop here ") + "to clear away the rubble and recover the resources in the rubble. ") + "</p>"); public static var supplyNotExistsWarning:String = "No Supply Line "; public static var workshopFeatureTip:String = (((((("<p>" + "<span class=\"title\">") + "Click to Activate ") + "</span>\n") + "If you build a workshop it will begin activating the special feature ") + "here. The effect depends on the feature. You may press escape to cancel. ") + "</p>"); public static var editStreet:String = "Street "; public static var survivorsLabel:String = "Survivors "; public static var hoverWorkshopTip:String = (((((("<p>" + "<span class=\"title\">") + "Workshop ") + "</span>\n") + "Workshops are your industrial base. They salvage resources from ") + "buildings and rubble to allow the fight to continue. ") + "</p>"); public static var hoverZombieTip:String = (((((((("<p>" + "<span class=\"title\">") + "Zombie ") + "</span>\n") + "This is a zombie. They stay where they are unless they hear a ") + "noise. When they hear sounds, they will pursue them and attack ") + "anything in the way. Survivors, buildings, and especially gunfire ") + "attract zombies. ") + "</p>"); public static var mainLoseText:String = ((((((((((("The last board shatters and the monsters surge forward, the " + "bloodcurdling screams of your dying companions mingling with the ") + "crunching of bone and snarls of inhuman throats, a wall of tattered ") + "clothes and festering flesh and teeth stained lurid red advancing ") + "toward you. And as that last board shatters your hope goes with it, ") + "and you know you've failed. The island has fallen. Another sliver of ") + "humanity corrupted and destroyed.\n\n") + "Screaming in rage, you draw your last weapon, an eight-inch hunting ") + "knife, and charge straight into the advancing horde, stabbing and ") + "slashing even as claws rip your flesh and teeth begin shattering your ") + "bones. Let no man say Auriga Squad fell without a fight, if there be ") + "men left to say anything at all... "); public static var depotBoardsDecreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Decrease Board Quota ") + "</span>\n") + "Fewer boards will be kept here for building or upgrading. ") + "</p>"); public static var workshopRubbleTip:String = (((((("<p>" + "<span class=\"title\">") + "Click to Reclaim ") + "</span>\n") + "Build a workshop here to clear the rubble and reclaim all of ") + "the resource in this square. You may press escape to cancel. ") + "</p>"); public static var pauseTip:String = ((((("<p>" + "<span class=\"title\">") + "Pause Game <span class=\"hotkey\">[Space]</span>") + "</span>\n") + "Click to pause the game. You can still select structures and issue orders while paused. ") + "</p>"); public static var towerRemoveSupplyTip:String = ((((((("<p>" + "<span class=\"title\">") + "Remove Supply Line ") + "</span>\n") + "If you click here, the supply line to this structure from the source ") + "depot will be removed. They will no longer send survivors with ") + "supplies to one another. You may press escape to cancel. ") + "</p>"); public static var wasteShotTip:String = (((((("<p>" + "<span class=\"title\">") + "Shoot Into <span class=\"hotkey\">A</span>ir") + "</span>\n") + "Zombies are attracted to sound. Firing a round into the air can ") + "serve as a lure for nearby zombies. ") + "</p>"); public static var nameConstraint:String = "A-Za-z0-9 ' "; public static var sniperFoodIncreaseTip:String = (((((((("<p>" + "<span class=\"title\">") + "Increase Food Quota ") + "</span>\n") + "Food increases the accuracy of your snipers. If food is available ") + "when they fire at a zombie, they will consume some of the food and ") + "are 50% more likely to hit. If you click here, more food will be ") + "moved here. ") + "</p>"); public static var buildingBarricadeTip:String = (((((((("<p>" + "<span class=\"title\">") + "Place Barricade ") + "</span>\n") + "Move the mouse to an open square and click to build a barricade ") + "there. It will take some time for a survivor to bring the ") + "construction materials to your planned building location. You may ") + "press escape to cancel. ") + "</p>"); public static var fleeTip:String = (((((("<p>" + "<span class=\"title\">") + "Flee <span class=\"hotkey\">[Del]</span>") + "</span>\n") + "Abandon this structure and flee for safety, leaving behind any ") + "resources. They may be recovered later with a workshop. ") + "</p>"); public static var moveWindowEast:String = "<p>Move window East.</p>"; public static var mainNameDefaultInputText:String = "Anytown "; public static var leftToExtractTip:String = (((("<p>" + "<span class=\"title\">Left to Extract</span>") + "How many resources are left in this area for your survivors to ") + "recover. ") + "</p>"); public static var foodNoDecreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Cannot Decrease Food Quota ") + "</span>\n") + "The food quota is now zero. You cannot further decrease the quota. ") + "</p>"); public static var rateOk:String = "Ok "; public static var depotFoodIncreaseTip:String = ((((((("<p>" + "<span class=\"title\">") + "Increase Food Quota ") + "</span>\n") + "Food can be used here to increase the speed of your survivors. It ") + "can also be used by sniper towers. A depot will reserve all food in ") + "its quota for local use and will not transfer it to other depots. ") + "</p>"); public static var ammoTip:String = (((("<p>" + "<span class=\"title\">Ammo</span>\n") + "How much ammo is here right now. Your snipers use ammo to shoot ") + "zombies. ") + "</p>"); public static var editUnknown:String = "Undefined "; public static var sniperFoodDecreaseTip:String = ((((((("<p>" + "<span class=\"title\">") + "Decrease Food Quota ") + "</span>\n") + "If you click here, less food will be stored at this sniper ") + "tower. While snipers can still fire without food, they are less ") + "accurate. ") + "</p>"); public static var supplyExistsWarning:String = "Supply Line Already Exists "; public static var survivorsNotInside:String = ("Deserted " + "</p>"); public static var waitGenerateMap:String = "Generating Map... "; public static var waitDownloadMap:String = "Downloading Map... "; public static var buttonStyleSheet:String = (((((".hotkey { " + "color: #dd0000 ") + "} ") + ".status { ") + "color: #0000dd ") + "} "); public static var quotaTip:String = (((("<p>" + "<span class=\"title\">Quota</span>\n") + "If the amount of ammo, boards, or survivors drops below its quota, ") + "your depot will send more as long as there is enough to go around. ") + "</p>"); public static var sniperNoBoardTip:String = (((((("<p>" + "<span class=\"title\">") + "Cannot Construct Sniper ") + "</span>\n") + "You cannot construct a sniper tower from this depot. There are not ") + "enough boards available here to build it. ") + "</p>"); public static var depotFoodDecreaseTip:String = ((((((("<p>" + "<span class=\"title\">") + "Decrease Food Quota ") + "</span>\n") + "If you click here, less food will be reserved for local use. If a ") + "depot lacks food, survivors will move more slowly when transferring ") + "resources. ") + "</p>"); public static var rateBad:String = "Bad "; public static var boardsTip:String = ((((("<p>" + "<span class=\"title\">Boards</span>\n") + "How many boards are here right now. You need boards to build sniper ") + "towers, barricades, and more depots. You can also upgrade your ") + "sniper towers and repair barricades if you have enough boards. ") + "</p>"); public static var playPediaRoot:String = StringTools.trim(playPediaRootSecret); public static var placeBoringWarning:String = ("Nothing to\n" + "Scavenge "); public static var hoverDepotTip:String = (((((("<p>" + "<span class=\"title\">") + "Depot ") + "</span>\n") + "This is a depot. You can use it to build other structures or to store ") + "and distribute supplies. Click to select it. ") + "</p>"); public static var noWasteShotTip:String = ((((("<p>" + "<span class=\"title\">") + "Out of Ammo ") + "</span>\n") + "You cannot shoot into the air becaue this sniper is out of ammo. ") + "</p>"); public static var clickWorkshop:String = "<p>Click on your workshop to select it.</p>"; public static var mainWinText:String = (((((((((((("The bridge falls into the water, sounds of rending metal and echoes " + "of the blast reverberating through the city, fading slowly to a ") + "strange, deep silence.\n\n") + "At first your ragtag team watches numbly, too tired or gripped by ") + "fear to respond, not yet people again, only survivors.\n\n") + "But then voices begin to murmur, to gasp, to cry out. A cheer ") + "ripples through the crowd and finally explodes, elation shattering ") + "through memories of horror and tears washing cheeks stained with blood ") + "and grime. You've done it. The island is secure.\n\n") + "Your lips crack as you smile too. Sure, it's only one victory, and ") + "there's a lot more work ahead. But it's something. You've made a haven ") + "against darkness, a place to start to rebuild. Today you've triumphed ") + "against horror. Against despair. Against the horde. "); public static var moveWindowSouth:String = "<p>Move window South.</p>"; public static var towerAddSupplyTip:String = (((((("<p>" + "<span class=\"title\">") + "Add Supply Line ") + "</span>\n") + "If you click here, a new supply line will be created. You may press ") + "escape to cancel. ") + "</p>"); public static var editHouse:String = "House "; public static var zombieThreatNone:String = "None "; public static var editStreetH:String = "Street (H) "; public static var editMall:String = "Mall "; public static var editStreetV:String = "Street (V) "; public static var hoverSniperTip:String = (((((("<p>" + "<span class=\"title\">") + "Sniper Tower ") + "</span>\n") + "Sniper towers like this one are used to kill zombies. Snipers aren't 100% accurate, but only one successful shot is required to kill each zombie. Click to ") + "select it. ") + "</p>"); public static var cities:Array = ["Tokyo ", "Seoul ", "Mexico City ", "New York City ", "Mumbai ", "Jakarta ", "Sao Paulo ", "Delhi ", "Osaka ", "Kyoto ", "Kobe ", "Shanghai ", "Manila ", "Hong Kong ", "Los Angeles ", "Kolkata ", "Moscow ", "Cairo ", "Buenos Aires ", "Beijing ", "Karachi ", "Chicago ", "Dallas ", "Philadelphia ", "Houston ", "Miami ", "Washington DC ", "Atlanta ", "Boston ", "Detroit ", "San Francisco ", "Phoenix ", "Seattle ", "Minneapolis ", "San Diego ", "St Louis ", "Tampa ", "Baltimore ", "Denver ", "Pittsburgh ", "Portland ", "Cincinnati ", "Cleveland ", "Sacramento ", "Orlando ", "San Antonio ", "Kansas City ", "Las Vegas ", "San Jose ", "Istanbul ", "Paris ", "Madrid ", "Barcelona ", "Manchester ", "Liverpool ", "Milan ", "Berlin ", "Athens ", "Naples ", "Hamburg ", "Frankfurt ", "Kiev ", "Lisbon ", "Budapest ", "Copenhagen ", "Munich ", "Warsaw ", "Bucharest ", "Brussels ", "Vienna ", "Stockholm ", "Lyon ", "Lille ", "Belgrade ", "Minsk ", "Turin ", "Glasgow ", "Donetsk ", "Marseille ", "Kharkiv ", "Prague ", "Amsterdam ", "Antwerp ", "Odessa ", "Hannover ", "Zurich ", "Bordeaux ", "Dresden ", "Birmingham ", "Cologne ", "Katowice ", "Leeds ", "Lagos ", "Kinshasa ", "Khartoum ", "Johannesburg ", "Algiers ", "Abidjan ", "Ibadan ", "Cape Town ", "Alexandria ", "Nairobi ", "Casablanca ", "Mogadishu ", "Dakar ", "Tripoli ", "Rio de Janeiro ", "Bogata ", "Lima ", "Toronto ", "Santiago ", "Caracas ", "Guadalajara ", "Montreal ", "Recife ", "Havana ", "Sydney ", "Melbourne ", "Brisbane ", "Perth ", "Chennai ", "Bengaluru ", "Hyderabad ", "Ahmedabad ", "Pune ", "Kanpur ", "Surat ", "Jaipur ", "Guangzhou ", "Harbin ", "Shenzhen ", "Gonguan ", "Tianjin ", "Wuhan ", "Shenyang ", "Chengdu ", "Zhengzhou ", "Chongqing ", "Singapore "]; public static var buildingHospitalText:String = "Hospital (Zombies) "; public static var survivorsNoDecreaseTip:String = ((((("<p>" + "<span class=\"title\">") + "Cannot Decrease Survivor Quota ") + "</span>\n") + "The survivor quota is now zero. You cannot further decrease the quota. ") + "</p>"); public static var replaySpeedBarLabel:String = "Speed "; public static var zombieThreatLow:String = "Low "; public static var setChargesBarTip:String = (((("<p>" + "<span class=\"title\">Set Charges Progress</span>\n") + "Progress towards preparing the explosives to blow the bridge. Your ") + "progress is cumulative even if you have to abandon the workshop. ") + "</p>"); public static var hoverDynamiteTip:String = (((((((("<p>" + "<span class=\"title\">") + "Dynamite ") + "</span>\n") + "If you built a workshop on these explosives, your survivors ") + "will wire them to the bridge and eventually detonate them. If all ") + "bridges are destroyed, no more zombies can invade the ") + "island. ") + "</p>"); public static var tutorial:Array = [(((((("<p>" + "<span class=\"title\">Tutorial</span>\n") + "There's not much time, so let's get you trained ASAP. <a ") + "href=\"event:zombies\">Zombies</a> are everywhere. We need to <a ") + "href=\"event:goal\">clear</a> the island and <a ") + "href=\"event:resources\">resources</a> are limited. ") + "</p>"), (((("<p>" + "<span class=\"title\">Scrolling</span>\n") + "Scout out the area. Scroll the map by moving the mouse outside the ") + "play area or using the arrow keys. ") + "</p>"), "2 ", (((((("<p>" + "<span class=\"title\">Establish Perimeter</span>\n") + "You need a <a href=\"event:sniper\">sniper</a> to defend your <a ") + "href=\"event:depot\">depot</a> from the <a ") + "href=\"event:zombies\">zombies</a>. Click 'Build Sniper,' then click ") + "the map to place your sniper tower. ") + "</p>"), (((("<p>" + "<span class=\"title\">Establish Perimeter</span>\n") + "Good. An idle <a href=\"event:survivors\">survivor</a> has been sent ") + "out with some <a href=\"event:boards\">boards</a> to build the tower. ") + "</p>"), (((("<p>" + "<span class=\"title\">Establish Perimeter</span>\n") + "I'd breathe a lot easier with a second <a href=\"event:sniper\">sniper ") + "tower</a>. Build another one near the first tower. ") + "</p>"), ((((("<p>" + "<span class=\"title\">Establish Perimeter</span>\n") + "Your <a href=\"event:sniper\">snipers</a> don't have <a ") + "href=\"event:ammo\">ammo</a> yet. Wait until both towers are stocked ") + "up. ") + "</p>"), "7 ", ((((((("<p>" + "<span class=\"title\">Lure out Zombies</span>\n") + "Now that we've got some protection, let's give these crack shots ") + "something to shoot at. Order one survivor to shoot into the air to ") + "<a href=\"event:noise\">lure</a> out <a ") + "href=\"event:zombies\">zombies</a> from any nearby <a ") + "href=\"event:buildings\">buildings</a>. ") + "</p>"), (((("<p>" + "<span class=\"title\">Lure out Zombies</span>\n") + "That's the stuff. Your <a href=\"event:sniper\">snipers</a> should ") + "make mincemeat from these <a href=\"event:zombies\">living dead</a>. ") + "</p>"), "10 ", (((((("<p>" + "<span class=\"title\">Strengthen Perimeter</span>\n") + "If the <a href=\"event:zombies\">zombies</a> reach the base of a tower ") + "you can kiss it goodbye. Some <a ") + "href=\"event:barricade\">barricades</a> ought to slow the monsters ") + "down. ") + "</p>"), ((("<p>" + "<span class=\"title\">Strengthen Perimeter</span>\n") + "Build a second <a href=\"event:barricade\">barricade</a> next to the first. ") + "</p>"), ((("<p>" + "<span class=\"title\">Strengthen Perimeter</span>\n") + "Build a third <a href=\"event:barricade\">barricade</a>. ") + "</p>"), (((("<p>" + "<span class=\"title\">Strengthen Perimeter</span>\n") + "A fourth <a href=\"event:barricade\">barricade</a> can block off the ") + "street completely. ") + "</p>"), "15 ", ((((((("<p>" + "<span class=\"title\">Ride Out Attack</span>\n") + "Damn, we're running out of time. The <a ") + "href=\"event:timer\">counter</a> in the upper left is all the time ") + "you've got till the next <a href=\"event:zombie_hordes\">horde</a>") + "swarms over the bridges. Sit tight and hope those <a ") + "href=\"event:sniper\">snipers</a> hold the line. ") + "</p>"), "17 ", (((((("<p>" + "<span class=\"title\">Expand Perimeter</span>\n") + "Close call, but we have to keep moving. Destroy a <a ") + "href=\"event:barricade\">barricade</a> so <a ") + "href=\"event:survivors\">survivors</a> can move through to the other ") + "side. ") + "</p>"), (((("<p>" + "<span class=\"title\">Expand Perimeter</span>\n") + "Wait while a <a href=\"survivor\">survivor</a> dismantles the <a ") + "href=\"event:barricade\">barricade</a>. ") + "</p>"), ((((("<p>" + "<span class=\"title\">Expand Perimeter</span>\n") + "It's an awful long walk from here back to our first <a ") + "href=\"event:depot\">depot</a>. Build another one as a forward supply ") + "center. ") + "</p>"), "21 ", ((((((((("<p>" + "<span class=\"title\">Resupply</span>\n") + "We need to get this <a href=\"event:depot\">depot</a> stocked before ") + "those things come back. Build <a href=\"event:workshop\">workshops</a>") + "at the entrances to nearby <a href=\"event:buildings\">buildings</a>") + "to search for <a href=\"event:ammo\">ammo</a>, <a ") + "href=\"event:boards\">boards</a> to build structures, and <a ") + "href=\"event:survivors\">survivors</a> to man stations and transport ") + "<a href=\"event:resources\">resources</a>. ") + "</p>"), ((("<p>" + "<span class=\"title\">Resupply</span>\n") + "That's a good start. Build another <a href=\"event:workshop\">workshop</a>. ") + "</p>"), ((("<p>" + "<span class=\"title\">Resupply</span>\n") + "Build a third <a href=\"event:workshop\">workshop</a>. ") + "</p>"), (((((((("<p>" + "<span class=\"title\">Clear Island of Zombies</span>\n") + "Good work. Now keep expanding. Build more <a ") + "href=\"event:sniper\">sniper towers</a> to <a ") + "href=\"event:noise\">lure</a> out <a href=\"event:zombies\">zombies</a>") + "and clear the streets. Build <a href=\"event:workshop\">workshops</a>") + "at buildings to send survivors in to bolster your resources. <a ") + "href=\"event:goal\">Clear the island</a>. ") + "</p>"), (((((((("<p>" + "<span class=\"title\">Destroy Bridge</span>\n") + "You've secured the island, but as long as that bridge is up, all ") + "you've built could be overrun by a <a ") + "href=\"event:zombie_hordes\">horde</a> at any moment. Build a <a ") + "href=\"event:workshop\">workshop</a> on the <a ") + "href=\"event:charges\">charge</a> to blow the bridge and make this a ") + "permanent sanctuary. ") + "</p>"), (((("<p>" + "<span class=\"title\">Destroy Bridge</span>\n") + "Wait for the <a href=\"event:survivors\">survivor</a> to build the <a ") + "href=\"event:workshop\">workshop</a>. ") + "</p>"), "28 ", (((((("<p>" + "<span class=\"title\">Destroy Bridge</span>\n") + "You're about to be a hero, but don't get cocky. Increase the quota ") + "at the <a href=\"event:workshop\">workshop</a> to send more people to ") + "get those <a href=\"event:charges\">charges</a> set faster; you've got ") + "plenty of <a href=\"event:survivors\">survivors</a> to spare now. ") + "</p>"), (((("<p>" + "<span class=\"title\">Mission Accomplished</span>\n") + "Congrats, soldier: that's one bridge down. Keep it up and there may ") + "just be hope for humanity yet. ") + "</p>")]; public static var towerAlreadyExistsAddSupplyTip:String = (((((("<p>" + "<span class=\"title\">") + "Supply Line Already Exists ") + "</span>\n") + "You cannot add a supply line here because the source depot already ") + "has a supply line to this structure. You may press escape to cancel. ") + "</p>"); public static var barricadeNoBoardTip:String = (((((("<p>" + "<span class=\"title\">") + "Cannot Construct Barricade ") + "</span>\n") + "You cannot construct a barricade from this depot. There are not enough ") + "boards here to create one. ") + "</p>"); public static var buildBarricadeTip:String = (((((("<p>" + "<span class=\"title\">") + "Construct <span class=\"hotkey\">B</span>arricade") + "</span>\n") + "<span class=\"cost\">10 Boards</span>\n") + "Barricades block off streets and slow zombies down. Each board can withstand one zombie hit. Zombies are easier to kill while attacking a barricade. ") + "</p>"); public static var enableFireTip:String = (((((("<p>" + "<span class=\"title\">") + "Allow Sniper to <span class=\"hotkey\">F</span>ire") + "</span>\n") + "This sniper is currently holding fire. Click this ") + "button to allow the sniper to fire at targets within range. ") + "</p>"); public static var barricadeBoardsIncreaseTip:String = ((((((("<p>" + "<span class=\"title\">") + "Increase Board Quota ") + "</span>\n") + "More boards will hold off zombies for longer. Each zombie attack ") + "destroys one board. When this barricade runs out of boards, it will ") + "be destroyed. ") + "</p>"); public static var backgroundSniperTip:String = (((((("<p>" + "<span class=\"title\">") + "Click To Build Sniper ") + "</span>\n") + "If you click here, a survivor will be dispatched to this location ") + "with some boards to build a sniper tower. You may press escape to cancel. ") + "</p>"); public static var waitSaveGame:String = "Saving... "; public static var barricadeBoardsDecreaseTip:String = ((((((("<p>" + "<span class=\"title\">") + "Decrease Board Quota ") + "</span>\n") + "Fewer boards will make this barricade weaker. Your survivors will ") + "tear down part of the barricade to recover excess boards. Demolish ") + "this barricade by setting the quota to 0. ") + "</p>"); public static var hoverSniperNoSurvivorsTip:String = (((((("<p>" + "<span class=\"title\">") + "Sniper Tower Cannot Fire ") + "</span>\n") + "There are no survivors here to shoot. This sniper tower ") + "is defenseless! ") + "</p>"); public static var noSourceTowerWarning:String = "No Selected Structure "; public static var placeRubbleWarning:String = "Blocked by Rubble "; public static var waitEditMap:String = "Starting Map Editor... "; public static var backgroundBuildFeatureTip:String = ((((((("<p>" + "<span class=\"title\">") + "Special Feature Here ") + "</span>\n") + "There is a special feature here which blocks you from building a ") + "structure. You can build a workshop on this square to use this ") + "feature. You may press escape to cancel. ") + "</p>"); public static var backgroundEmptyEntranceTip:String = ((((((("<p>" + "<span class=\"title\">") + "Building Entrance Here ") + "</span>\n") + "The building entrance here blocks you from constructing a ") + "structure. This building has already been stripped of all useful ") + "resources. You may press escape to cancel. ") + "</p>"); public static var editPolice:String = "Police Station "; public static var conserveFoodTip:String = ((((((("<p>" + "<span class=\"title\">") + "Begin conserving <span class=\"hotkey\">F</span>ood") + "</span>\n") + "This depot is sending out fast survivors which use up food. Click ") + "here to begin conserving food by sending out survivors who move at ") + "half speed. ") + "</p>"); public static var hoverPlanTip:String = (((((("<p>" + "<span class=\"title\">") + "Planned Structure ") + "</span>\n") + "A survivor is on the way here to build a structure. You can select the ") + "plan to cancel it. ") + "</p>"); public static var barricadeNoSurvivorTip:String = (((((("<p>" + "<span class=\"title\">") + "Cannot Construct Barricade ") + "</span>\n") + "You cannot construct a barricade from this depot. There are no ") + "survivors here to carry the boards needed to create the barricade. ") + "</p>"); public static var towerSameTowerAddSupplyTip:String = ((((("<p>" + "<span class=\"title\">") + "Source Depot ") + "</span>\n") + "A structure can't have a supply line to itself. You may press escape to cancel. ") + "</p>"); public static var musicBarLabel:String = "Music Volume "; public static var editPlaza:String = "Plaza "; public static var systemTip:String = ((((("<p>" + "<span class=\"title\">") + "System Menu<span class=\"hotkey\">[Esc]</span>") + "</span>\n") + "Save, set options, restart, or quit. ") + "</p>"); public static var buildingSupermarketText:String = "Supermarket (Food) "; public static var ammoQuotaTip:String = (((("<p>" + "<span class=\"title\">Ammo Quota</span>\n") + "How much ammo you want to keep on hand here. Snipers use ammo to ") + "shoot zombies. ") + "</p>"); public static var pediaStyleSheet:String = (((((((((((((("p { " + "font-size: 18; ") + "color: #dddddd; ") + "} ") + "a { ") + "font-size: 18; ") + "text-decoration: underline; ") + "color: #aaaaff; ") + "} ") + ".title { ") + "font-size: 24; ") + "font-weight: bold; ") + "text-align: center; ") + "color: #ffffff; ") + "} "); public static var backgroundEntranceTip:String = ((((((("<p>" + "<span class=\"title\">") + "Building Entrance Here ") + "</span>\n") + "There is a building entrance here which prevents you from ") + "building. You can build a workshop on this square to harvest the ") + "resources in the building. You may press escape to cancel. ") + "</p>"); public static var clickRestartTutorial:String = "<p>You have done something unexpected. Press escape to go to the system menu and select restart map to replay the tutorial from the beginning.</p>"; public static function levelsEdit(_arg1:String):String{ return ((("Level: " + _arg1) + " ")); } public static function timeLabel(_arg1:String, _arg2:String, _arg3:String):String{ return ((((((("Time: " + _arg1) + ":") + _arg2) + "") + _arg3) + " ")); } public static function zombiesLeft(_arg1:String):String{ return ((("Zombies Left: " + _arg1) + " ")); } public static function bridgesLeft(_arg1:String):String{ return ((("Bridges Left: " + _arg1) + " ")); } public static function survivorsEdit(_arg1:String):String{ return ((("Survivors: " + _arg1) + " ")); } public static function boardsEdit(_arg1:String):String{ return ((("Boards: " + _arg1) + " ")); } public static function ammoEdit(_arg1:String):String{ return ((("Ammo: " + _arg1) + " ")); } public static function buildingText(_arg1:String, _arg2:String, _arg3:String, _arg4:String):String{ return (((((((((((((("<p>" + "") + _arg1) + "\n") + "Zombie Threat: <span class=\"status\">") + _arg2) + "</span>\n") + "Resource Level: <span class=\"status\">") + _arg3) + "</span>\n") + "") + _arg4) + " ") + "</p>")); } public static function upgradeSniperTip(_arg1:String):String{ return ((((((((("<p>" + "<span class=\"title\">") + "<span class=\"hotkey\">U</span>pgrade") + "</span>\n") + "<span class=\"cost\">") + _arg1) + " Boards</span>\n") + "Upgrade this sniper tower to increase its range by 50%. ") + "</p>")); } public static function zombiesEdit(_arg1:String):String{ return ((("Zombies: " + _arg1) + " ")); } public static function backgroundBuildSupplyTip(_arg1:String):String{ return (((((((("<p>" + "<span class=\"title\">") + "Need Supply Line ") + "</span>\n") + "You must build within ") + _arg1) + " squares of an existing depot so it can provide supplies. ") + "</p>")); } } }//package ui
Section 213
//Time (ui.Time) package ui { import flash.*; public class Time { public var seconds:int; public var tens:int; public var minutes:int; public function Time(_arg1:int=0):void{ var _local2:int; super(); if (!Boot.skip_constructor){ _local2 = Math.floor((_arg1 / Option.fps)); this.minutes = Math.floor((_local2 / 60)); _local2 = (_local2 % 60); this.tens = Math.floor((_local2 / 10)); this.seconds = (_local2 % 10); }; } public function toString():String{ return (Text.timeLabel(Std.string(this.minutes), Std.string(this.tens), Std.string(this.seconds))); } } }//package ui
Section 214
//TimerClip (ui.TimerClip) package ui { import flash.display.*; public dynamic class TimerClip extends MovieClip { public var isPause:MovieClip; public var seconds:MovieClip; public var isPlay:MovieClip; public var minutes:MovieClip; public var tens:MovieClip; public function TimerClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); minutes.stop(); tens.stop(); seconds.stop(); } } }//package ui
Section 215
//ToolTip (ui.ToolTip) package ui { import flash.display.*; import flash.events.*; import flash.text.*; import flash.*; public class ToolTip { protected var framesLeft:int; protected var clip:ToolTipClip; protected var shouldShow:Boolean; protected static var margin:int = 40; public function ToolTip(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ var _local3:StyleSheet; super(); if (!Boot.skip_constructor){ this.clip = new ToolTipClip(); _arg1.addChild(this.clip); this.clip.visible = false; this.clip.stage.addEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.clip.mouseEnabled = false; this.clip.mouseChildren = false; this.clip.text.wordWrap = true; this.clip.text.autoSize = TextFieldAutoSize.LEFT; _local3 = new StyleSheet(); _local3.parseCSS(Text.toolTipStyleSheet); this.clip.text.styleSheet = _local3; this.shouldShow = false; this.framesLeft = 0; }; } public function hide():void{ this.shouldShow = false; this.clip.visible = false; } public function cleanup():void{ this.clip.stage.removeEventListener(MouseEvent.MOUSE_MOVE, this.mouseMove); this.clip.parent.removeChild(this.clip); } public function enterFrame():void{ this.framesLeft--; if (this.framesLeft <= 0){ this.refresh(); }; } protected function mouseMove(_arg1:MouseEvent):void{ this.framesLeft = Option.toolTipDelay; } public function refresh():void{ if (((this.shouldShow) && ((this.framesLeft <= 0)))){ this.clip.visible = true; } else { this.clip.visible = false; }; } public function show(_arg1:String):void{ var _local2:LayoutGame; var _local3:Point; this.shouldShow = true; if (_arg1 != null){ _local2 = Game.view.layout; this.clip.text.width = _local2.tipWidth; this.clip.text.htmlText = _arg1; _local3 = new Point(Math.floor(this.clip.stage.mouseX), Math.floor(this.clip.stage.mouseY)); this.clip.x = (_local3.x + margin); if ((this.clip.x + this.clip.text.width) > _local2.screenSize.x){ this.clip.x = ((_local3.x - margin) - this.clip.text.width); }; this.clip.y = (_local3.y + margin); if ((this.clip.y + this.clip.text.height) > _local2.screenSize.y){ this.clip.y = ((_local3.y - margin) - this.clip.text.height); }; this.clip.back.graphics.clear(); this.clip.back.graphics.beginFill(Color.toolTip, Color.textBoxAlpha); this.clip.back.graphics.drawRoundRect(0, 0, this.clip.text.width, this.clip.text.height, 10, 10); this.clip.back.graphics.endFill(); } else { this.shouldShow = false; }; this.refresh(); } } }//package ui
Section 216
//ToolTipClip (ui.ToolTipClip) package ui { import flash.display.*; import flash.text.*; public dynamic class ToolTipClip extends MovieClip { public var text:TextField; public var back:MovieClip; public function ToolTipClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui
Section 217
//TotalResource (ui.TotalResource) package ui { import flash.display.*; import flash.text.*; import flash.*; public class TotalResource { protected var clip:TotalResourceClip; public function TotalResource(_arg1:DisplayObjectContainer=null, _arg2:LayoutGame=null):void{ if (!Boot.skip_constructor){ this.clip = new TotalResourceClip(); _arg1.addChild(this.clip); this.resize(_arg2); if (Game.settings.isEditor()){ this.clip.visible = false; }; }; } public function cleanup():void{ this.clip.parent.removeChild(this.clip); } protected function updateText(_arg1:Resource, _arg2:TextField, _arg3:Array):void{ var _local4:int; _local4 = Lib.resourceToIndex(_arg1); _arg2.text = Std.string(_arg3[_local4]); } public function update(_arg1:Array):void{ this.updateText(Resource.AMMO, this.clip.ammoStock, _arg1); this.updateText(Resource.BOARDS, this.clip.boardsStock, _arg1); this.updateText(Resource.SURVIVORS, this.clip.survivorsStock, _arg1); } public function resize(_arg1:LayoutGame):void{ this.clip.x = _arg1.totalResourceOffset.x; this.clip.y = _arg1.totalResourceOffset.y; } } }//package ui
Section 218
//TotalResourceClip (ui.TotalResourceClip) package ui { import flash.display.*; import flash.text.*; public dynamic class TotalResourceClip extends MovieClip { public var ammoStockBackground:MovieClip; public var survivorsIcon:MovieClip; public var boardsIcon:MovieClip; public var ammoIcon:MovieClip; public var boardsStock:TextField; public var boardsStockBackground:MovieClip; public var survivorsStock:TextField; public var ammoStock:TextField; public var survivorsStockBackground:MovieClip; } }//package ui
Section 219
//TowerSprite (ui.TowerSprite) package ui { import flash.*; public class TowerSprite { protected var stack:ImageStack; protected var upgradeOffset:int; protected var overlay:VirtualImage; protected var image:VirtualImage; protected var needs:Array; protected var towerType:int; protected static var barricadeCount:int = 3; protected static var towerFrames:Array = [2, 5, 21, 23]; public function TowerSprite(_arg1:Point=null, _arg2:int=0, _arg3:int=0):void{ var _local4:int; var _local5:int; var _local6:int; super(); if (!Boot.skip_constructor){ this.needs = []; _local4 = 0; _local5 = Option.resourceCount; while (_local4 < _local5) { var _temp1 = _local4; _local4 = (_local4 + 1); _local6 = _temp1; this.needs.push(false); }; if (_arg1 != null){ this.stack = new ImageStack(); this.stack.setPixel(new Point(Lib.cellToPixel(_arg1.x), Lib.cellToPixel(_arg1.y))); this.image = new VirtualImage(SpriteDisplay.TOWER_LAYER, new Point(0, 0), Label.tower); this.image.setRotationOffset(_arg3); this.overlay = new VirtualImage(SpriteDisplay.OVERLAY_LAYER, new Point(0, 0), Label.towerNeed); this.stack.addImage(this.image); this.stack.addImage(this.overlay); this.towerType = _arg2; this.upgradeOffset = 0; if (this.towerType == Tower.BARRICADE){ this.upgradeOffset = Lib.rand(barricadeCount); }; this.update(); }; }; } public function update():void{ var _local1:int; _local1 = (towerFrames[this.towerType] + this.upgradeOffset); this.image.setFrame(_local1); this.overlay.setFrame(this.getNeedFrame()); this.stack.update(); } public function changeUpgrade(_arg1:int):void{ this.upgradeOffset = _arg1; this.update(); } protected function getNeedFrame():int{ var _local1:int; var _local2:int; var _local3:int; var _local4:Array; var _local5:Resource; var _local6:int; _local1 = 1; _local2 = 1; _local3 = 0; _local4 = [Resource.AMMO, Resource.BOARDS, Resource.SURVIVORS]; while (_local3 < _local4.length) { _local5 = _local4[_local3]; _local3++; _local6 = Lib.resourceToIndex(_local5); if (this.needs[_local6]){ _local1 = (_local1 + _local2); }; _local2 = (_local2 * 2); }; return (_local1); } public function changeColor(_arg1:ShadowColor):void{ this.image.setOverlayColor(_arg1); } public function upgrade():void{ this.upgradeOffset++; this.update(); } public function addNeed(_arg1:Resource):void{ var _local2:int; _local2 = Lib.resourceToIndex(_arg1); if (this.needs[_local2] == false){ this.needs[_local2] = true; this.update(); }; } public function rotate(_arg1:int):void{ this.image.setRotationOffset(_arg1); } public function goto(_arg1:Point):void{ this.stack.setPixel(_arg1); } public function cleanup():void{ this.stack.cleanup(); } public function changeCanOperate(_arg1:Boolean):void{ this.overlay.changeOperate(_arg1); } public function changeSupplyTarget(_arg1:Boolean):void{ this.overlay.changeSupplyTarget(_arg1); } public function removeNeed(_arg1:Resource):void{ var _local2:int; _local2 = Lib.resourceToIndex(_arg1); if (this.needs[_local2] == true){ this.needs[_local2] = false; this.update(); }; } public function save(){ return ({stack:this.stack.save(), image:this.image.save(), overlay:this.overlay.save(), towerType:this.towerType, upgradeOffset:this.upgradeOffset, needs:this.needs.copy()}); } public static function saveS(_arg1:TowerSprite){ return (_arg1.save()); } public static function load(_arg1):TowerSprite{ var _local2:TowerSprite; var _local3:int; var _local4:int; var _local5:int; _local2 = new TowerSprite(null, 0, 0); _local2.stack = ImageStack.load(_arg1.stack); _local2.image = VirtualImage.load(_arg1.image); _local2.overlay = VirtualImage.load(_arg1.overlay); _local2.stack.addImage(_local2.image); _local2.stack.addImage(_local2.overlay); _local2.towerType = _arg1.towerType; _local2.upgradeOffset = _arg1.upgradeOffset; _local3 = 0; _local4 = Option.resourceCount; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; _local2.needs[_local5] = _arg1.needs[_local5]; }; _local2.update(); return (_local2); } } }//package ui
Section 220
//TutorialArrowClip (ui.TutorialArrowClip) package ui { import flash.display.*; public dynamic class TutorialArrowClip extends MovieClip { public var tail:MovieClip; } }//package ui
Section 221
//TutorialClip (ui.TutorialClip) package ui { import flash.display.*; import flash.text.*; public dynamic class TutorialClip extends MovieClip { public var arrow:TutorialArrowClip; public var next:MovieClip; public var text:TextField; public var back:MovieClip; public function TutorialClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package ui
Section 222
//Util (ui.Util) package ui { import flash.display.*; import logic.*; import flash.text.*; public class Util { public static var SIZE_MAX_CHARS:int = 3; public static var NAME_MAX_CHARS:int = 100; public static var difficultyText:Array = [Text.tutorialText, Text.noviceText, Text.veteranText, Text.expertText, Text.quartermasterText]; public static function resizeText(_arg1:TextField, _arg2:Point, _arg3:Point):void{ _arg1.x = _arg2.x; _arg1.y = _arg2.y; _arg1.width = _arg3.x; _arg1.height = _arg3.y; } public static function fleeClick():void{ var _local1:Point; _local1 = Game.select.getSelected(); if (_local1 != null){ Game.script.trigger(Script.CLICK_FLEE, _local1); Game.map.getCell(_local1.x, _local1.y).fleeTower(); Main.sound.play(SoundPlayer.TOWER_ABANDON); Game.update.changeSelect(null); }; } public static function success():void{ Main.sound.play(SoundPlayer.BUTTON_SUCCESS); } public static function createResourceBars(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:Point, _arg4:Point, _arg5:Array, _arg6:Function, _arg7:Function, _arg8:LayoutGame):Array{ var _local9:Array; var _local10:Point; var _local11:int; var _local12:Resource; _local9 = []; _local10 = _arg2.clone(); _local11 = 0; while (_local11 < _arg5.length) { _local12 = _arg5[_local11]; _local11++; _local9.push(new ResourceBar(_arg1, _local12, _local10.x, _local10.y, _arg3.x, _arg6, _arg7, _arg8)); _local10.y = (_local10.y + _arg4.y); }; return (_local9); } public static function showResourceBars(_arg1:Array):void{ var _local2:int; var _local3:ResourceBar; _local2 = 0; while (_local2 < _arg1.length) { _local3 = _arg1[_local2]; _local2++; showOneResourceBar(_local3); }; } public static function failure():void{ Main.sound.play(SoundPlayer.BUTTON_FAILED); } public static function homeInCount(_arg1:int, _arg2:int, _arg3:int, _arg4:int):int{ var _local5:int; var _local6:int; _local5 = angleDistance(_arg3, _arg4); _local6 = Math.floor((_local5 / _arg2)); return (Math.floor(Math.min(_arg1, _local6))); } public static function centerMenu(_arg1:Point, _arg2:Point):Point{ return (new Point(Math.floor(((_arg2.x - _arg1.x) / 2)), Math.floor(((_arg2.y - _arg1.y) / 2)))); } public static function attachButton(_arg1:String):SimpleButton{ var _local2:Class; _local2 = Type.resolveClass(_arg1); return (Type.createInstance(_local2, [])); } public static function noTip():String{ return (null); } public static function createTitleField(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:Point):TextField{ var _local4:TextField; var _local5:TextFormat; _local4 = createTextField(_arg1, _arg2, _arg3); _local5 = createTextFormat(); _local5.color = Color.menuTitle; _local5.size = 24; _local5.align = TextFormatAlign.CENTER; _local4.defaultTextFormat = _local5; return (_local4); } public static function alignBottom(_arg1:DisplayObject, _arg2:Point):void{ _arg1.y = ((_arg2.y - _arg1.height) - 5); } public static function createTextFormat():TextFormat{ var _local1:TextFormat; _local1 = new TextFormat(); _local1.align = TextFormatAlign.LEFT; return (_local1); } public static function towerMenuHotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; _local3 = true; if ((((_arg2 == Keyboard.deleteCode)) || ((_arg2 == Keyboard.backSpaceCode)))){ fleeClick(); success(); } else { _local3 = false; }; return (_local3); } public static function homeIn(_arg1:int, _arg2:int, _arg3:int, _arg4:int):int{ var _local5:int; var _local6:int; _local5 = _arg3; _local6 = angleDistance(_arg3, _arg4); if (_local6 >= (_arg1 * _arg2)){ if (angleDistance((_arg3 + 1), _arg4) < _local6){ _local5 = (_arg3 + (_arg1 * _arg2)); } else { _local5 = (_arg3 - (_arg1 * _arg2)); }; } else { _local5 = _arg4; }; _local6 = angleDistance(_local5, _arg4); if (_local6 < _arg2){ _local5 = _arg4; }; return (_local5); } public static function alignRight(_arg1:DisplayObject, _arg2:Point):void{ _arg1.x = ((_arg2.x - _arg1.width) - 5); } public static function angleDistance(_arg1:int, _arg2:int):int{ var _local3:int; var _local4:int; _local3 = ((_arg1 + 360) % 360); _local4 = ((_arg2 + 360) % 360); return (Math.floor(Math.min(Lib.intAbs((_local3 - _local4)), (360 - Lib.intAbs((_local3 - _local4)))))); } public static function setupInputText(_arg1:TextField, _arg2:String=null, _arg3=null):void{ _arg1.selectable = true; _arg1.autoSize = TextFieldAutoSize.NONE; _arg1.type = TextFieldType.INPUT; _arg1.mouseEnabled = true; _arg1.multiline = false; _arg1.wordWrap = false; _arg1.alwaysShowSelection = true; if (_arg2 != null){ _arg1.restrict = _arg2; }; if (_arg3 != null){ _arg1.maxChars = _arg3; }; } public static function scaleToFit(_arg1:DisplayObject, _arg2:Point):void{ var _local3:Number; var _local4:Number; _local3 = (_arg2.x / 640); _local4 = (_arg2.y / 480); if (_local3 >= _local4){ _arg1.scaleX = _local4; _arg1.scaleY = _local4; } else { _arg1.scaleX = _local3; _arg1.scaleY = _local3; }; } public static function centerHorizontally(_arg1:DisplayObject, _arg2:Point):void{ _arg1.x = ((_arg2.x - _arg1.width) / 2); } public static function alignLabel(_arg1:DisplayObject, _arg2:TextField):void{ _arg2.x = (_arg1.x + 34.6); _arg2.y = (_arg1.y + 6.7); } public static function createTextField(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:Point):TextField{ var _local4:TextField; _local4 = new TextField(); _arg1.addChild(_local4); resizeText(_local4, _arg2, _arg3); _local4.htmlText = ""; _local4.type = TextFieldType.DYNAMIC; _local4.selectable = false; _local4.wordWrap = true; _local4.autoSize = TextFieldAutoSize.LEFT; _local4.embedFonts = true; _local4.mouseEnabled = false; _local4.antiAliasType = AntiAliasType.ADVANCED; _local4.defaultTextFormat = createTextFormat(); return (_local4); } public static function minSize(_arg1:Point):Point{ return (new Point(Math.floor(Math.min(_arg1.x, ((_arg1.y * 4) / 3))), Math.floor(Math.min(((_arg1.x * 3) / 4), _arg1.y)))); } public static function drawBase(_arg1:Graphics, _arg2:Point, _arg3:Point, _arg4:int, _arg5:Number):void{ _arg1.clear(); _arg1.beginFill(_arg4, _arg5); _arg1.drawRect(_arg2.x, _arg2.y, _arg3.x, _arg3.y); _arg1.endFill(); } public static function fleeHover():String{ return (Text.fleeTip); } public static function centerVertically(_arg1:DisplayObject, _arg2:Point):void{ _arg1.y = ((_arg2.y - _arg1.height) / 2); } public static function showOneResourceBar(_arg1:ResourceBar):void{ var _local2:Resource; var _local3:Point; var _local4:Tower; var _local5:int; _local2 = _arg1.getPayload(); _local3 = Game.select.getSelected(); if (((!((_local3 == null))) && (Game.map.getCell(_local3.x, _local3.y).hasTower()))){ _local4 = Game.map.getCell(_local3.x, _local3.y).getTower(); _local5 = Game.map.getCell(_local3.x, _local3.y).getRubbleCount(_local2); _arg1.show(_local4.countResource(_local2), _local4.countIncoming(_local2), _local4.countReserve(_local2), _local5); } else { throw (new Error("ResourceBar shown when there is no valid tower.")); }; } } }//package ui
Section 223
//View (ui.View) package ui { import flash.display.*; import ui.menu.*; import flash.*; public class View { public var barSource:BitmapData; public var scrollMenu:ScrollMenu; public var fpsCounter:FpsCounter; public var frameAdvance:FrameAdvance; public var sideMenu:SideBar; public var mini:MiniMap; public var imageList:List; public var centerMenu:CenterMenu; public var toolTip:ToolTip; public var spawner:SpawnDisplay; public var layout:LayoutGame; public var warning:FailWarning; public var quickMenu:Quick; public var buildMenu:BuildMenu; public var window:Window; public var totals:TotalResource; public var scriptSprite:ScriptView; public var explosions:List; public function View(_arg1:DisplayObjectContainer=null):void{ if (!Boot.skip_constructor){ this.frameAdvance = new FrameAdvance(); this.imageList = new List(); this.initBarSource(); this.layout = new LayoutGame(_arg1.stage.stageWidth, _arg1.stage.stageHeight, Game.settings); this.window = new Window(_arg1, this.layout); this.explosions = new List(); }; } public function initMenus(_arg1:DisplayObjectContainer):void{ this.spawner = new SpawnDisplay(_arg1, this.layout); this.mini = new MiniMap(_arg1, this.layout); this.buildMenu = new BuildMenu(_arg1, this.layout); this.quickMenu = new Quick(_arg1, this.layout); this.sideMenu = new SideBar(_arg1, this.layout); this.totals = new TotalResource(_arg1, this.layout); this.scrollMenu = new ScrollMenu(_arg1, this.layout.screenSize); this.scriptSprite = new ScriptView(_arg1, this.layout); this.toolTip = new ToolTip(_arg1, this.layout); this.warning = new FailWarning(_arg1, this.layout.screenSize); this.centerMenu = new CenterMenu(); this.fpsCounter = new FpsCounter(_arg1, this.layout); Main.key.addHandler(this.centerMenu.hotkey); Main.key.addHandler(this.buildMenu.hotkey); if (!Game.settings.isEditor()){ Main.key.addHandler(this.sideMenu.hotkey); Main.key.addHandler(this.quickMenu.hotkey); }; Main.key.addHandler(this.scrollMenu.hotkey); Main.key.addHandler(this.hotkey); } public function initCenter(_arg1:DisplayObjectContainer):void{ this.centerMenu.init(_arg1, this.layout); } protected function cleanupBarSource():void{ this.barSource.dispose(); this.barSource = null; } public function changeSelect(_arg1:Point):void{ var _local2:MapCell; if (_arg1 == null){ Game.update.changeSelect(null); } else { _local2 = Game.map.getCell(_arg1.x, _arg1.y); if (((_local2.hasTower()) || (_local2.hasShadow()))){ if (((!(Game.settings.isEditor())) || (Point.isEqual(Game.editor.getSelectedSquare(), _arg1)))){ Game.update.changeSelect(_arg1); } else { Game.update.changeSelect(null); }; } else { Game.update.changeSelect(null); }; }; } public function updateImageList():void{ var _local1:*; var _local2:ImageStack; _local1 = this.imageList.iterator(); while (_local1.hasNext()) { _local2 = _local1.next(); _local2.update(); }; } protected function initBarSource():void{ var _local1:MovieClip; var _local2:int; var _local3:int; _local1 = Workaround.attach("resourcetiles"); _local2 = Lib.cellToPixel(3); _local3 = Lib.cellToPixel(6); this.barSource = new BitmapData(_local2, _local3, true, 0); this.barSource.draw(_local1); _local1 = null; } public function cleanup():void{ Main.key.clearHandlers(); this.fpsCounter.cleanup(); this.fpsCounter = null; this.centerMenu.cleanup(); this.centerMenu = null; this.warning.cleanup(); this.warning = null; this.toolTip.cleanup(); this.toolTip = null; this.scriptSprite.cleanup(); this.scriptSprite = null; this.scrollMenu.cleanup(); this.scrollMenu = null; this.totals.cleanup(); this.totals = null; this.sideMenu.cleanup(); this.sideMenu = null; this.quickMenu.cleanup(); this.quickMenu = null; this.buildMenu.cleanup(); this.buildMenu = null; this.mini.cleanup(); this.mini = null; this.spawner.cleanup(); this.spawner = null; this.window.cleanup(); this.window = null; this.layout = null; this.cleanupBarSource(); } public function hotkey(_arg1:String, _arg2:int):Boolean{ var _local3:Boolean; var _local4:Point; var _local5:Point; _local3 = true; if (_arg2 == Keyboard.escapeCode){ Util.success(); if (Game.select.getSelected() != null){ Game.update.changeSelect(null); } else { this.centerMenu.changeState(CenterMenu.SYSTEM); }; } else { if (_arg1 == "`"){ Game.toggleFast(); } else { if (_arg1 == ";"){ _local4 = new Point(Math.floor(Main.getRoot().stage.mouseX), Math.floor(Main.getRoot().stage.mouseY)); _local5 = Game.view.window.toAbsolute(Lib.pixelToCell(_local4.x), Lib.pixelToCell(_local4.y)); Lib.trace(("Mouse Pos: " + _local4.toString())); Lib.trace(("Map Pos: " + _local5.toString())); } else { _local3 = false; }; }; }; return (_local3); } public function resize():void{ this.toolTip.hide(); this.scriptSprite.resize(this.layout); this.mini.resize(this.layout); this.window.resize(this.layout); this.spawner.resize(this.layout); this.quickMenu.resize(this.layout); this.sideMenu.resize(this.layout); this.buildMenu.resize(this.layout); this.centerMenu.resize(this.layout); this.warning.resize(this.layout.screenSize); this.totals.resize(this.layout); this.scrollMenu.resize(this.layout.screenSize); } public function enterFrame():void{ this.fpsCounter.enterFrame(); this.spawner.step(); if (!Game.pause.isPaused()){ this.frameAdvance.fixedStep(); }; this.toolTip.enterFrame(); this.sideMenu.enterFrame(); this.warning.enterFrame(); this.scrollMenu.enterFrame(); } } }//package ui
Section 224
//VirtualImage (ui.VirtualImage) package ui { import flash.display.*; import flash.geom.*; import flash.filters.*; import flash.*; public class VirtualImage { protected var frameChanged:Boolean; protected var scaleChanged:Boolean; protected var canOperate:Boolean; protected var centerChanged:Boolean; protected var glowFilterChanged:Boolean; protected var isSupplyTarget:Boolean; protected var rotationOffset:int; protected var linkage:String; protected var scale:Number; protected var overlayChanged:Boolean; protected var layer:int; protected var positionChanged:Boolean; protected var windowPos:Point; protected var center:Point; protected var rotationChanged:Boolean; protected var image:CenteredImage; protected var isPermanent:Boolean; protected var alpha:Number; protected var pos:Point; protected var glowFilter:GlowFilter; protected var visibleChanged:Boolean; protected var frame:int; protected var visible:Boolean; protected var overlayColor:ShadowColor; protected var alphaChanged:Boolean; protected var rotation:int; protected static var supplyCenterLength:int = 32; protected static var supplySideLength:int = 8; protected static var noShootRadius:int = 10; protected static var noShootThickness:int = 4; protected static var supplyArrowAngle:Number = 0.628318530717959; protected static var supplyArrowThickness:int = 5; public function VirtualImage(_arg1:int=0, _arg2:Point=null, _arg3:String=null):void{ if (!Boot.skip_constructor){ this.image = null; this.layer = _arg1; this.frame = 1; this.linkage = _arg3; this.frameChanged = true; this.scale = 1; this.scaleChanged = true; this.overlayColor = ShadowColor.NORMAL; this.canOperate = true; this.isSupplyTarget = false; this.overlayChanged = true; this.center = _arg2.clone(); this.centerChanged = true; this.pos = new Point(0, 0); this.windowPos = null; this.positionChanged = true; this.rotation = 0; this.rotationOffset = 0; this.rotationChanged = true; this.alpha = 1; this.alphaChanged = true; this.visible = true; this.visibleChanged = true; this.glowFilter = null; this.glowFilterChanged = true; this.isPermanent = false; }; } public function setRotation(_arg1:int):void{ if (this.rotation != _arg1){ this.rotation = _arg1; this.rotationChanged = true; }; } protected function drawShadow():void{ var _local1:ColorTransform; var _local2:enum; _local1 = null; _local2 = this.overlayColor; switch (_local2.index){ case 0: _local1 = Color.normalTransform; break; case 1: _local1 = Color.allowTransform; break; case 2: _local1 = Color.denyTransform; break; case 3: _local1 = Color.plannedTransform; break; }; this.image.setTransform(_local1); } public function setScale(_arg1:Number):void{ if (this.scale != _arg1){ this.scale = _arg1; this.scaleChanged = true; }; } public function advanceFrame():void{ this.setFrame((this.frame + 1)); } public function show():void{ if (!this.visible){ this.visible = true; this.visibleChanged = true; }; } public function changeLinkage(_arg1:String):void{ if (this.linkage != _arg1){ this.linkage = _arg1; if (this.image != null){ this.releaseClip(); this.inside(this.windowPos); }; }; } public function setPos(_arg1:Point):void{ if (!Point.isEqual(this.pos, _arg1)){ this.pos = _arg1; this.positionChanged = true; }; } public function setAlpha(_arg1:Number):void{ if (this.alpha != _arg1){ this.alpha = _arg1; this.alphaChanged = true; }; } protected function drawCannotOperate():void{ if (!this.canOperate){ this.image.drawLine(Color.noShoot, noShootThickness, true, new Point(-(noShootRadius), -(noShootRadius)), new Point(noShootRadius, noShootRadius)); this.image.drawLine(Color.noShoot, noShootThickness, true, new Point(noShootRadius, -(noShootRadius)), new Point(-(noShootRadius), noShootRadius)); }; } public function getPos():Point{ return (this.pos); } public function cleanup():void{ this.releaseClip(); } public function outside(_arg1:Point):void{ if (!this.isPermanent){ this.releaseClip(); } else { this.inside(_arg1); }; } public function setFrame(_arg1:int):void{ if (this.frame != _arg1){ this.frame = _arg1; this.frameChanged = true; }; } public function changeSupplyTarget(_arg1:Boolean):void{ if (this.isSupplyTarget != _arg1){ this.isSupplyTarget = _arg1; this.overlayChanged = true; }; } public function changeOperate(_arg1:Boolean):void{ if (this.canOperate != _arg1){ this.canOperate = _arg1; this.overlayChanged = true; }; } public function getFrame():int{ return (this.frame); } public function setRotationOffset(_arg1:int):void{ if (this.rotationOffset != _arg1){ this.rotationOffset = _arg1; this.rotationChanged = true; }; } protected function drawSupplyLeg(_arg1:Number, _arg2:int, _arg3:int):void{ var _local4:Point; _local4 = new Point(Math.round((Math.cos(_arg1) * _arg2)), Math.round((Math.sin(_arg1) * _arg2))); this.image.drawLine(_arg3, supplyArrowThickness, true, new Point(0, 0), _local4); } public function hide():void{ if (this.visible){ this.visible = false; this.visibleChanged = true; }; } protected function drawSupplyTarget(_arg1:Point):void{ var _local2:Point; var _local3:int; var _local4:Tower; var _local5:int; var _local6:int; var _local7:Point; var _local8:Number; if (this.isSupplyTarget){ _local2 = Game.select.getSelected(); _local3 = Game.map.getCell(Lib.pixelToCell(_arg1.x), Lib.pixelToCell(_arg1.y)).getTower().getType(); _local4 = Game.map.getCell(_local2.x, _local2.y).getTower(); _local5 = _local4.getType(); _local6 = Color.supplyOtherLine; if ((((_local3 == Tower.DEPOT)) && ((_local5 == Tower.DEPOT)))){ _local6 = Color.supplyDepotLine; }; _local7 = new Point((Lib.cellToPixel(_local2.x) - _arg1.x), (Lib.cellToPixel(_local2.y) - _arg1.y)); _local8 = ((Math.PI / 2) - Math.atan2(_local7.x, _local7.y)); this.drawSupplyLeg(_local8, supplyCenterLength, _local6); this.drawSupplyLeg((_local8 - supplyArrowAngle), supplySideLength, _local6); this.drawSupplyLeg((_local8 + supplyArrowAngle), supplySideLength, _local6); }; } public function getClip():MovieClip{ var _local1:MovieClip; _local1 = null; if (this.isPermanent){ _local1 = this.image.getClip(); }; return (_local1); } public function update():void{ if (this.image != null){ if (this.frameChanged){ this.image.gotoFrame(this.frame); this.frameChanged = false; }; if (this.scaleChanged){ this.image.setScale(this.scale); this.scaleChanged = false; }; if (this.overlayChanged){ this.image.clear(); this.drawShadow(); this.drawCannotOperate(); this.drawSupplyTarget(this.pos); this.overlayChanged = false; }; if (this.centerChanged){ this.image.setCenter(this.center); this.centerChanged = false; }; if (this.positionChanged){ this.image.goto((this.pos.x - this.windowPos.x), (this.pos.y - this.windowPos.y)); this.positionChanged = false; }; if (this.rotationChanged){ this.image.rotate((this.rotation + this.rotationOffset)); this.rotationChanged = false; }; if (this.alphaChanged){ this.image.setAlpha(this.alpha); this.alphaChanged = false; }; if (this.visibleChanged){ if (this.visible){ this.image.show(); } else { this.image.hide(); }; this.visibleChanged = false; }; if (this.glowFilterChanged){ this.image.setGlowFilter(this.glowFilter); this.glowFilterChanged = false; }; }; } public function setGlowFilter(_arg1:GlowFilter):void{ this.glowFilter = _arg1; this.glowFilterChanged = true; } public function setPermanent():void{ var _local1:Point; this.isPermanent = true; _local1 = this.windowPos; this.windowPos = null; this.inside(_local1); } public function getRotation():int{ return (this.rotation); } public function setOverlayColor(_arg1:ShadowColor):void{ if (this.overlayColor != _arg1){ this.overlayColor = _arg1; this.overlayChanged = true; }; } public function releaseClip():void{ if (this.image != null){ Game.sprites.releaseSpriteClip(this.image, this.layer); this.image = null; }; } public function inside(_arg1:Point):void{ if (this.image == null){ this.image = Game.sprites.getSpriteClip(this.layer, this.linkage); this.image.show(); this.frameChanged = true; this.scaleChanged = true; this.overlayChanged = true; this.centerChanged = true; this.positionChanged = true; this.rotationChanged = true; this.alphaChanged = true; this.visibleChanged = true; this.glowFilterChanged = true; }; if (!Point.isEqual(_arg1, this.windowPos)){ this.windowPos = _arg1; this.positionChanged = true; }; this.update(); } public function save(){ return ({layer:this.layer, frame:this.frame, linkage:this.linkage, scale:this.scale, overlayColor:Lib.shadowColorToIndex(this.overlayColor), canOperate:this.canOperate, isSupplyTarget:this.isSupplyTarget, center:this.center.save(), pos:this.pos.save(), rotation:this.rotation, rotationOffset:this.rotationOffset, alpha:this.alpha, visible:this.visible}); } public static function load(_arg1):VirtualImage{ var _local2:VirtualImage; _local2 = new VirtualImage(_arg1.layer, Point.load(_arg1.center), _arg1.linkage); _local2.setFrame(_arg1.frame); _local2.setScale(_arg1.scale); _local2.setOverlayColor(Lib.indexToShadowColor(_arg1.overlayColor)); _local2.changeOperate(_arg1.canOperate); _local2.changeSupplyTarget(_arg1.isSupplyTarget); _local2.setPos(Point.load(_arg1.pos)); _local2.setRotation(_arg1.rotation); _local2.setRotationOffset(_arg1.rotationOffset); _local2.setAlpha(_arg1.alpha); if (_arg1.visible){ _local2.show(); } else { _local2.hide(); }; return (_local2); } public static function saveS(_arg1:VirtualImage){ return (_arg1.save()); } } }//package ui
Section 225
//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 226
//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 227
//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 228
//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 229
//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 230
//Workaround (ui.Workaround) package ui { import flash.display.*; import flash.geom.*; import flash.*; public class Workaround { public static var SHIFT:uint = 16; public static function copyPixels(_arg1:Bitmap, _arg2:BitmapData, _arg3:Rectangle, _arg4:int, _arg5:int):void{ _arg1.bitmapData.copyPixels(_arg2, _arg3, new Point(_arg4, _arg5)); } public static function drawOverPixels(_arg1:Bitmap, _arg2:DisplayObject, _arg3:int, _arg4:int, _arg5:Array):void{ var _local6:Matrix; var _local7:ColorTransform; _local6 = new Matrix(); _local6.translate((_arg3 * 2), (_arg4 * 2)); _local6.scale(0.5, 0.5); _local7 = null; if (_arg5 != null){ _local7 = new ColorTransform(0, 0, 0, 1, _arg5[0], _arg5[1], _arg5[2], 0); }; _arg1.bitmapData.draw(_arg2, _local6, _local7); } public static function copyOverPixels(_arg1:Bitmap, _arg2:BitmapData, _arg3:Rectangle, _arg4:int, _arg5:int):void{ _arg1.bitmapData.copyPixels(_arg2, _arg3, new Point(_arg4, _arg5), null, null, true); } public static function fillRect(_arg1:Bitmap, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int):void{ var _local7:Rectangle; _local7 = new Rectangle(_arg2, _arg3, (_arg4 - _arg2), (_arg5 - _arg3)); _arg1.bitmapData.fillRect(_local7, _arg6); } public static function attach(_arg1:String):MovieClip{ return (Lib.attach(_arg1)); } } }//package ui
Section 231
//ag_intro_mc_6 (zomlog_fla.ag_intro_mc_6) package zomlog_fla { import flash.display.*; public dynamic class ag_intro_mc_6 extends MovieClip { public function ag_intro_mc_6(){ addFrameScript(217, frame218); } function frame218(){ stop(); } } }//package zomlog_fla
Section 232
//AssetClip_9 (zomlog_fla.AssetClip_9) package zomlog_fla { import flash.display.*; public dynamic class AssetClip_9 extends MovieClip { public function AssetClip_9(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zomlog_fla
Section 233
//ButtonLeft_383 (zomlog_fla.ButtonLeft_383) package zomlog_fla { import flash.display.*; public dynamic class ButtonLeft_383 extends MovieClip { public function ButtonLeft_383(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zomlog_fla
Section 234
//ButtonRight_388 (zomlog_fla.ButtonRight_388) package zomlog_fla { import flash.display.*; public dynamic class ButtonRight_388 extends MovieClip { public function ButtonRight_388(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zomlog_fla
Section 235
//DepotClip_223 (zomlog_fla.DepotClip_223) package zomlog_fla { import flash.display.*; public dynamic class DepotClip_223 extends MovieClip { public function DepotClip_223(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zomlog_fla
Section 236
//GameClip_499 (zomlog_fla.GameClip_499) package zomlog_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.text.*; import flash.geom.*; import flash.filters.*; import flash.media.*; import flash.*; import flash.ui.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.xml.*; public dynamic class GameClip_499 extends MovieClip { public var loader:Loader; public var paramObj:Object; public var apiPath:String; public var request:URLRequest; public var kongregate; public var boot; public function GameClip_499(){ addFrameScript(1, frame2); } public function loadComplete(_arg1:Event):void{ kongregate = _arg1.target.content; kongregate.services.connect(); Main.kongregate = kongregate; kongregate.stats.submit("Player", 1); } function frame2(){ paramObj = LoaderInfo(root.loaderInfo).parameters; apiPath = ((paramObj.kongregate_api_path) || ("http://www.kongregate.com/flash/API_AS3_Local.swf")); Security.allowDomain(apiPath); request = new URLRequest(apiPath); loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); loader.load(request); this.addChild(loader); boot = new Boot(null); stage.align = StageAlign.TOP_LEFT; stage.addChild(boot); Main.main(); stop(); } } }//package zomlog_fla
Section 237
//JonLogo_483 (zomlog_fla.JonLogo_483) package zomlog_fla { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.text.*; import flash.geom.*; 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_483 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_483(){ 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 238
//Main_logo_484 (zomlog_fla.Main_logo_484) package zomlog_fla { import flash.display.*; public dynamic class Main_logo_484 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 239
//MainTimeline (zomlog_fla.MainTimeline) package zomlog_fla { import flash.events.*; import flash.display.*; import flash.text.*; import flash.net.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.printing.*; import flash.system.*; import flash.ui.*; import flash.utils.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public var startHeight; public var ag:MovieClip; public var frame; public var url; public var startWidth; public var logomc:MovieClip; public var frameCount; public var pre:PreloaderClip; public var game:MovieClip; public function MainTimeline(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 5, frame6, 6, frame7, 7, frame8, 8, frame9); } public function updateSize5():void{ logomc.x = ((stage.stageWidth - 710) / 2); logomc.y = ((stage.stageHeight - 491) / 2); } public function agclick(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://armorgames.com")); } public function onProgress(_arg1:ProgressEvent):void{ var _local2:int; _local2 = ((_arg1.bytesLoaded / _arg1.bytesTotal) * 100); pre.progress.text = (("Loading: " + _local2) + "%"); } public function fullScreenHandler5(_arg1:FullScreenEvent):void{ updateSize5(); } public function onComplete(_arg1:Event):void{ loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress); loaderInfo.removeEventListener(Event.COMPLETE, onComplete); frameCount = 100; } function frame3(){ frameCount = -1; stop(); resize(); if (loaderInfo.bytesLoaded < loaderInfo.bytesTotal){ this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress); this.loaderInfo.addEventListener(Event.COMPLETE, onComplete); } else { frameCount = 1; }; pre.addEventListener(MouseEvent.CLICK, clickHandler2); stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenHandler); stage.addEventListener(Event.RESIZE, resizeHandler); stage.addEventListener(Event.ENTER_FRAME, enterFrame); resize(); } function frame6(){ stop(); frame = 0; startWidth = logomc.width; startHeight = logomc.height; updateSize5(); addEventListener(Event.ENTER_FRAME, enterFrame5); stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenHandler5); stage.addEventListener(Event.RESIZE, resizeHandler5); } function frame1(){ stage.scaleMode = StageScaleMode.NO_SCALE; } function frame7(){ stop(); } public function enterFrame(_arg1:Event):void{ frameCount--; if (frameCount == 0){ pre.removeEventListener(MouseEvent.CLICK, clickHandler2); stage.removeEventListener(Event.ENTER_FRAME, enterFrame); stage.removeEventListener(FullScreenEvent.FULL_SCREEN, fullScreenHandler); stage.removeEventListener(Event.RESIZE, resizeHandler); play(); }; } function frame9(){ stop(); } function frame8(){ gotoAndStop(9); } function frame2(){ url = parent.stage.loaderInfo.url.split("/")[2]; if (url.indexOf("armorgames.com") == -1){ gotoAndStop(8); }; } 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++; } function frame4(){ stop(); ag.gotoAndPlay(1); addEventListener(Event.ENTER_FRAME, agFrame); ag.addEventListener(MouseEvent.CLICK, agclick); } 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://armorgames.com")); } public function maybePlay(_arg1:MovieClip):void{ if (_arg1.currentFrame == 1){ _arg1.stop(); if (Math.floor((Math.random() * 50)) == 0){ _arg1.play(); }; }; } public function agFrame(_arg1:Event):void{ if (ag.currentFrame == ag.totalFrames){ removeEventListener(Event.ENTER_FRAME, agFrame); 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 240
//MinusButton_375 (zomlog_fla.MinusButton_375) package zomlog_fla { import flash.display.*; public dynamic class MinusButton_375 extends MovieClip { public function MinusButton_375(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zomlog_fla
Section 241
//MusicClip_481 (zomlog_fla.MusicClip_481) package zomlog_fla { import flash.display.*; public dynamic class MusicClip_481 extends MovieClip { public function MusicClip_481(){ addFrameScript(0, frame1); } function frame1(){ stop(); this.stop(); } } }//package zomlog_fla
Section 242
//PediaClip_300 (zomlog_fla.PediaClip_300) package zomlog_fla { import flash.display.*; public dynamic class PediaClip_300 extends MovieClip { public function PediaClip_300(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zomlog_fla
Section 243
//PlusButton_376 (zomlog_fla.PlusButton_376) package zomlog_fla { import flash.display.*; public dynamic class PlusButton_376 extends MovieClip { public function PlusButton_376(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zomlog_fla
Section 244
//TextButton_341 (zomlog_fla.TextButton_341) package zomlog_fla { import flash.display.*; public dynamic class TextButton_341 extends MovieClip { public function TextButton_341(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package zomlog_fla
Section 245
//water_489 (zomlog_fla.water_489) package zomlog_fla { import flash.display.*; public dynamic class water_489 extends MovieClip { public function water_489(){ addFrameScript(59, frame60); } function frame60(){ stop(); } } }//package zomlog_fla
Section 246
//WaterRing_488 (zomlog_fla.WaterRing_488) package zomlog_fla { import flash.display.*; public dynamic class WaterRing_488 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 247
//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 248
//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 249
//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 250
//backgroundtiles (backgroundtiles) package { import flash.display.*; public dynamic class backgroundtiles extends MovieClip { } }//package
Section 251
//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 252
//Barricade (Barricade) package { import mapgen.*; import action.*; import flash.*; public class Barricade extends Tower { protected static var BOARDS:Resource = Resource.BOARDS; public function Barricade(_arg1:int=0, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.type = Tower.BARRICADE; super(new Point(_arg1, _arg2), Option.barricadeLevelLimit, Option.barricadeSpeed, Option.barricadeCost); this.updateCanTakeHit(); this.addReserve(Lib.boardLoad); }; } override public function attack():Boolean{ var _local1:Boolean; _local1 = true; if (this.countResource(BOARDS) >= Option.barricadeHitCost){ Main.sound.play(SoundPlayer.ZOMBIE_BASH); this.takeResource(new ResourceCount(BOARDS, Option.barricadeHitCost)); _local1 = false; } else { _local1 = super.attack(); }; this.updateCanTakeHit(); return (_local1); } protected function updateCanTakeHit():void{ var _local1:Boolean; _local1 = (this.countResource(BOARDS) >= Option.barricadeHitCost); this.sprite.changeCanOperate(_local1); this.sprite.update(); } override public function giveResource(_arg1:ResourceCount):void{ super.giveResource(_arg1); this.updateCanTakeHit(); } protected function isBlocked(_arg1:Direction):Boolean{ var _local2:Point; var _local3:int; var _local4:int; var _local5:MapCell; _local2 = Lib.directionToDelta(_arg1); _local3 = (this.mapPos.x + _local2.x); _local4 = (this.mapPos.y + _local2.y); _local5 = Game.map.getCell(_local3, _local4); return (((_local5.isBlocked()) || (_local5.hasTower()))); } protected function getSupplyDir():Direction{ var _local1:Direction; var _local2:Point; var _local3:int; var _local4:Direction; var _local5:int; var _local6:Direction; _local1 = null; if (!this.links.isEmpty()){ _local2 = this.links.first().dest; _local3 = (this.mapPos.x - _local2.x); _local4 = Direction.EAST; if (_local3 < 0){ _local4 = Direction.WEST; }; _local5 = (this.mapPos.y - _local2.y); _local6 = Direction.SOUTH; if (_local5 < 0){ _local6 = Direction.NORTH; }; if (((this.isBlocked(_local4)) && (!(this.isBlocked(_local6))))){ _local1 = _local6; } else { if (((!(this.isBlocked(_local4))) && (this.isBlocked(_local6)))){ _local1 = _local4; } else { if (((!(this.isBlocked(_local4))) && (!(this.isBlocked(_local6))))){ if (Math.abs(_local3) > Math.abs(_local5)){ _local1 = _local4; } else { if (Math.abs(_local3) == Math.abs(_local5)){ _local1 = _local4; } else { if (Math.abs(_local3) < Math.abs(_local5)){ _local1 = _local6; }; }; }; }; }; }; }; return (_local1); } override public function saveTower(){ return ({parent:super.saveTowerGeneric()}); } protected function getProtectedDir():Direction{ var _local1:Direction; var _local2:List; var _local3:*; var _local4:Direction; var _local5:Direction; _local1 = null; _local2 = this.getProtectedList(); _local3 = _local2.iterator(); while (_local3.hasNext()) { _local4 = _local3.next(); _local5 = Util.opposite(_local4); if (!this.isBlocked(_local5)){ _local1 = _local5; break; }; }; return (_local1); } protected function getProtectedList():List{ var _local1:List; var _local2:int; var _local3:Array; var _local4:Direction; var _local5:Point; var _local6:int; var _local7:int; var _local8:Tower; _local1 = new List(); _local2 = 0; _local3 = Lib.directions; while (_local2 < _local3.length) { _local4 = _local3[_local2]; _local2++; _local5 = Lib.directionToDelta(_local4); _local6 = (this.mapPos.x + _local5.x); _local7 = (this.mapPos.y + _local5.y); _local8 = Game.map.getCell(_local6, _local7).getTower(); if (((!((_local8 == null))) && (!((_local8.getType() == Tower.BARRICADE))))){ _local1.add(_local4); }; }; return (_local1); } override public function getType():int{ return (Tower.BARRICADE); } protected function updateReserve():void{ var _local1:int; var _local2:int; _local1 = this.stuff.reserve(Resource.BOARDS); _local2 = this.stuff.count(Resource.BOARDS); if ((((_local1 == 0)) || ((_local1 <= (_local2 - Lib.truckLoad(Resource.BOARDS)))))){ if (this.stuff.reserve(Resource.SURVIVORS) == 0){ this.addReserve(Lib.survivorLoad); }; } else { if (this.stuff.reserve(Resource.SURVIVORS) > 0){ this.removeReserve(Lib.survivorLoad); }; }; } override public function step(_arg1:int):void{ if ((((this.stuff.count(Resource.SURVIVORS) > 0)) && ((this.stuff.count(Resource.BOARDS) > 0)))){ if (this.stuff.reserve(Resource.BOARDS) > 0){ this.sendToDepot(true); } else { this.sendToDepot(false); }; this.updateCanTakeHit(); } else { if ((((this.stuff.count(Resource.SURVIVORS) > 0)) && ((this.stuff.count(Resource.BOARDS) == 0)))){ Game.view.window.refresh(); Game.actions.push(new CloseTower(this.mapPos.x, this.mapPos.y)); }; }; this.updateReserve(); } protected function getUnblockedDir():Direction{ var _local1:Direction; var _local2:int; var _local3:Array; var _local4:Direction; _local1 = null; _local2 = 0; _local3 = Lib.directions; while (_local2 < _local3.length) { _local4 = _local3[_local2]; _local2++; if (!this.isBlocked(_local4)){ _local1 = _local4; break; }; }; return (_local1); } override public function updateBlocked():void{ var _local1:Direction; _local1 = this.getProtectedDir(); if (_local1 == null){ _local1 = this.getSupplyDir(); }; if (_local1 == null){ _local1 = this.getUnblockedDir(); }; if (_local1 == null){ _local1 = Direction.NORTH; }; this.sprite.rotate((Lib.directionToAngle(_local1) - 90)); this.sprite.update(); } override public function load(_arg1):void{ super.load(_arg1.parent); } } }//package
Section 253
//BarricadeScreen (BarricadeScreen) package { import flash.display.*; public dynamic class BarricadeScreen extends MovieClip { } }//package
Section 254
//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 255
//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 256
//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 257
//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 258
//ButtonAbandon (ButtonAbandon) package { import flash.display.*; public dynamic class ButtonAbandon extends MovieClip { public function ButtonAbandon(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 259
//ButtonBuildBarricade (ButtonBuildBarricade) package { import flash.display.*; public dynamic class ButtonBuildBarricade extends MovieClip { public function ButtonBuildBarricade(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 260
//ButtonBuildDepot (ButtonBuildDepot) package { import flash.display.*; public dynamic class ButtonBuildDepot extends MovieClip { public function ButtonBuildDepot(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 261
//ButtonBuildSniper (ButtonBuildSniper) package { import flash.display.*; public dynamic class ButtonBuildSniper extends MovieClip { public function ButtonBuildSniper(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 262
//ButtonBuildWorkshop (ButtonBuildWorkshop) package { import flash.display.*; public dynamic class ButtonBuildWorkshop extends MovieClip { public function ButtonBuildWorkshop(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 263
//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 264
//ButtonFireAtWill (ButtonFireAtWill) package { import flash.display.*; public dynamic class ButtonFireAtWill extends MovieClip { public function ButtonFireAtWill(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 265
//ButtonFireHold (ButtonFireHold) package { import flash.display.*; public dynamic class ButtonFireHold extends MovieClip { public function ButtonFireHold(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 266
//ButtonFlare (ButtonFlare) package { import flash.display.*; public dynamic class ButtonFlare extends MovieClip { public function ButtonFlare(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 267
//ButtonHelp (ButtonHelp) package { import flash.display.*; public dynamic class ButtonHelp extends MovieClip { public function ButtonHelp(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 268
//ButtonJumpToDepot (ButtonJumpToDepot) package { import flash.display.*; public dynamic class ButtonJumpToDepot extends MovieClip { public function ButtonJumpToDepot(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 269
//ButtonMinus (ButtonMinus) package { import flash.display.*; public dynamic class ButtonMinus extends MovieClip { public function ButtonMinus(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 270
//ButtonPlus (ButtonPlus) package { import flash.display.*; public dynamic class ButtonPlus extends MovieClip { public function ButtonPlus(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 271
//ButtonRangeOff (ButtonRangeOff) package { import flash.display.*; public dynamic class ButtonRangeOff extends MovieClip { public function ButtonRangeOff(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 272
//ButtonRangeOn (ButtonRangeOn) package { import flash.display.*; public dynamic class ButtonRangeOn extends MovieClip { public function ButtonRangeOn(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 273
//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 274
//ButtonSystem (ButtonSystem) package { import flash.display.*; public dynamic class ButtonSystem extends MovieClip { public function ButtonSystem(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 275
//ButtonUpgrade (ButtonUpgrade) package { import flash.display.*; public dynamic class ButtonUpgrade extends MovieClip { public function ButtonUpgrade(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 276
//CellRenderer_disabledSkin (CellRenderer_disabledSkin) package { import flash.display.*; public dynamic class CellRenderer_disabledSkin extends MovieClip { } }//package
Section 277
//CellRenderer_downSkin (CellRenderer_downSkin) package { import flash.display.*; public dynamic class CellRenderer_downSkin extends MovieClip { } }//package
Section 278
//CellRenderer_overSkin (CellRenderer_overSkin) package { import flash.display.*; public dynamic class CellRenderer_overSkin extends MovieClip { } }//package
Section 279
//CellRenderer_selectedDisabledSkin (CellRenderer_selectedDisabledSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDisabledSkin extends MovieClip { } }//package
Section 280
//CellRenderer_selectedDownSkin (CellRenderer_selectedDownSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDownSkin extends MovieClip { } }//package
Section 281
//CellRenderer_selectedOverSkin (CellRenderer_selectedOverSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedOverSkin extends MovieClip { } }//package
Section 282
//CellRenderer_selectedUpSkin (CellRenderer_selectedUpSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedUpSkin extends MovieClip { } }//package
Section 283
//CellRenderer_upSkin (CellRenderer_upSkin) package { import flash.display.*; public dynamic class CellRenderer_upSkin extends MovieClip { } }//package
Section 284
//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 285
//ComboBox_disabledSkin (ComboBox_disabledSkin) package { import flash.display.*; public dynamic class ComboBox_disabledSkin extends MovieClip { } }//package
Section 286
//ComboBox_downSkin (ComboBox_downSkin) package { import flash.display.*; public dynamic class ComboBox_downSkin extends MovieClip { } }//package
Section 287
//ComboBox_overSkin (ComboBox_overSkin) package { import flash.display.*; public dynamic class ComboBox_overSkin extends MovieClip { } }//package
Section 288
//ComboBox_upSkin (ComboBox_upSkin) package { import flash.display.*; public dynamic class ComboBox_upSkin extends MovieClip { } }//package
Section 289
//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 290
//Depot (Depot) package { import flash.*; public class Depot extends Tower { protected var buildReserve:Array; protected var sand:Array; protected var useFood:Boolean; public static var supplyButton:int = 0; public static var endSupplyButton:int = 1; public static var toggleFoodButton:int = 3; public static var buildWorkshopButton:int = 7; protected static var survivorIndex:int = Lib.resourceToIndex(Resource.SURVIVORS); protected static var boardIndex:int = Lib.resourceToIndex(Resource.BOARDS); public static var buildBarricadeButton:int = 5; public static var upgradeButton:int = 2; public static var buildSniperButton:int = 4; protected static var sandFactor:Number = 0.9; public static var buildDepotButton:int = 6; public function Depot(_arg1:int=0, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.type = Tower.DEPOT; super(new Point(_arg1, _arg2), Option.depotLevelLimit, Option.depotSpeed, Option.depotCost); this.addReserve(Lib.boardLoad); this.addReserve(Lib.ammoLoad); this.addReserve(Lib.survivorLoad); this.useFood = false; this.sand = Lib.newResourceArray(); this.buildReserve = Lib.newResourceArray(); }; } protected function updateSandResource(_arg1:Resource):void{ var _local2:int; var _local3:int; var _local4:List; var _local5:int; var _local6:*; var _local7:Tower; var _local8:int; _local2 = Lib.resourceToIndex(_arg1); _local3 = this.countNeeds(_arg1); _local4 = this.getSandLinks(_arg1); if (_local3 > 0){ this.sand[_local2] = (this.reduce(this.sand[_local2]) + _local3); if (_arg1 != Resource.SURVIVORS){ this.sand[Lib.resourceToIndex(Resource.SURVIVORS)] = (this.sand[Lib.resourceToIndex(Resource.SURVIVORS)] + 1); }; } else { _local5 = this.reduce(this.sand[_local2]); _local6 = _local4.iterator(); while (_local6.hasNext()) { _local7 = _local6.next(); _local8 = this.reduce(this.reduce(_local7.countSand(_arg1))); if (_local8 > _local5){ _local5 = _local8; }; }; this.sand[_local2] = _local5; }; } override public function getTruckSpeed():int{ return ((Option.depotTruckSpeedMin[this.level] + Lib.rand(Option.depotTruckSpeedRange[this.level]))); } override public function countSand(_arg1:Resource):int{ var _local2:int; _local2 = Lib.resourceToIndex(_arg1); return (this.sand[_local2]); } protected function tryOverflowTower(_arg1:Tower):ResourceCount{ var _local2:ResourceCount; var _local3:List; var _local4:*; var _local5:ResourceCount; var _local6:int; var _local7:int; var _local8:Boolean; _local2 = null; _local3 = _arg1.getOverflow(); _local4 = _local3.iterator(); while (_local4.hasNext()) { _local5 = _local4.next(); _local6 = Lib.resourceToIndex(_local5.resource); _local7 = (((this.stuff.count(_local5.resource) + this.stuff.incoming(_local5.resource)) - this.stuff.reserve(_local5.resource)) - this.buildReserve[_local6]); _local8 = (((_local7 >= Lib.truckLoad(_local5.resource))) && ((this.countSand(_local5.resource) < _arg1.countSand(_local5.resource)))); if (((((_local8) && ((this.stuff.count(_local5.resource) >= Lib.truckLoad(_local5.resource))))) && ((((_local2 == null)) || ((this.getWeight(_local5) < this.getWeight(_local2))))))){ _local2 = _local5; }; }; return (_local2); } override public function reserveBuildResource(_arg1:int):void{ var _local2:int; _local2 = (Tower.getBuildCost(_arg1) * Lib.truckLoad(Resource.BOARDS)); this.buildReserve[boardIndex] = _local2; this.buildReserve[survivorIndex] = Lib.truckLoad(Resource.SURVIVORS); } override public function shouldUseFood():Boolean{ return (this.useFood); } protected function reduce(_arg1:int):int{ return (Math.floor((_arg1 * sandFactor))); } override public function usesSand():Boolean{ return (true); } override public function normalizeLevel():void{ super.normalizeLevel(); if (this.useFood){ this.speed = (this.speed * 2); }; } override public function saveTower(){ return ({parent:super.saveTowerGeneric(), useFood:this.useFood, sand:this.sand.copy(), buildReserve:this.buildReserve.copy()}); } override public function freeBuildResource():void{ this.buildReserve[boardIndex] = 0; this.buildReserve[survivorIndex] = 0; } protected function sendTrucks():void{ var _local1:Boolean; if ((this.countResource(Resource.SURVIVORS) - this.buildReserve[survivorIndex]) > 0){ _local1 = this.tryNeed(); if (!_local1){ _local1 = this.tryOverflow(); }; if (_local1){ Game.map.noise(this.mapPos.x, this.mapPos.y, Option.towerNoise, this.zombieGuide); }; }; } protected function tryNeedTower(_arg1:Tower):ResourceCount{ var _local2:ResourceCount; var _local3:List; var _local4:*; var _local5:ResourceCount; var _local6:int; var _local7:int; _local2 = null; _local3 = _arg1.getNeeds(); _local4 = _local3.iterator(); while (_local4.hasNext()) { _local5 = _local4.next(); _local6 = Lib.resourceToIndex(_local5.resource); _local7 = ((this.stuff.count(_local5.resource) + this.stuff.incoming(_local5.resource)) - this.buildReserve[_local6]); if (_arg1.getType() == Tower.DEPOT){ _local7 = (_local7 - this.stuff.reserve(_local5.resource)); }; if ((((((_local7 > 0)) && ((this.stuff.count(_local5.resource) > 0)))) && ((((_local2 == null)) || ((this.getWeight(_local5) > this.getWeight(_local2))))))){ _local2 = _local5; }; }; return (_local2); } override public function getType():int{ return (Tower.DEPOT); } override public function addSand(_arg1:ResourceCount):void{ var _local2:int; _local2 = Lib.resourceToIndex(_arg1.resource); this.sand[_local2] = (this.sand[_local2] + _arg1.count); } override public function step(_arg1:int):void{ this.wait(); this.sendTrucks(); this.updateSand(); } protected function countNeeds(_arg1:Resource):int{ var _local2:int; _local2 = ((this.stuff.reserve(_arg1) - this.stuff.count(_arg1)) - this.stuff.incoming(_arg1)); if (_local2 > 0){ return (this.getWeight(new ResourceCount(_arg1, _local2))); }; return (0); } override public function toggleFood():void{ this.useFood = !(this.useFood); } protected function getSandLinks(_arg1:Resource):List{ var _local2:List; var _local3:*; var _local4:Route; var _local5:Tower; _local2 = new List(); _local3 = this.links.iterator(); while (_local3.hasNext()) { _local4 = _local3.next(); _local5 = Game.map.getCell(_local4.dest.x, _local4.dest.y).getTower(); if (((!((_local5 == null))) && (_local5.usesSand()))){ _local2.add(_local5); }; }; return (_local2); } override public function load(_arg1):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; super.load(_arg1.parent); this.useFood = _arg1.useFood; _local2 = 0; _local3 = Option.resourceCount; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local6 = _temp1; this.sand[_local6] = _arg1.sand[_local6]; }; _local4 = 0; _local5 = Option.resourceCount; while (_local4 < _local5) { var _temp2 = _local4; _local4 = (_local4 + 1); _local7 = _temp2; this.buildReserve[_local7] = _arg1.buildReserve[_local7]; }; } protected function updateSand():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:Resource; _local1 = 0; _local2 = Option.resourceCount; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = Lib.indexToResource(_local3); this.updateSandResource(_local4); }; } protected function tryNeed():Boolean{ var _local1:Boolean; var _local2:ResourceCount; var _local3:Route; var _local4:int; var _local5:*; var _local6:Route; var _local7:Tower; var _local8:ResourceCount; var _local9:int; var _local10:ResourceCount; var _local11:int; var _local12:int; _local1 = false; _local2 = null; _local3 = null; _local4 = 0; _local5 = this.links.iterator(); while (_local5.hasNext()) { _local6 = _local5.next(); _local7 = Game.map.getCell(_local6.dest.x, _local6.dest.y).getTower(); if (((!((_local7 == null))) && (_local6.shouldSend()))){ _local8 = this.tryNeedTower(_local7); if (((!((_local8 == null))) && ((((_local2 == null)) || ((this.getWeight(_local8) > this.getWeight(_local2))))))){ _local2 = _local8; _local3 = _local6; _local4 = _local7.getType(); }; }; }; if (_local2 != null){ _local9 = this.stuff.count(_local2.resource); if (_local4 == Tower.DEPOT){ _local11 = Lib.resourceToIndex(_local2.resource); _local12 = (((this.stuff.count(_local2.resource) + this.stuff.incoming(_local2.resource)) - this.stuff.reserve(_local2.resource)) - this.buildReserve[_local11]); _local9 = Math.floor(Math.min(_local9, _local12)); }; _local10 = new ResourceCount(_local2.resource, _local9); this.createSupplyTruck(_local3.dest, _local10, _local3); _local1 = true; }; return (_local1); } protected function tryOverflow():Boolean{ var _local1:Boolean; var _local2:ResourceCount; var _local3:Route; var _local4:*; var _local5:Route; var _local6:Tower; var _local7:ResourceCount; var _local8:ResourceCount; _local1 = false; _local2 = null; _local3 = null; _local4 = this.links.iterator(); while (_local4.hasNext()) { _local5 = _local4.next(); _local6 = Game.map.getCell(_local5.dest.x, _local5.dest.y).getTower(); if (((((!((_local6 == null))) && ((_local6.getType() == Tower.DEPOT)))) && (_local5.shouldSend()))){ _local7 = this.tryOverflowTower(_local6); if (((!((_local7 == null))) && ((((_local2 == null)) || ((this.getWeight(_local7) < this.getWeight(_local2))))))){ _local2 = _local7; _local3 = _local5; }; }; }; if (_local2 != null){ _local8 = new ResourceCount(_local2.resource, Lib.truckLoad(_local2.resource)); this.createSupplyTruck(_local3.dest, _local8, _local3); _local1 = true; }; return (_local1); } } }//package
Section 291
//DepotBuildScreen (DepotBuildScreen) package { import flash.display.*; public dynamic class DepotBuildScreen extends MovieClip { } }//package
Section 292
//DepotMiscScreen (DepotMiscScreen) package { import flash.display.*; public dynamic class DepotMiscScreen extends MovieClip { } }//package
Section 293
//DepotResourceScreen (DepotResourceScreen) package { import flash.display.*; public dynamic class DepotResourceScreen extends MovieClip { } }//package
Section 294
//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 295
//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 296
//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 297
//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 298
//enum (enum) package { public class enum { public var index:int; public var params:Array; public var tag:String; } }//package
Section 299
//ExplosionLargeClip (ExplosionLargeClip) package { import flash.display.*; public dynamic class ExplosionLargeClip extends MovieClip { } }//package
Section 300
//ExplosionSmallClip (ExplosionSmallClip) package { import flash.display.*; public dynamic class ExplosionSmallClip extends MovieClip { } }//package
Section 301
//FeatureClip (FeatureClip) package { import flash.display.*; public dynamic class FeatureClip extends MovieClip { } }//package
Section 302
//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 303
//FloaterClip (FloaterClip) package { import flash.display.*; public dynamic class FloaterClip extends MovieClip { public function FloaterClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 304
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 305
//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 306
//Game (Game) package { import flash.display.*; import flash.events.*; import logic.*; import ui.*; import flash.net.*; import mapgen.*; import ui.menu.*; public class Game { public static var floater:MouseFloater; public static var loadMap:String; public static var settings:GameSettings; protected static var mustSave:Boolean; public static var view:View; public static var progress:Progress; public static var actorList:ActorList; protected static var isFast:Boolean; protected static var gameState:GameOver; public static var tracker:ZombieTracker; public static var update:Update; public static var script:Script; public static var sprites:SpriteDisplay; public static var map:Map; public static var pathPool:PathFinderPool; public static var VERSION:int = 3; public static var spawner:ZombieSpawner; public static var editor:Editor; public static var pause:Pause; public static var select:Select; public static var actions:ActionQueue; public static function saveGame():void{ var _local1:SharedObject; while (pathPool.isActive()) { pathPool.step(); }; _local1 = Main.gameDisk; _local1.clear(); _local1.data.done = false; _local1.data.settings = settings.save(); _local1.data.explosions = Save.saveList(view.explosions, Explosion.saveS); _local1.data.mainReplay = Main.replay.save(); _local1.data.windowOffset = view.window.getCenter().save(); _local1.data.actorList = actorList.save(); _local1.data.map = map.save(); _local1.data.tracker = tracker.save(); _local1.data.spawner = spawner.save(); _local1.data.pause = pause.save(); _local1.data.progress = progress.save(); _local1.data.script = script.save(); _local1.data.done = true; _local1.data.version = VERSION; _local1.flush(1000000); view.centerMenu.changeState(CenterMenu.NONE); } public static function init(_arg1:GameSettings):void{ Lib.reseed(null); Game.actorList = null; Game.update = null; Game.progress = null; Game.sprites = null; Game.select = null; Game.floater = null; Game.pause = null; Game.map = null; Game.actions = null; Game.tracker = null; Game.spawner = null; Game.pathPool = null; Game.view = null; Game.loadMap = null; Game.settings = _arg1.clone(); Game.view = new View(Main.getRoot()); Game.actorList = new ActorList(); Game.update = new Update(); Game.map = new Map(settings.getSize()); Game.sprites = new SpriteDisplay(view.window.getClip()); Game.progress = new Progress(); Game.select = new Select(Main.getRoot()); Game.floater = new MouseFloater(Main.getRoot()); Game.pause = new Pause(Main.getRoot()); Game.actions = new ActionQueue(); Game.pathPool = new PathFinderPool(); Game.tracker = new ZombieTracker(); Game.spawner = new ZombieSpawner(Main.getRoot(), settings); view.initMenus(Main.getRoot()); if (settings.isEditor()){ Game.editor = new Editor(Main.getRoot()); } else { Game.editor = null; }; view.initCenter(Main.getRoot()); Game.script = new Script(view.scriptSprite); ScriptParse.parse(settings.getScript(), script); Main.getRoot().addEventListener(Event.ENTER_FRAME, Game.enterFrame); Main.clearFirstGame(); Game.gameState = GameOver.CONTINUE; Game.mustSave = false; Game.isFast = false; } protected static function endEditMap(_arg1:int):void{ var _local2:GameSettings; _local2 = new GameSettings(); _local2.beginLoadEdit(settings.saveMap(), settings.getWinText(), settings.getLoseText()); Main.endPlay(_arg1, _local2); } public static function cleanup():void{ Main.getRoot().removeEventListener(Event.ENTER_FRAME, Game.enterFrame); if (Game.editor != null){ editor.cleanup(); Game.editor = null; }; spawner.cleanup(); Game.spawner = null; tracker.cleanup(); Game.tracker = null; Game.pathPool = null; Game.actions = null; pause.cleanup(); Game.pause = null; floater.cleanup(); Game.floater = null; select.cleanup(); Game.select = null; progress.cleanup(); Game.progress = null; sprites.cleanup(); Game.sprites = null; map.cleanup(); Game.map = null; Game.update = null; view.cleanup(); Game.view = null; } protected static function checkSave():void{ if (mustSave){ view.centerMenu.changeState(CenterMenu.SAVE_WAIT); Game.mustSave = false; }; } public static function newGame(_arg1:GameSettings):void{ var _local2:MapGenerator; var _local3:List; init(_arg1); _local2 = new MapGenerator(map, settings); if (((settings.isCustom()) && (settings.isEditor()))){ Editor.createEdges(); editor.loadMap(settings.getMap()); } else { if (settings.isEditor()){ Editor.createEdges(); editor.createBorders(); } else { if (settings.isCustom()){ Editor.createEdges(); _local3 = new List(); EditLoader.loadMap(settings.getMap(), _local3); tracker.addBuildings(); } else { _local2.resetMap(); tracker.addBuildings(); view.window.fillBitmap(); }; }; }; view.window.moveWindowCenter(settings.getStart().x, settings.getStart().y); view.mini.update(); Main.replay.addBeginPlay(); script.takeAction(); } public static function resize():void{ var _local1:Stage; var _local2:LayoutGame; _local1 = Main.getRoot().stage; view.layout = new LayoutGame(_local1.stageWidth, _local1.stageHeight, settings); _local2 = view.layout; sprites.resize(_local2); select.resize(_local2); view.resize(); pause.resize(_local2); floater.resize(_local2); } protected static function checkEndGame():Boolean{ var _local1:Boolean; var _local2:enum; var _local3:GameSettings; var _local4:GameSettings; _local1 = true; _local2 = gameState; switch (_local2.index){ case 1: Main.endPlay(MainMenu.GENERATE_MAP, settings.clone()); break; case 2: Main.endPlay(MainMenu.LOAD_WAIT, new GameSettings()); break; case 3: if (settings.isTesting()){ endEditMap(MainMenu.GENERATE_MAP); } else { if (settings.getKey() != null){ Main.endPlay(MainMenu.RATE_MAP, settings.clone()); } else { Main.endPlay(MainMenu.START, new GameSettings()); }; }; break; case 4: if (((!(settings.isCustom())) && (!((Main.kongregate == null))))){ Main.kongregate.stats.submit(settings.getDifficultyName(), 1); }; if ((((settings.getCampaign() == 6)) && (!((Main.kongregate == null))))){ Main.kongregate.stats.submit("Radio Silence", 1); }; if (settings.isTesting()){ endEditMap(MainMenu.STORY_WIN); } else { Main.replay.setState(MainMenu.WIN); Main.endPlay(MainMenu.STORY_WIN, settings.clone()); }; break; case 5: if (settings.isTesting()){ endEditMap(MainMenu.STORY_LOSE); } else { Main.replay.setState(MainMenu.LOSE); Main.endPlay(MainMenu.STORY_LOSE, settings.clone()); }; break; case 6: _local3 = new GameSettings(); _local3.beginLoadEdit(loadMap, "", ""); Main.endPlay(MainMenu.GENERATE_MAP, _local3); break; case 7: _local4 = new GameSettings(); _local4.beginLoadTest(loadMap); _local4.setStart(view.window.getCenter()); Main.endPlay(MainMenu.STORY_BRIEFING, _local4); break; case 8: endEditMap(MainMenu.GENERATE_MAP); break; default: _local1 = false; break; }; return (_local1); } public static function toggleFast():void{ Game.isFast = !(isFast); } public static function attemptSave():void{ Game.mustSave = true; } public static function endGame(_arg1:GameOver):void{ Game.gameState = _arg1; } protected static function enterFrame(_arg1:Event):void{ var _local2:int; var _local3:int; var _local4:int; _local2 = 1; if (isFast){ _local2 = Option.fastFrames; }; _local3 = 0; while (_local3 < _local2) { var _temp1 = _local3; _local3 = (_local3 + 1); _local4 = _temp1; actions.runAll(); if (((!(pause.isPaused())) && (!(settings.isEditor())))){ actorList.enterFrame(); actions.runAll(); pathPool.step(); spawner.step(); settings.incrementPlayTime(); }; update.commit(); view.enterFrame(); if (checkEndGame()){ break; }; checkSave(); }; } public static function loadGame():void{ var _local1:SharedObject; var _local2:GameSettings; var _local3:List; _local1 = Main.gameDisk; if ((((_local1.data.done == true)) && ((_local1.data.version == VERSION)))){ _local2 = new GameSettings(); _local2.load(_local1.data.settings); Main.replay.load(_local1.data.mainReplay); init(_local2); Util.seed(settings.getNormalName()); update.clear(); map.load(_local1.data.map); actorList.load(_local1.data.actorList); tracker.load(_local1.data.tracker); spawner.load(_local1.data.spawner); progress.load(_local1.data.progress); script.load(_local1.data.script); pause.load(_local1.data.pause); view.window.fillBitmap(); view.window.moveWindowCenter(_local1.data.windowOffset.x, _local1.data.windowOffset.y); _local3 = Load.loadList(_local1.data.explosions, Explosion.load); view.mini.update(); update.buttons(); update.changeStatus(); }; } } }//package
Section 307
//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 308
//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 309
//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 310
//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 311
//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 312
//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 313
//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 314
//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 315
//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 316
//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 317
//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 318
//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 319
//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 320
//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 321
//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 322
//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 323
//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 324
//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 325
//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 326
//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 327
//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 328
//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 329
//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 330
//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 331
//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 332
//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 333
//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 334
//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 335
//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 336
//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 337
//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 338
//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 339
//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 340
//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 341
//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 342
//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 343
//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 344
//gunCycle_midlayer_1 (gunCycle_midlayer_1) package { import flash.display.*; public dynamic class gunCycle_midlayer_1 extends MovieClip { } }//package
Section 345
//gunCycle_midlayer_10 (gunCycle_midlayer_10) package { import flash.display.*; public dynamic class gunCycle_midlayer_10 extends MovieClip { } }//package
Section 346
//gunCycle_midlayer_11 (gunCycle_midlayer_11) package { import flash.display.*; public dynamic class gunCycle_midlayer_11 extends MovieClip { } }//package
Section 347
//gunCycle_midlayer_13 (gunCycle_midlayer_13) package { import flash.display.*; public dynamic class gunCycle_midlayer_13 extends MovieClip { } }//package
Section 348
//gunCycle_midlayer_14 (gunCycle_midlayer_14) package { import flash.display.*; public dynamic class gunCycle_midlayer_14 extends MovieClip { } }//package
Section 349
//gunCycle_midlayer_15 (gunCycle_midlayer_15) package { import flash.display.*; public dynamic class gunCycle_midlayer_15 extends MovieClip { } }//package
Section 350
//gunCycle_midlayer_16 (gunCycle_midlayer_16) package { import flash.display.*; public dynamic class gunCycle_midlayer_16 extends MovieClip { } }//package
Section 351
//gunCycle_midlayer_17 (gunCycle_midlayer_17) package { import flash.display.*; public dynamic class gunCycle_midlayer_17 extends MovieClip { } }//package
Section 352
//gunCycle_midlayer_18 (gunCycle_midlayer_18) package { import flash.display.*; public dynamic class gunCycle_midlayer_18 extends MovieClip { } }//package
Section 353
//gunCycle_midlayer_19 (gunCycle_midlayer_19) package { import flash.display.*; public dynamic class gunCycle_midlayer_19 extends MovieClip { } }//package
Section 354
//gunCycle_midlayer_2 (gunCycle_midlayer_2) package { import flash.display.*; public dynamic class gunCycle_midlayer_2 extends MovieClip { } }//package
Section 355
//gunCycle_midlayer_20 (gunCycle_midlayer_20) package { import flash.display.*; public dynamic class gunCycle_midlayer_20 extends MovieClip { } }//package
Section 356
//gunCycle_midlayer_4 (gunCycle_midlayer_4) package { import flash.display.*; public dynamic class gunCycle_midlayer_4 extends MovieClip { } }//package
Section 357
//gunCycle_midlayer_5 (gunCycle_midlayer_5) package { import flash.display.*; public dynamic class gunCycle_midlayer_5 extends MovieClip { } }//package
Section 358
//gunCycle_midlayer_7 (gunCycle_midlayer_7) package { import flash.display.*; public dynamic class gunCycle_midlayer_7 extends MovieClip { } }//package
Section 359
//gunCycle_midlayer_8 (gunCycle_midlayer_8) package { import flash.display.*; public dynamic class gunCycle_midlayer_8 extends MovieClip { } }//package
Section 360
//gunCycle_toplayer_1 (gunCycle_toplayer_1) package { import flash.display.*; public dynamic class gunCycle_toplayer_1 extends MovieClip { } }//package
Section 361
//gunCycle_toplayer_10 (gunCycle_toplayer_10) package { import flash.display.*; public dynamic class gunCycle_toplayer_10 extends MovieClip { } }//package
Section 362
//gunCycle_toplayer_11 (gunCycle_toplayer_11) package { import flash.display.*; public dynamic class gunCycle_toplayer_11 extends MovieClip { } }//package
Section 363
//gunCycle_toplayer_13 (gunCycle_toplayer_13) package { import flash.display.*; public dynamic class gunCycle_toplayer_13 extends MovieClip { } }//package
Section 364
//gunCycle_toplayer_14 (gunCycle_toplayer_14) package { import flash.display.*; public dynamic class gunCycle_toplayer_14 extends MovieClip { } }//package
Section 365
//gunCycle_toplayer_15 (gunCycle_toplayer_15) package { import flash.display.*; public dynamic class gunCycle_toplayer_15 extends MovieClip { } }//package
Section 366
//gunCycle_toplayer_16 (gunCycle_toplayer_16) package { import flash.display.*; public dynamic class gunCycle_toplayer_16 extends MovieClip { } }//package
Section 367
//gunCycle_toplayer_17 (gunCycle_toplayer_17) package { import flash.display.*; public dynamic class gunCycle_toplayer_17 extends MovieClip { } }//package
Section 368
//gunCycle_toplayer_18 (gunCycle_toplayer_18) package { import flash.display.*; public dynamic class gunCycle_toplayer_18 extends MovieClip { } }//package
Section 369
//gunCycle_toplayer_19 (gunCycle_toplayer_19) package { import flash.display.*; public dynamic class gunCycle_toplayer_19 extends MovieClip { } }//package
Section 370
//gunCycle_toplayer_2 (gunCycle_toplayer_2) package { import flash.display.*; public dynamic class gunCycle_toplayer_2 extends MovieClip { } }//package
Section 371
//gunCycle_toplayer_20 (gunCycle_toplayer_20) package { import flash.display.*; public dynamic class gunCycle_toplayer_20 extends MovieClip { } }//package
Section 372
//gunCycle_toplayer_4 (gunCycle_toplayer_4) package { import flash.display.*; public dynamic class gunCycle_toplayer_4 extends MovieClip { } }//package
Section 373
//gunCycle_toplayer_5 (gunCycle_toplayer_5) package { import flash.display.*; public dynamic class gunCycle_toplayer_5 extends MovieClip { } }//package
Section 374
//gunCycle_toplayer_7 (gunCycle_toplayer_7) package { import flash.display.*; public dynamic class gunCycle_toplayer_7 extends MovieClip { } }//package
Section 375
//gunCycle_toplayer_8 (gunCycle_toplayer_8) package { import flash.display.*; public dynamic class gunCycle_toplayer_8 extends MovieClip { } }//package
Section 376
//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 377
//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 378
//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 379
//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 380
//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 381
//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 382
//List_skin (List_skin) package { import flash.display.*; public dynamic class List_skin extends MovieClip { } }//package
Section 383
//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 384
//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 gameDisk:SharedObject; public static var error:String; public static var config:Config; protected static var layout:LayoutMain; public static var sound:SoundPlayer; protected static var state:int; public static var menu:MainMenu; protected static var editSave:String; public static var music:MusicPlayer; public static var replay:Replay; public static var kongregate; public static var theRoot:DisplayObjectContainer; protected static var PLAY:int = 1; public static var key:Keyboard; protected static var REPLAY:int = 2; public static var configDisk:SharedObject; public function Main():void{ } protected function init():void{ var _local1:Stage; Main.error = ""; ScriptParse.init(); _local1 = Lib.current.stage; _local1.scaleMode = StageScaleMode.NO_SCALE; _local1.addEventListener(FullScreenEvent.FULL_SCREEN, this.fullScreenHandler); _local1.addEventListener(Event.RESIZE, this.resizeHandler); MouseScroller.trackMouse(); Main.theRoot = new Sprite(); theRoot.visible = true; _local1.addChild(theRoot); Log.setColor(0xFF0000); Main.key = new Keyboard(_local1); Main.replay = null; Main.configDisk = SharedObject.getLocal(Label.configDisk); configDisk.addEventListener(AsyncErrorEvent.ASYNC_ERROR, Main.asyncHandler); configDisk.addEventListener(NetStatusEvent.NET_STATUS, Main.netStatusHandler); configDisk.addEventListener(SyncEvent.SYNC, Main.syncHandler); Main.editSave = configDisk.data.editSave; Main.gameDisk = SharedObject.getLocal(Label.gameDisk); gameDisk.addEventListener(AsyncErrorEvent.ASYNC_ERROR, Main.asyncHandler); gameDisk.addEventListener(NetStatusEvent.NET_STATUS, Main.netStatusHandler); gameDisk.addEventListener(SyncEvent.SYNC, Main.syncHandler); Main.config = new Config(); Main.layout = new LayoutMain(theRoot.stage.stageWidth, theRoot.stage.stageHeight); Main.menu = new MainMenu(theRoot, layout); Main.music = new MusicPlayer(); Main.sound = new SoundPlayer(getRoot()); BitstreamVeraSans.init(); Animation.init(); Main.state = MENU; } protected function resize():void{ Main.layout = new LayoutMain(theRoot.stage.stageWidth, theRoot.stage.stageHeight); if (Main.state == PLAY){ Game.resize(); } else { if (Main.state == MENU){ menu.resize(layout); } else { if (Main.state == REPLAY){ replay.resize(layout); }; }; }; } protected function resizeHandler(_arg1:Event):void{ this.resize(); } protected function fullScreenHandler(_arg1:FullScreenEvent):void{ this.resize(); } public static function firstGame():Boolean{ return (((!((Main.gameDisk == null))) && ((gameDisk.data.hasPlayed == null)))); } public static function canLoad():Boolean{ return (((((!((Main.gameDisk == null))) && ((gameDisk.data.done == true)))) && ((gameDisk.data.version == Game.VERSION)))); } public static function getRoot():DisplayObjectContainer{ return (theRoot); } protected static function netStatusHandler(_arg1:NetStatusEvent):void{ } public static function getEditSave():String{ return (editSave); } public static function endReplay(_arg1:int, _arg2:GameSettings):void{ replay.cleanup(); Main.menu = new MainMenu(theRoot, layout); menu.setSettings(_arg2); menu.changeState(_arg1); Main.state = MENU; } public static function setEditSave(_arg1:String):void{ Main.editSave = _arg1; configDisk.data.editSave = _arg1; } protected static function asyncHandler(_arg1:AsyncErrorEvent):void{ } public static function endPlay(_arg1:int, _arg2:GameSettings):void{ Game.cleanup(); Main.menu = new MainMenu(theRoot, layout); menu.setSettings(_arg2); if (_arg1 == MainMenu.RATE_MAP){ menu.rateState = MainMenu.START; }; menu.changeState(_arg1); if (_arg1 != MainMenu.GENERATE_MAP){ music.changeMusic(MusicPlayer.MAIN_INTRO, true); }; Main.state = MENU; } public static function beginReplay():void{ var _local1:GameSettings; _local1 = menu.getSettings(); menu.cleanup(); Main.menu = null; replay.start(layout, _local1); Main.state = REPLAY; } public static function clearFirstGame():void{ gameDisk.data.hasPlayed = true; } protected static function syncHandler(_arg1:SyncEvent):void{ } public static function loadGame():void{ menu.cleanup(); Main.menu = null; Main.replay = new Replay(); Game.loadGame(); if (Game.spawner.getWaveCount() == 0){ music.changeMusic(MusicPlayer.QUIET, true); } else { music.changeMusic(MusicPlayer.randomWave(), true); }; Main.state = PLAY; } public static function main():void{ var _local1:Main; _local1 = new (Main); _local1.init(); } public static function beginPlay():void{ var _local1:GameSettings; _local1 = menu.getSettings().clone(); menu.cleanup(); Main.menu = null; Main.replay = new Replay(); Game.newGame(_local1); if (_local1.isEditor()){ music.stop(); } else { music.changeMusic(MusicPlayer.QUIET, true); }; Main.state = PLAY; } } }//package
Section 385
//Map (Map) package { import mapgen.*; import flash.*; public class Map { protected var cellMap:Grid; protected var blocked:List; protected var cityLot:Section; protected var buildings:List; public function Map(_arg1:Point=null):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; super(); if (!Boot.skip_constructor){ this.blocked = new List(); this.buildings = new List(); this.cellMap = new Grid(_arg1.x, _arg1.y); _local2 = 0; _local3 = _arg1.y; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local5 = 0; _local6 = _arg1.x; while (_local5 < _local6) { var _temp2 = _local5; _local5 = (_local5 + 1); _local7 = _temp2; this.cellMap.set(_local7, _local4, new MapCell()); }; }; this.cityLot = null; }; } public function size():Point{ return (new Point(this.sizeX(), this.sizeY())); } public function getBuildings():List{ return (this.buildings); } public function addBlocked(_arg1:Route):void{ } public function clearBlocked():void{ } public function noise(_arg1:int, _arg2:int, _arg3:int, _arg4:PathFinder):void{ var source:Point; var minX:int; var maxX:int; var minY:int; var maxY:int; var _g:int; var yPos:int; var _g1:int; var xPos:int; var loudness:int; var x = _arg1; var y = _arg2; var range = _arg3; var guide = _arg4; source = new Point(x, y); minX = function (_arg1:Map):int{ var $r:*; var tmp:*; var $this = _arg1; tmp = Math.max(0, (x - range)); $r = (Std._is(tmp, int)) ? tmp : function (_arg1:Map):Number{ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this); maxX = function (_arg1:Map):int{ var $r3:*; var tmp2:*; var $this = _arg1; tmp2 = Math.min($this.sizeX(), ((x + range) + 1)); $r3 = (Std._is(tmp2, int)) ? tmp2 : function (_arg1:Map):Number{ var _local2:*; throw ("Class cast error"); }($this); return ($r3); }(this); minY = function (_arg1:Map):int{ var $r5:*; var tmp3:*; var $this = _arg1; tmp3 = Math.max(0, (y - range)); $r5 = (Std._is(tmp3, int)) ? tmp3 : function (_arg1:Map):Number{ var _local2:*; throw ("Class cast error"); }($this); return ($r5); }(this); maxY = function (_arg1:Map):int{ var $r7:*; var tmp4:*; var $this = _arg1; tmp4 = Math.min($this.sizeY(), ((y + range) + 1)); $r7 = (Std._is(tmp4, int)) ? tmp4 : function (_arg1:Map):Number{ var _local2:*; throw ("Class cast error"); }($this); return ($r7); }(this); _g = minY; while (_g < maxY) { _g = (_g + 1); yPos = _g; _g1 = minX; while (_g1 < maxX) { _g1 = (_g1 + 1); xPos = _g1; loudness = range; this.getCell(xPos, yPos).makeNoise(source, loudness, guide); }; }; } public function findTowers(_arg1:int, _arg2:int, _arg3:int):List{ var result:List; var minX:int; var maxX:int; var minY:int; var maxY:int; var _g:int; var yPos:int; var _g1:int; var xPos:int; var x = _arg1; var y = _arg2; var range = _arg3; result = new List(); minX = function (_arg1:Map):int{ var $r:*; var tmp:*; var $this = _arg1; tmp = Math.max(0, (x - range)); $r = (Std._is(tmp, int)) ? tmp : function (_arg1:Map):Number{ var _local2:*; throw ("Class cast error"); }($this); return ($r); }(this); maxX = function (_arg1:Map):int{ var $r3:*; var tmp2:*; var $this = _arg1; tmp2 = Math.min($this.sizeX(), ((x + range) + 1)); $r3 = (Std._is(tmp2, int)) ? tmp2 : function (_arg1:Map):Number{ var _local2:*; throw ("Class cast error"); }($this); return ($r3); }(this); minY = function (_arg1:Map):int{ var $r5:*; var tmp3:*; var $this = _arg1; tmp3 = Math.max(0, (y - range)); $r5 = (Std._is(tmp3, int)) ? tmp3 : function (_arg1:Map):Number{ var _local2:*; throw ("Class cast error"); }($this); return ($r5); }(this); maxY = function (_arg1:Map):int{ var $r7:*; var tmp4:*; var $this = _arg1; tmp4 = Math.min($this.sizeY(), ((y + range) + 1)); $r7 = (Std._is(tmp4, int)) ? tmp4 : function (_arg1:Map):Number{ var _local2:*; throw ("Class cast error"); }($this); return ($r7); }(this); _g = minY; while (_g < maxY) { _g = (_g + 1); yPos = _g; _g1 = minX; while (_g1 < maxX) { _g1 = (_g1 + 1); xPos = _g1; if (this.getCell(xPos, yPos).hasTower()){ result.push(new Point(xPos, yPos)); }; }; }; return (result); } public function cleanup():void{ this.cellMap = null; this.blocked = null; } public function load(_arg1):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:*; _local2 = 0; _local3 = this.sizeY(); while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local5 = 0; _local6 = this.sizeX(); while (_local5 < _local6) { var _temp2 = _local5; _local5 = (_local5 + 1); _local7 = _temp2; _local8 = _arg1.cellMap.mBuffer[(_local7 + (_local4 * this.sizeX()))]; this.cellMap.get(_local7, _local4).load(_local8); }; }; this.buildings = Load.loadList(_arg1.buildings, Building.load); this.cityLot = Load.maybe(_arg1.cityLot, Section.load); } public function getCell(_arg1:int, _arg2:int):MapCell{ return (this.cellMap.get(_arg1, _arg2)); } public function setCityLot(_arg1:Section):void{ this.cityLot = new Section(_arg1.offset, _arg1.limit); } public function getCityLot():Section{ return (this.cityLot); } public function addBuilding(_arg1:Building):void{ this.buildings.add(_arg1); } public function sizeX():int{ return (this.cellMap.sizeX()); } public function sizeY():int{ return (this.cellMap.sizeY()); } public function save(){ return ({cellMap:this.cellMap.save(MapCell.save), buildings:Save.saveList(this.buildings, Building.saveS), cityLot:Save.maybe(this.cityLot, Section.save)}); } } }//package
Section 386
//MapCell (MapCell) package { import logic.*; import ui.*; import mapgen.*; import action.*; import feature.*; import flash.*; public class MapCell { public var edit:EditBox; protected var obstacle; protected var mTower:Tower; protected var mBackground:BackgroundType; public var feature:Root; protected var mTrucks:List; protected var mTile:List; protected var mBuilding:Building; protected var scent:Direction; protected var mRubble:Rubble; protected var mZombies:List; protected var mShadow:TowerSprite; protected var mIsBlocked:Boolean; protected var x:int; protected var y:int; public function MapCell():void{ if (!Boot.skip_constructor){ this.mTile = new List(); this.mIsBlocked = false; this.mTower = null; this.x = 0; this.y = 0; this.mZombies = new List(); this.mTrucks = new List(); this.mShadow = null; this.mRubble = null; this.mBuilding = null; this.mBackground = BackgroundType.STREET; this.scent = null; this.obstacle = null; this.feature = null; this.edit = null; }; } public function getObstacle(){ return (this.obstacle); } public function zombieCount():int{ return (this.mZombies.length); } public function attackZombie(_arg1:Point):void{ if (!this.mZombies.isEmpty()){ this.mZombies.first().kill(_arg1); }; } public function hasTower():Boolean{ return (!((this.mTower == null))); } public function init(_arg1:int, _arg2:int):void{ this.x = _arg1; this.y = _arg2; } public function hasZombies():Boolean{ return (!(this.mZombies.isEmpty())); } public function destroyAllTrucks():void{ var _local1:Truck; while (!(this.mTrucks.isEmpty())) { _local1 = this.mTrucks.first(); this.removeTruck(_local1); _local1.cleanup(); }; } public function getZombie():Zombie{ if (!this.mZombies.isEmpty()){ return (this.mZombies.first()); }; return (null); } public function getShadow():TowerSprite{ return (this.mShadow); } public function attackTower():void{ var _local1:Boolean; if (this.hasTower()){ _local1 = this.mTower.attack(); if (_local1){ this.fleeTower(); }; }; } public function setShadow(_arg1:int):TowerSprite{ var _local2:ShadowColor; if (this.mShadow != null){ this.clearShadow(); }; this.mShadow = new TowerSprite(new Point(this.x, this.y), _arg1, 0); _local2 = ShadowColor.BUILD_SITE; this.mShadow.changeColor(_local2); this.mShadow.update(); return (this.mShadow); } public function getBackground():BackgroundType{ return (this.mBackground); } public function addZombie(_arg1:Zombie):void{ if (this.mZombies.isEmpty()){ Game.tracker.addCell(new Point(this.x, this.y)); }; this.mZombies.add(_arg1); while (!(this.mTrucks.isEmpty())) { Game.actions.push(new KillTruck(this.mTrucks.first())); this.removeTruck(this.mTrucks.first()); }; Game.update.cellState(new Point(this.x, this.y)); } public function clearRubble():void{ if (this.mRubble != null){ this.mRubble.cleanup(); this.mRubble = null; }; } public function getBuilding():Building{ return (this.mBuilding); } public function hasTrucks():Boolean{ return (!(this.mTrucks.isEmpty())); } public function destroyTower():void{ if (this.hasTower()){ Main.replay.addBox(new Point(this.x, this.y), new Point((this.x + 1), (this.y + 1)), Option.roadMiniColor); if (this.mTower.getType() == Tower.DEPOT){ Game.script.trigger(Script.DESTROY_DEPOT, new Point(this.x, this.y)); } else { if (this.mTower.getType() == Tower.BARRICADE){ Game.script.trigger(Script.DESTROY_BARRICADE, new Point(this.x, this.y)); } else { if (this.mTower.getType() == Tower.SNIPER){ Game.sprites.removeSniper(this.mTower); Game.view.window.updateRanges(); Game.script.trigger(Script.DESTROY_SNIPER, new Point(this.x, this.y)); } else { if (this.mTower.getType() == Tower.WORKSHOP){ Game.script.trigger(Script.DESTROY_WORKSHOP, new Point(this.x, this.y)); }; }; }; }; this.mTower.removeAllResources(); this.mTower.cleanup(); this.mTower = null; Game.update.destroyTower(new Point(this.x, this.y)); Game.actions.push(new UpdateBlocked(new Point(this.x, this.y))); }; } public function setBackground(_arg1:BackgroundType):void{ this.mBackground = _arg1; } public function setBlocked():void{ this.mIsBlocked = true; } public function hasRubble():Boolean{ return (((!((this.mRubble == null))) || (((((!((this.mBuilding == null))) && ((this.mBackground == BackgroundType.ENTRANCE)))) && ((this.mBuilding.getSalvage().getTotalCount() > 0)))))); } public function clearTiles():void{ this.mTile.clear(); } protected function addScents():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:Direction; _local1 = 0; _local2 = Lib.directions.length; while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = (this.x + Lib.dirDeltas[_local3].x); _local5 = (this.y + Lib.dirDeltas[_local3].y); _local6 = Util.opposite(Lib.directions[_local3]); Game.map.getCell(_local4, _local5).scent = _local6; this.scent = null; }; } public function removeObstacle():void{ this.obstacle = null; } public function removeTruck(_arg1:Truck):void{ this.mTrucks.remove(_arg1); Game.update.cellState(new Point(this.x, this.y)); } public function getRubbleCount(_arg1:Resource):int{ var _local2:int; _local2 = 0; if (this.mRubble != null){ _local2 = (_local2 + this.mRubble.getSalvage().getResourceCount(_arg1)); }; if (((!((this.mBuilding == null))) && ((this.mBackground == BackgroundType.ENTRANCE)))){ _local2 = (_local2 + this.mBuilding.getSalvage().getResourceCount(_arg1)); }; return (_local2); } public function addTruck(_arg1:Truck):void{ this.addScents(); this.mTrucks.add(_arg1); if (this.hasZombies()){ Game.actions.push(new KillTruck(_arg1)); this.removeTruck(_arg1); }; Game.update.cellState(new Point(this.x, this.y)); } public function fleeTower():void{ var _local1:int; var _local2:int; var _local3:Route; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:Truck; var _local9:int; var _local10:Resource; var _local11:int; if (this.hasTower()){ if (this.mTower.getType() == Tower.DEPOT){ Game.progress.removeDepot(new Point(this.x, this.y)); }; _local3 = this.getReturnRoute(); _local4 = this.mTower.countResource(Resource.SURVIVORS); _local5 = 0; while (_local5 < _local4) { var _temp1 = _local5; _local5 = (_local5 + 1); _local6 = _temp1; _local7 = this.mTower.takeSurvivor(); if (_local3 != null){ _local8 = Truck.createFleeingTruck(_local7, _local3); }; }; }; _local1 = 0; _local2 = Option.resourceCount; while (_local1 < _local2) { var _temp2 = _local1; _local1 = (_local1 + 1); _local9 = _temp2; _local10 = Lib.indexToResource(_local9); _local11 = this.mTower.countResource(_local10); if (_local11 > 0){ this.addRubble(_local10, _local11); }; }; if (this.mTower.getType() != Tower.BARRICADE){ this.addRubble(Resource.BOARDS, (Option.truckLoad * this.mTower.getInfrastructureBoards())); }; this.destroyTower(); } public function loadAddTruck(_arg1:Truck):void{ this.mTrucks.add(_arg1); } public function setBuilding(_arg1:Building):void{ this.mBuilding = _arg1; } public function hasObstacle():Boolean{ return (!((this.obstacle == null))); } protected function getReturnRoute():Route{ var _local1:Route; var _local2:*; var _local3:Route; var _local4:Tower; var _local5:Point; _local1 = null; if (!this.mTower.getTradeLinks().isEmpty()){ _local2 = this.mTower.getTradeLinks().iterator(); while (_local2.hasNext()) { _local3 = _local2.next(); _local4 = Game.map.getCell(_local3.dest.x, _local3.dest.y).getTower(); if (_local4.getType() == Tower.DEPOT){ _local1 = _local3; break; }; }; } else { _local5 = Game.progress.getRandomDepot(); if (_local5 != null){ _local1 = new Route(new Point(this.x, this.y), _local5); }; }; return (_local1); } public function makeNoise(_arg1:Point, _arg2:int, _arg3:PathFinder):void{ var _local4:*; var _local5:Zombie; _local4 = this.mZombies.iterator(); while (_local4.hasNext()) { _local5 = _local4.next(); _local5.makeNoise(_arg1, _arg2, _arg3); }; if (this.mBuilding != null){ this.mBuilding.makeNoise(_arg1, _arg2, _arg3); }; } public function clearShadow():void{ if (this.mShadow != null){ this.mShadow.cleanup(); this.mShadow = null; }; } public function getTiles():List{ return (this.mTile); } public function addObstacle(_arg1:int):void{ this.obstacle = _arg1; } public function removeZombie(_arg1:Zombie):void{ this.mZombies.remove(_arg1); if (this.mZombies.isEmpty()){ Game.tracker.removeCell(new Point(this.x, this.y)); }; Game.update.cellState(new Point(this.x, this.y)); } public function getTower():Tower{ return (this.mTower); } public function hasShadow():Boolean{ return (!((this.mShadow == null))); } public function attackSurvivor():Point{ var _local1:Point; _local1 = null; if (!this.mTrucks.isEmpty()){ _local1 = this.mTrucks.first().getPixel(); Game.actions.push(new KillTruck(this.mTrucks.first())); this.removeTruck(this.mTrucks.first()); Game.update.cellState(new Point(this.x, this.y)); }; return (_local1); } public function clearBlocked():void{ this.mIsBlocked = false; } public function loadAddZombie(_arg1:Zombie):void{ this.mZombies.add(_arg1); } public function isBlocked():Boolean{ return (this.mIsBlocked); } public function getScent():Direction{ return (this.scent); } public function load(_arg1):void{ this.mTile = Load.loadList(_arg1.mTile, Load.loadInt); this.mIsBlocked = _arg1.mIsBlocked; this.x = _arg1.x; this.y = _arg1.y; this.mShadow = Load.maybe(_arg1.mShadow, TowerSprite.load); this.mRubble = Load.maybe(_arg1.mRubble, Rubble.load); this.mBackground = Lib.indexToBackgroundType(_arg1.mBackground); if (_arg1.scent != null){ this.scent = Lib.indexToDirection(_arg1.scent); }; this.feature = Load.maybe(_arg1.feature, Root.loadS); } public function buildingHasZombies():Boolean{ return (((!((this.mBuilding == null))) && (this.mBuilding.hasZombies()))); } public function getAllRubbleCounts():Array{ var _local1:Array; var _local2:int; var _local3:int; var _local4:int; _local1 = Lib.newResourceArray(); _local2 = 0; _local3 = Option.resourceCount; while (_local2 < _local3) { var _temp1 = _local2; _local2 = (_local2 + 1); _local4 = _temp1; _local1[_local4] = this.getRubbleCount(Lib.indexToResource(_local4)); }; return (_local1); } public function createTower(_arg1:int):void{ var _local2:int; if (!this.hasTower()){ _local2 = 0; if (_arg1 == Tower.DEPOT){ this.mTower = new Depot(this.x, this.y); _local2 = Color.depotReplay; Game.progress.addDepot(new Point(this.x, this.y)); Game.script.trigger(Script.BUILD_DEPOT, new Point(this.x, this.y)); } else { if (_arg1 == Tower.WORKSHOP){ this.mTower = new Workshop(this.x, this.y); _local2 = Color.workshopReplay; Game.script.trigger(Script.BUILD_WORKSHOP, new Point(this.x, this.y)); } else { if (_arg1 == Tower.BARRICADE){ this.mTower = new Barricade(this.x, this.y); _local2 = Color.barricadeReplay; Game.script.trigger(Script.BUILD_BARRICADE, new Point(this.x, this.y)); } else { if (_arg1 == Tower.SNIPER){ this.mTower = new Sniper(this.x, this.y); _local2 = Color.sniperReplay; Game.sprites.addSniper(this.mTower); Game.script.trigger(Script.BUILD_SNIPER, new Point(this.x, this.y)); }; }; }; }; Main.replay.addBox(new Point(this.x, this.y), new Point((this.x + 1), (this.y + 1)), _local2); Game.update.newTower(new Point(this.x, this.y)); Game.actions.push(new UpdateBlocked(new Point(this.x, this.y))); }; } public function loadAddTower(_arg1:Tower):void{ this.mTower = _arg1; } public function addTile(_arg1:int):void{ this.mTile.add(_arg1); } public function closeTower():void{ var _local1:Route; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:Resource; var _local7:Truck; if (((this.hasTower()) && ((((this.mTower.getType() == Tower.WORKSHOP)) || ((this.mTower.getType() == Tower.BARRICADE)))))){ if (this.mTower.getType() == Tower.DEPOT){ Game.progress.removeDepot(new Point(this.x, this.y)); }; _local1 = this.getReturnRoute(); _local2 = this.mTower.countResource(Resource.SURVIVORS); _local3 = 0; while (_local3 < _local2) { var _temp1 = _local3; _local3 = (_local3 + 1); _local4 = _temp1; _local5 = this.mTower.takeSurvivor(); if (_local1 != null){ _local6 = Resource.SURVIVORS; if (this.mTower.canDowngrade()){ _local6 = Resource.BOARDS; this.mTower.downgrade(); }; _local7 = Truck.createClosingTruck(_local5, _local1, Resource.SURVIVORS); }; }; this.destroyTower(); }; } public function getRubble(_arg1:List):Resource{ var _local2:Resource; _local2 = null; if (this.mRubble != null){ _local2 = this.mRubble.getSalvage().getResource(_arg1); if (this.mRubble.getSalvage().getTotalCount() <= 0){ this.mRubble.cleanup(); this.mRubble = null; }; }; if ((((((_local2 == null)) && (!((this.mBuilding == null))))) && ((this.mBackground == BackgroundType.ENTRANCE)))){ _local2 = this.mBuilding.getSalvage().getResource(_arg1); }; return (_local2); } public function spawn(_arg1:Point, _arg2:PathFinder):void{ if (!this.mZombies.isEmpty()){ this.mZombies.first().makeNoise(_arg1, 0, _arg2); this.mZombies.first().addToWave(); }; } public function addRubble(_arg1:Resource, _arg2:int, _arg3=null):void{ if (this.mRubble == null){ this.mRubble = new Rubble(this.x, this.y); }; this.mRubble.addResource(_arg1, _arg2, _arg3); } public static function save(_arg1:MapCell){ var _local2:*; _local2 = null; if (_arg1.scent != null){ _local2 = Lib.directionToIndex(_arg1.scent); }; return ({mTile:Save.saveList(_arg1.mTile, Save.saveInt), mIsBlocked:_arg1.mIsBlocked, x:_arg1.x, y:_arg1.y, mShadow:Save.maybe(_arg1.mShadow, TowerSprite.saveS), mRubble:Save.maybe(_arg1.mRubble, Rubble.save), mBackground:Lib.backgroundTypeToIndex(_arg1.mBackground), scent:_local2, feature:Save.maybe(_arg1.feature, Root.saveS)}); } } }//package
Section 387
//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 388
//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 389
//Option (Option) package { public class Option { public static var hqBuildingDistribution:Array = [98, 0, 0, 0, 0, 0, 0, 0, 0, 2]; public static var ammoBarColor:int = 0xCCCCCC; public static var abandonButton:int = (Option.textButtonCount + buildButtonCount); public static var survivorFoodBonus:int = 3; public static var wanderingZombieBase:int = 10; public static var rangeOpacity:Number = 0.3; public static var truckSpeedMin:int = 300; public static var disturbChance:int = 4; public static var buildingThreshold:int = 5; public static var roadMiniColor:int = 0; public static var frameDelay:int = 75; public static var depotTruckSpeedRange:Array = [50, 75, 150]; public static var hqStatusTextColor:int = 13399927; public static var boardBarColor:int = 8864287; public static var depotCost:Array = [0, 3, 3]; public static var fastFrames:int = 5; public static var tutorialWanderingZombieDelay:int = (Option.fps * 130); public static var moderateResource:int = 10; public static var salvageBuildingOpacity:Number = 0.3; public static var truckNoise:int = 2; public static var halfCell:int = 16; public static var hqIndustryFactor:int = truckLoad; public static var supplyTargetThickness:int = 2; public static var shootNoise:int = 10; public static var depotTruckSpeedMin:Array = [300, 225, 450]; public static var rangeColor:int = 0xAAAA; public static var menuButtonCount:int = (((Option.textButtonCount + buildButtonCount) + abandonButtonCount) + extraButtonCount); public static var startDelay:int = (Option.fps * frameDelay); public static var towerMiniColor:int = -16711936; public static var countDownBackgroundColor:int = 0x330000; public static var toolTipTitleColor:int = 0xFFFFFF; public static var foodTime:int = 300; public static var foodTruckSpeedMin:int = 750; public static var zombieThreatTextColor:int = 16724787; public static var spawnFrameCount:int = 50; public static var towerShadowOpacity:Number = 0.7; public static var blockThreshold:int = 12; public static var foodBonus:int = 24; public static var statusTextColor:int = 0xEEEEEE; public static var backgroundBarColor:int = 0x333333; public static var supplyTargetLength:int = 32; public static var sniperMaxUpgrade:Array = [5, 0, 0, 0]; public static var statusBarSize:int = 110; public static var barricadeMaxInit:Array = [0, 15, 0, 0]; public static var workshopSpeedFactor:int = 50; public static var hitsBarColor:int = 0xCC00; public static var depotSpeed:Array = [150, 150, 150]; public static var maxPathOperations:int = 200; public static var hqCost:Array = [0, 0, 0]; public static var hqLevelLimit:int = 0; public static var shootCost:int = 1; public static var zombieBuildingColor:Array = [0xD5D500, 0xD58A00, 0xD50000]; public static var noBar:int = -1; public static var waterColor:int = 102; public static var supplyArrowAngle:Number = 0.628318530717959; public static var hqBackgroundColor:int = 0; public static var sniperSpeed:Array = [150, 150, 150]; public static var barThickness:int = 4; public static var gardenTime:int = 10; public static var sniperMaxInit:Array = [15, 0, 0, 1]; public static var zombieBuildingWeights:Array = [4, 6, 20000000]; public static var toggleViewButton:int = (Option.abandonButton + 1); public static var biasSalvage:int = 20; public static var cellPixels:int = 32; public static var foodTruckSpeedRange:int = 75; public static var returnTruckSpeedMin:int = 300; public static var hqSpeed:Array = [200, 200, 200]; public static var fullBarColor:int = 3346705; public static var barLeft:int = Math.floor(((Option.cellPixels - barLength) / 2)); public static var groundSalvageDistribution:Array = [50, 50, 0, 0]; public static var minGenericSize:int = 3; public static var rotateStep:int = 5; public static var barricadeHits:Array = [10, 15, 20]; public static var salvageBuildingColor:int = 11206570; public static var shadowOpacity:Number = 0.3; public static var survivorBonus:int = 7; public static var shadowBuildColor:int = 0; public static var mainTitleTextColor:int = 0xEEEEEE; public static var foodTransportCost:int = 2; public static var barLength:int = 25; public static var shadowAllowColor:int = 0xFF00; public static var extraButtonCount:int = 2; public static var miniSupplyColor:int = 0xFFFFFF; public static var barricadeMaxUpgrade:Array = [0, 10, 0, 0]; public static var countDownTextColor:int = 0xCCCC; public static var sniperLevelLimit:int = 2; public static var fps:int = 20; public static var announceFrameCount:int = (Option.fps * 2); public static var selectedMiniColor:int = -1; public static var truckSpeedRange:int = 100; public static var zombieChance:Array = [3, 5, 9, 9, 9, 9, 12, 10, 2, 1]; public static var workshopMaxUpgrade:Array = [0, 0, 0, 0]; public static var workshopSpeed:Array = [(4 * truckLoad), (4 * truckLoad), (8 * truckLoad)]; public static var rangeOpacityIncrement:Number = 0.08; public static var explosionNoise:int = 15; public static var sniperAccuracy:Array = [30, 30, 30]; public static var dynamiteWork:int = 100; public static var workshopMaxInit:Array = [10, 10, 10, 2]; public static var waitDelay:int = (Option.fps * frameDelay); public static var minHouseSize:int = 2; public static var normalRecklessDistance:int = 3; public static var wanderingZombieIncrement:int = 2; public static var danceMoves:Array = [0, 360, 220, 80, -80, 80, -80, 80]; public static var noShootColor:int = 0xEE0000; public static var emptyBuildingMiniColor:int = 0x333333; public static var sniperBuildCost:int = 2; public static var unknownColor:int = 9922895; public static var soundCount:int = 8; public static var spawnReplayColor:int = 0xCCCCCC; public static var tileCells:int = 3; public static var supplyThickness:int = 0; public static var abandonButtonCount:int = 1; public static var buildNoise:int = 4; public static var shadowRangeOpacity:Number = 0.3; public static var barricadeCost:Array = [0, 1, 1]; public static var buildingDistribution:Array = [70, 8, 0, 4, 4, 0, 4, 0, 0, 2]; public static var zombieBuildingMiniWeights:Array = [1]; public static var dancePeriod:int = 1200; public static var barricadeLevelLimit:int = 0; public static var sniperCost:Array = [0, 1, 1]; public static var shadowRangeColor:int = 0xAAAAAA; public static var toolTipDelay:int = 5; public static var smallBlockDistribution:Array = [70, 10, 0, 0, 20, 0]; public static var colorCount:int = 3; public static var maxTruckWait:int = 50; public static var barricadeMiniColor:int = -9615104; public static var hqIndustryTime:int = 900; public static var shadowDenyColor:int = 0xFF0000; public static var depotMiniColor:int = -16776961; public static var zombieBuildingMiniColor:Array = [0x770000]; public static var menuBackgroundColor:int = 0x202020; public static var workshopLevelLimit:int = 0; public static var greenMenuColor:int = 0x4000; public static var lowResource:int = 5; public static var depotMaxUpgrade:Array = [30, 30, 10, 3]; public static var workshopMiniColor:int = -8323073; public static var supplyRange:int = 7; public static var textButtonCount:int = 4; public static var towerNoise:int = 3; public static var sniperRange:Array = [4, 6, 9]; public static var sniperIdleRange:int = 500; public static var truckLook:int = 2; public static var jumpToDepotButton:int = (Option.toggleViewButton + 1); public static var resourceCount:int = 4; public static var toolTipTextColor:int = 0xDDDDDD; public static var returnTruckSpeedRange:int = 225; public static var foodBarColor:int = 204; public static var wanderingZombieDelay:int = (Option.fps * 150); public static var sniperHeadRotate:int = 15; public static var accuracyMax:int = 100; public static var truckMiniColor:int = -16742400; public static var hqBlockDistribution:Array = [85, 5, 0, 0, 10, 0]; public static var redMenuColor:int = 0x400000; public static var largeBlockDistribution:Array = [71, 5, 4, 4, 6, 6]; public static var vulnerableBonus:int = 49; public static var salvageChance:Array = [4, 8, 16, 16, 16, 16, 4, 16, 3, 1]; public static var buildButtonCount:int = 4; public static var depotMaxInit:Array = [40, 40, 30, 4]; public static var mainBodyTextColor:int = 0xAAAAAA; public static var supplyColor:int = 0xFF; public static var zombieNoThreatTextColor:int = 3407667; public static var startingResources:int = 30; public static var zombieMiniColor:int = -32640; public static var repeatWait:int = 1; public static var zombieBuildingOpacity:Array = [0.3, 0.3, 0.3]; public static var salvageDistribution:Array = [[50, 28, 0, 16], [50, 28, 0, 16], [2, 2, 0, 2], [94, 2, 0, 2], [2, 94, 0, 2], [2, 2, 0, 94], [60, 33, 0, 1], [50, 28, 0, 16], [60, 40, 0, 10], [1, 1, 0, 1]]; public static var foodShootCost:int = 2; public static var barricadeHitCost:int = 1; public static var supplyArrowLength:int = 8; public static var supplyTargetColor:int = 238; public static var survivorDeathFrameCount:int = 50; public static var barricadeSpeed:Array = [50, 50, 50]; public static var newRangeOpacity:Number = 0.3; public static var truckRetries:int = 3; public static var selectColor:int = 0xAA00; public static var depotLevelLimit:int = 0; public static var sniperBodyRotate:int = 10; public static var newRangeColor:int = 0xAAAA; public static var miniSupplyThickness:int = 0; public static var sniperIdleMin:int = 50; public static var selectThickness:int = 5; public static var hqInfluence:int = 11; public static var workshopCost:Array = [0, 1, 0]; public static var zombieSpeedRange:int = 50; public static var truckLoad:int = 10; } }//package
Section 390
//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 391
//PathFinder (PathFinder) package { import flash.*; public class PathFinder { protected var started:Boolean; protected var visit:Grid; protected var queue:PathHeap; protected var source:Point; protected var path:Path; protected var zombie:Boolean; protected var dest:Point; protected static var next:Point = new Point(0, 0); public function PathFinder(_arg1:Point=null, _arg2:Point=null, _arg3:Boolean=false, _arg4:Path=null):void{ if (!Boot.skip_constructor){ this.source = _arg1.clone(); this.dest = null; if (_arg2 != null){ this.dest = _arg2.clone(); }; this.queue = null; this.visit = null; this.zombie = _arg3; this.started = false; this.path = _arg4; if (this.path != null){ this.path.reset(); }; }; } public function step(_arg1:int):void{ var _local2:int; var _local3:int; _local2 = 0; while (_local2 < _arg1) { var _temp1 = _local2; _local2 = (_local2 + 1); _local3 = _temp1; this.stepOnce(); if (this.isDone()){ break; }; }; } public function startCalculation():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local1 = 0; _local2 = this.visit.sizeY(); while (_local1 < _local2) { var _temp1 = _local1; _local1 = (_local1 + 1); _local3 = _temp1; _local4 = 0; _local5 = this.visit.sizeX(); while (_local4 < _local5) { var _temp2 = _local4; _local4 = (_local4 + 1); _local6 = _temp2; this.visit.set(_local6, _local3, -1); }; }; this.queue.push(this.source.clone(), 0); this.visit.set(this.source.x, this.source.y, 0); this.started = true; } public function isDone():Boolean{ return (((this.started) && (this.queue.isEmpty()))); } public function setupVisit():void{ if (this.visit == null){ this.queue = new PathHeap(this.dest); this.visit = new Grid(Game.map.sizeX(), Game.map.sizeY()); }; } public function reset(_arg1:Point, _arg2:Point, _arg3:Boolean, _arg4:Path):void{ this.queue.clear(); this.source = _arg1.clone(); this.dest = null; if (_arg2 != null){ this.dest = _arg2.clone(); }; this.zombie = _arg3; this.started = false; this.path = _arg4; if (this.path != null){ this.path.reset(); }; } public function isVisited(_arg1:Point):Boolean{ return (!((this.visit.get(_arg1.x, _arg1.y) == -1))); } protected function isBlocked(_arg1:Point):Boolean{ var _local2:MapCell; var _local3:Boolean; if (Lib.outsideMap(_arg1)){ return (true); }; _local2 = Game.map.getCell(_arg1.x, _arg1.y); if (this.zombie){ return (_local2.isBlocked()); }; _local3 = Lib.adjacentZombie(_arg1); return (((((((_local2.isBlocked()) || (_local2.hasTower()))) || (_local3))) || ((_local2.getBackground() == BackgroundType.BRIDGE)))); } public function getParent(_arg1:Point, _arg2:Point=null):Point{ var _local3:Point; var _local4:int; var _local5:Array; var _local6:int; var _local7:Array; var _local8:Point; var _local9:int; var _local10:Point; var _local11:int; _local3 = null; if (this.started){ _local4 = 1000000000; _local5 = []; _local6 = 0; _local7 = Lib.delta; while (_local6 < _local7.length) { _local8 = _local7[_local6]; _local6++; _local9 = this.visit.get((_arg1.x + _local8.x), (_arg1.y + _local8.y)); if (((!((_local9 == -1))) && ((_local9 <= _local4)))){ _local10 = new Point((_arg1.x + _local8.x), (_arg1.y + _local8.y)); if (_local9 == _local4){ _local5.push(_local10); } else { _local5 = [_local10]; }; _local4 = _local9; }; }; if (((!((_arg2 == null))) && ((this.visit.get(_arg2.x, _arg2.y) == _local4)))){ _local3 = _arg2; } else { if (_local5.length > 0){ _local11 = Lib.rand(_local5.length); _local3 = _local5[_local11]; }; }; }; return (_local3); } public function getPath():Path{ return (this.path); } protected function stepOnce():void{ var _local1:Boolean; var _local2:Point; var _local3:int; var _local4:int; var _local5:Array; var _local6:Point; var _local7:Boolean; if (!this.queue.isEmpty()){ _local1 = false; _local2 = this.queue.pop(); _local3 = (this.visit.get(_local2.x, _local2.y) + 1); _local4 = 0; _local5 = Lib.delta; while (_local4 < _local5.length) { _local6 = _local5[_local4]; _local4++; next.x = (_local2.x + _local6.x); next.y = (_local2.y + _local6.y); if (Lib.outsideMap(next)){ } else { if (((!(this.isVisited(next))) || ((this.visit.get(next.x, next.y) > _local3)))){ if (!this.isBlocked(next)){ _local7 = !(this.isVisited(next)); this.visit.set(next.x, next.y, _local3); if (_local7){ this.queue.push(next.clone(), _local3); } else { this.queue.update(next, _local3); }; }; }; if (((!(this.zombie)) && (((Point.isEqual(next, this.dest)) || ((((this.dest == null)) && (this.isTower(next)))))))){ this.dest = next.clone(); _local1 = true; break; }; }; }; if (_local1){ this.completePath(); Game.update.supplyLine(this.source, this.dest); } else { if (((this.queue.isEmpty()) && (!((this.path == null))))){ this.path.fail(); Game.update.supplyLine(this.source, this.dest); }; }; }; } public function isZombie():Boolean{ return (this.zombie); } public function save(){ if (!this.zombie){ throw (new Error("ERROR: Saving non-zombie path")); }; return ({source:this.source.save(), dest:Save.maybe(this.dest, Point.saveS), queue:Save.maybe(this.queue, PathHeap.saveS), visit:Save.maybe(this.visit, Save.saveGridInt), started:this.started}); } protected function completePath():void{ var _local1:Point; if (this.path != null){ _local1 = this.dest.clone(); while (!(Point.isEqual(_local1, this.source))) { this.path.addStep(_local1); _local1 = this.getParent(_local1); }; this.queue.clear(); this.path.succeed(); }; } protected function isTower(_arg1:Point):Boolean{ return (!((Game.map.getCell(_arg1.x, _arg1.y).getTower() == null))); } public static function load(_arg1):PathFinder{ var _local2:Point; var _local3:Point; var _local4:PathFinder; _local2 = Point.load(_arg1.source); _local3 = Point.load(_arg1.dest); _local4 = new PathFinder(_local2, _local3, true, null); _local4.queue = Load.maybe(_arg1.queue, PathHeap.load); _local4.visit = Load.maybe(_arg1.visit, Load.loadGridInt); _local4.zombie = true; _local4.started = _arg1.started; _local4.path = null; return (_local4); } public static function saveS(_arg1:PathFinder){ return (_arg1.save()); } } }//package
Section 392
//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 393
//PathHeap (PathHeap) package { import flash.*; public class PathHeap { protected var dest:Point; protected var scores:Array; protected var heap:Array; protected var indices:Grid; public function PathHeap(_arg1:Point=null):void{ if (!Boot.skip_constructor){ this.dest = _arg1; this.heap = []; this.scores = []; this.indices = new Grid(Game.map.sizeX(), Game.map.sizeY()); }; } protected function swap(_arg1:int, _arg2:int):void{ var _local3:Point; var _local4:int; _local3 = this.heap[_arg1]; this.heap[_arg1] = this.heap[_arg2]; this.heap[_arg2] = _local3; _local4 = this.scores[_arg1]; this.scores[_arg1] = this.scores[_arg2]; this.scores[_arg2] = _local4; this.indices.set(this.heap[_arg1].x, this.heap[_arg1].y, _arg1); this.indices.set(this.heap[_arg2].x, this.heap[_arg2].y, _arg2); } public function isEmpty():Boolean{ return ((this.heap.length == 0)); } public function update(_arg1:Point, _arg2:int):void{ var _local3:int; _local3 = this.indices.get(_arg1.x, _arg1.y); if (_local3 != -1){ this.scores[_local3] = (_arg2 + this.getDistance(_arg1)); this.heapify(_local3); }; } protected function backfill(_arg1:int):void{ var _local2:int; var _local3:int; var _local4:int; _local2 = ((_arg1 * 2) + 1); _local3 = ((_arg1 * 2) + 2); if (_local2 < this.heap.length){ _local4 = _local2; if ((((_local3 < this.heap.length)) && ((this.scores[_local3] < this.scores[_local2])))){ _local4 = _local3; }; if (this.scores[_local4] < this.scores[_arg1]){ this.swap(_arg1, _local4); this.backfill(_local4); }; }; } public function getDistance(_arg1:Point):int{ var _local2:int; _local2 = 0; if (this.dest != null){ _local2 = Math.floor((Math.abs((_arg1.x - this.dest.x)) + Math.abs((_arg1.y - this.dest.y)))); }; return (_local2); } public function clear():void{ this.heap = []; this.scores = []; } protected function heapify(_arg1:int):void{ var _local2:int; if (_arg1 > 0){ _local2 = Math.floor(((_arg1 - 1) / 2)); if (this.scores[_arg1] < this.scores[_local2]){ this.swap(_local2, _arg1); this.heapify(_local2); }; }; } public function pop():Point{ var _local1:Point; _local1 = null; if (this.heap.length > 0){ _local1 = this.heap[0]; this.swap(0, (this.heap.length - 1)); this.heap.pop(); this.scores.pop(); this.indices.set(_local1.x, _local1.y, -1); if (this.heap.length > 0){ this.backfill(0); }; }; return (_local1); } public function push(_arg1:Point, _arg2:int):void{ var _local3:int; _local3 = this.heap.length; this.heap.push(_arg1); this.scores.push((_arg2 + this.getDistance(_arg1))); this.indices.set(_arg1.x, _arg1.y, _local3); this.heapify(_local3); } public function save(){ return ({dest:Save.maybe(this.dest, Point.saveS), heap:Save.saveArray(this.heap, Point.saveS), scores:Save.saveArray(this.scores, Save.saveInt), indices:Save.saveGridInt(this.indices)}); } public static function load(_arg1):PathHeap{ var _local2:PathHeap; _local2 = new PathHeap(Load.maybe(_arg1.dest, Point.load)); _local2.heap = Load.loadArray(_arg1.heap, Point.load); _local2.scores = Load.loadArray(_arg1.scores, Load.loadInt); _local2.indices = Load.loadGridInt(_arg1.indices); return (_local2); } public static function saveS(_arg1:PathHeap){ return (_arg1.save()); } } }//package
Section 394
//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 395
//PauseClip (PauseClip) package { import flash.display.*; public dynamic class PauseClip extends MovieClip { public function PauseClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 396
//pedia_ammo (pedia_ammo) package { import flash.display.*; public dynamic class pedia_ammo extends MovieClip { } }//package
Section 397
//pedia_apartment (pedia_apartment) package { import flash.display.*; public dynamic class pedia_apartment extends MovieClip { } }//package
Section 398
//pedia_barricade (pedia_barricade) package { import flash.display.*; public dynamic class pedia_barricade extends MovieClip { } }//package
Section 399
//pedia_boards (pedia_boards) package { import flash.display.*; public dynamic class pedia_boards extends MovieClip { } }//package
Section 400
//pedia_charges (pedia_charges) package { import flash.display.*; public dynamic class pedia_charges extends MovieClip { } }//package
Section 401
//pedia_church (pedia_church) package { import flash.display.*; public dynamic class pedia_church extends MovieClip { } }//package
Section 402
//pedia_depot (pedia_depot) package { import flash.display.*; public dynamic class pedia_depot extends MovieClip { } }//package
Section 403
//pedia_hardware_store (pedia_hardware_store) package { import flash.display.*; public dynamic class pedia_hardware_store extends MovieClip { } }//package
Section 404
//pedia_hospital (pedia_hospital) package { import flash.display.*; public dynamic class pedia_hospital extends MovieClip { } }//package
Section 405
//pedia_house (pedia_house) package { import flash.display.*; public dynamic class pedia_house extends MovieClip { } }//package
Section 406
//pedia_mall (pedia_mall) package { import flash.display.*; public dynamic class pedia_mall extends MovieClip { } }//package
Section 407
//pedia_office (pedia_office) package { import flash.display.*; public dynamic class pedia_office extends MovieClip { } }//package
Section 408
//pedia_police_station (pedia_police_station) package { import flash.display.*; public dynamic class pedia_police_station extends MovieClip { } }//package
Section 409
//pedia_rubble (pedia_rubble) package { import flash.display.*; public dynamic class pedia_rubble extends MovieClip { } }//package
Section 410
//pedia_sniper (pedia_sniper) package { import flash.display.*; public dynamic class pedia_sniper extends MovieClip { } }//package
Section 411
//pedia_survivors (pedia_survivors) package { import flash.display.*; public dynamic class pedia_survivors extends MovieClip { } }//package
Section 412
//pedia_workshop (pedia_workshop) package { import flash.display.*; public dynamic class pedia_workshop extends MovieClip { } }//package
Section 413
//pedia_zombies (pedia_zombies) package { import flash.display.*; public dynamic class pedia_zombies extends MovieClip { } }//package
Section 414
//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 415
//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 416
//PreloaderClip (PreloaderClip) package { import flash.display.*; import flash.text.*; public dynamic class PreloaderClip extends MovieClip { public var progress:TextField; public var armor:MovieClip; public function PreloaderClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 417
//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 418
//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 419
//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 420
//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 421
//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 422
//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 423
//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 424
//resourcetiles (resourcetiles) package { import flash.display.*; public dynamic class resourcetiles extends MovieClip { } }//package
Section 425
//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 426
//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 427
//RubbleClip (RubbleClip) package { import flash.display.*; public dynamic class RubbleClip extends MovieClip { } }//package
Section 428
//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 429
//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 430
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_disabledSkin extends MovieClip { } }//package
Section 431
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_downSkin extends MovieClip { } }//package
Section 432
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_overSkin extends MovieClip { } }//package
Section 433
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_upSkin extends MovieClip { } }//package
Section 434
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_disabledSkin extends MovieClip { } }//package
Section 435
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_downSkin extends MovieClip { } }//package
Section 436
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_overSkin extends MovieClip { } }//package
Section 437
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_upSkin extends MovieClip { } }//package
Section 438
//ScrollBar_thumbIcon (ScrollBar_thumbIcon) package { import flash.display.*; public dynamic class ScrollBar_thumbIcon extends MovieClip { } }//package
Section 439
//ScrollThumb_downSkin (ScrollThumb_downSkin) package { import flash.display.*; public dynamic class ScrollThumb_downSkin extends MovieClip { } }//package
Section 440
//ScrollThumb_overSkin (ScrollThumb_overSkin) package { import flash.display.*; public dynamic class ScrollThumb_overSkin extends MovieClip { } }//package
Section 441
//ScrollThumb_upSkin (ScrollThumb_upSkin) package { import flash.display.*; public dynamic class ScrollThumb_upSkin extends MovieClip { } }//package
Section 442
//ScrollTrack_skin (ScrollTrack_skin) package { import flash.display.*; public dynamic class ScrollTrack_skin extends MovieClip { } }//package
Section 443
//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 444
//SelectClip (SelectClip) package { import flash.display.*; public dynamic class SelectClip extends MovieClip { } }//package
Section 445
//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 446
//Sniper (Sniper) package { import ui.*; import flash.*; public class Sniper extends Tower implements AbstractFrame { protected var shooter:SniperSprite; protected var visibleSquares:Array; protected var range:int; protected var idleAngle:int; protected var idleCount:int; protected var isShooting:Boolean; protected var holdFire:Boolean; protected var shootType:int; protected static var BOARDS:Resource = Resource.BOARDS; protected static var FOOD:Resource = Resource.FOOD; public static var maxSurvivors:int = 11; protected static var SURVIVORS:Resource = Resource.SURVIVORS; protected static var AMMO:Resource = Resource.AMMO; public function Sniper(_arg1:int=0, _arg2:int=0):void{ var _local3:int; var _local4:int; var _local5:int; if (!Boot.skip_constructor){ this.type = Tower.SNIPER; this.shooter = null; this.holdFire = false; this.isShooting = false; this.idleCount = 0; this.idleAngle = Lib.rand(360); this.range = 0; this.visibleSquares = []; this.shootType = (SoundPlayer.SNIPER_SHOOT + Lib.rand(SoundPlayer.sniperShootCount)); super(new Point(_arg1, _arg2), Option.sniperLevelLimit, Option.sniperSpeed, Option.sniperCost); this.addReserve(Lib.ammoLoad); this.addReserve(Lib.survivorLoad); _local3 = 0; _local4 = Option.sniperBuildCost; while (_local3 < _local4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = _temp1; this.addReserve(Lib.boardLoad); }; this.updateCanShoot(); this.updateBlocked(); }; } override public function toggleHoldFire():void{ this.holdFire = !(this.holdFire); this.updateCanShoot(); } protected function updateShooter():void{ var _local1:int; if ((((this.shooter == null)) && ((this.countResource(Resource.SURVIVORS) > 0)))){ _local1 = this.getSurvivorType(0); this.shooter = new SniperSprite(this.mapPos, _local1); } else { if (((!((this.shooter == null))) && ((this.countResource(Resource.SURVIVORS) == 0)))){ Game.view.frameAdvance.remove(this); this.shooter.cleanup(); this.shooter = null; this.isShooting = false; }; }; } protected function addVisibleSquare(_arg1:int, _arg2:int):void{ if (!isBlocked(_arg1, _arg2)){ this.visibleSquares.push(new Point(_arg1, _arg2)); }; } override public function isHoldingFire():Boolean{ return (this.holdFire); } protected function updateCanShoot():void{ this.sprite.changeCanOperate(((this.canWasteShot()) && (!(this.holdFire)))); this.sprite.update(); } override public function wasteShot():void{ if (this.canWasteShot()){ this.shootSideEffect(); }; } override public function canWasteShot():Boolean{ return ((((((this.countResource(AMMO) >= Option.shootCost)) && ((this.countResource(SURVIVORS) >= Lib.truckLoad(SURVIVORS))))) && ((this.countResource(BOARDS) >= (Lib.truckLoad(BOARDS) * Option.sniperBuildCost))))); } protected function shootSideEffect():void{ Main.sound.play(this.shootType); Game.map.noise(this.mapPos.x, this.mapPos.y, Option.shootNoise, this.zombieGuide); this.takeResource(new ResourceCount(AMMO, Option.shootCost)); this.updateCanShoot(); Game.update.resourceChange(this.mapPos); if (this.shooter != null){ this.shooter.startShooting(); Game.view.frameAdvance.add(this); this.isShooting = true; }; } override public function giveResource(_arg1:ResourceCount):void{ super.giveResource(_arg1); this.updateShooter(); this.updateCanShoot(); } public function fixedStep():void{ } protected function getDistance(_arg1:Point):int{ return (Math.floor((Math.abs((this.mapPos.x - _arg1.x)) + Math.abs((this.mapPos.y - _arg1.y))))); } override public function getAccuracy(_arg1:Zombie=null):int{ var _local2:int; var _local3:int; var _local4:int; _local2 = Option.sniperAccuracy[this.level]; _local3 = this.countResource(SURVIVORS); _local4 = this.countResource(FOOD); if (_local3 == 0){ _local2 = 0; } else { _local2 = (_local2 + ((_local3 - 1) * Option.survivorBonus)); if (_local4 >= Option.foodShootCost){ _local2 = (_local2 + Option.foodBonus); _local2 = (_local2 + ((_local3 - 1) * Option.survivorFoodBonus)); }; }; if (((!((_arg1 == null))) && (_arg1.isVulnerable()))){ _local2 = (_local2 + Option.vulnerableBonus); }; if (_local2 > 100){ _local2 = 100; }; return (_local2); } override public function normalizeLevel():void{ super.normalizeLevel(); this.range = Option.sniperRange[this.level]; Game.update.changeRange(this.mapPos); this.updateVisibility(); } protected function attemptShot(_arg1:Point, _arg2:Zombie):void{ var _local3:int; var _local4:int; if (((this.canWasteShot()) && (!(this.holdFire)))){ _local3 = this.getAccuracy(_arg2); if (this.countResource(FOOD) >= Option.foodShootCost){ this.takeResource(new ResourceCount(FOOD, Option.foodShootCost)); }; this.shootSideEffect(); _local4 = Lib.rand(Option.accuracyMax); if (_local4 < _local3){ Game.map.getCell(_arg1.x, _arg1.y).attackZombie(this.mapPos); }; }; } override public function getRange():int{ return (this.range); } override public function saveTower(){ return ({parent:super.saveTowerGeneric(), shooter:Save.maybe(this.shooter, SniperSprite.saveS), holdFire:this.holdFire, isShooting:this.isShooting, idleCount:this.idleCount, idleAngle:this.idleAngle, shootType:this.shootType}); } override public function cleanup():void{ if (this.shooter != null){ Game.view.frameAdvance.remove(this); this.shooter.cleanup(); }; super.cleanup(); } protected function sortByDistance(_arg1:Point, _arg2:Point):int{ return ((this.getDistance(_arg1) - this.getDistance(_arg2))); } protected function findTarget():Point{ var _local1:Point; var _local2:int; var _local3:Array; var _local4:Point; _local1 = null; _local2 = 0; _local3 = this.visibleSquares; while (_local2 < _local3.length) { _local4 = _local3[_local2]; _local2++; if (Game.map.getCell(_local4.x, _local4.y).hasZombies()){ _local1 = _local4; break; }; }; return (_local1); } override public function takeResource(_arg1:ResourceCount):void{ super.takeResource(_arg1); this.updateShooter(); this.updateCanShoot(); } override public function getType():int{ return (Tower.SNIPER); } override public function updateVisibility():void{ this.visibleSquares = []; if (this.range > 0){ PermissiveFov.permissiveFov(this.mapPos.x, this.mapPos.y, this.range, Sniper.isBlocked, this.addVisibleSquare); this.visibleSquares.sort(this.sortByDistance); }; Game.view.window.updateRanges(); } override public function step(_arg1:int):void{ var _local2:int; var _local3:Point; var _local4:Zombie; var _local5:Point; var _local6:Point; var _local7:int; var _local8:int; var _local9:int; if (this.isShooting){ _local2 = this.shooter.shootStep(_arg1); if (_local2 < _arg1){ this.isShooting = false; this.shooter.stopShooting(); Game.view.frameAdvance.remove(this); }; } else { if (((!(this.isShooting)) && (!((this.shooter == null))))){ _local3 = this.findTarget(); if (_local3 != null){ _local4 = Game.map.getCell(_local3.x, _local3.y).getZombie(); _local5 = this.mapPos.toPixel(); _local6 = _local4.getPixel(); _local7 = (Lib.getAngle(_local5, _local6) + 90); _local8 = this.shooter.rotateStep(_arg1, _local7); if (_local8 == 0){ this.attemptShot(_local3, _local4); }; } else { if (this.idleCount == 0){ _local9 = this.shooter.rotateStep(_arg1, this.idleAngle); if (_local9 == 0){ this.idleCount = (Lib.rand(Option.sniperIdleRange) + Option.sniperIdleMin); }; } else { this.sendToDepot(true); this.idleCount--; if (this.idleCount == 0){ this.idleAngle = Lib.rand(360); }; }; }; }; }; if (this.canWasteShot()){ Game.map.noise(this.mapPos.x, this.mapPos.y, Option.towerNoise, this.zombieGuide); }; } override public function updateBlocked():void{ var _local1:int; var _local2:int; var _local3:Point; var _local4:int; var _local5:Array; var _local6:Point; var _local7:MapCell; _local1 = 0; _local2 = 1; _local3 = new Point(0, 0); _local4 = 0; _local5 = Lib.dirDeltas; while (_local4 < _local5.length) { _local6 = _local5[_local4]; _local4++; _local3.x = (this.mapPos.x + _local6.x); _local3.y = (this.mapPos.y + _local6.y); _local7 = Game.map.getCell(_local3.x, _local3.y); if (((_local7.isBlocked()) || (_local7.hasTower()))){ _local1 = (_local1 + _local2); }; _local2 = (_local2 * 2); }; this.sprite.changeUpgrade(_local1); } override public function load(_arg1):void{ super.load(_arg1.parent); this.shooter = Load.maybe(_arg1.shooter, SniperSprite.load); this.holdFire = _arg1.holdFire; this.isShooting = _arg1.isShooting; this.idleCount = _arg1.idleCount; this.idleAngle = _arg1.idleAngle; this.shootType = _arg1.shootType; if (this.isShooting){ Game.view.frameAdvance.add(this); }; Game.sprites.addSniper(this); } override public function showVisibility(_arg1:Range):void{ var _local2:int; var _local3:Array; var _local4:Point; _local2 = 0; _local3 = this.visibleSquares; while (_local2 < _local3.length) { _local4 = _local3[_local2]; _local2++; _arg1.set(_local4.x, _local4.y); }; } public static function isBlocked(_arg1:int, _arg2:int):Boolean{ var _local3:Boolean; var _local4:MapCell; _local3 = true; if (!Lib.outsideMap(new Point(_arg1, _arg2))){ _local4 = Game.map.getCell(_arg1, _arg2); _local3 = ((((_local4.isBlocked()) && (!((_local4.getBackground() == BackgroundType.WATER))))) && (!((_local4.getBackground() == BackgroundType.BRIDGE)))); }; return (_local3); } } }//package
Section 447
//SniperScreen (SniperScreen) package { import flash.display.*; public dynamic class SniperScreen extends MovieClip { } }//package
Section 448
//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 449
//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 450
//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 451
//SoundPlayer (SoundPlayer) package { import flash.display.*; import flash.media.*; import flash.*; public class SoundPlayer { protected var sounds:Array; protected var transform:SoundTransform; public static var soundCount:int = 25; public static var ZOMBIE_CROWD_MOAN:int = 19; public static var TOWER_DESTROY:int = 9; public static var TOWER_SUPPLY:int = 10; public static var TOWER_ABANDON:int = 7; protected static var zombieMoanCount:int = 4; public static var sniperShootCount:int = 3; public static var ZOMBIE_MOAN:int = 20; protected static var zombieBashCount:int = 6; public static var BUTTON_SUCCESS:int = 2; public static var ZOMBIE_BASH:int = 12; public static var TIMER_PIP:int = 6; public static var TOWER_UPGRADE:int = 11; public static var BUTTON_FAILED:int = 1; public static var SNIPER_SHOOT:int = 3; public static var TOWER_BUILD:int = 8; public static var ZOMBIE_DEATH:int = 18; public static var BRIDGE_EXPLOSION:int = 0; public function SoundPlayer(_arg1:DisplayObjectContainer=null):void{ if (!Boot.skip_constructor){ this.sounds = []; this.sounds.push(new BridgeExplosionSound()); this.sounds.push(new ButtonFailedSound()); this.sounds.push(new ButtonSuccessSound()); this.sounds.push(new SniperShoot1Sound()); this.sounds.push(new SniperShoot2Sound()); this.sounds.push(new SniperShoot3Sound()); this.sounds.push(new TimerPipSound()); this.sounds.push(new TowerAbandonSound()); this.sounds.push(new TowerBuildSound()); this.sounds.push(new TowerDestroySound()); this.sounds.push(new TowerSupplySound()); this.sounds.push(new TowerUpgradeSound()); this.sounds.push(new ZombieBash1Sound()); this.sounds.push(new ZombieBash2Sound()); this.sounds.push(new ZombieBash3Sound()); this.sounds.push(new ZombieBash4Sound()); this.sounds.push(new ZombieBash5Sound()); this.sounds.push(new ZombieBash6Sound()); this.sounds.push(new ZombieDeathSound()); this.sounds.push(new ZombieMoanCrowdSound()); this.sounds.push(new ZombieMoan1Sound()); this.sounds.push(new ZombieMoan2Sound()); this.sounds.push(new ZombieMoan3Sound()); this.sounds.push(new ZombieMoan4Sound()); this.transform = new SoundTransform(); }; } public function cleanup():void{ this.sounds = null; } public function play(_arg1:int):void{ var which = _arg1; try { if ((((which >= 0)) && ((which < soundCount)))){ if (which == ZOMBIE_BASH){ which = (which + Lib.rand(zombieBashCount)); } else { if (which == ZOMBIE_MOAN){ which = (which + Lib.rand(zombieMoanCount)); }; }; this.transform.volume = Main.config.getProportion(Config.SOUND); this.sounds[which].play(0, 0, this.transform); }; } catch(e) { }; } public function setVolume(_arg1:Number):void{ } } }//package
Section 452
//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 453
//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 454
//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 455
//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 456
//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 457
//Survivor_0_1 (Survivor_0_1) package { import flash.display.*; public dynamic class Survivor_0_1 extends MovieClip { } }//package
Section 458
//Survivor_0_10 (Survivor_0_10) package { import flash.display.*; public dynamic class Survivor_0_10 extends MovieClip { } }//package
Section 459
//Survivor_0_11 (Survivor_0_11) package { import flash.display.*; public dynamic class Survivor_0_11 extends MovieClip { } }//package
Section 460
//Survivor_0_12 (Survivor_0_12) package { import flash.display.*; public dynamic class Survivor_0_12 extends MovieClip { } }//package
Section 461
//Survivor_0_13 (Survivor_0_13) package { import flash.display.*; public dynamic class Survivor_0_13 extends MovieClip { } }//package
Section 462
//Survivor_0_14 (Survivor_0_14) package { import flash.display.*; public dynamic class Survivor_0_14 extends MovieClip { } }//package
Section 463
//Survivor_0_15 (Survivor_0_15) package { import flash.display.*; public dynamic class Survivor_0_15 extends MovieClip { } }//package
Section 464
//Survivor_0_16 (Survivor_0_16) package { import flash.display.*; public dynamic class Survivor_0_16 extends MovieClip { } }//package
Section 465
//Survivor_0_17 (Survivor_0_17) package { import flash.display.*; public dynamic class Survivor_0_17 extends MovieClip { } }//package
Section 466
//Survivor_0_18 (Survivor_0_18) package { import flash.display.*; public dynamic class Survivor_0_18 extends MovieClip { } }//package
Section 467
//Survivor_0_19 (Survivor_0_19) package { import flash.display.*; public dynamic class Survivor_0_19 extends MovieClip { } }//package
Section 468
//Survivor_0_2 (Survivor_0_2) package { import flash.display.*; public dynamic class Survivor_0_2 extends MovieClip { } }//package
Section 469
//Survivor_0_20 (Survivor_0_20) package { import flash.display.*; public dynamic class Survivor_0_20 extends MovieClip { } }//package
Section 470
//Survivor_0_3 (Survivor_0_3) package { import flash.display.*; public dynamic class Survivor_0_3 extends MovieClip { } }//package
Section 471
//Survivor_0_4 (Survivor_0_4) package { import flash.display.*; public dynamic class Survivor_0_4 extends MovieClip { } }//package
Section 472
//Survivor_0_5 (Survivor_0_5) package { import flash.display.*; public dynamic class Survivor_0_5 extends MovieClip { } }//package
Section 473
//Survivor_0_6 (Survivor_0_6) package { import flash.display.*; public dynamic class Survivor_0_6 extends MovieClip { } }//package
Section 474
//Survivor_0_7 (Survivor_0_7) package { import flash.display.*; public dynamic class Survivor_0_7 extends MovieClip { } }//package
Section 475
//Survivor_0_8 (Survivor_0_8) package { import flash.display.*; public dynamic class Survivor_0_8 extends MovieClip { } }//package
Section 476
//Survivor_0_9 (Survivor_0_9) package { import flash.display.*; public dynamic class Survivor_0_9 extends MovieClip { } }//package
Section 477
//Survivor_1_1 (Survivor_1_1) package { import flash.display.*; public dynamic class Survivor_1_1 extends MovieClip { } }//package
Section 478
//Survivor_1_10 (Survivor_1_10) package { import flash.display.*; public dynamic class Survivor_1_10 extends MovieClip { } }//package
Section 479
//Survivor_1_11 (Survivor_1_11) package { import flash.display.*; public dynamic class Survivor_1_11 extends MovieClip { } }//package
Section 480
//Survivor_1_12 (Survivor_1_12) package { import flash.display.*; public dynamic class Survivor_1_12 extends MovieClip { } }//package
Section 481
//Survivor_1_13 (Survivor_1_13) package { import flash.display.*; public dynamic class Survivor_1_13 extends MovieClip { } }//package
Section 482
//Survivor_1_14 (Survivor_1_14) package { import flash.display.*; public dynamic class Survivor_1_14 extends MovieClip { } }//package
Section 483
//Survivor_1_15 (Survivor_1_15) package { import flash.display.*; public dynamic class Survivor_1_15 extends MovieClip { } }//package
Section 484
//Survivor_1_16 (Survivor_1_16) package { import flash.display.*; public dynamic class Survivor_1_16 extends MovieClip { } }//package
Section 485
//Survivor_1_17 (Survivor_1_17) package { import flash.display.*; public dynamic class Survivor_1_17 extends MovieClip { } }//package
Section 486
//Survivor_1_18 (Survivor_1_18) package { import flash.display.*; public dynamic class Survivor_1_18 extends MovieClip { } }//package
Section 487
//Survivor_1_19 (Survivor_1_19) package { import flash.display.*; public dynamic class Survivor_1_19 extends MovieClip { } }//package
Section 488
//Survivor_1_2 (Survivor_1_2) package { import flash.display.*; public dynamic class Survivor_1_2 extends MovieClip { } }//package
Section 489
//Survivor_1_20 (Survivor_1_20) package { import flash.display.*; public dynamic class Survivor_1_20 extends MovieClip { } }//package
Section 490
//Survivor_1_3 (Survivor_1_3) package { import flash.display.*; public dynamic class Survivor_1_3 extends MovieClip { } }//package
Section 491
//Survivor_1_4 (Survivor_1_4) package { import flash.display.*; public dynamic class Survivor_1_4 extends MovieClip { } }//package
Section 492
//Survivor_1_5 (Survivor_1_5) package { import flash.display.*; public dynamic class Survivor_1_5 extends MovieClip { } }//package
Section 493
//Survivor_1_6 (Survivor_1_6) package { import flash.display.*; public dynamic class Survivor_1_6 extends MovieClip { } }//package
Section 494
//Survivor_1_7 (Survivor_1_7) package { import flash.display.*; public dynamic class Survivor_1_7 extends MovieClip { } }//package
Section 495
//Survivor_1_8 (Survivor_1_8) package { import flash.display.*; public dynamic class Survivor_1_8 extends MovieClip { } }//package
Section 496
//Survivor_1_9 (Survivor_1_9) package { import flash.display.*; public dynamic class Survivor_1_9 extends MovieClip { } }//package
Section 497
//Survivor_2_1 (Survivor_2_1) package { import flash.display.*; public dynamic class Survivor_2_1 extends MovieClip { } }//package
Section 498
//Survivor_2_10 (Survivor_2_10) package { import flash.display.*; public dynamic class Survivor_2_10 extends MovieClip { } }//package
Section 499
//Survivor_2_11 (Survivor_2_11) package { import flash.display.*; public dynamic class Survivor_2_11 extends MovieClip { } }//package
Section 500
//Survivor_2_12 (Survivor_2_12) package { import flash.display.*; public dynamic class Survivor_2_12 extends MovieClip { } }//package
Section 501
//Survivor_2_13 (Survivor_2_13) package { import flash.display.*; public dynamic class Survivor_2_13 extends MovieClip { } }//package
Section 502
//Survivor_2_14 (Survivor_2_14) package { import flash.display.*; public dynamic class Survivor_2_14 extends MovieClip { } }//package
Section 503
//Survivor_2_15 (Survivor_2_15) package { import flash.display.*; public dynamic class Survivor_2_15 extends MovieClip { } }//package
Section 504
//Survivor_2_16 (Survivor_2_16) package { import flash.display.*; public dynamic class Survivor_2_16 extends MovieClip { } }//package
Section 505
//Survivor_2_17 (Survivor_2_17) package { import flash.display.*; public dynamic class Survivor_2_17 extends MovieClip { } }//package
Section 506
//Survivor_2_18 (Survivor_2_18) package { import flash.display.*; public dynamic class Survivor_2_18 extends MovieClip { } }//package
Section 507
//Survivor_2_19 (Survivor_2_19) package { import flash.display.*; public dynamic class Survivor_2_19 extends MovieClip { } }//package
Section 508
//Survivor_2_2 (Survivor_2_2) package { import flash.display.*; public dynamic class Survivor_2_2 extends MovieClip { } }//package
Section 509
//Survivor_2_20 (Survivor_2_20) package { import flash.display.*; public dynamic class Survivor_2_20 extends MovieClip { } }//package
Section 510
//Survivor_2_3 (Survivor_2_3) package { import flash.display.*; public dynamic class Survivor_2_3 extends MovieClip { } }//package
Section 511
//Survivor_2_4 (Survivor_2_4) package { import flash.display.*; public dynamic class Survivor_2_4 extends MovieClip { } }//package
Section 512
//Survivor_2_5 (Survivor_2_5) package { import flash.display.*; public dynamic class Survivor_2_5 extends MovieClip { } }//package
Section 513
//Survivor_2_6 (Survivor_2_6) package { import flash.display.*; public dynamic class Survivor_2_6 extends MovieClip { } }//package
Section 514
//Survivor_2_7 (Survivor_2_7) package { import flash.display.*; public dynamic class Survivor_2_7 extends MovieClip { } }//package
Section 515
//Survivor_2_8 (Survivor_2_8) package { import flash.display.*; public dynamic class Survivor_2_8 extends MovieClip { } }//package
Section 516
//Survivor_2_9 (Survivor_2_9) package { import flash.display.*; public dynamic class Survivor_2_9 extends MovieClip { } }//package
Section 517
//Survivor_3_1 (Survivor_3_1) package { import flash.display.*; public dynamic class Survivor_3_1 extends MovieClip { } }//package
Section 518
//Survivor_3_10 (Survivor_3_10) package { import flash.display.*; public dynamic class Survivor_3_10 extends MovieClip { } }//package
Section 519
//Survivor_3_11 (Survivor_3_11) package { import flash.display.*; public dynamic class Survivor_3_11 extends MovieClip { } }//package
Section 520
//Survivor_3_12 (Survivor_3_12) package { import flash.display.*; public dynamic class Survivor_3_12 extends MovieClip { } }//package
Section 521
//Survivor_3_13 (Survivor_3_13) package { import flash.display.*; public dynamic class Survivor_3_13 extends MovieClip { } }//package
Section 522
//Survivor_3_14 (Survivor_3_14) package { import flash.display.*; public dynamic class Survivor_3_14 extends MovieClip { } }//package
Section 523
//Survivor_3_15 (Survivor_3_15) package { import flash.display.*; public dynamic class Survivor_3_15 extends MovieClip { } }//package
Section 524
//Survivor_3_16 (Survivor_3_16) package { import flash.display.*; public dynamic class Survivor_3_16 extends MovieClip { } }//package
Section 525
//Survivor_3_17 (Survivor_3_17) package { import flash.display.*; public dynamic class Survivor_3_17 extends MovieClip { } }//package
Section 526
//Survivor_3_18 (Survivor_3_18) package { import flash.display.*; public dynamic class Survivor_3_18 extends MovieClip { } }//package
Section 527
//Survivor_3_19 (Survivor_3_19) package { import flash.display.*; public dynamic class Survivor_3_19 extends MovieClip { } }//package
Section 528
//Survivor_3_2 (Survivor_3_2) package { import flash.display.*; public dynamic class Survivor_3_2 extends MovieClip { } }//package
Section 529
//Survivor_3_20 (Survivor_3_20) package { import flash.display.*; public dynamic class Survivor_3_20 extends MovieClip { } }//package
Section 530
//Survivor_3_3 (Survivor_3_3) package { import flash.display.*; public dynamic class Survivor_3_3 extends MovieClip { } }//package
Section 531
//Survivor_3_4 (Survivor_3_4) package { import flash.display.*; public dynamic class Survivor_3_4 extends MovieClip { } }//package
Section 532
//Survivor_3_5 (Survivor_3_5) package { import flash.display.*; public dynamic class Survivor_3_5 extends MovieClip { } }//package
Section 533
//Survivor_3_6 (Survivor_3_6) package { import flash.display.*; public dynamic class Survivor_3_6 extends MovieClip { } }//package
Section 534
//Survivor_3_7 (Survivor_3_7) package { import flash.display.*; public dynamic class Survivor_3_7 extends MovieClip { } }//package
Section 535
//Survivor_3_8 (Survivor_3_8) package { import flash.display.*; public dynamic class Survivor_3_8 extends MovieClip { } }//package
Section 536
//Survivor_3_9 (Survivor_3_9) package { import flash.display.*; public dynamic class Survivor_3_9 extends MovieClip { } }//package
Section 537
//TextInput_disabledSkin (TextInput_disabledSkin) package { import flash.display.*; public dynamic class TextInput_disabledSkin extends MovieClip { } }//package
Section 538
//TextInput_upSkin (TextInput_upSkin) package { import flash.display.*; public dynamic class TextInput_upSkin extends MovieClip { } }//package
Section 539
//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 540
//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 541
//TimerScreen (TimerScreen) package { import flash.display.*; public dynamic class TimerScreen extends MovieClip { } }//package
Section 542
//Tower (Tower) package { import logic.*; import ui.*; import flash.utils.*; 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 543
//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 544
//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 545
//towerclip (towerclip) package { import flash.display.*; public dynamic class towerclip extends MovieClip { public function towerclip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 546
//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 547
//TowerNeedClip (TowerNeedClip) package { import flash.display.*; public dynamic class TowerNeedClip extends MovieClip { public function TowerNeedClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 548
//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 549
//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 550
//Truck (Truck) package { import ui.*; import logic.mission.*; import flash.*; public class Truck extends Actor implements AbstractFrame { protected var goal:Mission; protected var path:Path; protected var pathIndex:int; protected var isDead:Boolean; protected var sprite:Sprite; protected var retries:int; protected var route:Route; protected var waitCounter:int; protected var deathFrame:int; protected var current:Point; public function Truck(_arg1:Mission=null, _arg2:Route=null):void{ var _local3:int; if (!Boot.skip_constructor){ _local3 = 100; if (_arg1 != null){ _local3 = _arg1.takeFood(); }; super(_local3); this.retries = 0; this.waitCounter = 0; this.goal = _arg1; this.current = null; this.path = null; this.pathIndex = 0; this.route = null; this.isDead = false; this.deathFrame = Option.survivorDeathFrameCount; if (this.goal != null){ this.current = this.goal.getSource().clone(); this.sprite = new Sprite(this.current.toPixel(), 0, this.goal.getSurvivorType(), Animation.carry(this.goal.getPayload())); this.sprite.update(); this.route = _arg2; this.resetPath(); Game.map.getCell(this.current.x, this.current.y).addTruck(this); }; }; } public function spawnZombie():void{ var _local1:Zombie; var _local2:Tower; if (!this.isDead){ _local1 = new Zombie(this.current.x, this.current.y, this.sprite.getRotation(), this.current.x, this.current.y, Zombie.ATTACK_SPAWN); _local1.setPixel(this.sprite.getPos()); if (((!((this.goal.getDest() == null))) && (!(Point.isEqual(this.goal.getDest(), this.current))))){ _local2 = Game.map.getCell(this.goal.getDest().x, this.goal.getDest().y).getTower(); if (_local2 != null){ _local1.makeNoise(this.goal.getDest(), 0, _local2.getZombieGuide()); }; }; this.isDead = true; Game.view.frameAdvance.add(this); Main.sound.play(SoundPlayer.ZOMBIE_MOAN); if (Main.kongregate != null){ Main.kongregate.stats.submit("Turncoat", 1); }; }; } protected function completeMission():void{ this.goal = this.goal.complete(); if (this.goal == null){ this.cleanup(); } else { this.resetPath(); this.displayPayload(this.goal.getPayload()); }; } protected function resetPath():void{ var _local1:Tower; if (((((!((this.route == null))) && (Point.isEqual(this.route.source, this.goal.getDest())))) && (Point.isEqual(this.route.dest, this.current)))){ _local1 = Game.map.getCell(this.current.x, this.current.y).getTower(); if (_local1 != null){ this.route = _local1.getRoute(this.goal.getDest()); }; }; if (((((!((this.route == null))) && (Point.isEqual(this.route.source, this.current)))) && (Point.isEqual(this.route.dest, this.goal.getDest())))){ this.path = this.route.path; } else { this.path = Game.pathPool.getPath(this.current, this.goal.getDest()); }; this.pathIndex = 0; } override public function cleanup():void{ super.cleanup(); this.sprite.cleanup(); if (this.goal != null){ this.goal.cleanup(); }; Game.map.getCell(this.current.x, this.current.y).removeTruck(this); if (this.isDead){ Game.view.frameAdvance.remove(this); }; } protected function movePanic():void{ var _local1:Array; var _local2:Array; var _local3:int; var _local4:Point; var _local5:Point; var _local6:MapCell; var _local7:int; _local1 = [new Point(0, 1), new Point(1, 0), new Point(0, -1), new Point(-1, 0)]; _local2 = []; _local3 = 0; while (_local3 < _local1.length) { _local4 = _local1[_local3]; _local3++; _local5 = this.current.clone(); _local5.plusEquals(_local4); _local6 = Game.map.getCell(_local5.x, _local5.y); if (((((((!(_local6.hasZombies())) && (!(_local6.isBlocked())))) && (!(_local6.hasTower())))) && (!((_local6.getBackground() == BackgroundType.BRIDGE))))){ _local2.push(_local5); }; }; if (_local2.length > 0){ _local7 = Lib.rand(_local2.length); this.move(_local2[_local7], null); }; if (!this.isPanic()){ this.resetPath(); }; } public function retryMission():void{ if (this.route != null){ this.route.path = Game.pathPool.getPath(this.route.source, this.route.dest); }; if (this.retries >= Option.truckRetries){ this.retries = 0; this.goal = this.goal.fail(); if (this.goal == null){ this.cleanup(); } else { this.resetPath(); this.displayPayload(this.goal.getPayload()); }; } else { this.resetPath(); this.wait(); this.retries++; }; } protected function isPathGood():Boolean{ var _local1:Boolean; var _local2:Point; var _local3:Boolean; var _local4:Boolean; _local1 = true; if (this.pathIndex >= this.path.getStepCount()){ _local1 = false; } else { if (((!(this.path.isGenerating())) && (!(this.path.isFound())))){ _local1 = false; } else { if ((((this.goal == null)) || (!(this.goal.canSucceed())))){ _local1 = false; } else { _local2 = this.path.getStep(this.pathIndex); _local3 = ((!(Point.isEqual(_local2, this.goal.getDest()))) && (Game.map.getCell(_local2.x, _local2.y).hasTower())); _local4 = ((((Lib.adjacentZombie(_local2)) && (!(Point.isEqual(_local2, this.goal.getDest()))))) || (Game.map.getCell(_local2.x, _local2.y).hasZombies())); if (((_local3) || (_local4))){ _local1 = false; }; }; }; }; return (_local1); } public function getPixel():Point{ return (this.sprite.getPos()); } protected function move(_arg1:Point, _arg2:Point):Boolean{ var _local3:Boolean; _local3 = this.sprite.travelCurve(this.current.toPixel(), _arg1.toPixel(), _arg2); if (_local3){ Game.map.getCell(this.current.x, this.current.y).removeTruck(this); this.current = _arg1; Game.map.getCell(this.current.x, this.current.y).addTruck(this); }; this.waitCounter = 0; return (_local3); } override public function step(_arg1:int):void{ var _local2:int; if (!this.isDead){ _local2 = this.sprite.step(_arg1); if (_local2 < _arg1){ if (Point.isEqual(this.current, this.goal.getDest())){ this.completeMission(); } else { if (this.isPanic()){ this.movePanic(); } else { this.continueMission(); }; }; }; }; } public function fixedStep():void{ var _local1:Number; if (this.deathFrame > 0){ _local1 = (this.deathFrame / Option.survivorDeathFrameCount); this.sprite.setAlpha(_local1); this.sprite.update(); this.deathFrame--; } else { this.cleanup(); }; } override public function saveTruck(){ return ({parent:super.save(), waitCounter:this.waitCounter, goal:this.goal.save(), current:this.current.save(), path:Save.maybe(this.path, Path.saveS), pathIndex:this.pathIndex, route:Save.maybe(this.route, Route.saveS), retries:this.retries, isDead:this.isDead, deathFrame:this.deathFrame, sprite:this.sprite.save()}); } protected function continueMission():void{ var _local1:Point; var _local2:Point; var _local3:Boolean; if (this.path.isGenerating()){ this.wait(); } else { if (!this.isPathGood()){ this.retryMission(); } else { _local1 = this.path.getStep(this.pathIndex); _local2 = null; if (this.pathIndex < (this.path.getStepCount() - 1)){ _local2 = this.path.getStep((this.pathIndex + 1)).toPixel(); }; _local3 = this.move(_local1, _local2); if (_local3){ this.pathIndex++; }; }; }; } override public function load(_arg1):void{ var _local2:Point; var _local3:Tower; var _local4:Point; super.load(_arg1.parent); this.waitCounter = _arg1.waitCounter; this.goal = Mission.loadMission(_arg1.goal); this.current = Point.load(_arg1.current); this.pathIndex = _arg1.pathIndex; if (_arg1.route == null){ this.route = null; this.path = Load.maybe(_arg1.path, Path.load); } else { _local2 = Point.load(_arg1.route.source); _local3 = Game.map.getCell(_local2.x, _local2.y).getTower(); _local4 = Point.load(_arg1.route.dest); if (_local3 != null){ this.route = _local3.getRoute(_local4); if (this.route != null){ this.path = this.route.path; } else { this.path = Path.load(_arg1.path); }; }; }; if (this.path == null){ this.path = Game.pathPool.getPath(this.current, this.goal.getDest()); this.pathIndex = 0; }; this.retries = _arg1.retries; this.isDead = _arg1.isDead; this.deathFrame = _arg1.deathFrame; this.sprite = Sprite.load(_arg1.sprite); if (this.isDead){ Game.view.frameAdvance.add(this); } else { Game.map.getCell(this.current.x, this.current.y).loadAddTruck(this); }; } protected function displayPayload(_arg1:Resource):void{ this.sprite.changeAnimation(Animation.carry(_arg1)); } protected function isPanic():Boolean{ return (Lib.adjacentZombie(this.current)); } public function dropLoad():void{ if (this.goal != null){ this.goal.dropLoad(this.current.x, this.current.y); }; } public static function createSupplyTruck(_arg1:Point, _arg2:Point, _arg3:Resource, _arg4:int, _arg5:Route):Truck{ var _local6:Mission; _local6 = SupplyMission.create(_arg1, _arg2, _arg3, _arg4); if (_local6 != null){ return (new Truck(_local6, _arg5)); }; Lib.trace("New Supply Mission Failed"); return (null); } public static function createClosingTruck(_arg1:int, _arg2:Route, _arg3:Resource):Truck{ var _local4:int; var _local5:MapCell; var _local6:Mission; _local4 = Option.truckLoad; if (_arg3 == Resource.SURVIVORS){ _local4 = 1; }; _local5 = Game.map.getCell(_arg2.source.x, _arg2.source.y); _local6 = ReturnMission.create(_arg2.source, _arg2.dest, _arg3, _local4, _arg1); if (_local6 != null){ return (new Truck(_local6, _arg2)); }; return (null); } public static function createWorkshopUpgradeTruck(_arg1:Point, _arg2:Point):Truck{ var _local3:Mission; _local3 = UpgradeMission.create(_arg1, _arg2, Resource.BOARDS); if (_local3 != null){ return (new Truck(_local3, null)); }; Lib.trace("New Upgrade Workshop Mission Failed"); return (null); } public static function loadS(_arg1):Truck{ var _local2:Truck; _local2 = new Truck(null, null); _local2.load(_arg1); return (_local2); } public static function createBuildTruck(_arg1:Point, _arg2:Point, _arg3:int):Truck{ var _local4:Mission; _local4 = null; if (Tower.getBuildCost(_arg3) == 0){ _local4 = BuildMission.create(_arg1, _arg2, Resource.SURVIVORS, _arg3); } else { _local4 = BuildMission.create(_arg1, _arg2, Resource.BOARDS, _arg3); }; if (_local4 != null){ return (new Truck(_local4, null)); }; Lib.trace("New Build Mission Failed"); return (null); } public static function createUpgradeTruck(_arg1:Route):Truck{ var _local2:Mission; _local2 = UpgradeMission.create(_arg1.source, _arg1.dest, Resource.BOARDS); if (_local2 != null){ return (new Truck(_local2, _arg1)); }; Lib.trace("New Upgrade Mission Failed"); return (null); } public static function createFleeingTruck(_arg1:int, _arg2:Route):Truck{ var _local3:MapCell; var _local4:Mission; _local3 = Game.map.getCell(_arg2.source.x, _arg2.source.y); _local4 = ReturnMission.create(_arg2.source, _arg2.dest, Resource.SURVIVORS, 1, _arg1); if (_local4 != null){ return (new Truck(_local4, _arg2)); }; return (null); } } }//package
Section 551
//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 552
//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 553
//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 554
//Workshop (Workshop) package { import ui.*; import action.*; import flash.*; public class Workshop extends Tower { public function Workshop(_arg1:int=0, _arg2:int=0):void{ if (!Boot.skip_constructor){ this.type = Tower.WORKSHOP; super(new Point(_arg1, _arg2), Option.workshopLevelLimit, Option.workshopSpeed, Option.workshopCost); this.addReserve(Lib.survivorLoad); }; } override public function giveResource(_arg1:ResourceCount):void{ super.giveResource(_arg1); this.normalizeLevel(); } override public function normalizeLevel():void{ super.normalizeLevel(); this.speed = (this.stuff.count(Resource.SURVIVORS) * Option.workshopSpeedFactor); } override public function saveTower(){ return ({parent:super.saveTowerGeneric()}); } override public function takeResource(_arg1:ResourceCount):void{ super.takeResource(_arg1); this.normalizeLevel(); } override public function getType():int{ return (Tower.WORKSHOP); } override public function step(_arg1:int):void{ var _local2:MapCell; var _local3:Resource; var _local4:int; var _local5:Boolean; this.wait(); _local2 = Game.map.getCell(this.mapPos.x, this.mapPos.y); this.sendToDepot(_local2.hasRubble()); if (this.countResource(Resource.SURVIVORS) > 0){ _local3 = _local2.getRubble(null); if (_local3 != null){ if (_local3 == Resource.SURVIVORS){ _local4 = Lib.rand(Animation.carryAmmo.getTypeCount()); this.giveSurvivor(_local4); } else { this.giveResource(new ResourceCount(_local3, 1)); }; Game.map.noise(this.mapPos.x, this.mapPos.y, Option.towerNoise, this.zombieGuide); } else { if (_local2.feature != null){ _local5 = _local2.feature.doWork(); Game.update.changeStatus(); if (_local5){ Game.map.noise(this.mapPos.x, this.mapPos.y, Option.explosionNoise, this.zombieGuide); } else { Game.map.noise(this.mapPos.x, this.mapPos.y, Option.towerNoise, this.zombieGuide); }; }; }; if (((((((((!(_local2.hasRubble())) && ((_local2.feature == null)))) && ((this.countResource(Resource.AMMO) == 0)))) && ((this.countResource(Resource.BOARDS) == 0)))) && ((this.countResource(Resource.FOOD) == 0)))){ Game.view.window.refresh(); if (_local2.getBuilding() != null){ _local2.getBuilding().refreshMinimap(); }; Game.actions.push(new CloseTower(this.mapPos.x, this.mapPos.y)); }; }; } override public function load(_arg1):void{ super.load(_arg1.parent); } } }//package
Section 555
//WorkshopScreen (WorkshopScreen) package { import flash.display.*; public dynamic class WorkshopScreen extends MovieClip { } }//package
Section 556
//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 557
//zombie_headshot (zombie_headshot) package { import flash.display.*; public dynamic class zombie_headshot extends MovieClip { } }//package
Section 558
//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 559
//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 560
//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 561
//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 562
//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 563
//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 564
//zombieCycle_attack_1 (zombieCycle_attack_1) package { import flash.display.*; public dynamic class zombieCycle_attack_1 extends MovieClip { } }//package
Section 565
//zombieCycle_attack_10 (zombieCycle_attack_10) package { import flash.display.*; public dynamic class zombieCycle_attack_10 extends MovieClip { } }//package
Section 566
//zombieCycle_attack_11 (zombieCycle_attack_11) package { import flash.display.*; public dynamic class zombieCycle_attack_11 extends MovieClip { } }//package
Section 567
//zombieCycle_attack_12 (zombieCycle_attack_12) package { import flash.display.*; public dynamic class zombieCycle_attack_12 extends MovieClip { } }//package
Section 568
//zombieCycle_attack_2 (zombieCycle_attack_2) package { import flash.display.*; public dynamic class zombieCycle_attack_2 extends MovieClip { } }//package
Section 569
//zombieCycle_attack_3 (zombieCycle_attack_3) package { import flash.display.*; public dynamic class zombieCycle_attack_3 extends MovieClip { } }//package
Section 570
//zombieCycle_attack_4 (zombieCycle_attack_4) package { import flash.display.*; public dynamic class zombieCycle_attack_4 extends MovieClip { } }//package
Section 571
//zombieCycle_attack_5 (zombieCycle_attack_5) package { import flash.display.*; public dynamic class zombieCycle_attack_5 extends MovieClip { } }//package
Section 572
//zombieCycle_attack_6 (zombieCycle_attack_6) package { import flash.display.*; public dynamic class zombieCycle_attack_6 extends MovieClip { } }//package
Section 573
//zombieCycle_attack_7 (zombieCycle_attack_7) package { import flash.display.*; public dynamic class zombieCycle_attack_7 extends MovieClip { } }//package
Section 574
//zombieCycle_attack_8 (zombieCycle_attack_8) package { import flash.display.*; public dynamic class zombieCycle_attack_8 extends MovieClip { } }//package
Section 575
//zombieCycle_attack_9 (zombieCycle_attack_9) package { import flash.display.*; public dynamic class zombieCycle_attack_9 extends MovieClip { } }//package
Section 576
//zombieCycle_death_1 (zombieCycle_death_1) package { import flash.display.*; public dynamic class zombieCycle_death_1 extends MovieClip { } }//package
Section 577
//zombieCycle_death_10 (zombieCycle_death_10) package { import flash.display.*; public dynamic class zombieCycle_death_10 extends MovieClip { } }//package
Section 578
//zombieCycle_death_11 (zombieCycle_death_11) package { import flash.display.*; public dynamic class zombieCycle_death_11 extends MovieClip { } }//package
Section 579
//zombieCycle_death_12 (zombieCycle_death_12) package { import flash.display.*; public dynamic class zombieCycle_death_12 extends MovieClip { } }//package
Section 580
//zombieCycle_death_2 (zombieCycle_death_2) package { import flash.display.*; public dynamic class zombieCycle_death_2 extends MovieClip { } }//package
Section 581
//zombieCycle_death_3 (zombieCycle_death_3) package { import flash.display.*; public dynamic class zombieCycle_death_3 extends MovieClip { } }//package
Section 582
//zombieCycle_death_4 (zombieCycle_death_4) package { import flash.display.*; public dynamic class zombieCycle_death_4 extends MovieClip { } }//package
Section 583
//zombieCycle_death_5 (zombieCycle_death_5) package { import flash.display.*; public dynamic class zombieCycle_death_5 extends MovieClip { } }//package
Section 584
//zombieCycle_death_6 (zombieCycle_death_6) package { import flash.display.*; public dynamic class zombieCycle_death_6 extends MovieClip { } }//package
Section 585
//zombieCycle_death_7 (zombieCycle_death_7) package { import flash.display.*; public dynamic class zombieCycle_death_7 extends MovieClip { } }//package
Section 586
//zombieCycle_death_8 (zombieCycle_death_8) package { import flash.display.*; public dynamic class zombieCycle_death_8 extends MovieClip { } }//package
Section 587
//zombieCycle_death_9 (zombieCycle_death_9) package { import flash.display.*; public dynamic class zombieCycle_death_9 extends MovieClip { } }//package
Section 588
//zombieCycle_shamble_1 (zombieCycle_shamble_1) package { import flash.display.*; public dynamic class zombieCycle_shamble_1 extends MovieClip { } }//package
Section 589
//zombieCycle_shamble_10 (zombieCycle_shamble_10) package { import flash.display.*; public dynamic class zombieCycle_shamble_10 extends MovieClip { } }//package
Section 590
//zombieCycle_shamble_11 (zombieCycle_shamble_11) package { import flash.display.*; public dynamic class zombieCycle_shamble_11 extends MovieClip { } }//package
Section 591
//zombieCycle_shamble_12 (zombieCycle_shamble_12) package { import flash.display.*; public dynamic class zombieCycle_shamble_12 extends MovieClip { } }//package
Section 592
//zombieCycle_shamble_2 (zombieCycle_shamble_2) package { import flash.display.*; public dynamic class zombieCycle_shamble_2 extends MovieClip { } }//package
Section 593
//zombieCycle_shamble_3 (zombieCycle_shamble_3) package { import flash.display.*; public dynamic class zombieCycle_shamble_3 extends MovieClip { } }//package
Section 594
//zombieCycle_shamble_4 (zombieCycle_shamble_4) package { import flash.display.*; public dynamic class zombieCycle_shamble_4 extends MovieClip { } }//package
Section 595
//zombieCycle_shamble_5 (zombieCycle_shamble_5) package { import flash.display.*; public dynamic class zombieCycle_shamble_5 extends MovieClip { } }//package
Section 596
//zombieCycle_shamble_6 (zombieCycle_shamble_6) package { import flash.display.*; public dynamic class zombieCycle_shamble_6 extends MovieClip { } }//package
Section 597
//zombieCycle_shamble_7 (zombieCycle_shamble_7) package { import flash.display.*; public dynamic class zombieCycle_shamble_7 extends MovieClip { } }//package
Section 598
//zombieCycle_shamble_8 (zombieCycle_shamble_8) package { import flash.display.*; public dynamic class zombieCycle_shamble_8 extends MovieClip { } }//package
Section 599
//zombieCycle_shamble_9 (zombieCycle_shamble_9) package { import flash.display.*; public dynamic class zombieCycle_shamble_9 extends MovieClip { } }//package
Section 600
//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 601
//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 602
//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 603
//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 604
//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 605
//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 606
//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 607
//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 123 946 947 948 951 1119 1121 1123 1125 1127 1129 1144 1146 1303 1393 1410 1427 1443 1477 1494 1632 1668 1677 1686 1688 1698 1707 1741 1745 1746 1747 1749 1751 1752 1762 1766 1767 1768 1770 1772 1773
Symbol 2 GraphicUsed by:7 123
Symbol 3 GraphicUsed by:7 123
Symbol 4 GraphicUsed by:7 123
Symbol 5 GraphicUsed by:7 123
Symbol 6 GraphicUsed by:7 123 995 1001 1119 1121 1127 1129
Symbol 7 MovieClip {gunCycle_8_idle1_pre}Uses:1 2 3 4 5 6
Symbol 8 GraphicUsed by:14 123 952 1148 1150 1326 1511 1641 1716 1742 1753 1763 1774
Symbol 9 GraphicUsed by:14 123
Symbol 10 GraphicUsed by:14 123 1010 1011 1148 1150
Symbol 11 GraphicUsed by:14 20 123
Symbol 12 GraphicUsed by:14 123
Symbol 13 GraphicUsed by:14 123 1011 1148 1150
Symbol 14 MovieClip {gunCycle_4_idle2_pre}Uses:8 9 10 11 12 13
Symbol 15 GraphicUsed by:20 123 945 1107 1109 1384 1667 1744 1765
Symbol 16 GraphicUsed by:20 123
Symbol 17 GraphicUsed by:20 123 990 992 1107 1109
Symbol 18 GraphicUsed by:20 123
Symbol 19 GraphicUsed by:20 123
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 2240
Symbol 23 GraphicUsed by:24
Symbol 24 MovieClip {ScrollTrack_skin}Uses:23Used by:54 2240
Symbol 25 GraphicUsed by:26
Symbol 26 MovieClip {ScrollBar_thumbIcon}Uses:25Used by:54 2240
Symbol 27 GraphicUsed by:28
Symbol 28 MovieClip {ScrollArrowUp_disabledSkin}Uses:27Used by:54 2240
Symbol 29 GraphicUsed by:30
Symbol 30 MovieClip {ScrollArrowDown_disabledSkin}Uses:29Used by:54 2240
Symbol 31 GraphicUsed by:33 36 44 48
Symbol 32 GraphicUsed by:33
Symbol 33 MovieClip {ScrollArrowDown_upSkin}Uses:31 32Used by:54 2240
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClip {ScrollThumb_upSkin}Uses:34Used by:54 2240
Symbol 36 MovieClipUses:31Used by:38 40 50
Symbol 37 GraphicUsed by:38
Symbol 38 MovieClip {ScrollArrowUp_upSkin}Uses:36 37Used by:54 2240
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClip {ScrollArrowUp_overSkin}Uses:36 39Used by:54 2240
Symbol 41 GraphicUsed by:42
Symbol 42 MovieClip {ScrollThumb_overSkin}Uses:41Used by:54 2240
Symbol 43 GraphicUsed by:44
Symbol 44 MovieClip {ScrollArrowDown_overSkin}Uses:31 43Used by:54 2240
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClip {ScrollThumb_downSkin}Uses:45Used by:54 2240
Symbol 47 GraphicUsed by:48
Symbol 48 MovieClip {ScrollArrowDown_downSkin}Uses:31 47Used by:54 2240
Symbol 49 GraphicUsed by:50
Symbol 50 MovieClip {ScrollArrowUp_downSkin}Uses:36 49Used by:54 2240
Symbol 51 GraphicUsed by:52
Symbol 52 MovieClip {focusRectSkin}Uses:51Used by:54 74 79 88 2240
Symbol 53 MovieClip {fl.core.ComponentShim}Used by:54 71 74 79 88 2240
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:2368
Symbol 89 GraphicUsed by:90
Symbol 90 MovieClipUses:89Used by:96
Symbol 91 GraphicUsed by:96
Symbol 92 BitmapUsed by:93
Symbol 93 GraphicUses:92Used by:94
Symbol 94 MovieClipUses:93Used by:96
Symbol 95 GraphicUsed by:96
Symbol 96 MovieClipUses:90 91 94 95Used by:123 2186
Symbol 97 FontUsed by:98 2379
Symbol 98 EditableTextUses:97 2467Used by:123
Symbol 99 GraphicUsed by:100
Symbol 100 MovieClipUses:99Used by:123
Symbol 101 GraphicUsed by:123 576 692 799
Symbol 102 GraphicUsed by:123 448 521 576 613 647 724 749 774 799
Symbol 103 GraphicUsed by:123 576
Symbol 104 GraphicUsed by:123 576
Symbol 105 GraphicUsed by:123 576 724 798
Symbol 106 GraphicUsed by:123 576
Symbol 107 GraphicUsed by:123 576 613
Symbol 108 GraphicUsed by:123 448 521 576 613 647 692 724 749 774 797 798 799
Symbol 109 GraphicUsed by:123 613
Symbol 110 GraphicUsed by:123 613
Symbol 111 GraphicUsed by:123 613
Symbol 112 GraphicUsed by:123 448 613 749 774 799
Symbol 113 GraphicUsed by:123 613
Symbol 114 GraphicUsed by:123 448 724
Symbol 115 GraphicUsed by:123 724
Symbol 116 GraphicUsed by:123 724
Symbol 117 GraphicUsed by:123 521 692 724 749 774 797 798 799
Symbol 118 GraphicUsed by:123 724 798
Symbol 119 GraphicUsed by:123 692 798
Symbol 120 GraphicUsed by:123 774 797 798 799
Symbol 121 GraphicUsed by:123 692 749 774 799
Symbol 122 GraphicUsed by:123 1935 1996
Symbol 123 MovieClipUses:96 98 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 1 2 3 4 5 6 8 9 10 11 12 13 15 16 17 18 19 122Used by:Timeline
Symbol 124 GraphicUsed by:139
Symbol 125 GraphicUsed by:139
Symbol 126 GraphicUsed by:139
Symbol 127 SoundUsed by:139
Symbol 128 SoundUsed by:139
Symbol 129 GraphicUsed by:130
Symbol 130 MovieClipUses:129Used by:139
Symbol 131 GraphicUsed by:139
Symbol 132 SoundUsed by:139
Symbol 133 SoundUsed by:139
Symbol 134 SoundUsed by:139
Symbol 135 GraphicUsed by:136
Symbol 136 ButtonUses:135Used by:139
Symbol 137 SoundUsed by:139
Symbol 138 SoundUsed by:139
Symbol 139 MovieClip {zomlog_fla.ag_intro_mc_6}Uses:124 125 126 127 128 130 131 132 133 134 136 137 138Used by:Timeline
Symbol 140 GraphicUsed by:145
Symbol 141 GraphicUsed by:145
Symbol 142 GraphicUsed by:145
Symbol 143 GraphicUsed by:145
Symbol 144 GraphicUsed by:145
Symbol 145 MovieClip {zombie_headshot}Uses:140 141 142 143 144Used by:2475
Symbol 146 GraphicUsed by:176 338 448 724 830 893
Symbol 147 GraphicUsed by:176 210 243 261 281 338 373 378 448 521 576 613 647 724 749 774 799 830 840 850 860 879 893 902 905
Symbol 148 GraphicUsed by:176 448 830
Symbol 149 GraphicUsed by:176 210 243 261 311 338 356 373 376 377 378 448 521 576 613 692 724 749 774 797 798 799 830 840 850 860 885 893 901 902 903 904 905 1950
Symbol 150 GraphicUsed by:176 830
Symbol 151 GraphicUsed by:176 830
Symbol 152 GraphicUsed by:176 210 243 261 281 311 338 356 373 376 377 378 830 840 850 860 879 885 893 901 902 903 904 905 1950
Symbol 153 GraphicUsed by:176 830
Symbol 154 GraphicUsed by:176 830
Symbol 155 GraphicUsed by:176 210 243 261 281 311 338 356 373 376 377 378 830 840 850 860 879 885 893 901 902 903 904 905
Symbol 156 GraphicUsed by:176 830
Symbol 157 GraphicUsed by:176 210 243 261 281 311 338 356 373 376 377 378 830 840 850 860 879 885 893 901 902 903 904 905
Symbol 158 GraphicUsed by:176 830
Symbol 159 GraphicUsed by:176 210 243 261 281 311 338 356 373 376 377 378 830 840 850 860 879 885 893 901 902 903 904 905
Symbol 160 GraphicUsed by:176 830
Symbol 161 GraphicUsed by:176 210 243 261 281 311 338 356 373 376 377 378 830 840 850 860 879 885 893 901 902 903 904 905
Symbol 162 GraphicUsed by:176 830
Symbol 163 GraphicUsed by:176 210 243 261 281 311 338 356 373 376 377 378 830 840 850 860 879 885 893 901 902 903 904 905
Symbol 164 GraphicUsed by:176 830
Symbol 165 GraphicUsed by:176 210 243 261 281 311 338 356 373 376 377 378 830 840 850 860 879 885 893 901 902 903 904 905
Symbol 166 GraphicUsed by:176 830
Symbol 167 GraphicUsed by:176 210 243 261 281 311 338 356 373 376 377 378 830 840 850 860 879 885 893 901 902 903 904 905
Symbol 168 GraphicUsed by:176 830
Symbol 169 GraphicUsed by:176 210 243 261 281 311 338 356 373 376 377 378 830 840 850 860 879 885 893 901 902 903 904 905
Symbol 170 GraphicUsed by:176 830
Symbol 171 GraphicUsed by:176 210 243 261 281 311 338 356 373 376 377 378 830 840 850 860 879 885 893 901 902 903 904 905
Symbol 172 GraphicUsed by:176 830
Symbol 173 GraphicUsed by:176 210 243 261 281 311 338 356 373 376 377 378 830 840 850 860 879 885 893 901 902 903 904 905
Symbol 174 GraphicUsed by:176 830
Symbol 175 GraphicUsed by:176 210 243 261 281 311 338 356 373 376 377 378 830 840 850 860 879 885 893 901 902 903 904 905
Symbol 176 MovieClip {zombieCycle_shamble_12}Uses:146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175Used by:2475
Symbol 177 GraphicUsed by:210 521 840
Symbol 178 GraphicUsed by:210 521 840
Symbol 179 GraphicUsed by:210 521 840
Symbol 180 GraphicUsed by:210 243 281 311 338 376 377 521 576 647 692 724 797 798 840 850 879 885 893 903 904 1950
Symbol 181 GraphicUsed by:210 521 840
Symbol 182 GraphicUsed by:210 840
Symbol 183 GraphicUsed by:210 281 840 879 903
Symbol 184 GraphicUsed by:210 281 376 840 879 903
Symbol 185 GraphicUsed by:210 521 840
Symbol 186 GraphicUsed by:210 840
Symbol 187 GraphicUsed by:210 281 840 879 903
Symbol 188 GraphicUsed by:210 281 376 840 879 903
Symbol 189 GraphicUsed by:210 521 840
Symbol 190 GraphicUsed by:210 840
Symbol 191 GraphicUsed by:210 281 376 840 879 903
Symbol 192 GraphicUsed by:210 840
Symbol 193 GraphicUsed by:210 281 376 840 879 903
Symbol 194 GraphicUsed by:210 840
Symbol 195 GraphicUsed by:210 281 376 840 879 903
Symbol 196 GraphicUsed by:210 840
Symbol 197 GraphicUsed by:210 281 376 840 879 903
Symbol 198 GraphicUsed by:210 840
Symbol 199 GraphicUsed by:210 281 376 840 879 903
Symbol 200 GraphicUsed by:210 840
Symbol 201 GraphicUsed by:210 281 376 840 879 903
Symbol 202 GraphicUsed by:210 840
Symbol 203 GraphicUsed by:210 281 376 840 879 903
Symbol 204 GraphicUsed by:210 840
Symbol 205 GraphicUsed by:210 281 376 840 879 903
Symbol 206 GraphicUsed by:210 840
Symbol 207 GraphicUsed by:210 281 376 840 879 903
Symbol 208 GraphicUsed by:210 840
Symbol 209 GraphicUsed by:210 281 376 840 879 903
Symbol 210 MovieClip {zombieCycle_shamble_11}Uses:177 178 147 179 180 181 149 182 183 184 152 185 186 187 188 155 189 190 191 157 192 193 159 194 195 161 196 197 163 198 199 165 200 201 167 202 203 169 204 205 171 206 207 173 208 209 175Used by:2475
Symbol 211 GraphicUsed by:243 311 378 576 692 799 850 885 905
Symbol 212 GraphicUsed by:243 311 378 576 692 799 850 885 905
Symbol 213 GraphicUsed by:243 576 850
Symbol 214 GraphicUsed by:243 576 850
Symbol 215 GraphicUsed by:243 850
Symbol 216 GraphicUsed by:243 261 850 860
Symbol 217 GraphicUsed by:243 261 850 860
Symbol 218 GraphicUsed by:243 311 378 576 692 799 850 885 905
Symbol 219 GraphicUsed by:243 850
Symbol 220 GraphicUsed by:243 261 850 860
Symbol 221 GraphicUsed by:243 261 850 860
Symbol 222 GraphicUsed by:243 311 378 576 692 799 850 885 905
Symbol 223 GraphicUsed by:243 850
Symbol 224 GraphicUsed by:243 261 850 860
Symbol 225 GraphicUsed by:243 850
Symbol 226 GraphicUsed by:243 261 850 860
Symbol 227 GraphicUsed by:243 850
Symbol 228 GraphicUsed by:243 261 850 860
Symbol 229 GraphicUsed by:243 850
Symbol 230 GraphicUsed by:243 261 850 860
Symbol 231 GraphicUsed by:243 850
Symbol 232 GraphicUsed by:243 261 850 860
Symbol 233 GraphicUsed by:243 850
Symbol 234 GraphicUsed by:243 261 850 860
Symbol 235 GraphicUsed by:243 850
Symbol 236 GraphicUsed by:243 261 850 860
Symbol 237 GraphicUsed by:243 850
Symbol 238 GraphicUsed by:243 261 850 860
Symbol 239 GraphicUsed by:243 850
Symbol 240 GraphicUsed by:243 261 850 860
Symbol 241 GraphicUsed by:243 850
Symbol 242 GraphicUsed by:243 261 850 860
Symbol 243 MovieClip {zombieCycle_shamble_10}Uses:211 212 147 213 149 214 180 215 216 217 152 218 219 220 221 155 222 223 224 157 225 226 159 227 228 161 229 230 163 231 232 165 233 234 167 235 236 169 237 238 171 239 240 173 241 242 175Used by:2475
Symbol 244 GraphicUsed by:261 613 860
Symbol 245 GraphicUsed by:261 613 860
Symbol 246 GraphicUsed by:261 613 860
Symbol 247 GraphicUsed by:261 860
Symbol 248 GraphicUsed by:261 613 860
Symbol 249 GraphicUsed by:261 860
Symbol 250 GraphicUsed by:261 613 860
Symbol 251 GraphicUsed by:261 860
Symbol 252 GraphicUsed by:261 860
Symbol 253 GraphicUsed by:261 860
Symbol 254 GraphicUsed by:261 860
Symbol 255 GraphicUsed by:261 860
Symbol 256 GraphicUsed by:261 860
Symbol 257 GraphicUsed by:261 860
Symbol 258 GraphicUsed by:261 860
Symbol 259 GraphicUsed by:261 860
Symbol 260 GraphicUsed by:261 860
Symbol 261 MovieClip {zombieCycle_shamble_9}Uses:244 245 147 246 149 247 216 217 152 248 249 220 221 155 250 251 224 157 252 226 159 253 228 161 254 230 163 255 232 165 256 234 167 257 236 169 258 238 171 259 240 173 260 242 175Used by:2475
Symbol 262 GraphicUsed by:281 879
Symbol 263 GraphicUsed by:281 879
Symbol 264 GraphicUsed by:281 647 879
Symbol 265 GraphicUsed by:281 373 647 879 902
Symbol 266 GraphicUsed by:281 647 879
Symbol 267 GraphicUsed by:281 879
Symbol 268 GraphicUsed by:281
Symbol 269 GraphicUsed by:281 879
Symbol 270 GraphicUsed by:281
Symbol 271 GraphicUsed by:281 879
Symbol 272 GraphicUsed by:281 879
Symbol 273 GraphicUsed by:281 879
Symbol 274 GraphicUsed by:281 879
Symbol 275 GraphicUsed by:281 879
Symbol 276 GraphicUsed by:281 879
Symbol 277 GraphicUsed by:281 879
Symbol 278 GraphicUsed by:281 879
Symbol 279 GraphicUsed by:281 879
Symbol 280 GraphicUsed by:281 879
Symbol 281 MovieClip {zombieCycle_shamble_8}Uses:262 263 147 264 265 266 180 267 183 184 152 268 269 187 188 155 270 271 191 157 272 193 159 273 195 161 274 197 163 275 199 165 276 201 167 277 203 169 278 205 171 279 207 173 280 209 175Used by:2475
Symbol 282 GraphicUsed by:311 356 377 692 798 885 901 904 1950
Symbol 283 GraphicUsed by:311 692 885
Symbol 284 GraphicUsed by:311 692 885
Symbol 285 GraphicUsed by:311 885
Symbol 286 GraphicUsed by:311 338 356 373 376 377 378 885 893 901 902 904 905 1950
Symbol 287 GraphicUsed by:311 356 373 378 885 901 902 905
Symbol 288 GraphicUsed by:311 885
Symbol 289 GraphicUsed by:311 338 356 373 376 377 378 885 893 901 902 904 905
Symbol 290 GraphicUsed by:311 356 373 378 885 901 902 905
Symbol 291 GraphicUsed by:311 885
Symbol 292 GraphicUsed by:311 356 373 378 885 901 902 905
Symbol 293 GraphicUsed by:311 885
Symbol 294 GraphicUsed by:311 356 373 378 885 901 902 905
Symbol 295 GraphicUsed by:311 885
Symbol 296 GraphicUsed by:311 356 373 378 885 901 902 905
Symbol 297 GraphicUsed by:311 885
Symbol 298 GraphicUsed by:311 356 373 378 885 901 902 905
Symbol 299 GraphicUsed by:311 885
Symbol 300 GraphicUsed by:311 356 373 378 885 901 902 905
Symbol 301 GraphicUsed by:311 885
Symbol 302 GraphicUsed by:311 356 373 378 885 901 902 905
Symbol 303 GraphicUsed by:311 885
Symbol 304 GraphicUsed by:311 356 373 378 885 901 902 905
Symbol 305 GraphicUsed by:311 885
Symbol 306 GraphicUsed by:311 356 373 378 885 901 902 905
Symbol 307 GraphicUsed by:311 885
Symbol 308 GraphicUsed by:311 356 373 378 885 901 902 905
Symbol 309 GraphicUsed by:311 885
Symbol 310 GraphicUsed by:311 356 373 378 885 901 902 905
Symbol 311 MovieClip {zombieCycle_shamble_7}Uses:211 212 282 283 180 284 149 285 286 287 152 218 288 289 290 155 222 291 292 157 293 294 159 295 296 161 297 298 163 299 300 165 301 302 167 303 304 169 305 306 171 307 308 173 309 310 175Used by:2475
Symbol 312 GraphicUsed by:338 724 893
Symbol 313 GraphicUsed by:338 724 893
Symbol 314 GraphicUsed by:338 893
Symbol 315 GraphicUsed by:338 377 893 904 1950
Symbol 316 GraphicUsed by:338 893
Symbol 317 GraphicUsed by:338 377 893 904
Symbol 318 GraphicUsed by:338 893
Symbol 319 GraphicUsed by:338 377 893 904
Symbol 320 GraphicUsed by:338 893
Symbol 321 GraphicUsed by:338 377 893 904
Symbol 322 GraphicUsed by:338 893
Symbol 323 GraphicUsed by:338 377 893 904
Symbol 324 GraphicUsed by:338 893
Symbol 325 GraphicUsed by:338 377 893 904
Symbol 326 GraphicUsed by:338 893
Symbol 327 GraphicUsed by:338 377 893 904
Symbol 328 GraphicUsed by:338 893
Symbol 329 GraphicUsed by:338 377 893 904
Symbol 330 GraphicUsed by:338 893
Symbol 331 GraphicUsed by:338 377 893 904
Symbol 332 GraphicUsed by:338 893
Symbol 333 GraphicUsed by:338 377 893 904
Symbol 334 GraphicUsed by:338 893
Symbol 335 GraphicUsed by:338 377 893 904
Symbol 336 GraphicUsed by:338 893
Symbol 337 GraphicUsed by:338 377 893 904
Symbol 338 MovieClip {zombieCycle_shamble_6}Uses:146 147 312 149 313 180 314 286 315 152 316 289 317 155 318 319 157 320 321 159 322 323 161 324 325 163 326 327 165 328 329 167 330 331 169 332 333 171 334 335 173 336 337 175Used by:2475
Symbol 339 GraphicUsed by:356 647 749 901
Symbol 340 GraphicUsed by:356 647 749 901
Symbol 341 GraphicUsed by:356 749 901
Symbol 342 GraphicUsed by:356 901
Symbol 343 GraphicUsed by:356 647 749 901
Symbol 344 GraphicUsed by:356 901
Symbol 345 GraphicUsed by:356 647 749 901
Symbol 346 GraphicUsed by:356 901
Symbol 347 GraphicUsed by:356 901
Symbol 348 GraphicUsed by:356 901
Symbol 349 GraphicUsed by:356 901
Symbol 350 GraphicUsed by:356 901
Symbol 351 GraphicUsed by:356 901
Symbol 352 GraphicUsed by:356 901
Symbol 353 GraphicUsed by:356 901
Symbol 354 GraphicUsed by:356 901
Symbol 355 GraphicUsed by:356 901
Symbol 356 MovieClip {zombieCycle_shamble_5}Uses:339 340 282 341 149 342 286 287 152 343 344 289 290 155 345 346 292 157 347 294 159 348 296 161 349 298 163 350 300 165 351 302 167 352 304 169 353 306 171 354 308 173 355 310 175Used by:2475
Symbol 357 GraphicUsed by:373 774 902
Symbol 358 GraphicUsed by:373 774 902
Symbol 359 GraphicUsed by:373 376 377 378 902 903 904 905 1950
Symbol 360 GraphicUsed by:373 774 902
Symbol 361 GraphicUsed by:373 376 377 378 902 903 904 905
Symbol 362 GraphicUsed by:373 774 902
Symbol 363 GraphicUsed by:373 376 377 378 902 903 904 905
Symbol 364 GraphicUsed by:373 376 377 378 902 903 904 905
Symbol 365 GraphicUsed by:373 376 377 378 902 903 904 905
Symbol 366 GraphicUsed by:373 376 377 378 902 903 904 905
Symbol 367 GraphicUsed by:373 376 377 378 902 903 904 905
Symbol 368 GraphicUsed by:373 376 377 378 902 903 904 905
Symbol 369 GraphicUsed by:373 376 377 378 902 903 904 905
Symbol 370 GraphicUsed by:373 376 377 378 902 903 904 905
Symbol 371 GraphicUsed by:373 376 377 378 902 903 904 905
Symbol 372 GraphicUsed by:373 376 377 378 902 903 904 905
Symbol 373 MovieClip {zombieCycle_shamble_4}Uses:357 358 147 149 265 359 286 287 152 360 361 289 290 155 362 363 292 157 364 294 159 365 296 161 366 298 163 367 300 165 368 302 167 369 304 169 370 306 171 371 308 173 372 310 175Used by:2475
Symbol 374 GraphicUsed by:376 797 903
Symbol 375 GraphicUsed by:376 797 903
Symbol 376 MovieClip {zombieCycle_shamble_3}Uses:374 375 180 149 359 286 184 152 361 289 188 155 363 191 157 364 193 159 365 195 161 366 197 163 367 199 165 368 201 167 369 203 169 370 205 171 371 207 173 372 209 175Used by:2475
Symbol 377 MovieClip {zombieCycle_shamble_2}Uses:282 149 180 359 286 315 152 361 289 317 155 363 319 157 364 321 159 365 323 161 366 325 163 367 327 165 368 329 167 369 331 169 370 333 171 371 335 173 372 337 175Used by:2475
Symbol 378 MovieClip {zombieCycle_shamble_1}Uses:211 212 147 149 359 286 287 152 218 361 289 290 155 222 363 292 157 364 294 159 365 296 161 366 298 163 367 300 165 368 302 167 369 304 169 370 306 171 371 308 173 372 310 175Used by:2475
Symbol 379 GraphicUsed by:448
Symbol 380 GraphicUsed by:448
Symbol 381 GraphicUsed by:448 521 576 613 647 692 724 749 774 797 798 799
Symbol 382 GraphicUsed by:448
Symbol 383 GraphicUsed by:448
Symbol 384 GraphicUsed by:448 521 576 613 647 692 724 749 774 797 798 799
Symbol 385 GraphicUsed by:448
Symbol 386 GraphicUsed by:448
Symbol 387 GraphicUsed by:448 521 576 613 647 692 724 749 774 797 798 799
Symbol 388 GraphicUsed by:448 724
Symbol 389 GraphicUsed by:448 521 576 613 647 724 749 774 799
Symbol 390 GraphicUsed by:448
Symbol 391 GraphicUsed by:448
Symbol 392 GraphicUsed by:448 521 576 613 647 692 724 749 774 797 798 799
Symbol 393 GraphicUsed by:448 724
Symbol 394 GraphicUsed by:448 521 576 613 647 724 749 774 799
Symbol 395 GraphicUsed by:448
Symbol 396 GraphicUsed by:448
Symbol 397 GraphicUsed by:448 521 576 613 647 692 724 749 774 797 798 799
Symbol 398 GraphicUsed by:448 724
Symbol 399 GraphicUsed by:448 521 576 613 647 724 749 774 799
Symbol 400 GraphicUsed by:448
Symbol 401 GraphicUsed by:448
Symbol 402 GraphicUsed by:448 521 576 613 647 692 724 749 774 797 798 799
Symbol 403 GraphicUsed by:448 724
Symbol 404 GraphicUsed by:448 521 576 613 647 724 749 774 799
Symbol 405 GraphicUsed by:448
Symbol 406 GraphicUsed by:448
Symbol 407 GraphicUsed by:448 521 576 613 647 692 724 749 774 797 798 799
Symbol 408 GraphicUsed by:448 724
Symbol 409 GraphicUsed by:448 521 576 613 647 724 749 774 799
Symbol 410 GraphicUsed by:448
Symbol 411 GraphicUsed by:448 521 613 692 749 774 797 799
Symbol 412 GraphicUsed by:448
Symbol 413 GraphicUsed by:448 724
Symbol 414 GraphicUsed by:448 521 576 613 647 724 749 774 799
Symbol 415 GraphicUsed by:448
Symbol 416 GraphicUsed by:448 613 749 774 799
Symbol 417 GraphicUsed by:448
Symbol 418 GraphicUsed by:448 724
Symbol 419 GraphicUsed by:448 521 576 613 647 724 749 774 799
Symbol 420 GraphicUsed by:448
Symbol 421 GraphicUsed by:448 613 749 774 799
Symbol 422 GraphicUsed by:448
Symbol 423 GraphicUsed by:448 724
Symbol 424 GraphicUsed by:448 521 576 613 647 724 749 774 799
Symbol 425 GraphicUsed by:448
Symbol 426 GraphicUsed by:448 613 749 774 799
Symbol 427 GraphicUsed by:448
Symbol 428 GraphicUsed by:448 724
Symbol 429 GraphicUsed by:448 521 576 613 647 724 749 774 799
Symbol 430 GraphicUsed by:448
Symbol 431 GraphicUsed by:448 613 749 774 799
Symbol 432 GraphicUsed by:448
Symbol 433 GraphicUsed by:448 724
Symbol 434 GraphicUsed by:448
Symbol 435 GraphicUsed by:448
Symbol 436 GraphicUsed by:448 613 749 774 799
Symbol 437 GraphicUsed by:448
Symbol 438 GraphicUsed by:448 724
Symbol 439 GraphicUsed by:448
Symbol 440 GraphicUsed by:448 613 749 774 799
Symbol 441 GraphicUsed by:448
Symbol 442 GraphicUsed by:448 613 749 774 799
Symbol 443 GraphicUsed by:448
Symbol 444 GraphicUsed by:448 613 749 774 799
Symbol 445 GraphicUsed by:448
Symbol 446 GraphicUsed by:448 613 749 774 799
Symbol 447 GraphicUsed by:448
Symbol 448 MovieClip {zombieCycle_death_12}Uses:146 147 379 148 149 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 108 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 102 435 436 437 438 439 440 114 441 442 443 444 445 446 447 112Used by:2475
Symbol 449 GraphicUsed by:521
Symbol 450 GraphicUsed by:521 692 724 749 774 797 798 799
Symbol 451 GraphicUsed by:521 647 797
Symbol 452 GraphicUsed by:521
Symbol 453 GraphicUsed by:521 692 724 749 774 797 798 799
Symbol 454 GraphicUsed by:521 647 797
Symbol 455 GraphicUsed by:521
Symbol 456 GraphicUsed by:521 692 724 749 774 797 798 799
Symbol 457 GraphicUsed by:521
Symbol 458 GraphicUsed by:521
Symbol 459 GraphicUsed by:521 692 724 749 774 797 798 799
Symbol 460 GraphicUsed by:521 647 797
Symbol 461 GraphicUsed by:521
Symbol 462 GraphicUsed by:521
Symbol 463 GraphicUsed by:521
Symbol 464 GraphicUsed by:521 647 797
Symbol 465 GraphicUsed by:521
Symbol 466 GraphicUsed by:521
Symbol 467 GraphicUsed by:521
Symbol 468 GraphicUsed by:521 647 797
Symbol 469 GraphicUsed by:521
Symbol 470 GraphicUsed by:521
Symbol 471 GraphicUsed by:521
Symbol 472 GraphicUsed by:521 647 797
Symbol 473 GraphicUsed by:521
Symbol 474 GraphicUsed by:521
Symbol 475 GraphicUsed by:521
Symbol 476 GraphicUsed by:521 647 797
Symbol 477 GraphicUsed by:521
Symbol 478 GraphicUsed by:521
Symbol 479 GraphicUsed by:521 692 797
Symbol 480 GraphicUsed by:521
Symbol 481 GraphicUsed by:521 647 797
Symbol 482 GraphicUsed by:521
Symbol 483 GraphicUsed by:521
Symbol 484 GraphicUsed by:521 692 797
Symbol 485 GraphicUsed by:521
Symbol 486 GraphicUsed by:521 692 724 749 774 797 798 799
Symbol 487 GraphicUsed by:521 647 797
Symbol 488 GraphicUsed by:521
Symbol 489 GraphicUsed by:521
Symbol 490 GraphicUsed by:521 692 797
Symbol 491 GraphicUsed by:521
Symbol 492 GraphicUsed by:521 692 724 749 774 797 798 799
Symbol 493 GraphicUsed by:521 647 797
Symbol 494 GraphicUsed by:521
Symbol 495 GraphicUsed by:521
Symbol 496 GraphicUsed by:521 692 797
Symbol 497 GraphicUsed by:521
Symbol 498 GraphicUsed by:521 692 724 749 774 797 798 799
Symbol 499 GraphicUsed by:521 647 797
Symbol 500 GraphicUsed by:521
Symbol 501 GraphicUsed by:521
Symbol 502 GraphicUsed by:521
Symbol 503 GraphicUsed by:521 692 797
Symbol 504 GraphicUsed by:521
Symbol 505 GraphicUsed by:521 647 797
Symbol 506 GraphicUsed by:521
Symbol 507 GraphicUsed by:521
Symbol 508 GraphicUsed by:521 692 797
Symbol 509 GraphicUsed by:521
Symbol 510 GraphicUsed by:521 692 797
Symbol 511 GraphicUsed by:521
Symbol 512 GraphicUsed by:521
Symbol 513 GraphicUsed by:521
Symbol 514 GraphicUsed by:521 692 797
Symbol 515 GraphicUsed by:521
Symbol 516 GraphicUsed by:521 692 797
Symbol 517 GraphicUsed by:521
Symbol 518 GraphicUsed by:521
Symbol 519 GraphicUsed by:521 692 797
Symbol 520 GraphicUsed by:521
Symbol 521 MovieClip {zombieCycle_death_11}Uses:177 189 147 179 180 181 149 449 450 451 381 178 452 453 454 384 185 455 456 387 457 389 458 459 460 392 461 394 462 463 464 397 465 399 466 467 468 402 469 404 470 471 472 407 473 409 474 411 475 476 108 477 414 478 479 480 481 482 419 483 484 485 486 487 488 424 489 490 491 492 493 494 429 495 496 497 498 499 500 102 501 502 503 504 117 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520Used by:2475
Symbol 522 GraphicUsed by:576
Symbol 523 GraphicUsed by:576 613
Symbol 524 GraphicUsed by:576
Symbol 525 GraphicUsed by:576 613
Symbol 526 GraphicUsed by:576
Symbol 527 GraphicUsed by:576 613
Symbol 528 GraphicUsed by:576 692 799
Symbol 529 GraphicUsed by:576
Symbol 530 GraphicUsed by:576 613
Symbol 531 GraphicUsed by:576 692 799
Symbol 532 GraphicUsed by:576
Symbol 533 GraphicUsed by:576
Symbol 534 GraphicUsed by:576 613
Symbol 535 GraphicUsed by:576 692 799
Symbol 536 GraphicUsed by:576
Symbol 537 GraphicUsed by:576
Symbol 538 GraphicUsed by:576 613
Symbol 539 GraphicUsed by:576 692 799
Symbol 540 GraphicUsed by:576
Symbol 541 GraphicUsed by:576
Symbol 542 GraphicUsed by:576 613
Symbol 543 GraphicUsed by:576 692 799
Symbol 544 GraphicUsed by:576
Symbol 545 GraphicUsed by:576 724 798
Symbol 546 GraphicUsed by:576
Symbol 547 GraphicUsed by:576 613
Symbol 548 GraphicUsed by:576 692 799
Symbol 549 GraphicUsed by:576
Symbol 550 GraphicUsed by:576 724 798
Symbol 551 GraphicUsed by:576
Symbol 552 GraphicUsed by:576 613
Symbol 553 GraphicUsed by:576 692 799
Symbol 554 GraphicUsed by:576
Symbol 555 GraphicUsed by:576 724 798
Symbol 556 GraphicUsed by:576
Symbol 557 GraphicUsed by:576 613
Symbol 558 GraphicUsed by:576 692 799
Symbol 559 GraphicUsed by:576
Symbol 560 GraphicUsed by:576 724 798
Symbol 561 GraphicUsed by:576
Symbol 562 GraphicUsed by:576 613
Symbol 563 GraphicUsed by:576 692 799
Symbol 564 GraphicUsed by:576
Symbol 565 GraphicUsed by:576 724 798
Symbol 566 GraphicUsed by:576
Symbol 567 GraphicUsed by:576 613
Symbol 568 GraphicUsed by:576 692 799
Symbol 569 GraphicUsed by:576
Symbol 570 GraphicUsed by:576 724 798
Symbol 571 GraphicUsed by:576 692 799
Symbol 572 GraphicUsed by:576
Symbol 573 GraphicUsed by:576 724 798
Symbol 574 GraphicUsed by:576
Symbol 575 GraphicUsed by:576 724 798
Symbol 576 MovieClip {zombieCycle_death_10}Uses:211 222 147 213 149 214 180 522 523 381 212 524 525 384 218 526 527 387 528 389 529 530 392 531 394 532 533 534 397 535 399 536 537 538 402 539 404 540 541 542 407 543 409 544 545 546 547 108 548 414 549 550 551 552 553 419 554 555 556 557 558 424 559 560 561 562 563 429 564 565 566 567 568 102 103 569 570 106 107 571 572 573 101 574 575 104 105Used by:2475
Symbol 577 GraphicUsed by:613
Symbol 578 GraphicUsed by:613
Symbol 579 GraphicUsed by:613
Symbol 580 GraphicUsed by:613
Symbol 581 GraphicUsed by:613
Symbol 582 GraphicUsed by:613
Symbol 583 GraphicUsed by:613
Symbol 584 GraphicUsed by:613
Symbol 585 GraphicUsed by:613
Symbol 586 GraphicUsed by:613
Symbol 587 GraphicUsed by:613
Symbol 588 GraphicUsed by:613
Symbol 589 GraphicUsed by:613
Symbol 590 GraphicUsed by:613
Symbol 591 GraphicUsed by:613
Symbol 592 GraphicUsed by:613
Symbol 593 GraphicUsed by:613
Symbol 594 GraphicUsed by:613
Symbol 595 GraphicUsed by:613
Symbol 596 GraphicUsed by:613
Symbol 597 GraphicUsed by:613
Symbol 598 GraphicUsed by:613
Symbol 599 GraphicUsed by:613
Symbol 600 GraphicUsed by:613
Symbol 601 GraphicUsed by:613
Symbol 602 GraphicUsed by:613
Symbol 603 GraphicUsed by:613
Symbol 604 GraphicUsed by:613
Symbol 605 GraphicUsed by:613
Symbol 606 GraphicUsed by:613
Symbol 607 GraphicUsed by:613
Symbol 608 GraphicUsed by:613
Symbol 609 GraphicUsed by:613
Symbol 610 GraphicUsed by:613
Symbol 611 GraphicUsed by:613
Symbol 612 GraphicUsed by:613
Symbol 613 MovieClip {zombieCycle_death_9}Uses:244 250 147 246 149 577 523 381 245 578 525 384 248 579 527 387 580 389 581 530 392 582 394 583 584 534 397 585 399 586 587 538 402 588 404 589 590 542 407 591 409 592 411 593 547 108 594 414 595 416 596 552 597 419 598 421 599 557 600 424 601 426 602 562 603 429 604 431 605 567 606 102 110 607 436 113 107 608 609 440 109 610 442 611 444 612 446 111 112Used by:2475
Symbol 614 GraphicUsed by:647
Symbol 615 GraphicUsed by:647
Symbol 616 GraphicUsed by:647
Symbol 617 GraphicUsed by:647 749
Symbol 618 GraphicUsed by:647
Symbol 619 GraphicUsed by:647 749
Symbol 620 GraphicUsed by:647
Symbol 621 GraphicUsed by:647 749
Symbol 622 GraphicUsed by:647
Symbol 623 GraphicUsed by:647 749
Symbol 624 GraphicUsed by:647
Symbol 625 GraphicUsed by:647 749
Symbol 626 GraphicUsed by:647
Symbol 627 GraphicUsed by:647
Symbol 628 GraphicUsed by:647 749
Symbol 629 GraphicUsed by:647
Symbol 630 GraphicUsed by:647 749
Symbol 631 GraphicUsed by:647
Symbol 632 GraphicUsed by:647 749
Symbol 633 GraphicUsed by:647
Symbol 634 GraphicUsed by:647 749
Symbol 635 GraphicUsed by:647
Symbol 636 GraphicUsed by:647 749
Symbol 637 GraphicUsed by:647
Symbol 638 GraphicUsed by:647
Symbol 639 GraphicUsed by:647 749
Symbol 640 GraphicUsed by:647
Symbol 641 GraphicUsed by:647 749
Symbol 642 GraphicUsed by:647 749
Symbol 643 GraphicUsed by:647
Symbol 644 GraphicUsed by:647
Symbol 645 GraphicUsed by:647 749
Symbol 646 GraphicUsed by:647 749
Symbol 647 MovieClip {zombieCycle_death_8}Uses:339 345 147 264 265 266 180 614 451 381 340 615 454 384 343 616 387 617 389 618 460 392 619 394 620 464 397 621 399 622 468 402 623 404 624 472 407 625 409 626 627 476 108 628 414 629 481 630 419 631 487 632 424 633 493 634 429 635 499 636 102 637 638 505 639 640 641 642 643 644 645 646Used by:2475
Symbol 648 GraphicUsed by:692
Symbol 649 GraphicUsed by:692 749 774 799
Symbol 650 GraphicUsed by:692
Symbol 651 GraphicUsed by:692 749 774 799
Symbol 652 GraphicUsed by:692
Symbol 653 GraphicUsed by:692 798
Symbol 654 GraphicUsed by:692
Symbol 655 GraphicUsed by:692 749 774 799
Symbol 656 GraphicUsed by:692 798
Symbol 657 GraphicUsed by:692
Symbol 658 GraphicUsed by:692 749 774 799
Symbol 659 GraphicUsed by:692 798
Symbol 660 GraphicUsed by:692
Symbol 661 GraphicUsed by:692 749 774 799
Symbol 662 GraphicUsed by:692 798
Symbol 663 GraphicUsed by:692
Symbol 664 GraphicUsed by:692 749 774 799
Symbol 665 GraphicUsed by:692 798
Symbol 666 GraphicUsed by:692
Symbol 667 GraphicUsed by:692
Symbol 668 GraphicUsed by:692 749 774 799
Symbol 669 GraphicUsed by:692 798
Symbol 670 GraphicUsed by:692
Symbol 671 GraphicUsed by:692
Symbol 672 GraphicUsed by:692 749 774 799
Symbol 673 GraphicUsed by:692 798
Symbol 674 GraphicUsed by:692
Symbol 675 GraphicUsed by:692
Symbol 676 GraphicUsed by:692 749 774 799
Symbol 677 GraphicUsed by:692 798
Symbol 678 GraphicUsed by:692
Symbol 679 GraphicUsed by:692
Symbol 680 GraphicUsed by:692 749 774 799
Symbol 681 GraphicUsed by:692 798
Symbol 682 GraphicUsed by:692
Symbol 683 GraphicUsed by:692
Symbol 684 GraphicUsed by:692 749 774 799
Symbol 685 GraphicUsed by:692
Symbol 686 GraphicUsed by:692
Symbol 687 GraphicUsed by:692
Symbol 688 GraphicUsed by:692
Symbol 689 GraphicUsed by:692
Symbol 690 GraphicUsed by:692
Symbol 691 GraphicUsed by:692
Symbol 692 MovieClip {zombieCycle_death_7}Uses:211 222 282 283 180 284 149 648 450 649 381 212 650 453 651 384 218 652 456 387 528 653 654 459 655 392 531 656 657 658 397 535 659 660 661 402 539 662 663 664 407 543 665 666 411 667 668 108 548 669 670 479 671 672 553 673 674 484 675 486 676 558 677 678 490 679 492 680 563 681 682 496 683 498 684 568 119 685 503 686 117 121 571 687 508 101 688 510 689 514 690 516 691 519Used by:2475
Symbol 693 GraphicUsed by:724
Symbol 694 GraphicUsed by:724 798
Symbol 695 GraphicUsed by:724
Symbol 696 GraphicUsed by:724 798
Symbol 697 GraphicUsed by:724
Symbol 698 GraphicUsed by:724
Symbol 699 GraphicUsed by:724 798
Symbol 700 GraphicUsed by:724
Symbol 701 GraphicUsed by:724 798
Symbol 702 GraphicUsed by:724
Symbol 703 GraphicUsed by:724 798
Symbol 704 GraphicUsed by:724
Symbol 705 GraphicUsed by:724 798
Symbol 706 GraphicUsed by:724
Symbol 707 GraphicUsed by:724
Symbol 708 GraphicUsed by:724 798
Symbol 709 GraphicUsed by:724
Symbol 710 GraphicUsed by:724
Symbol 711 GraphicUsed by:724 798
Symbol 712 GraphicUsed by:724
Symbol 713 GraphicUsed by:724
Symbol 714 GraphicUsed by:724 798
Symbol 715 GraphicUsed by:724
Symbol 716 GraphicUsed by:724
Symbol 717 GraphicUsed by:724 798
Symbol 718 GraphicUsed by:724
Symbol 719 GraphicUsed by:724
Symbol 720 GraphicUsed by:724 798
Symbol 721 GraphicUsed by:724
Symbol 722 GraphicUsed by:724
Symbol 723 GraphicUsed by:724
Symbol 724 MovieClip {zombieCycle_death_6}Uses:146 147 312 149 313 180 693 450 694 381 695 453 696 384 697 456 387 388 389 698 459 699 392 393 394 700 701 397 398 399 702 703 402 403 404 704 705 407 408 409 706 545 707 708 108 413 414 709 550 710 711 418 419 712 555 713 486 714 423 424 715 560 716 492 717 428 429 718 565 719 498 720 433 102 721 570 116 117 118 438 722 573 114 723 575 115 105Used by:2475
Symbol 725 GraphicUsed by:749
Symbol 726 GraphicUsed by:749
Symbol 727 GraphicUsed by:749
Symbol 728 GraphicUsed by:749
Symbol 729 GraphicUsed by:749
Symbol 730 GraphicUsed by:749
Symbol 731 GraphicUsed by:749
Symbol 732 GraphicUsed by:749
Symbol 733 GraphicUsed by:749
Symbol 734 GraphicUsed by:749
Symbol 735 GraphicUsed by:749
Symbol 736 GraphicUsed by:749
Symbol 737 GraphicUsed by:749
Symbol 738 GraphicUsed by:749
Symbol 739 GraphicUsed by:749
Symbol 740 GraphicUsed by:749
Symbol 741 GraphicUsed by:749
Symbol 742 GraphicUsed by:749
Symbol 743 GraphicUsed by:749
Symbol 744 GraphicUsed by:749
Symbol 745 GraphicUsed by:749
Symbol 746 GraphicUsed by:749
Symbol 747 GraphicUsed by:749
Symbol 748 GraphicUsed by:749
Symbol 749 MovieClip {zombieCycle_death_5}Uses:339 345 147 341 149 725 450 649 381 340 726 453 651 384 343 727 456 387 617 389 728 459 655 392 619 394 729 658 397 621 399 730 661 402 623 404 731 664 407 625 409 732 411 733 668 108 628 414 734 416 735 672 630 419 736 421 737 486 676 632 424 738 426 739 492 680 634 429 740 431 741 498 684 636 102 742 436 743 117 121 639 744 440 745 442 641 642 746 444 747 446 645 748 112 646Used by:2475
Symbol 750 GraphicUsed by:774 797 798 799
Symbol 751 GraphicUsed by:774 797 798 799
Symbol 752 GraphicUsed by:774 797 798 799
Symbol 753 GraphicUsed by:774
Symbol 754 GraphicUsed by:774 797 798 799
Symbol 755 GraphicUsed by:774
Symbol 756 GraphicUsed by:774 797 798 799
Symbol 757 GraphicUsed by:774
Symbol 758 GraphicUsed by:774 797 798 799
Symbol 759 GraphicUsed by:774
Symbol 760 GraphicUsed by:774 797 798 799
Symbol 761 GraphicUsed by:774
Symbol 762 GraphicUsed by:774 797 798 799
Symbol 763 GraphicUsed by:774
Symbol 764 GraphicUsed by:774 797 798 799
Symbol 765 GraphicUsed by:774
Symbol 766 GraphicUsed by:774 797 798 799
Symbol 767 GraphicUsed by:774
Symbol 768 GraphicUsed by:774 797 798 799
Symbol 769 GraphicUsed by:774
Symbol 770 GraphicUsed by:774 797 798 799
Symbol 771 GraphicUsed by:774
Symbol 772 GraphicUsed by:774
Symbol 773 GraphicUsed by:774
Symbol 774 MovieClip {zombieCycle_death_4}Uses:357 362 147 149 750 450 649 381 358 751 453 651 384 360 752 456 387 753 389 754 459 655 392 755 394 756 658 397 757 399 758 661 402 759 404 760 664 407 761 409 411 762 668 108 763 414 416 764 672 765 419 421 766 486 676 767 424 426 768 492 680 769 429 431 770 498 684 771 102 436 120 117 121 772 440 773 442 444 446 112Used by:2475
Symbol 775 GraphicUsed by:797
Symbol 776 GraphicUsed by:797
Symbol 777 GraphicUsed by:797
Symbol 778 GraphicUsed by:797
Symbol 779 GraphicUsed by:797
Symbol 780 GraphicUsed by:797
Symbol 781 GraphicUsed by:797
Symbol 782 GraphicUsed by:797
Symbol 783 GraphicUsed by:797
Symbol 784 GraphicUsed by:797
Symbol 785 GraphicUsed by:797
Symbol 786 GraphicUsed by:797
Symbol 787 GraphicUsed by:797
Symbol 788 GraphicUsed by:797
Symbol 789 GraphicUsed by:797
Symbol 790 GraphicUsed by:797
Symbol 791 GraphicUsed by:797
Symbol 792 GraphicUsed by:797
Symbol 793 GraphicUsed by:797
Symbol 794 GraphicUsed by:797
Symbol 795 GraphicUsed by:797
Symbol 796 GraphicUsed by:797
Symbol 797 MovieClip {zombieCycle_death_3}Uses:374 375 180 149 750 450 451 381 751 453 454 384 752 456 387 775 776 754 459 460 392 777 778 756 464 397 779 780 758 468 402 781 782 760 472 407 783 784 411 762 476 108 785 786 479 764 481 787 788 484 766 486 487 789 790 490 768 492 493 791 792 496 770 498 499 793 794 503 120 117 505 795 508 796 510 514 516 519Used by:2475
Symbol 798 MovieClip {zombieCycle_death_2}Uses:282 149 180 750 450 694 381 751 453 696 384 752 456 387 653 754 459 699 392 656 756 701 397 659 758 703 402 662 760 705 407 665 545 762 708 108 669 550 764 711 673 555 766 486 714 677 560 768 492 717 681 565 770 498 720 119 570 120 117 118 573 575 105Used by:2475
Symbol 799 MovieClip {zombieCycle_death_1}Uses:211 222 147 149 750 450 649 381 212 751 453 651 384 218 752 456 387 528 389 754 459 655 392 531 394 756 658 397 535 399 758 661 402 539 404 760 664 407 543 409 411 762 668 108 548 414 416 764 672 553 419 421 766 486 676 558 424 426 768 492 680 563 429 431 770 498 684 568 102 436 120 117 121 571 440 101 442 444 446 112Used by:2475
Symbol 800 GraphicUsed by:830
Symbol 801 GraphicUsed by:830
Symbol 802 GraphicUsed by:830
Symbol 803 GraphicUsed by:830
Symbol 804 GraphicUsed by:830
Symbol 805 GraphicUsed by:830
Symbol 806 GraphicUsed by:830
Symbol 807 GraphicUsed by:830
Symbol 808 GraphicUsed by:830 840 850 860 885 893 901 902 903 904 905
Symbol 809 GraphicUsed by:830
Symbol 810 GraphicUsed by:830
Symbol 811 GraphicUsed by:830 840 850 860 885 893 901 902 903 904 905
Symbol 812 GraphicUsed by:830
Symbol 813 GraphicUsed by:830
Symbol 814 GraphicUsed by:830 840 850 860 885 893 901 902 903 904 905
Symbol 815 GraphicUsed by:830
Symbol 816 GraphicUsed by:830
Symbol 817 GraphicUsed by:830 840 850 860 885 893 901 902 903 904 905
Symbol 818 GraphicUsed by:830
Symbol 819 GraphicUsed by:830
Symbol 820 GraphicUsed by:830
Symbol 821 GraphicUsed by:830 840 850 860 885 893 901 902 903 904 905
Symbol 822 GraphicUsed by:830
Symbol 823 GraphicUsed by:830 840 850 860 885 893 901 902 903 904 905
Symbol 824 GraphicUsed by:830
Symbol 825 GraphicUsed by:830 840 850 860 885 893 901 902 903 904 905
Symbol 826 GraphicUsed by:830
Symbol 827 GraphicUsed by:830 840 850 860 885 893 901 902 903 904 905
Symbol 828 GraphicUsed by:830
Symbol 829 GraphicUsed by:830 840 850 860 885 893 901 902 903 904 905
Symbol 830 MovieClip {zombieCycle_attack_12}Uses:146 147 800 148 149 150 151 152 801 153 154 155 802 156 157 803 158 159 804 160 161 805 162 163 806 807 808 164 165 809 810 811 166 167 812 813 814 168 169 815 816 817 170 171 818 172 173 819 820 821 174 175 822 823 824 825 826 827 828 829Used by:2475
Symbol 831 GraphicUsed by:840
Symbol 832 GraphicUsed by:840
Symbol 833 GraphicUsed by:840
Symbol 834 GraphicUsed by:840
Symbol 835 GraphicUsed by:840
Symbol 836 GraphicUsed by:840
Symbol 837 GraphicUsed by:840
Symbol 838 GraphicUsed by:840
Symbol 839 GraphicUsed by:840
Symbol 840 MovieClip {zombieCycle_attack_11}Uses:177 178 147 179 180 181 149 182 183 184 152 185 186 187 188 155 189 190 191 157 192 193 159 194 195 161 196 197 163 831 808 198 199 165 832 811 200 201 167 833 814 202 203 169 834 817 204 205 171 206 207 173 835 821 208 209 175 836 823 837 825 838 827 839 829Used by:2475
Symbol 841 GraphicUsed by:850
Symbol 842 GraphicUsed by:850
Symbol 843 GraphicUsed by:850
Symbol 844 GraphicUsed by:850
Symbol 845 GraphicUsed by:850
Symbol 846 GraphicUsed by:850
Symbol 847 GraphicUsed by:850
Symbol 848 GraphicUsed by:850
Symbol 849 GraphicUsed by:850
Symbol 850 MovieClip {zombieCycle_attack_10}Uses:211 212 147 213 149 214 180 215 216 217 152 218 219 220 221 155 222 223 224 157 225 226 159 227 228 161 229 230 163 841 808 231 232 165 842 811 233 234 167 843 814 235 236 169 844 817 237 238 171 239 240 173 845 821 241 242 175 846 823 847 825 848 827 849 829Used by:2475
Symbol 851 GraphicUsed by:860
Symbol 852 GraphicUsed by:860
Symbol 853 GraphicUsed by:860
Symbol 854 GraphicUsed by:860
Symbol 855 GraphicUsed by:860
Symbol 856 GraphicUsed by:860
Symbol 857 GraphicUsed by:860
Symbol 858 GraphicUsed by:860
Symbol 859 GraphicUsed by:860
Symbol 860 MovieClip {zombieCycle_attack_9}Uses:244 245 147 246 149 247 216 217 152 248 249 220 221 155 250 251 224 157 252 226 159 253 228 161 254 230 163 851 808 255 232 165 852 811 256 234 167 853 814 257 236 169 854 817 258 238 171 259 240 173 855 821 260 242 175 856 823 857 825 858 827 859 829Used by:2475
Symbol 861 GraphicUsed by:879
Symbol 862 GraphicUsed by:879 902
Symbol 863 GraphicUsed by:879
Symbol 864 GraphicUsed by:879 902
Symbol 865 GraphicUsed by:879
Symbol 866 GraphicUsed by:879 902
Symbol 867 GraphicUsed by:879
Symbol 868 GraphicUsed by:879 902
Symbol 869 GraphicUsed by:879
Symbol 870 GraphicUsed by:879 902
Symbol 871 GraphicUsed by:879
Symbol 872 GraphicUsed by:879 902
Symbol 873 GraphicUsed by:879
Symbol 874 GraphicUsed by:879 902
Symbol 875 GraphicUsed by:879
Symbol 876 GraphicUsed by:879 902
Symbol 877 GraphicUsed by:879
Symbol 878 GraphicUsed by:879 902
Symbol 879 MovieClip {zombieCycle_attack_8}Uses:262 263 147 264 265 266 180 267 183 184 152 269 187 188 155 271 191 157 272 193 159 273 195 161 274 197 163 861 862 275 199 165 863 864 276 201 167 865 866 277 203 169 867 868 278 205 171 279 207 173 869 870 280 209 175 871 872 873 874 875 876 877 878Used by:2475
Symbol 880 GraphicUsed by:885
Symbol 881 GraphicUsed by:885
Symbol 882 GraphicUsed by:885
Symbol 883 GraphicUsed by:885
Symbol 884 GraphicUsed by:885
Symbol 885 MovieClip {zombieCycle_attack_7}Uses:211 212 282 283 180 284 149 285 286 287 152 218 288 289 290 155 222 291 292 157 293 294 159 295 296 161 297 298 163 808 299 300 165 811 301 302 167 880 814 303 304 169 881 817 305 306 171 307 308 173 882 821 309 310 175 883 823 825 884 827 829Used by:2475
Symbol 886 GraphicUsed by:893
Symbol 887 GraphicUsed by:893
Symbol 888 GraphicUsed by:893
Symbol 889 GraphicUsed by:893
Symbol 890 GraphicUsed by:893
Symbol 891 GraphicUsed by:893
Symbol 892 GraphicUsed by:893
Symbol 893 MovieClip {zombieCycle_attack_6}Uses:146 147 312 149 313 180 314 286 315 152 316 289 317 155 318 319 157 320 321 159 322 323 161 324 325 163 886 808 326 327 165 811 328 329 167 887 814 330 331 169 888 817 332 333 171 334 335 173 889 821 336 337 175 890 823 825 891 827 829 892Used by:2475
Symbol 894 GraphicUsed by:901
Symbol 895 GraphicUsed by:901
Symbol 896 GraphicUsed by:901
Symbol 897 GraphicUsed by:901
Symbol 898 GraphicUsed by:901
Symbol 899 GraphicUsed by:901
Symbol 900 GraphicUsed by:901
Symbol 901 MovieClip {zombieCycle_attack_5}Uses:339 340 282 341 149 342 286 287 152 343 344 289 290 155 345 346 292 157 347 294 159 348 296 161 349 298 163 894 808 350 300 165 811 351 302 167 895 814 352 304 169 896 817 353 306 171 354 308 173 897 821 355 310 175 898 823 899 825 900 827 829Used by:2475
Symbol 902 MovieClip {zombieCycle_attack_4}Uses:357 358 147 149 265 359 286 287 152 360 361 289 290 155 362 363 292 157 364 294 159 365 296 161 366 298 163 808 862 367 300 165 811 864 368 302 167 814 866 369 304 169 817 868 370 306 171 371 308 173 821 870 372 310 175 823 872 825 874 827 876 829 878Used by:2475
Symbol 903 MovieClip {zombieCycle_attack_3}Uses:374 375 180 149 359 183 184 152 361 187 188 155 363 191 157 364 193 159 365 195 161 366 197 163 808 367 199 165 811 368 201 167 814 369 203 169 817 370 205 171 371 207 173 821 372 209 175 823 825 827 829Used by:2475
Symbol 904 MovieClip {zombieCycle_attack_2}Uses:282 149 180 359 286 315 152 361 289 317 155 363 319 157 364 321 159 365 323 161 366 325 163 808 367 327 165 811 368 329 167 814 369 331 169 817 370 333 171 371 335 173 821 372 337 175 823 825 827 829Used by:2475
Symbol 905 MovieClip {zombieCycle_attack_1}Uses:211 212 147 149 359 286 287 152 218 361 289 290 155 222 363 292 157 364 294 159 365 296 161 366 298 163 808 367 300 165 811 368 302 167 814 369 304 169 817 370 306 171 371 308 173 821 372 310 175 823 825 827 829Used by:2475
Symbol 906 Sound {BridgeExplosionSound}Used by:2475
Symbol 907 Sound {ButtonFailedSound}Used by:2475
Symbol 908 Sound {ButtonSuccessSound}Used by:2475
Symbol 909 Sound {SniperShoot1Sound}Used by:2475
Symbol 910 Sound {SniperShoot2Sound}Used by:2475
Symbol 911 Sound {SniperShoot3Sound}Used by:2475
Symbol 912 Sound {TimerPipSound}Used by:2475
Symbol 913 Sound {TowerAbandonSound}Used by:2475
Symbol 914 Sound {TowerBuildSound}Used by:2475
Symbol 915 Sound {TowerDestroySound}Used by:2475
Symbol 916 Sound {TowerSupplySound}Used by:2475
Symbol 917 Sound {TowerUpgradeSound}Used by:2475
Symbol 918 Sound {ZombieBash1Sound}Used by:2475
Symbol 919 Sound {ZombieBash2Sound}Used by:2475
Symbol 920 Sound {ZombieBash3Sound}Used by:2475
Symbol 921 Sound {ZombieBash4Sound}Used by:2475
Symbol 922 Sound {ZombieBash5Sound}Used by:2475
Symbol 923 Sound {ZombieBash6Sound}Used by:2475
Symbol 924 Sound {ZombieDeathSound}Used by:2475
Symbol 925 Sound {ZombieMoanCrowdSound}Used by:2475
Symbol 926 Sound {ZombieMoan1Sound}Used by:2475
Symbol 927 Sound {ZombieMoan2Sound}Used by:2475
Symbol 928 Sound {ZombieMoan3Sound}Used by:2475
Symbol 929 Sound {ZombieMoan4Sound}Used by:2475
Symbol 930 GraphicUsed by:932 933 935 936 938 1037 1039 1042 1044 1059 1061 1064 1066 1081 1083 1199 1265 1580 1615 1737 1740 1758 1761
Symbol 931 GraphicUsed by:932 933 946 947 1037 1039 1042 1044 1119 1121 1123 1125
Symbol 932 MovieClip {gunCycle_toplayer_20}Uses:930 931Used by:2475
Symbol 933 MovieClip {gunCycle_toplayer_19}Uses:930 931Used by:2475
Symbol 934 GraphicUsed by:935 936 948 950 1059 1061 1064 1066 1127 1129 1131 1133
Symbol 935 MovieClip {gunCycle_toplayer_18}Uses:930 934Used by:2475
Symbol 936 MovieClip {gunCycle_toplayer_17}Uses:930 934Used by:2475
Symbol 937 GraphicUsed by:938 941 951 952 1081 1083 1086 1088 1144 1146 1148 1150
Symbol 938 MovieClip {gunCycle_toplayer_16}Uses:930 937Used by:2475
Symbol 939 GraphicUsed by:941 1086 1088 1303 1326 1632 1641 1741 1742 1762 1763
Symbol 940 GraphicUsed by:941 1086 1088 1326 1511 1641 1716 1742 1753 1763 1774
Symbol 941 MovieClip {gunCycle_toplayer_15}Uses:939 940 937Used by:2475
Symbol 942 GraphicUsed by:944 1103 1105
Symbol 943 GraphicUsed by:944 945 954 956 1103 1105 1107 1109 1160 1162 1164 1166 1947
Symbol 944 MovieClip {gunCycle_toplayer_14}Uses:942 943Used by:2475
Symbol 945 MovieClip {gunCycle_toplayer_13}Uses:15 943Used by:2475
Symbol 946 MovieClip {gunCycle_toplayer_11}Uses:1 931Used by:2475
Symbol 947 MovieClip {gunCycle_toplayer_10}Uses:1 931Used by:2475
Symbol 948 MovieClip {gunCycle_toplayer_8}Uses:1 934Used by:2475
Symbol 949 GraphicUsed by:950 1131 1133
Symbol 950 MovieClip {gunCycle_toplayer_7}Uses:949 934Used by:2475
Symbol 951 MovieClip {gunCycle_toplayer_5}Uses:1 937Used by:2475
Symbol 952 MovieClip {gunCycle_toplayer_4}Uses:8 937Used by:2475
Symbol 953 GraphicUsed by:954 1160 1162
Symbol 954 MovieClip {gunCycle_toplayer_2}Uses:953 943Used by:2475
Symbol 955 GraphicUsed by:956 1164 1166 1947
Symbol 956 MovieClip {gunCycle_toplayer_1}Uses:955 943Used by:2475
Symbol 957 GraphicUsed by:960 962 1000 1001 1037 1039 1127 1129
Symbol 958 GraphicUsed by:960 964 969 973 978 982 987 990 994 997 1000 1003 1007 1010 1013 1016 1019
Symbol 959 GraphicUsed by:960 962 964 966 994 995 997 999 1037 1039 1042 1044 1119 1121 1123 1125
Symbol 960 MovieClipUses:957 958 959Used by:2475
Symbol 961 GraphicUsed by:962 966 971 975 980 984 989 992 995 999 1001 1005 1009 1011 1014 1017
Symbol 962 MovieClip {gunCycle_midlayer_20}Uses:961 957 959Used by:2475
Symbol 963 GraphicUsed by:964 966 1042 1044
Symbol 964 MovieClipUses:963 958 959Used by:2475
Symbol 965 GraphicUsed by:966 1042 1044
Symbol 966 MovieClip {gunCycle_midlayer_19}Uses:961 963 959 965Used by:2475
Symbol 967 GraphicUsed by:969 971 1059 1061
Symbol 968 GraphicUsed by:969 971 973 975 1000 1001 1003 1005 1059 1061 1064 1066 1127 1129 1131 1133
Symbol 969 MovieClipUses:967 958 968Used by:2475
Symbol 970 GraphicUsed by:971 1059 1061
Symbol 971 MovieClip {gunCycle_midlayer_18}Uses:961 967 968 970Used by:2475
Symbol 972 GraphicUsed by:973 975 1064 1066
Symbol 973 MovieClipUses:972 958 968Used by:2475
Symbol 974 GraphicUsed by:975 1064 1066
Symbol 975 MovieClip {gunCycle_midlayer_17}Uses:961 972 968 974Used by:2475
Symbol 976 GraphicUsed by:978 980 1081 1083
Symbol 977 GraphicUsed by:978 980 982 984 1007 1009 1010 1011 1081 1083 1086 1088 1144 1146 1148 1150
Symbol 978 MovieClipUses:976 958 977Used by:2475
Symbol 979 GraphicUsed by:980 1081 1083
Symbol 980 MovieClip {gunCycle_midlayer_16}Uses:961 976 977 979Used by:2475
Symbol 981 GraphicUsed by:982 984 1086 1088
Symbol 982 MovieClipUses:981 958 977Used by:2475
Symbol 983 GraphicUsed by:984 1086 1088
Symbol 984 MovieClip {gunCycle_midlayer_15}Uses:961 981 977 983Used by:2475
Symbol 985 GraphicUsed by:987 989 1103 1105
Symbol 986 GraphicUsed by:987 989 990 992 1013 1014 1016 1018 1103 1105 1107 1109 1160 1162 1164 1166 1947
Symbol 987 MovieClipUses:985 958 986Used by:2475
Symbol 988 GraphicUsed by:989 1103 1105
Symbol 989 MovieClip {gunCycle_midlayer_14}Uses:961 985 986 988Used by:2475
Symbol 990 MovieClipUses:17 958 986Used by:2475
Symbol 991 GraphicUsed by:992 1107 1109
Symbol 992 MovieClip {gunCycle_midlayer_13}Uses:961 17 986 991Used by:2475
Symbol 993 GraphicUsed by:994 995 1119 1121
Symbol 994 MovieClipUses:993 958 959Used by:2475
Symbol 995 MovieClip {gunCycle_midlayer_11}Uses:961 993 959 6Used by:2475
Symbol 996 GraphicUsed by:997 999 1123 1125
Symbol 997 MovieClipUses:996 958 959Used by:2475
Symbol 998 GraphicUsed by:999 1018 1119 1121 1123 1125 1164 1166 1947
Symbol 999 MovieClip {gunCycle_midlayer_10}Uses:961 996 959 998Used by:2475
Symbol 1000 MovieClipUses:957 958 968Used by:2475
Symbol 1001 MovieClip {gunCycle_midlayer_8}Uses:961 957 968 6Used by:2475
Symbol 1002 GraphicUsed by:1003 1005 1131 1133
Symbol 1003 MovieClipUses:1002 958 968Used by:2475
Symbol 1004 GraphicUsed by:1005 1131 1133
Symbol 1005 MovieClip {gunCycle_midlayer_7}Uses:961 1002 968 1004Used by:2475
Symbol 1006 GraphicUsed by:1007 1009 1144 1146
Symbol 1007 MovieClipUses:1006 958 977Used by:2475
Symbol 1008 GraphicUsed by:1009 1014 1139 1144 1146 1160 1162
Symbol 1009 MovieClip {gunCycle_midlayer_5}Uses:961 1006 977 1008Used by:2475
Symbol 1010 MovieClipUses:10 958 977Used by:2475
Symbol 1011 MovieClip {gunCycle_midlayer_4}Uses:961 10 977 13Used by:2475
Symbol 1012 GraphicUsed by:1013 1014 1160 1162
Symbol 1013 MovieClipUses:1012 958 986Used by:2475
Symbol 1014 MovieClip {gunCycle_midlayer_2}Uses:961 1012 986 1008Used by:2475
Symbol 1015 GraphicUsed by:1016 1018 1164 1166 1947
Symbol 1016 MovieClipUses:1015 958 986Used by:2475
Symbol 1017 MovieClipUses:961Used by:1018 1039 1044 1061 1066 1083 1088 1105 1109 1121 1125 1129 1133 1146 1150 1162 1166
Symbol 1018 MovieClip {gunCycle_midlayer_1}Uses:1017 1015 986 998Used by:2475
Symbol 1019 MovieClipUses:958Used by:1037 1042 1059 1064 1081 1086 1103 1107 1119 1123 1127 1131 1144 1148 1160 1164 1947
Symbol 1020 GraphicUsed by:1037 1039
Symbol 1021 GraphicUsed by:1037 1039 1127 1129
Symbol 1022 GraphicUsed by:1037 1039 1042 1044 1119 1121 1123 1125
Symbol 1023 GraphicUsed by:1037
Symbol 1024 GraphicUsed by:1037 1039 1127 1129
Symbol 1025 GraphicUsed by:1037 1039 1042 1044 1119 1121 1123 1125
Symbol 1026 GraphicUsed by:1037 1039 1042 1044 1059 1061 1064 1066 1081 1083 1086 1088 1103 1105 1107 1109 1119 1121 1123 1125 1127 1129 1131 1133 1144 1146 1148 1150 1160 1162 1164 1166
Symbol 1027 GraphicUsed by:1037 1039 1042 1044 1059 1061 1064 1066 1081 1083 1086 1088 1103 1105 1107 1109 1119 1121 1123 1125 1127 1129 1131 1133 1144 1146 1148 1150 1160 1162 1164 1166
Symbol 1028 GraphicUsed by:1037 1039 1127 1129
Symbol 1029 GraphicUsed by:1037 1039 1042 1044 1119 1121 1123 1125
Symbol 1030 GraphicUsed by:1037 1039 1127 1129
Symbol 1031 GraphicUsed by:1037 1039 1042 1044 1119 1121 1123 1125
Symbol 1032 GraphicUsed by:1037 1039 1127 1129
Symbol 1033 GraphicUsed by:1037 1039 1042 1044 1119 1121 1123 1125
Symbol 1034 GraphicUsed by:1037 1039 1127 1129
Symbol 1035 GraphicUsed by:1037 1039 1127 1129
Symbol 1036 GraphicUsed by:1037 1039 1127 1129
Symbol 1037 MovieClip {gunCycle_20_gun2}Uses:1019 930 931 957 959 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036Used by:2475
Symbol 1038 GraphicUsed by:1039
Symbol 1039 MovieClip {gunCycle_20_gun1}Uses:1017 930 931 957 959 1020 1021 1022 1038 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036Used by:2475
Symbol 1040 GraphicUsed by:1042
Symbol 1041 GraphicUsed by:1042 1044
Symbol 1042 MovieClip {gunCycle_19_gun2}Uses:1019 930 931 963 959 965 1022 1040 1025 1026 1027 1029 1031 1033 1041Used by:2475
Symbol 1043 GraphicUsed by:1044
Symbol 1044 MovieClip {gunCycle_19_gun1}Uses:1017 930 931 963 959 965 1022 1043 1025 1026 1027 1029 1031 1033 1041Used by:2475
Symbol 1045 GraphicUsed by:1059 1061
Symbol 1046 GraphicUsed by:1059 1061 1064 1066 1127 1129 1131 1133
Symbol 1047 GraphicUsed by:1059
Symbol 1048 GraphicUsed by:1059 1061
Symbol 1049 GraphicUsed by:1059 1061 1064 1066 1127 1129 1131 1133
Symbol 1050 GraphicUsed by:1059 1061
Symbol 1051 GraphicUsed by:1059 1061 1064 1066 1127 1129 1131 1133
Symbol 1052 GraphicUsed by:1059 1061
Symbol 1053 GraphicUsed by:1059 1061 1064 1066 1127 1129 1131 1133
Symbol 1054 GraphicUsed by:1059 1061
Symbol 1055 GraphicUsed by:1059 1061 1064 1066 1127 1129 1131 1133
Symbol 1056 GraphicUsed by:1059 1061
Symbol 1057 GraphicUsed by:1059 1061
Symbol 1058 GraphicUsed by:1059 1061
Symbol 1059 MovieClip {gunCycle_18_gun2}Uses:1019 930 934 967 968 970 1045 1046 1047 1048 1049 1026 1027 1050 1051 1052 1053 1054 1055 1056 1057 1058Used by:2475
Symbol 1060 GraphicUsed by:1061
Symbol 1061 MovieClip {gunCycle_18_gun1}Uses:1017 930 934 967 968 970 1045 1046 1060 1048 1049 1026 1027 1050 1051 1052 1053 1054 1055 1056 1057 1058Used by:2475
Symbol 1062 GraphicUsed by:1064
Symbol 1063 GraphicUsed by:1064 1066
Symbol 1064 MovieClip {gunCycle_17_gun2}Uses:1019 930 934 972 968 974 1046 1062 1049 1026 1027 1051 1053 1055 1063Used by:2475
Symbol 1065 GraphicUsed by:1066
Symbol 1066 MovieClip {gunCycle_17_gun1}Uses:1017 930 934 972 968 974 1046 1065 1049 1026 1027 1051 1053 1055 1063Used by:2475
Symbol 1067 GraphicUsed by:1081 1083
Symbol 1068 GraphicUsed by:1081 1083 1086 1088 1144 1146 1148 1150
Symbol 1069 GraphicUsed by:1081
Symbol 1070 GraphicUsed by:1081 1083
Symbol 1071 GraphicUsed by:1081 1083 1086 1088 1144 1146 1148 1150
Symbol 1072 GraphicUsed by:1081 1083
Symbol 1073 GraphicUsed by:1081 1083 1086 1088 1144 1146 1148 1150
Symbol 1074 GraphicUsed by:1081 1083
Symbol 1075 GraphicUsed by:1081 1083 1086 1088 1144 1146 1148 1150
Symbol 1076 GraphicUsed by:1081 1083
Symbol 1077 GraphicUsed by:1081 1083 1086 1088 1144 1146 1148 1150
Symbol 1078 GraphicUsed by:1081 1083
Symbol 1079 GraphicUsed by:1081 1083
Symbol 1080 GraphicUsed by:1081 1083
Symbol 1081 MovieClip {gunCycle_16_gun2}Uses:1019 930 937 976 977 979 1067 1068 1069 1070 1071 1026 1027 1072 1073 1074 1075 1076 1077 1078 1079 1080Used by:2475
Symbol 1082 GraphicUsed by:1083
Symbol 1083 MovieClip {gunCycle_16_gun1}Uses:1017 930 937 976 977 979 1067 1068 1082 1070 1071 1026 1027 1072 1073 1074 1075 1076 1077 1078 1079 1080Used by:2475
Symbol 1084 GraphicUsed by:1086
Symbol 1085 GraphicUsed by:1086 1088
Symbol 1086 MovieClip {gunCycle_15_gun2}Uses:1019 939 940 937 981 977 983 1068 1084 1071 1026 1027 1073 1075 1077 1085Used by:2475
Symbol 1087 GraphicUsed by:1088
Symbol 1088 MovieClip {gunCycle_15_gun1}Uses:1017 939 940 937 981 977 983 1068 1087 1071 1026 1027 1073 1075 1077 1085Used by:2475
Symbol 1089 GraphicUsed by:1103 1105
Symbol 1090 GraphicUsed by:1103 1105 1107 1109 1160 1162 1164 1166
Symbol 1091 GraphicUsed by:1103
Symbol 1092 GraphicUsed by:1103 1105
Symbol 1093 GraphicUsed by:1103 1105 1107 1109 1160 1162 1164 1166
Symbol 1094 GraphicUsed by:1103 1105
Symbol 1095 GraphicUsed by:1103 1105 1107 1109 1160 1162 1164 1166
Symbol 1096 GraphicUsed by:1103 1105
Symbol 1097 GraphicUsed by:1103 1105 1107 1109 1160 1162 1164 1166
Symbol 1098 GraphicUsed by:1103 1105
Symbol 1099 GraphicUsed by:1103 1105 1107 1109 1160 1162 1164 1166
Symbol 1100 GraphicUsed by:1103 1105
Symbol 1101 GraphicUsed by:1103 1105
Symbol 1102 GraphicUsed by:1103 1105
Symbol 1103 MovieClip {gunCycle_14_gun2}Uses:1019 942 943 985 986 988 1089 1090 1091 1092 1093 1026 1027 1094 1095 1096 1097 1098 1099 1100 1101 1102Used by:2475
Symbol 1104 GraphicUsed by:1105
Symbol 1105 MovieClip {gunCycle_14_gun1}Uses:1017 942 943 985 986 988 1089 1090 1104 1092 1093 1026 1027 1094 1095 1096 1097 1098 1099 1100 1101 1102Used by:2475
Symbol 1106 GraphicUsed by:1107
Symbol 1107 MovieClip {gunCycle_13_gun2}Uses:1019 15 943 17 986 991 1090 1106 1093 1026 1027 1095 1097 1099Used by:2475
Symbol 1108 GraphicUsed by:1109
Symbol 1109 MovieClip {gunCycle_13_gun1}Uses:1017 15 943 17 986 991 1090 1108 1093 1026 1027 1095 1097 1099Used by:2475
Symbol 1110 GraphicUsed by:1119 1121
Symbol 1111 GraphicUsed by:1119
Symbol 1112 GraphicUsed by:1119 1121
Symbol 1113 GraphicUsed by:1119 1121
Symbol 1114 GraphicUsed by:1119 1121
Symbol 1115 GraphicUsed by:1119 1121
Symbol 1116 GraphicUsed by:1119 1121
Symbol 1117 GraphicUsed by:1119 1121
Symbol 1118 GraphicUsed by:1119 1121
Symbol 1119 MovieClip {gunCycle_11_gun2}Uses:1019 1 931 993 959 6 1110 1022 998 1111 1112 1025 1026 1027 1113 1029 1114 1031 1115 1033 1116 1117 1118Used by:2475
Symbol 1120 GraphicUsed by:1121
Symbol 1121 MovieClip {gunCycle_11_gun1}Uses:1017 1 931 993 959 6 1110 1022 998 1120 1112 1025 1026 1027 1113 1029 1114 1031 1115 1033 1116 1117 1118Used by:2475
Symbol 1122 GraphicUsed by:1123
Symbol 1123 MovieClip {gunCycle_10_gun2}Uses:1019 1 931 996 959 998 1022 1122 1025 1026 1027 1029 1031 1033Used by:2475
Symbol 1124 GraphicUsed by:1125
Symbol 1125 MovieClip {gunCycle_10_gun1}Uses:1017 1 931 996 959 998 1022 1124 1025 1026 1027 1029 1031 1033Used by:2475
Symbol 1126 GraphicUsed by:1127
Symbol 1127 MovieClip {gunCycle_8_gun2}Uses:1019 1 934 957 968 6 1021 1046 1126 1024 1049 1026 1027 1028 1051 1030 1053 1032 1055 1034 1035 1036Used by:2475
Symbol 1128 GraphicUsed by:1129
Symbol 1129 MovieClip {gunCycle_8_gun1}Uses:1017 1 934 957 968 6 1021 1046 1128 1024 1049 1026 1027 1028 1051 1030 1053 1032 1055 1034 1035 1036Used by:2475
Symbol 1130 GraphicUsed by:1131
Symbol 1131 MovieClip {gunCycle_7_gun2}Uses:1019 949 934 1002 968 1004 1046 1130 1049 1026 1027 1051 1053 1055Used by:2475
Symbol 1132 GraphicUsed by:1133
Symbol 1133 MovieClip {gunCycle_7_gun1}Uses:1017 949 934 1002 968 1004 1046 1132 1049 1026 1027 1051 1053 1055Used by:2475
Symbol 1134 GraphicUsed by:1144 1146
Symbol 1135 GraphicUsed by:1144
Symbol 1136 GraphicUsed by:1144 1146
Symbol 1137 GraphicUsed by:1144 1146
Symbol 1138 GraphicUsed by:1144 1146
Symbol 1139 MovieClipUses:1008Used by:1144 1146 1160 1162
Symbol 1140 GraphicUsed by:1144 1146
Symbol 1141 GraphicUsed by:1144 1146
Symbol 1142 GraphicUsed by:1144 1146
Symbol 1143 GraphicUsed by:1144 1146
Symbol 1144 MovieClip {gunCycle_5_gun2}Uses:1019 1 937 1006 977 1008 1134 1068 1135 1136 1071 1026 1027 1137 1073 1138 1075 1139 1140 1077 1141 1142 1143Used by:2475
Symbol 1145 GraphicUsed by:1146
Symbol 1146 MovieClip {gunCycle_5_gun1}Uses:1017 1 937 1006 977 1008 1134 1068 1145 1136 1071 1026 1027 1137 1073 1138 1075 1139 1140 1077 1141 1142 1143Used by:2475
Symbol 1147 GraphicUsed by:1148
Symbol 1148 MovieClip {gunCycle_4_gun2}Uses:1019 8 937 10 977 13 1068 1147 1071 1026 1027 1073 1075 1077Used by:2475
Symbol 1149 GraphicUsed by:1150
Symbol 1150 MovieClip {gunCycle_4_gun1}Uses:1017 8 937 10 977 13 1068 1149 1071 1026 1027 1073 1075 1077Used by:2475
Symbol 1151 GraphicUsed by:1160 1162
Symbol 1152 GraphicUsed by:1160
Symbol 1153 GraphicUsed by:1160 1162
Symbol 1154 GraphicUsed by:1160 1162
Symbol 1155 GraphicUsed by:1160 1162
Symbol 1156 GraphicUsed by:1160 1162
Symbol 1157 GraphicUsed by:1160 1162
Symbol 1158 GraphicUsed by:1160 1162
Symbol 1159 GraphicUsed by:1160 1162
Symbol 1160 MovieClip {gunCycle_2_gun2}Uses:1019 953 943 1012 986 1008 1151 1090 1152 1153 1093 1026 1027 1154 1095 1155 1097 1139 1156 1099 1157 1158 1159Used by:2475
Symbol 1161 GraphicUsed by:1162
Symbol 1162 MovieClip {gunCycle_2_gun1}Uses:1017 953 943 1012 986 1008 1151 1090 1161 1153 1093 1026 1027 1154 1095 1155 1097 1139 1156 1099 1157 1158 1159Used by:2475
Symbol 1163 GraphicUsed by:1164
Symbol 1164 MovieClip {gunCycle_1_gun2}Uses:1019 955 943 1015 986 998 1090 1163 1093 1026 1027 1095 1097 1099Used by:2475
Symbol 1165 GraphicUsed by:1166
Symbol 1166 MovieClip {gunCycle_1_gun1}Uses:1017 955 943 1015 986 998 1090 1165 1093 1026 1027 1095 1097 1099Used by:2475
Symbol 1167 GraphicUsed by:1199 1265 1580 1615 1737 1740 1758 1761
Symbol 1168 GraphicUsed by:1199 1224 1393 1410 1427 1580 1589 1668 1677 1686 1737 1738 1745 1746 1747 1758 1759 1766 1767 1768 1824 1942
Symbol 1169 GraphicUsed by:1199 1443
Symbol 1170 GraphicUsed by:1199 1224 1393 1410 1427
Symbol 1171 GraphicUsed by:1199 1580 1737 1758
Symbol 1172 GraphicUsed by:1199 1265 1580 1615 1737 1740 1758 1761
Symbol 1173 GraphicUsed by:1199 1443
Symbol 1174 GraphicUsed by:1199 1224 1393 1410 1427
Symbol 1175 GraphicUsed by:1199 1580 1737 1758
Symbol 1176 GraphicUsed by:1199 1265 1580 1615 1737 1740 1758 1761
Symbol 1177 GraphicUsed by:1199 1443
Symbol 1178 GraphicUsed by:1199 1224 1393 1410 1427 1824 1942
Symbol 1179 GraphicUsed by:1199 1248 1580 1606 1737 1739 1758 1760
Symbol 1180 GraphicUsed by:1199 1443
Symbol 1181 GraphicUsed by:1199 1224 1393 1410 1427
Symbol 1182 GraphicUsed by:1199 1580 1737 1758
Symbol 1183 GraphicUsed by:1199 1265 1580 1615 1737 1740 1758 1761
Symbol 1184 GraphicUsed by:1199 1443
Symbol 1185 GraphicUsed by:1199 1224 1393 1410 1427
Symbol 1186 GraphicUsed by:1199 1580 1737 1758
Symbol 1187 GraphicUsed by:1199 1265 1580 1615 1737 1740 1758 1761
Symbol 1188 GraphicUsed by:1199 1443
Symbol 1189 GraphicUsed by:1199 1224 1393 1410 1427
Symbol 1190 GraphicUsed by:1199 1580 1737 1758
Symbol 1191 GraphicUsed by:1199 1265 1580 1615 1737 1740 1758 1761
Symbol 1192 GraphicUsed by:1199 1443
Symbol 1193 GraphicUsed by:1199 1224 1393 1410 1427
Symbol 1194 GraphicUsed by:1199 1248 1580 1606 1737 1739 1758 1760
Symbol 1195 GraphicUsed by:1199 1265 1580 1615 1737 1740 1758 1761
Symbol 1196 GraphicUsed by:1199 1443
Symbol 1197 GraphicUsed by:1199 1224 1393 1410 1427
Symbol 1198 GraphicUsed by:1199 1580 1737 1758
Symbol 1199 MovieClip {Survivor_3_20}Uses:1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 930 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198Used by:2475
Symbol 1200 GraphicUsed by:1224 1248 1589 1606 1738 1739 1759 1760
Symbol 1201 GraphicUsed by:1224
Symbol 1202 GraphicUsed by:1224 1589 1738 1759
Symbol 1203 GraphicUsed by:1224 1248 1589 1606 1738 1739 1759 1760
Symbol 1204 GraphicUsed by:1224
Symbol 1205 GraphicUsed by:1224 1589 1738 1759
Symbol 1206 GraphicUsed by:1224 1248 1589 1606 1738 1739 1759 1760
Symbol 1207 GraphicUsed by:1224
Symbol 1208 GraphicUsed by:1224 1589 1738 1759
Symbol 1209 GraphicUsed by:1224 1248 1589 1606 1738 1739 1759 1760
Symbol 1210 GraphicUsed by:1224
Symbol 1211 GraphicUsed by:1224 1589 1738 1759
Symbol 1212 GraphicUsed by:1224 1248 1589 1606 1738 1739 1759 1760
Symbol 1213 GraphicUsed by:1224
Symbol 1214 GraphicUsed by:1224 1589 1738 1759
Symbol 1215 GraphicUsed by:1224 1248 1589 1606 1738 1739 1759 1760
Symbol 1216 GraphicUsed by:1224
Symbol 1217 GraphicUsed by:1224 1589 1738 1759
Symbol 1218 GraphicUsed by:1224 1248 1589 1606 1738 1739 1759 1760
Symbol 1219 GraphicUsed by:1224
Symbol 1220 GraphicUsed by:1224 1589 1738 1759
Symbol 1221 GraphicUsed by:1224 1248 1589 1606 1738 1739 1759 1760
Symbol 1222 GraphicUsed by:1224
Symbol 1223 GraphicUsed by:1224 1589 1738 1759
Symbol 1224 MovieClip {Survivor_3_19}Uses:1200 1168 1201 1170 1202 1203 1204 1174 1205 1206 1207 1178 1208 1209 1210 1181 1211 1212 1213 1185 1214 1215 1216 1189 1217 1218 1219 1193 1220 1221 1222 1197 1223Used by:2475
Symbol 1225 GraphicUsed by:1248 1265 1442 1443 1468 1606 1615 1687 1688 1697 1739 1740 1748 1749 1750 1760 1761 1769 1770 1771
Symbol 1226 GraphicUsed by:1248
Symbol 1227 GraphicUsed by:1248 1265 1442 1443 1468
Symbol 1228 GraphicUsed by:1248 1606 1739 1760
Symbol 1229 GraphicUsed by:1248
Symbol 1230 GraphicUsed by:1248 1265 1442 1443 1468
Symbol 1231 GraphicUsed by:1248 1606 1739 1760
Symbol 1232 GraphicUsed by:1248
Symbol 1233 GraphicUsed by:1248 1265 1442 1443 1468
Symbol 1234 GraphicUsed by:1248
Symbol 1235 GraphicUsed by:1248 1265 1442 1443 1468
Symbol 1236 GraphicUsed by:1248 1606 1739 1760
Symbol 1237 GraphicUsed by:1248
Symbol 1238 GraphicUsed by:1248 1265 1442 1443 1468
Symbol 1239 GraphicUsed by:1248 1606 1739 1760
Symbol 1240 GraphicUsed by:1248
Symbol 1241 GraphicUsed by:1248 1265 1442 1443 1468
Symbol 1242 GraphicUsed by:1248 1606 1739 1760
Symbol 1243 GraphicUsed by:1248
Symbol 1244 GraphicUsed by:1248 1265 1442 1443 1468
Symbol 1245 GraphicUsed by:1248
Symbol 1246 GraphicUsed by:1248 1265 1442 1443 1468
Symbol 1247 GraphicUsed by:1248 1606 1739 1760
Symbol 1248 MovieClip {Survivor_3_18}Uses:1200 1225 1226 1227 1228 1203 1229 1230 1231 1206 1232 1233 1179 1209 1234 1235 1236 1212 1237 1238 1239 1215 1240 1241 1242 1218 1243 1244 1194 1221 1245 1246 1247Used by:2475
Symbol 1249 GraphicUsed by:1265
Symbol 1250 GraphicUsed by:1265 1615 1740 1761
Symbol 1251 GraphicUsed by:1265
Symbol 1252 GraphicUsed by:1265 1615 1740 1761
Symbol 1253 GraphicUsed by:1265
Symbol 1254 GraphicUsed by:1265 1615 1740 1761
Symbol 1255 GraphicUsed by:1265
Symbol 1256 GraphicUsed by:1265 1615 1740 1761
Symbol 1257 GraphicUsed by:1265
Symbol 1258 GraphicUsed by:1265 1615 1740 1761
Symbol 1259 GraphicUsed by:1265
Symbol 1260 GraphicUsed by:1265 1615 1740 1761
Symbol 1261 GraphicUsed by:1265
Symbol 1262 GraphicUsed by:1265 1615 1740 1761
Symbol 1263 GraphicUsed by:1265
Symbol 1264 GraphicUsed by:1265 1615 1740 1761
Symbol 1265 MovieClip {Survivor_3_17}Uses:1167 1225 1249 1227 1250 1172 1251 1230 1252 1176 1253 1233 1254 930 1255 1235 1256 1183 1257 1238 1258 1187 1259 1241 1260 1191 1261 1244 1262 1195 1263 1246 1264Used by:2475
Symbol 1266 GraphicUsed by:1303 1326 1632 1641 1741 1742 1762 1763
Symbol 1267 GraphicUsed by:1303 1326 1477 1494 1511 1632 1641 1698 1707 1716 1741 1742 1751 1752 1753 1762 1763 1772 1773 1774
Symbol 1268 GraphicUsed by:1303
Symbol 1269 GraphicUsed by:1303 1326 1477 1494 1511
Symbol 1270 GraphicUsed by:1303 1632 1741 1762
Symbol 1271 GraphicUsed by:1303 1393 1410 1427 1443 1477 1494 1632 1668 1677 1686 1688 1698 1707 1741 1745 1746 1747 1749 1751 1752 1762 1766 1767 1768 1770 1772 1773
Symbol 1272 GraphicUsed by:1303 1326 1632 1641 1741 1742 1762 1763
Symbol 1273 GraphicUsed by:1303
Symbol 1274 GraphicUsed by:1303 1326 1477 1494 1511
Symbol 1275 GraphicUsed by:1303 1632 1741 1762
Symbol 1276 GraphicUsed by:1303 1393 1410 1427 1443 1477 1494 1632 1668 1677 1686 1688 1698 1707 1741 1745 1746 1747 1749 1751 1752 1762 1766 1767 1768 1770 1772 1773 1824 1942
Symbol 1277 GraphicUsed by:1303 1326 1632 1641 1741 1742 1762 1763
Symbol 1278 GraphicUsed by:1303
Symbol 1279 GraphicUsed by:1303 1326 1477 1494 1511
Symbol 1280 GraphicUsed by:1303 1632 1741 1762
Symbol 1281 GraphicUsed by:1303 1393 1410 1427 1443 1477 1494 1632 1668 1677 1686 1688 1698 1707 1741 1745 1746 1747 1749 1751 1752 1762 1766 1767 1768 1770 1772 1773
Symbol 1282 GraphicUsed by:1303
Symbol 1283 GraphicUsed by:1303 1326 1477 1494 1511
Symbol 1284 GraphicUsed by:1303 1632 1741 1762
Symbol 1285 GraphicUsed by:1303 1393 1410 1427 1443 1477 1494 1632 1668 1677 1686 1688 1698 1707 1741 1745 1746 1747 1749 1751 1752 1762 1766 1767 1768 1770 1772 1773
Symbol 1286 GraphicUsed by:1303 1326 1632 1641 1741 1742 1762 1763
Symbol 1287 GraphicUsed by:1303
Symbol 1288 GraphicUsed by:1303 1326 1477 1494 1511
Symbol 1289 GraphicUsed by:1303 1632 1741 1762
Symbol 1290 GraphicUsed by:1303 1326 1632 1641 1741 1742 1762 1763
Symbol 1291 GraphicUsed by:1303
Symbol 1292 GraphicUsed by:1303 1326 1477 1494 1511
Symbol 1293 GraphicUsed by:1303 1632 1741 1762
Symbol 1294 GraphicUsed by:1303 1393 1410 1427 1443 1477 1494 1632 1668 1677 1686 1688 1698 1707 1741 1745 1746 1747 1749 1751 1752 1762 1766 1767 1768 1770 1772 1773
Symbol 1295 GraphicUsed by:1303 1326 1632 1641 1741 1742 1762 1763
Symbol 1296 GraphicUsed by:1303
Symbol 1297 GraphicUsed by:1303 1326 1477 1494 1511
Symbol 1298 GraphicUsed by:1303 1632 1741 1762
Symbol 1299 GraphicUsed by:1303 1326 1632 1641 1741 1742 1762 1763
Symbol 1300 GraphicUsed by:1303
Symbol 1301 GraphicUsed by:1303 1326 1477 1494 1511
Symbol 1302 GraphicUsed by:1303 1632 1741 1762
Symbol 1303 MovieClip {Survivor_3_16}Uses:1 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 939 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302Used by:2475
Symbol 1304 GraphicUsed by:1326
Symbol 1305 GraphicUsed by:1326 1641 1742 1763
Symbol 1306 GraphicUsed by:1326 1511 1641 1716 1742 1753 1763 1774
Symbol 1307 GraphicUsed by:1326
Symbol 1308 GraphicUsed by:1326 1641 1742 1763
Symbol 1309 GraphicUsed by:1326 1511 1641 1716 1742 1753 1763 1774
Symbol 1310 GraphicUsed by:1326
Symbol 1311 GraphicUsed by:1326 1641 1742 1763
Symbol 1312 GraphicUsed by:1326
Symbol 1313 GraphicUsed by:1326 1641 1742 1763
Symbol 1314 GraphicUsed by:1326 1511 1641 1716 1742 1753 1763 1774
Symbol 1315 GraphicUsed by:1326
Symbol 1316 GraphicUsed by:1326 1641 1742 1763
Symbol 1317 GraphicUsed by:1326 1511 1641 1716 1742 1753 1763 1774
Symbol 1318 GraphicUsed by:1326
Symbol 1319 GraphicUsed by:1326 1641 1742 1763
Symbol 1320 GraphicUsed by:1326 1511 1641 1716 1742 1753 1763 1774
Symbol 1321 GraphicUsed by:1326
Symbol 1322 GraphicUsed by:1326 1641 1742 1763
Symbol 1323 GraphicUsed by:1326 1511 1641 1716 1742 1753 1763 1774
Symbol 1324 GraphicUsed by:1326
Symbol 1325 GraphicUsed by:1326 1641 1742 1763
Symbol 1326 MovieClip {Survivor_3_15}Uses:1266 8 1267 1304 1269 1305 1272 1306 1307 1274 1308 1277 1309 1310 1279 1311 939 940 1312 1283 1313 1286 1314 1315 1288 1316 1290 1317 1318 1292 1319 1295 1320 1321 1297 1322 1299 1323 1324 1301 1325Used by:2475
Symbol 1327 GraphicUsed by:1360 1658 1743 1764
Symbol 1328 GraphicUsed by:1360 1384 1528 1545 1562 1658 1667 1717 1726 1735 1743 1744 1754 1755 1756 1764 1765 1775 1776 1777 1943
Symbol 1329 GraphicUsed by:1360
Symbol 1330 GraphicUsed by:1360 1384 1528 1545 1562
Symbol 1331 GraphicUsed by:1360 1658 1743 1764
Symbol 1332 GraphicUsed by:1360 1658 1743 1764
Symbol 1333 GraphicUsed by:1360
Symbol 1334 GraphicUsed by:1360 1384 1528 1545 1562
Symbol 1335 GraphicUsed by:1360 1658 1743 1764
Symbol 1336 GraphicUsed by:1360 1658 1743 1764
Symbol 1337 GraphicUsed by:1360
Symbol 1338 GraphicUsed by:1360 1384 1528 1545 1562
Symbol 1339 GraphicUsed by:1360 1658 1743 1764
Symbol 1340 GraphicUsed by:1360 1658 1743 1764
Symbol 1341 GraphicUsed by:1360
Symbol 1342 GraphicUsed by:1360 1384 1528 1545 1562
Symbol 1343 GraphicUsed by:1360 1658 1743 1764
Symbol 1344 GraphicUsed by:1360 1658 1743 1764
Symbol 1345 GraphicUsed by:1360
Symbol 1346 GraphicUsed by:1360 1384 1528 1545 1562
Symbol 1347 GraphicUsed by:1360 1658 1743 1764
Symbol 1348 GraphicUsed by:1360 1658 1743 1764
Symbol 1349 GraphicUsed by:1360
Symbol 1350 GraphicUsed by:1360 1384 1528 1545 1562
Symbol 1351 GraphicUsed by:1360 1658 1743 1764
Symbol 1352 GraphicUsed by:1360 1658 1743 1764
Symbol 1353 GraphicUsed by:1360
Symbol 1354 GraphicUsed by:1360 1384 1528 1545 1562 1943
Symbol 1355 GraphicUsed by:1360 1658 1743 1764
Symbol 1356 GraphicUsed by:1360 1658 1743 1764
Symbol 1357 GraphicUsed by:1360
Symbol 1358 GraphicUsed by:1360 1384 1528 1545 1562
Symbol 1359 GraphicUsed by:1360 1658 1743 1764
Symbol 1360 MovieClip {Survivor_3_14}Uses:1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359Used by:2475
Symbol 1361 GraphicUsed by:1384 1667 1744 1765
Symbol 1362 GraphicUsed by:1384
Symbol 1363 GraphicUsed by:1384 1667 1744 1765
Symbol 1364 GraphicUsed by:1384 1667 1744 1765
Symbol 1365 GraphicUsed by:1384
Symbol 1366 GraphicUsed by:1384 1667 1744 1765
Symbol 1367 GraphicUsed by:1384 1667 1744 1765
Symbol 1368 GraphicUsed by:1384
Symbol 1369 GraphicUsed by:1384 1667 1744 1765
Symbol 1370 GraphicUsed by:1384
Symbol 1371 GraphicUsed by:1384 1667 1744 1765
Symbol 1372 GraphicUsed by:1384 1667 1744 1765
Symbol 1373 GraphicUsed by:1384
Symbol 1374 GraphicUsed by:1384 1667 1744 1765
Symbol 1375 GraphicUsed by:1384 1667 1744 1765
Symbol 1376 GraphicUsed by:1384
Symbol 1377 GraphicUsed by:1384 1667 1744 1765
Symbol 1378 GraphicUsed by:1384 1667 1744 1765 1943
Symbol 1379 GraphicUsed by:1384 1943
Symbol 1380 GraphicUsed by:1384 1667 1744 1765 1943
Symbol 1381 GraphicUsed by:1384 1667 1744 1765
Symbol 1382 GraphicUsed by:1384
Symbol 1383 GraphicUsed by:1384 1667 1744 1765
Symbol 1384 MovieClip {Survivor_3_13}Uses:1361 1328 1362 1330 1363 1364 1365 1334 1366 1367 1368 1338 1369 15 1370 1342 1371 1372 1373 1346 1374 1375 1376 1350 1377 1378 1379 1354 1380 1381 1382 1358 1383Used by:2475
Symbol 1385 GraphicUsed by:1393 1668 1745 1766
Symbol 1386 GraphicUsed by:1393 1668 1745 1766
Symbol 1387 GraphicUsed by:1393 1668 1745 1766
Symbol 1388 GraphicUsed by:1393 1668 1745 1766
Symbol 1389 GraphicUsed by:1393 1668 1745 1766
Symbol 1390 GraphicUsed by:1393 1668 1745 1766
Symbol 1391 GraphicUsed by:1393 1668 1745 1766
Symbol 1392 GraphicUsed by:1393 1668 1745 1766
Symbol 1393 MovieClip {Survivor_3_12}Uses:1 1168 1170 1385 1271 1174 1386 1276 1178 1387 1281 1181 1388 1285 1185 1389 1189 1390 1294 1193 1391 1197 1392Used by:2475
Symbol 1394 GraphicUsed by:1410
Symbol 1395 GraphicUsed by:1410 1443 1677 1688 1746 1749 1767 1770
Symbol 1396 GraphicUsed by:1410
Symbol 1397 GraphicUsed by:1410 1443 1677 1688 1746 1749 1767 1770
Symbol 1398 GraphicUsed by:1410
Symbol 1399 GraphicUsed by:1410 1443 1677 1688 1746 1749 1767 1770
Symbol 1400 GraphicUsed by:1410
Symbol 1401 GraphicUsed by:1410 1443 1677 1688 1746 1749 1767 1770
Symbol 1402 GraphicUsed by:1410
Symbol 1403 GraphicUsed by:1410 1443 1677 1688 1746 1749 1767 1770
Symbol 1404 GraphicUsed by:1410
Symbol 1405 GraphicUsed by:1410 1443 1677 1688 1746 1749 1767 1770
Symbol 1406 GraphicUsed by:1410
Symbol 1407 GraphicUsed by:1410 1443 1677 1688 1746 1749 1767 1770
Symbol 1408 GraphicUsed by:1410
Symbol 1409 GraphicUsed by:1410 1443 1677 1688 1746 1749 1767 1770
Symbol 1410 MovieClip {Survivor_3_11}Uses:1 1168 1394 1170 1395 1271 1396 1174 1397 1276 1398 1178 1399 1281 1400 1181 1401 1285 1402 1185 1403 1404 1189 1405 1294 1406 1193 1407 1408 1197 1409Used by:2475
Symbol 1411 GraphicUsed by:1427
Symbol 1412 GraphicUsed by:1427 1562 1686 1735 1747 1756 1768 1777
Symbol 1413 GraphicUsed by:1427
Symbol 1414 GraphicUsed by:1427 1562 1686 1735 1747 1756 1768 1777
Symbol 1415 GraphicUsed by:1427 1824 1942
Symbol 1416 GraphicUsed by:1427 1562 1686 1735 1747 1756 1768 1777 1824 1942
Symbol 1417 GraphicUsed by:1427
Symbol 1418 GraphicUsed by:1427 1562 1686 1735 1747 1756 1768 1777
Symbol 1419 GraphicUsed by:1427
Symbol 1420 GraphicUsed by:1427 1562 1686 1735 1747 1756 1768 1777
Symbol 1421 GraphicUsed by:1427
Symbol 1422 GraphicUsed by:1427 1562 1686 1735 1747 1756 1768 1777
Symbol 1423 GraphicUsed by:1427
Symbol 1424 GraphicUsed by:1427 1562 1686 1735 1747 1756 1768 1777
Symbol 1425 GraphicUsed by:1427
Symbol 1426 GraphicUsed by:1427 1562 1686 1735 1747 1756 1768 1777
Symbol 1427 MovieClip {Survivor_3_10}Uses:1 1168 1411 1170 1412 1271 1413 1174 1414 1276 1415 1178 1416 1281 1417 1181 1418 1285 1419 1185 1420 1421 1189 1422 1294 1423 1193 1424 1425 1197 1426Used by:2475
Symbol 1428 GraphicUsed by:1442 1687 1748 1769
Symbol 1429 GraphicUsed by:1442 1687 1748 1769
Symbol 1430 GraphicUsed by:1442 1687 1748 1769
Symbol 1431 GraphicUsed by:1442 1687 1748 1769
Symbol 1432 GraphicUsed by:1442 1687 1748 1769
Symbol 1433 GraphicUsed by:1442 1687 1748 1769
Symbol 1434 GraphicUsed by:1442 1687 1748 1769
Symbol 1435 GraphicUsed by:1442 1687 1748 1769
Symbol 1436 GraphicUsed by:1442 1687 1748 1769
Symbol 1437 GraphicUsed by:1442 1687 1748 1769
Symbol 1438 GraphicUsed by:1442 1687 1748 1769
Symbol 1439 GraphicUsed by:1442 1687 1748 1769
Symbol 1440 GraphicUsed by:1442 1687 1748 1769
Symbol 1441 GraphicUsed by:1442 1687 1748 1769
Symbol 1442 MovieClip {Survivor_3_9}Uses:1428 1225 1227 1429 1430 1230 1431 1432 1233 1433 1434 1235 1435 1436 1238 1437 1438 1241 1439 1244 1440 1246 1441Used by:2475
Symbol 1443 MovieClip {Survivor_3_8}Uses:1 1225 1169 1227 1395 1271 1173 1230 1397 1276 1177 1233 1399 1281 1180 1235 1401 1285 1184 1238 1403 1188 1241 1405 1294 1192 1244 1407 1196 1246 1409Used by:2475
Symbol 1444 GraphicUsed by:1468 1697 1750 1771
Symbol 1445 GraphicUsed by:1468
Symbol 1446 GraphicUsed by:1468 1697 1750 1771
Symbol 1447 GraphicUsed by:1468 1697 1750 1771
Symbol 1448 GraphicUsed by:1468
Symbol 1449 GraphicUsed by:1468 1697 1750 1771
Symbol 1450 GraphicUsed by:1468 1697 1750 1771
Symbol 1451 GraphicUsed by:1468
Symbol 1452 GraphicUsed by:1468 1697 1750 1771
Symbol 1453 GraphicUsed by:1468 1697 1750 1771
Symbol 1454 GraphicUsed by:1468
Symbol 1455 GraphicUsed by:1468 1697 1750 1771
Symbol 1456 GraphicUsed by:1468 1697 1750 1771
Symbol 1457 GraphicUsed by:1468
Symbol 1458 GraphicUsed by:1468 1697 1750 1771
Symbol 1459 GraphicUsed by:1468 1697 1750 1771
Symbol 1460 GraphicUsed by:1468
Symbol 1461 GraphicUsed by:1468 1697 1750 1771
Symbol 1462 GraphicUsed by:1468 1697 1750 1771
Symbol 1463 GraphicUsed by:1468
Symbol 1464 GraphicUsed by:1468 1697 1750 1771
Symbol 1465 GraphicUsed by:1468 1697 1750 1771
Symbol 1466 GraphicUsed by:1468
Symbol 1467 GraphicUsed by:1468 1697 1750 1771
Symbol 1468 MovieClip {Survivor_3_7}Uses:1444 1225 1445 1227 1446 1447 1448 1230 1449 1450 1451 1233 1452 1453 1454 1235 1455 1456 1457 1238 1458 1459 1460 1241 1461 1462 1463 1244 1464 1465 1466 1246 1467Used by:2475
Symbol 1469 GraphicUsed by:1477 1698 1751 1772
Symbol 1470 GraphicUsed by:1477 1698 1751 1772
Symbol 1471 GraphicUsed by:1477 1698 1751 1772
Symbol 1472 GraphicUsed by:1477 1698 1751 1772
Symbol 1473 GraphicUsed by:1477 1698 1751 1772
Symbol 1474 GraphicUsed by:1477 1698 1751 1772
Symbol 1475 GraphicUsed by:1477 1698 1751 1772
Symbol 1476 GraphicUsed by:1477 1698 1751 1772
Symbol 1477 MovieClip {Survivor_3_6}Uses:1 1267 1269 1469 1271 1274 1470 1276 1279 1471 1281 1283 1472 1285 1288 1473 1292 1474 1294 1297 1475 1301 1476Used by:2475
Symbol 1478 GraphicUsed by:1494
Symbol 1479 GraphicUsed by:1494 1545 1707 1726 1752 1755 1773 1776
Symbol 1480 GraphicUsed by:1494
Symbol 1481 GraphicUsed by:1494 1545 1707 1726 1752 1755 1773 1776
Symbol 1482 GraphicUsed by:1494
Symbol 1483 GraphicUsed by:1494 1545 1707 1726 1752 1755 1773 1776
Symbol 1484 GraphicUsed by:1494
Symbol 1485 GraphicUsed by:1494 1545 1707 1726 1752 1755 1773 1776
Symbol 1486 GraphicUsed by:1494
Symbol 1487 GraphicUsed by:1494 1545 1707 1726 1752 1755 1773 1776
Symbol 1488 GraphicUsed by:1494
Symbol 1489 GraphicUsed by:1494 1545 1707 1726 1752 1755 1773 1776
Symbol 1490 GraphicUsed by:1494
Symbol 1491 GraphicUsed by:1494 1545 1707 1726 1752 1755 1773 1776
Symbol 1492 GraphicUsed by:1494
Symbol 1493 GraphicUsed by:1494 1545 1707 1726 1752 1755 1773 1776
Symbol 1494 MovieClip {Survivor_3_5}Uses:1 1267 1478 1269 1479 1271 1480 1274 1481 1276 1482 1279 1483 1281 1484 1283 1485 1285 1486 1288 1487 1488 1292 1489 1294 1490 1297 1491 1492 1301 1493Used by:2475
Symbol 1495 GraphicUsed by:1511
Symbol 1496 GraphicUsed by:1511 1716 1753 1774
Symbol 1497 GraphicUsed by:1511
Symbol 1498 GraphicUsed by:1511 1716 1753 1774
Symbol 1499 GraphicUsed by:1511
Symbol 1500 GraphicUsed by:1511 1716 1753 1774
Symbol 1501 GraphicUsed by:1511
Symbol 1502 GraphicUsed by:1511 1716 1753 1774
Symbol 1503 GraphicUsed by:1511
Symbol 1504 GraphicUsed by:1511 1716 1753 1774
Symbol 1505 GraphicUsed by:1511
Symbol 1506 GraphicUsed by:1511 1716 1753 1774
Symbol 1507 GraphicUsed by:1511
Symbol 1508 GraphicUsed by:1511 1716 1753 1774
Symbol 1509 GraphicUsed by:1511
Symbol 1510 GraphicUsed by:1511 1716 1753 1774
Symbol 1511 MovieClip {Survivor_3_4}Uses:8 1267 1495 1269 1496 1306 1497 1274 1498 1309 1499 1279 1500 940 1501 1283 1502 1314 1503 1288 1504 1317 1505 1292 1506 1320 1507 1297 1508 1323 1509 1301 1510Used by:2475
Symbol 1512 GraphicUsed by:1528 1717 1754 1775
Symbol 1513 GraphicUsed by:1528 1717 1754 1775
Symbol 1514 GraphicUsed by:1528 1717 1754 1775
Symbol 1515 GraphicUsed by:1528 1717 1754 1775
Symbol 1516 GraphicUsed by:1528 1717 1754 1775
Symbol 1517 GraphicUsed by:1528 1717 1754 1775
Symbol 1518 GraphicUsed by:1528 1717 1754 1775
Symbol 1519 GraphicUsed by:1528 1717 1754 1775
Symbol 1520 GraphicUsed by:1528 1717 1754 1775
Symbol 1521 GraphicUsed by:1528 1717 1754 1775
Symbol 1522 GraphicUsed by:1528 1717 1754 1775
Symbol 1523 GraphicUsed by:1528 1717 1754 1775
Symbol 1524 GraphicUsed by:1528 1717 1754 1775
Symbol 1525 GraphicUsed by:1528 1717 1754 1775
Symbol 1526 GraphicUsed by:1528 1717 1754 1775
Symbol 1527 GraphicUsed by:1528 1717 1754 1775
Symbol 1528 MovieClip {Survivor_3_3}Uses:1512 1328 1330 1513 1514 1334 1515 1516 1338 1517 1518 1342 1519 1520 1346 1521 1522 1350 1523 1524 1354 1525 1526 1358 1527Used by:2475
Symbol 1529 GraphicUsed by:1545 1726 1755 1776
Symbol 1530 GraphicUsed by:1545
Symbol 1531 GraphicUsed by:1545 1726 1755 1776
Symbol 1532 GraphicUsed by:1545
Symbol 1533 GraphicUsed by:1545 1726 1755 1776
Symbol 1534 GraphicUsed by:1545
Symbol 1535 GraphicUsed by:1545 1726 1755 1776
Symbol 1536 GraphicUsed by:1545
Symbol 1537 GraphicUsed by:1545 1726 1755 1776
Symbol 1538 GraphicUsed by:1545
Symbol 1539 GraphicUsed by:1545 1726 1755 1776
Symbol 1540 GraphicUsed by:1545
Symbol 1541 GraphicUsed by:1545 1726 1755 1776
Symbol 1542 GraphicUsed by:1545
Symbol 1543 GraphicUsed by:1545 1726 1755 1776
Symbol 1544 GraphicUsed by:1545
Symbol 1545 MovieClip {Survivor_3_2}Uses:1529 1328 1530 1330 1479 1531 1532 1334 1481 1533 1534 1338 1483 1535 1536 1342 1485 1537 1538 1346 1487 1539 1540 1350 1489 1541 1542 1354 1491 1543 1544 1358 1493Used by:2475
Symbol 1546 GraphicUsed by:1562 1735 1756 1777
Symbol 1547 GraphicUsed by:1562
Symbol 1548 GraphicUsed by:1562 1735 1756 1777
Symbol 1549 GraphicUsed by:1562
Symbol 1550 GraphicUsed by:1562 1735 1756 1777
Symbol 1551 GraphicUsed by:1562
Symbol 1552 GraphicUsed by:1562 1735 1756 1777
Symbol 1553 GraphicUsed by:1562
Symbol 1554 GraphicUsed by:1562 1735 1756 1777
Symbol 1555 GraphicUsed by:1562
Symbol 1556 GraphicUsed by:1562 1735 1756 1777
Symbol 1557 GraphicUsed by:1562
Symbol 1558 GraphicUsed by:1562 1735 1756 1777
Symbol 1559 GraphicUsed by:1562
Symbol 1560 GraphicUsed by:1562 1735 1756 1777
Symbol 1561 GraphicUsed by:1562
Symbol 1562 MovieClip {Survivor_3_1}Uses:1546 1328 1547 1330 1412 1548 1549 1334 1414 1550 1551 1338 1416 1552 1553 1342 1418 1554 1555 1346 1420 1556 1557 1350 1422 1558 1559 1354 1424 1560 1561 1358 1426Used by:2475
Symbol 1563 GraphicUsed by:1580 1589 1606 1615 1632 1641 1658 1667 1668 1677 1686 1687 1688 1697 1698 1707 1716 1717 1726 1735
Symbol 1564 GraphicUsed by:1580 1688 1737 1749 1758 1770
Symbol 1565 GraphicUsed by:1580 1589 1668 1677 1686 1737 1738 1745 1746 1747 1758 1759 1766 1767 1768
Symbol 1566 GraphicUsed by:1580 1688 1737 1749 1758 1770
Symbol 1567 GraphicUsed by:1580 1589 1668 1677 1686 1737 1738 1745 1746 1747 1758 1759 1766 1767 1768
Symbol 1568 GraphicUsed by:1580 1688 1737 1749 1758 1770
Symbol 1569 GraphicUsed by:1580 1589 1668 1677 1686 1737 1738 1745 1746 1747 1758 1759 1766 1767 1768
Symbol 1570 GraphicUsed by:1580 1688 1737 1749 1758 1770
Symbol 1571 GraphicUsed by:1580 1589 1668 1677 1686 1737 1738 1745 1746 1747 1758 1759 1766 1767 1768
Symbol 1572 GraphicUsed by:1580 1688 1737 1749 1758 1770
Symbol 1573 GraphicUsed by:1580 1589 1668 1677 1686 1737 1738 1745 1746 1747 1758 1759 1766 1767 1768
Symbol 1574 GraphicUsed by:1580 1688 1737 1749 1758 1770
Symbol 1575 GraphicUsed by:1580 1589 1668 1677 1686 1737 1738 1745 1746 1747 1758 1759 1766 1767 1768
Symbol 1576 GraphicUsed by:1580 1688 1737 1749 1758 1770
Symbol 1577 GraphicUsed by:1580 1589 1668 1677 1686 1737 1738 1745 1746 1747 1758 1759 1766 1767 1768
Symbol 1578 GraphicUsed by:1580 1688 1737 1749 1758 1770
Symbol 1579 GraphicUsed by:1580 1589 1668 1677 1686 1737 1738 1745 1746 1747 1758 1759 1766 1767 1768
Symbol 1580 MovieClip {Survivor_2_20}Uses:1167 1168 1563 1564 1565 1171 1172 1566 1567 1175 1176 1568 1569 1179 930 1570 1571 1182 1183 1572 1573 1186 1187 1574 1575 1190 1191 1576 1577 1194 1195 1578 1579 1198Used by:2475
Symbol 1581 GraphicUsed by:1589 1738 1759
Symbol 1582 GraphicUsed by:1589 1738 1759
Symbol 1583 GraphicUsed by:1589 1738 1759
Symbol 1584 GraphicUsed by:1589 1738 1759
Symbol 1585 GraphicUsed by:1589 1738 1759
Symbol 1586 GraphicUsed by:1589 1738 1759
Symbol 1587 GraphicUsed by:1589 1738 1759
Symbol 1588 GraphicUsed by:1589 1738 1759
Symbol 1589 MovieClip {Survivor_2_19}Uses:1200 1168 1563 1581 1565 1202 1203 1582 1567 1205 1206 1583 1569 1208 1209 1584 1571 1211 1212 1585 1573 1214 1215 1586 1575 1217 1218 1587 1577 1220 1221 1588 1579 1223Used by:2475
Symbol 1590 GraphicUsed by:1606 1739 1760
Symbol 1591 GraphicUsed by:1606 1615 1687 1688 1697 1739 1740 1748 1749 1750 1760 1761 1769 1770 1771
Symbol 1592 GraphicUsed by:1606 1739 1760
Symbol 1593 GraphicUsed by:1606 1615 1687 1688 1697 1739 1740 1748 1749 1750 1760 1761 1769 1770 1771
Symbol 1594 GraphicUsed by:1606 1739 1760
Symbol 1595 GraphicUsed by:1606 1615 1687 1688 1697 1739 1740 1748 1749 1750 1760 1761 1769 1770 1771
Symbol 1596 GraphicUsed by:1606 1739 1760
Symbol 1597 GraphicUsed by:1606 1615 1687 1688 1697 1739 1740 1748 1749 1750 1760 1761 1769 1770 1771
Symbol 1598 GraphicUsed by:1606 1739 1760
Symbol 1599 GraphicUsed by:1606 1615 1687 1688 1697 1739 1740 1748 1749 1750 1760 1761 1769 1770 1771
Symbol 1600 GraphicUsed by:1606 1739 1760
Symbol 1601 GraphicUsed by:1606 1615 1687 1688 1697 1739 1740 1748 1749 1750 1760 1761 1769 1770 1771
Symbol 1602 GraphicUsed by:1606 1739 1760
Symbol 1603 GraphicUsed by:1606 1615 1687 1688 1697 1739 1740 1748 1749 1750 1760 1761 1769 1770 1771
Symbol 1604 GraphicUsed by:1606 1739 1760
Symbol 1605 GraphicUsed by:1606 1615 1687 1688 1697 1739 1740 1748 1749 1750 1760 1761 1769 1770 1771
Symbol 1606 MovieClip {Survivor_2_18}Uses:1200 1225 1563 1590 1591 1228 1203 1592 1593 1231 1206 1594 1595 1179 1209 1596 1597 1236 1212 1598 1599 1239 1215 1600 1601 1242 1218 1602 1603 1194 1221 1604 1605 1247Used by:2475
Symbol 1607 GraphicUsed by:1615 1740 1761
Symbol 1608 GraphicUsed by:1615 1740 1761
Symbol 1609 GraphicUsed by:1615 1740 1761
Symbol 1610 GraphicUsed by:1615 1740 1761
Symbol 1611 GraphicUsed by:1615 1740 1761
Symbol 1612 GraphicUsed by:1615 1740 1761
Symbol 1613 GraphicUsed by:1615 1740 1761
Symbol 1614 GraphicUsed by:1615 1740 1761
Symbol 1615 MovieClip {Survivor_2_17}Uses:1167 1225 1563 1607 1591 1250 1172 1608 1593 1252 1176 1609 1595 1254 930 1610 1597 1256 1183 1611 1599 1258 1187 1612 1601 1260 1191 1613 1603 1262 1195 1614 1605 1264Used by:2475
Symbol 1616 GraphicUsed by:1632 1741 1762
Symbol 1617 GraphicUsed by:1632 1641 1698 1707 1716 1741 1742 1751 1752 1753 1762 1763 1772 1773 1774
Symbol 1618 GraphicUsed by:1632 1741 1762
Symbol 1619 GraphicUsed by:1632 1641 1698 1707 1716 1741 1742 1751 1752 1753 1762 1763 1772 1773 1774
Symbol 1620 GraphicUsed by:1632 1741 1762
Symbol 1621 GraphicUsed by:1632 1641 1698 1707 1716 1741 1742 1751 1752 1753 1762 1763 1772 1773 1774
Symbol 1622 GraphicUsed by:1632 1741 1762
Symbol 1623 GraphicUsed by:1632 1641 1698 1707 1716 1741 1742 1751 1752 1753 1762 1763 1772 1773 1774
Symbol 1624 GraphicUsed by:1632 1741 1762
Symbol 1625 GraphicUsed by:1632 1641 1698 1707 1716 1741 1742 1751 1752 1753 1762 1763 1772 1773 1774
Symbol 1626 GraphicUsed by:1632 1741 1762
Symbol 1627 GraphicUsed by:1632 1641 1698 1707 1716 1741 1742 1751 1752 1753 1762 1763 1772 1773 1774
Symbol 1628 GraphicUsed by:1632 1741 1762
Symbol 1629 GraphicUsed by:1632 1641 1698 1707 1716 1741 1742 1751 1752 1753 1762 1763 1772 1773 1774
Symbol 1630 GraphicUsed by:1632 1741 1762
Symbol 1631 GraphicUsed by:1632 1641 1698 1707 1716 1741 1742 1751 1752 1753 1762 1763 1772 1773 1774
Symbol 1632 MovieClip {Survivor_2_16}Uses:1 1266 1267 1563 1616 1617 1270 1271 1272 1618 1619 1275 1276 1277 1620 1621 1280 1281 939 1622 1623 1284 1285 1286 1624 1625 1289 1290 1626 1627 1293 1294 1295 1628 1629 1298 1299 1630 1631 1302Used by:2475
Symbol 1633 GraphicUsed by:1641 1742 1763
Symbol 1634 GraphicUsed by:1641 1742 1763
Symbol 1635 GraphicUsed by:1641 1742 1763
Symbol 1636 GraphicUsed by:1641 1742 1763
Symbol 1637 GraphicUsed by:1641 1742 1763
Symbol 1638 GraphicUsed by:1641 1742 1763
Symbol 1639 GraphicUsed by:1641 1742 1763
Symbol 1640 GraphicUsed by:1641 1742 1763
Symbol 1641 MovieClip {Survivor_2_15}Uses:1266 8 1267 1563 1633 1617 1305 1272 1306 1634 1619 1308 1277 1309 1635 1621 1311 939 940 1636 1623 1313 1286 1314 1637 1625 1316 1290 1317 1638 1627 1319 1295 1320 1639 1629 1322 1299 1323 1640 1631 1325Used by:2475
Symbol 1642 GraphicUsed by:1658 1743 1764
Symbol 1643 GraphicUsed by:1658 1667 1717 1726 1735 1743 1744 1754 1755 1756 1764 1765 1775 1776 1777
Symbol 1644 GraphicUsed by:1658 1743 1764
Symbol 1645 GraphicUsed by:1658 1667 1717 1726 1735 1743 1744 1754 1755 1756 1764 1765 1775 1776 1777
Symbol 1646 GraphicUsed by:1658 1743 1764
Symbol 1647 GraphicUsed by:1658 1667 1717 1726 1735 1743 1744 1754 1755 1756 1764 1765 1775 1776 1777
Symbol 1648 GraphicUsed by:1658 1743 1764
Symbol 1649 GraphicUsed by:1658 1667 1717 1726 1735 1743 1744 1754 1755 1756 1764 1765 1775 1776 1777
Symbol 1650 GraphicUsed by:1658 1743 1764
Symbol 1651 GraphicUsed by:1658 1667 1717 1726 1735 1743 1744 1754 1755 1756 1764 1765 1775 1776 1777
Symbol 1652 GraphicUsed by:1658 1743 1764
Symbol 1653 GraphicUsed by:1658 1667 1717 1726 1735 1743 1744 1754 1755 1756 1764 1765 1775 1776 1777
Symbol 1654 GraphicUsed by:1658 1743 1764
Symbol 1655 GraphicUsed by:1658 1667 1717 1726 1735 1743 1744 1754 1755 1756 1764 1765 1775 1776 1777
Symbol 1656 GraphicUsed by:1658 1743 1764
Symbol 1657 GraphicUsed by:1658 1667 1717 1726 1735 1743 1744 1754 1755 1756 1764 1765 1775 1776 1777
Symbol 1658 MovieClip {Survivor_2_14}Uses:1327 1328 1563 1642 1643 1331 1332 1644 1645 1335 1336 1646 1647 1339 1340 1648 1649 1343 1344 1650 1651 1347 1348 1652 1653 1351 1352 1654 1655 1355 1356 1656 1657 1359Used by:2475
Symbol 1659 GraphicUsed by:1667 1744 1765
Symbol 1660 GraphicUsed by:1667 1744 1765
Symbol 1661 GraphicUsed by:1667 1744 1765
Symbol 1662 GraphicUsed by:1667 1744 1765
Symbol 1663 GraphicUsed by:1667 1744 1765
Symbol 1664 GraphicUsed by:1667 1744 1765
Symbol 1665 GraphicUsed by:1667 1744 1765
Symbol 1666 GraphicUsed by:1667 1744 1765
Symbol 1667 MovieClip {Survivor_2_13}Uses:1361 1328 1563 1659 1643 1363 1364 1660 1645 1366 1367 1661 1647 1369 15 1662 1649 1371 1372 1663 1651 1374 1375 1664 1653 1377 1378 1665 1655 1380 1381 1666 1657 1383Used by:2475
Symbol 1668 MovieClip {Survivor_2_12}Uses:1 1168 1563 1565 1385 1271 1567 1386 1276 1569 1387 1281 1571 1388 1285 1573 1389 1575 1390 1294 1577 1391 1579 1392Used by:2475
Symbol 1669 GraphicUsed by:1677 1746 1767
Symbol 1670 GraphicUsed by:1677 1746 1767
Symbol 1671 GraphicUsed by:1677 1746 1767
Symbol 1672 GraphicUsed by:1677 1746 1767
Symbol 1673 GraphicUsed by:1677 1746 1767
Symbol 1674 GraphicUsed by:1677 1746 1767
Symbol 1675 GraphicUsed by:1677 1746 1767
Symbol 1676 GraphicUsed by:1677 1746 1767
Symbol 1677 MovieClip {Survivor_2_11}Uses:1 1168 1563 1669 1565 1395 1271 1670 1567 1397 1276 1671 1569 1399 1281 1672 1571 1401 1285 1673 1573 1403 1674 1575 1405 1294 1675 1577 1407 1676 1579 1409Used by:2475
Symbol 1678 GraphicUsed by:1686 1747 1768
Symbol 1679 GraphicUsed by:1686 1747 1768
Symbol 1680 GraphicUsed by:1686 1747 1768
Symbol 1681 GraphicUsed by:1686 1747 1768
Symbol 1682 GraphicUsed by:1686 1747 1768
Symbol 1683 GraphicUsed by:1686 1747 1768
Symbol 1684 GraphicUsed by:1686 1747 1768
Symbol 1685 GraphicUsed by:1686 1747 1768
Symbol 1686 MovieClip {Survivor_2_10}Uses:1 1168 1563 1678 1565 1412 1271 1679 1567 1414 1276 1680 1569 1416 1281 1681 1571 1418 1285 1682 1573 1420 1683 1575 1422 1294 1684 1577 1424 1685 1579 1426Used by:2475
Symbol 1687 MovieClip {Survivor_2_9}Uses:1428 1225 1563 1591 1429 1430 1593 1431 1432 1595 1433 1434 1597 1435 1436 1599 1437 1438 1601 1439 1603 1440 1605 1441Used by:2475
Symbol 1688 MovieClip {Survivor_2_8}Uses:1 1225 1563 1564 1591 1395 1271 1566 1593 1397 1276 1568 1595 1399 1281 1570 1597 1401 1285 1572 1599 1403 1574 1601 1405 1294 1576 1603 1407 1578 1605 1409Used by:2475
Symbol 1689 GraphicUsed by:1697 1750 1771
Symbol 1690 GraphicUsed by:1697 1750 1771
Symbol 1691 GraphicUsed by:1697 1750 1771
Symbol 1692 GraphicUsed by:1697 1750 1771
Symbol 1693 GraphicUsed by:1697 1750 1771
Symbol 1694 GraphicUsed by:1697 1750 1771
Symbol 1695 GraphicUsed by:1697 1750 1771
Symbol 1696 GraphicUsed by:1697 1750 1771
Symbol 1697 MovieClip {Survivor_2_7}Uses:1444 1225 1563 1689 1591 1446 1447 1690 1593 1449 1450 1691 1595 1452 1453 1692 1597 1455 1456 1693 1599 1458 1459 1694 1601 1461 1462 1695 1603 1464 1465 1696 1605 1467Used by:2475
Symbol 1698 MovieClip {Survivor_2_6}Uses:1 1267 1563 1617 1469 1271 1619 1470 1276 1621 1471 1281 1623 1472 1285 1625 1473 1627 1474 1294 1629 1475 1631 1476Used by:2475
Symbol 1699 GraphicUsed by:1707 1752 1773
Symbol 1700 GraphicUsed by:1707 1752 1773
Symbol 1701 GraphicUsed by:1707 1752 1773
Symbol 1702 GraphicUsed by:1707 1752 1773
Symbol 1703 GraphicUsed by:1707 1752 1773
Symbol 1704 GraphicUsed by:1707 1752 1773
Symbol 1705 GraphicUsed by:1707 1752 1773
Symbol 1706 GraphicUsed by:1707 1752 1773
Symbol 1707 MovieClip {Survivor_2_5}Uses:1 1267 1563 1699 1617 1479 1271 1700 1619 1481 1276 1701 1621 1483 1281 1702 1623 1485 1285 1703 1625 1487 1704 1627 1489 1294 1705 1629 1491 1706 1631 1493Used by:2475
Symbol 1708 GraphicUsed by:1716 1753 1774
Symbol 1709 GraphicUsed by:1716 1753 1774
Symbol 1710 GraphicUsed by:1716 1753 1774
Symbol 1711 GraphicUsed by:1716 1753 1774
Symbol 1712 GraphicUsed by:1716 1753 1774
Symbol 1713 GraphicUsed by:1716 1753 1774
Symbol 1714 GraphicUsed by:1716 1753 1774
Symbol 1715 GraphicUsed by:1716 1753 1774
Symbol 1716 MovieClip {Survivor_2_4}Uses:8 1267 1563 1708 1617 1496 1306 1709 1619 1498 1309 1710 1621 1500 940 1711 1623 1502 1314 1712 1625 1504 1317 1713 1627 1506 1320 1714 1629 1508 1323 1715 1631 1510Used by:2475
Symbol 1717 MovieClip {Survivor_2_3}Uses:1512 1328 1563 1643 1513 1514 1645 1515 1516 1647 1517 1518 1649 1519 1520 1651 1521 1522 1653 1523 1524 1655 1525 1526 1657 1527Used by:2475
Symbol 1718 GraphicUsed by:1726 1755 1776
Symbol 1719 GraphicUsed by:1726 1755 1776
Symbol 1720 GraphicUsed by:1726 1755 1776
Symbol 1721 GraphicUsed by:1726 1755 1776
Symbol 1722 GraphicUsed by:1726 1755 1776
Symbol 1723 GraphicUsed by:1726 1755 1776
Symbol 1724 GraphicUsed by:1726 1755 1776
Symbol 1725 GraphicUsed by:1726 1755 1776
Symbol 1726 MovieClip {Survivor_2_2}Uses:1529 1328 1563 1718 1643 1479 1531 1719 1645 1481 1533 1720 1647 1483 1535 1721 1649 1485 1537 1722 1651 1487 1539 1723 1653 1489 1541 1724 1655 1491 1543 1725 1657 1493Used by:2475
Symbol 1727 GraphicUsed by:1735 1756 1777
Symbol 1728 GraphicUsed by:1735 1756 1777
Symbol 1729 GraphicUsed by:1735 1756 1777
Symbol 1730 GraphicUsed by:1735 1756 1777
Symbol 1731 GraphicUsed by:1735 1756 1777
Symbol 1732 GraphicUsed by:1735 1756 1777
Symbol 1733 GraphicUsed by:1735 1756 1777
Symbol 1734 GraphicUsed by:1735 1756 1777
Symbol 1735 MovieClip {Survivor_2_1}Uses:1546 1328 1563 1727 1643 1412 1548 1728 1645 1414 1550 1729 1647 1416 1552 1730 1649 1418 1554 1731 1651 1420 1556 1732 1653 1422 1558 1733 1655 1424 1560 1734 1657 1426Used by:2475
Symbol 1736 GraphicUsed by:1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1825 1942 1944
Symbol 1737 MovieClip {Survivor_1_20}Uses:1167 1168 1736 1564 1565 1171 1172 1566 1567 1175 1176 1568 1569 1179 930 1570 1571 1182 1183 1572 1573 1186 1187 1574 1575 1190 1191 1576 1577 1194 1195 1578 1579 1198Used by:2475
Symbol 1738 MovieClip {Survivor_1_19}Uses:1200 1168 1736 1581 1565 1202 1203 1582 1567 1205 1206 1583 1569 1208 1209 1584 1571 1211 1212 1585 1573 1214 1215 1586 1575 1217 1218 1587 1577 1220 1221 1588 1579 1223Used by:2475
Symbol 1739 MovieClip {Survivor_1_18}Uses:1200 1225 1736 1590 1591 1228 1203 1592 1593 1231 1206 1594 1595 1179 1209 1596 1597 1236 1212 1598 1599 1239 1215 1600 1601 1242 1218 1602 1603 1194 1221 1604 1605 1247Used by:2475
Symbol 1740 MovieClip {Survivor_1_17}Uses:1167 1225 1736 1607 1591 1250 1172 1608 1593 1252 1176 1609 1595 1254 930 1610 1597 1256 1183 1611 1599 1258 1187 1612 1601 1260 1191 1613 1603 1262 1195 1614 1605 1264Used by:2475
Symbol 1741 MovieClip {Survivor_1_16}Uses:1 1266 1267 1736 1616 1617 1270 1271 1272 1618 1619 1275 1276 1277 1620 1621 1280 1281 939 1622 1623 1284 1285 1286 1624 1625 1289 1290 1626 1627 1293 1294 1295 1628 1629 1298 1299 1630 1631 1302Used by:2475
Symbol 1742 MovieClip {Survivor_1_15}Uses:1266 8 1267 1736 1633 1617 1305 1272 1306 1634 1619 1308 1277 1309 1635 1621 1311 939 940 1636 1623 1313 1286 1314 1637 1625 1316 1290 1317 1638 1627 1319 1295 1320 1639 1629 1322 1299 1323 1640 1631 1325Used by:2475
Symbol 1743 MovieClip {Survivor_1_14}Uses:1327 1328 1736 1642 1643 1331 1332 1644 1645 1335 1336 1646 1647 1339 1340 1648 1649 1343 1344 1650 1651 1347 1348 1652 1653 1351 1352 1654 1655 1355 1356 1656 1657 1359Used by:2475
Symbol 1744 MovieClip {Survivor_1_13}Uses:1361 1328 1736 1659 1643 1363 1364 1660 1645 1366 1367 1661 1647 1369 15 1662 1649 1371 1372 1663 1651 1374 1375 1664 1653 1377 1378 1665 1655 1380 1381 1666 1657 1383Used by:2475
Symbol 1745 MovieClip {Survivor_1_12}Uses:1 1168 1736 1565 1385 1271 1567 1386 1276 1569 1387 1281 1571 1388 1285 1573 1389 1575 1390 1294 1577 1391 1579 1392Used by:2475
Symbol 1746 MovieClip {Survivor_1_11}Uses:1 1168 1736 1669 1565 1395 1271 1670 1567 1397 1276 1671 1569 1399 1281 1672 1571 1401 1285 1673 1573 1403 1674 1575 1405 1294 1675 1577 1407 1676 1579 1409Used by:2475
Symbol 1747 MovieClip {Survivor_1_10}Uses:1 1168 1736 1678 1565 1412 1271 1679 1567 1414 1276 1680 1569 1416 1281 1681 1571 1418 1285 1682 1573 1420 1683 1575 1422 1294 1684 1577 1424 1685 1579 1426Used by:2475
Symbol 1748 MovieClip {Survivor_1_9}Uses:1428 1225 1736 1591 1429 1430 1593 1431 1432 1595 1433 1434 1597 1435 1436 1599 1437 1438 1601 1439 1603 1440 1605 1441Used by:2475
Symbol 1749 MovieClip {Survivor_1_8}Uses:1 1225 1736 1564 1591 1395 1271 1566 1593 1397 1276 1568 1595 1399 1281 1570 1597 1401 1285 1572 1599 1403 1574 1601 1405 1294 1576 1603 1407 1578 1605 1409Used by:2475
Symbol 1750 MovieClip {Survivor_1_7}Uses:1444 1225 1736 1689 1591 1446 1447 1690 1593 1449 1450 1691 1595 1452 1453 1692 1597 1455 1456 1693 1599 1458 1459 1694 1601 1461 1462 1695 1603 1464 1465 1696 1605 1467Used by:2475
Symbol 1751 MovieClip {Survivor_1_6}Uses:1 1267 1736 1617 1469 1271 1619 1470 1276 1621 1471 1281 1623 1472 1285 1625 1473 1627 1474 1294 1629 1475 1631 1476Used by:2475
Symbol 1752 MovieClip {Survivor_1_5}Uses:1 1267 1736 1699 1617 1479 1271 1700 1619 1481 1276 1701 1621 1483 1281 1702 1623 1485 1285 1703 1625 1487 1704 1627 1489 1294 1705 1629 1491 1706 1631 1493Used by:2475
Symbol 1753 MovieClip {Survivor_1_4}Uses:8 1267 1736 1708 1617 1496 1306 1709 1619 1498 1309 1710 1621 1500 940 1711 1623 1502 1314 1712 1625 1504 1317 1713 1627 1506 1320 1714 1629 1508 1323 1715 1631 1510Used by:2475
Symbol 1754 MovieClip {Survivor_1_3}Uses:1512 1328 1736 1643 1513 1514 1645 1515 1516 1647 1517 1518 1649 1519 1520 1651 1521 1522 1653 1523 1524 1655 1525 1526 1657 1527Used by:2475
Symbol 1755 MovieClip {Survivor_1_2}Uses:1529 1328 1736 1718 1643 1479 1531 1719 1645 1481 1533 1720 1647 1483 1535 1721 1649 1485 1537 1722 1651 1487 1539 1723 1653 1489 1541 1724 1655 1491 1543 1725 1657 1493Used by:2475
Symbol 1756 MovieClip {Survivor_1_1}Uses:1546 1328 1736 1727 1643 1412 1548 1728 1645 1414 1550 1729 1647 1416 1552 1730 1649 1418 1554 1731 1651 1420 1556 1732 1653 1422 1558 1733 1655 1424 1560 1734 1657 1426Used by:2475
Symbol 1757 GraphicUsed by:1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777
Symbol 1758 MovieClip {Survivor_0_20}Uses:1167 1168 1757 1564 1565 1171 1172 1566 1567 1175 1176 1568 1569 1179 930 1570 1571 1182 1183 1572 1573 1186 1187 1574 1575 1190 1191 1576 1577 1194 1195 1578 1579 1198Used by:2475
Symbol 1759 MovieClip {Survivor_0_19}Uses:1200 1168 1757 1581 1565 1202 1203 1582 1567 1205 1206 1583 1569 1208 1209 1584 1571 1211 1212 1585 1573 1214 1215 1586 1575 1217 1218 1587 1577 1220 1221 1588 1579 1223Used by:2475
Symbol 1760 MovieClip {Survivor_0_18}Uses:1200 1225 1757 1590 1591 1228 1203 1592 1593 1231 1206 1594 1595 1179 1209 1596 1597 1236 1212 1598 1599 1239 1215 1600 1601 1242 1218 1602 1603 1194 1221 1604 1605 1247Used by:2475
Symbol 1761 MovieClip {Survivor_0_17}Uses:1167 1225 1757 1607 1591 1250 1172 1608 1593 1252 1176 1609 1595 1254 930 1610 1597 1256 1183 1611 1599 1258 1187 1612 1601 1260 1191 1613 1603 1262 1195 1614 1605 1264Used by:2475
Symbol 1762 MovieClip {Survivor_0_16}Uses:1 1266 1267 1757 1616 1617 1270 1271 1272 1618 1619 1275 1276 1277 1620 1621 1280 1281 939 1622 1623 1284 1285 1286 1624 1625 1289 1290 1626 1627 1293 1294 1295 1628 1629 1298 1299 1630 1631 1302Used by:2475
Symbol 1763 MovieClip {Survivor_0_15}Uses:1266 8 1267 1757 1633 1617 1305 1272 1306 1634 1619 1308 1277 1309 1635 1621 1311 939 940 1636 1623 1313 1286 1314 1637 1625 1316 1290 1317 1638 1627 1319 1295 1320 1639 1629 1322 1299 1323 1640 1631 1325Used by:2475
Symbol 1764 MovieClip {Survivor_0_14}Uses:1327 1328 1757 1642 1643 1331 1332 1644 1645 1335 1336 1646 1647 1339 1340 1648 1649 1343 1344 1650 1651 1347 1348 1652 1653 1351 1352 1654 1655 1355 1356 1656 1657 1359Used by:2475
Symbol 1765 MovieClip {Survivor_0_13}Uses:1361 1328 1757 1659 1643 1363 1364 1660 1645 1366 1367 1661 1647 1369 15 1662 1649 1371 1372 1663 1651 1374 1375 1664 1653 1377 1378 1665 1655 1380 1381 1666 1657 1383Used by:2475
Symbol 1766 MovieClip {Survivor_0_12}Uses:1 1168 1757 1565 1385 1271 1567 1386 1276 1569 1387 1281 1571 1388 1285 1573 1389 1575 1390 1294 1577 1391 1579 1392Used by:2475
Symbol 1767 MovieClip {Survivor_0_11}Uses:1 1168 1757 1669 1565 1395 1271 1670 1567 1397 1276 1671 1569 1399 1281 1672 1571 1401 1285 1673 1573 1403 1674 1575 1405 1294 1675 1577 1407 1676 1579 1409Used by:2475
Symbol 1768 MovieClip {Survivor_0_10}Uses:1 1168 1757 1678 1565 1412 1271 1679 1567 1414 1276 1680 1569 1416 1281 1681 1571 1418 1285 1682 1573 1420 1683 1575 1422 1294 1684 1577 1424 1685 1579 1426Used by:2475
Symbol 1769 MovieClip {Survivor_0_9}Uses:1428 1225 1757 1591 1429 1430 1593 1431 1432 1595 1433 1434 1597 1435 1436 1599 1437 1438 1601 1439 1603 1440 1605 1441Used by:2475
Symbol 1770 MovieClip {Survivor_0_8}Uses:1 1225 1757 1564 1591 1395 1271 1566 1593 1397 1276 1568 1595 1399 1281 1570 1597 1401 1285 1572 1599 1403 1574 1601 1405 1294 1576 1603 1407 1578 1605 1409Used by:2475
Symbol 1771 MovieClip {Survivor_0_7}Uses:1444 1225 1757 1689 1591 1446 1447 1690 1593 1449 1450 1691 1595 1452 1453 1692 1597 1455 1456 1693 1599 1458 1459 1694 1601 1461 1462 1695 1603 1464 1465 1696 1605 1467Used by:2475
Symbol 1772 MovieClip {Survivor_0_6}Uses:1 1267 1757 1617 1469 1271 1619 1470 1276 1621 1471 1281 1623 1472 1285 1625 1473 1627 1474 1294 1629 1475 1631 1476Used by:2475
Symbol 1773 MovieClip {Survivor_0_5}Uses:1 1267 1757 1699 1617 1479 1271 1700 1619 1481 1276 1701 1621 1483 1281 1702 1623 1485 1285 1703 1625 1487 1704 1627 1489 1294 1705 1629 1491 1706 1631 1493Used by:2475
Symbol 1774 MovieClip {Survivor_0_4}Uses:8 1267 1757 1708 1617 1496 1306 1709 1619 1498 1309 1710 1621 1500 940 1711 1623 1502 1314 1712 1625 1504 1317 1713 1627 1506 1320 1714 1629 1508 1323 1715 1631 1510Used by:2475
Symbol 1775 MovieClip {Survivor_0_3}Uses:1512 1328 1757 1643 1513 1514 1645 1515 1516 1647 1517 1518 1649 1519 1520 1651 1521 1522 1653 1523 1524 1655 1525 1526 1657 1527Used by:2475
Symbol 1776 MovieClip {Survivor_0_2}Uses:1529 1328 1757 1718 1643 1479 1531 1719 1645 1481 1533 1720 1647 1483 1535 1721 1649 1485 1537 1722 1651 1487 1539 1723 1653 1489 1541 1724 1655 1491 1543 1725 1657 1493Used by:2475
Symbol 1777 MovieClip {Survivor_0_1}Uses:1546 1328 1757 1727 1643 1412 1548 1728 1645 1414 1550 1729 1647 1416 1552 1730 1649 1418 1554 1731 1651 1420 1556 1732 1653 1422 1558 1733 1655 1424 1560 1734 1657 1426Used by:2475
Symbol 1778 GraphicUsed by:1840 1841 1874 1877 1893 1899 2096 2211 2259 2528
Symbol 1779 FontUsed by:1780 1820 1821 1822 1828 1829 1830 1867 1868 1869 1870 1885 1886 1887 1888 1889 1890 1895 1896 1982 2099 2121 2138 2139 2140 2142 2146 2193 2194 2195 2196 2216 2230 2231 2232 2233 2234 2236 2242 2258 2261 2299 2308 2313 2314 2315 2316 2317 2322 2323 2324 2327 2328 2329 2330 2333 2334 2335 2336 2339 2340 2341 2342 2343 2346 2347 2348 2349 2352 2373 2374 2375 2376 2409 2413 2418 2424 2427 2431 2435 2437 2438 2439 2442 2445 2446
Symbol 1780 EditableTextUses:1779 2241Used by:1841
Symbol 1781 GraphicUsed by:1784 1789
Symbol 1782 GraphicUsed by:1783
Symbol 1783 MovieClipUses:1782Used by:1784 1792 1843 1851 1858 1863 1880 1998 2003 2007 2011 2244 2254
Symbol 1784 MovieClipUses:1781 1783Used by:1790 2215
Symbol 1785 GraphicUsed by:1786
Symbol 1786 MovieClipUses:1785Used by:1789 1793 1817 1844 1852 1860 1864 1882 2000 2004 2008 2012 2246 2251 2255 2387 2391 2395 2399
Symbol 1787 GraphicUsed by:1788
Symbol 1788 MovieClipUses:1787Used by:1789 1793 1844 1852 1860 1864 1882 2000 2004 2008 2012 2246 2255
Symbol 1789 MovieClipUses:1781 1786 1788Used by:1790 2215
Symbol 1790 MovieClip {ButtonMinus}Uses:1784 1789Used by:1841 1872 1891 1899
Symbol 1791 GraphicUsed by:1792 1793
Symbol 1792 MovieClipUses:1791 1783Used by:1794 2214
Symbol 1793 MovieClipUses:1791 1786 1788Used by:1794 2214
Symbol 1794 MovieClip {ButtonPlus}Uses:1792 1793Used by:1841 1872 1891 1899
Symbol 1795 GraphicUsed by:1796
Symbol 1796 MovieClipUses:1795Used by:1841 1872 1891 1899 2440
Symbol 1797 FontUsed by:1798 1819 1823 1849 1866 1875 1878 1884 1894 1897 2381
Symbol 1798 EditableTextUses:1797 2156Used by:1841
Symbol 1799 GraphicUsed by:1810
Symbol 1800 GraphicUsed by:1801
Symbol 1801 MovieClipUses:1800Used by:1810
Symbol 1802 GraphicUsed by:1810
Symbol 1803 GraphicUsed by:1804
Symbol 1804 MovieClipUses:1803Used by:1810 1848 2219
Symbol 1805 FontUsed by:1806 1847 2074 2100 2102 2104 2106 2122 2124 2126 2130 2132 2143 2145 2147 2176 2178 2180 2182 2184 2187 2189 2192 2218 2221 2222 2223 2224 2225 2226 2228 2238 2300 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2369 2370 2371 2377 2404 2405 2406 2407 2408 2411 2416 2419 2421 2422 2423 2430 2433 2441 2443 2447 2449 2450 2451 2452 2453 2454 2455 2466
Symbol 1806 TextUses:1805Used by:1810
Symbol 1807 GraphicUsed by:1808
Symbol 1808 MovieClipUses:1807Used by:1810 1848 2219
Symbol 1809 GraphicUsed by:1810 1848 2079 2128 2134 2136 2219
Symbol 1810 MovieClip {ui.menu.SetChargesClip}Uses:1799 1801 1802 1804 1806 1808 1809Used by:1841
Symbol 1811 GraphicUsed by:1814 1817
Symbol 1812 GraphicUsed by:1813
Symbol 1813 MovieClipUses:1812Used by:1814
Symbol 1814 MovieClipUses:1811 1813Used by:1818
Symbol 1815 GraphicUsed by:1816
Symbol 1816 MovieClipUses:1815Used by:1817
Symbol 1817 MovieClipUses:1811 1786 1816Used by:1818
Symbol 1818 MovieClip {ButtonAbandon}Uses:1814 1817Used by:1841 1874 1877 1893
Symbol 1819 TextUses:1797Used by:1841
Symbol 1820 EditableTextUses:1779 2241Used by:1841
Symbol 1821 EditableTextUses:1779 2241Used by:1841
Symbol 1822 EditableTextUses:1779 2241Used by:1841
Symbol 1823 EditableTextUses:1797 2156Used by:1841
Symbol 1824 MovieClipUses:1276 1168 1415 1178 1416Used by:1841 1872 1891 2440
Symbol 1825 MovieClipUses:1736Used by:1841 1891 1899 2440
Symbol 1826 GraphicUsed by:1827 1942 1945
Symbol 1827 MovieClipUses:1826Used by:1841 1872 1891 2440
Symbol 1828 EditableTextUses:1779 2241Used by:1841
Symbol 1829 EditableTextUses:1779 2241Used by:1841
Symbol 1830 EditableTextUses:1779 2241Used by:1841
Symbol 1831 GraphicUsed by:1832
Symbol 1832 MovieClipUses:1831Used by:1841 1872 1874 1877 1891 1893 1899 2403
Symbol 1833 GraphicUsed by:1841 1874 1877 1893 1899 2403
Symbol 1834 GraphicUsed by:1841
Symbol 1835 GraphicUsed by:1836
Symbol 1836 MovieClipUses:1835Used by:1838
Symbol 1837 GraphicUsed by:1838
Symbol 1838 MovieClipUses:1836 1837Used by:1840
Symbol 1839 GraphicUsed by:1840
Symbol 1840 MovieClipUses:1838 1839 1778Used by:1841 1874 1877 1893 1899 2403
Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip}Uses:1780 1790 1794 1796 1798 1810 1818 1819 1820 1821 1822 1823 1824 1825 1827 1828 1829 1830 1832 1833 1834 1840 1778Used by:2475
Symbol 1842 GraphicUsed by:1843 1844
Symbol 1843 MovieClipUses:1842 1783Used by:1845
Symbol 1844 MovieClipUses:1842 1786 1788Used by:1845
Symbol 1845 MovieClip {ButtonFireHold}Uses:1843 1844Used by:1874
Symbol 1846 GraphicUsed by:1848
Symbol 1847 TextUses:1805Used by:1848
Symbol 1848 MovieClip {ui.menu.AccuracyClip}Uses:1846 1804 1847 1808 1809Used by:1874
Symbol 1849 TextUses:1797Used by:1874
Symbol 1850 GraphicUsed by:1851 1852 1855
Symbol 1851 MovieClipUses:1850 1783Used by:1856
Symbol 1852 MovieClipUses:1850 1786 1788Used by:1856
Symbol 1853 GraphicUsed by:1854
Symbol 1854 MovieClipUses:1853Used by:1855 2250 2251 2383 2390 2394 2398
Symbol 1855 MovieClipUses:1850 1854Used by:1856
Symbol 1856 MovieClip {ButtonUpgrade}Uses:1851 1852 1855Used by:1874 2260
Symbol 1857 GraphicUsed by:1858
Symbol 1858 MovieClipUses:1857 1783Used by:1861
Symbol 1859 GraphicUsed by:1860
Symbol 1860 MovieClipUses:1859 1786 1788Used by:1861
Symbol 1861 MovieClip {ButtonFlare}Uses:1858 1860Used by:1874
Symbol 1862 GraphicUsed by:1863 1864
Symbol 1863 MovieClipUses:1862 1783Used by:1865
Symbol 1864 MovieClipUses:1862 1786 1788Used by:1865
Symbol 1865 MovieClip {ButtonFireAtWill}Uses:1863 1864Used by:1874
Symbol 1866 EditableTextUses:1797 2156Used by:1872
Symbol 1867 EditableTextUses:1779 2241Used by:1872
Symbol 1868 EditableTextUses:1779 2241Used by:1872
Symbol 1869 EditableTextUses:1779 2241Used by:1872
Symbol 1870 EditableTextUses:1779 2241Used by:1872
Symbol 1871 GraphicUsed by:1872 1891 2014 2440
Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip}Uses:1824 1866 1827 1867 1796 1868 1869 1870 1790 1794 1832 1871Used by:1874
Symbol 1873 GraphicUsed by:1874
Symbol 1874 MovieClip {ui.menu.SniperMenuClip}Uses:1845 1848 1849 1856 1861 1865 1818 1832 1833 1872 1873 1840 1778Used by:2475
Symbol 1875 TextUses:1797Used by:1877
Symbol 1876 GraphicUsed by:1877
Symbol 1877 MovieClip {ui.menu.PlanMenuClip}Uses:1875 1818 1832 1833 1876 1840 1778Used by:2475
Symbol 1878 TextUses:1797Used by:1893
Symbol 1879 GraphicUsed by:1880
Symbol 1880 MovieClipUses:1879 1783Used by:1883
Symbol 1881 GraphicUsed by:1882
Symbol 1882 MovieClipUses:1881 1786 1788Used by:1883
Symbol 1883 MovieClip {ButtonJumpToDepot}Uses:1880 1882Used by:1893
Symbol 1884 EditableTextUses:1797 2156Used by:1891
Symbol 1885 EditableTextUses:1779 2241Used by:1891
Symbol 1886 EditableTextUses:1779 2241Used by:1891
Symbol 1887 EditableTextUses:1779 2241Used by:1891
Symbol 1888 EditableTextUses:1779 2241Used by:1891
Symbol 1889 EditableTextUses:1779 2241Used by:1891
Symbol 1890 EditableTextUses:1779 2241Used by:1891
Symbol 1891 MovieClip {ui.menu.ResourceMenuClip}Uses:1824 1884 1825 1827 1885 1796 1886 1887 1888 1889 1890 1790 1794 1832 1871Used by:1893
Symbol 1892 GraphicUsed by:1893
Symbol 1893 MovieClip {ui.menu.DepotMenuClip}Uses:1878 1818 1832 1833 1883 1891 1892 1840 1778Used by:2475
Symbol 1894 TextUses:1797Used by:1899
Symbol 1895 EditableTextUses:1779 2241Used by:1899
Symbol 1896 EditableTextUses:1779 2241Used by:1899
Symbol 1897 EditableTextUses:1797 2156Used by:1899
Symbol 1898 GraphicUsed by:1899
Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip}Uses:1790 1894 1825 1895 1896 1796 1794 1832 1833 1897 1898 1840 1778Used by:2475
Symbol 1900 BitmapUsed by:1901
Symbol 1901 GraphicUses:1900Used by:1902
Symbol 1902 MovieClipUses:1901Used by:1935
Symbol 1903 BitmapUsed by:1904
Symbol 1904 GraphicUses:1903Used by:1905
Symbol 1905 MovieClipUses:1904Used by:1935 1996
Symbol 1906 BitmapUsed by:1907
Symbol 1907 GraphicUses:1906Used by:1908
Symbol 1908 MovieClipUses:1907Used by:1935 1949
Symbol 1909 BitmapUsed by:1910
Symbol 1910 GraphicUses:1909Used by:1911
Symbol 1911 MovieClipUses:1910Used by:1935 1947 1996
Symbol 1912 BitmapUsed by:1913
Symbol 1913 GraphicUses:1912Used by:1914
Symbol 1914 MovieClipUses:1913Used by:1935
Symbol 1915 BitmapUsed by:1916
Symbol 1916 GraphicUses:1915Used by:1917
Symbol 1917 MovieClipUses:1916Used by:1935
Symbol 1918 BitmapUsed by:1919
Symbol 1919 GraphicUses:1918Used by:1920
Symbol 1920 MovieClipUses:1919Used by:1935
Symbol 1921 BitmapUsed by:1922
Symbol 1922 GraphicUses:1921Used by:1923
Symbol 1923 MovieClipUses:1922Used by:1935
Symbol 1924 BitmapUsed by:1925
Symbol 1925 GraphicUses:1924Used by:1926
Symbol 1926 MovieClipUses:1925Used by:1935
Symbol 1927 BitmapUsed by:1928
Symbol 1928 GraphicUses:1927Used by:1929
Symbol 1929 MovieClip {zomlog_fla.DepotClip_223}Uses:1928Used by:1935 1948 1996
Symbol 1930 BitmapUsed by:1931
Symbol 1931 GraphicUses:1930Used by:1935
Symbol 1932 BitmapUsed by:1933
Symbol 1933 GraphicUses:1932Used by:1934
Symbol 1934 MovieClipUses:1933Used by:1935 1946 1996
Symbol 1935 MovieClip {towerclip}Uses:1902 1905 1908 1911 122 1914 1917 1920 1923 1926 1929 1931 1934Used by:2475
Symbol 1936 BitmapUsed by:1937
Symbol 1937 GraphicUses:1936Used by:1938
Symbol 1938 MovieClip {resourcetiles}Uses:1937Used by:2475
Symbol 1939 Bitmap {background.png}Used by:1940
Symbol 1940 MovieClipUses:1939Used by:1941
Symbol 1941 MovieClip {backgroundtiles}Uses:1940Used by:2475
Symbol 1942 MovieClip {TowerNeedClip}Uses:1826 1736 1276 1168 1415 1178 1416Used by:2475
Symbol 1943 MovieClip {pedia_survivors}Uses:1378 1328 1379 1354 1380Used by:1981
Symbol 1944 MovieClip {pedia_boards}Uses:1736Used by:1981
Symbol 1945 MovieClip {pedia_ammo}Uses:1826Used by:1981
Symbol 1946 MovieClip {pedia_workshop}Uses:1934Used by:1981
Symbol 1947 MovieClip {pedia_sniper}Uses:1019 955 943 1015 986 998 1911Used by:1981
Symbol 1948 MovieClip {pedia_depot}Uses:1929Used by:1981
Symbol 1949 MovieClip {pedia_barricade}Uses:1908Used by:1981
Symbol 1950 MovieClip {pedia_zombies}Uses:282 149 180 359 286 315 152Used by:1981
Symbol 1951 GraphicUsed by:1952 2037
Symbol 1952 MovieClip {pedia_charges}Uses:1951Used by:1981
Symbol 1953 BitmapUsed by:1955 2038 2041
Symbol 1954 BitmapUsed by:1955 2060
Symbol 1955 GraphicUses:1953 1954Used by:1956
Symbol 1956 MovieClip {pedia_rubble}Uses:1955Used by:1981
Symbol 1957 BitmapUsed by:1958
Symbol 1958 GraphicUses:1957Used by:1959
Symbol 1959 MovieClip {pedia_police_station}Uses:1958Used by:1981
Symbol 1960 BitmapUsed by:1961
Symbol 1961 GraphicUses:1960Used by:1962
Symbol 1962 MovieClip {pedia_office}Uses:1961Used by:1981
Symbol 1963 BitmapUsed by:1964
Symbol 1964 GraphicUses:1963Used by:1965
Symbol 1965 MovieClip {pedia_mall}Uses:1964Used by:1981
Symbol 1966 BitmapUsed by:1967
Symbol 1967 GraphicUses:1966Used by:1968
Symbol 1968 MovieClip {pedia_house}Uses:1967Used by:1981
Symbol 1969 BitmapUsed by:1970
Symbol 1970 GraphicUses:1969Used by:1971
Symbol 1971 MovieClip {pedia_hospital}Uses:1970Used by:1981
Symbol 1972 BitmapUsed by:1973
Symbol 1973 GraphicUses:1972Used by:1974
Symbol 1974 MovieClip {pedia_hardware_store}Uses:1973Used by:1981
Symbol 1975 BitmapUsed by:1976
Symbol 1976 GraphicUses:1975Used by:1977
Symbol 1977 MovieClip {pedia_church}Uses:1976Used by:1981
Symbol 1978 BitmapUsed by:1979
Symbol 1979 GraphicUses:1978Used by:1980
Symbol 1980 MovieClip {pedia_apartment}Uses:1979Used by:1981
Symbol 1981 MovieClip {zomlog_fla.PediaClip_300}Uses:1943 1944 1945 1946 1947 1948 1949 1950 1952 1956 1959 1962 1965 1968 1971 1974 1977 1980Used by:2475
Symbol 1982 EditableTextUses:1779 2241Used by:1983
Symbol 1983 MovieClip {ui.FailClip}Uses:1982Used by:2475
Symbol 1984 GraphicUsed by:1993
Symbol 1985 GraphicUsed by:1993
Symbol 1986 GraphicUsed by:1993
Symbol 1987 GraphicUsed by:1993
Symbol 1988 GraphicUsed by:1993
Symbol 1989 GraphicUsed by:1993
Symbol 1990 GraphicUsed by:1993
Symbol 1991 GraphicUsed by:1993
Symbol 1992 GraphicUsed by:1993
Symbol 1993 MovieClip {SelectClip}Uses:1984 1985 1986 1987 1988 1989 1990 1991 1992Used by:2475
Symbol 1994 GraphicUsed by:1996
Symbol 1995 GraphicUsed by:1996
Symbol 1996 MovieClip {FloaterClip}Uses:1905 1911 122 1929 1934 1994 1995Used by:2475
Symbol 1997 GraphicUsed by:1998
Symbol 1998 MovieClipUses:1997 1783Used by:2001
Symbol 1999 GraphicUsed by:2000
Symbol 2000 MovieClipUses:1999 1786 1788Used by:2001
Symbol 2001 MovieClip {ButtonRangeOn}Uses:1998 2000Used by:2014
Symbol 2002 GraphicUsed by:2003 2004
Symbol 2003 MovieClipUses:2002 1783Used by:2005
Symbol 2004 MovieClipUses:2002 1786 1788Used by:2005
Symbol 2005 MovieClip {ButtonSystem}Uses:2003 2004Used by:2014
Symbol 2006 GraphicUsed by:2007 2008
Symbol 2007 MovieClipUses:2006 1783Used by:2009
Symbol 2008 MovieClipUses:2006 1786 1788Used by:2009
Symbol 2009 MovieClip {ButtonHelp}Uses:2007 2008Used by:2014
Symbol 2010 GraphicUsed by:2011 2012
Symbol 2011 MovieClipUses:2010 1783Used by:2013
Symbol 2012 MovieClipUses:2010 1786 1788Used by:2013
Symbol 2013 MovieClip {ButtonRangeOff}Uses:2011 2012Used by:2014
Symbol 2014 MovieClip {ui.menu.QuickClip}Uses:2001 2005 2009 2013 1871Used by:2475
Symbol 2015 GraphicUsed by:2016
Symbol 2016 MovieClip {ui.MonitorOverlayClip}Uses:2015Used by:2475
Symbol 2017 GraphicUsed by:2018
Symbol 2018 MovieClip {ui.MonitorClip}Uses:2017Used by:2475
Symbol 2019 GraphicUsed by:2020
Symbol 2020 MovieClipUses:2019Used by:2036
Symbol 2021 GraphicUsed by:2031
Symbol 2022 GraphicUsed by:2031
Symbol 2023 GraphicUsed by:2031
Symbol 2024 GraphicUsed by:2031
Symbol 2025 GraphicUsed by:2031
Symbol 2026 GraphicUsed by:2031
Symbol 2027 GraphicUsed by:2031
Symbol 2028 GraphicUsed by:2031
Symbol 2029 GraphicUsed by:2031
Symbol 2030 GraphicUsed by:2031
Symbol 2031 MovieClipUses:2021 2022 2023 2024 2025 2026 2027 2028 2029 2030Used by:2036
Symbol 2032 GraphicUsed by:2033
Symbol 2033 MovieClipUses:2032Used by:2036
Symbol 2034 BitmapUsed by:2035
Symbol 2035 GraphicUses:2034Used by:2036
Symbol 2036 MovieClip {ui.TimerClip}Uses:2020 2031 2033 2035Used by:2475
Symbol 2037 MovieClip {FeatureClip}Uses:1951Used by:2475
Symbol 2038 GraphicUses:1953Used by:2073
Symbol 2039 BitmapUsed by:2040 2041
Symbol 2040 GraphicUses:2039Used by:2073
Symbol 2041 GraphicUses:2039 1953Used by:2073
Symbol 2042 BitmapUsed by:2043
Symbol 2043 GraphicUses:2042Used by:2073
Symbol 2044 BitmapUsed by:2045
Symbol 2045 GraphicUses:2044Used by:2073
Symbol 2046 BitmapUsed by:2047
Symbol 2047 GraphicUses:2046Used by:2073
Symbol 2048 BitmapUsed by:2049
Symbol 2049 GraphicUses:2048Used by:2073
Symbol 2050 BitmapUsed by:2051
Symbol 2051 GraphicUses:2050Used by:2073
Symbol 2052 BitmapUsed by:2053
Symbol 2053 GraphicUses:2052Used by:2073
Symbol 2054 BitmapUsed by:2055
Symbol 2055 GraphicUses:2054Used by:2073
Symbol 2056 BitmapUsed by:2057
Symbol 2057 GraphicUses:2056Used by:2073
Symbol 2058 BitmapUsed by:2059
Symbol 2059 GraphicUses:2058Used by:2073
Symbol 2060 GraphicUses:1954Used by:2073
Symbol 2061 BitmapUsed by:2062
Symbol 2062 GraphicUses:2061Used by:2073
Symbol 2063 BitmapUsed by:2064
Symbol 2064 GraphicUses:2063Used by:2073
Symbol 2065 BitmapUsed by:2066
Symbol 2066 GraphicUses:2065Used by:2073
Symbol 2067 BitmapUsed by:2068
Symbol 2068 GraphicUses:2067Used by:2073
Symbol 2069 BitmapUsed by:2070
Symbol 2070 GraphicUses:2069Used by:2073
Symbol 2071 BitmapUsed by:2072
Symbol 2072 GraphicUses:2071Used by:2073
Symbol 2073 MovieClip {RubbleClip}Uses:2038 2040 2041 2043 2045 2047 2049 2051 2053 2055 2057 2059 2060 2062 2064 2066 2068 2070 2072Used by:2475
Symbol 2074 TextUses:1805Used by:2083
Symbol 2075 GraphicUsed by:2079 2082 2128 2134 2136
Symbol 2076 GraphicUsed by:2077
Symbol 2077 MovieClipUses:2076Used by:2079 2082 2128 2134 2136
Symbol 2078 GraphicUsed by:2079
Symbol 2079 MovieClipUses:2075 2077 1809 2078Used by:2083 2101 2103 2105 2107 2123 2125 2129 2131 2137 2148 2177 2179 2181 2183 2185 2188 2190 2227 2229 2239 2301 2412
Symbol 2080 GraphicUsed by:2082
Symbol 2081 GraphicUsed by:2082
Symbol 2082 MovieClipUses:2075 2077 2080 2081Used by:2083 2101 2103 2105 2107 2123 2125 2129 2131 2137 2148 2177 2179 2181 2183 2185 2188 2190 2227 2229 2239 2301 2412
Symbol 2083 MovieClipUses:2074 2079 2082Used by:2098 2120 2149 2191 2220 2237 2378 2410 2420 2425 2428 2432 2436 2444 2448 2456 2474
Symbol 2084 FontUsed by:2085 2086
Symbol 2085 TextUses:2084Used by:2087
Symbol 2086 TextUses:2084Used by:2087
Symbol 2087 MovieClipUses:2085 2086Used by:2098
Symbol 2088 GraphicUsed by:2089
Symbol 2089 MovieClipUses:2088Used by:2090
Symbol 2090 MovieClipUses:2089Used by:2096
Symbol 2091 GraphicUsed by:2096
Symbol 2092 GraphicUsed by:2096
Symbol 2093 GraphicUsed by:2096
Symbol 2094 GraphicUsed by:2096
Symbol 2095 GraphicUsed by:2096
Symbol 2096 MovieClipUses:2090 2091 1778 2092 2094 2093 2095Used by:2097
Symbol 2097 MovieClipUses:2096Used by:2098 2141 2415
Symbol 2098 MovieClip {ui.menu.MainCreditsClip}Uses:2083 2087 2097Used by:2475
Symbol 2099 TextUses:1779Used by:2120
Symbol 2100 TextUses:1805Used by:2101
Symbol 2101 MovieClipUses:2100 2079 2082Used by:2120
Symbol 2102 TextUses:1805Used by:2103
Symbol 2103 MovieClipUses:2102 2079 2082Used by:2120
Symbol 2104 TextUses:1805Used by:2105
Symbol 2105 MovieClipUses:2104 2079 2082Used by:2120
Symbol 2106 TextUses:1805Used by:2107
Symbol 2107 MovieClipUses:2106 2079 2082Used by:2120
Symbol 2108 GraphicUsed by:2118
Symbol 2109 GraphicUsed by:2110
Symbol 2110 MovieClipUses:2109Used by:2118
Symbol 2111 GraphicUsed by:2118
Symbol 2112 GraphicUsed by:2113
Symbol 2113 MovieClipUses:2112Used by:2118
Symbol 2114 GraphicUsed by:2118
Symbol 2115 GraphicUsed by:2116
Symbol 2116 MovieClipUses:2115Used by:2118
Symbol 2117 GraphicUsed by:2118
Symbol 2118 MovieClipUses:2110 2111 2113 2114 2116 2117 2108Used by:2119
Symbol 2119 MovieClipUses:2118Used by:2120 2149 2186 2191 2237 2260 2262 2378 2410 2415 2420 2425 2428 2432 2448 2456 2474
Symbol 2120 MovieClip {ui.menu.MainDifficultyClip}Uses:2099 2101 2083 2103 2105 2107 2119Used by:2475
Symbol 2121 TextUses:1779Used by:2141
Symbol 2122 TextUses:1805Used by:2123
Symbol 2123 MovieClipUses:2122 2079 2082Used by:2141 2213 2235
Symbol 2124 TextUses:1805Used by:2125
Symbol 2125 MovieClipUses:2124 2079 2082Used by:2141 2235
Symbol 2126 TextUses:1805Used by:2129
Symbol 2127 GraphicUsed by:2128
Symbol 2128 MovieClipUses:2075 2077 1809 2127Used by:2129 2137 2227
Symbol 2129 MovieClipUses:2126 2079 2082 2128Used by:2141 2186 2235
Symbol 2130 TextUses:1805Used by:2131
Symbol 2131 MovieClipUses:2130 2079 2082Used by:2141 2213
Symbol 2132 EditableTextUses:1805Used by:2141
Symbol 2133 GraphicUsed by:2134
Symbol 2134 MovieClipUses:2075 2077 1809 2133Used by:2137
Symbol 2135 GraphicUsed by:2136
Symbol 2136 MovieClipUses:2075 2077 1809 2135Used by:2137
Symbol 2137 MovieClip {zomlog_fla.TextButton_341}Uses:2079 2082 2128 2134 2136Used by:2141 2213 2235 2368 2378 2410 2420 2425 2432 2436 2444 2448 2456 2474
Symbol 2138 EditableTextUses:1779 2241Used by:2141
Symbol 2139 EditableTextUses:1779 2241Used by:2141
Symbol 2140 EditableTextUses:1779 2241Used by:2141
Symbol 2141 MovieClip {ui.menu.MainLoseClip}Uses:2121 2123 2125 2129 2131 2132 2137 2138 2139 2140 2097Used by:2475
Symbol 2142 EditableTextUses:1779 2241Used by:2149
Symbol 2143 EditableTextUses:1805Used by:2149
Symbol 2144 GraphicUsed by:2149
Symbol 2145 EditableTextUses:1805Used by:2149
Symbol 2146 TextUses:1779Used by:2149
Symbol 2147 TextUses:1805Used by:2148 2474
Symbol 2148 MovieClipUses:2147 2079 2082Used by:2149
Symbol 2149 MovieClip {ui.menu.MainNameClip}Uses:2142 2143 2144 2145 2146 2083 2148 2119Used by:2475
Symbol 2150 BitmapUsed by:2151
Symbol 2151 GraphicUses:2150Used by:2152
Symbol 2152 MovieClipUses:2151Used by:2186
Symbol 2153 BitmapUsed by:2154
Symbol 2154 GraphicUses:2153Used by:2155
Symbol 2155 MovieClipUses:2154Used by:2186
Symbol 2156 FontUsed by:1798 1823 1866 1884 1897 2157 2414 2530
Symbol 2157 TextUses:2156Used by:2186
Symbol 2158 GraphicUsed by:2159
Symbol 2159 MovieClipUses:2158Used by:2175
Symbol 2160 GraphicUsed by:2174
Symbol 2161 FontUsed by:2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173
Symbol 2162 TextUses:2161Used by:2174
Symbol 2163 TextUses:2161Used by:2174
Symbol 2164 TextUses:2161Used by:2174
Symbol 2165 TextUses:2161Used by:2174
Symbol 2166 TextUses:2161Used by:2174
Symbol 2167 TextUses:2161Used by:2174
Symbol 2168 TextUses:2161Used by:2174
Symbol 2169 TextUses:2161Used by:2174
Symbol 2170 TextUses:2161Used by:2174
Symbol 2171 TextUses:2161Used by:2174
Symbol 2172 TextUses:2161Used by:2174
Symbol 2173 TextUses:2161Used by:2174
Symbol 2174 MovieClipUses:2160 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173Used by:2175
Symbol 2175 MovieClipUses:2159 2174Used by:2186
Symbol 2176 TextUses:1805Used by:2177
Symbol 2177 MovieClipUses:2176 2079 2082Used by:2186
Symbol 2178 TextUses:1805Used by:2179
Symbol 2179 MovieClipUses:2178 2079 2082Used by:2186 2235
Symbol 2180 TextUses:1805Used by:2181
Symbol 2181 MovieClipUses:2180 2079 2082Used by:2186 2235
Symbol 2182 TextUses:1805Used by:2183
Symbol 2183 MovieClipUses:2182 2079 2082Used by:2186
Symbol 2184 TextUses:1805Used by:2185
Symbol 2185 MovieClipUses:2184 2079 2082Used by:2186
Symbol 2186 MovieClip {ui.menu.MainStartClip}Uses:2152 2155 96 2157 2175 2177 2179 2181 2183 2129 2185 2119Used by:2475
Symbol 2187 TextUses:1805Used by:2188
Symbol 2188 MovieClipUses:2187 2079 2082Used by:2191
Symbol 2189 TextUses:1805Used by:2190
Symbol 2190 MovieClipUses:2189 2079 2082Used by:2191
Symbol 2191 MovieClip {ui.menu.MainTutorialClip}Uses:2083 2188 2190 2119Used by:2475
Symbol 2192 EditableTextUses:1805Used by:2213
Symbol 2193 TextUses:1779Used by:2213
Symbol 2194 EditableTextUses:1779 2241Used by:2213
Symbol 2195 EditableTextUses:1779 2241Used by:2213
Symbol 2196 EditableTextUses:1779 2241Used by:2213
Symbol 2197 GraphicUsed by:2211
Symbol 2198 GraphicUsed by:2199
Symbol 2199 MovieClipUses:2198Used by:2211
Symbol 2200 GraphicUsed by:2211
Symbol 2201 GraphicUsed by:2202
Symbol 2202 MovieClipUses:2201Used by:2204
Symbol 2203 GraphicUsed by:2204
Symbol 2204 MovieClipUses:2202 2203Used by:2206
Symbol 2205 GraphicUsed by:2206
Symbol 2206 MovieClipUses:2204 2205Used by:2211
Symbol 2207 GraphicUsed by:2211
Symbol 2208 GraphicUsed by:2209
Symbol 2209 MovieClipUses:2208Used by:2211
Symbol 2210 GraphicUsed by:2211
Symbol 2211 MovieClipUses:2197 2199 2200 2206 2207 2209 2210 1778Used by:2212
Symbol 2212 MovieClipUses:2211Used by:2213 2415
Symbol 2213 MovieClip {ui.menu.MainWinClip}Uses:2192 2137 2193 2194 2123 2131 2195 2196 2212Used by:2475
Symbol 2214 MovieClip {zomlog_fla.PlusButton_376}Uses:1792 1793Used by:2220 2237 2368 2378 2448
Symbol 2215 MovieClip {zomlog_fla.MinusButton_375}Uses:1784 1789Used by:2220 2237 2368 2378 2448
Symbol 2216 TextUses:1779Used by:2220
Symbol 2217 GraphicUsed by:2219
Symbol 2218 EditableTextUses:1805Used by:2219
Symbol 2219 MovieClip {ui.menu.StatusClip}Uses:2217 1804 2218 1808 1809Used by:2220 2237 2378 2448
Symbol 2220 MovieClip {ui.menu.ReplayMenuClip}Uses:2214 2215 2216 2083 2219Used by:2475
Symbol 2221 EditableTextUses:1805Used by:2235
Symbol 2222 EditableTextUses:1805Used by:2235
Symbol 2223 EditableTextUses:1805Used by:2235
Symbol 2224 EditableTextUses:1805Used by:2235
Symbol 2225 EditableTextUses:1805Used by:2235
Symbol 2226 TextUses:1805Used by:2227
Symbol 2227 MovieClipUses:2226 2079 2082 2128Used by:2235
Symbol 2228 TextUses:1805Used by:2229
Symbol 2229 MovieClipUses:2228 2079 2082Used by:2235
Symbol 2230 TextUses:1779Used by:2235
Symbol 2231 EditableTextUses:1779 2241Used by:2235
Symbol 2232 EditableTextUses:1779 2241Used by:2235
Symbol 2233 EditableTextUses:1779 2241Used by:2235
Symbol 2234 EditableTextUses:1779 2241Used by:2235
Symbol 2235 MovieClip {ui.menu.SystemMenuClip}Uses:2221 2137 2222 2223 2224 2225 2123 2181 2125 2129 2227 2229 2179 2230 2231 2232 2233 2234Used by:2475
Symbol 2236 TextUses:1779Used by:2237
Symbol 2237 MovieClip {ui.menu.OptionsMenuClip}Uses:2214 2215 2219 2236 2083 2119Used by:2475
Symbol 2238 TextUses:1805Used by:2239
Symbol 2239 MovieClipUses:2238 2079 2082Used by:2260
Symbol 2240 MovieClip {fl.controls.UIScrollBar}Uses:22 26 28 30 33 35 38 40 42 44 46 48 50 24 52 53Used by:2260 2415 2428 2432 2436
Symbol 2241 FontUsed by:1780 1820 1821 1822 1828 1829 1830 1867 1868 1869 1870 1885 1886 1887 1888 1889 1890 1895 1896 1982 2138 2139 2140 2142 2194 2195 2196 2231 2232 2233 2234 2242 2261 2299 2308 2310 2313 2314 2315 2316 2317 2322 2323 2324 2327 2328 2329 2330 2333 2334 2335 2336 2339 2340 2341 2342 2343 2346 2347 2348 2349 2352 2413 2426 2429 2434 2437 2438 2439
Symbol 2242 EditableTextUses:1779 2241Used by:2260
Symbol 2243 GraphicUsed by:2244
Symbol 2244 MovieClipUses:2243 1783Used by:2252
Symbol 2245 GraphicUsed by:2246 2249 2250 2251
Symbol 2246 MovieClipUses:2245 1786 1788Used by:2252
Symbol 2247 GraphicUsed by:2248
Symbol 2248 MovieClipUses:2247Used by:2249 2256
Symbol 2249 MovieClipUses:2245 2248Used by:2252
Symbol 2250 MovieClipUses:2245 1854Used by:2252
Symbol 2251 MovieClipUses:2245 1786 1854Used by:2252
Symbol 2252 MovieClip {zomlog_fla.ButtonRight_388}Uses:2244 2246 2249 2250 2251Used by:2260 2474
Symbol 2253 GraphicUsed by:2254 2255 2256
Symbol 2254 MovieClipUses:2253 1783Used by:2257
Symbol 2255 MovieClipUses:2253 1786 1788Used by:2257
Symbol 2256 MovieClipUses:2253 2248Used by:2257
Symbol 2257 MovieClip {zomlog_fla.ButtonLeft_383}Uses:2254 2255 2256Used by:2260 2474
Symbol 2258 TextUses:1779Used by:2260
Symbol 2259 MovieClipUses:1778Used by:2260 2415
Symbol 2260 MovieClip {ui.menu.PediaMenuClip}Uses:2239 2240 2242 2252 2257 1856 2258 2259 2119Used by:2475
Symbol 2261 EditableTextUses:1779 2241Used by:2262
Symbol 2262 MovieClip {ui.menu.WaitMenuClip}Uses:2261 2119Used by:2475
Symbol 2263 GraphicUsed by:2264
Symbol 2264 MovieClipUses:2263Used by:2265
Symbol 2265 MovieClip {ui.ScrollArrowClip}Uses:2264Used by:2475
Symbol 2266 GraphicUsed by:2475
Symbol 2267 GraphicUsed by:2286
Symbol 2268 GraphicUsed by:2286
Symbol 2269 GraphicUsed by:2286
Symbol 2270 GraphicUsed by:2286
Symbol 2271 GraphicUsed by:2286
Symbol 2272 GraphicUsed by:2286
Symbol 2273 GraphicUsed by:2286
Symbol 2274 GraphicUsed by:2286
Symbol 2275 GraphicUsed by:2286
Symbol 2276 GraphicUsed by:2286
Symbol 2277 GraphicUsed by:2286
Symbol 2278 GraphicUsed by:2286
Symbol 2279 GraphicUsed by:2286
Symbol 2280 GraphicUsed by:2286
Symbol 2281 GraphicUsed by:2286
Symbol 2282 GraphicUsed by:2286
Symbol 2283 GraphicUsed by:2286
Symbol 2284 GraphicUsed by:2286
Symbol 2285 GraphicUsed by:2286
Symbol 2286 MovieClip {ExplosionSmallClip}Uses:2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285Used by:2475
Symbol 2287 GraphicUsed by:2298
Symbol 2288 GraphicUsed by:2298
Symbol 2289 GraphicUsed by:2298
Symbol 2290 GraphicUsed by:2298
Symbol 2291 GraphicUsed by:2298
Symbol 2292 GraphicUsed by:2298
Symbol 2293 GraphicUsed by:2298
Symbol 2294 GraphicUsed by:2298
Symbol 2295 GraphicUsed by:2298
Symbol 2296 GraphicUsed by:2297
Symbol 2297 MovieClipUses:2296Used by:2298
Symbol 2298 MovieClip {ExplosionLargeClip}Uses:2287 2288 2289 2290 2291 2292 2293 2294 2295 2297Used by:2475
Symbol 2299 EditableTextUses:1779 2241Used by:2307
Symbol 2300 TextUses:1805Used by:2301
Symbol 2301 MovieClipUses:2300 2079 2082Used by:2307
Symbol 2302 MovieClipUsed by:2307 2309
Symbol 2303 GraphicUsed by:2306
Symbol 2304 GraphicUsed by:2305
Symbol 2305 MovieClipUses:2304Used by:2306
Symbol 2306 MovieClip {ui.TutorialArrowClip}Uses:2303 2305Used by:2307
Symbol 2307 MovieClip {ui.TutorialClip}Uses:2299 2301 2302 2306Used by:2475
Symbol 2308 EditableTextUses:1779 2241Used by:2309
Symbol 2309 MovieClip {ui.ToolTipClip}Uses:2308 2302Used by:2475
Symbol 2310 TextUses:2241Used by:2312
Symbol 2311 GraphicUsed by:2312
Symbol 2312 MovieClip {PauseClip}Uses:2310 2311Used by:2475
Symbol 2313 TextUses:1779 2241Used by:2321
Symbol 2314 TextUses:1779 2241Used by:2321
Symbol 2315 TextUses:1779 2241Used by:2321
Symbol 2316 TextUses:1779 2241Used by:2321
Symbol 2317 TextUses:1779 2241Used by:2321
Symbol 2318 GraphicUsed by:2321
Symbol 2319 GraphicUsed by:2321 2326 2332 2338 2345 2351 2354
Symbol 2320 ShapeTweeningUsed by:2321 2326 2332 2338 2345 2351 2354
Symbol 2321 MovieClip {DepotResourceScreen}Uses:2313 2314 2315 2316 2317 2318 2319 2320Used by:2475
Symbol 2322 TextUses:1779 2241Used by:2326
Symbol 2323 TextUses:1779 2241Used by:2326
Symbol 2324 TextUses:1779 2241Used by:2326
Symbol 2325 GraphicUsed by:2326
Symbol 2326 MovieClip {BarricadeScreen}Uses:2322 2323 2324 2325 2319 2320Used by:2475
Symbol 2327 TextUses:1779 2241Used by:2332
Symbol 2328 TextUses:1779 2241Used by:2332
Symbol 2329 TextUses:1779 2241Used by:2332
Symbol 2330 TextUses:1779 2241Used by:2332
Symbol 2331 GraphicUsed by:2332
Symbol 2332 MovieClip {DepotBuildScreen}Uses:2327 2328 2329 2330 2331 2319 2320Used by:2475
Symbol 2333 TextUses:1779 2241Used by:2338
Symbol 2334 TextUses:1779 2241Used by:2338
Symbol 2335 TextUses:1779 2241Used by:2338
Symbol 2336 TextUses:1779 2241Used by:2338
Symbol 2337 GraphicUsed by:2338
Symbol 2338 MovieClip {DepotMiscScreen}Uses:2333 2334 2335 2336 2337 2319 2320Used by:2475
Symbol 2339 TextUses:1779 2241Used by:2345
Symbol 2340 TextUses:1779 2241Used by:2345
Symbol 2341 TextUses:1779 2241Used by:2345
Symbol 2342 TextUses:1779 2241Used by:2345
Symbol 2343 TextUses:1779 2241Used by:2345
Symbol 2344 GraphicUsed by:2345
Symbol 2345 MovieClip {SniperScreen}Uses:2339 2340 2341 2342 2343 2344 2319 2320Used by:2475
Symbol 2346 TextUses:1779 2241Used by:2351
Symbol 2347 TextUses:1779 2241Used by:2351
Symbol 2348 TextUses:1779 2241Used by:2351
Symbol 2349 TextUses:1779 2241Used by:2351
Symbol 2350 GraphicUsed by:2351
Symbol 2351 MovieClip {WorkshopScreen}Uses:2346 2347 2348 2349 2350 2319 2320Used by:2475
Symbol 2352 TextUses:1779 2241Used by:2354
Symbol 2353 GraphicUsed by:2354
Symbol 2354 MovieClip {TimerScreen}Uses:2352 2353 2319 2320Used by:2475
Symbol 2355 EditableTextUses:1805Used by:2368
Symbol 2356 EditableTextUses:1805Used by:2368
Symbol 2357 EditableTextUses:1805Used by:2368
Symbol 2358 EditableTextUses:1805Used by:2368
Symbol 2359 EditableTextUses:1805Used by:2368
Symbol 2360 EditableTextUses:1805Used by:2368
Symbol 2361 EditableTextUses:1805Used by:2368
Symbol 2362 EditableTextUses:1805Used by:2368
Symbol 2363 EditableTextUses:1805Used by:2368
Symbol 2364 EditableTextUses:1805Used by:2368
Symbol 2365 EditableTextUses:1805Used by:2368
Symbol 2366 EditableTextUses:1805Used by:2368
Symbol 2367 EditableTextUses:1805Used by:2368
Symbol 2368 MovieClip {mapgen.EditMenuClip}Uses:88 2215 2214 2355 2356 2357 2358 2359 2360 2137 2361 2362 2363 2364 2365 2366 2367Used by:2475
Symbol 2369 EditableTextUses:1805Used by:2378
Symbol 2370 EditableTextUses:1805Used by:2378
Symbol 2371 EditableTextUses:1805Used by:2378
Symbol 2372 GraphicUsed by:2378
Symbol 2373 TextUses:1779Used by:2378
Symbol 2374 TextUses:1779Used by:2378
Symbol 2375 TextUses:1779Used by:2378
Symbol 2376 TextUses:1779Used by:2378
Symbol 2377 EditableTextUses:1805Used by:2378
Symbol 2378 MovieClip {ui.menu.MainEditClip}Uses:2369 2370 2371 2215 2214 2219 2372 2373 2374 2375 2376 2377 2137 2083 2119Used by:2475
Symbol 2379 EditableTextUses:97 2467Used by:2380
Symbol 2380 MovieClip {mapgen.EditPosClip}Uses:2379Used by:2475
Symbol 2381 TextUses:1797Used by:2403
Symbol 2382 GraphicUsed by:2383
Symbol 2383 MovieClipUses:2382 1854Used by:2388
Symbol 2384 GraphicUsed by:2387
Symbol 2385 GraphicUsed by:2386
Symbol 2386 MovieClipUses:2385Used by:2387 2391 2395 2399
Symbol 2387 MovieClipUses:2384 1786 2386Used by:2388
Symbol 2388 MovieClip {ButtonBuildWorkshop}Uses:2383 2387Used by:2403
Symbol 2389 GraphicUsed by:2390 2391
Symbol 2390 MovieClipUses:2389 1854Used by:2392
Symbol 2391 MovieClipUses:2389 1786 2386Used by:2392
Symbol 2392 MovieClip {ButtonBuildSniper}Uses:2390 2391Used by:2403
Symbol 2393 GraphicUsed by:2394 2395
Symbol 2394 MovieClipUses:2393 1854Used by:2396
Symbol 2395 MovieClipUses:2393 1786 2386Used by:2396
Symbol 2396 MovieClip {ButtonBuildDepot}Uses:2394 2395Used by:2403
Symbol 2397 GraphicUsed by:2398 2399
Symbol 2398 MovieClipUses:2397 1854Used by:2400
Symbol 2399 MovieClipUses:2397 1786 2386Used by:2400
Symbol 2400 MovieClip {ButtonBuildBarricade}Uses:2398 2399Used by:2403
Symbol 2401 GraphicUsed by:2403
Symbol 2402 GraphicUsed by:2403
Symbol 2403 MovieClip {ui.menu.BuildMenuClip}Uses:2381 2388 2392 2396 2400 1832 1833 2402 1840 2401Used by:2475
Symbol 2404 TextUses:1805Used by:2410
Symbol 2405 TextUses:1805Used by:2410 2425
Symbol 2406 TextUses:1805Used by:2410 2425
Symbol 2407 TextUses:1805Used by:2410
Symbol 2408 TextUses:1805Used by:2410
Symbol 2409 TextUses:1779Used by:2410
Symbol 2410 MovieClip {ui.menu.MainPlayClip}Uses:2404 2137 2405 2406 2407 2408 2409 2083 2119Used by:2475
Symbol 2411 TextUses:1805Used by:2412
Symbol 2412 MovieClipUses:2411 2079 2082Used by:2415
Symbol 2413 EditableTextUses:1779 2241Used by:2415
Symbol 2414 TextUses:2156Used by:2415
Symbol 2415 MovieClip {ui.menu.StoryMenuClip}Uses:2412 2240 2413 2414 2259 2097 2212 2119Used by:2475
Symbol 2416 EditableTextUses:1805Used by:2420
Symbol 2417 GraphicUsed by:2420 2444
Symbol 2418 TextUses:1779Used by:2420
Symbol 2419 TextUses:1805Used by:2420
Symbol 2420 MovieClip {ui.menu.MainDownloadMapClip}Uses:2416 2417 2418 2419 2137 2083 2119Used by:2475
Symbol 2421 TextUses:1805Used by:2425
Symbol 2422 TextUses:1805Used by:2425
Symbol 2423 TextUses:1805Used by:2425
Symbol 2424 TextUses:1779Used by:2425
Symbol 2425 MovieClip {ui.menu.MainEditSelectClip}Uses:2421 2137 2422 2405 2406 2423 2424 2083 2119Used by:2475
Symbol 2426 EditableTextUses:2241Used by:2428
Symbol 2427 TextUses:1779Used by:2428
Symbol 2428 MovieClip {ui.menu.MainFailClip}Uses:2240 2426 2427 2083 2119Used by:2475
Symbol 2429 EditableTextUses:2241Used by:2432
Symbol 2430 EditableTextUses:1805Used by:2432
Symbol 2431 TextUses:1779Used by:2432
Symbol 2432 MovieClip {ui.menu.MainPasteMapClip}Uses:2240 2429 2430 2137 2431 2083 2119Used by:2475
Symbol 2433 EditableTextUses:1805Used by:2436
Symbol 2434 EditableTextUses:2241Used by:2436
Symbol 2435 TextUses:1779Used by:2436
Symbol 2436 MovieClip {ui.menu.SaveMapMenuClip}Uses:2433 2137 2083 2240 2434 2435Used by:2475
Symbol 2437 EditableTextUses:1779 2241Used by:2440
Symbol 2438 EditableTextUses:1779 2241Used by:2440
Symbol 2439 EditableTextUses:1779 2241Used by:2440
Symbol 2440 MovieClip {ui.TotalResourceClip}Uses:1824 1825 1827 2437 2438 2439 1796 1871Used by:2475
Symbol 2441 EditableTextUses:1805Used by:2444
Symbol 2442 TextUses:1779Used by:2444
Symbol 2443 TextUses:1805Used by:2444
Symbol 2444 MovieClip {ui.menu.UploadMapMenuClip}Uses:2441 2417 2442 2443 2137 2083Used by:2475
Symbol 2445 TextUses:1779Used by:2448
Symbol 2446 TextUses:1779Used by:2448
Symbol 2447 TextUses:1805Used by:2448
Symbol 2448 MovieClip {ui.menu.MainRateClip}Uses:2215 2214 2219 2445 2446 2447 2137 2083 2119Used by:2475
Symbol 2449 TextUses:1805Used by:2456
Symbol 2450 TextUses:1805Used by:2456
Symbol 2451 TextUses:1805Used by:2456
Symbol 2452 TextUses:1805Used by:2456
Symbol 2453 TextUses:1805Used by:2456
Symbol 2454 TextUses:1805Used by:2456
Symbol 2455 TextUses:1805Used by:2456 2474
Symbol 2456 MovieClip {ui.menu.MainCampaignClip}Uses:2449 2137 2450 2451 2452 2453 2454 2083 2119 2455Used by:2475
Symbol 2457 Sound {ui.AmbientMusic}Used by:2465
Symbol 2458 Sound {ui.MainIntroMusic}Used by:2465
Symbol 2459 Sound {ui.MainLoopMusic}Used by:2465
Symbol 2460 Sound {ui.QuietMusic}Used by:2465
Symbol 2461 Sound {ui.Wave1Music}Used by:2465
Symbol 2462 Sound {ui.Wave2Music}Used by:2465
Symbol 2463 Sound {ui.Wave3Music}Used by:2465
Symbol 2464 Sound {ui.WaveEndMusic}Used by:2465
Symbol 2465 MovieClip {zomlog_fla.MusicClip_481}Uses:2457 2458 2459 2460 2461 2462 2463 2464Used by:2475
Symbol 2466 EditableTextUses:1805Used by:2474
Symbol 2467 FontUsed by:98 2379 2468 2469 2470 2471 2472 2473
Symbol 2468 EditableTextUses:2467Used by:2474
Symbol 2469 EditableTextUses:2467Used by:2474
Symbol 2470 EditableTextUses:2467Used by:2474
Symbol 2471 EditableTextUses:2467Used by:2474
Symbol 2472 EditableTextUses:2467Used by:2474
Symbol 2473 EditableTextUses:2467Used by:2474
Symbol 2474 MovieClip {ui.menu.MainBrowseClip}Uses:2466 2137 2468 2252 2257 2469 2470 2471 2472 2473 2147 2083 2119 2455Used by:2475
Symbol 2475 MovieClip {zomlog_fla.AssetClip_9}Uses:145 176 210 243 261 281 311 338 356 373 376 377 378 448 521 576 613 647 692 724 749 774 797 798 799 830 840 850 860 879 885 893 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 932 933 935 936 938 941 944 945 946 947 948 950 951 952 954 956 960 962 964 966 969 971 973 975 978 980 982 984 987 989 990 992 994 995 997 999 1000 1001 1003 1005 1007 1009 1010 1011 1013 1014 1016 1018 1037 1039 1042 1044 1059 1061 1064 1066 1081 1083 1086 1088 1103 1105 1107 1109 1119 1121 1123 1125 1127 1129 1131 1133 1144 1146 1148 1150 1160 1162 1164 1166 1199 1224 1248 1265 1303 1326 1360 1384 1393 1410 1427 1442 1443 1468 1477 1494 1511 1528 1545 1562 1580 1589 1606 1615 1632 1641 1658 1667 1668 1677 1686 1687 1688 1697 1698 1707 1716 1717 1726 1735 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1841 1874 1877 1893 1899 1935 1938 1941 1942 1981 1983 1993 1996 2014 2016 2018 2036 2037 2073 2098 2120 2141 2149 2186 2191 2213 2220 2235 2237 2260 2262 2265 2266 2286 2298 2307 2309 2312 2321 2326 2332 2338 2345 2351 2354 2368 2378 2380 2403 2410 2415 2420 2425 2428 2432 2436 2440 2444 2448 2456 2465 2474Used by:Timeline
Symbol 2476 GraphicUsed by:2527
Symbol 2477 GraphicUsed by:2478
Symbol 2478 MovieClipUses:2477Used by:2527
Symbol 2479 GraphicUsed by:2527
Symbol 2480 GraphicUsed by:2481
Symbol 2481 MovieClipUses:2480Used by:2527
Symbol 2482 GraphicUsed by:2527
Symbol 2483 GraphicUsed by:2484
Symbol 2484 MovieClipUses:2483Used by:2527
Symbol 2485 GraphicUsed by:2486
Symbol 2486 MovieClipUses:2485Used by:2527
Symbol 2487 GraphicUsed by:2491
Symbol 2488 BitmapUsed by:2489
Symbol 2489 GraphicUses:2488Used by:2491
Symbol 2490 GraphicUsed by:2491
Symbol 2491 MovieClipUses:2489 2487 2490Used by:2527
Symbol 2492 FontUsed by:2493
Symbol 2493 TextUses:2492Used by:2499
Symbol 2494 GraphicUsed by:2499
Symbol 2495 BitmapUsed by:2496
Symbol 2496 GraphicUses:2495Used by:2497
Symbol 2497 MovieClipUses:2496Used by:2499
Symbol 2498 GraphicUsed by:2499
Symbol 2499 MovieClipUses:2493 2494 2497 2498Used by:2527
Symbol 2500 GraphicUsed by:2527
Symbol 2501 GraphicUsed by:2502
Symbol 2502 MovieClipUses:2501Used by:2527
Symbol 2503 GraphicUsed by:2504
Symbol 2504 MovieClipUses:2503Used by:2527
Symbol 2505 GraphicUsed by:2506
Symbol 2506 MovieClipUses:2505Used by:2527
Symbol 2507 GraphicUsed by:2508
Symbol 2508 MovieClipUses:2507Used by:2527
Symbol 2509 GraphicUsed by:2527
Symbol 2510 GraphicUsed by:2519
Symbol 2511 GraphicUsed by:2519
Symbol 2512 GraphicUsed by:2519
Symbol 2513 GraphicUsed by:2519
Symbol 2514 GraphicUsed by:2519
Symbol 2515 GraphicUsed by:2519
Symbol 2516 GraphicUsed by:2519
Symbol 2517 GraphicUsed by:2519
Symbol 2518 GraphicUsed by:2519
Symbol 2519 MovieClipUses:2510 2511 2512 2513 2514 2515 2516 2517 2518Used by:2527
Symbol 2520 ShapeTweeningUsed by:2525
Symbol 2521 ShapeTweeningUsed by:2525
Symbol 2522 ShapeTweeningUsed by:2525
Symbol 2523 ShapeTweeningUsed by:2525
Symbol 2524 GraphicUsed by:2525
Symbol 2525 MovieClip {zomlog_fla.water_489}Uses:2520 2521 2522 2523 2524Used by:2526
Symbol 2526 MovieClip {zomlog_fla.WaterRing_488}Uses:2525Used by:2527
Symbol 2527 MovieClip {zomlog_fla.Main_logo_484}Uses:2476 2478 2479 2481 2482 2484 2486 2491 2499 2500 2502 2504 2506 2508 2509 2519 2526Used by:2528
Symbol 2528 MovieClip {zomlog_fla.JonLogo_483}Uses:2527 1778Used by:Timeline
Symbol 2529 MovieClip {zomlog_fla.GameClip_499}Used by:Timeline
Symbol 2530 TextUses:2156Used by:Timeline

Instance Names

"pre"Frame 3Symbol 123 MovieClip
"ag"Frame 4Symbol 139 MovieClip {zomlog_fla.ag_intro_mc_6}
"logomc"Frame 6Symbol 2528 MovieClip {zomlog_fla.JonLogo_483}
"game"Frame 7Symbol 2529 MovieClip {zomlog_fla.GameClip_499}
"armor"Symbol 123 MovieClip Frame 1Symbol 96 MovieClip
"progress"Symbol 123 MovieClip Frame 1Symbol 98 EditableText
"bar"Symbol 1810 MovieClip {ui.menu.SetChargesClip} Frame 1Symbol 1808 MovieClip
"survivorsQuota"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1780 EditableText
"survivorsDown"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1790 MovieClip {ButtonMinus}
"survivorsUp"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1794 MovieClip {ButtonPlus}
"survivorsQuotaBackground"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1796 MovieClip
"quota"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1798 EditableText
"setCharges"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1810 MovieClip {ui.menu.SetChargesClip}
"abandon"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1818 MovieClip {ButtonAbandon}
"boardsLeft"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1820 EditableText
"boardsLeftBackground"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1796 MovieClip
"survivorsLeft"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1821 EditableText
"survivorsLeftBackground"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1796 MovieClip
"ammoLeft"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1822 EditableText
"ammoLeftBackground"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1796 MovieClip
"leftToExtract"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1823 EditableText
"survivorsIcon"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1824 MovieClip
"boardsIcon"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1825 MovieClip
"ammoIcon"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1827 MovieClip
"survivorsStock"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1828 EditableText
"survivorsStockBackground"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1796 MovieClip
"boardsStock"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1829 EditableText
"boardsStockBackground"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1796 MovieClip
"ammoStock"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1830 EditableText
"ammoStockBackground"Symbol 1841 MovieClip {ui.menu.WorkshopMenuClip} Frame 1Symbol 1796 MovieClip
"bar"Symbol 1848 MovieClip {ui.menu.AccuracyClip} Frame 1Symbol 1808 MovieClip
"survivorsIcon"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1824 MovieClip
"quota"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1866 EditableText
"ammoIcon"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1827 MovieClip
"survivorsStock"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1867 EditableText
"survivorsStockBackground"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1796 MovieClip
"ammoQuota"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1868 EditableText
"ammoStock"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1869 EditableText
"ammoStockBackground"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1796 MovieClip
"survivorsQuota"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1870 EditableText
"ammoDown"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1790 MovieClip {ButtonMinus}
"ammoUp"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1794 MovieClip {ButtonPlus}
"ammoQuotaBackground"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1796 MovieClip
"survivorsDown"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1790 MovieClip {ButtonMinus}
"survivorsUp"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1794 MovieClip {ButtonPlus}
"survivorsQuotaBackground"Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip} Frame 1Symbol 1796 MovieClip
"holdFire"Symbol 1874 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1845 MovieClip {ButtonFireHold}
"accuracy"Symbol 1874 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1848 MovieClip {ui.menu.AccuracyClip}
"upgrade"Symbol 1874 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1856 MovieClip {ButtonUpgrade}
"shootIntoAir"Symbol 1874 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1861 MovieClip {ButtonFlare}
"fireAtWill"Symbol 1874 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1865 MovieClip {ButtonFireAtWill}
"abandon"Symbol 1874 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1818 MovieClip {ButtonAbandon}
"resource"Symbol 1874 MovieClip {ui.menu.SniperMenuClip} Frame 1Symbol 1872 MovieClip {ui.menu.SniperResourceMenuClip}
"abandon"Symbol 1877 MovieClip {ui.menu.PlanMenuClip} Frame 1Symbol 1818 MovieClip {ButtonAbandon}
"survivorsIcon"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1824 MovieClip
"quota"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1884 EditableText
"boardsIcon"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1825 MovieClip
"ammoIcon"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1827 MovieClip
"survivorsStock"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1885 EditableText
"survivorsStockBackground"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1796 MovieClip
"ammoQuota"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1886 EditableText
"boardsQuota"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1887 EditableText
"boardsStock"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1888 EditableText
"boardsStockBackground"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1796 MovieClip
"ammoStock"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1889 EditableText
"ammoStockBackground"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1796 MovieClip
"survivorsQuota"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1890 EditableText
"ammoDown"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1790 MovieClip {ButtonMinus}
"ammoUp"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1794 MovieClip {ButtonPlus}
"ammoQuotaBackground"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1796 MovieClip
"boardsDown"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1790 MovieClip {ButtonMinus}
"boardsUp"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1794 MovieClip {ButtonPlus}
"boardsQuotaBackground"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1796 MovieClip
"survivorsDown"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1790 MovieClip {ButtonMinus}
"survivorsUp"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1794 MovieClip {ButtonPlus}
"survivorsQuotaBackground"Symbol 1891 MovieClip {ui.menu.ResourceMenuClip} Frame 1Symbol 1796 MovieClip
"abandon"Symbol 1893 MovieClip {ui.menu.DepotMenuClip} Frame 1Symbol 1818 MovieClip {ButtonAbandon}
"gather"Symbol 1893 MovieClip {ui.menu.DepotMenuClip} Frame 1Symbol 1883 MovieClip {ButtonJumpToDepot}
"resource"Symbol 1893 MovieClip {ui.menu.DepotMenuClip} Frame 1Symbol 1891 MovieClip {ui.menu.ResourceMenuClip}
"boardsDown"Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1790 MovieClip {ButtonMinus}
"boardsIcon"Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1825 MovieClip
"boardsQuota"Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1895 EditableText
"boardsStock"Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1896 EditableText
"boardsStockBackground"Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1796 MovieClip
"boardsUp"Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1794 MovieClip {ButtonPlus}
"boardsQuotaBackground"Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1796 MovieClip
"quota"Symbol 1899 MovieClip {ui.menu.BarricadeMenuClip} Frame 1Symbol 1897 EditableText
"fail"Symbol 1983 MovieClip {ui.FailClip} Frame 1Symbol 1982 EditableText
"rangeOn"Symbol 2014 MovieClip {ui.menu.QuickClip} Frame 1Symbol 2001 MovieClip {ButtonRangeOn}
"system"Symbol 2014 MovieClip {ui.menu.QuickClip} Frame 1Symbol 2005 MovieClip {ButtonSystem}
"help"Symbol 2014 MovieClip {ui.menu.QuickClip} Frame 1Symbol 2009 MovieClip {ButtonHelp}
"rangeOff"Symbol 2014 MovieClip {ui.menu.QuickClip} Frame 1Symbol 2013 MovieClip {ButtonRangeOff}
"isPause"Symbol 2036 MovieClip {ui.TimerClip} Frame 1Symbol 2020 MovieClip
"isPlay"Symbol 2036 MovieClip {ui.TimerClip} Frame 1Symbol 2020 MovieClip
"seconds"Symbol 2036 MovieClip {ui.TimerClip} Frame 1Symbol 2031 MovieClip
"minutes"Symbol 2036 MovieClip {ui.TimerClip} Frame 1Symbol 2031 MovieClip
"tens"Symbol 2036 MovieClip {ui.TimerClip} Frame 1Symbol 2031 MovieClip
"back"Symbol 2098 MovieClip {ui.menu.MainCreditsClip} Frame 1Symbol 2083 MovieClip
"credits"Symbol 2098 MovieClip {ui.menu.MainCreditsClip} Frame 1Symbol 2087 MovieClip
"background"Symbol 2098 MovieClip {ui.menu.MainCreditsClip} Frame 1Symbol 2097 MovieClip
"quartermaster"Symbol 2120 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2101 MovieClip
"back"Symbol 2120 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2083 MovieClip
"expert"Symbol 2120 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2103 MovieClip
"veteran"Symbol 2120 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2105 MovieClip
"novice"Symbol 2120 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2107 MovieClip
"background"Symbol 2120 MovieClip {ui.menu.MainDifficultyClip} Frame 1Symbol 2119 MovieClip
"mainMenu"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2123 MovieClip
"retryMap"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2125 MovieClip
"loadGame"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2129 MovieClip
"replay"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2131 MovieClip
"rateLabel"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2132 EditableText
"rateButton"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"time"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2138 EditableText
"city"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2139 EditableText
"difficulty"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2140 EditableText
"background"Symbol 2141 MovieClip {ui.menu.MainLoseClip} Frame 1Symbol 2097 MovieClip
"difficulty"Symbol 2149 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2142 EditableText
"cityName"Symbol 2149 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2143 EditableText
"notice"Symbol 2149 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2145 EditableText
"back"Symbol 2149 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2083 MovieClip
"playGame"Symbol 2149 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2148 MovieClip
"background"Symbol 2149 MovieClip {ui.menu.MainNameClip} Frame 1Symbol 2119 MovieClip
"twitter"Symbol 2186 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2152 MovieClip
"facebook"Symbol 2186 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2155 MovieClip
"armor"Symbol 2186 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 96 MovieClip
"title"Symbol 2186 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2175 MovieClip
"editor"Symbol 2186 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2177 MovieClip
"options"Symbol 2186 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2179 MovieClip
"pedia"Symbol 2186 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2181 MovieClip
"credits"Symbol 2186 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2183 MovieClip
"loadGame"Symbol 2186 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2129 MovieClip
"newGame"Symbol 2186 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2185 MovieClip
"background"Symbol 2186 MovieClip {ui.menu.MainStartClip} Frame 1Symbol 2119 MovieClip
"back"Symbol 2191 MovieClip {ui.menu.MainTutorialClip} Frame 1Symbol 2083 MovieClip
"skipTutorial"Symbol 2191 MovieClip {ui.menu.MainTutorialClip} Frame 1Symbol 2188 MovieClip
"playTutorial"Symbol 2191 MovieClip {ui.menu.MainTutorialClip} Frame 1Symbol 2190 MovieClip
"background"Symbol 2191 MovieClip {ui.menu.MainTutorialClip} Frame 1Symbol 2119 MovieClip
"rateLabel"Symbol 2213 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2192 EditableText
"rateButton"Symbol 2213 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"city"Symbol 2213 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2194 EditableText
"mainMenu"Symbol 2213 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2123 MovieClip
"replay"Symbol 2213 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2131 MovieClip
"difficulty"Symbol 2213 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2195 EditableText
"time"Symbol 2213 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2196 EditableText
"background"Symbol 2213 MovieClip {ui.menu.MainWinClip} Frame 1Symbol 2212 MovieClip
"barText"Symbol 2219 MovieClip {ui.menu.StatusClip} Frame 1Symbol 2218 EditableText
"bar"Symbol 2219 MovieClip {ui.menu.StatusClip} Frame 1Symbol 1808 MovieClip
"fast"Symbol 2220 MovieClip {ui.menu.ReplayMenuClip} Frame 1Symbol 2214 MovieClip {zomlog_fla.PlusButton_376}
"slow"Symbol 2220 MovieClip {ui.menu.ReplayMenuClip} Frame 1Symbol 2215 MovieClip {zomlog_fla.MinusButton_375}
"back"Symbol 2220 MovieClip {ui.menu.ReplayMenuClip} Frame 1Symbol 2083 MovieClip
"speed"Symbol 2220 MovieClip {ui.menu.ReplayMenuClip} Frame 1Symbol 2219 MovieClip {ui.menu.StatusClip}
"uploadMapLabel"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2221 EditableText
"uploadMap"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"editMapLabel"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2222 EditableText
"editMap"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"testMapLabel"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2223 EditableText
"testMap"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"saveMapLabel"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2224 EditableText
"saveMap"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"briefingLabel"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2225 EditableText
"briefing"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"mainMenu"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2123 MovieClip
"pedia"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2181 MovieClip
"retryGame"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2125 MovieClip
"loadGame"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2129 MovieClip
"saveGame"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2227 MovieClip
"resume"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2229 MovieClip
"options"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2179 MovieClip
"bridges"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2231 EditableText
"zombies"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2232 EditableText
"difficulty"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2233 EditableText
"city"Symbol 2235 MovieClip {ui.menu.SystemMenuClip} Frame 1Symbol 2234 EditableText
"scrollUp"Symbol 2237 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2214 MovieClip {zomlog_fla.PlusButton_376}
"scrollDown"Symbol 2237 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2215 MovieClip {zomlog_fla.MinusButton_375}
"scroll"Symbol 2237 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2219 MovieClip {ui.menu.StatusClip}
"musicUp"Symbol 2237 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2214 MovieClip {zomlog_fla.PlusButton_376}
"musicDown"Symbol 2237 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2215 MovieClip {zomlog_fla.MinusButton_375}
"soundUp"Symbol 2237 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2214 MovieClip {zomlog_fla.PlusButton_376}
"soundDown"Symbol 2237 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2215 MovieClip {zomlog_fla.MinusButton_375}
"back"Symbol 2237 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2083 MovieClip
"music"Symbol 2237 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2219 MovieClip {ui.menu.StatusClip}
"sound"Symbol 2237 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2219 MovieClip {ui.menu.StatusClip}
"background"Symbol 2237 MovieClip {ui.menu.OptionsMenuClip} Frame 1Symbol 2119 MovieClip
"returnToMenu"Symbol 2260 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2239 MovieClip
"scrollBar"Symbol 2260 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2240 MovieClip {fl.controls.UIScrollBar}
"entry"Symbol 2260 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2242 EditableText
"forward"Symbol 2260 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2252 MovieClip {zomlog_fla.ButtonRight_388}
"back"Symbol 2260 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2257 MovieClip {zomlog_fla.ButtonLeft_383}
"up"Symbol 2260 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 1856 MovieClip {ButtonUpgrade}
"background"Symbol 2260 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2259 MovieClip
"splash"Symbol 2260 MovieClip {ui.menu.PediaMenuClip} Frame 1Symbol 2119 MovieClip
"message"Symbol 2262 MovieClip {ui.menu.WaitMenuClip} Frame 1Symbol 2261 EditableText
"background"Symbol 2262 MovieClip {ui.menu.WaitMenuClip} Frame 1Symbol 2119 MovieClip
"tail"Symbol 2306 MovieClip {ui.TutorialArrowClip} Frame 1Symbol 2305 MovieClip
"text"Symbol 2307 MovieClip {ui.TutorialClip} Frame 1Symbol 2299 EditableText
"next"Symbol 2307 MovieClip {ui.TutorialClip} Frame 1Symbol 2301 MovieClip
"back"Symbol 2307 MovieClip {ui.TutorialClip} Frame 1Symbol 2302 MovieClip
"arrow"Symbol 2307 MovieClip {ui.TutorialClip} Frame 1Symbol 2306 MovieClip {ui.TutorialArrowClip}
"text"Symbol 2309 MovieClip {ui.ToolTipClip} Frame 1Symbol 2308 EditableText
"back"Symbol 2309 MovieClip {ui.ToolTipClip} Frame 1Symbol 2302 MovieClip
"type"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 88 MovieClip {fl.controls.ComboBox}
"levelsDown"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2215 MovieClip {zomlog_fla.MinusButton_375}
"levelsUp"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2214 MovieClip {zomlog_fla.PlusButton_376}
"levels"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2355 EditableText
"survivorsDown"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2215 MovieClip {zomlog_fla.MinusButton_375}
"survivorsUp"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2214 MovieClip {zomlog_fla.PlusButton_376}
"survivors"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2356 EditableText
"boardsDown"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2215 MovieClip {zomlog_fla.MinusButton_375}
"boardsUp"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2214 MovieClip {zomlog_fla.PlusButton_376}
"boards"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2357 EditableText
"ammoDown"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2215 MovieClip {zomlog_fla.MinusButton_375}
"ammoUp"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2214 MovieClip {zomlog_fla.PlusButton_376}
"ammo"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2358 EditableText
"zombiesDown"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2215 MovieClip {zomlog_fla.MinusButton_375}
"zombiesUp"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2214 MovieClip {zomlog_fla.PlusButton_376}
"zombies"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2359 EditableText
"changeTypeLabel"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2360 EditableText
"changeType"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"brokenLabel"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2361 EditableText
"broken"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"reflectLabel"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2362 EditableText
"reflect"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"rotateLabel"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2363 EditableText
"rotate"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"setEntranceLabel"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2364 EditableText
"setEntrance"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"deleteBoxLabel"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2365 EditableText
"deleteBox"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"addObstacleLabel"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2366 EditableText
"addObstacle"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"addRubbleLabel"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2367 EditableText
"addRubble"Symbol 2368 MovieClip {mapgen.EditMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"heightText"Symbol 2378 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2369 EditableText
"cityName"Symbol 2378 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2370 EditableText
"widthText"Symbol 2378 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2371 EditableText
"difficultyDown"Symbol 2378 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2215 MovieClip {zomlog_fla.MinusButton_375}
"difficultyUp"Symbol 2378 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2214 MovieClip {zomlog_fla.PlusButton_376}
"difficulty"Symbol 2378 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2219 MovieClip {ui.menu.StatusClip}
"newMapLabel"Symbol 2378 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2377 EditableText
"newMap"Symbol 2378 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"back"Symbol 2378 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2378 MovieClip {ui.menu.MainEditClip} Frame 1Symbol 2119 MovieClip
"pos"Symbol 2380 MovieClip {mapgen.EditPosClip} Frame 1Symbol 2379 EditableText
"workshop"Symbol 2403 MovieClip {ui.menu.BuildMenuClip} Frame 1Symbol 2388 MovieClip {ButtonBuildWorkshop}
"sniper"Symbol 2403 MovieClip {ui.menu.BuildMenuClip} Frame 1Symbol 2392 MovieClip {ButtonBuildSniper}
"depot"Symbol 2403 MovieClip {ui.menu.BuildMenuClip} Frame 1Symbol 2396 MovieClip {ButtonBuildDepot}
"barricade"Symbol 2403 MovieClip {ui.menu.BuildMenuClip} Frame 1Symbol 2400 MovieClip {ButtonBuildBarricade}
"browse"Symbol 2410 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"loadMap"Symbol 2410 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"downloadMap"Symbol 2410 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"randomMap"Symbol 2410 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"campaign"Symbol 2410 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"back"Symbol 2410 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2410 MovieClip {ui.menu.MainPlayClip} Frame 1Symbol 2119 MovieClip
"okButton"Symbol 2415 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2412 MovieClip
"scrollBar"Symbol 2415 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2240 MovieClip {fl.controls.UIScrollBar}
"briefing"Symbol 2415 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2413 EditableText
"background"Symbol 2415 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2259 MovieClip
"splashLose"Symbol 2415 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2097 MovieClip
"splashWin"Symbol 2415 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2212 MovieClip
"splash"Symbol 2415 MovieClip {ui.menu.StoryMenuClip} Frame 1Symbol 2119 MovieClip
"url"Symbol 2420 MovieClip {ui.menu.MainDownloadMapClip} Frame 1Symbol 2416 EditableText
"loadButton"Symbol 2420 MovieClip {ui.menu.MainDownloadMapClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"back"Symbol 2420 MovieClip {ui.menu.MainDownloadMapClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2420 MovieClip {ui.menu.MainDownloadMapClip} Frame 1Symbol 2119 MovieClip
"continueMap"Symbol 2425 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"instructions"Symbol 2425 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"loadMap"Symbol 2425 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"downloadMap"Symbol 2425 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"newMap"Symbol 2425 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"back"Symbol 2425 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2425 MovieClip {ui.menu.MainEditSelectClip} Frame 1Symbol 2119 MovieClip
"scrollBar"Symbol 2428 MovieClip {ui.menu.MainFailClip} Frame 1Symbol 2240 MovieClip {fl.controls.UIScrollBar}
"entry"Symbol 2428 MovieClip {ui.menu.MainFailClip} Frame 1Symbol 2426 EditableText
"back"Symbol 2428 MovieClip {ui.menu.MainFailClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2428 MovieClip {ui.menu.MainFailClip} Frame 1Symbol 2119 MovieClip
"scrollBar"Symbol 2432 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2240 MovieClip {fl.controls.UIScrollBar}
"entry"Symbol 2432 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2429 EditableText
"loadLabel"Symbol 2432 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2430 EditableText
"loadButton"Symbol 2432 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"back"Symbol 2432 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2432 MovieClip {ui.menu.MainPasteMapClip} Frame 1Symbol 2119 MovieClip
"copyLabel"Symbol 2436 MovieClip {ui.menu.SaveMapMenuClip} Frame 1Symbol 2433 EditableText
"copyButton"Symbol 2436 MovieClip {ui.menu.SaveMapMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"back"Symbol 2436 MovieClip {ui.menu.SaveMapMenuClip} Frame 1Symbol 2083 MovieClip
"scrollBar"Symbol 2436 MovieClip {ui.menu.SaveMapMenuClip} Frame 1Symbol 2240 MovieClip {fl.controls.UIScrollBar}
"entry"Symbol 2436 MovieClip {ui.menu.SaveMapMenuClip} Frame 1Symbol 2434 EditableText
"survivorsIcon"Symbol 2440 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1824 MovieClip
"boardsIcon"Symbol 2440 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1825 MovieClip
"ammoIcon"Symbol 2440 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1827 MovieClip
"survivorsStock"Symbol 2440 MovieClip {ui.TotalResourceClip} Frame 1Symbol 2437 EditableText
"boardsStock"Symbol 2440 MovieClip {ui.TotalResourceClip} Frame 1Symbol 2438 EditableText
"ammoStock"Symbol 2440 MovieClip {ui.TotalResourceClip} Frame 1Symbol 2439 EditableText
"survivorsStockBackground"Symbol 2440 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1796 MovieClip
"boardsStockBackground"Symbol 2440 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1796 MovieClip
"ammoStockBackground"Symbol 2440 MovieClip {ui.TotalResourceClip} Frame 1Symbol 1796 MovieClip
"url"Symbol 2444 MovieClip {ui.menu.UploadMapMenuClip} Frame 1Symbol 2441 EditableText
"copyButton"Symbol 2444 MovieClip {ui.menu.UploadMapMenuClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"back"Symbol 2444 MovieClip {ui.menu.UploadMapMenuClip} Frame 1Symbol 2083 MovieClip
"difficultyDown"Symbol 2448 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2215 MovieClip {zomlog_fla.MinusButton_375}
"difficultyUp"Symbol 2448 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2214 MovieClip {zomlog_fla.PlusButton_376}
"difficulty"Symbol 2448 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2219 MovieClip {ui.menu.StatusClip}
"funDown"Symbol 2448 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2215 MovieClip {zomlog_fla.MinusButton_375}
"funUp"Symbol 2448 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2214 MovieClip {zomlog_fla.PlusButton_376}
"fun"Symbol 2448 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2219 MovieClip {ui.menu.StatusClip}
"submitButton"Symbol 2448 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"back"Symbol 2448 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2448 MovieClip {ui.menu.MainRateClip} Frame 1Symbol 2119 MovieClip
"level6"Symbol 2456 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"level5"Symbol 2456 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"level4"Symbol 2456 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"level3"Symbol 2456 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"level2"Symbol 2456 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"level1"Symbol 2456 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"back"Symbol 2456 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2456 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2119 MovieClip
"level7"Symbol 2456 MovieClip {ui.menu.MainCampaignClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"sortText"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2466 EditableText
"sort"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"page"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2468 EditableText
"next"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2252 MovieClip {zomlog_fla.ButtonRight_388}
"prev"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2257 MovieClip {zomlog_fla.ButtonLeft_383}
"name5"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2469 EditableText
"name4"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2470 EditableText
"name3"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2471 EditableText
"name2"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2472 EditableText
"name1"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2473 EditableText
"level5"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"level4"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"level3"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"level2"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"level1"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"back"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2083 MovieClip
"background"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2119 MovieClip
"level7"Symbol 2474 MovieClip {ui.menu.MainBrowseClip} Frame 1Symbol 2137 MovieClip {zomlog_fla.TextButton_341}
"w1"Symbol 2526 MovieClip {zomlog_fla.WaterRing_488} Frame 1Symbol 2525 MovieClip {zomlog_fla.water_489}
"w8"Symbol 2526 MovieClip {zomlog_fla.WaterRing_488} Frame 1Symbol 2525 MovieClip {zomlog_fla.water_489}
"w7"Symbol 2526 MovieClip {zomlog_fla.WaterRing_488} Frame 1Symbol 2525 MovieClip {zomlog_fla.water_489}
"w6"Symbol 2526 MovieClip {zomlog_fla.WaterRing_488} Frame 1Symbol 2525 MovieClip {zomlog_fla.water_489}
"w5"Symbol 2526 MovieClip {zomlog_fla.WaterRing_488} Frame 1Symbol 2525 MovieClip {zomlog_fla.water_489}
"w4"Symbol 2526 MovieClip {zomlog_fla.WaterRing_488} Frame 1Symbol 2525 MovieClip {zomlog_fla.water_489}
"w3"Symbol 2526 MovieClip {zomlog_fla.WaterRing_488} Frame 1Symbol 2525 MovieClip {zomlog_fla.water_489}
"w2"Symbol 2526 MovieClip {zomlog_fla.WaterRing_488} Frame 1Symbol 2525 MovieClip {zomlog_fla.water_489}
"turner2"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2478 MovieClip
"turner1"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2481 MovieClip
"smallgear3"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2484 MovieClip
"smallgearback3"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2486 MovieClip
"smallgear6"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2486 MovieClip
"smallgearback2"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2484 MovieClip
"smallgearback1"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2484 MovieClip
"smallgear5"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2486 MovieClip
"smallgear4"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2486 MovieClip
"biggear3"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2491 MovieClip
"biggear2"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2491 MovieClip
"smallgear2"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2484 MovieClip
"biggear"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2491 MovieClip
"smallgear1"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2484 MovieClip
"logo"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2499 MovieClip
"chain5"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2502 MovieClip
"chain4"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2502 MovieClip
"chain3"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2502 MovieClip
"chain2"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2502 MovieClip
"chain1"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2502 MovieClip
"gear10"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2504 MovieClip
"gear9"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2504 MovieClip
"gear8"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2504 MovieClip
"gear7"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2504 MovieClip
"gear6"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2504 MovieClip
"gear5"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2506 MovieClip
"gear4"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2506 MovieClip
"gear3"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2506 MovieClip
"gear2"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2506 MovieClip
"gear1"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2506 MovieClip
"shelf"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2508 MovieClip
"waterwheel"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2519 MovieClip
"ring"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2526 MovieClip {zomlog_fla.WaterRing_488}
"gear20"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2504 MovieClip
"gear19"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2504 MovieClip
"gear18"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2504 MovieClip
"gear17"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2504 MovieClip
"gear16"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2504 MovieClip
"gear15"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2506 MovieClip
"gear14"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2506 MovieClip
"gear13"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2506 MovieClip
"gear12"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2506 MovieClip
"gear11"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2506 MovieClip
"chain10"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2502 MovieClip
"chain9"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2502 MovieClip
"chain8"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2502 MovieClip
"chain7"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2502 MovieClip
"chain6"Symbol 2527 MovieClip {zomlog_fla.Main_logo_484} Frame 1Symbol 2502 MovieClip
"logomc"Symbol 2528 MovieClip {zomlog_fla.JonLogo_483} Frame 1Symbol 2527 MovieClip {zomlog_fla.Main_logo_484}

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 ..."




https://swfchan.com/53/264026/info.shtml
Created: 26/4 -2026 01:56:25 Last modified: 26/4 -2026 01:56:25 Server time: 26/04 -2026 12:34:39