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

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

Bloody Sunset - defend your house from zombies and other monsters.swf

This is the info page for
Flash #89283

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


Text
LOADING...

LOADING...

BACK

SUBMIT SCORE

RESTART

EXIT GAME

MAIN MENU

START

START

START

Counter

CASH

TEAGAMES
EXCLUSIVE

dd

PROPERTY

100000$

YOUR NAME:

<p align="center"></p>

START

START

START

EQUIP

EQUIP

EQUIP

BUY

BUY

BUY

Equipped

EXIT

Start

Start

Start

NEXT

NEXT

NEXT

SHARE

SHARE

SHARE

TRY AGAIN?

SUBMIT

SUBMIT

SUBMIT

MAIN MENU

MAIN MENU

MAIN MENU

CONTINUE

CONTINUE

CONTINUE

NORMAL

NORMAL

NORMAL

HARD

HARD

HARD

EASY

EASY

EASY

H

H

M

M

L

L

<p align="left"><font face="Impact" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1">RANK TEXT</font></p>

<p align="left"><font face="Impact" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1">BEST TEXT</font></p>

<p align="left"><font face="Impact" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1">NEXT RANK TEXT</font></p>

START

<p align="left"><font face="Arial" size="25" color="#99ffff" letterSpacing="0.000000" kerning="1">START</font></p>

PLAY MORE
GAMES

<p align="left"><font face="Arial" size="25" color="#99ffff" letterSpacing="0.000000" kerning="1">START</font></p>

CREDITS

<p align="left"><font face="Arial" size="25" color="#99ffff" letterSpacing="0.000000" kerning="1">START</font></p>

ACHIVEMENTS

BACK

BACK

BACK

Play on
Teagames.com for
exclusive Zombies &
weapons!

ACHIEVEMENTS

ACHIEVEMENTS

ACHIEVEMENTS

MORE
GAMES

MORE
GAMES

MORE
GAMES

CREDITS

CREDITS

CREDITS

HOST THIS
GAME

<p align="left"><font face="Arial" size="25" color="#99ffff" letterSpacing="0.000000" kerning="1">START</font></p>

0%

GAME TITLE

Short Description

<p align="center"></p><p align="center"><font face="Impact" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">CONTROLS:</font></p><p align="center"><font face="Impact" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">CLICK (HOLD) LEFT MOUSE BUTTON &nbsp;TO SHOOT</font></p><p align="center"><font face="Impact" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">RELOADING IS AUTOMATIC, &apos;R&apos; OR &apos;SPACE&apos; TO FORCE RELOAD</font></p><p align="center"><font face="Impact" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">&apos;ESC&apos; OR &apos;P&apos; TO PAUSE GAME</font></p><p align="center"></p><p align="center"></p><p align="center"><font face="Impact" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">HOW TO PLAY:</font></p><p align="center"><font face="Impact" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">1. UPGRADE AND PLAN YOUR CHARACTER</font></p><p align="center"><font face="Impact" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">2. BUY AND CUSTOMIZE WEPONS , TURRETS ETC.</font></p><p align="center"><font face="Impact" size="18" color="#ffffff" letterSpacing="0.000000" kerning="1">3. KILL THE MONSTERS</font></p><p align="center"></p><p align="center"></p>

<p align="left"><font face="Impact" size="24" color="#ffffff" letterSpacing="0.000000" kerning="1">1000</font></p>

EXIT

EXIT

EXIT

ACHIVEMENTS

ACHIVEMENTS

ACHIVEMENTS

MAIN MENU

TRY AGAIN?

TRY AGAIN?

SUBMIT SCORE

SUBMIT SCORE

SUBMIT SCORE

ARTIST
Prakornkits Hannarongsug

GAME DESIGN AND PROGRAMMING
VELIMIR GAJSKI

MUSIC AND SOUND EFFECTS
SYMPHONY OF SPECTRES

ACHIEVEMENT UNLOCKED!

<p align="center"><font face="Blood Crow" size="16" color="#ffffcc" letterSpacing="0.000000" kerning="1">ACHIEVEMENT NAME</font></p>

<p align="center"><font face="Blood Crow" size="14" color="#ffffcc" letterSpacing="0.000000" kerning="1">ACHIEVEMENT NAME</font></p>

<p align="left"><font face="Blood Crow" size="12" color="#ffffcc" letterSpacing="1.000000" kerning="1">THIS IS ACHIEVEMENT DESCRIPTION</font></p><p align="left"></p>

SURVIVAL TROPHIES

Created by:  www.gamingocean.com

<p align="center"></p>

10/10

WAVE
1/25

100/100

QUALITY:

GAME
PAUSED

CONTINUE

CONTINUE

CONTINUE

quit game

quit game

quit game

SELECT PERK:

<p align="left"><font face="Impact" size="42" color="#663300" letterSpacing="0.000000" kerning="1">Character Level : 1</font></p>

THIS IS PERK NAME

MAX

DIFFICULTY:

SCORE SUBMITTED

SCORE SUBMITTED

<p align="center"><font face="Impact" size="30" color="#ffff99" letterSpacing="0.000000" kerning="1"><b>You may rest....</b></font></p>

<p align="center"><font face="Impact" size="24" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>...for a while...</b></font></p>

<p align="center"><font face="Agency FB" size="24" color="#ffffcc" letterSpacing="0.000000" kerning="1">Meet Joey!</font></p>

<p align="center"><font face="Agency FB" size="24" color="#ffffcc" letterSpacing="0.000000" kerning="1">He&apos;s a grave robber that got screwed by a shiny golden skull he found in an obviously wrong grave.</font></p>

<p align="center"><font face="Agency FB" size="24" color="#ffffcc" letterSpacing="0.000000" kerning="1">Well, best of luck to him, lol</font></p>

HP 100/100

CASH

100000000$

WEAPONS

BASE

NAME

COST

DESCRIPTION

5

BASE UPGRADES

WEAPON SHOP

Description:

NAME

COST: 25000$

ActionScript [AS3]

Section 1
//bg_day_new_2 (bloodysunset_fla.bg_day_new_2) package bloodysunset_fla { import flash.display.*; public dynamic class bg_day_new_2 extends MovieClip { public function bg_day_new_2(){ addFrameScript(0, frame1, 199, frame200); } function frame200(){ stop(); } function frame1(){ } } }//package bloodysunset_fla
Section 2
//bg_Title_18 (bloodysunset_fla.bg_Title_18) package bloodysunset_fla { import flash.display.*; public dynamic class bg_Title_18 extends MovieClip { public var tmove:title_move; public function bg_Title_18(){ addFrameScript(199, frame200); } function frame200(){ stop(); } } }//package bloodysunset_fla
Section 3
//bg_Title2_17 (bloodysunset_fla.bg_Title2_17) package bloodysunset_fla { import flash.display.*; public dynamic class bg_Title2_17 extends MovieClip { public var bg:MovieClip; } }//package bloodysunset_fla
Section 4
//CREDITS_MOVE_45 (bloodysunset_fla.CREDITS_MOVE_45) package bloodysunset_fla { import flash.display.*; public dynamic class CREDITS_MOVE_45 extends MovieClip { public function CREDITS_MOVE_45(){ addFrameScript(149, frame150); } function frame150(){ stop(); } } }//package bloodysunset_fla
Section 5
//MainTimeline (bloodysunset_fla.MainTimeline) package bloodysunset_fla { import flash.display.*; import flash.events.*; import src.Wrapper.*; import CPMStar.*; import flash.text.*; public dynamic class MainTimeline extends MovieClip { public const FPS:int = 40; public var ad:DisplayObject; public var _mochiads_game_id:String; public var splash:MovieClip; public var playB:b_utton_startcopy; public var adBox:CPMStar; public var CPMStarContentSpotID:String; public var perc:TextField; public function MainTimeline(){ addFrameScript(0, frame1, 1, frame2, 2, frame3); } public function gotoGame(){ addChild(new Wrapper()); } public function isonKongregate():Boolean{ var _local1:Array; var _local2:String; var _local3:Number; var _local4:Number; var _local5:String; var _local6:Number; var _local7:Number; var _local8:Boolean; var _local9:uint; _local1 = ["", "kongregate.com"]; _local2 = stage.loaderInfo.url; _local3 = (_local2.indexOf("://") + 3); _local4 = _local2.indexOf("/", _local3); _local5 = _local2.substring(_local3, _local4); _local6 = (_local5.lastIndexOf(".") - 1); _local7 = (_local5.lastIndexOf(".", _local6) + 1); _local5 = _local5.substring(_local7, _local5.length); trace(_local5); _local8 = false; _local9 = 0; while (((!(_local8)) && ((_local9 < _local1.length)))) { _local8 = ((_local8) || ((_local5 == _local1[_local9]))); _local9++; }; return (!(_local8)); } public function onMouseClicked(_arg1:Event){ gotoAndPlay(2); } function frame3(){ stop(); if (((!(Wrapper.TEST)) && (!(Wrapper.FROSMO_V)))){ splash = new _splash(); addChild(splash); splash.x = 0; splash.y = 0; splash.width = 600; splash.height = 510; splash.addEventListener(Event.ENTER_FRAME, onFrame); splash.addEventListener(MouseEvent.CLICK, onClick); stage.frameRate = 18; } else { gotoGame(); }; } function frame1(){ CPMStarContentSpotID = Wrapper.CPM_STAR_CODE; _mochiads_game_id = Wrapper.MOCHIADS_STRING; stop(); if (Wrapper.MOCHI_V){ gotoAndPlay(2); } else { this.addEventListener(Event.ENTER_FRAME, PL_LOADING); }; if (isonKongregate() == false){ removeChild(adBox); } else { ad = new AdLoader(CPMStarContentSpotID); adBox.addChild(ad); }; playB.visible = false; } function frame2(){ } public function onFrame(_arg1:Event){ trace("ON FRAME"); if (splash.currentFrame == splash.totalFrames){ stage.frameRate = FPS; splash.removeEventListener(MouseEvent.CLICK, onClick); splash.removeEventListener(Event.ENTER_FRAME, onFrame); removeChild(splash); gotoGame(); }; } public function PL_LOADING(_arg1:Event):void{ var _local2:Number; _local2 = (this.loaderInfo.bytesLoaded / this.loaderInfo.bytesTotal); perc.text = (("" + Math.round((_local2 * 100))) + "%"); if (_local2 == 1){ removeEventListener(Event.ENTER_FRAME, PL_LOADING); playB.visible = true; playB.addEventListener(MouseEvent.CLICK, onMouseClicked); }; } public function onClick(_arg1:MouseEvent){ Wrapper.GET_CLICK_URL(0); } } }//package bloodysunset_fla
Section 6
//screen_credits_38 (bloodysunset_fla.screen_credits_38) package bloodysunset_fla { import flash.display.*; public dynamic class screen_credits_38 extends MovieClip { public function screen_credits_38(){ addFrameScript(30, frame31); } function frame31(){ stop(); } } }//package bloodysunset_fla
Section 7
//MD5 (com.adobe.crypto.MD5) package com.adobe.crypto { import flash.utils.*; import com.adobe.utils.*; public class MD5 { public static var digest:ByteArray; private static function ff(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(f, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } private static function f(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 & _arg2) | (~(_arg1) & _arg3))); } private static function g(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 & _arg3) | (_arg2 & ~(_arg3)))); } private static function h(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 ^ _arg2) ^ _arg3)); } private static function i(_arg1:int, _arg2:int, _arg3:int):int{ return ((_arg2 ^ (_arg1 | ~(_arg3)))); } private static function transform(_arg1:Function, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):int{ var _local9:int; _local9 = (((_arg2 + int(_arg1(_arg3, _arg4, _arg5))) + _arg6) + _arg8); return ((IntUtil.rol(_local9, _arg7) + _arg3)); } private static function hh(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(h, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public static function hash(_arg1:String):String{ var _local2:ByteArray; _local2 = new ByteArray(); _local2.writeUTFBytes(_arg1); return (hashBinary(_local2)); } private static function createBlocks(_arg1:ByteArray):Array{ var _local2:Array; var _local3:int; var _local4:int; var _local5:int; _local2 = new Array(); _local3 = (_arg1.length * 8); _local4 = 0xFF; _local5 = 0; while (_local5 < _local3) { _local2[int((_local5 >> 5))] = (_local2[int((_local5 >> 5))] | ((_arg1[(_local5 / 8)] & _local4) << (_local5 % 32))); _local5 = (_local5 + 8); }; _local2[int((_local3 >> 5))] = (_local2[int((_local3 >> 5))] | (128 << (_local3 % 32))); _local2[int(((((_local3 + 64) >>> 9) << 4) + 14))] = _local3; return (_local2); } public static function hashBinary(_arg1:ByteArray):String{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:Array; var _local11:int; var _local12:int; _local2 = 1732584193; _local3 = -271733879; _local4 = -1732584194; _local5 = 271733878; _local10 = createBlocks(_arg1); _local11 = _local10.length; _local12 = 0; while (_local12 < _local11) { _local6 = _local2; _local7 = _local3; _local8 = _local4; _local9 = _local5; _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 7, -680876936); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 1))], 12, -389564586); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 17, 606105819); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 3))], 22, -1044525330); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 7, -176418897); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 5))], 12, 1200080426); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 17, -1473231341); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 7))], 22, -45705983); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 7, 1770035416); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 9))], 12, -1958414417); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 17, -42063); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 11))], 22, -1990404162); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 7, 1804603682); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 13))], 12, -40341101); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 17, -1502002290); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 15))], 22, 1236535329); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 5, -165796510); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 6))], 9, -1069501632); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 14, 643717713); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 0))], 20, -373897302); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 5, -701558691); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 10))], 9, 38016083); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 14, -660478335); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 4))], 20, -405537848); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 5, 568446438); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 14))], 9, -1019803690); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 14, -187363961); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 8))], 20, 1163531501); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 5, -1444681467); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 2))], 9, -51403784); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 14, 1735328473); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 12))], 20, -1926607734); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 4, -378558); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 8))], 11, -2022574463); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 16, 1839030562); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 14))], 23, -35309556); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 4, -1530992060); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 4))], 11, 1272893353); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 16, -155497632); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 10))], 23, -1094730640); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 4, 681279174); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 0))], 11, -358537222); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 16, -722521979); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 6))], 23, 76029189); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 4, -640364487); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 12))], 11, -421815835); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 16, 530742520); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 2))], 23, -995338651); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 6, -198630844); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 7))], 10, 1126891415); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 15, -1416354905); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 5))], 21, -57434055); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 6, 1700485571); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 3))], 10, -1894986606); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 15, -1051523); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 1))], 21, -2054922799); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 6, 1873313359); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 15))], 10, -30611744); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 15, -1560198380); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 13))], 21, 1309151649); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 6, -145523070); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 11))], 10, -1120210379); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 15, 718787259); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 9))], 21, -343485551); _local2 = (_local2 + _local6); _local3 = (_local3 + _local7); _local4 = (_local4 + _local8); _local5 = (_local5 + _local9); _local12 = (_local12 + 16); }; digest = new ByteArray(); digest.writeInt(_local2); digest.writeInt(_local3); digest.writeInt(_local4); digest.writeInt(_local5); digest.position = 0; return ((((IntUtil.toHex(_local2) + IntUtil.toHex(_local3)) + IntUtil.toHex(_local4)) + IntUtil.toHex(_local5))); } private static function gg(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(g, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } private static function ii(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(i, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public static function hashBytes(_arg1:ByteArray):String{ return (hashBinary(_arg1)); } } }//package com.adobe.crypto
Section 8
//IntUtil (com.adobe.utils.IntUtil) package com.adobe.utils { public class IntUtil { private static var hexChars:String = "0123456789abcdef"; public static function toHex(_arg1:int, _arg2:Boolean=false):String{ var _local3:String; var _local4:int; var _local5:int; _local3 = ""; if (_arg2){ _local4 = 0; while (_local4 < 4) { _local3 = (_local3 + (hexChars.charAt(((_arg1 >> (((3 - _local4) * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> ((3 - _local4) * 8)) & 15)))); _local4++; }; } else { _local5 = 0; while (_local5 < 4) { _local3 = (_local3 + (hexChars.charAt(((_arg1 >> ((_local5 * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> (_local5 * 8)) & 15)))); _local5++; }; }; return (_local3); } public static function ror(_arg1:int, _arg2:int):uint{ var _local3:int; _local3 = (32 - _arg2); return (((_arg1 << _local3) | (_arg1 >>> (32 - _local3)))); } public static function rol(_arg1:int, _arg2:int):int{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } } }//package com.adobe.utils
Section 9
//MindJoltAPI (com.mindjolt.api.as3.MindJoltAPI) package com.mindjolt.api.as3 { import flash.display.*; import flash.events.*; import flash.net.*; public class MindJoltAPI extends MovieClip { private var dispatcher:CustomDispatcher; public static var service:Object; public function MindJoltAPI(){ dispatcher = new CustomDispatcher(); dispatcher.doAction(1, 100); dispatcher.addEventListener(_slot2.ACTION, createRoot); } private function createRoot(_arg1:Event):void{ if (root != null){ _arg1.currentTarget.removeEventListener(_slot2.ACTION, createRoot); init(); }; } private function init():void{ var _local1:Object; var _local2:String; var _local3:Loader; _local1 = Object(parent.root).loaderInfo.parameters; _local2 = ""; if (((!((_local1.mjPath == null))) && (isDomainAllowed()))){ _local2 = _local1.mjPath; } else { _local2 = "http://static.mindjolt.com/api/as3/scoreapi_as3_local.swf"; }; _local3 = new Loader(); _local3.contentLoaderInfo.addEventListener(Event.COMPLETE, loadFinished); _local3.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadFailed); _local3.load(new URLRequest(_local2)); addChild(_local3); } private function loadFinished(_arg1:Event):void{ service = _arg1.currentTarget.content.service; service.connect(); trace("[MindJoltAPI] service loaded"); } private function isDomainAllowed():Boolean{ var _local1:String; var _local2:LocalConnection; var _local3:String; _local1 = ".mindjolt.com"; _local2 = new LocalConnection(); _local3 = _local2.domain; if (_local3.indexOf(_local1) == (_local3.length - _local1.length)){ return (true); }; return (false); } private function loadFailed(_arg1:IOErrorEvent):void{ trace("[MindJoltAPI] unable to load service"); } } }//package com.mindjolt.api.as3 import flash.events.*; import flash.utils.*; class CustomDispatcher extends EventDispatcher { public static var ACTION:String = "action"; private function CustomDispatcher(){ } public function doAction(_arg1:Number, _arg2:Number):void{ var myTimer:Timer; var propAction:Function; var delay = _arg1; var repeat = _arg2; propAction = function (_arg1:TimerEvent):void{ dispatchEvent(new Event(_slot2.ACTION)); }; myTimer = new Timer(delay, repeat); myTimer.addEventListener(TimerEvent.TIMER, propAction); myTimer.start(); } }
Section 10
//SoundManager (com.reintroducing.sound.SoundManager) package com.reintroducing.sound { import flash.media.*; import flash.utils.*; import gs.*; import flash.net.*; public class SoundManager { private var _soundsDict:Dictionary; private var _sounds:Array; private static var _instance:SoundManager; private static var _allowInstance:Boolean; public function SoundManager(){ this._soundsDict = new Dictionary(true); this._sounds = new Array(); if (!SoundManager._allowInstance){ throw (new Error("Error: Use SoundManager.getInstance() instead of the new keyword.")); }; } public function fadeSound(_arg1:String, _arg2:Number=0, _arg3:Number=1):void{ var _local4:SoundChannel; _local4 = this._soundsDict[_arg1].channel; TweenLite.to(_local4, _arg3, {volume:_arg2}); } public function get sounds():Array{ return (this._sounds); } public function getSoundDuration(_arg1:String):Number{ return (this._soundsDict[_arg1].sound.length); } public function setSoundVolume(_arg1:String, _arg2:Number):void{ var _local3:Object; var _local4:SoundTransform; _local3 = this._soundsDict[_arg1]; _local4 = _local3.channel.soundTransform; _local4.volume = _arg2; _local3.channel.soundTransform = _local4; } public function getSoundVolume(_arg1:String):Number{ return (this._soundsDict[_arg1].channel.soundTransform.volume); } public function addLibrarySound(_arg1, _arg2:String):Boolean{ var _local3:int; var _local4:Object; var _local5:Sound; _local3 = 0; while (_local3 < this._sounds.length) { if (this._sounds[_local3].name == _arg2){ return (false); }; _local3++; }; _local4 = new Object(); _local5 = new (_arg1); _local4.name = _arg2; _local4.sound = _local5; _local4.channel = new SoundChannel(); _local4.position = 0; _local4.paused = true; _local4.volume = 1; _local4.startTime = 0; _local4.loops = 0; _local4.pausedByAll = false; this._soundsDict[_arg2] = _local4; this._sounds.push(_local4); return (true); } public function toString():String{ return (getQualifiedClassName(this)); } public function isSoundPaused(_arg1:String):Boolean{ return (this._soundsDict[_arg1].paused); } public function removeAllSounds():void{ var _local1:int; _local1 = 0; while (_local1 < this._sounds.length) { this._sounds[_local1] = null; _local1++; }; this._sounds = new Array(); this._soundsDict = new Dictionary(true); } public function getSoundPosition(_arg1:String):Number{ return (this._soundsDict[_arg1].channel.position); } public function stopAllSounds(_arg1:Boolean=true):void{ var _local2:int; var _local3:String; _local2 = 0; while (_local2 < this._sounds.length) { _local3 = this._sounds[_local2].name; if (_arg1){ if (!this._soundsDict[_local3].paused){ this._soundsDict[_local3].pausedByAll = true; this.stopSound(_local3); }; } else { this.stopSound(_local3); }; _local2++; }; } public function removeSound(_arg1:String):void{ var _local2:int; _local2 = 0; while (_local2 < this._sounds.length) { if (this._sounds[_local2].name == _arg1){ this._sounds[_local2] = null; this._sounds.splice(_local2, 1); }; _local2++; }; delete this._soundsDict[_arg1]; } public function muteAllSounds():void{ var _local1:int; var _local2:String; _local1 = 0; while (_local1 < this._sounds.length) { _local2 = this._sounds[_local1].name; this.setSoundVolume(_local2, 0); _local1++; }; } public function stopSound(_arg1:String):void{ var _local2:Object; _local2 = this._soundsDict[_arg1]; _local2.paused = true; _local2.channel.stop(); _local2.position = _local2.channel.position; } public function pauseAllSounds(_arg1:Boolean=true):void{ var _local2:int; var _local3:String; _local2 = 0; while (_local2 < this._sounds.length) { _local3 = this._sounds[_local2].name; if (_arg1){ if (!this._soundsDict[_local3].paused){ this._soundsDict[_local3].pausedByAll = true; this.pauseSound(_local3); }; } else { this.pauseSound(_local3); }; _local2++; }; } public function playAllSounds(_arg1:Boolean=false):void{ var _local2:int; var _local3:String; _local2 = 0; while (_local2 < this._sounds.length) { _local3 = this._sounds[_local2].name; if (_arg1){ if (this._soundsDict[_local3].pausedByAll){ this._soundsDict[_local3].pausedByAll = false; this.playSound(_local3); }; } else { this.playSound(_local3); }; _local2++; }; } public function addExternalSound(_arg1:String, _arg2:String, _arg3:Number=1000, _arg4:Boolean=false):Boolean{ var _local5:int; var _local6:Object; var _local7:Sound; _local5 = 0; while (_local5 < this._sounds.length) { if (this._sounds[_local5].name == _arg2){ return (false); }; _local5++; }; _local6 = new Object(); _local7 = new Sound(new URLRequest(_arg1), new SoundLoaderContext(_arg3, _arg4)); _local6.name = _arg2; _local6.sound = _local7; _local6.channel = new SoundChannel(); _local6.position = 0; _local6.paused = true; _local6.volume = 1; _local6.startTime = 0; _local6.loops = 0; _local6.pausedByAll = false; this._soundsDict[_arg2] = _local6; this._sounds.push(_local6); return (true); } public function unmuteAllSounds():void{ var _local1:int; var _local2:String; var _local3:Object; var _local4:SoundTransform; _local1 = 0; while (_local1 < this._sounds.length) { _local2 = this._sounds[_local1].name; _local3 = this._soundsDict[_local2]; _local4 = _local3.channel.soundTransform; _local4.volume = _local3.volume; _local3.channel.soundTransform = _local4; _local1++; }; } public function isSoundPausedByAll(_arg1:String):Boolean{ return (this._soundsDict[_arg1].pausedByAll); } public function getSoundObject(_arg1:String):Sound{ return (this._soundsDict[_arg1].sound); } public function pauseSound(_arg1:String):void{ var _local2:Object; _local2 = this._soundsDict[_arg1]; _local2.paused = true; _local2.position = _local2.channel.position; _local2.channel.stop(); } public function playSound(_arg1:String, _arg2:Number=1, _arg3:Number=0, _arg4:int=0):void{ var _local5:Object; _local5 = this._soundsDict[_arg1]; _local5.volume = _arg2; _local5.startTime = _arg3; _local5.loops = _arg4; if (_local5.paused){ _local5.channel = _local5.sound.play(_local5.position, _local5.loops, new SoundTransform(_local5.volume)); } else { _local5.channel = _local5.sound.play(_arg3, _local5.loops, new SoundTransform(_local5.volume)); }; _local5.paused = false; } public static function getInstance():SoundManager{ if (SoundManager._instance == null){ SoundManager._allowInstance = true; SoundManager._instance = new (SoundManager); SoundManager._allowInstance = false; }; return (SoundManager._instance); } } }//package com.reintroducing.sound
Section 11
//GameTracker (FGL.GameTracker.GameTracker) package FGL.GameTracker { import flash.events.*; import flash.utils.*; import flash.net.*; import flash.external.*; public class GameTracker extends EventDispatcher { protected var _responder:Responder;// = null protected var _conn:NetConnection;// = null protected var _inLevel:Boolean;// = false protected var _serviceName:String;// = "" protected var _passphrase:String;// = "" protected var _sessionID:uint; protected var _isEnabled:Boolean;// = false protected var _serverVersionMinor:int;// = 0 protected var _serverVersionMajor:int;// = 0 protected var _timer:Timer;// = null protected var _currentGame:int;// = 0 protected var _inGame:Boolean;// = false protected var _hostUrl:String;// = "" protected var _currentLevel:int;// = 0 protected var _msg_queue:Array; public static const GAMETRACKER_SERVER_ERROR:String = "gametracker_server_error"; private static const TIMER_DELAY:int = 15000; public static const GAMETRACKER_CODING_ERROR:String = "gametracker_coding_error"; public function GameTracker(){ _timer = null; _currentGame = 0; _currentLevel = 0; _inGame = false; _inLevel = false; _msg_queue = new Array(); _conn = null; _responder = null; _isEnabled = false; _serverVersionMajor = 0; _serverVersionMinor = 0; _hostUrl = ""; _serviceName = ""; _passphrase = ""; super(); setGlobalConfig(); if (_isEnabled){ _responder = new Responder(onSuccess, onNetworkingError); _conn = new NetConnection(); _conn.connect(_hostUrl); _timer = new Timer(TIMER_DELAY); _timer.addEventListener("timer", onTimer); _timer.start(); _sessionID = Math.floor((new Date().getTime() / 1000)); addToMsgQueue("begin_app", null, 0, null, null); }; } public function checkpoint(_arg1:Number=0, _arg2:String=null, _arg3:String=null):void{ if (!_inGame){ dispatchEvent(new GameTrackerErrorEvent(GAMETRACKER_CODING_ERROR, "checkpoint() called before startGame() was called!")); } else { addToMsgQueue("checkpoint", null, _arg1, _arg2, _arg3); }; } protected function onNetworkingError(_arg1):void{ dispatchEvent(new GameTrackerErrorEvent(GAMETRACKER_SERVER_ERROR, "Networking error")); } protected function onSuccess(_arg1):void{ if (_arg1.toString() != ""){ dispatchEvent(new GameTrackerErrorEvent(GAMETRACKER_SERVER_ERROR, _arg1.toString())); }; } protected function onTimer(_arg1:TimerEvent):void{ submitMsgQueue(); } protected function addToMsgQueue(_arg1:String, _arg2:String, _arg3:Number, _arg4:String, _arg5:String):void{ var _local6:Object; if (_isEnabled){ _local6 = new Object(); _local6["action"] = _arg1; _local6["custom_action"] = _arg2; _local6["session_id"] = _sessionID; _local6["game_idx"] = _currentGame; _local6["level"] = _currentLevel; _local6["score"] = _arg3; _local6["game_state"] = _arg4; _local6["time"] = Math.floor((new Date().getTime() / 1000)); _local6["msg"] = _arg5; _msg_queue.push(_local6); }; } public function isEnabled():Boolean{ return (_isEnabled); } public function beginGame(_arg1:Number=0, _arg2:String=null, _arg3:String=null):void{ if (_inGame){ endGame(_arg1, _arg2, "AUTO:(this game automatically ended when new game was started)"); }; _currentGame++; _inGame = true; addToMsgQueue("begin_game", null, _arg1, _arg2, _arg3); } protected function submitMsgQueue():void{ var _local1:Object; if (((_isEnabled) && ((_msg_queue.length > 0)))){ _local1 = new Object(); _local1["actions"] = _msg_queue; _local1["identifier"] = _passphrase; _conn.call(_serviceName, _responder, _local1); _msg_queue = new Array(); }; } protected function setGlobalConfig():void{ var ret:Array; _isEnabled = false; _serverVersionMajor = 0; _serverVersionMinor = 0; _hostUrl = ""; _serviceName = ""; _passphrase = ""; try { if (ExternalInterface.available){ ret = ExternalInterface.call("get_gametracker_info"); _serverVersionMajor = ret[0]; _serverVersionMinor = ret[1]; _hostUrl = ret[2]; _serviceName = ret[3]; _passphrase = ret[4]; _isEnabled = (_serverVersionMajor == 1); }; } catch(e) { }; } public function customMsg(_arg1:String, _arg2:Number=0, _arg3:String=null, _arg4:String=null):void{ addToMsgQueue("custom", _arg1, _arg2, _arg3, _arg4); } public function beginLevel(_arg1:int, _arg2:Number=0, _arg3:String=null, _arg4:String=null):void{ if (!_inGame){ dispatchEvent(new GameTrackerErrorEvent(GAMETRACKER_CODING_ERROR, "beginLevel() called before beginGame() was called!")); } else { if (_inLevel){ endLevel(_arg2, _arg3, "AUTO:(this level automatically ended when new level was started)"); }; _currentLevel = _arg1; _inLevel = true; addToMsgQueue("begin_level", null, _arg2, _arg3, _arg4); }; } public function alert(_arg1:Number=0, _arg2:String=null, _arg3:String=null):void{ addToMsgQueue("alert", null, _arg1, _arg2, _arg3); submitMsgQueue(); } public function endLevel(_arg1:Number=0, _arg2:String=null, _arg3:String=null):void{ if (!_inLevel){ dispatchEvent(new GameTrackerErrorEvent(GAMETRACKER_CODING_ERROR, "endLevel() called before beginLevel() was called!")); } else { _inLevel = false; addToMsgQueue("end_level", null, _arg1, _arg2, _arg3); }; } public function endGame(_arg1:Number=0, _arg2:String=null, _arg3:String=null):void{ if (!_inGame){ dispatchEvent(new GameTrackerErrorEvent(GAMETRACKER_CODING_ERROR, "endGame() called before beginGame() was called!")); } else { if (_inLevel){ endLevel(_arg1, _arg2, "AUTO:(this level automatically ended when game ended)"); }; addToMsgQueue("end_game", null, _arg1, _arg2, _arg3); _inGame = false; submitMsgQueue(); }; } } }//package FGL.GameTracker
Section 12
//GameTrackerErrorEvent (FGL.GameTracker.GameTrackerErrorEvent) package FGL.GameTracker { import flash.events.*; public class GameTrackerErrorEvent extends Event { public var _msg:String; public function GameTrackerErrorEvent(_arg1:String, _arg2:String){ _msg = _arg2; super(_arg1, false, false); } public function get msg():String{ return (_msg); } } }//package FGL.GameTracker
Section 13
//Api (frosmo.Api) package frosmo { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; public class Api { private static const STATE_SCORE_SUBMITTED:int = 5; private static const LOADER_TIMEOUT:int = 10000; private static const DEFAULT_GATEWAY_URL:String = (DEFAULT_SERVER + "secure_gateway_2.00.swf"); public static const DEFAULT_SERVER:String = "http://frosmo.com/frosmo_api/"; private static const STATE_UNCONNECTED:int = 0; private static const CALL_CHANNEL_NAME:String = "_esn_public_channel"; private static const STATE_LOADING_GATEWAY:int = 1; private static const STATE_CALLING_GATEWAY:int = 2; private static const CIRC_STORE_DELAY:Number = 500; private static const STATE_WAITING_PARAMETERS:int = 3; private static const CIRC_BUFFER_SIZE:Number = 20; private static const STATE_WAITING_SUBMIT_SCORE:int = 4; private static var _container:DisplayObject; private static var _state:int = 0; private static var _check:Object = {values:{}, seed:0, diff:0, checksum:0, tampered:false}; private static var _version:String = "2.00"; private static var _params:Object = {gameParameters:String, exitUrl:String, rngSeed:String}; private static var _gatewayUrl:String = DEFAULT_GATEWAY_URL; private static var _gameClientId:String; private static var _loader:Loader; private static var _handlers:Object = {ErrorHandler:Function, ReadyHandler:Function}; private static var _fps:Object = {CounterMC:MovieClip, EventEnterFrame:Function, TimeData:Array}; private static var _mcGateway:MovieClip; private static var _sessionId:String = "0"; private static var _seed:uint = 0; private static var _loaderTimeout:Timer; private static var _comm:Object = {callChannel:LocalConnection, SendChannel:LocalConnection, SendChannelName:String, ReceiveChannel:LocalConnection}; private static var _currentRequestArgs:Object; public static function get gameParameters():String{ return (_params.gameParameters); } private static function send(_arg1:String, _arg2:Object, _arg3:Object=null, _arg4:Object=null):void{ var _local5:Object; if (_currentRequestArgs != null){ showError("Can't run multiple request at once"); return; }; _currentRequestArgs = {methodName:_arg1, args:_arg2, callbackObject:_arg3, callbackMethod:_arg4}; _local5 = {methodName:_arg1, args:_arg2, callbackID:1}; _comm.SendChannel.send(_comm.SendChannelName, "onReceive", _local5); } public static function get game_client_id():String{ return (_gameClientId); } private static function showError(_arg1:String):void{ trace(_arg1); if (_handlers.ErrorHandler != null){ _handlers.ErrorHandler(_arg1); }; } private static function addFPSCounter():void{ var ind:Number; var lastTime:Number; var circleBuffer:Array; var lastCircTime:Number; var circSum:Number; var i:Number; ind = 0; lastTime = 0; _fps.CounterMC = new MovieClip(); _container.stage.addChild(_fps.CounterMC); circleBuffer = new Array(CIRC_BUFFER_SIZE); lastCircTime = 0; circSum = 0; _fps.TimeData = new Array(); i = 0; while (i < CIRC_BUFFER_SIZE) { circleBuffer[i] = 0; i = (i + 1); }; _fps.EventEnterFrame = function (_arg1:Event):void{ var _local2:Number; var _local3:Number; var _local4:Number; _local2 = getRealTime(); _local3 = (_local2 - lastTime); if ((((((lastTime == 0)) || ((_local3 < 0)))) || ((_local3 > 1000)))){ lastTime = _local2; lastCircTime = _local2; return; }; circSum = (circSum - circleBuffer[(ind % CIRC_BUFFER_SIZE)]); circleBuffer[(ind % CIRC_BUFFER_SIZE)] = _local3; circSum = (circSum + _local3); if ((_local2 - lastCircTime) >= CIRC_STORE_DELAY){ _local4 = int((circSum / Math.min(CIRC_BUFFER_SIZE, (ind + 1)))); _fps.TimeData.push(_local4); lastCircTime = _local2; }; lastTime = _local2; ind++; }; _fps.CounterMC.addEventListener(Event.ENTER_FRAME, _fps.EventEnterFrame); } private static function initParameters(_arg1:String):void{ var _local2:Object; _gameClientId = _arg1; _local2 = _container.root.loaderInfo.parameters; if (_local2){ if (_local2["esn_session_id"]){ _sessionId = _local2["esn_session_id"]; }; if (_local2["esn_url_v2"]){ _gatewayUrl = _local2["esn_url_v2"]; }; }; } private static function disconnect():void{ _state = STATE_UNCONNECTED; try { _comm.ReceiveChannel.close(); _comm.SendChannel.close(); } catch(error:Error) { }; if (_loaderTimeout != null){ try { _loaderTimeout.stop(); } catch(error:Error) { }; }; } public static function getRealTime():Number{ var _local1:Date; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = new Date(); _local2 = _local1.getHours(); _local3 = _local1.getMinutes(); _local4 = _local1.getSeconds(); _local5 = _local1.getMilliseconds(); return ((_local5 + (1000 * ((_local4 + (60 * _local3)) + (3600 * _local2))))); } private static function eventOpenCallChannel(_arg1:Event):void{ var event = _arg1; setState(STATE_CALLING_GATEWAY); _comm.callChannel = new LocalConnection(); _comm.callChannel.allowDomain("*"); _comm.callChannel.client = _mcGateway; _comm.callChannel.client.handshake = receiveCallChannelHandshake; try { _comm.callChannel.connect(CALL_CHANNEL_NAME); } catch(error:Error) { showError("Call channel already in use"); disconnect(); }; } private static function openCommChannel(_arg1:String):void{ setState(STATE_WAITING_PARAMETERS); _comm.SendChannel = new LocalConnection(); _comm.SendChannelName = (_arg1 + "_fromgame"); _comm.ReceiveChannel = new LocalConnection(); _comm.ReceiveChannel.allowDomain("*"); _comm.ReceiveChannel.client = _mcGateway; _comm.ReceiveChannel.client.onReceive = handleMessageFromGateway; _comm.ReceiveChannel.connect(_arg1); send("connect_to_session", [_sessionId, _gameClientId]); } private static function receiveCallChannelHandshake(_arg1:Object):void{ _comm.callChannel.close(); _loaderTimeout.stop(); openCommChannel(_arg1.private_channel_name); } public static function get rngSeed():String{ return (_params.rngSeed); } public static function random(_arg1:int=-1):Number{ var _local2:Number; if (_seed == 0){ trace("*** FROSMO API ERROR *** :: frosmo.api.random called before connect. RETURNING ZERO"); return (0); }; _seed = ((_seed * 16807) % 2147483647); _local2 = (_seed / 2147483647); if (_arg1 == -1){ return (_local2); }; return (uint((_arg1 * _local2))); } public static function getNumber(_arg1:String):Number{ return ((_check.values[_arg1] - _check.diff)); } public static function setNumber(_arg1:String, _arg2:Number):void{ var _local3:Object; var _local4:Object; var _local5:Number; var _local6:Number; var _local7:Number; _local3 = _check; _local4 = _local3.values; if (_local4[_arg1] == (_arg2 + _local3.diff)){ return; }; if (isFinite(_local4[_arg1])){ _local3.checksum = (_local3.checksum - _local4[_arg1]); }; _local4[_arg1] = (_arg2 + _local3.diff); _local3.checksum = (_local3.checksum + _local4[_arg1]); if (_local3.seed == 0){ _local3.seed = ((Math.random() * 2) ^ 31); } else { _local3.seed = ((_local3.seed * 16807) % 2147483647); }; if ((_local3.seed % 10) == 0){ _local5 = (_local3.seed & (1023 - 0x0200)); _local6 = 0; _local7 = 0; _local3.diff = (_local3.diff + _local5); for (_arg1 in _local4) { _local6 = (_local6 + _local4[_arg1]); _local4[_arg1] = (_local4[_arg1] + _local5); _local7++; }; if (_local6 != _local3.checksum){ _local3.tampered = true; }; _local3.checksum = (_local6 + (_local7 * _local5)); }; } private static function handleResponseToConnectToSession(_arg1:Object):void{ setState(STATE_WAITING_SUBMIT_SCORE); _params.gameParameters = _arg1[0]; _params.exitUrl = _arg1[1]; _params.rngSeed = _arg1[2]; _seed = int(_params.rngSeed); if (_handlers.ReadyHandler != null){ _handlers.ReadyHandler(); }; addFPSCounter(); } public static function get version():String{ return (_version); } public static function submitScore(_arg1:String, _arg2:Object, _arg3:Object):void{ var _local4:Object; if (_state != STATE_WAITING_SUBMIT_SCORE){ showError("Can't submit score until receiving parameters from EsnServer"); return; }; _fps.CounterMC.removeEventListener(Event.ENTER_FRAME, _fps.EventEnterFrame); _local4 = [_sessionId, _gameClientId, _arg1, getFpsData(), (_check.tampered) ? "1" : "0"]; send("set_score", _local4, _arg2, _arg3); } public static function initLevel(_arg1:uint):void{ _seed = (uint(_params.rngSeed) + _arg1); } private static function setState(_arg1:int):void{ if (_state != (_arg1 - 1)){ showError("invalid state"); }; _state = _arg1; } public static function connect(_arg1:String, _arg2:DisplayObject, _arg3:Function, _arg4:Function):void{ if (_arg3 != null){ _handlers.ErrorHandler = _arg3; }; if (_arg4 != null){ _handlers.ReadyHandler = _arg4; }; if ((_arg2 is DisplayObject)){ if (_state == STATE_UNCONNECTED){ _container = _arg2; initParameters(_arg1); loadGateway(); }; } else { showError("ERROR::EsnServices requires a Sprite, Movieclip or instance of the stage."); }; } private static function handleResponseToSetScore(_arg1:Object):void{ trace((("score: " + _arg1[2]) + " submitted succesfully")); } public static function get exitUrl():String{ return (_params.exitUrl); } private static function handleMessageFromGateway(_arg1:Object):void{ var _local2:Object; var _local3:Object; if (_arg1.errorID != null){ showError(_arg1.description); _currentRequestArgs = null; return; }; switch (_currentRequestArgs.methodName){ case "set_score": handleResponseToSetScore(_currentRequestArgs.args); break; case "connect_to_session": handleResponseToConnectToSession(_arg1.args); break; }; _local2 = _currentRequestArgs.callbackMethod; _local3 = _currentRequestArgs.callbackObject; if (_local2 != null){ _local2.apply(_local3, _arg1.args); }; _currentRequestArgs = null; } public static function get session_id():String{ return (_sessionId); } private static function getFpsData():String{ var _local1:String; if (_fps.TimeData == null){ return (""); }; _local1 = _fps.TimeData.join(","); return (_local1); } private static function loadGateway():void{ var eventFailure:Function; setState(STATE_LOADING_GATEWAY); _mcGateway = new MovieClip(); eventFailure = function (_arg1:Event):void{ showError("Loading gateway took too mach time"); disconnect(); }; _loaderTimeout = new Timer(LOADER_TIMEOUT, 1); _loaderTimeout.addEventListener(TimerEvent.TIMER, eventFailure); _loaderTimeout.start(); _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, eventFailure); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, eventOpenCallChannel); _loader.load(new URLRequest(_gatewayUrl)); } } }//package frosmo
Section 14
//AutoAlphaPlugin (gs.plugins.AutoAlphaPlugin) package gs.plugins { import flash.display.*; import gs.*; public class AutoAlphaPlugin extends TweenPlugin { protected var _tweenVisible:Boolean; protected var _tween:TweenLite; protected var _visible:Boolean; protected var _target:Object; public static const VERSION:Number = 1; public static const API:Number = 1; public function AutoAlphaPlugin(){ this.propName = "autoAlpha"; this.overwriteProps = ["alpha", "visible"]; this.onComplete = onCompleteTween; } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); if (((!((_target.visible == true))) && (_tweenVisible))){ _target.visible = true; }; } public function onCompleteTween():void{ if (((((_tweenVisible) && (!((_tween.vars.runBackwards == true))))) && ((_tween.ease == _tween.vars.ease)))){ _target.visible = _visible; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _tween = _arg3; _visible = Boolean(!((_arg2 == 0))); _tweenVisible = true; addTween(_arg1, "alpha", _arg1.alpha, _arg2, "alpha"); return (true); } override public function killProps(_arg1:Object):void{ super.killProps(_arg1); _tweenVisible = !(Boolean(("visible" in _arg1))); } } }//package gs.plugins
Section 15
//EndArrayPlugin (gs.plugins.EndArrayPlugin) package gs.plugins { import gs.*; import gs.utils.tween.*; public class EndArrayPlugin extends TweenPlugin { protected var _info:Array; protected var _a:Array; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function EndArrayPlugin(){ _info = []; super(); this.propName = "endArray"; this.overwriteProps = ["endArray"]; } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:ArrayTweenInfo; var _local4:Number; var _local5:int; if (this.round){ _local2 = (_info.length - 1); while (_local2 > -1) { _local3 = _info[_local2]; _local4 = (_local3.start + (_local3.change * _arg1)); _local5 = ((_local4)<0) ? -1 : 1; _a[_local3.index] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4); _local2--; }; } else { _local2 = (_info.length - 1); while (_local2 > -1) { _local3 = _info[_local2]; _a[_local3.index] = (_local3.start + (_local3.change * _arg1)); _local2--; }; }; } public function init(_arg1:Array, _arg2:Array):void{ var _local3:int; _a = _arg1; _local3 = (_arg2.length - 1); while (_local3 > -1) { if (((!((_arg1[_local3] == _arg2[_local3]))) && (!((_arg1[_local3] == null))))){ _info[_info.length] = new ArrayTweenInfo(_local3, _a[_local3], (_arg2[_local3] - _a[_local3])); }; _local3--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){ return (false); }; init((_arg1 as Array), _arg2); return (true); } } }//package gs.plugins
Section 16
//FramePlugin (gs.plugins.FramePlugin) package gs.plugins { import flash.display.*; import gs.*; public class FramePlugin extends TweenPlugin { public var frame:int; protected var _target:MovieClip; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function FramePlugin(){ this.propName = "frame"; this.overwriteProps = ["frame"]; this.round = true; } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.gotoAndStop(this.frame); } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((!((_arg1 is MovieClip))) || (isNaN(_arg2)))){ return (false); }; _target = (_arg1 as MovieClip); this.frame = _target.currentFrame; addTween(this, "frame", this.frame, _arg2, "frame"); return (true); } } }//package gs.plugins
Section 17
//RemoveTintPlugin (gs.plugins.RemoveTintPlugin) package gs.plugins { public class RemoveTintPlugin extends TintPlugin { public static const VERSION:Number = 1.01; public static const API:Number = 1; public function RemoveTintPlugin(){ this.propName = "removeTint"; } } }//package gs.plugins
Section 18
//TintPlugin (gs.plugins.TintPlugin) package gs.plugins { import flash.display.*; import flash.geom.*; import gs.*; import gs.utils.tween.*; public class TintPlugin extends TweenPlugin { protected var _ct:ColorTransform; protected var _ignoreAlpha:Boolean; protected var _target:DisplayObject; public static const VERSION:Number = 1.1; public static const API:Number = 1; protected static var _props:Array = ["redMultiplier", "greenMultiplier", "blueMultiplier", "alphaMultiplier", "redOffset", "greenOffset", "blueOffset", "alphaOffset"]; public function TintPlugin(){ this.propName = "tint"; this.overwriteProps = ["tint"]; } override public function set changeFactor(_arg1:Number):void{ var _local2:ColorTransform; updateTweens(_arg1); if (_ignoreAlpha){ _local2 = _target.transform.colorTransform; _ct.alphaMultiplier = _local2.alphaMultiplier; _ct.alphaOffset = _local2.alphaOffset; }; _target.transform.colorTransform = _ct; } public function init(_arg1:DisplayObject, _arg2:ColorTransform):void{ var _local3:int; var _local4:String; _target = _arg1; _ct = _target.transform.colorTransform; _local3 = (_props.length - 1); while (_local3 > -1) { _local4 = _props[_local3]; if (_ct[_local4] != _arg2[_local4]){ _tweens[_tweens.length] = new TweenInfo(_ct, _local4, _ct[_local4], (_arg2[_local4] - _ct[_local4]), "tint", false); }; _local3--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ var _local4:ColorTransform; if (!(_arg1 is DisplayObject)){ return (false); }; _local4 = new ColorTransform(); if (((!((_arg2 == null))) && (!((_arg3.exposedVars.removeTint == true))))){ _local4.color = uint(_arg2); }; _ignoreAlpha = true; init((_arg1 as DisplayObject), _local4); return (true); } } }//package gs.plugins
Section 19
//TweenPlugin (gs.plugins.TweenPlugin) package gs.plugins { import gs.*; import gs.utils.tween.*; public class TweenPlugin { public var overwriteProps:Array; protected var _tweens:Array; public var round:Boolean; public var onComplete:Function; public var propName:String; protected var _changeFactor:Number;// = 0 public static const VERSION:Number = 1.03; public static const API:Number = 1; public function TweenPlugin(){ _tweens = []; _changeFactor = 0; super(); } protected function updateTweens(_arg1:Number):void{ var _local2:int; var _local3:TweenInfo; var _local4:Number; var _local5:int; if (this.round){ _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local4 = (_local3.start + (_local3.change * _arg1)); _local5 = ((_local4)<0) ? -1 : 1; _local3.target[_local3.property] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4); _local2--; }; } else { _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1)); _local2--; }; }; } public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _changeFactor = _arg1; } protected function addTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4, _arg5:String=null):void{ var _local6:Number; if (_arg4 != null){ _local6 = ((typeof(_arg4))=="number") ? (_arg4 - _arg3) : Number(_arg4); if (_local6 != 0){ _tweens[_tweens.length] = new TweenInfo(_arg1, _arg2, _arg3, _local6, ((_arg5) || (_arg2)), false); }; }; } public function killProps(_arg1:Object):void{ var _local2:int; _local2 = (this.overwriteProps.length - 1); while (_local2 > -1) { if ((this.overwriteProps[_local2] in _arg1)){ this.overwriteProps.splice(_local2, 1); }; _local2--; }; _local2 = (_tweens.length - 1); while (_local2 > -1) { if ((_tweens[_local2].name in _arg1)){ _tweens.splice(_local2, 1); }; _local2--; }; } public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ addTween(_arg1, this.propName, _arg1[this.propName], _arg2, this.propName); return (true); } public function get changeFactor():Number{ return (_changeFactor); } public static function activate(_arg1:Array):Boolean{ var _local2:int; var _local3:Object; _local2 = (_arg1.length - 1); while (_local2 > -1) { _local3 = new (_arg1[_local2]); TweenLite.plugins[_local3.propName] = _arg1[_local2]; _local2--; }; return (true); } } }//package gs.plugins
Section 20
//VisiblePlugin (gs.plugins.VisiblePlugin) package gs.plugins { import flash.display.*; import gs.*; public class VisiblePlugin extends TweenPlugin { protected var _tween:TweenLite; protected var _visible:Boolean; protected var _target:Object; public static const VERSION:Number = 1; public static const API:Number = 1; public function VisiblePlugin(){ this.propName = "visible"; this.overwriteProps = ["visible"]; this.onComplete = onCompleteTween; } override public function set changeFactor(_arg1:Number):void{ if (_target.visible != true){ _target.visible = true; }; } public function onCompleteTween():void{ if (((!((_tween.vars.runBackwards == true))) && ((_tween.ease == _tween.vars.ease)))){ _target.visible = _visible; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _tween = _arg3; _visible = Boolean(_arg2); return (true); } } }//package gs.plugins
Section 21
//VolumePlugin (gs.plugins.VolumePlugin) package gs.plugins { import flash.display.*; import flash.media.*; import gs.*; public class VolumePlugin extends TweenPlugin { protected var _st:SoundTransform; protected var _target:Object; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function VolumePlugin(){ this.propName = "volume"; this.overwriteProps = ["volume"]; } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.soundTransform = _st; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((isNaN(_arg2)) || (!(_arg1.hasOwnProperty("soundTransform"))))){ return (false); }; _target = _arg1; _st = _target.soundTransform; addTween(_st, "volume", _st.volume, _arg2, "volume"); return (true); } } }//package gs.plugins
Section 22
//ArrayTweenInfo (gs.utils.tween.ArrayTweenInfo) package gs.utils.tween { public class ArrayTweenInfo { public var change:Number; public var index:uint; public var start:Number; public function ArrayTweenInfo(_arg1:uint, _arg2:Number, _arg3:Number){ this.index = _arg1; this.start = _arg2; this.change = _arg3; } } }//package gs.utils.tween
Section 23
//TweenInfo (gs.utils.tween.TweenInfo) package gs.utils.tween { public class TweenInfo { public var start:Number; public var name:String; public var change:Number; public var target:Object; public var property:String; public var isPlugin:Boolean; public function TweenInfo(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Boolean){ this.target = _arg1; this.property = _arg2; this.start = _arg3; this.change = _arg4; this.name = _arg5; this.isPlugin = _arg6; } } }//package gs.utils.tween
Section 24
//TweenLite (gs.TweenLite) package gs { import flash.display.*; import flash.events.*; import flash.utils.*; import gs.utils.tween.*; import gs.plugins.*; public class TweenLite { public var delay:Number; protected var _hasUpdate:Boolean; protected var _hasPlugins:Boolean; public var started:Boolean; public var initted:Boolean; public var active:Boolean; public var startTime:Number; public var target:Object; public var duration:Number; public var gc:Boolean; public var vars:Object; public var ease:Function; public var tweens:Array; public var exposedVars:Object; public var combinedTimeScale:Number; public var initTime:Number; public static const version:Number = 10.092; private static var _timer:Timer = new Timer(2000); public static var defaultEase:Function = TweenLite.easeOut; public static var plugins:Object = {}; public static var currentTime:uint; public static var masterList:Dictionary = new Dictionary(false); protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, roundProps:1, onStart:1, onStartParams:1, persist:1, renderOnStart:1, proxiedEase:1, easeParams:1, yoyo:1, loop:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, orientToBezier:1, timeScale:1}; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; public static var timingSprite:Sprite = new Sprite(); public static var overwriteManager:Object; private static var _tlInitted:Boolean; public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){ var _local4:int; super(); if (_arg1 == null){ return; }; if (!_tlInitted){ TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin]); currentTime = getTimer(); timingSprite.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true); if (overwriteManager == null){ overwriteManager = {mode:1, enabled:false}; }; _timer.addEventListener("timer", killGarbage, false, 0, true); _timer.start(); _tlInitted = true; }; this.vars = _arg3; this.duration = ((_arg2) || (0.001)); this.delay = ((_arg3.delay) || (0)); this.combinedTimeScale = ((_arg3.timeScale) || (1)); this.active = Boolean((((_arg2 == 0)) && ((this.delay == 0)))); this.target = _arg1; if (typeof(this.vars.ease) != "function"){ this.vars.ease = defaultEase; }; if (this.vars.easeParams != null){ this.vars.proxiedEase = this.vars.ease; this.vars.ease = easeProxy; }; this.ease = this.vars.ease; this.exposedVars = ((this.vars.isTV)==true) ? this.vars.exposedVars : this.vars; this.tweens = []; this.initTime = currentTime; this.startTime = (this.initTime + (this.delay * 1000)); _local4 = ((((_arg3.overwrite == undefined)) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite); if (((!((_arg1 in masterList))) || ((_local4 == 1)))){ masterList[_arg1] = [this]; } else { masterList[_arg1].push(this); }; if ((((((this.vars.runBackwards == true)) && (!((this.vars.renderOnStart == true))))) || (this.active))){ initTweenVals(); if (this.active){ render((this.startTime + 1)); } else { render(this.startTime); }; if (((((!((this.exposedVars.visible == null))) && ((this.vars.runBackwards == true)))) && ((this.target is DisplayObject)))){ this.target.visible = this.exposedVars.visible; }; }; } public function set enabled(_arg1:Boolean):void{ var _local2:Array; var _local3:Boolean; var _local4:int; if (_arg1){ if (!(this.target in masterList)){ masterList[this.target] = [this]; } else { _local2 = masterList[this.target]; _local4 = (_local2.length - 1); while (_local4 > -1) { if (_local2[_local4] == this){ _local3 = true; break; }; _local4--; }; if (!_local3){ _local2[_local2.length] = this; }; }; }; this.gc = (_arg1) ? false : true; if (this.gc){ this.active = false; } else { this.active = this.started; }; } public function clear():void{ this.tweens = []; this.vars = (this.exposedVars = {ease:this.vars.ease}); _hasUpdate = false; } public function render(_arg1:uint):void{ var _local2:Number; var _local3:Number; var _local4:TweenInfo; var _local5:int; _local2 = ((_arg1 - this.startTime) * 0.001); if (_local2 >= this.duration){ _local2 = this.duration; _local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0; } else { _local3 = this.ease(_local2, 0, 1, this.duration); }; _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local4 = this.tweens[_local5]; _local4.target[_local4.property] = (_local4.start + (_local3 * _local4.change)); _local5--; }; if (_hasUpdate){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local2 == this.duration){ complete(true); }; } public function activate():void{ this.started = (this.active = true); if (!this.initted){ initTweenVals(); }; if (this.vars.onStart != null){ this.vars.onStart.apply(null, this.vars.onStartParams); }; if (this.duration == 0.001){ this.startTime = (this.startTime - 1); }; } public function get enabled():Boolean{ return ((this.gc) ? false : true); } public function initTweenVals():void{ var _local1:String; var _local2:int; var _local3:*; var _local4:TweenInfo; if (((!((this.exposedVars.timeScale == undefined))) && (this.target.hasOwnProperty("timeScale")))){ this.tweens[this.tweens.length] = new TweenInfo(this.target, "timeScale", this.target.timeScale, (this.exposedVars.timeScale - this.target.timeScale), "timeScale", false); }; for (_local1 in this.exposedVars) { if ((_local1 in _reservedProps)){ } else { if ((_local1 in plugins)){ _local3 = new (plugins[_local1]); if (_local3.onInitTween(this.target, this.exposedVars[_local1], this) == false){ this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false); } else { this.tweens[this.tweens.length] = new TweenInfo(_local3, "changeFactor", 0, 1, ((_local3.overwriteProps.length)==1) ? _local3.overwriteProps[0] : "_MULTIPLE_", true); _hasPlugins = true; }; } else { this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false); }; }; }; if (this.vars.runBackwards == true){ _local2 = (this.tweens.length - 1); while (_local2 > -1) { _local4 = this.tweens[_local2]; this.tweens[_local2].start = (_local4.start + _local4.change); _local4.change = -(_local4.change); _local2--; }; }; if (this.vars.onUpdate != null){ _hasUpdate = true; }; if (((TweenLite.overwriteManager.enabled) && ((this.target in masterList)))){ overwriteManager.manageOverwrites(this, masterList[this.target]); }; this.initted = true; } protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams))); } public function killVars(_arg1:Object):void{ if (overwriteManager.enabled){ overwriteManager.killVars(_arg1, this.exposedVars, this.tweens); }; } public function complete(_arg1:Boolean=false):void{ var _local2:int; if (!_arg1){ if (!this.initted){ initTweenVals(); }; this.startTime = (currentTime - ((this.duration * 1000) / this.combinedTimeScale)); render(currentTime); return; }; if (_hasPlugins){ _local2 = (this.tweens.length - 1); while (_local2 > -1) { if (((this.tweens[_local2].isPlugin) && (!((this.tweens[_local2].target.onComplete == null))))){ this.tweens[_local2].target.onComplete(); }; _local2--; }; }; if (this.vars.persist != true){ this.enabled = false; }; if (this.vars.onComplete != null){ this.vars.onComplete.apply(null, this.vars.onCompleteParams); }; } public static function updateAll(_arg1:Event=null):void{ var _local2:uint; var _local3:Dictionary; var _local4:Array; var _local5:int; var _local6:TweenLite; _local2 = (currentTime = getTimer()); _local3 = masterList; for each (_local4 in _local3) { _local5 = (_local4.length - 1); while (_local5 > -1) { _local6 = _local4[_local5]; if (_local6.active){ _local6.render(_local2); } else { if (_local6.gc){ _local4.splice(_local5, 1); } else { if (_local2 >= _local6.startTime){ _local6.activate(); _local6.render(_local2); }; }; }; _local5--; }; }; } public static function removeTween(_arg1:TweenLite, _arg2:Boolean=true):void{ if (_arg1 != null){ if (_arg2){ _arg1.clear(); }; _arg1.enabled = false; }; } public static function killTweensOf(_arg1:Object=null, _arg2:Boolean=false):void{ var _local3:Array; var _local4:int; var _local5:TweenLite; if (((!((_arg1 == null))) && ((_arg1 in masterList)))){ _local3 = masterList[_arg1]; _local4 = (_local3.length - 1); while (_local4 > -1) { _local5 = _local3[_local4]; if (((_arg2) && (!(_local5.gc)))){ _local5.complete(false); }; _local5.clear(); _local4--; }; delete masterList[_arg1]; }; } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ _arg3.runBackwards = true; return (new TweenLite(_arg1, _arg2, _arg3)); } public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } protected static function killGarbage(_arg1:TimerEvent):void{ var _local2:Dictionary; var _local3:Object; _local2 = masterList; for (_local3 in _local2) { if (_local2[_local3].length == 0){ delete _local2[_local3]; }; }; } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null):TweenLite{ return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, overwrite:0})); } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ return (new TweenLite(_arg1, _arg2, _arg3)); } } }//package gs
Section 25
//MochiCoins (mochi.as3.MochiCoins) package mochi.as3 { public class MochiCoins { public static const STORE_HIDE:String = "StoreHide"; public static const NO_USER:String = "NoUser"; public static const IO_ERROR:String = "IOError"; public static const ITEM_NEW:String = "ItemNew"; public static const ITEM_OWNED:String = "ItemOwned"; public static const STORE_ITEMS:String = "StoreItems"; public static const ERROR:String = "Error"; public static const STORE_SHOW:String = "StoreShow"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static var _inventory:MochiInventory; public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function getStoreItems():void{ MochiServices.send("coins_getStoreItems"); } public static function get inventory():MochiInventory{ return (_inventory); } public static function showStore(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showStore", {options:_arg1}, null, null); } public static function requestFunding(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_requestFunding", _arg1); } public static function showItem(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showItem call must pass an Object with an item key"); return; }; MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showItem", {options:_arg1}, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showVideo(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showVideo call must pass an Object with an item key"); return; }; MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showVideo", {options:_arg1}, null, null); } addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{ _inventory = new MochiInventory(); }); addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{ _inventory = null; }); } }//package mochi.as3
Section 26
//MochiDigits (mochi.as3.MochiDigits) package mochi.as3 { public final class MochiDigits { private var Sibling:MochiDigits; private var Fragment:Number; private var Encoder:Number; public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{ Encoder = 0; setValue(_arg1, _arg2); } public function set value(_arg1:Number):void{ setValue(_arg1); } public function reencode():void{ var _local1:uint; _local1 = int((2147483647 * Math.random())); Fragment = (Fragment ^ (_local1 ^ Encoder)); Encoder = _local1; } public function toString():String{ var _local1:String; _local1 = String.fromCharCode((Fragment ^ Encoder)); if (Sibling != null){ _local1 = (_local1 + Sibling.toString()); }; return (_local1); } public function get value():Number{ return (Number(this.toString())); } public function setValue(_arg1:Number=0, _arg2:uint=0):void{ var _local3:String; _local3 = _arg1.toString(); var _temp1 = _arg2; _arg2 = (_arg2 + 1); Fragment = (_local3.charCodeAt(_temp1) ^ Encoder); if (_arg2 < _local3.length){ Sibling = new MochiDigits(_arg1, _arg2); } else { Sibling = null; }; reencode(); } public function addValue(_arg1:Number):void{ value = (value + _arg1); } } }//package mochi.as3
Section 27
//MochiEventDispatcher (mochi.as3.MochiEventDispatcher) package mochi.as3 { public class MochiEventDispatcher { private var eventTable:Object; public function MochiEventDispatcher():void{ eventTable = {}; } public function triggerEvent(_arg1:String, _arg2:Object):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ return; }; for (_local3 in eventTable[_arg1]) { var _local6 = eventTable[_arg1]; _local6[_local3](_arg2); }; } public function removeEventListener(_arg1:String, _arg2:Function):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ eventTable[_arg1] = []; return; }; for (_local3 in eventTable[_arg1]) { if (eventTable[_arg1][_local3] != _arg2){ } else { eventTable[_arg1].splice(Number(_local3), 1); }; }; } public function addEventListener(_arg1:String, _arg2:Function):void{ removeEventListener(_arg1, _arg2); eventTable[_arg1].push(_arg2); } } }//package mochi.as3
Section 28
//MochiEvents (mochi.as3.MochiEvents) package mochi.as3 { import flash.display.*; public class MochiEvents { public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL"; public static const FORMAT_LONG:String = "LongForm"; public static const ALIGN_BOTTOM:String = "ALIGN_B"; public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived"; public static const FORMAT_SHORT:String = "ShortForm"; public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR"; public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR"; public static const ALIGN_TOP:String = "ALIGN_T"; public static const ALIGN_LEFT:String = "ALIGN_L"; public static const ALIGN_RIGHT:String = "ALIGN_R"; public static const ALIGN_TOP_LEFT:String = "ALIGN_TL"; public static const ALIGN_CENTER:String = "ALIGN_C"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); private static var gameStart:Number; private static var levelStart:Number; public static function endPlay():void{ MochiServices.send("events_clearRoundID", null, null, null); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function trackEvent(_arg1:String, _arg2=null):void{ MochiServices.send("events_trackEvent", {tag:_arg1, value:_arg2}, null, null); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function startSession(_arg1:String):void{ MochiServices.send("events_beginSession", {achievementID:_arg1}, null, null); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function setNotifications(_arg1:MovieClip, _arg2:Object):void{ var _local3:Object; var _local4:Object; _local3 = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; _local3.clip = _arg1; MochiServices.send("events_setNotifications", _local3, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function startPlay(_arg1:String="gameplay"):void{ MochiServices.send("events_setRoundID", {tag:String(_arg1)}, null, null); } } }//package mochi.as3
Section 29
//MochiInventory (mochi.as3.MochiInventory) package mochi.as3 { import flash.events.*; import flash.utils.*; public dynamic class MochiInventory extends Proxy { private var _timer:Timer; private var _names:Array; private var _consumableProperties:Object; private var _syncID:Number; private var _storeSync:Object; private var _outstandingID:Number; private var _syncPending:Boolean; public static const READY:String = "InvReady"; public static const ERROR:String = "Error"; public static const IO_ERROR:String = "IoError"; private static const KEY_SALT:String = " syncMaint"; public static const WRITTEN:String = "InvWritten"; public static const NOT_READY:String = "InvNotReady"; public static const VALUE_ERROR:String = "InvValueError"; private static const CONSUMER_KEY:String = "MochiConsumables"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public function MochiInventory():void{ MochiCoins.addEventListener(MochiCoins.ITEM_OWNED, itemOwned); MochiCoins.addEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.addEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, loggedOut); _storeSync = new Object(); _syncPending = false; _outstandingID = 0; _syncID = 0; _timer = new Timer(1000); _timer.addEventListener(TimerEvent.TIMER, sync); _timer.start(); if (MochiSocial.loggedIn){ loggedIn(); } else { loggedOut(); }; } private function newItems(_arg1:Object):void{ if (!this[(_arg1.id + KEY_SALT)]){ this[(_arg1.id + KEY_SALT)] = 0; }; if (!this[_arg1.id]){ this[_arg1.id] = 0; }; this[(_arg1.id + KEY_SALT)] = (this[(_arg1.id + KEY_SALT)] + _arg1.count); this[_arg1.id] = (this[_arg1.id] + _arg1.count); if (((_arg1.privateProperties) && (_arg1.privateProperties.consumable))){ if (!this[_arg1.privateProperties.tag]){ this[_arg1.privateProperties.tag] = 0; }; this[_arg1.privateProperties.tag] = (this[_arg1.privateProperties.tag] + (_arg1.privateProperties.inc * _arg1.count)); }; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (-1); }; if (_consumableProperties[_arg1]){ return (MochiDigits(_consumableProperties[_arg1]).value); }; return (undefined); } public function release():void{ MochiCoins.removeEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.removeEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.removeEventListener(MochiSocial.LOGGED_OUT, loggedOut); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(_arg1):Boolean{ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (false); }; if (_consumableProperties[_arg1] == undefined){ return (false); }; return (true); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(_arg1:int):int{ return (((_arg1)>=_names.length) ? 0 : (_arg1 + 1)); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ var _local3:MochiDigits; if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return; }; if (!(_arg2 is Number)){ triggerEvent(ERROR, {type:VALUE_ERROR, error:"Invalid type", arg:_arg2}); return; }; if (_consumableProperties[_arg1]){ _local3 = MochiDigits(_consumableProperties[_arg1]); if (_local3.value == _arg2){ return; }; _local3.value = _arg2; } else { _names.push(_arg1); _consumableProperties[_arg1] = new MochiDigits(_arg2); }; _syncID++; } private function sync(_arg1:Event=null):void{ var _local2:Object; var _local3:String; if (((_syncPending) || ((_syncID == _outstandingID)))){ return; }; _outstandingID = _syncID; _local2 = {}; for (_local3 in _consumableProperties) { _local2[_local3] = MochiDigits(_consumableProperties[_local3]).value; }; MochiUserData.put(CONSUMER_KEY, _local2, putConsumableBag); _syncPending = true; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(_arg1:int):String{ return (_names[(_arg1 - 1)]); } private function loggedIn(_arg1:Object=null):void{ MochiUserData.get(CONSUMER_KEY, getConsumableBag); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function deleteProperty(_arg1):Boolean{ if (!_consumableProperties[_arg1]){ return (false); }; _names.splice(_names.indexOf(_arg1), 1); delete _consumableProperties[_arg1]; return (true); } private function itemOwned(_arg1:Object):void{ _storeSync[_arg1.id] = {properties:_arg1.properties, count:_arg1.count}; } private function putConsumableBag(_arg1:MochiUserData):void{ _syncPending = false; if (_arg1.error){ triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error}); _outstandingID = -1; }; triggerEvent(WRITTEN, {}); } private function getConsumableBag(_arg1:MochiUserData):void{ var _local2:String; var _local3:Number; if (_arg1.error){ triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error}); return; }; _consumableProperties = {}; _names = new Array(); if (_arg1.data){ for (_local2 in _arg1.data) { _names.push(_local2); _consumableProperties[_local2] = new MochiDigits(_arg1.data[_local2]); }; }; for (_local2 in _storeSync) { _local3 = _storeSync[_local2].count; if (_consumableProperties[(_local2 + KEY_SALT)]){ _local3 = (_local3 - _consumableProperties[(_local2 + KEY_SALT)].value); }; if (_local3 == 0){ } else { newItems({id:_local2, count:_local3, properties:_storeSync[_local2].properties}); }; }; triggerEvent(READY, {}); } private function loggedOut(_arg1:Object=null):void{ _consumableProperties = null; } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } } }//package mochi.as3
Section 30
//MochiScores (mochi.as3.MochiScores) package mochi.as3 { import flash.display.*; import flash.text.*; public class MochiScores { private static var boardID:String; public static var onErrorHandler:Object; public static var onCloseHandler:Object; public static function showLeaderboard(_arg1:Object=null):void{ var n:Number; var options = _arg1; if (options != null){ delete options.clip; MochiServices.setContainer(); MochiServices.bringToTop(); if (options.name != null){ if ((options.name is TextField)){ if (options.name.text.length > 0){ options.name = options.name.text; }; }; }; if (options.score != null){ if ((options.score is TextField)){ if (options.score.text.length > 0){ options.score = options.score.text; }; } else { if ((options.score is MochiDigits)){ options.score = options.score.value; }; }; n = Number(options.score); if (isNaN(n)){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'")); } else { if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite")); } else { if (Math.floor(n) != n){ trace((("WARNING: Submitted score '" + options.score) + "' will be truncated")); }; options.score = n; }; }; }; if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.play(); } else { trace("Warning: Container is not a MovieClip, cannot call default onClose."); }; }; }; if (options.onError != null){ onErrorHandler = options.onError; } else { onErrorHandler = null; }; if (options.boardID == null){ if (MochiScores.boardID != null){ options.boardID = MochiScores.boardID; }; }; MochiServices.warnID(options.boardID, true); trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal"); MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose); } public static function closeLeaderboard():void{ MochiServices.send("scores_closeLeaderboard"); } public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2); } public static function requestList(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_requestList", null, _arg1, _arg2); } public static function scoresArrayToObjects(_arg1:Object):Object{ var _local2:Object; var _local3:Number; var _local4:Number; var _local5:Object; var _local6:Object; var _local7:String; var _local8:String; _local2 = {}; for (_local7 in _arg1) { if (typeof(_arg1[_local7]) == "object"){ if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){ _local2[_local7] = []; _local5 = _arg1[_local7]; _local4 = 0; while (_local4 < _local5.rows.length) { _local6 = {}; _local3 = 0; while (_local3 < _local5.cols.length) { _local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3]; _local3++; }; _local2[_local7].push(_local6); _local4++; }; } else { _local2[_local7] = {}; for (_local8 in _arg1[_local7]) { _local2[_local7][_local8] = _arg1[_local7][_local8]; }; }; } else { _local2[_local7] = _arg1[_local7]; }; }; return (_local2); } public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{ _arg1 = Number(_arg1); if (isNaN(_arg1)){ trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is 'Not a Number'")); } else { if ((((_arg1 == Number.NEGATIVE_INFINITY)) || ((_arg1 == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is an infinite")); } else { if (Math.floor(_arg1) != _arg1){ trace((("WARNING: Submitted score '" + String(_arg1)) + "' will be truncated")); }; _arg1 = Number(_arg1); }; }; MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4); } public static function onClose(_arg1:Object=null):void{ if (((((_arg1) && ((_arg1.error == true)))) && (onErrorHandler))){ if (_arg1.errorCode == null){ _arg1.errorCode = "IOError"; }; onErrorHandler(_arg1.errorCode); MochiServices.doClose(); return; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(_arg1:String):void{ MochiServices.warnID(_arg1, true); MochiScores.boardID = _arg1; MochiServices.send("scores_setBoardID", {boardID:_arg1}); } } }//package mochi.as3
Section 31
//MochiServices (mochi.as3.MochiServices) package mochi.as3 { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.geom.*; import flash.net.*; import flash.system.*; public class MochiServices { public static const CONNECTED:String = "onConnected"; private static var _container:Object; private static var _connected:Boolean = false; private static var _queue:Array; private static var _swfVersion:String; private static var _preserved:Object; public static var netupAttempted:Boolean = false; private static var _sendChannel:LocalConnection; private static var _nextCallbackID:Number; private static var _clip:MovieClip; private static var _loader:Loader; private static var _id:String; private static var _services:String = "services.swf"; private static var _servURL:String = "http://www.mochiads.com/static/lib/services/"; public static var widget:Boolean = false; private static var _timer:Timer; private static var _sendChannelName:String; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); private static var _callbacks:Object; private static var _connecting:Boolean = false; private static var _mochiLocalConnection:MovieClip; private static var _listenChannelName:String = "__ms_"; public static var onError:Object; public static var netup:Boolean = true; private static var _mochiLC:String = "MochiLC.swf"; public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function get connected():Boolean{ return (_connected); } private static function onReceive(_arg1:Object):void{ var cb:String; var cblst:Object; var method:*; var methodName:String; var obj:Object; var pkg = _arg1; cb = pkg.callbackID; cblst = _callbacks[cb]; if (!cblst){ return; }; method = cblst.callbackMethod; methodName = ""; obj = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ methodName = method; if (obj[method] != null){ method = obj[method]; } else { trace((("Error: Method " + method) + " does not exist.")); }; }; if (method != undefined){ try { method.apply(obj, pkg.args); } catch(error:Error) { trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString())); }; } else { if (obj != null){ try { obj(pkg.args); } catch(error:Error) { trace(("Error invoking method on object: " + error.toString())); }; }; }; delete _callbacks[cb]; } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_nextCallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ trace(("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + _arg1)); handleError(_arg2, _arg3, _arg4); flush(true); return; }; _queue.push({methodName:_arg1, args:_arg2, callbackID:_nextCallbackID}); }; if (_clip != null){ if (_callbacks != null){ _callbacks[_nextCallbackID] = {callbackObject:_arg3, callbackMethod:_arg4}; _nextCallbackID++; }; }; } private static function init(_arg1:String, _arg2:Object):void{ _id = _arg1; if (_arg2 != null){ _container = _arg2; loadCommunicator(_arg1, _container); }; } private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{ var _local3:Array; var _local4:int; var _local5:Array; var _local6:Array; var _local7:MovieClip; var _local8:LocalConnection; var _local9:String; var _local10:ByteArray; var _local11:ByteArray; var _local12:uint; var _local13:uint; var _local14:Loader; _local3 = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23]; _local5 = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3]; _local6 = [0, 64, 0, 0, 0]; _local7 = new MovieClip(); _local8 = new LocalConnection(); _local9 = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time)); _local8 = new LocalConnection(); _local7.lc = _local8; _local7.click = _arg2; _local8.client = _local7; _local8.connect(_local9); _local10 = new ByteArray(); _local11 = new ByteArray(); _local11.endian = Endian.LITTLE_ENDIAN; _local11.writeShort(1); _local11.writeUTFBytes(((_arg1 + " ") + _local9)); _local11.writeByte(0); _local12 = ((_local3.length + _local11.length) + 4); _local13 = (_local12 + 35); _local10.endian = Endian.LITTLE_ENDIAN; _local10.writeUTFBytes("FWS"); _local10.writeByte(8); _local10.writeUnsignedInt(_local13); for each (_local4 in _local5) { _local10.writeByte(_local4); }; _local10.writeUnsignedInt(_local12); _local10.writeByte(136); _local10.writeShort(_local11.length); _local10.writeBytes(_local11); for each (_local4 in _local3) { _local10.writeByte(_local4); }; for each (_local4 in _local6) { _local10.writeByte(_local4); }; _local14 = new Loader(); _local14.loadBytes(_local10); _local7.addChild(_local14); return (_local7); } private static function detach(_arg1:Event):void{ var _local2:LoaderInfo; _local2 = LoaderInfo(_arg1.target); _local2.removeEventListener(Event.COMPLETE, detach); _local2.removeEventListener(IOErrorEvent.IO_ERROR, detach); _local2.removeEventListener(Event.COMPLETE, loadLCBridgeComplete); _local2.removeEventListener(IOErrorEvent.IO_ERROR, loadError); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } private static function loadLCBridgeComplete(_arg1:Event):void{ var _local2:Loader; _local2 = LoaderInfo(_arg1.target).loader; _mochiLocalConnection = MovieClip(_local2.content); listen(); } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); try { _mochiLocalConnection.close(); } catch(error:Error) { }; }; if (_timer != null){ try { _timer.stop(); _timer.removeEventListener(TimerEvent.TIMER, connectWait); _timer = null; } catch(error:Error) { }; }; } public static function allowDomains(_arg1:String):String{ var _local2:String; if (Security.sandboxType != "application"){ Security.allowDomain("*"); Security.allowInsecureDomain("*"); }; if (_arg1.indexOf("http://") != -1){ _local2 = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType != "application"){ Security.allowDomain(_local2); Security.allowInsecureDomain(_local2); }; }; return (_local2); } public static function getVersion():String{ return ("3.9.1 as3"); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); } public static function warnID(_arg1:String, _arg2:Boolean):void{ var _local3:Number; _arg1 = _arg1.toLowerCase(); if (_arg1.length != 16){ trace((("WARNING: " + (_arg2) ? "board" : "game") + " ID is not the appropriate length")); return; } else { if (_arg1 == "1e113c7239048b3f"){ if (_arg2){ trace("WARNING: Using testing board ID"); } else { trace("WARNING: Using testing board ID as game ID"); }; return; } else { if (_arg1 == "84993a1de4031cd8"){ if (_arg2){ trace("WARNING: Using testing game ID as board ID"); } else { trace("WARNING: Using testing game ID"); }; return; }; }; }; _local3 = 0; while (_local3 < _arg1.length) { switch (_arg1.charAt(_local3)){ case "0": case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": case "a": case "b": case "c": case "d": case "e": case "f": break; default: trace(("WARNING: Board ID contains illegal characters: " + _arg1)); return; }; _local3++; }; } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (((_clip) && (_queue))){ while (_queue.length > 0) { _local2 = _queue.shift(); _local3 = null; if (_local2 != null){ if (_local2.callbackID != null){ _local3 = _callbacks[_local2.callbackID]; }; delete _callbacks[_local2.callbackID]; if (((_arg1) && (!((_local3 == null))))){ handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod); }; }; }; }; } public static function get id():String{ return (_id); } private static function onEvent(_arg1:Object):void{ var _local2:String; var _local3:String; _local2 = _arg1.target; _local3 = _arg1.event; switch (_local2){ case "services": MochiServices.triggerEvent(_arg1.event, _arg1.args); break; case "events": MochiEvents.triggerEvent(_arg1.event, _arg1.args); break; case "coins": MochiCoins.triggerEvent(_arg1.event, _arg1.args); break; case "social": MochiSocial.triggerEvent(_arg1.event, _arg1.args); break; }; } private static function urlOptions(_arg1:Object):Object{ var _local2:Object; var _local3:String; var _local4:Array; var _local5:Number; var _local6:Array; _local2 = {}; if (_arg1.stage){ _local3 = _arg1.stage.loaderInfo.parameters.mochiad_options; } else { _local3 = _arg1.loaderInfo.parameters.mochiad_options; }; if (_local3){ _local4 = _local3.split("&"); _local5 = 0; while (_local5 < _local4.length) { _local6 = _local4[_local5].split("="); _local2[unescape(_local6[0])] = unescape(_local6[1]); _local5++; }; }; return (_local2); } public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{ var vars:Object; var avm1Click:DisplayObject; var s:String; var i:Number; var x:String; var req:URLRequest; var loader:Loader; var setURL:Function; var err:Function; var complete:Function; var url = _arg1; var burl = _arg2; var btn = _arg3; var onClick = _arg4; vars = new Object(); vars["mav"] = getVersion(); vars["swfv"] = "9"; vars["swfurl"] = btn.loaderInfo.loaderURL; vars["fv"] = Capabilities.version; vars["os"] = Capabilities.os; vars["lang"] = Capabilities.language; vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY); s = "?"; i = 0; for (x in vars) { if (i != 0){ s = (s + "&"); }; i = (i + 1); s = (((s + x) + "=") + escape(vars[x])); }; req = new URLRequest("http://link.mochiads.com/linkping.swf"); loader = new Loader(); setURL = function (_arg1:String):void{ var _local2:Rectangle; if (avm1Click){ btn.removeChild(avm1Click); }; avm1Click = clickMovie(_arg1, onClick); _local2 = btn.getBounds(btn); btn.addChild(avm1Click); avm1Click.x = _local2.x; avm1Click.y = _local2.y; avm1Click.scaleX = (0.01 * _local2.width); avm1Click.scaleY = (0.01 * _local2.height); }; err = function (_arg1:Object):void{ netup = false; _arg1.target.removeEventListener(_arg1.type, arguments.callee); setURL(burl); }; complete = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; if (netup){ setURL((url + s)); } else { setURL(burl); }; if (!((netupAttempted) || (_connected))){ netupAttempted = true; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.load(req); }; } public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{ if (_clip.parent){ _clip.parent.removeChild(_clip); }; if (_arg1 != null){ if ((_arg1 is DisplayObjectContainer)){ _container = _arg1; }; }; if (_arg2){ if ((_container is DisplayObjectContainer)){ DisplayObjectContainer(_container).addChild(_clip); }; }; } private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{ var args = _arg1; var callbackObject = _arg2; var callbackMethod = _arg3; if (args != null){ if (args.onError != null){ args.onError.apply(null, ["NotConnected"]); }; if (((!((args.options == null))) && (!((args.options.onError == null))))){ args.options.onError.apply(null, ["NotConnected"]); }; }; if (callbackMethod != null){ args = {}; args.error = true; args.errorCode = "NotConnected"; if (((!((callbackObject == null))) && ((callbackMethod is String)))){ try { var _local5 = callbackObject; _local5[callbackMethod](args); } catch(error:Error) { }; } else { if (callbackMethod != null){ try { callbackMethod.apply(args); } catch(error:Error) { }; }; }; }; } private static function loadError(_arg1:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); } public static function get childClip():Object{ return (_clip); } private static function initComChannels():void{ if (!_connected){ trace("[SERVICES_API] connected!"); _connecting = false; _connected = true; _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _clip.onReceive = onReceive; _clip.onEvent = onEvent; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; while (_queue.length > 0) { _mochiLocalConnection.send(_sendChannelName, "onReceive", _queue.shift()); }; }; } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } private static function listen():void{ _mochiLocalConnection.connect(_listenChannelName); _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; trace("Waiting for MochiAds services to connect..."); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } private static function loadLCBridge(_arg1:Object):void{ var _local2:Loader; var _local3:String; var _local4:URLRequest; _local2 = new Loader(); _local3 = (_servURL + _mochiLC); _local4 = new URLRequest(_local3); _local2.contentLoaderInfo.addEventListener(Event.COMPLETE, detach); _local2.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, detach); _local2.contentLoaderInfo.addEventListener(Event.COMPLETE, loadLCBridgeComplete); _local2.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); _local2.load(_local4); _arg1.addChild(_local2); } public static function set comChannelName(_arg1:String):void{ if (_arg1 != null){ if (_arg1.length > 3){ _sendChannelName = (_arg1 + "_fromgame"); initComChannels(); }; }; } private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{ var _local3:String; var _local4:URLRequest; var _local5:URLVariables; if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (urlOptions(_arg2).servURL){ _servURL = urlOptions(_arg2).servURL; }; _local3 = (_servURL + _services); if (urlOptions(_arg2).servicesURL){ _local3 = urlOptions(_arg2).servicesURL; }; _listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999)))); MochiServices.allowDomains(_local3); _clip = new MovieClip(); loadLCBridge(_clip); _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, detach); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, detach); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); _local4 = new URLRequest(_local3); _local5 = new URLVariables(); _local5.listenLC = _listenChannelName; _local5.mochiad_options = _arg2.loaderInfo.parameters.mochiad_options; _local5.api_version = getVersion(); if (widget){ _local5.widget = true; }; _local4.data = _local5; _loader.load(_local4); _clip.addChild(_loader); _sendChannel = new LocalConnection(); _queue = []; _nextCallbackID = 0; _callbacks = {}; _timer = new Timer(10000, 1); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); return (_clip); } public static function get clip():Object{ return (_container); } public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{ var id = _arg1; var clip = _arg2; var onError = _arg3; warnID(id, false); if ((clip is DisplayObject)){ if (clip.stage == null){ trace("MochiServices connect requires the containing clip be attached to the stage"); }; if (((!(_connected)) && ((_clip == null)))){ trace("MochiServices Connecting..."); _connecting = true; init(id, clip); }; } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (_arg1:String):void{ trace(_arg1); }; }; }; } public static function bringToTop(_arg1:Event=null):void{ var e = _arg1; if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){ try { if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; } catch(errorObject:Error) { trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; } public static function connectWait(_arg1:TimerEvent):void{ if (!_connected){ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load. (timeout)"); MochiServices.disconnect(); MochiServices.onError("IOError"); } else { _timer.stop(); _timer.removeEventListener(TimerEvent.TIMER, connectWait); _timer = null; }; } } }//package mochi.as3
Section 32
//MochiSocial (mochi.as3.MochiSocial) package mochi.as3 { public class MochiSocial { public static const LOGGED_IN:String = "LoggedIn"; public static const ACTION_CANCELED:String = "onCancel"; public static const PROPERTIES_SIZE:String = "PropertiesSize"; public static const IO_ERROR:String = "IOError"; public static const NO_USER:String = "NoUser"; public static const FRIEND_LIST:String = "FriendsList"; public static const PROFILE_DATA:String = "ProfileData"; public static const GAMEPLAY_DATA:String = "GameplayData"; public static const ACTION_COMPLETE:String = "onComplete"; public static const LOGIN_SHOW:String = "LoginShow"; public static const PROFILE_HIDE:String = "ProfileHide"; public static const USER_INFO:String = "UserInfo"; public static const PROPERTIES_SAVED:String = "PropertySaved"; public static const WIDGET_LOADED:String = "WidgetLoaded"; public static const ERROR:String = "Error"; public static const LOGGED_OUT:String = "LoggedOut"; public static const PROFILE_SHOW:String = "ProfileShow"; public static const LOGIN_HIDE:String = "LoginHide"; public static const LOGIN_SHOWN:String = "LoginShown"; public static var _user_info:Object = null; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static function requestFan(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_requestFan", _arg1); } public static function postToStream(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_postToStream", _arg1); } public static function getFriendsList(_arg1:Object=null):void{ MochiServices.send("social_getFriendsList", _arg1); } public static function requestLogin(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_requestLogin", _arg1); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function saveUserProperties(_arg1:Object):void{ MochiServices.send("social_saveUserProperties", _arg1); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function inviteFriends(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_inviteFriends", _arg1); } public static function get loggedIn():Boolean{ return (!((_user_info == null))); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function showLoginWidget(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("social_showLoginWidget", {options:_arg1}); } public static function getAPIURL():String{ if (!_user_info){ return (null); }; return (_user_info.api_url); } public static function hideLoginWidget():void{ MochiServices.send("social_hideLoginWidget"); } public static function getAPIToken():String{ if (!_user_info){ return (null); }; return (_user_info.api_token); } MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{ _user_info = _arg1; }); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{ _user_info = null; }); } }//package mochi.as3
Section 33
//MochiUserData (mochi.as3.MochiUserData) package mochi.as3 { import flash.events.*; import flash.utils.*; import flash.net.*; public class MochiUserData extends EventDispatcher { public var callback:Function;// = null public var error:Event;// = null public var key:String;// = null public var operation:String;// = null public var data;// = null public var _loader:URLLoader; public function MochiUserData(_arg1:String="", _arg2:Function=null){ key = null; data = null; error = null; operation = null; callback = null; super(); this.key = _arg1; this.callback = _arg2; } public function securityErrorHandler(_arg1:SecurityErrorEvent):void{ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + _arg1.toString()))); } public function putEvent(_arg1):void{ request("put", serialize(_arg1)); } public function request(_arg1:String, _arg2:ByteArray):void{ var api_url:String; var api_token:String; var args:URLVariables; var req:URLRequest; var _operation = _arg1; var _data = _arg2; operation = _operation; api_url = MochiSocial.getAPIURL(); api_token = MochiSocial.getAPIToken(); if ((((api_url == null)) || ((api_token == null)))){ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, "not logged in")); return; }; _loader = new URLLoader(); args = new URLVariables(); args.op = _operation; args.key = key; req = new URLRequest((((MochiSocial.getAPIURL() + "/") + "MochiUserData?") + args.toString())); req.method = URLRequestMethod.POST; req.contentType = "application/x-mochi-userdata"; req.requestHeaders = [new URLRequestHeader("x-mochi-services-version", MochiServices.getVersion()), new URLRequestHeader("x-mochi-api-token", api_token)]; req.data = _data; _loader.dataFormat = URLLoaderDataFormat.BINARY; _loader.addEventListener(Event.COMPLETE, completeHandler); _loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); try { _loader.load(req); } catch(e:SecurityError) { errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + e.toString()))); }; } public function completeHandler(_arg1:Event):void{ var event = _arg1; try { if (_loader.data.length){ data = deserialize(_loader.data); } else { data = null; }; } catch(e:Error) { errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("deserialize error: " + e.toString()))); return; }; if (callback != null){ performCallback(); } else { dispatchEvent(event); }; close(); } public function performCallback():void{ try { callback(this); } catch(e:Error) { trace(("[MochiUserData] exception during callback: " + e)); }; } public function serialize(_arg1):ByteArray{ var _local2:ByteArray; _local2 = new ByteArray(); _local2.objectEncoding = ObjectEncoding.AMF3; _local2.writeObject(_arg1); _local2.compress(); return (_local2); } public function errorHandler(_arg1:IOErrorEvent):void{ data = null; error = _arg1; if (callback != null){ performCallback(); } else { dispatchEvent(_arg1); }; close(); } public function getEvent():void{ request("get", serialize(null)); } override public function toString():String{ return ((((((((("[MochiUserData operation=" + operation) + " key=\"") + key) + "\" data=") + data) + " error=\"") + error) + "\"]")); } public function close():void{ if (_loader){ _loader.removeEventListener(Event.COMPLETE, completeHandler); _loader.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); _loader.close(); _loader = null; }; error = null; callback = null; } public function deserialize(_arg1:ByteArray){ _arg1.objectEncoding = ObjectEncoding.AMF3; _arg1.uncompress(); return (_arg1.readObject()); } public static function get(_arg1:String, _arg2:Function):void{ var _local3:MochiUserData; _local3 = new MochiUserData(_arg1, _arg2); _local3.getEvent(); } public static function put(_arg1:String, _arg2, _arg3:Function):void{ var _local4:MochiUserData; _local4 = new MochiUserData(_arg1, _arg3); _local4.putEvent(_arg2); } } }//package mochi.as3
Section 34
//FPSCounter (pixelblitz.utils.FPSCounter) package pixelblitz.utils { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.text.*; public class FPSCounter extends Sprite { private var t:Timer; private var ticks:int; private var FPS:TextField; private var format:TextFormat; public function FPSCounter(_arg1:int=0, _arg2:int=0){ format = new TextFormat(); t = new Timer(1000); super(); this.x = _arg1; this.y = _arg2; createText(); t.addEventListener(TimerEvent.TIMER, updateFPS); addEventListener(Event.ENTER_FRAME, onEnterFrame); t.start(); } private function createText():void{ format.font = "Verdana"; format.size = 9; FPS = new TextField(); FPS.defaultTextFormat = format; FPS.autoSize = TextFieldAutoSize.LEFT; FPS.textColor = 0xFFFFFF; FPS.background = true; FPS.backgroundColor = 0x666666; FPS.antiAliasType = "advanced"; FPS.selectable = false; FPS.text = "FPS: "; addChild(FPS); } private function updateFPS(_arg1:TimerEvent):void{ FPS.text = ("FPS: " + ticks); ticks = 0; } private function onEnterFrame(_arg1:Event):void{ ticks++; } } }//package pixelblitz.utils
Section 35
//AchievementDisplay (src.Game.Achievements.AchievementDisplay) package src.Game.Achievements { import flash.display.*; import flash.geom.*; import flash.text.*; import utils.parentedmovieclip.*; public class AchievementDisplay extends ParentedMovieClip { private var descTxt:TextField; private var locked:Boolean; private var varname:String; private var desc:String; public var acName:TextField; public var acDesc:TextField; private var mark:MovieClip; private var nameTxt:TextField; public function AchievementDisplay(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:String, _arg4:String, _arg5:Boolean){ super(_arg1, _arg2); this.varname = _arg3; this.desc = _arg4; this.locked = _arg5; nameTxt = TextField(acName); descTxt = TextField(acDesc); nameTxt.text = this.varname; descTxt.text = this.desc; if (_arg5){ mark = new AchievementLockedMark(); } else { mark = new AchivementUnlockedMark(); }; addChild(mark); mark.x = 480; } } }//package src.Game.Achievements
Section 36
//AchievementManager (src.Game.Achievements.AchievementManager) package src.Game.Achievements { import flash.display.*; import src.Game.*; import flash.net.*; public class AchievementManager extends MovieClip { public static const IDX_GOLEM_KILLER:int = 3; public static const ZOMBIE_KILLER:int = 500; public static const IDX_DEFENDER:int = 2; public static const DEFENDER_DAMAGE:int = 100; public static const ACHIVEMENT_DESCRIPTION:Array = ["SCORE A CRITICAL HIT", "COMPLETE THE GAME ON ANY DIFFICULTY", (((("SURVIVE UNTIL WAVE " + DEFENDER_WAVE) + " WITH LESS THAN ") + DEFENDER_DAMAGE) + " DAMAGE TAKEN"), "KILL GOLEM ON NORMAL OR HARD DIFFICULTY", (("KILL " + ZOMBIE_KILLER) + " ZOMBIES"), "KILL ALIEN ON HARD DIFFICULTY", "SCORE 666 INSTANT DEATHS (ANY ONE SHOT KILL COUNTS)", "COMPLETE THE GAME ON HARD DIFFICULTY", "KILL 10 BUTCHERS", "FIRE 1000 BULLETS"]; public static const IDX_SATAN:int = 6; public static const DEFENDER_WAVE:int = 15; public static const IDX_BUTCHER:int = 8; public static const IDX_ZOMBASSACRE:int = 4; public static const IDX_SURVIVOR:int = 7; public static const IDX_SHOOTER:int = 9; public static const IDX_ALIENTASTIC:int = 5; public static const IDX_PROFICIENCY:int = 1; public static const ACHIEVEMENT_NAMES:Array = ["SHARP EYE", "PROFICIENCY", "DEFENDER", "GOLEM KILLER", "ZOMBASSACRE", "ALIENTASTIC", "SATAN", "SURVIVOR", "BUTCHERY", "SHOOTER"]; public static const IDX_SHARP_EYE:int = 0; public static var shared:SharedObject = SharedObject.getLocal("achievements"); public static var achievementArray:Array; public function AchievementManager(_arg1:DisplayObjectContainer){ } public static function init():void{ var _local1:int; if ((((((shared.data.achievements == null)) || ((shared.data.achievements == undefined)))) || (!((shared.data.achievements.length == ACHIEVEMENT_NAMES.length))))){ shared.data.achievements = new Array(); _local1 = ACHIEVEMENT_NAMES.length; while (_local1 > 0) { _local1--; shared.data.achievements.push(true); }; }; achievementArray = shared.data.achievements; shared.flush(); } public static function resetAllAchievements():void{ var _local1:SharedObject; var _local2:int; init(); _local1 = SharedObject.getLocal("achievements"); _local2 = ACHIEVEMENT_NAMES.length; while (_local2 > 0) { _local2--; _local1.data.achievements[_local2] = true; }; _local1.flush(); } public static function resetAchievement(_arg1:int):void{ var _local2:SharedObject; if (_arg1 >= ACHIEVEMENT_NAMES.length){ trace("ACHIVEMENT OUT OF RANGE"); return; }; _local2 = SharedObject.getLocal("achievements"); _local2.data.achievements[_arg1] = true; _local2.flush(); } public static function setAchievement(_arg1:int, _arg2:DisplayObjectContainer):AchievementMsg{ var _local3:SharedObject; var _local4:AchievementMsg; if (_arg1 >= ACHIEVEMENT_NAMES.length){ return (null); }; _local3 = SharedObject.getLocal("achievements"); trace(_arg1, _arg2, _local3.data.achievements[_arg1]); if (_local3.data.achievements[_arg1] == true){ _local4 = new AchievementMsg(Game.GAME_DISPLAY_CONTAINER, ACHIEVEMENT_NAMES[_arg1]); _local3.data.achievements[_arg1] = false; _local3.flush(); trace(_arg1, _arg2, _local3.data.achievements[_arg1]); return (_local4); }; return (null); } } }//package src.Game.Achievements
Section 37
//AchievementMsg (src.Game.Achievements.AchievementMsg) package src.Game.Achievements { import flash.display.*; import flash.geom.*; import src.Game.Gameplay.*; import src.Game.*; import flash.text.*; import utils.parentedmovieclip.*; public class AchievementMsg extends FrameablePMC { private const REMOVE_X:Number = -300; private const START_X:Number = -400; private const START_Y:Number = 510; private const END_FRAME:int = 40; private const END_X:Number = 0; private var framecount:int;// = 0 public var acName:TextField; public function AchievementMsg(_arg1:DisplayObjectContainer, _arg2:String){ framecount = 0; super(_arg1, Gameplay.achivementMsgArray, new Point(START_X, (START_Y + (height * (-(Gameplay.achivementMsgArray.length) - 1))))); acName.text = _arg2; SoundManagerClass.playSound("AchievementSound", 0.25); } override public function onFrame():void{ if (framecount < END_FRAME){ x = (x + ((END_X - x) / 4)); }; if (framecount++ >= END_FRAME){ x = (x + ((START_X - x) / 4)); if (x < REMOVE_X){ remove(); }; }; } } }//package src.Game.Achievements
Section 38
//AchievementsScreen (src.Game.Achievements.AchievementsScreen) package src.Game.Achievements { import flash.display.*; import flash.events.*; import flash.geom.*; import src.Game.Screens.*; import utils.parentedmovieclip.*; public class AchievementsScreen extends ParentedMovieClip { private const STARTY:int = 80; private const STARTX:int = 30; private const DY:int = 32; public var backB:button_back; public var sMC:MovieClip; private var back:SimpleButton; public function AchievementsScreen(_arg1:DisplayObjectContainer){ var _local2:MovieClip; super(_arg1, new Point(0, 0)); back = SimpleButton(backB); back.addEventListener(MouseEvent.CLICK, onBackClicked); _local2 = new AcMask(); addChild(_local2); addChild(back); addChild(sMC); _local2.width = 600; _local2.height = 510; _local2.alpha = 0.5; initAchievements(); } private function initAchievements():void{ var _local1:Array; var _local2:int; var _local3:*; AchievementManager.init(); _local1 = AchievementManager.achievementArray; _local2 = _local1.length; while (_local2 > 0) { _local2--; _local3 = new AchievementDisplay(this, new Point(STARTX, (STARTY + (_local2 * DY))), AchievementManager.ACHIEVEMENT_NAMES[_local2], AchievementManager.ACHIVEMENT_DESCRIPTION[_local2], _local1[_local2]); }; } private function onBackClicked(_arg1:MouseEvent):void{ remove(); dispatchEvent(new NavigationEvent(NavigationEvent.BACK)); } } }//package src.Game.Achievements
Section 39
//RankManager (src.Game.Achievements.RankManager) package src.Game.Achievements { import flash.display.*; import flash.net.*; import flash.text.*; public class RankManager extends MovieClip { private const rankScore:Array; private const ranks:Array; private var bestTxt:TextField; private var storeScores:Boolean; private var shared:SharedObject; private var score:Number; public var rankT:TextField; private var currentBestScore:Number; private var rankTxt:TextField; public var nextT:TextField; private var nextRank:TextField; public var bestT:TextField; public function RankManager(_arg1:DisplayObjectContainer, _arg2:Number, _arg3:Boolean=true){ ranks = ["Noob", "Novice", "Regular", "Veteran", "Expert", "Professional", "Uber-Player"]; rankScore = [0, 80, 140, 180, 210, 230, 250]; shared = SharedObject.getLocal("userData"); super(); this.score = _arg2; this.storeScores = _arg3; _arg1.addChild(this); rankTxt = TextField(rankT); bestTxt = TextField(bestT); nextRank = TextField(nextT); manageBestScore(); } private function getRankNr(_arg1:Number):int{ var _local2:int; _local2 = rankScore.length; while (_local2 > 1) { _local2--; if ((((_arg1 < rankScore[_local2])) && ((_arg1 >= rankScore[(_local2 - 1)])))){ return ((_local2 - 1)); }; }; return ((rankScore.length - 1)); } private function getCurrentBestScore():Number{ if ((((shared.data.bestScore == null)) || ((shared.data.bestScore == undefined)))){ shared.data.bestScore = new Number(); }; return (shared.data.bestScore); } public function resetAllRanks():void{ if ((((shared.data.bestScore == null)) || ((shared.data.bestScore == undefined)))){ shared.data.bestScore = new Number(); } else { shared.data.bestScore = 0; }; currentBestScore = 0; shared.flush(); display(); } private function manageBestScore():void{ currentBestScore = getCurrentBestScore(); if (score > currentBestScore){ currentBestScore = score; }; setBestScore(); display(); } private function display():void{ var _local1:int; _local1 = getRankNr(currentBestScore); rankTxt.text = ("Current rank: " + ranks[_local1]); bestTxt.text = ("Personal best: " + currentBestScore); if (_local1 == (rankScore.length - 1)){ nextRank.text = "Congratulations! Max rank reached! "; } else { nextRank.text = ("Score needed to achieve next rank: " + rankScore[(_local1 + 1)]); }; } private function setBestScore():void{ shared.data.bestScore = currentBestScore; shared.flush(); } } }//package src.Game.Achievements
Section 40
//BackgroundManager (src.Game.Background.BackgroundManager) package src.Game.Background { import utils.*; import flash.display.*; import flash.events.*; import flash.geom.*; import src.Game.Gameplay.Base.*; import utils.parentedmovieclip.*; import flash.filters.*; public class BackgroundManager extends ParentedMovieClip { private const NR_OBJECTS:Number = 100; private var myArray:Array; private var color:int;// = 0 private var colorM:ColorMatrix; public var base:Base; public function BackgroundManager(_arg1:DisplayObjectContainer){ myArray = []; color = 0; super(_arg1, new Point()); addChild(new Background()); base = new Base(this); addChild(base); addTransition(); } public function removeFadeOut():void{ color = 0; colorM = new ColorMatrix(); filters = [new ColorMatrixFilter(colorM)]; addEventListener(Event.ENTER_FRAME, onFadeFrame); } private function onFadeFrame(_arg1:Event):void{ color = (color + ((100 - color) * 0.15)); color++; colorM = new ColorMatrix(); colorM.adjustBrightness(-(color)); colorM.adjustSaturation(-(color)); filters = [new ColorMatrixFilter(colorM)]; if (color > 100){ dispatchEvent(new Event(Event.COMPLETE)); removeEventListener(Event.ENTER_FRAME, onFadeFrame); remove(); }; } private function onFrame(_arg1:Event):void{ color = (color + ((100 - color) * 0.15)); color++; colorM = new ColorMatrix(); colorM.adjustBrightness((-100 + color)); colorM.adjustSaturation((-100 + color)); filters = [new ColorMatrixFilter(colorM)]; if (color >= 100){ removeEventListener(Event.ENTER_FRAME, onFrame); filters = []; }; } private function addTransition():void{ colorM = new ColorMatrix(); colorM.adjustBrightness(-100); colorM.adjustSaturation(-100); filters = [new ColorMatrixFilter(colorM)]; addEventListener(Event.ENTER_FRAME, onFrame); } } }//package src.Game.Background
Section 41
//FacebookButton (src.Game.Buttons.FacebookButton) package src.Game.Buttons { import flash.display.*; import flash.events.*; import src.Wrapper.*; import flash.net.*; public class FacebookButton extends SimpleButton { private var description:String;// = "description=Don't touch golden skull if you find one. Here's what happens if you do!" private var title:String;// = "title=Zombies want my brains!!!" private var screenshot:String;// = "screenshot=http://www.teagames.com/skin2/gamescreenshots/bloodysunset.gif" private var swfURL:String;// = "swfurl=http://www.teagames.com/share/fb.swf&width=1&height=1" private var sharedURL:String;// = "url=http://www.teagames.com/games/bloodysunset/play.php?sms_ss=facebook" private var username:String;// = "username=teagames" public function FacebookButton(){ description = "description=Don't touch golden skull if you find one. Here's what happens if you do!"; sharedURL = "url=http://www.teagames.com/games/bloodysunset/play.php?sms_ss=facebook"; swfURL = "swfurl=http://www.teagames.com/share/fb.swf&width=1&height=1"; title = "title=Zombies want my brains!!!"; username = "username=teagames"; screenshot = "screenshot=http://www.teagames.com/skin2/gamescreenshots/bloodysunset.gif"; super(); addEventListener(MouseEvent.CLICK, onFB); } private function onFB(_arg1:MouseEvent):void{ var _local2:String; if (Wrapper.FB_ENDPOINT == null){ Wrapper.FB_ENDPOINT = "http://api.addthis.com/oexchange/0.8/forward/facebook/offer"; }; _local2 = ((((((((((((Wrapper.FB_ENDPOINT + "?") + sharedURL) + "&") + swfURL) + "&") + title) + "&") + description) + "&") + username) + "&") + screenshot); navigateToURL(new URLRequest(_local2)); } } }//package src.Game.Buttons
Section 42
//MusicButton (src.Game.Buttons.MusicButton) package src.Game.Buttons { import flash.display.*; import flash.events.*; import src.Game.*; public class MusicButton extends MovieClip { public function MusicButton(){ var _local1:Boolean; super(); buttonMode = true; _local1 = SoundManagerClass.musicFlag; if (_local1){ gotoAndStop(1); } else { gotoAndStop(2); }; addEventListener(MouseEvent.CLICK, onClicked); } private function onClicked(_arg1:MouseEvent):void{ var _local2:Boolean; _local2 = SoundManagerClass.musicFlag; if (_local2){ SoundManagerClass.stopMusic(); SoundManagerClass.musicFlag = false; gotoAndStop(2); } else { SoundManagerClass.musicFlag = true; SoundManagerClass.continueMusic(); gotoAndStop(1); }; } } }//package src.Game.Buttons
Section 43
//NormalButton (src.Game.Buttons.NormalButton) package src.Game.Buttons { import flash.display.*; import flash.events.*; import src.Game.*; public class NormalButton extends SimpleButton { public function NormalButton(){ addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); addEventListener(MouseEvent.CLICK, onMouseClicked); } private function onMouseOver(_arg1:MouseEvent):void{ SoundManagerClass.playSound("MouseOverSound", 1); } private function onMouseClicked(_arg1:MouseEvent):void{ SoundManagerClass.playSound("ClickSound", 1); } } }//package src.Game.Buttons
Section 44
//SoundButton (src.Game.Buttons.SoundButton) package src.Game.Buttons { import flash.display.*; import flash.events.*; import src.Game.*; public class SoundButton extends MovieClip { public function SoundButton(){ var _local1:Boolean; super(); buttonMode = true; _local1 = SoundManagerClass.soundFlag; if (_local1){ gotoAndStop(1); } else { gotoAndStop(2); }; addEventListener(MouseEvent.CLICK, onClicked); } private function onClicked(_arg1:MouseEvent):void{ var _local2:Boolean; _local2 = SoundManagerClass.soundFlag; if (_local2){ SoundManagerClass.soundFlag = false; gotoAndStop(2); } else { SoundManagerClass.soundFlag = true; gotoAndStop(1); }; } } }//package src.Game.Buttons
Section 45
//BaseData (src.Game.GameData.BaseData) package src.Game.GameData { public class BaseData { public static const BASE_HP_PER_UPGRADE:int = 100; public static const REPAIRMAN_UPGRADE_REPAIR_PER_MINUTE:int = 1; public static const REPAIRMAN_REPAIR_PER_MINUTE:int = 10; public static const TURRET_DAMAGE:int = 30; public static const BASE_REPAIRCOST_PER_HP:int = 5; public static const TURRET_COST_INCREASE:int = 100; public static const TURRET_FIRE_RATE_INCREASE:int = 1; public static const TURRET_RATE_OF_FIRE:int = 20; public static const BASE_HP:int = 100; public static const BASE_HP_COST_PER_UPGRADE:Array = [500, 1500, 4500, 12000, 35000]; public static const REPAIRMAN_UPGRADE_COST:int = 1000; public static const TURRET_COST:int = 100; public static const REPAIRMAN_UPGRADE_COST_INCREASE:int = 100; } }//package src.Game.GameData
Section 46
//Constants (src.Game.GameData.Constants) package src.Game.GameData { import flash.display.*; public class Constants { public static const FPS:int = 31; public static var GAME_CONTAINER:MovieClip; } }//package src.Game.GameData
Section 47
//MiscUpgradeData (src.Game.GameData.MiscUpgradeData) package src.Game.GameData { public class MiscUpgradeData { public static const TURRET_DESC:String = "Turret helps your defenses. At greater levels it does more damage and shoots faster."; public static const REPAIRS_HP:Number = 50; public static const REPAIRMAN_DESC:String = "Slowly repair your barracks during attacks."; public static const HELI_FIRE_RATE:Array = [100, 90, 80, 60, 70]; public static const REPAIRS_COST:Number = 100; public static const DESC_ARRAY:Array = [REPAIRS_DESC, REPAIRMAN_DESC, ENGINEERING_DESC, TURRET_DESC, HELI_DESC]; public static const REPAIRS_DELTA_COST:Number = 0; public static const HELI_NAME:String = "HELICOPTER"; public static const MISC_MAX_LEVEL:int = 4; public static const ENGINEERING_COST:Number = 1500; public static const HELI_DAMAGE:Array = [100, 130, 160, 190, 240]; public static const IDX_HELI:int = 4; public static const REPAIRMAN_DELTA_COST:Number = 3500; public static const TURRET_DAMAGE:Array = [5, 8, 11, 15, 20]; public static const HELI_COST:Number = 5000; public static const TURRET_COST:Number = 2500; public static const REPAIRMAN_COST:Number = 1000; public static const TURRET_FIRE_RATE:Array = [30, 25, 20, 15, 10]; public static const TURRET_DELTA_COST:Number = 4000; public static const IDX_REPAIRS:int = 0; public static const COST_ARRAY:Array = [REPAIRS_COST, REPAIRMAN_COST, ENGINEERING_COST, TURRET_COST, HELI_COST]; public static const HELI_DELTA_COST:Number = 6000; public static const REPAIRS_DESC:String = "Restores hit points to your barracks."; public static const REPAIRS_NAME:String = "REPAIRS"; public static const IDX_ENGINEERING:int = 2; public static const IDX_TURRET:int = 3; public static const ENGINEERING_NAME:String = "ENGINEERING"; public static const DELTA_ARRAY:Array = [REPAIRS_DELTA_COST, REPAIRMAN_DELTA_COST, ENGINEERING_DELTA_COST, TURRET_DELTA_COST, HELI_DELTA_COST]; public static const ENGINEERING_DESC:String = "Bigger max HP of barracks."; public static const ENGINEERING_DELTA_COST:Number = 5000; public static const NAMES_ARRAY:Array = [REPAIRS_NAME, REPAIRMAN_NAME, ENGINEERING_NAME, TURRET_NAME, HELI_NAME]; public static const IDX_REPAIRMEN:int = 1; public static const HELI_DESC:String = "Helicopter fires guided missiles that hit strongest targets."; public static const ENGINEERING_HP_PER_LEVEL:int = 100; public static const REPAIRMAN_HP_PER_LEVEL_PER_MINUTE:Number = 20; public static const TURRET_NAME:String = "TURRET"; public static const REPAIRMAN_NAME:String = "REPAIRMAN"; public static var UPGRADE_LVL_ARRAY:Array = []; public static function Init():void{ UPGRADE_LVL_ARRAY = [0, 0, 0, 0, 0]; } } }//package src.Game.GameData
Section 48
//PerkData (src.Game.GameData.PerkData) package src.Game.GameData { public class PerkData { public static const IDX_BIG_GUN_MASTER:int = 9; public static const HELI_MASTER:int = 18; public static const FAME_LOCKED_DESC:String = "REQUIRES: CHARACTER LEVEL 10"; public static const GEEK:int = 20; public static const FAST_SHOT:int = 10; public static const TURRET_DESCRIPTION:String = (("YOU HAVE A BIG TURRET. GIRLS LOVE IT. \n(TURRET DOES " + TURRET) + "% MORE DAMAGE PER LEVEL OF SKILL)"); public static const IDX_DEATHCRAFT:int = 5; public static const PISTOLERO_DESCRIPTION:String = (("YOU FEEL YOU DON'T BELONG TO THIS AGE? SHOULD HAVE BEEN BORN IN WILD WEST? \n(+" + PISTOLERO_CRITICAL_DAMAGE) + "% CRITICAL DAMAGE FOR PISTOLS PER LEVEL OF PERK.) \n\n REQ. SHARPSHOOTER, CHAR LVL 5"); public static const BLOOD_THIRSTY_DESCRIPTION:String = (("YOU'RE OVERLY AGGRESSIVE AND SIMPLY CAN'T WAIT TOO LONG TO MAKE A MASSACRE. \n(+" + BLOOD_THIRSTY) + "% FASTER RELOADING PER LEVEL OF THIS PERK)"); public static const HATRED_NAME:String = "HATRED"; public static const ENGINEERING:int = 10; public static const HATRED:int = 4; public static const RIFLEMAN_NAME:String = "RIFLEMAN"; public static const GEEK_DESCRIPTION:String = (("GEEKY NATURED? WELL, IT REALLY HELPS WHEN YOU WANT TO MODIFY THAT AMMO CAPACITY OF YOUR WEAPON. \n(+" + GEEK) + "% LARGER CLIP SIZE PER LEVEL OF THIS SKILL)"); public static const HATRED_LOCKED_DESC:String = "REQUIRES: CHARACTER LEVEL 10"; public static const DEATHCRAFT:int = 30; public static const HAPPY_SHOTGUN_DESCRIPTION:String = (("SHOTGUNS CAN DO A BLOODY MESS AND YOU'RE EAGER TO GET GOING! \n(+" + HAPPY_SHOTGUN_RELOADING) + "% FASTER RELOADING FOR SHOTGUNS PER LEVEL OF THIS PERK)"); public static const IDX_REPAIR_MASTER:int = 16; public static const BIG_GUN_MASTERY_DAMAGE:int = 20; public static const REPAIR_NAME:String = "REPAIR"; public static const FAME_DESCRIPTION:String = (("WINNER OF 'KILLEM ALL' AND 'NATURAL MASSACRE' REALITY SHOWS. \n(GET " + FAME) + "% MORE MONEY PER LEVEL OF THIS SKILL)"); public static const REPAIR_DESCRIPTION:String = (("CAN WE FIX IT? YES WE CAN! \n(REPAIRMAN WORK " + REPAIR) + "% FASTER PER LEVEL OF SKILL)"); public static const HATRED_DESCRIPTION:String = "YOU'RE SERIOUSLY DEMENTED AND HAVE SUPERNATURAL POWERS -> VERY BAD FOR YOUR ENEMIES. (ENEMIES HAVE SMALL CHANCE OF RANDOMLY DYING)"; public static const BLOOD_THIRSTY_NAME:String = "BLOOD THIRSTY"; public static const IDX_PRECISION:int = 1; public static const IDX_SHARPSHOOTER:int = 4; public static const IDX_HAPPY_SHOTGUN:int = 10; public static const IDX_PISTOLERO:int = 7; public static const PISTOLERO_CRITICAL_DAMAGE:int = 75; public static const DEATHCRAFT_DESCRIPTION:String = (("SOME PEOPLE ARE CAPABLE OF DOING SOME SERIOUS WOUNDS. YOU'RE INTERESTED IN KILLING ONLY. \n (YOUR CRITICALS HAVE " + DEATHCRAFT) + "% OF INSTANT DEATH CHANCE PER LEVEL OF THIS PERK)"); public static const IDX_ENGINEERING:int = 11; public static const STEADY_HANDS:int = 10; public static const ENGINEERING_LOCKED_DESC:String = "REQUIRES: CHARACTER LEVEL 10"; public static const HAPPY_SHOTGUN_NAME:String = "TRIGGER HAPPY"; public static const PRECISION:int = 7; public static const IDX_GEEK:int = 6; public static const IDX_HELI_MASTER:int = 13; public static const HELI_MASTER_LOCKED_DESC:String = "REQUIRES: CHARACTER LEVEL 10"; public static const ENGINEERING_NAME:String = "ENGINEERING"; public static const STEADY_HANDS_NAME:String = "STEADY HANDS"; public static const RIFLEMAN_LOCKED_DESC:String = "REQUIRES: CHARACTER LEVEL 5 ONE BLOOD THIRSTY LEVEL ONE REFLEXES LEVEL"; public static const TURRET_NAME:String = "BIG TURRET"; public static const PRECISION_DESCRIPTION:String = (("YOU'RE GENERALLY PRETTY GOOD WITH ANY TYPE OF GUN - AND YOUR ENEMIES WILL FEEL THAT. \n(+" + PRECISION) + "% MORE DAMAGE PER LEVEL OF THIS PERK)"); public static const FAST_SHOT_NAME:String = "REFLEXES"; public static const FAME:int = 12; public static const REPAIR:int = 20; public static const ENGINEERING_DESCRIPTION:String = (("THE DOCTOR OF ENGINEERING - YES, THAT'S YOU! \n(REDUCE " + ENGINEERING) + "% DAMAGE PER LEVEL OF SKILL)"); public static const REPAIR_LOCKED_DESC:String = "REQUIRES: CHARACTER LEVEL 10"; public static const HELI_MASTER_DESCRIPTION:String = (("YOUR ROBOTIC HELICOPTER IS DOING SUPER DAMAGE! \n(HELICOPTER DOES " + HELI_MASTER) + "% MORE DAMAGE PER LEVEL OF THIS SKILL)"); public static const RIFLEMAN_DESCRIPTION:String = (("YOUR DAD ALWAYS TOOK YOU TO DEER HUNTS. \n(+" + RIFLEMAN_RELOADING_AND_ATTACK_RATE) + "% FASTER RIFLE RELOADING AND SHOOTING PER LEVEL OF PERK)"); public static const HAPPY_SHOTGUN_RELOADING:int = 20; public static const BIG_GUN_LOCKED_DESC:String = "REQUIRES: CHARACTER LEVEL 5 ONE STEADY HANDS LEVEL"; public static const IDX_STEADY_HANDS:int = 3; public static const IDX_SUPER_TURRET:int = 15; public static const DEATHCRAFT_NAME:String = "DEATHCRAFT"; public static const HELI_MASTER_NAME:String = "HELIMASTER"; public static const SHARPSHOOTER_NAME:String = "SHARPSHOOTER"; public static const BIG_GUN_NAME:String = "ARNIE"; public static const HAPPY_SHOTGUN_LOCKED_DESC:String = "REQUIRES: CHARACTER LEVEL 5 ONE BLOOD THIRSTY LEVEL"; public static const FAME_NAME:String = "FAME"; public static const PISTOLERO_LOCKED_DESC:String = "REQUIRES: CHARACTER LEVEL 5 ONE SHARPSHOOTER LEVEL"; public static const PRECISION_NAME:String = "PAIN GIVER"; public static const IDX_BLOOD_THIRSTY:int = 2; public static const BIG_GUN_MASTERY_DESCRIPTION:String = (("STRONG LIKE ARNIE? WELL, CONTROLLING BIG GUNS IS MUCH EASIER FOR YOU. \n(+" + BIG_GUN_MASTERY_DAMAGE) + "% DAMAGE FOR BOZARS AND MINIGUNS PER LEVEL OF PERK)"); public static const TURRET_LOCKED_DESC:String = "REQUIRES: CHARACTER LEVEL 10"; public static const IDX_FAST_SHOT:int = 0; public static const PISTOLERO_NAME:String = "PISTOLERO"; public static const SHARPSHOOTER:int = 33; public static const GEEK_NAME:String = "GEEK"; public static const RIFLEMAN_RELOADING_AND_ATTACK_RATE:int = 7; public static const IDX_RIFLEMAN:int = 8; public static const IDX_FAME:int = 14; public static const BLOOD_THIRSTY:int = 10; public static const TURRET:int = 18; public static const IDX_HATRED:int = 12; public static const STEADY_HANDS_DESCRIPTION:String = (("THIS IS WHAT YOGA DID TO YOU - ALWAYS RELAXED AND CONCENTRATED. \n(+" + STEADY_HANDS) + "% BETTER PRECISION PER LEVEL OF THIS PERK, BIGGER RADIUS FOR SHOTGUNS)"); public static const SHARPSHOOTER_DESCRIPTION:String = (("THEY CALL YOU EAGLE-EYE DUDE. NOT WITHOUT A REASON. \n(+" + SHARPSHOOTER) + "% TO BASE CRITICAL SHOT CHANCE OF WEAPON PER LEVEL OF PERK - CRITICALS DO 2x + 20 DAMAGE)"); public static var PERK_LOCKED_DESC_ARRAY:Array = [PISTOLERO_LOCKED_DESC, RIFLEMAN_LOCKED_DESC, BIG_GUN_LOCKED_DESC, HAPPY_SHOTGUN_LOCKED_DESC, ENGINEERING_LOCKED_DESC, HATRED_LOCKED_DESC, HELI_MASTER_LOCKED_DESC, FAME_LOCKED_DESC, TURRET_LOCKED_DESC, REPAIR_LOCKED_DESC]; public static var PERK_DATA:Array; public static var PERK_NAME_ARRAY:Array = [FAST_SHOT_NAME, PRECISION_NAME, BLOOD_THIRSTY_NAME, STEADY_HANDS_NAME, SHARPSHOOTER_NAME, DEATHCRAFT_NAME, GEEK_NAME, PISTOLERO_NAME, RIFLEMAN_NAME, BIG_GUN_NAME, HAPPY_SHOTGUN_NAME, ENGINEERING_NAME, HATRED_NAME, HELI_MASTER_NAME, FAME_NAME, TURRET_NAME, REPAIR_NAME]; public static var FAST_SHOT_DESCRIPTION:String = (("THAT SQUIRREL HUNTING YOU DID AS A YOUNG BOY GOT YOU SOME PRETTY GOOD REFLEXES. \n(+" + FAST_SHOT) + "% FASTER SHOOTING PER LEVEL OF PERK)"); public static var PERK_DESC_ARRAY:Array = [FAST_SHOT_DESCRIPTION, PRECISION_DESCRIPTION, BLOOD_THIRSTY_DESCRIPTION, STEADY_HANDS_DESCRIPTION, SHARPSHOOTER_DESCRIPTION, DEATHCRAFT_DESCRIPTION, GEEK_DESCRIPTION, PISTOLERO_DESCRIPTION, RIFLEMAN_DESCRIPTION, BIG_GUN_MASTERY_DESCRIPTION, HAPPY_SHOTGUN_DESCRIPTION, ENGINEERING_DESCRIPTION, HATRED_DESCRIPTION, HELI_MASTER_DESCRIPTION, FAME_DESCRIPTION, TURRET_DESCRIPTION, REPAIR_DESCRIPTION]; public static function initPerkData():void{ PERK_DATA = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; } public static function increasePerkLevel(_arg1:int):void{ if ((((PERK_DATA[_arg1] < 3)) && ((PERK_DATA[_arg1] >= 0)))){ var _local2 = PERK_DATA; var _local3 = _arg1; var _local4 = (_local2[_local3] + 1); _local2[_local3] = _local4; } else { trace("Invalid perk index"); }; } public static function getCharLevel():int{ var _local1:int; var _local2:int; _local1 = PERK_DATA.length; _local2 = 0; while (_local1-- > 0) { _local2 = (_local2 + PERK_DATA[_local1]); }; return (_local2); } } }//package src.Game.GameData
Section 49
//SavedData (src.Game.GameData.SavedData) package src.Game.GameData { import utils.*; import src.Game.Gameplay.Base.*; import src.Game.Gameplay.UI.*; public class SavedData { public static var BASE_HP:Number; public static var WEAPON_EQUIPPED:int; public static var BASE_MAX:Number; public static var CASH:Number; public static var WEAPON_ARRAY:Array; public static var WEAPON_UPGRADES:Array; public static var MISC_DATA:Array; public static var PERKS_ARRAY:Array; public static function SaveData():void{ PERKS_ARRAY = ArrayClone.clone(PerkData.PERK_DATA); CASH = CashPrizeCounter.CASH; WEAPON_ARRAY = ArrayClone.clone(WeaponData.ALL_WEAPON_OWNERSHIP); WEAPON_UPGRADES = ArrayClone.clone(WeaponData.ALL_WEAPON_UPGRADES); WEAPON_EQUIPPED = WeaponData.EQUIPPED_WEAPON_IDX; MISC_DATA = ArrayClone.clone(MiscUpgradeData.UPGRADE_LVL_ARRAY); BASE_HP = BaseModel.hitPoints; BASE_MAX = BaseModel.maxHitPoints; } public static function LoadData():void{ WeaponData.EQUIPPED_WEAPON_IDX = WEAPON_EQUIPPED; PerkData.PERK_DATA = PERKS_ARRAY; CashPrizeCounter.CASH = CASH; WeaponData.ALL_WEAPON_OWNERSHIP = WEAPON_ARRAY; WeaponData.ALL_WEAPON_UPGRADES = WEAPON_UPGRADES; MiscUpgradeData.UPGRADE_LVL_ARRAY = MISC_DATA; BaseModel.maxHitPoints = BASE_MAX; BaseModel.hitPoints = BASE_HP; } } }//package src.Game.GameData
Section 50
//WaveData (src.Game.GameData.WaveData) package src.Game.GameData { public class WaveData { public static const WAVE24:Array = [40, 20, 24, 15, 30, 24, 10, 3]; public static const WAVE_DURATION_SECONDS:int = 60; public static const ENEMY_TYPES:int = 8; public static const WAVE1:Array = [16, 0, 0, 0, 0, 0, 0, 0]; public static const WAVE2:Array = [21, 1, 0, 0, 0, 0, 0, 0]; public static const WAVE3:Array = [27, 3, 0, 0, 0, 0, 0, 0]; public static const WAVE4:Array = [32, 5, 1, 0, 0, 0, 0, 0]; public static const WAVE5:Array = [40, 10, 2, 0, 0, 0, 0, 0]; public static const WAVE6:Array = [45, 15, 3, 1, 0, 0, 0, 0]; public static const WAVE7:Array = [45, 21, 4, 0, 0, 0, 0, 0]; public static const WAVE8:Array = [40, 28, 7, 1, 0, 0, 0, 0]; public static const WAVE9:Array = [40, 30, 11, 2, 0, 0, 0, 0]; public static const WAVE19:Array = [40, 20, 20, 15, 15, 12, 2, 0]; public static const WAVE13:Array = [40, 30, 16, 12, 10, 0, 0, 0]; public static const WAVE14:Array = [40, 20, 16, 14, 15, 0, 0, 0]; public static const WAVE15:Array = [40, 25, 20, 15, 15, 1, 0, 0]; public static const WAVE16:Array = [40, 20, 16, 15, 15, 4, 0, 0]; public static const WAVE17:Array = [40, 20, 16, 15, 15, 8, 0, 0]; public static const WAVE10:Array = [40, 30, 15, 4, 0, 0, 0, 0]; public static const WAVE11:Array = [40, 30, 16, 9, 1, 0, 0, 0]; public static const WAVE12:Array = [40, 30, 16, 10, 5, 0, 0, 0]; public static const WAVE_DURATION_FRAMES:int = 1860; public static const WAVE18:Array = [40, 20, 16, 15, 15, 12, 1, 0]; public static const WAVE20:Array = [40, 20, 24, 15, 15, 12, 4, 0]; public static const WAVE21:Array = [40, 20, 16, 15, 15, 12, 6, 1]; public static const WAVE22:Array = [40, 20, 20, 15, 15, 12, 9, 2]; public static const WAVE23:Array = [40, 20, 24, 15, 15, 12, 10, 3]; public static const WAVE25:Array = [40, 20, 24, 15, 30, 24, 12, 6]; public static var ALL_WAVE_ARRAY:Array = [WAVE1, WAVE2, WAVE3, WAVE4, WAVE5, WAVE6, WAVE7, WAVE8, WAVE9, WAVE10, WAVE11, WAVE12, WAVE13, WAVE14, WAVE15, WAVE16, WAVE17, WAVE18, WAVE19, WAVE20, WAVE21, WAVE22, WAVE23, WAVE24, WAVE25]; } }//package src.Game.GameData
Section 51
//WeaponData (src.Game.GameData.WeaponData) package src.Game.GameData { public class WeaponData { public static const HK_P90_DAMAGE:Array = [10, 12, 14, 16, 18]; public static const PISTOL_RATE_OF_FIRE_COST:Array = [0, 150, 200, 300, 350]; public static const PISTOL_COST_DATA:Array = new Array(PISTOL_DAMAGE_COST, PISTOL_RATE_OF_FIRE_COST, PISTOL_RELOAD_TIME_COST, PISTOL_CLIP_SIZE_COST); public static const ASSAULT_RIFLE_CRITICAL_CHANCE:Number = 2; public static const HK_P90_NAME:String = "AP90 SMG (AUTOMATIC)"; public static const HK_P90_DESC:String = "Its great rate of fire more than makes up for its low damage."; public static const SNIPER_RELOAD_TIME_COST:Array = [8000, 600, 750, 1000, 1250]; public static const COMBAT_SHOTGUN_SIZE:Array = [12, 15, 18, 21, 24]; public static const MINIGUN_RADIUS:Number = 30; public static const BOZAR_DAMAGE:Array = [28, 32, 36, 40, 45]; public static const SHOTGUN_SIZE_COST:Array = [6000, 500, 600, 750, 1000]; public static const BOZAR_CRITICAL_CHANCE:Number = 2; public static const HK_P90_SIZE_COST:Array = [10000, 750, 1000, 1250, 1500]; public static const UZI_RELOAD_TIME:Array = [55, 50, 45, 40, 36]; public static const GAUSS_RELOAD_TIME_COST:Array = [36000, 2000, 2500, 3000, 5000]; public static const ALL_WEAPON_DATA_ARRAY:Array = [PISTOL_DATA, UZI_DATA, MAGNUM_DATA, ASSAULT_RIFLE_DATA, SHOTGUN_DATA, SNIPER_DATA, HK_P90_DATA, MINIGUN_DATA, COMBAT_SHOTGUN_DATA, PPK12_DATA, BOZAR_DATA, GAUSS_DATA]; public static const IDX_SHOTGUN:int = 4; public static const MAGNUM_RELOAD_TIME_COST:Array = [2000, 300, 400, 500, 600]; public static const PISTOL_NAME:String = "10mm Pistol (SINGLE SHOT)"; public static const ASSAULT_RIFLE_RATE_OF_FIRE:Array = [300, 350, 400, 450, 500]; public static const PISTOL_DESC:String = "Your starting gun. A classic. Single shot, moderate critical chance."; public static const PISTOL_RADIUS:Number = 12; public static const SHOTGUN_DATA:Array = [SHOTGUN_DAMAGE, SHOTGUN_RATE_OF_FIRE, SHOTGUN_RELOAD_TIME, SHOTGUN_SIZE, SHOTGUN_CRITICAL_CHANCE, SHOTGUN_RADIUS, SHOTGUN_CLASS, SHOTGUN_NAME, SHOTGUN_DESC]; public static const GAUSS_SIZE_COST:Array = [36000, 2000, 2500, 3000, 5000]; public static const ASSAULT_RIFLE_RADIUS:Number = 15; public static const IDX_CLIP_SIZE:int = 3; public static const IDX_RADIUS:int = 5; public static const BOZAR_CLASS:int = 3; public static const BOZAR_COST_DATA:Array = [BOZAR_DAMAGE_COST, BOZAR_RATE_OF_FIRE_COST, BOZAR_RELOAD_TIME_COST, BOZAR_SIZE_COST]; public static const SNIPER_CRITICAL_CHANCE:Number = 45; public static const IDX_AK47:int = 3; public static const PISTOL_CLASS:int = 0; public static const PPK12_DAMAGE_COST:Array = [18000, 1250, 1500, 2000, 2500]; public static const SNIPER_RATE_OF_FIRE:Array = [100, 120, 150, 180, 210]; public static const PISTOL_RELOAD_TIME_COST:Array = [0, 150, 200, 300, 350]; public static const ASSAULT_RIFLE_NAME:String = "AK-47 (AUTOMATIC)"; public static const UZI_COST_DATA:Array = [UZI_DAMAGE_COST, UZI_RATE_OF_FIRE_COST, UZI_RELOAD_TIME_COST, UZI_CLIP_SIZE_COST]; public static const ASSAULT_RIFLE_DESC:String = "Perhaps the most known automatic assault rifle ever. Excellent overall weapon."; public static const BOZAR_DATA:Array = [BOZAR_DAMAGE, BOZAR_RATE_OF_FIRE, BOZAR_RELOAD_TIME, BOZAR_SIZE, BOZAR_CRITICAL_CHANCE, BOZAR_RADIUS, BOZAR_CLASS, BOZAR_NAME, BOZAR_DESC]; public static const SHOTGUN_RATE_OF_FIRE_COST:Array = [6000, 500, 600, 750, 1000]; public static const SHOTGUN_SIZE:Array = [5, 6, 7, 8, 10]; public static const SNIPER_DAMAGE:Array = [50, 60, 70, 80, 90]; public static const MINIGUN_DATA:Array = [MINIGUN_DAMAGE, MINIGUN_RATE_OF_FIRE, MINIGUN_RELOAD_TIME, MINIGUN_SIZE, MINIGUN_CRITICAL_CHANCE, MINIGUN_RADIUS, MINIGUN_CLASS, MINIGUN_NAME, MINIGUN_DESC]; public static const UZI_DATA:Array = [UZI_DAMAGE, UZI_RATE_OF_FIRE, UZI_RELOAD_TIME, UZI_CLIP_SIZE, UZI_CRITICAL_CHANCE, UZI_RADIUS, UZI_CLASS, UZI_NAME, UZI_DESC]; public static const MAGNUM_RELOAD_TIME:Array = [70, 63, 55, 50, 45]; public static const MINIGUN_DAMAGE_COST:Array = [12000, 750, 1000, 1250, 1500]; public static const IDX_SNIPER:int = 5; public static const HK_P90_RATE_OF_FIRE:Array = [300, 450, 550, 700, 800]; public static const MAGNUM_RATE_OF_FIRE_COST:Array = [2000, 400, 500, 600, 750]; public static const MAGNUM_CRITICAL_CHANCE:Number = 30; public static const BOZAR_SIZE_COST:Array = [20000, 1250, 1500, 2000, 2500]; public static const MAGNUM_COST_DATA:Array = [MAGNUM_DAMAGE_COST, MAGNUM_RATE_OF_FIRE_COST, MAGNUM_RELOAD_TIME_COST, MAGNUM_CLIP_SIZE_COST]; public static const BIG_GUNS_CLASS_TYPE:int = 3; public static const SNIPER_DATA:Array = [SNIPER_DAMAGE, SNIPER_RATE_OF_FIRE, SNIPER_RELOAD_TIME, SNIPER_SIZE, SNIPER_CRITICAL_CHANCE, SNIPER_RADIUS, SNIPER_CLASS, SNIPER_NAME, SNIPER_DESC]; public static const COMBAT_SHOTGUN_RELOAD_TIME_COST:Array = [15000, 1000, 1250, 1500, 2000]; public static const MAGNUM_RADIUS:Number = 15; public static const PPK12_RATE_OF_FIRE_COST:Array = [18000, 1250, 1500, 2000, 2500]; public static const BOZAR_SIZE:Array = [45, 50, 55, 60, 65]; public static const MINIGUN_CRITICAL_CHANCE:Number = 0.5; public static const PISTOL_RATE_OF_FIRE:Array = [120, 135, 150, 180, 210]; public static const PISTOL_CRITICAL_CHANCE:Number = 15; public static const COMBAT_SHOTGUN_RELOAD_TIME:Array = [55, 50, 46, 43, 40]; public static const PPK12_RELOAD_TIME_COST:Array = [18000, 1250, 1500, 2000, 2500]; public static const MINIGUN_SIZE:Array = [350, 400, 500, 550, 600]; public static const PPK12_CLASS:int = 0; public static const IDX_GAUSS_RIFLE:int = 11; public static const HK_P90_RADIUS:Number = 8; public static const COMBAT_SHOTGUN_CRITICAL_CHANCE:Number = 1; public static const UZI_DAMAGE_COST:Array = [1000, 300, 400, 500, 600]; public static const IDX_MAGNUM:int = 2; public static const HK_P90_DATA:Array = [HK_P90_DAMAGE, HK_P90_RATE_OF_FIRE, HK_P90_RELOAD_TIME, HK_P90_SIZE, HK_P90_CRITICAL_CHANCE, HK_P90_RADIUS, HK_P90_CLASS, HK_P90_NAME, HK_P90_DESC]; public static const PPK12_DESC:String = "Two stage coil gun. The speed of fired bullets make their damage extreme, highest critical rate amongst pistols."; public static const PPK12_NAME:String = "Gauss Pistol (SINGLE SHOT)"; public static const SNIPER_SIZE:Array = [5, 6, 8, 10, 12]; public static const BOZAR_RADIUS:Number = 18; public static const IDX_PISTOL:int = 0; public static const UZI_RATE_OF_FIRE:Array = [500, 550, 600, 700, 800]; public static const PPK12_DAMAGE:Array = [60, 75, 90, 120, 150]; public static const BOZAR_RATE_OF_FIRE_COST:Array = [20000, 1250, 1500, 2000, 2500]; public static const ALL_WEAPON_COST_DATA_ARRAY:Array = [PISTOL_COST_DATA, UZI_COST_DATA, MAGNUM_COST_DATA, ASSAULT_RIFLE_COST_DATA, SHOTGUN_COST_DATA, SNIPER_COST_DATA, HK_P90_COST_DATA, MINIGUN_COST_DATA, COMBAT_SHOTGUN_COST_DATA, PPK12_COST_DATA, BOZAR_COST_DATA, GAUSS_COST_DATA]; public static const PISTOL_DATA:Array = new Array(PISTOL_DAMAGE, PISTOL_RATE_OF_FIRE, PISTOL_RELOAD_TIME, PISTOL_CLIP_SIZE, PISTOL_CRITICAL_CHANCE, PISTOL_RADIUS, PISTOL_CLASS, PISTOL_NAME, PISTOL_DESC); public static const ASSAULT_RIFLE_RELOAD_TIME:Array = [70, 63, 55, 50, 45]; public static const IDX_RELOAD:int = 2; public static const SNIPER_RATE_OF_FIRE_COST:Array = [8000, 600, 750, 1000, 1250]; public static const SHOTGUN_CRITICAL_CHANCE:Number = 1; public static const MINIGUN_COST_DATA:Array = [MINIGUN_DAMAGE_COST, MINIGUN_RATE_OF_FIRE_COST, MINIGUN_RELOAD_TIME_COST, MINIGUN_SIZE_COST]; public static const PISTOL_CLASS_TYPE:int = 0; public static const SNIPER_COST_DATA:Array = [SNIPER_DAMAGE_COST, SNIPER_RATE_OF_FIRE_COST, SNIPER_RELOAD_TIME_COST, SNIPER_SIZE_COST]; public static const BOZAR_RELOAD_TIME:Array = [55, 50, 47, 43, 40]; public static const HK_P90_SIZE:Array = [27, 30, 34, 37, 40]; public static const HK_P90_RELOAD_TIME:Array = [27, 24, 21, 18, 16]; public static const IDX_RATE_OF_FIRE:int = 1; public static const IDX_UZI:int = 1; public static const MAGNUM_DAMAGE_COST:Array = [2000, 400, 500, 600, 750]; public static const COMBAT_SHOTGUN_CLASS:int = 2; public static const HK_P90_CRITICAL_CHANCE:Number = 2; public static const ASSAULT_RIFLE_DATA:Array = [ASSAULT_RIFLE_DAMAGE, ASSAULT_RIFLE_RATE_OF_FIRE, ASSAULT_RIFLE_RELOAD_TIME, ASSAULT_RIFLE_SIZE, ASSAULT_RIFLE_CRITICAL_CHANCE, ASSAULT_RIFLE_RADIUS, ASSAULT_RIFLE_CLASS, ASSAULT_RIFLE_NAME, ASSAULT_RIFLE_DESC]; public static const IDX_MINIGUN:int = 7; public static const UZI_DAMAGE:Array = [4, 5, 6, 7, 7.5]; public static const GAUSS_RELOAD_TIME:Array = [47, 43, 40, 36, 33]; public static const GAUSS_DAMAGE:Array = [105, 120, 135, 150, 180]; public static const SNIPER_RADIUS:Number = 8; public static const SHOTGUN_DAMAGE:Array = [22, 25, 28, 30, 32]; public static const GAUSS_NAME:String = "Gauss Rifle (AUTOMATIC)"; public static const GAUSS_DESC:String = "Expands on two-staged coil concept. Best overall weapon. Critical hits happening almost as often as with sniper rifle."; public static const MAGNUM_NAME:String = "Magnum (SINGLE SHOT)"; public static const COMBAT_SHOTGUN_DAMAGE_COST:Array = [15000, 1000, 1250, 1500, 2000]; public static const MAGNUM_DESC:String = "No explanation needed. Devastating gun, but somewhat lower rate of fire."; public static const GAUSS_CRITICAL_CHANCE:Number = 20; public static const SNIPER_SIZE_COST:Array = [8000, 600, 750, 1000, 1250]; public static const SNIPER_CLASS:int = 1; public static const PPK12_COST_DATA:Array = [PPK12_DAMAGE_COST, PPK12_RATE_OF_FIRE_COST, PPK12_RELOAD_TIME_COST, PPK12_SIZE_COST]; public static const MINIGUN_SIZE_COST:Array = [12000, 750, 1000, 1250, 1500]; public static const SHOTGUN_RELOAD_TIME_COST:Array = [6000, 500, 600, 750, 1000]; public static const ASSAULT_RIFLE_SIZE:Array = [35, 45, 55, 65, 75]; public static const HK_P90_CLASS:int = 1; public static const BOZAR_RELOAD_TIME_COST:Array = [20000, 1250, 1500, 2000, 2500]; public static const MINIGUN_RATE_OF_FIRE:Array = [600, 800, 1100, 1400, 1700]; public static const PPK12_DATA:Array = [PPK12_DAMAGE, PPK12_RATE_OF_FIRE, PPK12_RELOAD_TIME, PPK12_SIZE, PPK12_CRITICAL_CHANCE, PPK12_RADIUS, PPK12_CLASS, PPK12_NAME, PPK12_DESC]; public static const ASSAULT_RIFLE_CLASS:int = 1; public static const ASSAULT_RIFLE_COST_DATA:Array = [ASSAULT_RIFLE_DAMAGE_COST, ASSAULT_RIFLE_RATE_OF_FIRE_COST, ASSAULT_RIFLE_RELOAD_TIME_COST, ASSAULT_RIFLE_SIZE_COST]; public static const ASSAULT_RIFLE_DAMAGE_COST:Array = [4500, 400, 500, 600, 800]; public static const HK_P90_RELOAD_TIME_COST:Array = [10000, 750, 1000, 1250, 1500]; public static const SNIPER_RELOAD_TIME:Array = [75, 70, 63, 55, 45]; public static const GAUSS_CLASS:int = 1; public static const UZI_CLIP_SIZE_COST:Array = [1000, 300, 400, 500, 600]; public static const PPK12_SIZE_COST:Array = [18000, 1250, 1500, 2000, 2500]; public static const IDX_BOZAR:int = 10; public static const PPK12_RADIUS:Number = 5; public static const HK_P90_DAMAGE_COST:Array = [10000, 750, 1000, 1250, 1500]; public static const COMBAT_SHOTGUN_DAMAGE:Array = [40, 45, 50, 55, 60]; public static const IDX_CRIT_CHANCE:int = 4; public static const BOZAR_DAMAGE_COST:Array = [20000, 1250, 1500, 2000, 2500]; public static const GAUSS_RATE_OF_FIRE:Array = [330, 360, 390, 420, 450]; public static const MAGNUM_RATE_OF_FIRE:Array = [100, 120, 150, 165, 180]; public static const CRITICAL_HIT_MULTIPLIER:Number = 3; public static const COMBAT_SHOTGUN_NAME:String = "Combat shotgun (AUTOMATIC)"; public static const COMBAT_SHOTGUN_DESC:String = "Much faster version of regular shotgun."; public static const GAUSS_DAMAGE_COST:Array = [36000, 3000, 5000, 7000, 10000]; public static const PPK12_SIZE:Array = [27, 30, 34, 37, 40]; public static const PISTOL_CLIP_SIZE:Array = [6, 7, 8, 9, 10]; public static const ASSAULT_RIFLE_SIZE_COST:Array = [4500, 400, 500, 600, 800]; public static const SHOTGUN_RELOAD_TIME:Array = [70, 63, 55, 50, 45]; public static const PISTOL_CLIP_SIZE_COST:Array = [0, 200, 250, 300, 400]; public static const UZI_RADIUS:Number = 10; public static const MINIGUN_RELOAD_TIME_COST:Array = [12000, 750, 1000, 1250, 1500]; public static const PISTOL_RELOAD_TIME:Array = [55, 51, 47, 43, 40]; public static const SHOTGUN_RATE_OF_FIRE:Array = [70, 80, 90, 95, 100]; public static const PPK12_RATE_OF_FIRE:Array = [170, 190, 210, 240, 270]; public static const MINIGUN_CLASS:int = 3; public static const MINIGUN_DAMAGE:Array = [6, 7, 8, 10, 12]; public static const SHOTGUN_RADIUS:Number = 35; public static const GAUSS_RADIUS:Number = 5; public static const GAUSS_DATA:Array = [GAUSS_DAMAGE, GAUSS_RATE_OF_FIRE, GAUSS_RELOAD_TIME, GAUSS_SIZE, GAUSS_CRITICAL_CHANCE, GAUSS_RADIUS, GAUSS_CLASS, GAUSS_NAME, GAUSS_DESC]; public static const MAGNUM_DATA:Array = [MAGNUM_DAMAGE, MAGNUM_RATE_OF_FIRE, MAGNUM_RELOAD_TIME, MAGNUM_CLIP_SIZE, MAGNUM_CRITICAL_CHANCE, MAGNUM_RADIUS, MAGNUM_CLASS, MAGNUM_NAME, MAGNUM_DESC]; public static const COMBAT_SHOTGUN_RATE_OF_FIRE_COST:Array = [15000, 1000, 1250, 1500, 2000]; public static const PISTOL_DAMAGE:Array = [10, 11, 12, 14, 16]; public static const COMBAT_SHOTGUN_COST_DATA:Array = [COMBAT_SHOTGUN_DAMAGE_COST, COMBAT_SHOTGUN_RATE_OF_FIRE_COST, COMBAT_SHOTGUN_RELOAD_TIME_COST, COMBAT_SHOTGUN_SIZE_COST]; public static const PPK12_CRITICAL_CHANCE:Number = 40; public static const BOZAR_RATE_OF_FIRE:Array = [500, 600, 700, 800, 900]; public static const SHOTGUN_DESC:String = "Excellent damage, low rate of fire, great for crowd control."; public static const SHOTGUN_NAME:String = "DB Shotgun (SINGLE SHOT)"; public static const SNIPER_DAMAGE_COST:Array = [8000, 600, 750, 1000, 1250]; public static const ASSAULT_RIFLE_DAMAGE:Array = [12, 14, 16, 18, 20]; public static const IDX_DAMAGE:int = 0; public static const ASSAULT_RIFLE_RATE_OF_FIRE_COST:Array = [4500, 400, 500, 600, 800]; public static const UZI_CLIP_SIZE:Array = [25, 30, 35, 40, 45]; public static const IDX_HKP90:int = 6; public static const COMBAT_SHOTGUN_RATE_OF_FIRE:Array = [150, 180, 210, 230, 250]; public static const GAUSS_SIZE:Array = [40, 45, 50, 55, 60]; public static const IDX_PPK12_GAUSS:int = 9; public static const ASSAULT_RIFLE_RELOAD_TIME_COST:Array = [4500, 400, 500, 600, 800]; public static const MAGNUM_CLASS:int = 0; public static const UZI_RELOAD_TIME_COST:Array = [1000, 300, 400, 500, 600]; public static const MINIGUN_RATE_OF_FIRE_COST:Array = [12000, 750, 1000, 1250, 1500]; public static const MAGNUM_CLIP_SIZE_COST:Array = [2000, 300, 400, 500, 600]; public static const UZI_RATE_OF_FIRE_COST:Array = [1000, 300, 400, 500, 600]; public static const BOZAR_NAME:String = "Bozar (AUTOMATIC)"; public static const BOZAR_DESC:String = "Ultimate crowd control heavy gun."; public static const UZI_CLASS:int = 1; public static const PPK12_RELOAD_TIME:Array = [33, 30, 27, 24, 21]; public static const MINIGUN_NAME:String = "Personal Minigun (AUTOMATIC)"; public static const MAGNUM_CLIP_SIZE:Array = [6, 7, 8, 10, 12]; public static const UZI_NAME:String = "10mm-SMG (AUTOMATIC)"; public static const MINIGUN_DESC:String = "If massive slaughter is your choice then minigun is the way to go."; public static const UZI_DESC:String = "Very fine automatic weapon. Excellent fire rate, but low damage and critical chance."; public static const IDX_COMBAT_SGUN:int = 8; public static const RIFLE_CLASS_TYPE:int = 1; public static const HK_P90_RATE_OF_FIRE_COST:Array = [10000, 750, 1000, 1250, 1500]; public static const SHOTGUN_CLASS_TYPE:int = 2; public static const SHOTGUN_CLASS:int = 2; public static const SHOTGUN_COST_DATA:Array = [SHOTGUN_DAMAGE_COST, SHOTGUN_RATE_OF_FIRE_COST, SHOTGUN_RELOAD_TIME_COST, SHOTGUN_SIZE_COST]; public static const SHOTGUN_DAMAGE_COST:Array = [6000, 500, 600, 750, 1000]; public static const HK_P90_COST_DATA:Array = [HK_P90_DAMAGE_COST, HK_P90_RATE_OF_FIRE_COST, HK_P90_RELOAD_TIME_COST, HK_P90_SIZE_COST]; public static const COMBAT_SHOTGUN_SIZE_COST:Array = [15000, 1000, 1250, 1500, 2000]; public static const COMBAT_SHOTGUN_RADIUS:Number = 30; public static const PISTOL_DAMAGE_COST:Array = [0, 250, 300, 350, 400]; public static const IDX_WEAPON_CLASS:int = 6; public static const UZI_CRITICAL_CHANCE:Number = 2; public static const MAGNUM_DAMAGE:Array = [25, 28, 32, 37, 45]; public static const MINIGUN_RELOAD_TIME:Array = [110, 100, 90, 85, 80]; public static const SNIPER_DESC:String = "Devastating damage, great precision and excellent critical chance make this gun very popular."; public static const SNIPER_NAME:String = "Sniper (SINGLE SHOT)"; public static const COMBAT_SHOTGUN_DATA:Array = [COMBAT_SHOTGUN_DAMAGE, COMBAT_SHOTGUN_RATE_OF_FIRE, COMBAT_SHOTGUN_RELOAD_TIME, COMBAT_SHOTGUN_SIZE, COMBAT_SHOTGUN_CRITICAL_CHANCE, COMBAT_SHOTGUN_RADIUS, COMBAT_SHOTGUN_CLASS, COMBAT_SHOTGUN_NAME, COMBAT_SHOTGUN_DESC]; public static const GAUSS_RATE_OF_FIRE_COST:Array = [36000, 3000, 5000, 7000, 10000]; public static const GAUSS_COST_DATA:Array = [GAUSS_DAMAGE_COST, GAUSS_RATE_OF_FIRE_COST, GAUSS_RELOAD_TIME_COST, GAUSS_SIZE_COST]; public static var BOZAR_UPGRADE_DATA:Array; public static var COMBAT_SHOTGUN_UPGRADE_DATA:Array; public static var SNIPER_UPGRADE_DATA:Array; public static var HK_P90_UPGRADE_DATA:Array; public static var PISTOL_UPGRADE_DATA:Array; public static var ALL_WEAPON_UPGRADES:Array; public static var UZI_UPGRADE_DATA:Array; public static var ASSSAULT_RIFLE_UPGRADE_DATA:Array; public static var MINIGUN_UPGRADE_DATA:Array; public static var EQUIPPED_WEAPON_IDX:int; public static var GAUSS_UPGRADE_DATA:Array; public static var MAGNUM_UPGRADE_DATA:Array; public static var PPK12_UPGRADE_DATA:Array; public static var SHOTGUN_UPGRADE_DATA:Array; public static var ALL_WEAPON_OWNERSHIP:Array = [true, false, false, false, false, false, false, false, false, false, false, false]; public static function Init():void{ ALL_WEAPON_OWNERSHIP = [true, false, false, false, false, false, false, false, false, false, false, false]; EQUIPPED_WEAPON_IDX = 0; PISTOL_UPGRADE_DATA = [0, 0, 0, 0]; UZI_UPGRADE_DATA = [0, 0, 0, 0]; MAGNUM_UPGRADE_DATA = [0, 0, 0, 0]; ASSSAULT_RIFLE_UPGRADE_DATA = [0, 0, 0, 0]; SHOTGUN_UPGRADE_DATA = [0, 0, 0, 0]; SNIPER_UPGRADE_DATA = [0, 0, 0, 0]; HK_P90_UPGRADE_DATA = [0, 0, 0, 0]; MINIGUN_UPGRADE_DATA = [0, 0, 0, 0]; COMBAT_SHOTGUN_UPGRADE_DATA = [0, 0, 0, 0]; PPK12_UPGRADE_DATA = [0, 0, 0, 0]; BOZAR_UPGRADE_DATA = [0, 0, 0, 0]; GAUSS_UPGRADE_DATA = [0, 0, 0, 0]; ALL_WEAPON_UPGRADES = [PISTOL_UPGRADE_DATA, UZI_UPGRADE_DATA, MAGNUM_UPGRADE_DATA, ASSSAULT_RIFLE_UPGRADE_DATA, SHOTGUN_UPGRADE_DATA, SNIPER_UPGRADE_DATA, HK_P90_UPGRADE_DATA, MINIGUN_UPGRADE_DATA, COMBAT_SHOTGUN_UPGRADE_DATA, PPK12_UPGRADE_DATA, BOZAR_UPGRADE_DATA, GAUSS_UPGRADE_DATA]; } } }//package src.Game.GameData
Section 52
//Base (src.Game.Gameplay.Base.Base) package src.Game.Gameplay.Base { import flash.display.*; import flash.geom.*; import src.Game.Gameplay.*; import src.Game.GameData.*; import flash.text.*; import utils.parentedmovieclip.*; import src.Game.Gameplay.UI.*; public class Base extends FrameablePMC { private const BASE_TEXT_ARRAY:Array; private var frame1TH:Number; public var commentDuration:int;// = 155 public var myTxt:TextField; private var smokeArray:Array; public var hitPoints:Number; public var commentDurationCounter:int;// = 0 public var commentFlag:Boolean;// = false private var myT:TextField; public var repairDeltaTime:int; private var frame2TH:Number; public var frameCount:int;// = 0 public var repairMan:int; public var commentOccurance:int;// = 775 public var hpCounter:HPCounter; public function Base(_arg1:DisplayObjectContainer){ hitPoints = BaseModel.hitPoints; frameCount = 0; commentDuration = (Constants.FPS * 5); commentDurationCounter = 0; commentFlag = false; commentOccurance = (25 * Constants.FPS); frame1TH = (BaseModel.maxHitPoints * 0.66); frame2TH = (BaseModel.maxHitPoints * 0.33); smokeArray = []; BASE_TEXT_ARRAY = ["...great, now I'm stranded in this godforsaken hut forever...", " ... #$%& you golden skull ...", " ... you'll never get me alive...", " ...I should have became a lawyer... or a dentist...", " #$%&!!!", "... I am so screwed... ", "... of all the graves in the world...", "... ffs, how long will this last...", "...woot, more zombies", "... tomb raiding ftw, yeah right...", "... okay I got it, I'll never touch your precious skull again...", "dieeeeee!!!!", "...scumbags...", "...should have stayed at home to play some cool games...", "...grave robbing can't get uglier than this", "well... um... I guess it can always get worse for you in life", "I am dreaming, I'm gonna wake up every moment now...", "shiizzz... this sucks", "... I'm gonna kill every single one of you ...", " ... these monsters are annoying ...", "... way to go mr. Tomb Raider ...", "... how many of these guys are there ...", "... no more zombies, please ...", "... I'll just shoot them until they're dead ...", "... bullet for the undead ...", "... a bit of help here perhaps ...", "WTF??", "...Joey, you've really done it this time...", "... I'm in it only for the money..."]; super(_arg1, Gameplay.baseArray, new Point(410, 290)); scaleX = (scaleY = 1.11); gotoAndStop(1); myT = TextField(myTxt); cacheAsBitmap = true; } public function addRandomSmoke():void{ var _local1:Number; var _local2:Number; var _local3:MovieClip; if (smokeArray.length > 4){ return; }; _local1 = ((40 + (Math.random() * 100)) + x); _local2 = ((40 + (Math.random() * 80)) + y); _local3 = new Explosion(Constants.GAME_CONTAINER, smokeArray, new Point(_local1, _local2)); } public function Init():void{ var _local1:int; var _local2:Number; rotation = 0; smokeArray = []; this.repairMan = (MiscUpgradeData.UPGRADE_LVL_ARRAY[MiscUpgradeData.IDX_REPAIRMEN] * MiscUpgradeData.REPAIRMAN_HP_PER_LEVEL_PER_MINUTE); _local1 = (Constants.FPS * 60); _local2 = (1 - ((PerkData.PERK_DATA[PerkData.IDX_REPAIR_MASTER] * PerkData.REPAIR) * 0.01)); repairDeltaTime = Math.ceil(((_local2 * _local1) / repairMan)); this.frameArray = Gameplay.baseArray; Gameplay.baseArray.push(this); hpCounter = new HPCounter(BaseModel.hitPoints, BaseModel.maxHitPoints); manageAnimation(); hitPoints = BaseModel.hitPoints; frame1TH = (BaseModel.maxHitPoints * 0.66); frame2TH = (BaseModel.maxHitPoints * 0.33); } private function manageAnimation():void{ if (hitPoints > frame1TH){ gotoAndStop(1); } else { if (hitPoints > frame2TH){ gotoAndStop(2); } else { gotoAndStop(3); }; }; } override public function onFrame():void{ var _local1:int; var _local2:int; hitPoints = BaseModel.TakeDamage(0); manageAnimation(); if ((frameCount++ % repairDeltaTime) == (repairDeltaTime - 1)){ BaseModel.Repair(1); hpCounter.updateHPCounter(BaseModel.hitPoints); }; _local1 = smokeArray.length; while (_local1-- > 0) { smokeArray[_local1].onFrame(); }; if ((frameCount % commentOccurance) == (5 * Constants.FPS)){ myT = TextField(myTxt); commentFlag = true; _local2 = Math.floor((Math.random() * BASE_TEXT_ARRAY.length)); myT.text = ("" + BASE_TEXT_ARRAY[_local2]); trace("TEXT"); }; if (commentFlag == true){ commentDurationCounter++; if (commentDurationCounter == commentDuration){ commentDurationCounter = 0; commentFlag = false; myT.text = ""; }; }; } public function takeDamage(_arg1:Number):void{ var _local2:Number; var _local3:Number; _local2 = (PerkData.ENGINEERING * PerkData.PERK_DATA[PerkData.IDX_ENGINEERING]); _local3 = ((1 - (_local2 * 0.01)) * _arg1); hitPoints = BaseModel.TakeDamage(_local3); hpCounter.updateHPCounter(hitPoints); manageAnimation(); if (hitPoints <= 0){ dispatchEvent(new BaseEvent(BaseEvent.KILLED)); }; } } }//package src.Game.Gameplay.Base
Section 53
//BaseEvent (src.Game.Gameplay.Base.BaseEvent) package src.Game.Gameplay.Base { import flash.events.*; public class BaseEvent extends Event { public static const KILLED:String = "string"; public function BaseEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("BaseEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new BaseEvent(type, bubbles, cancelable)); } } }//package src.Game.Gameplay.Base
Section 54
//BaseModel (src.Game.Gameplay.Base.BaseModel) package src.Game.Gameplay.Base { import src.Game.GameData.*; public class BaseModel { public static var instantDeaths:int; public static var zombiesKilled:int; public static var maxHitPoints:int; public static var baseLevel:int; public static var totalDamageTaken:int; public static var hitPoints:Number; public static var repairsLevel:int; public static function FullyRepaired():Boolean{ if (hitPoints == maxHitPoints){ return (true); }; return (false); } public static function InitBaseData():void{ instantDeaths = 0; zombiesKilled = 0; totalDamageTaken = 0; baseLevel = 0; repairsLevel = 0; maxHitPoints = BaseData.BASE_HP; hitPoints = maxHitPoints; } public static function Repair(_arg1:int):void{ hitPoints = (hitPoints + _arg1); if (hitPoints > maxHitPoints){ hitPoints = maxHitPoints; }; } public static function IncreaseMaxHP(_arg1):void{ maxHitPoints = (maxHitPoints + _arg1); hitPoints = (hitPoints + _arg1); } public static function RepairToFull():void{ hitPoints = maxHitPoints; } public static function InitHP():void{ maxHitPoints = (BaseData.BASE_HP + (BaseData.BASE_HP_PER_UPGRADE * baseLevel)); } public static function TakeDamage(_arg1:Number):Number{ hitPoints = (hitPoints - _arg1); totalDamageTaken = (totalDamageTaken + _arg1); return (hitPoints); } } }//package src.Game.Gameplay.Base
Section 55
//Explosion (src.Game.Gameplay.Base.Explosion) package src.Game.Gameplay.Base { import flash.display.*; import flash.geom.*; import utils.parentedmovieclip.*; public class Explosion extends FrameablePMC { public function Explosion(_arg1:DisplayObjectContainer, _arg2:Array, _arg3:Point){ super(_arg1, _arg2, _arg3); } override public function onFrame():void{ if (currentFrame == totalFrames){ remove(); }; } } }//package src.Game.Gameplay.Base
Section 56
//CollisionManager (src.Game.Gameplay.Collision.CollisionManager) package src.Game.Gameplay.Collision { import flash.events.*; import src.Game.Gameplay.Weapon.*; import flash.geom.*; import src.Game.Gameplay.Enemies.*; import src.Game.Gameplay.Base.*; import src.Game.Gameplay.*; import src.Game.Gameplay.Turrets.*; import src.Game.GameData.*; import src.Game.Gameplay.ParticleEffect.*; public class CollisionManager extends EventDispatcher { private var enemyArray:Array; public function CollisionManager(_arg1:Array){ this.enemyArray = _arg1; } public function returnStrongestEnemyIdx():int{ var _local1:int; var _local2:int; var _local3:Number; var _local4:Enemy; _local1 = enemyArray.length; _local2 = -1; _local3 = 0; while (_local1-- > 0) { _local4 = Enemy(enemyArray[_local1]); if (_local4.hitPoints > _local3){ _local3 = _local4.hitPoints; _local2 = _local1; }; }; return (_local2); } public function enemyToAmmoCollision(_arg1:Hero, _arg2:Weapon):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:int; var _local7:Boolean; var _local8:Enemy; var _local9:ParticleExplosion; var _local10:Explosion; _local3 = (_arg1.diameter / 4); _local4 = Math.floor((_arg1.x + ((-1 + (2 * Math.random())) * _local3))); _local5 = Math.floor((_arg1.y + ((-1 + (2 * Math.random())) * _local3))); _local6 = enemyArray.length; _local7 = false; while (_local6-- > 0) { _local8 = Enemy(enemyArray[_local6]); if (_arg2.weaponTypeIdx == WeaponData.SHOTGUN_CLASS_TYPE){ if (distance(new Point(_arg1.x, _arg1.y), new Point(_local8.x, _local8.y)) < (2 * _local3)){ _local8.takeDamage(_arg2.damage, _arg2.criticalChance, _arg2.weaponTypeIdx); if (!(_local8 is Enemy7)){ _local9 = new ParticleExplosion(new Point(_arg1.x, _arg1.y), 0); }; _local7 = true; }; } else { if (distance(new Point(_arg1.x, _arg1.y), new Point(_local8.x, _local8.y)) < (_local8.defaultWidth + (2 * _local3))){ if (((((_local8.hitTestPoint((_local4 + 3), _local5)) || (_local8.hitTestPoint(_local4, _local5)))) || (_local8.hitTestPoint((_local4 + 5), _local5)))){ _local8.takeDamage(_arg2.damage, _arg2.criticalChance, _arg2.weaponTypeIdx); if (!(_local8 is Enemy7)){ _local9 = new ParticleExplosion(new Point(_arg1.x, _arg1.y), 0); }; return; }; }; }; }; if ((((_local7 == false)) && ((Constants.GAME_CONTAINER.stage.mouseY > 200)))){ _local9 = new ParticleExplosion(new Point(_local4, _local5), 1); if (Gameplay.explosionArray.length < 6){ _local10 = new Explosion(Constants.GAME_CONTAINER, Gameplay.explosionArray, new Point(_local4, _local5)); }; }; } public function enemyToHelicopterCollision(_arg1:HeliTurret):void{ var _local2:int; var _local3:Enemy; _local2 = returnStrongestEnemyIdx(); if (_local2 >= 0){ _local3 = Enemy(enemyArray[_local2]); _local3.takeDamage(_arg1.damage, 0, -1); }; } public function distance(_arg1:Point, _arg2:Point):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public function returnClosestEnemyIdx():int{ var _local1:int; var _local2:int; var _local3:Number; var _local4:Enemy; _local1 = enemyArray.length; _local2 = -1; _local3 = 0; while (_local1-- > 0) { _local4 = Enemy(enemyArray[_local1]); if (_local4.x > _local3){ _local3 = _local4.x; _local2 = _local1; }; }; return (_local2); } public function enemyToTurretCollision(_arg1:BaseTurret):void{ var _local2:int; var _local3:Enemy; _local2 = returnClosestEnemyIdx(); if (_local2 >= 0){ _local3 = Enemy(enemyArray[_local2]); _local3.takeDamage(_arg1.damage, 0, -1); }; } } }//package src.Game.Gameplay.Collision
Section 57
//CriticalHitAnim (src.Game.Gameplay.Enemies.CriticalHitAnim) package src.Game.Gameplay.Enemies { import flash.display.*; import flash.geom.*; import utils.parentedmovieclip.*; public class CriticalHitAnim extends FrameablePMC { public function CriticalHitAnim(_arg1:DisplayObjectContainer, _arg2:Array, _arg3:Point){ super(_arg1, _arg2, _arg3); scaleX = (scaleY = 1.5); rotation = -135; } override public function onFrame():void{ if (currentFrame == totalFrames){ remove(); }; } } }//package src.Game.Gameplay.Enemies
Section 58
//CriticalHitEvent (src.Game.Gameplay.Enemies.CriticalHitEvent) package src.Game.Gameplay.Enemies { import flash.events.*; public class CriticalHitEvent extends Event { public static const CRIT:String = "crit"; public function CriticalHitEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("CriticalHitEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new CriticalHitEvent(type, bubbles, cancelable)); } } }//package src.Game.Gameplay.Enemies
Section 59
//Enemy (src.Game.Gameplay.Enemies.Enemy) package src.Game.Gameplay.Enemies { import flash.display.*; import flash.geom.*; import src.Game.Gameplay.Base.*; import src.Game.Gameplay.*; import src.Game.Achievements.*; import src.Game.*; import src.Game.GameData.*; import utils.parentedmovieclip.*; public class Enemy extends FrameablePMC { private const FRAMES_TO_DIE:int = 160; public var defaultWidth:int; private var hpMax:int; public var myState:int; private var defaultAttackYCoord:int;// = 350 public var hitPoints:int; public var myTotalY:Number; public var myIdx:int; public var damage:int; public var cashPrize:Number; public var frameCount:int;// = 0 public var attackXCoord:int; public var base:Base; private var FRAMES_TO_DEALPHA:int;// = 40 public var velocity:Number; public var framesToShoot:Number; public static const STATE_ATTACK:int = 1; public static const STATE_DIE:int = 2; public static const STATE_RUN:int = 0; public static var criticalHit:Boolean = false; public function Enemy(_arg1:Point, _arg2:int, _arg3:Number, _arg4:int, _arg5:Number, _arg6:int, _arg7:Base, _arg8:Number){ var _local9:Number; var _local10:Number; var _local11:Number; frameCount = 0; FRAMES_TO_DEALPHA = (FRAMES_TO_DIE / 4); defaultAttackYCoord = 350; this.cashPrize = _arg8; this.base = _arg7; this.attackXCoord = _arg4; this.hitPoints = (_arg2 * (1 + (0.25 * Game.difficulty))); this.velocity = _arg3; this.framesToShoot = _arg5; this.damage = _arg6; this.hpMax = _arg2; defaultWidth = width; _local9 = _arg1.y; _local10 = (_local9 - defaultAttackYCoord); _local11 = (_local10 / 3); this.attackXCoord = (this.attackXCoord + _local11); super(Constants.GAME_CONTAINER, Gameplay.enemyArray, _arg1); manageDepth(); gotoRunState(); } protected function attack():void{ var _local1:MovieClip; _local1 = MovieClip(getChildAt(0)); if ((frameCount % framesToShoot) == 0){ _local1.gotoAndPlay(1); }; if (_local1.currentFrame == 1){ _local1.gotoAndPlay(2); }; if (_local1.currentFrame == (_local1.totalFrames - 1)){ _local1.gotoAndStop(_local1.totalFrames); base.takeDamage(damage); SoundManagerClass.PlayAttackSound(myIdx); }; } private function gotoRunState():void{ myState = STATE_RUN; gotoAndStop((myState + 1)); } protected function gotoDieState():void{ if (myState != STATE_DIE){ cacheAsBitmap = true; dispatchEvent(new EnemyDeadEvent(EnemyDeadEvent.DEAD)); myState = STATE_DIE; gotoAndStop((myState + 1)); }; } protected function die():void{ var _local1:MovieClip; if (numChildren > 0){ _local1 = MovieClip(getChildAt(0)); if (_local1){ if (_local1.currentFrame == (_local1.totalFrames - 1)){ frameCount = 0; _local1.gotoAndStop(_local1.totalFrames); }; if (_local1.currentFrame == _local1.totalFrames){ if ((frameCount % FRAMES_TO_DEALPHA) == 0){ alpha = (alpha - 0.2); }; if (frameCount == FRAMES_TO_DIE){ remove(); }; }; }; }; } private function manageDepth():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:Enemy; var _local5:Number; var _local6:Enemy; var _local7:int; myTotalY = (y + (height / 2)); Gameplay.enemyArray = Gameplay.enemyArray.sortOn("myTotalY", Array.NUMERIC); _local1 = frameArray.length; _local2 = frameArray.indexOf(this); _local3 = -1; while (_local1-- > 0) { _local4 = frameArray[_local1]; _local5 = _local4.myTotalY; if (myTotalY < _local5){ _local3 = _local1; }; }; if (_local3 > 0){ _local6 = Enemy(frameArray[_local3]); _local7 = parent.getChildIndex(_local6); parent.addChildAt(this, _local7); }; } protected function run():void{ x = (x + velocity); if (x > attackXCoord){ gotoAttackState(); }; } private function gotoAttackState():void{ myState = STATE_ATTACK; frameCount = 0; gotoAndStop((myState + 1)); } override public function onFrame():void{ var _local1:Number; frameCount++; if ((frameCount % 50) == 1){ _local1 = (PerkData.HATRED * PerkData.PERK_DATA[PerkData.IDX_HATRED]); if ((Math.random() * 100) <= _local1){ trace("HATRED"); gotoDieState(); }; }; if (myState == STATE_RUN){ run(); } else { if (myState == STATE_ATTACK){ attack(); } else { if (myState == STATE_DIE){ die(); } else { throw (new Error("Invalid State")); }; }; }; if ((((((((x < -50)) || ((x > 600)))) || ((y < 0)))) || ((y > 510)))){ die(); }; } public function stopAnimation():void{ var _local1:MovieClip; _local1 = MovieClip(getChildAt(0)); _local1.gotoAndStop(_local1.currentFrame); } public function takeDamage(_arg1:Number, _arg2:Number, _arg3:int):void{ var _local4:Number; var _local5:CriticalHitAnim; var _local6:Number; var _local7:Number; if (hitPoints == hpMax){ if (_arg1 >= hpMax){ BaseModel.instantDeaths++; if (BaseModel.instantDeaths == 666){ AchievementManager.setAchievement(AchievementManager.IDX_SATAN, Constants.GAME_CONTAINER); }; }; }; _local4 = _arg1; if (_arg1 < hpMax){ x = (x - int(((_arg1 / hpMax) * 10))); } else { x = (x - 6); }; if ((Math.random() * 100) < _arg2){ dispatchEvent(new CriticalHitEvent(CriticalHitEvent.CRIT)); _local4 = (_local4 * WeaponData.CRITICAL_HIT_MULTIPLIER); _local4 = (_local4 + 20); _local5 = new CriticalHitAnim(parent, Gameplay.explosionArray, new Point((x - width), y)); SoundManagerClass.playSound("CriticalHitSound", 0.2); if (criticalHit == false){ criticalHit = true; AchievementManager.setAchievement(AchievementManager.IDX_SHARP_EYE, Constants.GAME_CONTAINER); }; _local6 = (PerkData.DEATHCRAFT * PerkData.PERK_DATA[PerkData.IDX_DEATHCRAFT]); if ((Math.random() * 100) < _local6){ gotoDieState(); trace("INSTA_DEATH"); return; }; if (_arg3 == WeaponData.PISTOL_CLASS_TYPE){ _local7 = ((0.01 * PerkData.PISTOLERO_CRITICAL_DAMAGE) * PerkData.PERK_DATA[PerkData.IDX_PISTOLERO]); _local4 = (_local4 * (1 + _local7)); }; }; hitPoints = (hitPoints - _local4); if (hitPoints <= 0){ gotoDieState(); }; } } }//package src.Game.Gameplay.Enemies
Section 60
//Enemy2 (src.Game.Gameplay.Enemies.Enemy2) package src.Game.Gameplay.Enemies { import flash.geom.*; import src.Game.Gameplay.Base.*; import src.Game.Achievements.*; import src.Game.*; public class Enemy2 extends Enemy { public static const CASH_PRIZE:Number = 100; public static const DAMAGE:Number = 2; public static const FRAMES_TO_SHOOT:Number = 40; public static const HIT_POINTS:Number = 65; public static const ATTACK_POINT:Number = 300; public static const VELOCITY:Number = 1; public static var killedCount:int = 0; public function Enemy2(_arg1:Base){ var _local2:Point; myIdx = 1; _local2 = new Point(0, (300 + (Math.random() * 100))); super(_local2, HIT_POINTS, VELOCITY, ATTACK_POINT, FRAMES_TO_SHOOT, DAMAGE, _arg1, CASH_PRIZE); } override protected function gotoDieState():void{ if (myState == STATE_DIE){ return; }; SoundManagerClass.playSound("Enemy2DieSound", 0.66); if (killedCount++ == 10){ AchievementManager.setAchievement(AchievementManager.IDX_BUTCHER, Game.GAME_DISPLAY_CONTAINER); }; super.gotoDieState(); } } }//package src.Game.Gameplay.Enemies
Section 61
//Enemy3 (src.Game.Gameplay.Enemies.Enemy3) package src.Game.Gameplay.Enemies { import flash.geom.*; import src.Game.Gameplay.Base.*; import src.Game.*; public class Enemy3 extends Enemy { public static const CASH_PRIZE:Number = 150; public static const DAMAGE:Number = 1; public static const FRAMES_TO_SHOOT:Number = 30; public static const HIT_POINTS:Number = 75; public static const ATTACK_POINT:Number = 300; public static const VELOCITY:Number = 8; public function Enemy3(_arg1:Base){ var _local2:Point; myIdx = 2; _local2 = new Point(0, (300 + (Math.random() * 100))); super(_local2, HIT_POINTS, VELOCITY, ATTACK_POINT, FRAMES_TO_SHOOT, DAMAGE, _arg1, CASH_PRIZE); } override protected function gotoDieState():void{ if (myState == STATE_DIE){ return; }; SoundManagerClass.playSound("Enemy3DieSound", 0.33); super.gotoDieState(); } } }//package src.Game.Gameplay.Enemies
Section 62
//Enemy4 (src.Game.Gameplay.Enemies.Enemy4) package src.Game.Gameplay.Enemies { import flash.geom.*; import src.Game.Gameplay.Base.*; import src.Game.*; public class Enemy4 extends Enemy { public static const CASH_PRIZE:Number = 175; public static const DAMAGE:Number = 5; public static const FRAMES_TO_SHOOT:Number = 60; public static const HIT_POINTS:Number = 120; public static const ATTACK_POINT:Number = 390; public static const VELOCITY:Number = 4; public function Enemy4(_arg1:Base){ var _local2:Point; myIdx = 3; _local2 = new Point(0, (300 + (Math.random() * 100))); super(_local2, HIT_POINTS, VELOCITY, ATTACK_POINT, FRAMES_TO_SHOOT, DAMAGE, _arg1, CASH_PRIZE); } override protected function gotoDieState():void{ if (myState == STATE_DIE){ return; }; SoundManagerClass.playSound("Enemy4DieSound", 0.33); super.gotoDieState(); } } }//package src.Game.Gameplay.Enemies
Section 63
//Enemy5 (src.Game.Gameplay.Enemies.Enemy5) package src.Game.Gameplay.Enemies { import flash.geom.*; import src.Game.Gameplay.Base.*; import src.Game.*; public class Enemy5 extends Enemy { public static const CASH_PRIZE:Number = 200; public static const DAMAGE:Number = 5; public static const FRAMES_TO_SHOOT:Number = 60; public static const HIT_POINTS:Number = 250; public static const ATTACK_POINT:Number = 300; public static const VELOCITY:Number = 4; public function Enemy5(_arg1:Base){ var _local2:Point; myIdx = 4; _local2 = new Point(0, (300 + (Math.random() * 100))); super(_local2, HIT_POINTS, VELOCITY, ATTACK_POINT, FRAMES_TO_SHOOT, DAMAGE, _arg1, CASH_PRIZE); } override protected function gotoDieState():void{ if (myState == STATE_DIE){ return; }; SoundManagerClass.playSound("Enemy5DieSound", 0.33); super.gotoDieState(); } } }//package src.Game.Gameplay.Enemies
Section 64
//Enemy6 (src.Game.Gameplay.Enemies.Enemy6) package src.Game.Gameplay.Enemies { import flash.display.*; import flash.geom.*; import src.Game.Gameplay.Base.*; import src.Game.*; public class Enemy6 extends Enemy { public static const CASH_PRIZE:Number = 250; public static const DAMAGE:Number = 12; public static const FRAMES_TO_SHOOT:Number = 100; public static const HIT_POINTS:Number = 400; public static const ATTACK_POINT:Number = 200; public static const VELOCITY:Number = 3; public function Enemy6(_arg1:Base){ var _local2:Point; myIdx = 5; _local2 = new Point(0, (300 + (Math.random() * 100))); super(_local2, HIT_POINTS, VELOCITY, ATTACK_POINT, FRAMES_TO_SHOOT, DAMAGE, _arg1, CASH_PRIZE); } override protected function attack():void{ var _local1:int; var _local2:Number; var _local3:MovieClip; _local1 = 40; _local2 = (damage / _local1); _local3 = MovieClip(getChildAt(0)); if ((frameCount % framesToShoot) == 0){ _local3.gotoAndPlay(1); }; if (_local3.currentFrame == 1){ _local3.gotoAndPlay(2); }; if ((((_local3.currentFrame >= 45)) && ((_local3.currentFrame <= (45 + _local1))))){ base.takeDamage(_local2); }; if (_local3.currentFrame == (_local3.totalFrames - 1)){ _local3.gotoAndStop(_local3.totalFrames); }; } override protected function gotoDieState():void{ if (myState == STATE_DIE){ return; }; SoundManagerClass.playSound("Enemy6DieSound", 0.33); super.gotoDieState(); } } }//package src.Game.Gameplay.Enemies
Section 65
//Enemy7 (src.Game.Gameplay.Enemies.Enemy7) package src.Game.Gameplay.Enemies { import flash.display.*; import flash.geom.*; import src.Game.Gameplay.Base.*; import src.Game.Achievements.*; import src.Game.*; import src.Game.GameData.*; public class Enemy7 extends Enemy { public static const CASH_PRIZE:Number = 300; public static const DAMAGE:Number = 20; public static const FRAMES_TO_SHOOT:Number = 100; public static const HIT_POINTS:Number = 600; public static const ATTACK_POINT:Number = 100; public static const VELOCITY:Number = 3; public function Enemy7(_arg1:Base){ var _local2:Point; myIdx = 6; _local2 = new Point(0, (150 + (Math.random() * 100))); super(_local2, HIT_POINTS, VELOCITY, ATTACK_POINT, FRAMES_TO_SHOOT, DAMAGE, _arg1, CASH_PRIZE); } override protected function attack():void{ var _local1:int; var _local2:Number; var _local3:MovieClip; _local1 = 30; _local2 = (damage / _local1); _local3 = MovieClip(getChildAt(0)); if ((frameCount % framesToShoot) == 0){ _local3.gotoAndPlay(1); }; if (_local3.currentFrame == 1){ _local3.gotoAndPlay(2); }; if ((((_local3.currentFrame >= 50)) && ((_local3.currentFrame <= (50 + _local1))))){ base.takeDamage(_local2); }; if (_local3.currentFrame == (_local3.totalFrames - 1)){ _local3.gotoAndStop(_local3.totalFrames); }; } override protected function gotoDieState():void{ if (myState == STATE_DIE){ return; }; if (Game.difficulty > 0){ AchievementManager.setAchievement(AchievementManager.IDX_ALIENTASTIC, Constants.GAME_CONTAINER); }; super.gotoDieState(); } override public function onFrame():void{ super.onFrame(); } } }//package src.Game.Gameplay.Enemies
Section 66
//Enemy8 (src.Game.Gameplay.Enemies.Enemy8) package src.Game.Gameplay.Enemies { import flash.geom.*; import src.Game.Gameplay.Base.*; import src.Game.Achievements.*; import src.Game.*; import src.Game.GameData.*; public class Enemy8 extends Enemy { public static const CASH_PRIZE:Number = 600; public static const DAMAGE:Number = 20; public static const FRAMES_TO_SHOOT:Number = 100; public static const HIT_POINTS:Number = 5000; public static const ATTACK_POINT:Number = 200; public static const VELOCITY:Number = 2; public function Enemy8(_arg1:Base){ var _local2:Point; myIdx = 7; _local2 = new Point(0, (300 + (Math.random() * 100))); super(_local2, HIT_POINTS, VELOCITY, ATTACK_POINT, FRAMES_TO_SHOOT, DAMAGE, _arg1, CASH_PRIZE); } override protected function gotoDieState():void{ if (myState == STATE_DIE){ return; }; SoundManagerClass.playSound("Enemy6DieSound", 0.33); if (Game.difficulty >= 0){ AchievementManager.setAchievement(AchievementManager.IDX_GOLEM_KILLER, Constants.GAME_CONTAINER); }; super.gotoDieState(); } override protected function run():void{ var _local1:int; _local1 = (frameCount % 160); if ((((_local1 > 40)) && ((_local1 < 80)))){ return; }; if ((((_local1 > 120)) && ((_local1 < 160)))){ return; }; super.run(); } } }//package src.Game.Gameplay.Enemies
Section 67
//EnemyCreatedEvent (src.Game.Gameplay.Enemies.EnemyCreatedEvent) package src.Game.Gameplay.Enemies { import flash.events.*; public class EnemyCreatedEvent extends Event { public var enemy:Enemy; public static const ENEMY_CREATED:String = "created"; public function EnemyCreatedEvent(_arg1:String, _arg2:Enemy, _arg3:Boolean=false, _arg4:Boolean=false){ this.enemy = _arg2; super(_arg1, _arg3, _arg4); } override public function toString():String{ return (formatToString("EnemyCreatedEvent", "enemy", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new EnemyCreatedEvent(type, enemy, bubbles, cancelable)); } } }//package src.Game.Gameplay.Enemies
Section 68
//EnemyDeadEvent (src.Game.Gameplay.Enemies.EnemyDeadEvent) package src.Game.Gameplay.Enemies { import flash.events.*; public class EnemyDeadEvent extends Event { public static const DEAD:String = "dead"; public function EnemyDeadEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("EnemyDeadEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new EnemyDeadEvent(type, bubbles, cancelable)); } } }//package src.Game.Gameplay.Enemies
Section 69
//WalkingZombie (src.Game.Gameplay.Enemies.WalkingZombie) package src.Game.Gameplay.Enemies { import flash.geom.*; import src.Game.Gameplay.Base.*; import src.Game.Achievements.*; import src.Game.*; public class WalkingZombie extends Enemy { public var walk:enemy1walk; public static const CASH_PRIZE:Number = 50; public static const DAMAGE:Number = 1; public static const FRAMES_TO_SHOOT:Number = 40; public static const HIT_POINTS:Number = 12; public static const ATTACK_POINT:Number = 400; public static const VELOCITY:Number = 1.5; public function WalkingZombie(_arg1:Base){ var _local2:Point; _local2 = new Point(0, (300 + (Math.random() * 150))); myIdx = 0; super(_local2, HIT_POINTS, VELOCITY, ATTACK_POINT, FRAMES_TO_SHOOT, DAMAGE, _arg1, CASH_PRIZE); } override protected function gotoDieState():void{ var _local1:Number; if (myState == STATE_DIE){ return; }; BaseModel.zombiesKilled++; if (BaseModel.zombiesKilled == AchievementManager.ZOMBIE_KILLER){ AchievementManager.setAchievement(AchievementManager.IDX_ZOMBASSACRE, parent); }; _local1 = Math.random(); if (_local1 < 0.33){ SoundManagerClass.playSound("ZombieDie1Sound", 0.2); } else { if (_local1 < 0.66){ SoundManagerClass.playSound("ZombieDie2Sound", 0.2); }; }; super.gotoDieState(); } } }//package src.Game.Gameplay.Enemies
Section 70
//WalkingZombie1 (src.Game.Gameplay.Enemies.WalkingZombie1) package src.Game.Gameplay.Enemies { import flash.geom.*; import src.Game.Gameplay.Base.*; import src.Game.Achievements.*; import src.Game.*; public class WalkingZombie1 extends Enemy { public static const CASH_PRIZE:Number = 50; public static const DAMAGE:Number = 1; public static const FRAMES_TO_SHOOT:Number = 40; public static const HIT_POINTS:Number = 6; public static const ATTACK_POINT:Number = 400; public static const VELOCITY:Number = 2.5; public function WalkingZombie1(_arg1:Base){ var _local2:Point; _local2 = new Point(0, (300 + (Math.random() * 150))); myIdx = 0; super(_local2, HIT_POINTS, VELOCITY, ATTACK_POINT, FRAMES_TO_SHOOT, DAMAGE, _arg1, CASH_PRIZE); } override protected function gotoDieState():void{ var _local1:Number; if (myState == STATE_DIE){ return; }; BaseModel.zombiesKilled++; if (BaseModel.zombiesKilled == AchievementManager.ZOMBIE_KILLER){ AchievementManager.setAchievement(AchievementManager.IDX_ZOMBASSACRE, parent); }; _local1 = Math.random(); if (_local1 < 0.66){ SoundManagerClass.playSound("ZombieDeath", 0.2); }; super.gotoDieState(); } } }//package src.Game.Gameplay.Enemies
Section 71
//Particle (src.Game.Gameplay.ParticleEffect.Particle) package src.Game.Gameplay.ParticleEffect { import flash.geom.*; import src.Game.Gameplay.*; import src.Game.GameData.*; import utils.parentedmovieclip.*; import flash.filters.*; public class Particle extends FrameablePMC { const dx:Number = 0.1; const dy:Number = 0.1; var speed:Number; var frameCount:int;// = 7 var vx:Number; var vy:Number; public function Particle(_arg1:Point, _arg2:int){ speed = (1 + (Math.random() * 5)); frameCount = 7; super(Constants.GAME_CONTAINER, Gameplay.particleArray, _arg1); if (_arg2 == 0){ rotation = ((Math.random() * 45) + 210); } else { rotation = (Math.random() * 360); speed = (speed * 0.8); }; vx = (Math.cos(degreesToRadians(rotation)) * speed); vy = (Math.sin(degreesToRadians(rotation)) * speed); if (vy > 0){ vy = (vy * -1); }; if (_arg2 == 0){ addChild(new ParticleBlood()); } else { addChild(new ParticleDirt()); }; filters = [new BlurFilter(2, 2, 2)]; cacheAsBitmap = true; } public function degreesToRadians(_arg1:Number):Number{ return (((_arg1 * Math.PI) / 180)); } override public function onFrame():void{ if (frameCount-- < 0){ remove(); }; vy = (vy + dy); vx = (vx - dx); x = (x + vx); y = (y + vy); } } }//package src.Game.Gameplay.ParticleEffect
Section 72
//ParticleExplosion (src.Game.Gameplay.ParticleEffect.ParticleExplosion) package src.Game.Gameplay.ParticleEffect { import flash.geom.*; import src.Game.Gameplay.*; public class ParticleExplosion { private const MAX_PARTICLES:int = 90; private const NR:int = 12; var counter:int;// = 12 public function ParticleExplosion(_arg1:Point, _arg2:int){ var _local3:Particle; counter = NR; super(); if (counter > (MAX_PARTICLES - Gameplay.particleArray.length)){ } else { while (counter-- > 0) { _local3 = new Particle(_arg1, _arg2); }; }; } } }//package src.Game.Gameplay.ParticleEffect
Section 73
//BaseTurret (src.Game.Gameplay.Turrets.BaseTurret) package src.Game.Gameplay.Turrets { import flash.geom.*; import src.Game.Gameplay.*; import src.Game.*; import src.Game.GameData.*; import utils.parentedmovieclip.*; public class BaseTurret extends FrameablePMC { public var fireRate:int; public var damage:int; public var frameCount:int;// = 0 public var myLvl:int; public static const MY_X:int = 420; public static const MY_Y:int = 425; public function BaseTurret(){ var _local1:Number; frameCount = 0; this.myLvl = MiscUpgradeData.UPGRADE_LVL_ARRAY[MiscUpgradeData.IDX_TURRET]; this.fireRate = MiscUpgradeData.TURRET_FIRE_RATE[this.myLvl]; this.damage = MiscUpgradeData.TURRET_DAMAGE[this.myLvl]; _local1 = (1 + ((0.01 * PerkData.PERK_DATA[PerkData.IDX_SUPER_TURRET]) * PerkData.TURRET)); this.damage = (this.damage * _local1); super(Constants.GAME_CONTAINER, Gameplay.turretArray, new Point(MY_X, MY_Y)); if (this.myLvl < 1){ this.x = (this.x - 1000); remove(); }; } override public function onFrame():void{ if (currentFrame == 1){ gotoAndStop(1); }; if ((frameCount++ % fireRate) == 2){ if (Gameplay.enemyArray.length > 0){ gotoAndPlay(24); SoundManagerClass.playSound("MagnumSound", 0.1); }; dispatchEvent(new TurretEvent(TurretEvent.TURRET)); }; } } }//package src.Game.Gameplay.Turrets
Section 74
//gfx_missile (src.Game.Gameplay.Turrets.gfx_missile) package src.Game.Gameplay.Turrets { import flash.display.*; import flash.geom.*; import src.Game.Gameplay.Enemies.*; import src.Game.Gameplay.*; import utils.parentedmovieclip.*; public class gfx_missile extends FrameablePMC { private var dmg:Number; public function gfx_missile(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:Number){ this.dmg = _arg3; super(_arg1, Gameplay.onFrameArray, _arg2); } override public function onFrame():void{ if (currentFrame == totalFrames){ remove(); }; if (currentFrame == 1){ dmgAllInRange(); }; } private function dmgAllInRange():void{ var _local1:Array; var _local2:int; var _local3:Enemy; var _local4:Number; _local1 = Gameplay.enemyArray; _local2 = _local1.length; while (_local2-- > 0) { _local3 = Enemy(_local1[_local2]); if (hitTestObject(_local3)){ _local4 = (x - _local3.x); if (_local4 > 5){ _local4 = 5; } else { if (_local4 < -5){ _local4 = -5; }; }; _local3.x = (_local3.x - (_local4 * 1)); _local3.takeDamage(dmg, 0, -1); }; }; } } }//package src.Game.Gameplay.Turrets
Section 75
//HeliMissile (src.Game.Gameplay.Turrets.HeliMissile) package src.Game.Gameplay.Turrets { import flash.display.*; import flash.geom.*; import src.Game.Gameplay.Enemies.*; import src.Game.Gameplay.*; import utils.parentedmovieclip.*; public class HeliMissile extends FrameablePMC { private var dmg:Number; private var target:Enemy; var dy:Number; var dx:Number; private var enemyArray:Array; private var goalRotation:Number; public function HeliMissile(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:Number){ super(_arg1, Gameplay.onFrameArray, _arg2); enemyArray = Gameplay.enemyArray; target = enemyArray[returnStrongestEnemyIdx()]; this.dmg = _arg3; rotation = 180; visible = false; } public function distance(_arg1:Point, _arg2:Point):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public function returnStrongestEnemyIdx():int{ var _local1:int; var _local2:int; var _local3:Number; var _local4:Enemy; _local1 = enemyArray.length; _local2 = -1; _local3 = 0; while (_local1-- > 0) { _local4 = Enemy(enemyArray[_local1]); if (_local4.hitPoints > _local3){ _local3 = _local4.hitPoints; _local2 = _local1; }; }; return (_local2); } override public function onFrame():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:MovieClip; if (!target){ target = null; remove(); return; }; if (!target.parent){ target = null; remove(); return; }; if (target.myState == 2){ remove(); target = null; return; }; visible = true; dx = (target.x - x); dy = (target.y - y); goalRotation = ((180 * Math.atan2(dy, dx)) / Math.PI); _local1 = (goalRotation - rotation); if (_local1 > 180){ _local1 = (_local1 - 360); } else { if (_local1 < -180){ _local1 = (_local1 + 360); }; }; rotation = (rotation + (_local1 * 0.15)); _local2 = (Math.cos(((rotation / 180) * Math.PI)) * 10); _local3 = (Math.sin(((rotation / 180) * Math.PI)) * 10); x = (x + _local2); y = (y + _local3); if (((this.hitTestObject(target)) && ((distance(new Point(x, y), new Point(target.x, target.y)) < (1.5 * target.defaultWidth))))){ _local4 = new gfx_missile(parent, new Point(target.x, (target.y + (target.height * 0.5))), (dmg * 0.2)); target.takeDamage(dmg, 0, -1); remove(); }; } } }//package src.Game.Gameplay.Turrets
Section 76
//HeliTurret (src.Game.Gameplay.Turrets.HeliTurret) package src.Game.Gameplay.Turrets { import flash.geom.*; import src.Game.Gameplay.*; import src.Game.GameData.*; import utils.parentedmovieclip.*; public class HeliTurret extends FrameablePMC { public var fireRate:int; public var damage:int; public var frameCount:int;// = 0 public var myLvl:int; public static const MY_X:int = 450; public static const MY_Y:int = 155; public function HeliTurret(){ var _local1:Number; frameCount = 0; this.myLvl = MiscUpgradeData.UPGRADE_LVL_ARRAY[MiscUpgradeData.IDX_HELI]; this.fireRate = MiscUpgradeData.HELI_FIRE_RATE[this.myLvl]; this.damage = MiscUpgradeData.HELI_DAMAGE[this.myLvl]; _local1 = (1 + ((PerkData.PERK_DATA[PerkData.IDX_HELI_MASTER] * PerkData.HELI_MASTER) * 0.01)); this.damage = (this.damage * _local1); super(Constants.GAME_CONTAINER, Gameplay.turretArray, new Point(MY_X, MY_Y)); if (this.myLvl < 1){ this.x = (this.x - 1000); remove(); }; } override public function onFrame():void{ var _local1:HeliMissile; if ((frameCount++ % fireRate) == (fireRate - 1)){ gotoAndPlay(1); if (Gameplay.enemyArray.length > 0){ _local1 = new HeliMissile(parent, new Point((x + 20), (y + 40)), damage); }; }; } } }//package src.Game.Gameplay.Turrets
Section 77
//TurretEvent (src.Game.Gameplay.Turrets.TurretEvent) package src.Game.Gameplay.Turrets { import flash.events.*; public class TurretEvent extends Event { public static const TURRET:String = "turret"; public static const HELI:String = "heli"; public function TurretEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("TurretEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new TurretEvent(type, bubbles, cancelable)); } } }//package src.Game.Gameplay.Turrets
Section 78
//AmmoCounter (src.Game.Gameplay.UI.AmmoCounter) package src.Game.Gameplay.UI { import utils.*; import flash.display.*; import flash.geom.*; import src.Game.GameData.*; import flash.text.*; import utils.parentedmovieclip.*; public class AmmoCounter extends ParentedMovieClip { public var ammoText:TextField; private var barFill:MovieClip; private var maxAmmo:int; public var acfill:AC_BarFill; private var ammoTextfield:TextField; private var currentAmmo:int; public function AmmoCounter(_arg1:int){ var _local2:Tween; this.maxAmmo = _arg1; this.currentAmmo = _arg1; super(Constants.GAME_CONTAINER, new Point(10, 10)); this.ammoTextfield = TextField(ammoText); ammoTextfield.text = ((("" + _arg1) + "/") + currentAmmo); this.barFill = MovieClip(acfill); scaleX = (scaleY = 0.45); _local2 = new Tween(this); _local2.tweenToCoordinates(new Point(x, (y - 200)), new Point(x, y)); } public function updateWhenReloading(_arg1:int, _arg2:int){ var _local3:Number; var _local4:int; _local3 = (_arg1 / _arg2); _local4 = (101 - Math.floor(((_local3 * 100) - 1))); barFill.bg.gotoAndStop(_local4); } public function updateAmmoCounter(_arg1:int){ var _local2:Number; var _local3:int; _local2 = (_arg1 / maxAmmo); _local3 = (101 - Math.floor(((_local2 * 100) - 1))); barFill.bg.gotoAndStop(_local3); this.currentAmmo = _arg1; ammoTextfield.text = (ammoTextfield.text = ((("" + _arg1) + "/") + maxAmmo)); } } }//package src.Game.Gameplay.UI
Section 79
//CashPrizeCounter (src.Game.Gameplay.UI.CashPrizeCounter) package src.Game.Gameplay.UI { import utils.*; import flash.display.*; import flash.geom.*; import flash.text.*; import utils.parentedmovieclip.*; public class CashPrizeCounter extends ParentedMovieClip { public var cashTxt:TextField; public static const MY_X:int = 350; public static const MY_Y:int = 10; public static const STARTING_CASH:Number = 500; public static var CASH:Number; public function CashPrizeCounter(_arg1:DisplayObjectContainer){ var _local2:Tween; super(_arg1, new Point(MY_X, MY_Y)); _local2 = new Tween(this); _local2.tweenToCoordinates(new Point(x, (y - 200)), new Point(x, y)); cacheAsBitmap = true; updateText(); } public function updateText():void{ cashTxt.text = (("" + CASH) + "$"); } public static function Init():void{ CASH = STARTING_CASH; } public static function Update(_arg1:int):void{ CASH = (CASH + Math.round(_arg1)); } } }//package src.Game.Gameplay.UI
Section 80
//GameplayIntro (src.Game.Gameplay.UI.GameplayIntro) package src.Game.Gameplay.UI { import utils.*; import flash.geom.*; import src.Game.Gameplay.*; import src.Game.*; import src.Game.GameData.*; import flash.text.*; import utils.parentedmovieclip.*; public class GameplayIntro extends FrameablePMC { public var myTxt:TextField; private var frameCountToGo:int;// = 30 private var frameCount:int;// = 0 public function GameplayIntro(_arg1:int){ var _local2:int; var _local3:int; var _local4:Tween; frameCount = 0; frameCountToGo = 30; super(Constants.GAME_CONTAINER, Gameplay.onFrameArray, new Point(0, -500)); _local2 = (1 + _arg1); _local3 = WaveData.ALL_WAVE_ARRAY.length; SoundManagerClass.playSound("BattleStartSound2", 0.66); myTxt.text = ((("WAVE \n" + _local2) + "/") + _local3); _local4 = new Tween(this); _local4.tweenToCoordinates(new Point(x, y), new Point(0, 100), 0, 0.2, false); } override public function onFrame():void{ var _local1:Tween; if (frameCount++ == frameCountToGo){ _local1 = new Tween(this); _local1.tweenToCoordinates(new Point(x, y), new Point((x + 1200), y), 0, 0.2, false); }; if (frameCount == (3 * frameCountToGo)){ remove(); }; } } }//package src.Game.Gameplay.UI
Section 81
//HPCounter (src.Game.Gameplay.UI.HPCounter) package src.Game.Gameplay.UI { import utils.*; import flash.display.*; import flash.geom.*; import src.Game.GameData.*; import flash.text.*; import utils.parentedmovieclip.*; public class HPCounter extends ParentedMovieClip { private var barFill:MovieClip; private var barFillWidth:int; private var currentHP:int; public var HPText:TextField; private var maxHP:int; public var acfill:HP_BarFillcopy; private var HPTextfield:TextField; public function HPCounter(_arg1:int, _arg2:int){ var _local3:Tween; this.maxHP = _arg2; this.currentHP = _arg1; super(Constants.GAME_CONTAINER, new Point(((600 - (this.width / 2)) - 10), 10)); scaleX = (scaleY = 0.5); this.HPTextfield = TextField(HPText); HPTextfield.text = ((("" + _arg1) + "/") + _arg2); cacheAsBitmap = true; this.barFill = MovieClip(acfill); this.barFillWidth = this.barFill.width; updateHPCounter(_arg1); _local3 = new Tween(this); _local3.tweenToCoordinates(new Point(x, (y - 200)), new Point(x, y)); } public function updateHPCounter(_arg1:int){ var _local2:Number; var _local3:int; _local2 = (_arg1 / maxHP); _local3 = (101 - Math.floor(((_local2 * 100) - 1))); acfill.hp.gotoAndStop(_local3); this.currentHP = _arg1; if (_arg1 < 0){ _arg1 = 0; }; HPTextfield.text = (HPTextfield.text = ((("" + _arg1) + "/") + maxHP)); } } }//package src.Game.Gameplay.UI
Section 82
//UIOther (src.Game.Gameplay.UI.UIOther) package src.Game.Gameplay.UI { import utils.*; import flash.display.*; import flash.events.*; import flash.geom.*; import src.Game.*; import src.Game.Buttons.*; import utils.parentedmovieclip.*; public class UIOther extends ParentedMovieClip { public var musicBut:MusicButton; public var medBut:MediumQualityButton; private var soundB:SimpleButton; private var lowB:MovieClip; private var qArray:Array; public var highBut:HighQualityButton; public var lowBut:LowQualityButton; private var musicB:SimpleButton; private var highB:MovieClip; public var soundBut:SoundButton; private var medB:MovieClip; public function UIOther(){ var _local1:Tween; super(Game.GAME_DISPLAY_CONTAINER, new Point(((585 - (this.width / 2)) - 10), (540 - height))); _local1 = new Tween(this); _local1.tweenToCoordinates(new Point(x, (y + 200)), new Point(x, y)); scaleX = (scaleY = 0.7); lowB = MovieClip(lowBut); medB = MovieClip(medBut); highB = MovieClip(highBut); cacheAsBitmap = true; lowB.addEventListener(MouseEvent.CLICK, onLowClicked); medB.addEventListener(MouseEvent.CLICK, onMedClicked); highB.addEventListener(MouseEvent.CLICK, onHighClicked); qArray = [lowB, medB, highB]; initQualityButtons(); } private function onMedClicked(_arg1:MouseEvent):void{ stage.quality = "medium"; initQualityButtons(); } private function onLowClicked(_arg1:MouseEvent):void{ stage.quality = "low"; initQualityButtons(); } private function initQualityButtons():void{ trace(("STAGE: " + stage.quality)); if (stage.quality == "LOW"){ lowB.gotoAndStop(1); medB.gotoAndStop(2); highB.gotoAndStop(2); } else { if (stage.quality == "MEDIUM"){ lowB.gotoAndStop(2); medB.gotoAndStop(1); highB.gotoAndStop(2); } else { lowB.gotoAndStop(2); medB.gotoAndStop(2); highB.gotoAndStop(1); }; }; } private function onHighClicked(_arg1:MouseEvent):void{ stage.quality = "high"; initQualityButtons(); } } }//package src.Game.Gameplay.UI
Section 83
//WeaponIconGameplay (src.Game.Gameplay.UI.WeaponIconGameplay) package src.Game.Gameplay.UI { import utils.*; import flash.display.*; import flash.utils.*; import flash.geom.*; import src.Game.GameData.*; import utils.parentedmovieclip.*; public class WeaponIconGameplay extends ParentedMovieClip { public function WeaponIconGameplay(){ var _local1:int; var _local2:String; var _local3:Class; var _local4:Tween; var _local5:MovieClip; super(Constants.GAME_CONTAINER, new Point(200, 15)); scaleX = (scaleY = 0.2); _local1 = WeaponData.EQUIPPED_WEAPON_IDX; _local2 = ("Weapon" + _local1.toString()); _local3 = (getDefinitionByName(_local2) as Class); _local4 = new Tween(this); _local4.tweenToCoordinates(new Point(x, (y - 200)), new Point(x, y)); _local5 = new (_local3); addChild(_local5); cacheAsBitmap = true; } } }//package src.Game.Gameplay.UI
Section 84
//DamageEvent (src.Game.Gameplay.Weapon.DamageEvent) package src.Game.Gameplay.Weapon { import flash.events.*; public class DamageEvent extends Event { public static const DAMAGE_EVENT:String = "damage"; public function DamageEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("DamageEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new DamageEvent(type, bubbles, cancelable)); } } }//package src.Game.Gameplay.Weapon
Section 85
//EquippedWeaponData (src.Game.Gameplay.Weapon.EquippedWeaponData) package src.Game.Gameplay.Weapon { import src.Game.GameData.*; public class EquippedWeaponData { public var rateLevel:int;// = 0 public var myType:int;// = 0 public var reloadLevel:int;// = 0 public var myIdx:int;// = 0 public var clipSizeLevel:int;// = 0 public var damageLevel:int;// = 0 public function EquippedWeaponData(_arg1:int=0){ myIdx = 0; myType = 0; damageLevel = 0; rateLevel = 0; reloadLevel = 0; clipSizeLevel = 0; super(); this.myIdx = WeaponData.EQUIPPED_WEAPON_IDX; this.myType = WeaponData.ALL_WEAPON_DATA_ARRAY[this.myIdx][WeaponData.IDX_WEAPON_CLASS]; this.damageLevel = WeaponData.ALL_WEAPON_UPGRADES[this.myIdx][WeaponData.IDX_DAMAGE]; this.rateLevel = WeaponData.ALL_WEAPON_UPGRADES[this.myIdx][WeaponData.IDX_RATE_OF_FIRE]; this.reloadLevel = WeaponData.ALL_WEAPON_UPGRADES[this.myIdx][WeaponData.IDX_RELOAD]; this.clipSizeLevel = WeaponData.ALL_WEAPON_UPGRADES[this.myIdx][WeaponData.IDX_CLIP_SIZE]; } } }//package src.Game.Gameplay.Weapon
Section 86
//Weapon (src.Game.Gameplay.Weapon.Weapon) package src.Game.Gameplay.Weapon { import flash.events.*; import flash.geom.*; import src.Game.Gameplay.*; import src.Game.Achievements.*; import src.Game.*; import src.Game.GameData.*; import utils.parentedmovieclip.*; import src.Game.Gameplay.UI.*; public class Weapon extends FrameablePMC { public var reloadTime:int; public var weaponIdx:Number; private var ammoLeftFlag:Boolean;// = true private var reloadTimeCounter:int;// = 0 private var bulletCount:int; public var clipCapacity:int; private var bulletsPerFrame:int; private var ammoCounter:AmmoCounter; public var damage:Number; public var weaponTypeIdx:Number; public var targetRadius:Number; public var framesUntilNextBullet:int; public var criticalChance:Number; private var bulletsPerFrameCounter:int;// = 0 private var mousePressedFlag:Boolean;// = false private var framesUntilNextBulletCounter:int;// = 0 public static var BULLETS_FIRED:int = 0; public function Weapon(_arg1:WeaponProperties){ framesUntilNextBulletCounter = 0; reloadTimeCounter = 0; mousePressedFlag = false; ammoLeftFlag = true; bulletsPerFrameCounter = 0; this.damage = _arg1.damage; this.framesUntilNextBullet = _arg1.framesUntilNextBullet; this.reloadTime = _arg1.reloadTime; this.clipCapacity = _arg1.clipCapacity; this.criticalChance = _arg1.criticalChance; this.targetRadius = _arg1.targetRadius; this.weaponTypeIdx = _arg1.weaponTypeIdx; this.weaponIdx = _arg1.weaponIdx; this.bulletCount = this.clipCapacity; this.bulletsPerFrame = _arg1.weaponBulletsPerRound; super(Constants.GAME_CONTAINER, Gameplay.weaponArray, new Point(-100, -100)); stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseIsPressedHandler); bulletCount = clipCapacity; ammoCounter = new AmmoCounter(this.clipCapacity); stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownEvent); } private function bulletShoot():void{ if (Constants.GAME_CONTAINER.stage.mouseX < 500){ SoundManagerClass.PlayWeaponSound(weaponIdx); }; if ((((bulletCount <= 0)) || ((Gameplay.heroRef.visible == false)))){ return; }; if (BULLETS_FIRED++ == 1000){ AchievementManager.setAchievement(AchievementManager.IDX_SHOOTER, Game.GAME_DISPLAY_CONTAINER); }; bulletCount--; dispatchEvent(new DamageEvent(DamageEvent.DAMAGE_EVENT)); } private function mouseIsPressedHandler(_arg1:MouseEvent):void{ mousePressedFlag = true; stage.addEventListener(MouseEvent.MOUSE_UP, mouseIsUnpressedHandler); } private function traceProperties():void{ trace(("DAMAGE: " + damage)); trace(("RATE OF FIRE: " + framesUntilNextBullet)); trace(("RELOAD TIME: " + reloadTime)); trace(("CLIP CAPACITY: " + clipCapacity)); trace(("CRITICAL CHANCE: " + criticalChance)); trace(("TARGET RADIUS: " + targetRadius)); } public function kill():void{ if (stage.hasEventListener(MouseEvent.MOUSE_UP)){ stage.removeEventListener(MouseEvent.MOUSE_UP, mouseIsUnpressedHandler); }; if (stage.hasEventListener(MouseEvent.MOUSE_DOWN)){ stage.removeEventListener(MouseEvent.MOUSE_DOWN, mouseIsPressedHandler); }; if (stage.hasEventListener(KeyboardEvent.KEY_DOWN)){ stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyDownEvent); }; } private function mouseIsUnpressedHandler(_arg1:MouseEvent):void{ mousePressedFlag = false; stage.removeEventListener(MouseEvent.MOUSE_UP, mouseIsUnpressedHandler); } private function triggerPulled():void{ bulletsPerFrameCounter = 0; while (bulletsPerFrameCounter++ < bulletsPerFrame) { bulletShoot(); }; } private function handleReloading():void{ reloadTimeCounter++; ammoCounter.updateWhenReloading(reloadTimeCounter, reloadTime); if (reloadTimeCounter == (reloadTime - 5)){ SoundManagerClass.playSound("ReloadSound", 0.66); }; if (reloadTimeCounter == reloadTime){ framesUntilNextBulletCounter = 0; reloadTimeCounter = 0; mousePressedFlag = false; ammoLeftFlag = true; bulletCount = clipCapacity; }; } override public function onFrame():void{ if (ammoLeftFlag == false){ handleReloading(); return; }; if (framesUntilNextBulletCounter != 0){ framesUntilNextBulletCounter++; if (framesUntilNextBulletCounter >= (framesUntilNextBullet + 1)){ framesUntilNextBulletCounter = 0; }; }; if (mousePressedFlag){ if (framesUntilNextBulletCounter == 0){ triggerPulled(); framesUntilNextBulletCounter++; if (bulletCount == 0){ ammoLeftFlag = false; }; }; }; ammoCounter.updateAmmoCounter(bulletCount); } private function onKeyDownEvent(_arg1:KeyboardEvent):void{ if ((((_arg1.keyCode == "R".charCodeAt(0))) || ((_arg1.keyCode == " ".charCodeAt())))){ ammoLeftFlag = false; }; } } }//package src.Game.Gameplay.Weapon
Section 87
//WeaponProperties (src.Game.Gameplay.Weapon.WeaponProperties) package src.Game.Gameplay.Weapon { import src.Game.GameData.*; public class WeaponProperties { public var targetRadius:Number; public var reloadTime:Number; public var weaponIdx:Number; public var framesUntilNextBullet:Number; public var weaponBulletsPerRound:int;// = 1 public var weaponTypeIdx:Number; public var clipCapacity:Number; private var rateOfFire:Number; public var damage:Number; public var criticalChance:Number; public function WeaponProperties(_arg1:EquippedWeaponData){ var _local2:Array; weaponBulletsPerRound = 1; super(); this.weaponIdx = _arg1.myIdx; this.weaponTypeIdx = _arg1.myType; _local2 = WeaponData.ALL_WEAPON_DATA_ARRAY[weaponIdx]; this.damage = _local2[WeaponData.IDX_DAMAGE][_arg1.damageLevel]; this.rateOfFire = _local2[WeaponData.IDX_RATE_OF_FIRE][_arg1.rateLevel]; this.reloadTime = _local2[WeaponData.IDX_RELOAD][_arg1.reloadLevel]; this.clipCapacity = _local2[WeaponData.IDX_CLIP_SIZE][_arg1.clipSizeLevel]; this.criticalChance = Number(_local2[WeaponData.IDX_CRIT_CHANCE]); this.targetRadius = Number(_local2[WeaponData.IDX_RADIUS]); initDamageData(); initRateOfFireData(); initReloadTimeData(); initClipCapacity(); initCriticalChance(); initTargetRadius(); } private function initReloadTimeData():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; _local1 = (PerkData.BLOOD_THIRSTY * PerkData.PERK_DATA[PerkData.IDX_BLOOD_THIRSTY]); _local2 = 0; _local3 = 0; if (weaponTypeIdx == WeaponData.SHOTGUN_CLASS_TYPE){ _local2 = (PerkData.HAPPY_SHOTGUN_RELOADING * PerkData.PERK_DATA[PerkData.IDX_HAPPY_SHOTGUN]); } else { if (weaponTypeIdx == WeaponData.RIFLE_CLASS_TYPE){ _local3 = (PerkData.RIFLEMAN_RELOADING_AND_ATTACK_RATE * PerkData.PERK_DATA[PerkData.IDX_RIFLEMAN]); }; }; _local4 = ((((100 - _local1) - _local2) - _local3) * 0.01); reloadTime = (reloadTime * _local4); reloadTime = Math.round(reloadTime); } private function initTargetRadius():void{ var _local1:Number; _local1 = (PerkData.STEADY_HANDS * PerkData.PERK_DATA[PerkData.IDX_STEADY_HANDS]); if (weaponTypeIdx == WeaponData.SHOTGUN_CLASS_TYPE){ targetRadius = (targetRadius * (1 + (0.01 * _local1))); } else { targetRadius = (targetRadius * (1 - (0.01 * _local1))); }; targetRadius = Math.round(targetRadius); } private function traceProperties():void{ trace(("DAMAGE: " + damage)); trace(("RATE OF FIRE: " + framesUntilNextBullet)); trace(("RELOAD TIME: " + reloadTime)); trace(("CLIP CAPACITY: " + clipCapacity)); trace(("CRITICAL CHANCE: " + criticalChance)); trace(("TARGET RADIUS: " + targetRadius)); } private function initCriticalChance():void{ var _local1:Number; _local1 = (PerkData.SHARPSHOOTER * PerkData.PERK_DATA[PerkData.IDX_SHARPSHOOTER]); criticalChance = (criticalChance * (1 + (_local1 * 0.01))); criticalChance = Math.round(criticalChance); } private function initDamageData():void{ var _local1:Number; var _local2:Number; _local1 = (PerkData.PRECISION * PerkData.PERK_DATA[PerkData.IDX_PRECISION]); _local2 = 0; if (weaponTypeIdx == WeaponData.BIG_GUNS_CLASS_TYPE){ _local2 = (PerkData.BIG_GUN_MASTERY_DAMAGE * PerkData.PERK_DATA[PerkData.IDX_BIG_GUN_MASTER]); }; damage = (damage * (1 + ((_local1 + _local2) / 100))); } private function initRateOfFireData():void{ var _local1:Number; var _local2:Number; var _local3:Number; _local1 = (PerkData.FAST_SHOT * PerkData.PERK_DATA[PerkData.IDX_FAST_SHOT]); _local2 = 0; if (weaponTypeIdx == WeaponData.RIFLE_CLASS_TYPE){ _local2 = (PerkData.RIFLEMAN_RELOADING_AND_ATTACK_RATE * PerkData.PERK_DATA[PerkData.IDX_RIFLEMAN]); }; _local3 = ((_local1 + _local2) * 0.01); rateOfFire = (rateOfFire * (1 + _local3)); framesUntilNextBullet = ((Constants.FPS * 60) / rateOfFire); weaponBulletsPerRound = Math.ceil((1 / framesUntilNextBullet)); trace(("BULLETS PER ROUND: " + weaponBulletsPerRound)); } private function initClipCapacity():void{ var _local1:Number; _local1 = (PerkData.GEEK * PerkData.PERK_DATA[PerkData.IDX_GEEK]); clipCapacity = (clipCapacity * (1 + (_local1 * 0.01))); clipCapacity = Math.round(clipCapacity); } } }//package src.Game.Gameplay.Weapon
Section 88
//Gameplay (src.Game.Gameplay.Gameplay) package src.Game.Gameplay { import flash.display.*; import flash.events.*; import src.Game.Gameplay.Weapon.*; import src.Game.Gameplay.Enemies.*; import src.Game.Gameplay.Base.*; import src.Game.Gameplay.Turrets.*; import src.Game.Screens.*; import src.Game.Achievements.*; import src.Game.*; import src.Game.GameData.*; import src.Game.Gameplay.Collision.*; import pixelblitz.utils.*; import src.Game.Gameplay.UI.*; import flash.ui.*; public class Gameplay extends MovieClip { private var hero:Hero; private var uiOther:UIOther; private var collisionManager:CollisionManager; private var gotoInstr:Boolean; private var cashPrizeCounter:CashPrizeCounter; private var endLevelMsg:Boolean;// = false private var waveManager:WaveManager; public var score:Number;// = 100 public var currentLevel:int; private var heli:HeliTurret; public var waveManagerComplete:Boolean;// = false private var base:Base; private var wp:Weapon; private var gamePauseManager:PauseManager; private var turret:BaseTurret; public static var explosionArray:Array = []; public static var achivementMsgArray:Array = []; public static var onFrameArray:Array = []; public static var baseArray:Array = []; public static var enemyArray:Array = []; public static var particleArray:Array = []; public static var turretArray:Array = []; public static var heroRef:Hero; public static var pausedFlag:Boolean = false; public static var weaponArray:Array = []; public function Gameplay(_arg1:DisplayObjectContainer, _arg2:int, _arg3:Base){ var _local4:WeaponProperties; var _local5:WeaponIconGameplay; var _local6:GameplayIntro; var _local7:FPSCounter; score = 100; endLevelMsg = false; waveManagerComplete = false; super(); SoundManagerClass.soundManager.stopAllSounds(); SoundManagerClass.startMusic("BloodySunsetDesert", 1, 0, 10); pausedFlag = false; Mouse.hide(); this.currentLevel = _arg2; _arg1.addChild(this); Constants.GAME_CONTAINER = this; addEventListener(Event.ENTER_FRAME, onFrame); explosionArray = []; onFrameArray = []; achivementMsgArray = []; weaponArray = []; baseArray = []; enemyArray = []; turretArray = []; particleArray = []; _local4 = new WeaponProperties(new EquippedWeaponData()); wp = new Weapon(_local4); hero = new Hero(wp.targetRadius); heroRef = hero; wp.addEventListener(DamageEvent.DAMAGE_EVENT, onWeaponDamage); this.base = _arg3; _arg3.Init(); _arg3.addEventListener(BaseEvent.KILLED, onBaseKilled); collisionManager = new CollisionManager(enemyArray); cashPrizeCounter = new CashPrizeCounter(this); turret = new BaseTurret(); turret.addEventListener(TurretEvent.TURRET, onTurretShoot); heli = new HeliTurret(); heli.addEventListener(TurretEvent.HELI, onHeliShoot); waveManager = new WaveManager(_arg3, enemyArray, _arg2); waveManager.addEventListener(Event.COMPLETE, onWaveManagerComplete); waveManager.addEventListener(EnemyCreatedEvent.ENEMY_CREATED, onEnemyCreated); uiOther = new UIOther(); gamePauseManager = new PauseManager(this); gamePauseManager.addEventListener(PauseEvent.PAUSED, onGamePaused); _local5 = new WeaponIconGameplay(); _local6 = new GameplayIntro(_arg2); _local7 = new FPSCounter(); } private function gotoEndLevel():void{ var _local1:LevelPassedScreen; HideCursor(); removeEventListener(Event.ENTER_FRAME, onFrame); SoundManagerClass.stopMusic(); _local1 = new LevelPassedScreen(this); _local1.addEventListener(Event.COMPLETE, onLevelPassed); } private function onBaseKilled(_arg1:BaseEvent):void{ SoundManagerClass.stopMusic(); gotoBaseKilled(); } private function onGamePaused(_arg1:PauseEvent):void{ var _local2:PauseScreen; removeEventListener(Event.ENTER_FRAME, onFrame); _local2 = new PauseScreen(this); _local2.addEventListener(PauseEvent.UNPAUSED, onGameUnpaused); _local2.addEventListener(NavigationEvent.GAMEOVER, gotoBaseKilled); } private function onLevelLostComplete(_arg1:Event):void{ dispatchEvent(new GameplayEvent(GameplayEvent.LOST)); remove(); } private function onWeaponDamage(_arg1:DamageEvent):void{ var _local2:Weapon; _local2 = Weapon(_arg1.currentTarget); collisionManager.enemyToAmmoCollision(hero, _local2); hero.setDiameter(); } private function gotoBaseKilled(_arg1:NavigationEvent=null):void{ var _local2:LevelLostScreen; var _local3:int; Mouse.show(); removeEventListener(Event.ENTER_FRAME, onFrame); _local2 = new LevelLostScreen(this); _local2.addEventListener(Event.COMPLETE, onLevelLostComplete); _local2.addEventListener(NavigationEvent.BACK, onLevelRetry); _local3 = enemyArray.length; while (_local3-- > 0) { Enemy(enemyArray[_local3]).stopAnimation(); }; } private function onWaveManagerComplete(_arg1:Event):void{ waveManager.removeEventListener(Event.COMPLETE, onWaveManagerComplete); waveManager.removeEventListener(EnemyCreatedEvent.ENEMY_CREATED, onEnemyCreated); waveManager = null; waveManagerComplete = true; } private function remove():void{ wp.kill(); removeEventListener(Event.ENTER_FRAME, onFrame); gamePauseManager.remove(); uiOther.remove(); if (parent){ parent.removeChild(this); }; } private function onGameUnpaused(_arg1:PauseEvent):void{ addEventListener(Event.ENTER_FRAME, onFrame); } private function onLevelPassed(_arg1:Event):void{ LevelPassedScreen(_arg1.currentTarget).removeEventListener(Event.COMPLETE, onLevelPassed); dispatchEvent(new Event(Event.COMPLETE)); remove(); } private function onTurretShoot(_arg1:TurretEvent):void{ var _local2:BaseTurret; _local2 = BaseTurret(_arg1.currentTarget); collisionManager.enemyToTurretCollision(_local2); } private function onLevelRetry(_arg1:NavigationEvent):void{ dispatchEvent(new GameplayEvent(GameplayEvent.RETRY)); remove(); } private function onEnemyCreated(_arg1:EnemyCreatedEvent):void{ _arg1.enemy.addEventListener(EnemyDeadEvent.DEAD, onEnemyDead); } private function onFrame(_arg1:Event):void{ var _local2:int; var _local3:AchievementMsg; var _local4:AchievementMsg; if ((((((mouseY < 80)) || ((mouseX > 500)))) && (hero.visible))){ HideCursor(); } else { if ((((((mouseY >= 80)) && ((mouseX <= 500)))) && ((hero.visible == false)))){ ShowCursor(); }; }; _local2 = onFrameArray.length; while (_local2 > 0) { _local2--; onFrameArray[_local2].onFrame(); }; _local2 = achivementMsgArray.length; while (_local2 > 0) { _local2--; achivementMsgArray[_local2].onFrame(); }; _local2 = weaponArray.length; while (_local2-- > 0) { weaponArray[_local2].onFrame(); }; _local2 = baseArray.length; while (_local2-- > 0) { baseArray[_local2].onFrame(); }; _local2 = enemyArray.length; while (_local2-- > 0) { enemyArray[_local2].onFrame(); }; _local2 = turretArray.length; while (_local2-- > 0) { turretArray[_local2].onFrame(); }; _local2 = particleArray.length; while (_local2-- > 0) { particleArray[_local2].onFrame(); }; _local2 = explosionArray.length; while (_local2-- > 0) { explosionArray[_local2].onFrame(); }; if (!waveManagerComplete){ waveManager.onFrame(); }; if ((((enemyArray.length == 0)) && (waveManagerComplete))){ if (currentLevel == (WaveData.ALL_WAVE_ARRAY.length - 1)){ if (endLevelMsg == false){ _local3 = AchievementManager.setAchievement(AchievementManager.IDX_PROFICIENCY, this); _local3.addEventListener(Event.REMOVED_FROM_STAGE, onAcMsgRemoved); endLevelMsg = true; if (Game.difficulty > 0){ _local4 = AchievementManager.setAchievement(AchievementManager.IDX_SURVIVOR, this); _local4.addEventListener(Event.REMOVED_FROM_STAGE, onAcMsgRemoved); }; }; } else { gotoEndLevel(); }; }; if ((currentLevel + 1) == AchievementManager.DEFENDER_WAVE){ if (BaseModel.totalDamageTaken < AchievementManager.DEFENDER_DAMAGE){ AchievementManager.setAchievement(AchievementManager.IDX_DEFENDER, this); }; }; } private function onHeliShoot(_arg1:TurretEvent):void{ var _local2:HeliTurret; _local2 = HeliTurret(_arg1.currentTarget); collisionManager.enemyToHelicopterCollision(_local2); } private function onEnemyDead(_arg1:EnemyDeadEvent):void{ var _local2:Enemy; var _local3:Number; _local2 = Enemy(_arg1.currentTarget); _local3 = (1 + ((PerkData.FAME * PerkData.PERK_DATA[PerkData.IDX_FAME]) * 0.01)); CashPrizeCounter.Update((_local2.cashPrize * _local3)); cashPrizeCounter.updateText(); } private function onAcMsgRemoved(_arg1:Event):void{ _arg1.currentTarget.removeEventListener(Event.REMOVED_FROM_STAGE, onAcMsgRemoved); if (achivementMsgArray.length == 1){ gotoEndLevel(); }; } public static function ShowCursor():void{ heroRef.visible = true; Mouse.hide(); } public static function HideCursor():void{ heroRef.visible = false; Mouse.show(); } } }//package src.Game.Gameplay
Section 89
//GameplayEvent (src.Game.Gameplay.GameplayEvent) package src.Game.Gameplay { import flash.events.*; public class GameplayEvent extends Event { public static const LOST:String = "losts"; public static const RETRY:String = "retry"; public function GameplayEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("GameplayEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new GameplayEvent(type, bubbles, cancelable)); } } }//package src.Game.Gameplay
Section 90
//Hero (src.Game.Gameplay.Hero) package src.Game.Gameplay { import flash.geom.*; import src.Game.GameData.*; import utils.parentedmovieclip.*; public class Hero extends FrameablePMC { public var diameter:Number; private var defaultDiameter:Number; public function Hero(_arg1:Number){ diameter = (2 * _arg1); defaultDiameter = diameter; super(Constants.GAME_CONTAINER, Gameplay.onFrameArray, new Point(0, 0)); } public function setDiameter():void{ diameter = (defaultDiameter * 2.5); } override public function onFrame():void{ x = stage.mouseX; y = stage.mouseY; parent.addChild(this); this.height = (this.height + ((diameter - height) * 0.5)); this.height = (this.height + ((defaultDiameter - height) * 0.2)); this.diameter = (this.diameter + ((defaultDiameter - diameter) * 0.1)); this.width = this.height; } } }//package src.Game.Gameplay
Section 91
//PauseEvent (src.Game.Gameplay.PauseEvent) package src.Game.Gameplay { import flash.events.*; public class PauseEvent extends Event { public static const PAUSED:String = "pauseeed"; public static const UNPAUSED:String = "unpaused"; public function PauseEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("PauseEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new PauseEvent(type, bubbles, cancelable)); } } }//package src.Game.Gameplay
Section 92
//PauseManager (src.Game.Gameplay.PauseManager) package src.Game.Gameplay { import flash.display.*; import flash.events.*; import flash.geom.*; import utils.parentedmovieclip.*; public class PauseManager extends ParentedMovieClip { public function PauseManager(_arg1:DisplayObjectContainer){ super(_arg1, new Point(0, 0)); stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); } private function pauseGame(_arg1:Event=null):void{ trace("PAUSE"); if (Gameplay.pausedFlag == false){ dispatchEvent(new PauseEvent(PauseEvent.PAUSED)); Gameplay.pausedFlag = true; }; } override public function remove():void{ stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); super.remove(); } private function onKeyDown(_arg1:KeyboardEvent):void{ if ((((((_arg1.keyCode == 27)) || ((_arg1.keyCode == 112)))) || ((_arg1.keyCode == 80)))){ pauseGame(); }; } } }//package src.Game.Gameplay
Section 93
//PauseScreen (src.Game.Gameplay.PauseScreen) package src.Game.Gameplay { import flash.display.*; import flash.events.*; import flash.geom.*; import src.Game.Screens.*; import utils.parentedmovieclip.*; public class PauseScreen extends ParentedMovieClip { public var cont:ContinueBut; public var quit:QuitGameBut; public function PauseScreen(_arg1:DisplayObjectContainer){ super(_arg1, new Point()); Gameplay.HideCursor(); cont.addEventListener(MouseEvent.CLICK, onMouseClicked); quit.addEventListener(MouseEvent.CLICK, onQuitGame); } private function onMouseClicked(_arg1:MouseEvent):void{ dispatchEvent(new PauseEvent(PauseEvent.UNPAUSED)); remove(); Gameplay.pausedFlag = false; Gameplay.ShowCursor(); } private function onQuitGame(_arg1:MouseEvent):void{ dispatchEvent(new NavigationEvent(NavigationEvent.GAMEOVER)); remove(); } } }//package src.Game.Gameplay
Section 94
//WaveManager (src.Game.Gameplay.WaveManager) package src.Game.Gameplay { import utils.*; import flash.events.*; import src.Game.Gameplay.Enemies.*; import src.Game.Gameplay.Base.*; import src.Game.GameData.*; public class WaveManager extends EventDispatcher { private const ENEMY_TYPES:int = 8; private var zombieCount:int;// = 0 private var DURATION:int;// = 1860 private var base:Base; private var waveArray:Array; private var frameCount:int; private var enemyArray:Array; public function WaveManager(_arg1:Base, _arg2:Array, _arg3:int){ DURATION = WaveData.WAVE_DURATION_FRAMES; frameCount = (DURATION + 1); zombieCount = 0; super(); waveArray = ArrayClone.clone(WaveData.ALL_WAVE_ARRAY[_arg3]); this.base = _arg1; this.enemyArray = _arg2; DURATION = WaveData.WAVE_DURATION_FRAMES; if (_arg3 == 0){ DURATION = (DURATION - (30 * Constants.FPS)); } else { if (_arg3 == 1){ DURATION = (DURATION - (20 * Constants.FPS)); } else { if (_arg3 == 2){ DURATION = (DURATION - (10 * Constants.FPS)); }; }; }; frameCount = (DURATION + 1); } private function createEnemy(_arg1:int):void{ var _local2:Enemy; if (_arg1 == 0){ if (Math.random() < 0.5){ if (Math.random() < 0.33){ _local2 = new WalkingZombie(base); zombieCount++; } else { zombieCount++; _local2 = new WalkingZombie(base); }; } else { if ((zombieCount % 3) == 0){ _local2 = new WalkingZombie(base); } else { _local2 = new WalkingZombie(base); }; }; }; if (_arg1 == 1){ _local2 = new Enemy2(base); }; if (_arg1 == 2){ _local2 = new Enemy3(base); }; if (_arg1 == 3){ _local2 = new Enemy4(base); }; if (_arg1 == 4){ _local2 = new Enemy5(base); }; if (_arg1 == 5){ _local2 = new Enemy6(base); }; if (_arg1 == 6){ _local2 = new Enemy7(base); }; if (_arg1 == 7){ _local2 = new Enemy8(base); }; dispatchEvent(new EnemyCreatedEvent(EnemyCreatedEvent.ENEMY_CREATED, _local2)); } public function onFrame():void{ var _local1:int; var _local2:int; var _local3:Number; if (frameCount-- > 0){ _local1 = waveArray.length; while (_local1-- > 0) { _local2 = waveArray[_local1]; if (_local2 > 0){ _local3 = (_local2 / frameCount); if (Gameplay.enemyArray.length == 0){ _local3 = (_local3 * 10); }; if (Math.random() < _local3){ var _local4 = waveArray; var _local5 = _local1; var _local6 = (_local4[_local5] - 1); _local4[_local5] = _local6; createEnemy(_local1); }; }; }; } else { dispatchEvent(new Event(Event.COMPLETE)); }; } } }//package src.Game.Gameplay
Section 95
//CharacterScreen (src.Game.Screens.Character.CharacterScreen) package src.Game.Screens.Character { import flash.display.*; import flash.events.*; import flash.geom.*; import src.Game.Screens.*; import src.Game.*; import src.Game.GameData.*; import flash.text.*; import utils.parentedmovieclip.*; public class CharacterScreen extends ParentedMovieClip { public var lvlDataTxt:TextField; public var descTxt:TextField; public var bg:Background; public var levelData:int;// = 1 public static const DY:int = 22; public static const START_X:int = 45; public static const START_Y:int = 90; public static var perkControlArray:Array = []; public function CharacterScreen(_arg1:DisplayObjectContainer){ levelData = 1; super(_arg1, new Point(0, 0)); bg.visible = false; x = (x - 600); lvlDataTxt.text = ""; descTxt.text = "CHOOSE ONE OF PERKS TO CONTINUE"; addEventListener(Event.ENTER_FRAME, onFrame); } private function onMouseOver(_arg1:MouseEvent):void{ var _local2:int; var _local3:int; var _local4:Boolean; _local2 = PerkControl(_arg1.currentTarget).myIdx; _local3 = PerkControl(_arg1.currentTarget).perkLvl; _local4 = checkPerkEnabled(_local3, _local2); descTxt.text = ("" + PerkData.PERK_DESC_ARRAY[_local2]); if ((((_local4 == false)) && ((_local3 == 0)))){ descTxt.text = ("" + PerkData.PERK_LOCKED_DESC_ARRAY[(_local2 - 7)]); }; } private function exitScreen(_arg1:Event):void{ x = (x + ((-600 - x) / 3)); if (x < -550){ removeEventListener(Event.ENTER_FRAME, exitScreen); dispatchEvent(new NavigationEvent(NavigationEvent.BACK)); remove(); }; } private function checkPerkEnabled(_arg1:int, _arg2:int):Boolean{ if (_arg1 >= 3){ return (false); }; if ((((((_arg2 > 6)) && ((_arg2 <= 10)))) && ((PerkData.getCharLevel() < 4)))){ return (false); }; if (_arg2 == 7){ if (PerkData.PERK_DATA[PerkData.IDX_SHARPSHOOTER] == 0){ return (false); }; } else { if (_arg2 == 8){ if ((((PerkData.PERK_DATA[PerkData.IDX_BLOOD_THIRSTY] == 0)) || ((PerkData.PERK_DATA[PerkData.IDX_FAST_SHOT] == 0)))){ return (false); }; } else { if (_arg2 == 9){ if (PerkData.PERK_DATA[PerkData.IDX_STEADY_HANDS] == 0){ return (false); }; } else { if (_arg2 == 10){ if (PerkData.PERK_DATA[PerkData.IDX_BLOOD_THIRSTY] == 0){ return (false); }; }; }; }; }; if ((((((_arg2 > 10)) && ((_arg2 <= 16)))) && ((PerkData.getCharLevel() < 9)))){ return (false); }; return (true); } private function onMouseOut(_arg1:MouseEvent):void{ descTxt.text = "CHOOSE ONE OF PERKS TO CONTINUE"; } private function onPerkSelected(_arg1:PerkEvent):void{ var _local2:PerkControl; _local2 = PerkControl(_arg1.currentTarget); var _local3 = PerkData.PERK_DATA; var _local4 = _local2.myIdx; var _local5 = (_local3[_local4] + 1); _local3[_local4] = _local5; finished(); } private function finished():void{ addEventListener(Event.ENTER_FRAME, exitScreen); SoundManagerClass.playSound("StartBattleSound", 0.33); } private function onFrame(_arg1:Event):void{ x = (x + ((0 - x) / 3)); if (x > -3){ x = 0; removeEventListener(Event.ENTER_FRAME, onFrame); createPerkControls(); }; } private function createPerkControls():void{ var _local1:int; var _local2:int; var _local3:Boolean; var _local4:PerkControl; _local1 = 17; while (_local1-- > 0) { _local2 = PerkData.PERK_DATA[_local1]; trace(("PERK LEVEL: " + _local2)); levelData = (levelData + _local2); _local3 = checkPerkEnabled(_local2, _local1); _local4 = new PerkControl(this, _local1, _local2, _local3); _local4.addEventListener(PerkEvent.PERK_SELECTED, onPerkSelected); _local4.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); _local4.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut); _local4.x = START_X; _local4.y = (START_Y + (_local1 * DY)); perkControlArray[_local1] = _local4; }; lvlDataTxt.text = ("CHAR LEVEL: " + levelData); if (levelData > 1){ SoundManagerClass.playSound("BloodySunsetMain", 0.66, 0, 1000); }; } } }//package src.Game.Screens.Character
Section 96
//PerkControl (src.Game.Screens.Character.PerkControl) package src.Game.Screens.Character { import flash.display.*; import flash.events.*; import flash.geom.*; import src.Game.GameData.*; import flash.text.*; import utils.parentedmovieclip.*; public class PerkControl extends ParentedMovieClip { public var perkNameTxt:TextField; private var myName:String; public var perkLvl:int; public var myIdx:int; public var perkLvlTxt:TextField; private var perkLvlT:TextField; private var perkNameT:TextField; public var plusC:buttonperk; public function PerkControl(_arg1:DisplayObjectContainer, _arg2:int, _arg3:int, _arg4:Boolean){ this.myIdx = _arg2; this.perkLvl = _arg3; myName = PerkData.PERK_NAME_ARRAY[_arg2]; this.perkNameT = TextField(perkNameTxt); this.perkLvlT = TextField(perkLvlTxt); super(_arg1, new Point(0, 0)); perkNameTxt.mouseEnabled = false; perkLvlTxt.mouseEnabled = false; plusC.addEventListener(MouseEvent.CLICK, onPerkBought); if (_arg4 == false){ plusC.visible = false; addChild(new ButtonLocked()); }; addText(); } private function addText():void{ perkNameTxt.text = myName; perkLvlTxt.text = ("" + perkLvl.toString()); if (perkLvl == 3){ perkLvlTxt.text = "MAX"; }; } private function onPerkBought(_arg1:MouseEvent):void{ dispatchEvent(new PerkEvent(PerkEvent.PERK_SELECTED)); } } }//package src.Game.Screens.Character
Section 97
//PerkEvent (src.Game.Screens.Character.PerkEvent) package src.Game.Screens.Character { import flash.events.*; public class PerkEvent extends Event { public static const PERK_SELECTED:String = "perk_sel"; public function PerkEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("PerkEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new PerkEvent(type, bubbles, cancelable)); } } }//package src.Game.Screens.Character
Section 98
//WeaponEvent (src.Game.Screens.Upgrade.WeaponIcons.WeaponEvent) package src.Game.Screens.Upgrade.WeaponIcons { import flash.events.*; public class WeaponEvent extends Event { public static const WEAPON_SELECTED:String = "wepon_sel"; public function WeaponEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("WeaponEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new WeaponEvent(type, bubbles, cancelable)); } } }//package src.Game.Screens.Upgrade.WeaponIcons
Section 99
//WeaponIcon (src.Game.Screens.Upgrade.WeaponIcons.WeaponIcon) package src.Game.Screens.Upgrade.WeaponIcons { import flash.display.*; import flash.events.*; import flash.geom.*; import src.Wrapper.*; import utils.parentedmovieclip.*; public class WeaponIcon extends ParentedMovieClip { public var myIdx:int; public var selected:Boolean;// = false private var costume:MovieClip; public function WeaponIcon(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:int){ selected = false; this.costume = costume; this.myIdx = _arg3; super(_arg1, _arg2); buttonMode = true; addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); addEventListener(MouseEvent.CLICK, onMouseClicked); initCostume(); } private function onMouseOver(_arg1:MouseEvent):void{ if (!selected){ alpha = 0.6; }; removeEventListener(MouseEvent.MOUSE_OVER, onMouseOver); addEventListener(MouseEvent.MOUSE_OUT, onMouseOut); } private function gotoTeaGames(_arg1:MouseEvent):void{ Wrapper.GET_CLICK_URL(Wrapper.LINK_MENUEXCLUSIVE); } public function selectWeapon():void{ dispatchEvent(new WeaponEvent(WeaponEvent.WEAPON_SELECTED)); selected = true; alpha = 0.4; } private function onMouseClicked(_arg1:MouseEvent):void{ selectWeapon(); } private function onMouseOut(_arg1:MouseEvent):void{ removeEventListener(MouseEvent.MOUSE_OUT, onMouseOut); addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); if (!selected){ alpha = 1; }; } private function initCostume():void{ if (myIdx == 0){ costume = new WeaponIcon0(); }; if (myIdx == 1){ costume = new WeaponIcon1(); }; if (myIdx == 2){ costume = new WeaponIcon2(); }; if (myIdx == 3){ costume = new WeaponIcon3(); }; if (myIdx == 4){ costume = new WeaponIcon4(); }; if (myIdx == 5){ costume = new WeaponIcon5(); }; if (myIdx == 6){ costume = new WeaponIcon6(); }; if (myIdx == 7){ costume = new WeaponIcon7(); }; if (myIdx == 8){ costume = new WeaponIcon8(); }; if (myIdx == 9){ costume = new WeaponIcon9(); }; if (myIdx == 10){ costume = new WeaponIconExclusive(); removeEventListener(MouseEvent.MOUSE_OVER, onMouseOver); removeEventListener(MouseEvent.CLICK, onMouseClicked); addEventListener(MouseEvent.CLICK, gotoTeaGames); }; if (myIdx == 11){ costume = new WeaponIcon11(); }; addChild(costume); } public function unSelectWeapon():void{ alpha = 1; selected = false; } } }//package src.Game.Screens.Upgrade.WeaponIcons
Section 100
//MiscUpgradeControl (src.Game.Screens.Upgrade.MiscUpgradeControl) package src.Game.Screens.Upgrade { import flash.display.*; import flash.events.*; import flash.geom.*; import src.Game.Gameplay.Base.*; import src.Game.GameData.*; import flash.text.*; import utils.parentedmovieclip.*; import src.Game.Gameplay.UI.*; public class MiscUpgradeControl extends ParentedMovieClip { public var descTxt:TextField; private var myLevel:int; private var myName:String; private var myDesc:String; public var costTxt:TextField; public var myIdx:int; public var myCost:Number; private var myCostume:MovieClip; public var nameTxt:TextField; public static const ICON_X:Number = 10; public static const ICON_Y:Number = 0; public function MiscUpgradeControl(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:int){ this.myIdx = _arg3; super(_arg1, _arg2); myLevel = MiscUpgradeData.UPGRADE_LVL_ARRAY[_arg3]; myCost = (MiscUpgradeData.COST_ARRAY[_arg3] + (myLevel * MiscUpgradeData.DELTA_ARRAY[_arg3])); myDesc = MiscUpgradeData.DESC_ARRAY[_arg3]; myName = MiscUpgradeData.NAMES_ARRAY[_arg3]; TextField(nameTxt).text = ("" + MiscUpgradeData.NAMES_ARRAY[_arg3]); TextField(descTxt).text = ("" + MiscUpgradeData.DESC_ARRAY[_arg3]); TextField(costTxt).text = ("" + myCost); InitCostume(); CreateIcon(); buttonMode = true; mouseChildren = false; } private function onMouseClicked(_arg1:MouseEvent):void{ dispatchEvent(new UpgradeEvent(UpgradeEvent.UPGRADE)); } private function InitCostume():void{ if (myIdx == MiscUpgradeData.IDX_REPAIRS){ myCostume = new RepairIcon(); } else { if (myIdx == MiscUpgradeData.IDX_REPAIRMEN){ myCostume = new RepairManIcon(); } else { if (myIdx == MiscUpgradeData.IDX_ENGINEERING){ myCostume = new EngineeringIcon(); } else { if (myIdx == MiscUpgradeData.IDX_TURRET){ myCostume = new TurretIcon(); } else { if (myIdx == MiscUpgradeData.IDX_HELI){ myCostume = new HelicopterIcon(); }; }; }; }; }; } private function CreateIcon():void{ var _local1:MiscUpgradeIcon; _local1 = new MiscUpgradeIcon(this, new Point(ICON_X, ICON_Y), myLevel, myCostume, myIdx); if ((((CashPrizeCounter.CASH >= myCost)) && ((myLevel < MiscUpgradeData.MISC_MAX_LEVEL)))){ addEventListener(MouseEvent.CLICK, onMouseClicked); if (((BaseModel.FullyRepaired()) && ((myIdx == MiscUpgradeData.IDX_REPAIRS)))){ removeEventListener(MouseEvent.CLICK, onMouseClicked); }; } else { if (myLevel >= MiscUpgradeData.MISC_MAX_LEVEL){ TextField(descTxt).text = (TextField(descTxt).text + "\nMAX LVL REACHED"); TextField(costTxt).text = "MAXED"; }; }; } } }//package src.Game.Screens.Upgrade
Section 101
//MiscUpgradeIcon (src.Game.Screens.Upgrade.MiscUpgradeIcon) package src.Game.Screens.Upgrade { import flash.display.*; import flash.events.*; import flash.geom.*; import src.Game.*; import flash.text.*; import utils.parentedmovieclip.*; public class MiscUpgradeIcon extends ParentedMovieClip { private var myLvl:int; public var lvlTxt:TextField; public function MiscUpgradeIcon(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:int, _arg4:MovieClip, _arg5:int){ super(_arg1, _arg2); width = (height = 40); addChildAt(_arg4, 0); TextField(lvlTxt).text = ("" + _arg3); if (_arg5 == 0){ TextField(lvlTxt).visible = false; }; buttonMode = true; _arg4.buttonMode = true; addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); } private function onMouseOver(_arg1:MouseEvent):void{ SoundManagerClass.playSound("MouseOverSound", 0.66); } } }//package src.Game.Screens.Upgrade
Section 102
//MiscUpgradeScreen (src.Game.Screens.Upgrade.MiscUpgradeScreen) package src.Game.Screens.Upgrade { import flash.display.*; import flash.geom.*; import src.Game.Gameplay.Base.*; import src.Game.*; import src.Game.GameData.*; import utils.parentedmovieclip.*; import src.Game.Gameplay.UI.*; public class MiscUpgradeScreen extends ParentedMovieClip { public var controlArray:Array; public static const CONTROL_DY:int = 45; public static const CONTROL_START_X:int = 50; public static const CONTROL_START_Y:int = 175; public static const TOTAL_MISC_UPGRADES:int = 5; public function MiscUpgradeScreen(_arg1:DisplayObjectContainer){ controlArray = []; super(_arg1, new Point(0, 0)); InitControls(); } private function InitControls():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:MiscUpgradeControl; _local1 = TOTAL_MISC_UPGRADES; while (_local1-- > 0) { _local2 = CONTROL_START_X; _local3 = (CONTROL_START_Y + (_local1 * CONTROL_DY)); _local4 = new MiscUpgradeControl(this, new Point(_local2, _local3), _local1); controlArray.push(_local4); _local4.addEventListener(UpgradeEvent.UPGRADE, onUpgradeReceived); }; } private function onUpgradeReceived(_arg1:UpgradeEvent):void{ var _local2:MiscUpgradeControl; var _local3:int; _local2 = MiscUpgradeControl(_arg1.currentTarget); _local3 = _local2.myIdx; if (_local3 != 0){ var _local4 = MiscUpgradeData.UPGRADE_LVL_ARRAY; var _local5 = _local3; var _local6 = (_local4[_local5] + 1); _local4[_local5] = _local6; }; manageUpgrades(_local3); CashPrizeCounter.Update((-1 * _local2.myCost)); dispatchEvent(new UpgradeEvent(UpgradeEvent.UPGRADE)); SoundManagerClass.playSound("ReloadSound", 0.33); destroyControls(); InitControls(); } private function manageUpgrades(_arg1:int):void{ if (_arg1 == MiscUpgradeData.IDX_REPAIRS){ BaseModel.Repair(MiscUpgradeData.REPAIRS_HP); } else { if (_arg1 == MiscUpgradeData.IDX_REPAIRMEN){ } else { if (_arg1 == MiscUpgradeData.IDX_ENGINEERING){ BaseModel.IncreaseMaxHP(MiscUpgradeData.ENGINEERING_HP_PER_LEVEL); } else { if (_arg1 == MiscUpgradeData.IDX_TURRET){ } else { if (_arg1 == MiscUpgradeData.IDX_HELI){ }; }; }; }; }; } private function destroyControls():void{ var _local1:int; var _local2:MiscUpgradeControl; _local1 = TOTAL_MISC_UPGRADES; while (_local1-- > 0) { _local2 = MiscUpgradeControl(controlArray[_local1]); _local2.removeEventListener(UpgradeEvent.UPGRADE, onUpgradeReceived); controlArray.splice(_local1, 1); _local2.remove(); }; } } }//package src.Game.Screens.Upgrade
Section 103
//PropertyUpgradeControl (src.Game.Screens.Upgrade.PropertyUpgradeControl) package src.Game.Screens.Upgrade { import flash.display.*; import flash.events.*; import flash.geom.*; import src.Game.*; import src.Game.GameData.*; import flash.text.*; import utils.parentedmovieclip.*; import src.Game.Gameplay.UI.*; public class PropertyUpgradeControl extends ParentedMovieClip { public var butOff:PropertyButtonMask; public var myCostDataArray:Array; public var propertyTxt:TextField; public var costTxt:TextField; public var myIdx:int; public var myPropertyAmount:Number; public var but:PropertyButton; public var myCost:Number; public var myUpgradeLevel:int; public var myWeaponIdx:int; public var myWeaponData:Array; public var nameTxt:TextField; public static const PROPERTIES_NAMES:Array = ["DAMAGE", "FIRE RATE", "RELOAD TIME", "CLIP SIZE"]; public function PropertyUpgradeControl(_arg1:DisplayObjectContainer, _arg2:Point, _arg3:int, _arg4:int){ this.myWeaponIdx = _arg4; this.myIdx = _arg3; super(_arg1, _arg2); scaleX = (scaleY = 1.1); myWeaponData = WeaponData.ALL_WEAPON_DATA_ARRAY[_arg4]; myUpgradeLevel = WeaponData.ALL_WEAPON_UPGRADES[_arg4][_arg3]; myPropertyAmount = myWeaponData[_arg3][WeaponData.ALL_WEAPON_UPGRADES[_arg4][_arg3]]; myCostDataArray = WeaponData.ALL_WEAPON_COST_DATA_ARRAY[_arg4]; if ((WeaponData.ALL_WEAPON_UPGRADES[_arg4][_arg3] + 1) <= 4){ myCost = myCostDataArray[_arg3][(WeaponData.ALL_WEAPON_UPGRADES[_arg4][_arg3] + 1)]; TextField(costTxt).text = (("" + myCost) + "$"); if (CashPrizeCounter.CASH >= myCost){ but.addEventListener(MouseEvent.CLICK, onButtonClicked); SimpleButton(but).visible = true; MovieClip(butOff).visible = false; } else { SimpleButton(but).visible = false; MovieClip(butOff).visible = true; }; } else { TextField(costTxt).text = "MAXED"; SimpleButton(but).visible = false; MovieClip(butOff).visible = true; }; TextField(propertyTxt).mouseEnabled = false; TextField(nameTxt).text = PROPERTIES_NAMES[_arg3]; TextField(propertyTxt).text = ("" + myPropertyAmount); addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); } private function onMouseOver(_arg1:MouseEvent):void{ SoundManagerClass.playSound("MouseOverSound", 0.66); } public function upgrade():void{ CashPrizeCounter.Update((-1 * myCost)); var _local1 = WeaponData.ALL_WEAPON_UPGRADES[myWeaponIdx]; var _local2 = myIdx; var _local3 = (_local1[_local2] + 1); _local1[_local2] = _local3; } private function onButtonClicked(_arg1:MouseEvent):void{ SoundManagerClass.playSound("ReloadSound", 0.33); upgrade(); dispatchEvent(new UpgradeEvent(UpgradeEvent.UPGRADE)); } } }//package src.Game.Screens.Upgrade
Section 104
//TabSelectControl (src.Game.Screens.Upgrade.TabSelectControl) package src.Game.Screens.Upgrade { import flash.display.*; import flash.events.*; import src.Game.*; public class TabSelectControl extends Sprite { public var misc:MiscTab; public var currentSelection:int;// = 0 public var weapons:WeaponsTab; public static const MISC_S:int = 1; public static const WEAPONS_S:int = 0; public function TabSelectControl(){ currentSelection = WEAPONS_S; super(); weapons.addEventListener(MouseEvent.CLICK, onWeaponsSelected); misc.addEventListener(MouseEvent.CLICK, onMiscSelected); weapons.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); misc.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); dispatchEvent(new TabSelectedEvent(TabSelectedEvent.WEAPONS)); } private function onMiscSelected(_arg1:MouseEvent):void{ if (currentSelection != MISC_S){ SoundManagerClass.playSound("ClickSound"); currentSelection = MISC_S; dispatchEvent(new TabSelectedEvent(TabSelectedEvent.MISC)); }; } private function onWeaponsSelected(_arg1:MouseEvent):void{ if (currentSelection != WEAPONS_S){ SoundManagerClass.playSound("ClickSound"); currentSelection = WEAPONS_S; dispatchEvent(new TabSelectedEvent(TabSelectedEvent.WEAPONS)); }; } private function mouseOverHandler(_arg1:MouseEvent):void{ SoundManagerClass.playSound("MouseOverSound"); } } }//package src.Game.Screens.Upgrade
Section 105
//TabSelectedEvent (src.Game.Screens.Upgrade.TabSelectedEvent) package src.Game.Screens.Upgrade { import flash.events.*; public class TabSelectedEvent extends Event { public static const MISC:String = "misc"; public static const WEAPONS:String = "weapons"; public function TabSelectedEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("TabSelectedEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new TabSelectedEvent(type, bubbles, cancelable)); } } }//package src.Game.Screens.Upgrade
Section 106
//UpgradeEvent (src.Game.Screens.Upgrade.UpgradeEvent) package src.Game.Screens.Upgrade { import flash.events.*; public class UpgradeEvent extends Event { public static const UPGRADE:String = "upgrade"; public function UpgradeEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("UpgradeEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new UpgradeEvent(type, bubbles, cancelable)); } } }//package src.Game.Screens.Upgrade
Section 107
//UpgradeScreen (src.Game.Screens.Upgrade.UpgradeScreen) package src.Game.Screens.Upgrade { import flash.display.*; import flash.events.*; import flash.geom.*; import src.Game.Gameplay.Base.*; import src.Game.Screens.*; import flash.text.*; import utils.parentedmovieclip.*; import src.Game.Gameplay.UI.*; public class UpgradeScreen extends ParentedMovieClip { public var hp:Hp_tab_shop; public var cashTxt:TextField; private var _tabCtrl:TabSelectControl; public var healthTxt:TextField; public var exitBut:ExitButton; private var miscUpgradeScr:MiscUpgradeScreen; public var tabCtrl:TabSelectControl; private var weaponUpgrScr:WeaponUpgradeScreen; public function UpgradeScreen(_arg1:DisplayObjectContainer){ super(_arg1, new Point(0, 0)); _tabCtrl = TabSelectControl(tabCtrl); _tabCtrl.addEventListener(TabSelectedEvent.WEAPONS, onWeaponsSelected); _tabCtrl.addEventListener(TabSelectedEvent.MISC, onMiscSelected); _tabCtrl.dispatchEvent(new TabSelectedEvent(TabSelectedEvent.WEAPONS)); displayCashAndHealth(); x = (x - 600); addEventListener(Event.ENTER_FRAME, onFrame); } private function onMiscSelected(_arg1:TabSelectedEvent):void{ if (weaponUpgrScr){ if (weaponUpgrScr.parent){ weaponUpgrScr.removeEventListener(UpgradeEvent.UPGRADE, onUpgraded); weaponUpgrScr.remove(); }; }; miscUpgradeScr = new MiscUpgradeScreen(this); miscUpgradeScr.addEventListener(UpgradeEvent.UPGRADE, onUpgraded); } private function exitScreen(_arg1:Event):void{ x = (x + ((-600 - x) / 3)); if (x < -550){ removeEventListener(Event.ENTER_FRAME, exitScreen); dispatchEvent(new NavigationEvent(NavigationEvent.BACK)); remove(); }; } private function displayCashAndHealth():void{ var _local1:int; TextField(cashTxt).text = (("" + Math.round(CashPrizeCounter.CASH)) + "$"); TextField(healthTxt).text = ((("HP: " + Math.round(BaseModel.hitPoints)) + "/") + Math.round(BaseModel.maxHitPoints)); _local1 = (100 - Math.ceil(((100 * BaseModel.hitPoints) / BaseModel.maxHitPoints))); if (_local1 == 0){ _local1 = 1; }; hp.gotoAndStop(_local1); } private function onWeaponsSelected(_arg1:TabSelectedEvent):void{ if (miscUpgradeScr){ if (miscUpgradeScr.parent){ miscUpgradeScr.removeEventListener(UpgradeEvent.UPGRADE, onUpgraded); miscUpgradeScr.remove(); }; }; weaponUpgrScr = new WeaponUpgradeScreen(this); weaponUpgrScr.addEventListener(UpgradeEvent.UPGRADE, onUpgraded); } private function onFrame(_arg1:Event):void{ x = (x + ((0 - x) / 3)); if (x > -3){ x = 0; removeEventListener(Event.ENTER_FRAME, onFrame); exitBut.addEventListener(MouseEvent.CLICK, onBackClicked); }; } private function onUpgraded(_arg1:UpgradeEvent):void{ displayCashAndHealth(); } private function onBackClicked(_arg1:MouseEvent):void{ addEventListener(Event.ENTER_FRAME, exitScreen); } } }//package src.Game.Screens.Upgrade
Section 108
//WeaponUpgradeScreen (src.Game.Screens.Upgrade.WeaponUpgradeScreen) package src.Game.Screens.Upgrade { import flash.display.*; import flash.events.*; import flash.geom.*; import src.Game.Screens.Upgrade.WeaponIcons.*; import src.Game.*; import src.Game.GameData.*; import flash.text.*; import utils.parentedmovieclip.*; import src.Game.Gameplay.UI.*; public class WeaponUpgradeScreen extends ParentedMovieClip { public var buyBut:BuyButton; public var descTxt:TextField; public var equipBut:EquipButton; public var currentSelectedCost:Number; public var costTxt:TextField; public var currentSelectedWeapon:int; public var upgradeControlsArray:Array; public var eqMark:EquippedMark; public var iconArray:Array; public var nameTxt:TextField; public static const DATA_DESC_IDX:int = 8; public static const UPGRADES_START_X:int = 95; public static const ICONS_START_X:int = 72; public static const ICONS_START_Y:int = 180; public static const ICONS_DX:int = 76; public static const ICONS_DY:int = 50; public static const UPGRADES_START_Y:int = 300; public static const UPGRADES_DY:int = 20; public static const DATA_NAME_IDX:int = 7; public function WeaponUpgradeScreen(_arg1:DisplayObjectContainer){ var _local2:int; iconArray = []; upgradeControlsArray = []; super(_arg1, new Point(0, 0)); addIcons(); hideButtons(); _local2 = WeaponData.EQUIPPED_WEAPON_IDX; selectWeapon(_local2); WeaponIcon(iconArray[_local2]).selectWeapon(); SimpleButton(equipBut).addEventListener(MouseEvent.CLICK, onEquipButtonPressed); SimpleButton(buyBut).addEventListener(MouseEvent.CLICK, onBuyButtonPressed); } private function removeAllWeaponElements():void{ removeUpgradeControls(); } private function selectWeapon(_arg1:int):void{ var _local2:Boolean; _local2 = WeaponData.ALL_WEAPON_OWNERSHIP[_arg1]; currentSelectedWeapon = _arg1; removeAllWeaponElements(); addNamesAndDesc(_arg1); if (_local2){ weaponOwnedHandler(_arg1); } else { weaponNotOwnedHandler(_arg1); }; } private function weaponOwnedHandler(_arg1:int):void{ var _local2:int; var _local3:Array; var _local4:Number; var _local5:Number; var _local6:PropertyUpgradeControl; _local2 = 4; _local3 = Array(WeaponData.ALL_WEAPON_UPGRADES[_arg1]); while (_local2-- > 0) { _local4 = UPGRADES_START_X; _local5 = (UPGRADES_START_Y + (_local2 * UPGRADES_DY)); _local6 = new PropertyUpgradeControl(this, new Point(_local4, _local5), _local2, _arg1); upgradeControlsArray.push(_local6); _local6.addEventListener(UpgradeEvent.UPGRADE, onWeaponUpgraded); }; if (WeaponData.EQUIPPED_WEAPON_IDX == _arg1){ MovieClip(eqMark).visible = true; } else { SimpleButton(equipBut).visible = true; }; } private function onEquipButtonPressed(_arg1:MouseEvent):void{ trace("EQUIP"); WeaponData.EQUIPPED_WEAPON_IDX = currentSelectedWeapon; updateScreen(); } private function updateScreen():void{ hideButtons(); trace(("CURRENT WEAPON: " + currentSelectedWeapon)); selectWeapon(currentSelectedWeapon); dispatchEvent(new UpgradeEvent(UpgradeEvent.UPGRADE)); } private function onWeaponSelected(_arg1:WeaponEvent):void{ var _local2:int; var _local3:int; var _local4:WeaponIcon; hideButtons(); _local2 = WeaponIcon(_arg1.currentTarget).myIdx; currentSelectedWeapon = _local2; _local3 = iconArray.length; while (_local3-- > 0) { _local4 = WeaponIcon(iconArray[_local3]); if (_local3 != currentSelectedWeapon){ _local4.unSelectWeapon(); }; }; selectWeapon(_local2); } private function onBuyButtonPressed(_arg1:MouseEvent):void{ CashPrizeCounter.Update((-1 * currentSelectedCost)); WeaponData.ALL_WEAPON_OWNERSHIP[currentSelectedWeapon] = true; WeaponData.EQUIPPED_WEAPON_IDX = currentSelectedWeapon; updateScreen(); SoundManagerClass.playSound("Buy"); } private function weaponNotOwnedHandler(_arg1:int):void{ var _local2:Number; _local2 = WeaponData.ALL_WEAPON_COST_DATA_ARRAY[_arg1][0][0]; currentSelectedCost = _local2; TextField(costTxt).text = (("COST: " + _local2) + "$"); TextField(costTxt).visible = true; if (_local2 <= CashPrizeCounter.CASH){ SimpleButton(buyBut).visible = true; } else { TextField(descTxt).text = "\nNOT ENOUGH CASH"; }; } private function onWeaponUpgraded(_arg1:UpgradeEvent):void{ updateScreen(); } private function removeUpgradeControls():void{ var _local1:int; var _local2:PropertyUpgradeControl; _local1 = upgradeControlsArray.length; while (_local1-- > 0) { _local2 = PropertyUpgradeControl(upgradeControlsArray[_local1]); _local2.removeEventListener(UpgradeEvent.UPGRADE, onWeaponUpgraded); _local2.remove(); upgradeControlsArray.splice(_local1, 1); }; } private function addNamesAndDesc(_arg1:int):void{ var _local2:String; var _local3:String; _local2 = WeaponData.ALL_WEAPON_DATA_ARRAY[_arg1][DATA_NAME_IDX]; _local3 = WeaponData.ALL_WEAPON_DATA_ARRAY[_arg1][DATA_DESC_IDX]; TextField(nameTxt).text = _local2; if ((((((_arg1 == WeaponData.IDX_PISTOL)) || ((_arg1 == WeaponData.IDX_MAGNUM)))) || ((_arg1 == WeaponData.IDX_PPK12_GAUSS)))){ _local3 = (_local3 + "\nPISTOL CLASS"); } else { if ((((((((((_arg1 == WeaponData.IDX_UZI)) || ((_arg1 == WeaponData.IDX_AK47)))) || ((_arg1 == WeaponData.IDX_SNIPER)))) || ((_arg1 == WeaponData.IDX_HKP90)))) || ((_arg1 == WeaponData.IDX_GAUSS_RIFLE)))){ _local3 = (_local3 + "\nRIFLE CLASS"); } else { if ((((_arg1 == WeaponData.IDX_SHOTGUN)) || ((_arg1 == WeaponData.IDX_COMBAT_SGUN)))){ _local3 = (_local3 + "\nSHOTGUN CLASS"); } else { if ((((_arg1 == WeaponData.IDX_MINIGUN)) || ((_arg1 == WeaponData.IDX_BOZAR)))){ _local3 = (_local3 + "\nHEAVY GUN CLASS"); }; }; }; }; TextField(descTxt).text = _local3; } private function hideButtons():void{ SimpleButton(buyBut).visible = false; SimpleButton(equipBut).visible = false; MovieClip(eqMark).visible = false; TextField(costTxt).visible = false; } private function addIcons():void{ var _local1:int; var _local2:Number; var _local3:Number; var _local4:WeaponIcon; _local1 = 12; while (_local1-- > 0) { _local2 = (ICONS_START_X + ((_local1 % 6) * ICONS_DX)); _local3 = (ICONS_START_Y + (Math.floor((_local1 / 6)) * ICONS_DY)); _local4 = new WeaponIcon(this, new Point(_local2, _local3), _local1); iconArray[_local1] = WeaponIcon(_local4); _local4.addEventListener(WeaponEvent.WEAPON_SELECTED, onWeaponSelected); }; } } }//package src.Game.Screens.Upgrade
Section 109
//CreditsScreen (src.Game.Screens.CreditsScreen) package src.Game.Screens { import flash.display.*; import flash.events.*; public class CreditsScreen extends MovieClip { public var backBut:SimpleButton; private var back:SimpleButton; public function CreditsScreen(_arg1:DisplayObjectContainer){ _arg1.addChild(this); back = SimpleButton(backBut); back.addEventListener(MouseEvent.CLICK, onBack); } private function onBack(_arg1:MouseEvent):void{ if (parent){ parent.removeChild(this); }; dispatchEvent(new NavigationEvent(NavigationEvent.BACK)); } } }//package src.Game.Screens
Section 110
//DifficultyScreen (src.Game.Screens.DifficultyScreen) package src.Game.Screens { import flash.display.*; import flash.events.*; import flash.geom.*; import src.Game.*; import src.Wrapper.*; import utils.parentedmovieclip.*; public class DifficultyScreen extends ParentedMovieClip { var normalBut:SimpleButton; var easyBut:SimpleButton; var frameDelay:int;// = 3 public var normalB:button_normal; public var easyB:button_easy; var hardBut:SimpleButton; var frameCount:int;// = 0 public var hardB:button_hard; public function DifficultyScreen(_arg1:DisplayObjectContainer){ frameCount = 0; frameDelay = 3; super(_arg1, new Point()); Game.difficulty = 0; easyBut = SimpleButton(easyB); normalBut = SimpleButton(normalB); hardBut = SimpleButton(hardB); easyBut.visible = (normalBut.visible = (hardBut.visible = false)); addEventListener(Event.ENTER_FRAME, onFrame); } private function onHard(_arg1:MouseEvent):void{ Game.difficulty = 1; remove(); } override public function remove():void{ TeagamesAPI.GameStarted(); super.remove(); dispatchEvent(new Event(Event.COMPLETE)); SoundManagerClass.playSound("StartBattleSound", 0.33); } private function onEasy(_arg1:MouseEvent):void{ Game.difficulty = -1; remove(); } private function addListeners():void{ easyBut.addEventListener(MouseEvent.CLICK, onEasy); normalBut.addEventListener(MouseEvent.CLICK, onNormal); hardBut.addEventListener(MouseEvent.CLICK, onHard); } private function onNormal(_arg1:MouseEvent):void{ Game.difficulty = 0; remove(); } private function onFrame(_arg1:Event):void{ frameCount++; if ((frameCount % frameDelay) == 0){ if ((frameCount / frameDelay) == 2){ easyBut.visible = true; } else { if ((frameCount / frameDelay) == 3){ normalBut.visible = true; } else { if ((frameCount / frameDelay) == 4){ hardBut.visible = true; removeEventListener(Event.ENTER_FRAME, onFrame); addListeners(); }; }; }; }; } } }//package src.Game.Screens
Section 111
//GameIntroText (src.Game.Screens.GameIntroText) package src.Game.Screens { import utils.*; import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import utils.parentedmovieclip.*; public class GameIntroText extends ParentedMovieClip { var myT3:TextField; public var joeyMC:JoeyMC; public var myTxt:TextField; var tween1:Tween; var myT2:TextField; var tween:Tween; var myT:TextField; public var myTxt2:TextField; public var myTxt3:TextField; var frameCount:int;// = 270 var joey:MovieClip; public function GameIntroText(_arg1:DisplayObjectContainer){ var _local2:Tween; frameCount = 270; super(_arg1, new Point(0, 0)); myT = TextField(myTxt); myT2 = TextField(myTxt2); myT3 = TextField(myTxt3); joey = MovieClip(joeyMC); _local2 = new Tween(joey); _local2.tweenToCoordinates(new Point((joey.x + 500), joey.y), new Point(joey.x, joey.y), 0, 0.25); myT.visible = (myT2.visible = (myT3.visible = false)); addEventListener(Event.ENTER_FRAME, onFrame); addEventListener(MouseEvent.CLICK, onMouseClicked); } private function onMouseClicked(_arg1:MouseEvent):void{ dispatchEvent(new Event(Event.COMPLETE)); removeEventListener(Event.ENTER_FRAME, onFrame); remove(); } private function onFrame(_arg1:Event):void{ var _local2:Tween; var _local3:Tween; var _local4:Tween; var _local5:Tween; if (frameCount == 240){ myT.visible = true; } else { if (frameCount == 210){ myT2.visible = true; } else { if (frameCount == 75){ myT3.visible = true; }; }; }; if (frameCount-- == 0){ _local2 = new Tween(joey); _local3 = new Tween(myT); _local4 = new Tween(myT2); _local5 = new Tween(myT3); _local2.tweenToCoordinates(new Point(joey.x, joey.y), new Point((joey.x + 600), joey.y)); _local3.tweenToCoordinates(new Point(myT.x, myT.y), new Point((myT.x - 600), myT.y)); _local4.tweenToCoordinates(new Point(myT2.x, myT2.y), new Point((myT2.x - 600), myT2.y)); _local5.tweenToCoordinates(new Point(myT3.x, myT3.y), new Point((myT3.x - 600), myT3.y)); }; if (frameCount < -20){ removeEventListener(Event.ENTER_FRAME, onFrame); remove(); dispatchEvent(new Event(Event.COMPLETE)); }; } } }//package src.Game.Screens
Section 112
//GameOverScreen (src.Game.Screens.GameOverScreen) package src.Game.Screens { import flash.display.*; import flash.events.*; import mochi.as3.*; import src.Game.Achievements.*; import frosmo.*; import src.Wrapper.*; import flash.net.*; import flash.text.*; public class GameOverScreen extends MovieClip { public var exitB:SimpleButton; public var scoreT:TextField; private var description:String;// = "description=Don't touch golden skull if you find one. Here's what happens if you do!" private var restartB:SimpleButton; private var exit:SimpleButton; private var ac:SimpleButton; private var submit:SimpleButton; public var submitBut:SimpleButton; private var menu:SimpleButton; private var screenshot:String;// = "screenshot=http://www.teagames.com/skin2/gamescreenshots/bloodysunset.gif" private var title:String;// = "title=Zombies want my brains!!!" private var score:Number; private var swfURL:String;// = "swfurl=http://www.teagames.com/share/fb.swf&width=1&height=1" private var sharedURL:String;// = "url=http://www.teagames.com/games/bloodysunset/play.php?sms_ss=facebook" private var username:String;// = "username=teagames" private var scoreText:TextField; public var restartBut:SimpleButton; public var acBut:SimpleButton; public function GameOverScreen(_arg1:DisplayObjectContainer, _arg2:Number){ var _local3:RankManager; description = "description=Don't touch golden skull if you find one. Here's what happens if you do!"; sharedURL = "url=http://www.teagames.com/games/bloodysunset/play.php?sms_ss=facebook"; swfURL = "swfurl=http://www.teagames.com/share/fb.swf&width=1&height=1"; title = "title=Zombies want my brains!!!"; username = "username=teagames"; screenshot = "screenshot=http://www.teagames.com/skin2/gamescreenshots/bloodysunset.gif"; super(); _local3 = new RankManager(this, _arg2); this.score = _arg2; if (_arg1){ _arg1.addChild(this); }; initDisplay(); submitScore(); } private function onAchievementsClicked(_arg1:MouseEvent):void{ var _local2:AchievementsScreen; _local2 = new AchievementsScreen(parent); visible = false; _local2.addEventListener(NavigationEvent.BACK, onBackFromAchievements); } private function initDisplay():void{ scoreText = TextField(scoreT); scoreText.text = ("You scored: " + score); submit = SimpleButton(submitBut); submit.addEventListener(MouseEvent.CLICK, onSubmitClicked); restartB = SimpleButton(restartBut); restartB.addEventListener(MouseEvent.CLICK, onRestartClicked); exit = SimpleButton(exitB); exit.addEventListener(MouseEvent.CLICK, onExitClicked); ac = SimpleButton(acBut); ac.addEventListener(MouseEvent.CLICK, onAchievementsClicked); if (Wrapper.FROSMO_V){ submit.visible = false; restartB.visible = false; menu.visible = false; } else { exit.visible = false; }; } private function onSubmitClicked(_arg1:MouseEvent):void{ mochiSubmit(); } private function submitScore():void{ var _local1:Number; if (Wrapper.TEST){ return; }; if (Wrapper.FROSMO_V){ _local1 = Api.getNumber("Score"); Api.submitScore(score.toString(), null, null); } else { KongregateLoader.kongregate.stats.submit("Score", score); MindJoltLoader.MindJoltAPI.service.submitScore(score); }; } private function onBackFromAchievements(_arg1:NavigationEvent):void{ visible = true; } private function mochiSubmit():void{ var scoreA:Number; var o:Object; var boardID:String; scoreA = score; o = {n:Wrapper.MOCHI_LEADERBOARD, f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; boardID = o.f(0, ""); MochiScores.showLeaderboard({boardID:boardID, score:scoreA, onClose:function (){ }}); } private function onMenuClicked(_arg1:MouseEvent):void{ if (parent){ parent.removeChild(this); }; dispatchEvent(new NavigationEvent(NavigationEvent.BACK)); } private function onExitClicked(_arg1:MouseEvent):void{ var _local2:URLRequest; _local2 = new URLRequest(Api.exitUrl); navigateToURL(_local2, "_self"); } private function onRestartClicked(_arg1:MouseEvent):void{ if (parent){ parent.removeChild(this); }; dispatchEvent(new NavigationEvent(NavigationEvent.START)); } } }//package src.Game.Screens
Section 113
//GamePassedScreen (src.Game.Screens.GamePassedScreen) package src.Game.Screens { import utils.*; import flash.display.*; import flash.events.*; import flash.geom.*; import src.Game.*; import src.Wrapper.*; import flash.net.*; import flash.text.*; import utils.parentedmovieclip.*; import flash.filters.*; public class GamePassedScreen extends ParentedMovieClip { public var restT:TextField; private var description:String;// = "description=Don't touch golden skull if you find one. Here's what happens if you do!" public var shareBut:ShareButton; public var whileT:TextField; public var submitBut:SumbitButton; private var title:String;// = "title=Zombies want my brains!!!" var color:int;// = 0 private var screenshot:String;// = "screenshot=http://www.teagames.com/skin2/gamescreenshots/bloodysunset.gif" public var submittedTxt:TextField; var colorM:ColorMatrix; public var menuBut:QuitGameButton; private var swfURL:String;// = "swfurl=http://www.teagames.com/share/fb.swf&width=1&height=1" var frameCount:int;// = 0 private var sharedURL:String;// = "url=http://www.teagames.com/games/bloodysunset/play.php?sms_ss=facebook" private var username:String;// = "username=teagames" public function GamePassedScreen(_arg1:DisplayObjectContainer){ frameCount = 0; color = 0; description = "description=Don't touch golden skull if you find one. Here's what happens if you do!"; sharedURL = "url=http://www.teagames.com/games/bloodysunset/play.php?sms_ss=facebook"; swfURL = "swfurl=http://www.teagames.com/share/fb.swf&width=1&height=1"; title = "title=Zombies want my brains!!!"; username = "username=teagames"; screenshot = "screenshot=http://www.teagames.com/skin2/gamescreenshots/bloodysunset.gif"; super(_arg1, new Point(0, 0)); colorM = new ColorMatrix(); colorM.adjustBrightness(-100); colorM.adjustSaturation(-100); filters = [new ColorMatrixFilter(colorM)]; SoundManagerClass.startMusic("BloodySunsetGameWonStinger"); restT.visible = false; whileT.visible = false; shareBut.visible = false; submitBut.visible = false; menuBut.visible = false; submittedTxt.visible = false; addEventListener(Event.ENTER_FRAME, onFrame); } private function onMouseClicked(_arg1:MouseEvent):void{ removeEventListener(Event.ENTER_FRAME, onFrame); remove(); dispatchEvent(new Event(Event.COMPLETE)); } private function onSubmitClicked(_arg1:MouseEvent):void{ submitBut.visible = false; submittedTxt.visible = true; TeagamesAPI.SendScore(); } private function onFrame(_arg1:Event):void{ if (frameCount < 100){ x = (x + -1); y = (y + -1); scaleX = (scaleX * 1.001); scaleY = scaleX; }; if (frameCount++ == 101){ restT.visible = true; } else { if (frameCount == 200){ whileT.visible = true; shareBut.visible = true; submitBut.visible = true; menuBut.visible = true; shareBut.addEventListener(MouseEvent.CLICK, onShareClicked); submitBut.addEventListener(MouseEvent.CLICK, onSubmitClicked); menuBut.addEventListener(MouseEvent.CLICK, onMouseClicked); }; }; color = (color + ((100 - color) * 0.15)); color++; colorM = new ColorMatrix(); colorM.adjustBrightness((-100 + color)); colorM.adjustSaturation((-100 + color)); filters = [new ColorMatrixFilter(colorM)]; if (color >= 100){ filters = []; }; } private function onShareClicked(_arg1:MouseEvent):void{ var _local2:String; if (Wrapper.FB_ENDPOINT == null){ Wrapper.FB_ENDPOINT = "http://api.addthis.com/oexchange/0.8/forward/facebook/offer"; }; _local2 = ((((((((((((Wrapper.FB_ENDPOINT + "?") + sharedURL) + "&") + swfURL) + "&") + title) + "&") + description) + "&") + username) + "&") + screenshot); navigateToURL(new URLRequest(_local2)); } } }//package src.Game.Screens
Section 114
//Instructions (src.Game.Screens.Instructions) package src.Game.Screens { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import utils.parentedmovieclip.*; public class Instructions extends ParentedMovieClip { private const INSTR_TEXT:String = "Play game good to win, try not to lose and play good game! Try to beat highscore! And rock the game!"; public var msgT:TextField; public var startB:button_start; private var start:SimpleButton; public function Instructions(_arg1:DisplayObjectContainer){ super(_arg1, new Point(0, 0)); start = SimpleButton(startB); start.addEventListener(MouseEvent.CLICK, onMouseClicked); } private function onMouseClicked(_arg1:MouseEvent):void{ remove(); dispatchEvent(new Event(Event.COMPLETE)); } } }//package src.Game.Screens
Section 115
//IntroScreen (src.Game.Screens.IntroScreen) package src.Game.Screens { import utils.*; import flash.display.*; import flash.events.*; import src.Game.*; import src.Wrapper.*; import flash.net.*; import src.Game.Buttons.*; import flash.filters.*; public class IntroScreen extends MovieClip { private var colorMatrix:ColorMatrix; public var exclusiveBut:button_exclusive; public var musicBut:MusicButton; private var achievements:SimpleButton; private var cash:SimpleButton; public var bg:MovieClip; public var cashBut:button_moregames; private var color:Number;// = 0 private var start:SimpleButton; public var creditsBut:buttons_credits; private var credits:SimpleButton; private var host:SimpleButton; private var exclusive:SimpleButton; public var hostBut:HostGame; private var framecount:int;// = 0 public var startBut:button_start; public var acBut:button_achievements; public function IntroScreen(_arg1:DisplayObjectContainer, _arg2:Boolean=false){ framecount = 0; color = 0; super(); trace("HERE IM"); _arg1.addChild(this); init(); addEventListener(Event.ENTER_FRAME, onFrame); if (_arg2){ addEventListener(MouseEvent.CLICK, onMouseClicked); SoundManagerClass.switchMusicIfDifferent("BloodySunsetIntroStinger", 0); } else { skipToMenus(); }; } private function onHostClicked(_arg1:MouseEvent):void{ var _local2:URLRequest; _local2 = new URLRequest(Wrapper.FGD_PAGE); navigateToURL(_local2); } private function init():void{ start = NormalButton(startBut); achievements = NormalButton(acBut); cash = NormalButton(cashBut); credits = NormalButton(creditsBut); host = NormalButton(hostBut); exclusive = SimpleButton(exclusiveBut); if (Wrapper.FROSMO_V){ cash.visible = false; host.visible = false; }; exclusive.visible = (start.visible = (credits.visible = (cash.visible = (achievements.visible = false)))); start.addEventListener(MouseEvent.CLICK, onStartClicked); achievements.addEventListener(MouseEvent.CLICK, onAchieveClick); cash.addEventListener(MouseEvent.CLICK, onCashClicked); credits.addEventListener(MouseEvent.CLICK, onCreditsClicked); host.addEventListener(MouseEvent.CLICK, onHostClicked); exclusive.addEventListener(MouseEvent.CLICK, exclusiveClicked); } private function onCreditsClicked(_arg1:MouseEvent):void{ dispatchEvent(new NavigationEvent(NavigationEvent.CREDITS)); remove(); } private function onCashClicked(_arg1:MouseEvent):void{ Wrapper.GET_CLICK_URL(Wrapper.LINK_MENUMOREGAMES); } private function onAchieveClick(_arg1:MouseEvent):void{ dispatchEvent(new NavigationEvent(NavigationEvent.ACHIEVEMENTS)); remove(); } private function onStartClicked(_arg1:MouseEvent):void{ addEventListener(Event.ENTER_FRAME, startGame); colorMatrix = new ColorMatrix(); } private function startGame(_arg1:Event):void{ start.visible = false; credits.visible = false; cash.visible = false; achievements.visible = false; exclusive.visible = false; color = (color + ((-100 - color) * 0.05)); color = (color - 0.5); colorMatrix = new ColorMatrix(); colorMatrix.adjustSaturation((color - 20)); colorMatrix.adjustBrightness(color); colorMatrix.adjustContrast(color); filters = [new ColorMatrixFilter(colorMatrix)]; if (color < -80){ removeEventListener(Event.ENTER_FRAME, startGame); dispatchEvent(new NavigationEvent(NavigationEvent.START)); remove(); }; } private function onMouseClicked(_arg1:MouseEvent):void{ skipToMenus(); } private function exclusiveClicked(_arg1:MouseEvent):void{ Wrapper.GET_CLICK_URL(Wrapper.LINK_MENUEXCLUSIVE); } public function remove():void{ if (parent){ parent.removeChild(this); }; } public function skipToMenus():void{ bg.bg.gotoAndStop(240); bg.bg.tmove.gotoAndStop(289); start.visible = true; credits.visible = true; cash.visible = true; achievements.visible = true; exclusive.visible = true; SoundManagerClass.playSound("ReloadSound", 0.33); SoundManagerClass.switchMusicIfDifferent("BloodySunsetMain", 1000); removeEventListener(Event.ENTER_FRAME, onFrame); removeEventListener(MouseEvent.CLICK, onMouseClicked); } private function onFrame(_arg1:Event):void{ if (framecount == 250){ SoundManagerClass.fadeCurrentMusic(); }; if (framecount++ == 260){ start.visible = true; SoundManagerClass.playSound("ReloadSound", 0.33); } else { if (framecount == 263){ achievements.visible = true; } else { if (framecount == 265){ cash.visible = true; exclusive.visible = true; } else { if (framecount == 270){ credits.visible = true; removeEventListener(Event.ENTER_FRAME, onFrame); removeEventListener(MouseEvent.CLICK, onMouseClicked); SoundManagerClass.switchMusicIfDifferent("BloodySunsetMain", 1000); }; }; }; }; } } }//package src.Game.Screens
Section 116
//LevelLostScreen (src.Game.Screens.LevelLostScreen) package src.Game.Screens { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.geom.*; import src.Game.*; import src.Wrapper.*; import flash.net.*; import flash.text.*; import utils.parentedmovieclip.*; public class LevelLostScreen extends ParentedMovieClip { private var description:String;// = "description=Don't touch golden skull if you find one. Here's what happens if you do!" private var submitMsgT:TextField; public var submitMsg:TextField; private var title:String;// = "title=Zombies want my brains!!!" private var screenshot:String;// = "screenshot=http://www.teagames.com/skin2/gamescreenshots/bloodysunset.gif" private var submitBut:SimpleButton; private var nextBut:SimpleButton; private var swfURL:String;// = "swfurl=http://www.teagames.com/share/fb.swf&width=1&height=1" private var sharedURL:String;// = "url=http://www.teagames.com/games/bloodysunset/play.php?sms_ss=facebook" private var username:String;// = "username=teagames" public function LevelLostScreen(_arg1:DisplayObjectContainer){ description = "description=Don't touch golden skull if you find one. Here's what happens if you do!"; sharedURL = "url=http://www.teagames.com/games/bloodysunset/play.php?sms_ss=facebook"; swfURL = "swfurl=http://www.teagames.com/share/fb.swf&width=1&height=1"; title = "title=Zombies want my brains!!!"; username = "username=teagames"; screenshot = "screenshot=http://www.teagames.com/skin2/gamescreenshots/bloodysunset.gif"; addFrameScript(99, frame100); super(_arg1, new Point()); x = (x + ((width / 2) - 55)); y = (y + ((height / 2) - 55)); addEventListener(Event.ENTER_FRAME, enterScreen); SoundManagerClass.soundManager.stopAllSounds(); SoundManagerClass.playSound("BloodySunsetGameOverStinger", 0.66); } private function onTryAgainClicked(_arg1:MouseEvent):void{ dispatchEvent(new NavigationEvent(NavigationEvent.BACK)); TeagamesAPI.PlayAgain(); } private function onMouseClicked(_arg1:MouseEvent):void{ SoundManagerClass.soundManager.stopAllSounds(); dispatchEvent(new Event(Event.COMPLETE)); TeagamesAPI.PlayAgain(); } private function onSubmitClicked(_arg1:MouseEvent):void{ submitBut.visible = false; submitMsgT.visible = true; trace("SCORE SUBMITTED"); TeagamesAPI.SendScore(); } private function enterScreen(_arg1:Event):void{ var _local2:SimpleButton; var _local3:SimpleButton; var _local4:int; if (currentFrame == 81){ submitMsgT = TextField(submitMsg); submitMsgT.visible = false; removeEventListener(Event.ENTER_FRAME, enterScreen); _local4 = numChildren; while (_local4-- > 0) { trace(getQualifiedClassName(getChildAt(_local4))); if ((getChildAt(_local4) is TryAgainButton)){ nextBut = SimpleButton(getChildAt(_local4)); nextBut.addEventListener(MouseEvent.CLICK, onTryAgainClicked); }; if ((getChildAt(_local4) is QuitGameButton)){ _local2 = SimpleButton(getChildAt(_local4)); _local2.addEventListener(MouseEvent.CLICK, onMouseClicked); }; if ((getChildAt(_local4) is SumbitButton)){ trace("SUBMIT ADDED"); submitBut = SimpleButton(getChildAt(_local4)); submitBut.addEventListener(MouseEvent.CLICK, onSubmitClicked); }; if ((getChildAt(_local4) is ShareButton)){ trace("SHARE ADDED"); _local3 = SimpleButton(getChildAt(_local4)); _local3.addEventListener(MouseEvent.CLICK, onShareClicked); }; }; }; } function frame100(){ stop(); } private function onShareClicked(_arg1:MouseEvent):void{ var _local2:String; trace("SHARE CLICKED"); if (Wrapper.FB_ENDPOINT == null){ Wrapper.FB_ENDPOINT = "http://api.addthis.com/oexchange/0.8/forward/facebook/offer"; }; _local2 = ((((((((((((Wrapper.FB_ENDPOINT + "?") + sharedURL) + "&") + swfURL) + "&") + title) + "&") + description) + "&") + username) + "&") + screenshot); navigateToURL(new URLRequest(_local2)); } } }//package src.Game.Screens
Section 117
//LevelPassedScreen (src.Game.Screens.LevelPassedScreen) package src.Game.Screens { import flash.display.*; import flash.events.*; import flash.geom.*; import src.Game.*; import src.Wrapper.*; import utils.parentedmovieclip.*; public class LevelPassedScreen extends ParentedMovieClip { private var nextBut:SimpleButton; public function LevelPassedScreen(_arg1:DisplayObjectContainer){ var _local2:int; addFrameScript(99, frame100); super(_arg1, new Point()); x = (x + ((width / 2) - 55)); y = (y + ((height / 2) - 55)); addEventListener(Event.ENTER_FRAME, enterScreen); SoundManagerClass.startMusic("BloodySunsetLevelPassed"); if (Wrapper.KONG_V){ KongregateLoader.kongregate.stats.submit("WAVE", Game.currentLevel); }; _local2 = numChildren; while (_local2-- > 0) { if ((getChildAt(_local2) is buttons_NEXT)){ nextBut = SimpleButton(getChildAt(_local2)); nextBut.visible = false; }; }; } private function onMouseClicked(_arg1:MouseEvent):void{ SoundManagerClass.soundManager.stopAllSounds(true); dispatchEvent(new Event(Event.COMPLETE)); SoundManagerClass.stopMusic(); } private function enterScreen(_arg1:Event):void{ var _local2:SimpleButton; var _local3:int; if (currentFrame == 70){ removeEventListener(Event.ENTER_FRAME, enterScreen); _local3 = numChildren; while (_local3-- > 0) { if ((getChildAt(_local3) is buttons_NEXT)){ _local2 = SimpleButton(getChildAt(_local3)); _local2.addEventListener(MouseEvent.CLICK, onMouseClicked); _local2.visible = true; }; }; }; } function frame100(){ stop(); } } }//package src.Game.Screens
Section 118
//NameSelectScreen (src.Game.Screens.NameSelectScreen) package src.Game.Screens { import flash.display.*; import flash.events.*; import flash.geom.*; import src.Wrapper.*; import flash.text.*; import utils.parentedmovieclip.*; public class NameSelectScreen extends ParentedMovieClip { public var myTxt:TextField; public var start:button_start; var txtField:TextField; public function NameSelectScreen(_arg1:DisplayObjectContainer){ super(_arg1, new Point()); txtField = TextField(myTxt); stage.focus = txtField; txtField.text = "Joey"; start.addEventListener(MouseEvent.CLICK, onStartClicked); } private function onStartClicked(_arg1:MouseEvent):void{ Wrapper.PLAYER_NAME = txtField.text; remove(); } } }//package src.Game.Screens
Section 119
//NavigationEvent (src.Game.Screens.NavigationEvent) package src.Game.Screens { import flash.events.*; public class NavigationEvent extends Event { public static const START:String = "START"; public static const BACK:String = "BACK"; public static const HOST:String = "HOST"; public static const ACHIEVEMENTS:String = "AC"; public static const GAMEOVER:String = "GAMEOVER"; public static const INSTR_EXIT:String = "INSTR"; public static const CASH:String = "CASH"; public static const CREDITS:String = "CREDITS"; public function NavigationEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("NavigationEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new NavigationEvent(type, bubbles, cancelable)); } } }//package src.Game.Screens
Section 120
//Game (src.Game.Game) package src.Game { import flash.display.*; import flash.events.*; import src.Game.Gameplay.Weapon.*; import src.Game.Gameplay.Enemies.*; import src.Game.Gameplay.Base.*; import src.Game.Gameplay.*; import src.Game.Screens.*; import src.Game.Achievements.*; import src.Game.Screens.Character.*; import src.Game.Screens.Upgrade.*; import frosmo.*; import src.Game.GameData.*; import src.Wrapper.*; import FGL.GameTracker.*; import src.Game.Gameplay.UI.*; import src.Game.Background.*; public class Game extends MovieClip { private var gameplayToIntroscreenFlag:Boolean; private var achievements:AchievementsScreen; private var gameplay:Gameplay; private var charScreen:CharacterScreen; private var firstTime:Boolean;// = true private var creditsScreen:CreditsScreen; private var upgradeScreen:UpgradeScreen; private var bgManager:BackgroundManager; private var gameOver:GameOverScreen; private var introScreen:IntroScreen; public static var GAME_DISPLAY_CONTAINER:DisplayObjectContainer; public static var rnd:Function; public static var difficulty:int = 0; public static var currentLevel:int = 0; public static var GAME_TRACK:GameTracker; public function Game(_arg1:DisplayObjectContainer){ var _local2:GameIntroText; firstTime = true; super(); if (Wrapper.FROSMO_V){ rnd = Api.random; Api.setNumber("Score", 0); } else { rnd = Math.random; }; SoundManagerClass.init(); AchievementManager.init(); _arg1.addChild(this); GAME_DISPLAY_CONTAINER = _arg1; GAME_TRACK = new GameTracker(); GAME_TRACK.beginGame(0, "START GAME"); _local2 = new GameIntroText(this); _local2.addEventListener(Event.COMPLETE, onGameIntroComplete); } private function gotoDifficultySelect():void{ var _local1:DifficultyScreen; GAME_TRACK.customMsg("DIFFICULTY SELECT"); _local1 = new DifficultyScreen(this); _local1.addEventListener(Event.COMPLETE, onDiffScreenRemoved); } private function introScreenShow():void{ BaseModel.InitBaseData(); PerkData.initPerkData(); CashPrizeCounter.Init(); WeaponData.Init(); MiscUpgradeData.Init(); PerkData.initPerkData(); currentLevel = 0; Enemy2.killedCount = 0; Weapon.BULLETS_FIRED = 0; introScreen = new IntroScreen(parent, firstTime); firstTime = false; introScreen.addEventListener(NavigationEvent.START, onStart); introScreen.addEventListener(NavigationEvent.CREDITS, onCredits); introScreen.addEventListener(NavigationEvent.ACHIEVEMENTS, onAchievements); } private function gotoCharScreen():void{ if (!bgManager){ bgManager = new BackgroundManager(parent); } else { if (((bgManager) && (!(bgManager.parent)))){ bgManager = new BackgroundManager(parent); }; }; SavedData.SaveData(); charScreen = new CharacterScreen(parent); charScreen.addEventListener(NavigationEvent.BACK, onBackFromCharScreen); } private function onDiffScreenRemoved(_arg1:Event):void{ GAME_TRACK.alert(0, "DIFFICULTY SELECTED", (("DIFFICULTY " + difficulty) + " SELECTED")); removeEventListener(Event.COMPLETE, onDiffScreenRemoved); gotoCharScreen(); } private function onBgFaded(_arg1:Event):void{ var _local2:GamePassedScreen; _local2 = new GamePassedScreen(this); _local2.addEventListener(Event.COMPLETE, onGamePassedScreenOver); } private function gotoWinScreen():void{ GAME_TRACK.customMsg("GAME PASSED"); bgManager.removeFadeOut(); bgManager.addEventListener(Event.COMPLETE, onBgFaded); } private function onCreditsBack(_arg1:NavigationEvent):void{ introScreenShow(); } private function onInstructionsComplete(_arg1:Event):void{ trace(Wrapper.PLAYER_NAME); if (((Wrapper.TEAGAMES_V) && ((Wrapper.PLAYER_NAME == null)))){ trace("SELECT NAME"); selectName(); } else { gotoDifficultySelect(); }; } private function onGamePassedScreenOver(_arg1:Event):void{ introScreenShow(); } private function onSelectNameRemoved(_arg1:Event):void{ gotoDifficultySelect(); } private function selectName():void{ var _local1:NameSelectScreen; _local1 = new NameSelectScreen(this); _local1.addEventListener(Event.REMOVED_FROM_STAGE, onSelectNameRemoved); } private function onLevelLost(_arg1:GameplayEvent):void{ GAME_TRACK.endLevel(); bgManager.remove(); introScreenShow(); } private function creditsShow():void{ creditsScreen = new CreditsScreen(parent); creditsScreen.addEventListener(NavigationEvent.BACK, onCreditsBack); } private function onBackFromCharScreen(_arg1:NavigationEvent):void{ upgradeScreen = new UpgradeScreen(parent); upgradeScreen.addEventListener(NavigationEvent.BACK, onBackFromUpdateScreen); } private function onAchievements(_arg1:NavigationEvent):void{ achievements = new AchievementsScreen(this); achievements.addEventListener(NavigationEvent.BACK, onCreditsBack); } private function onCredits(_arg1:NavigationEvent):void{ creditsShow(); } private function onStart(_arg1:NavigationEvent):void{ var _local2:Instructions; if (introScreen){ introScreen.remove(); }; if (!bgManager){ bgManager = new BackgroundManager(this); } else { if (((bgManager) && (!(bgManager.parent)))){ bgManager = new BackgroundManager(this); }; }; if (currentLevel == 0){ _local2 = new Instructions(this); _local2.addEventListener(Event.COMPLETE, onInstructionsComplete); } else { gotoDifficultySelect(); }; } private function onLevelRetry(_arg1:GameplayEvent):void{ SavedData.LoadData(); gotoCharScreen(); } private function onGameoverBack(_arg1:NavigationEvent):void{ introScreenShow(); } private function onWaveComplete(_arg1:Event):void{ GAME_TRACK.endLevel(); currentLevel++; if (currentLevel == WaveData.ALL_WAVE_ARRAY.length){ gotoWinScreen(); } else { gotoCharScreen(); }; } private function onGameIntroComplete(_arg1:Event):void{ GAME_TRACK.customMsg("INTRO SCREEN LOADED"); introScreenShow(); } private function onBackFromUpdateScreen(_arg1:NavigationEvent):void{ GAME_TRACK.beginLevel(currentLevel, CashPrizeCounter.CASH, "START LEVEL", "START LEVEL"); gameplay = new Gameplay(this, currentLevel, bgManager.base); gameplay.addEventListener(NavigationEvent.GAMEOVER, onGameOver); gameplay.addEventListener(Event.COMPLETE, onWaveComplete); gameplay.addEventListener(GameplayEvent.LOST, onLevelLost); gameplay.addEventListener(GameplayEvent.RETRY, onLevelRetry); } private function onGameOver(_arg1:NavigationEvent):void{ gameplayToIntroscreenFlag = false; gameOver = new GameOverScreen(parent, Gameplay(_arg1.currentTarget).score); gameOver.addEventListener(NavigationEvent.BACK, onGameoverBack); gameOver.addEventListener(NavigationEvent.START, onStart); } } }//package src.Game
Section 121
//SoundManagerClass (src.Game.SoundManagerClass) package src.Game { import com.reintroducing.sound.*; public class SoundManagerClass { public static var musicFlag:Boolean = true; public static var currentMusicName:String; public static var SOUND_POSITIONS:Array = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; public static var soundFlag:Boolean = true; public static var soundManager:SoundManager = SoundManager.getInstance(); public static function startMusic(_arg1:String, _arg2:Number=0.66, _arg3:Number=0, _arg4:int=0):void{ currentMusicName = _arg1; if (musicFlag){ soundManager.playSound(_arg1, _arg2, _arg3, _arg4); }; } public static function continueMusic(_arg1:Number=0.66, _arg2:Number=0, _arg3:int=0):void{ soundManager.playSound(currentMusicName, _arg1, _arg2, _arg3); } public static function fadeCurrentMusic():void{ soundManager.fadeSound(currentMusicName, 0, 1); } public static function playSound(_arg1:String, _arg2:Number=1, _arg3:Number=0, _arg4:int=0):void{ if (soundFlag){ soundManager.playSound(_arg1, _arg2, _arg3, _arg4); }; } public static function switchMusicIfDifferent(_arg1:String, _arg2:int){ if (_arg1 != currentMusicName){ SoundManagerClass.stopMusic(); SoundManagerClass.startMusic(_arg1, 0.66, 0, _arg2); }; } public static function init():void{ soundManager.addLibrarySound(ReloadSound, "ReloadSound"); soundManager.addLibrarySound(PistolSound, "PistolSound"); soundManager.addLibrarySound(MagnumSound, "MagnumSound"); soundManager.addLibrarySound(ShotgunSound, "ShotgunSound"); soundManager.addLibrarySound(SniperSound, "SniperSound"); soundManager.addLibrarySound(Buy, "Buy"); soundManager.addLibrarySound(AchievementSound, "AchievementSound"); soundManager.addLibrarySound(StartBattleSound, "StartBattleSound"); soundManager.addLibrarySound(BattleStartSound2, "BattleStartSound2"); soundManager.addLibrarySound(CriticalHitSound, "CriticalHitSound"); soundManager.addLibrarySound(ZombieDie1Sound, "ZombieDie1Sound"); soundManager.addLibrarySound(ZombieDie2Sound, "ZombieDie2Sound"); soundManager.addLibrarySound(Enemy2DieSound, "Enemy2DieSound"); soundManager.addLibrarySound(Enemy3DieSound, "Enemy3DieSound"); soundManager.addLibrarySound(Enemy4DieSound, "Enemy4DieSound"); soundManager.addLibrarySound(Enemy5DieSound, "Enemy5DieSound"); soundManager.addLibrarySound(Enemy6DieSound, "Enemy6DieSound"); soundManager.addLibrarySound(Enemy8DieSound, "Enemy8DieSound"); soundManager.addLibrarySound(Enemy1AttackSound, "Enemy1AttackSound"); soundManager.addLibrarySound(Enemy2AttackSound, "Enemy2AttackSound"); soundManager.addLibrarySound(Enemy3AttackSound, "Enemy3AttackSound"); soundManager.addLibrarySound(Enemy4AttackSound, "Enemy4AttackSound"); soundManager.addLibrarySound(MouseOverSound, "MouseOverSound"); soundManager.addLibrarySound(ClickSound, "ClickSound"); soundManager.addLibrarySound(BloodySunsetMain, "BloodySunsetMain"); soundManager.addLibrarySound(BloodySunsetLevelPassed, "BloodySunsetLevelPassed"); soundManager.addLibrarySound(BloodySunsetIntroStinger, "BloodySunsetIntroStinger"); soundManager.addLibrarySound(BloodySunsetGameWonStinger, "BloodySunsetGameWonStinger"); soundManager.addLibrarySound(BloodySunsetGameOverStinger, "BloodySunsetGameOverStinger"); soundManager.addLibrarySound(BloodySunsetDesert, "BloodySunsetDesert"); soundManager.addLibrarySound(ZombieDeath, "ZombieDeath"); } public static function stopMusic():void{ if (currentMusicName != null){ soundManager.stopSound(currentMusicName); }; } public static function PlayAttackSound(_arg1:int):void{ if (_arg1 == 0){ playSound("Enemy1AttackSound", 0.2); } else { if (_arg1 == 1){ playSound("Enemy2AttackSound", 0.2); } else { if (_arg1 == 2){ playSound("Enemy3AttackSound", 0.2); } else { if (_arg1 == 3){ playSound("Enemy4AttackSound", 0.2); } else { if (_arg1 == 4){ playSound("Enemy3AttackSound", 0.2); } else { if (_arg1 == 7){ playSound("Enemy3AttackSound", 0.2); }; }; }; }; }; }; } public static function PlayWeaponSound(_arg1:int):void{ if (_arg1 == 0){ playSound("PistolSound", 0.2); } else { if (_arg1 == 1){ playSound("PistolSound", 0.15); } else { if (_arg1 == 2){ playSound("MagnumSound", 0.2); } else { if (_arg1 == 3){ playSound("MagnumSound", 0.15); } else { if (_arg1 == 4){ playSound("ShotgunSound", 0.16); } else { if (_arg1 == 5){ playSound("MagnumSound", 0.16); } else { if (_arg1 == 6){ soundManager.stopSound("PistolSound"); playSound("PistolSound", 0.15); } else { if (_arg1 == 7){ soundManager.stopSound("PistolSound"); playSound("PistolSound", 0.15); } else { if (_arg1 == 8){ playSound("ShotgunSound", 0.2); } else { if (_arg1 == 9){ playSound("SniperSound", 0.2); } else { if (_arg1 == 10){ playSound("SniperSound", 0.15); } else { if (_arg1 == 11){ playSound("SniperSound", 0.2); }; }; }; }; }; }; }; }; }; }; }; }; } } }//package src.Game
Section 122
//FrosmoLogo (src.Wrapper.Branding.FrosmoLogo) package src.Wrapper.Branding { import flash.display.*; import flash.events.*; import src.Wrapper.*; public class FrosmoLogo extends SimpleButton { public function FrosmoLogo(){ addEventListener(MouseEvent.CLICK, onMouseClicked); if (Wrapper.FROSMO_V){ visible = false; }; } private function onMouseClicked(_arg1:MouseEvent):void{ Wrapper.GET_CLICK_URL(Wrapper.LINK_MENULOGO); } } }//package src.Wrapper.Branding
Section 123
//GamingOcean (src.Wrapper.Branding.GamingOcean) package src.Wrapper.Branding { import flash.display.*; import flash.events.*; import src.Wrapper.*; import flash.net.*; public class GamingOcean extends SimpleButton { public function GamingOcean(){ addEventListener(MouseEvent.CLICK, onClick); if (Wrapper.FROSMO_V){ visible = false; }; } private function onClick(_arg1:MouseEvent):void{ var _local2:URLRequest; trace("CLICKED"); _local2 = new URLRequest("http://www.gamingocean.com"); navigateToURL(_local2); } } }//package src.Wrapper.Branding
Section 124
//KongregateLoader (src.Wrapper.KongregateLoader) package src.Wrapper { import flash.display.*; import flash.events.*; import flash.net.*; import flash.system.*; public class KongregateLoader extends Sprite { public static var kongregate; public function KongregateLoader(_arg1:DisplayObjectContainer, _arg2){ var _local3:Object; var _local4:String; var _local5:URLRequest; var _local6:Loader; super(); _arg1.addChild(this); _local3 = LoaderInfo(_arg2.loaderInfo).parameters; _local4 = ((_local3.kongregate_api_path) || ("http://www.kongregate.com/flash/API_AS3_Local.swf")); Security.allowDomain(_local4); _local5 = new URLRequest(_local4); _local6 = new Loader(); _local6.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); _local6.load(_local5); this.addChild(_local6); } function loadComplete(_arg1:Event):void{ kongregate = _arg1.target.content; kongregate.services.connect(); } } }//package src.Wrapper
Section 125
//MindJoltLoader (src.Wrapper.MindJoltLoader) package src.Wrapper { import flash.display.*; import flash.events.*; import flash.net.*; public class MindJoltLoader extends Sprite { public static var MindJoltAPI:Object; public function MindJoltLoader(_arg1:DisplayObjectContainer, _arg2){ var gameParams:Object; var urlLoader:Loader; var loadFinished:Function; var parent = _arg1; var root = _arg2; super(); loadFinished = function (_arg1:Event):void{ MindJoltAPI = _arg1.currentTarget.content; MindJoltAPI.service.connect(); trace("[MindJoltAPI] service manually loaded"); }; gameParams = LoaderInfo(root.loaderInfo).parameters; urlLoader = new Loader(); urlLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadFinished); urlLoader.load(new URLRequest(((gameParams.mjPath) || ("http://static.mindjolt.com/api/as3/scoreapi_as3_local.swf")))); this.addChild(urlLoader); } } }//package src.Wrapper
Section 126
//TeagamesAPI (src.Wrapper.TeagamesAPI) package src.Wrapper { import mochi.as3.*; import src.Game.*; import com.adobe.crypto.*; import flash.net.*; import src.Game.Gameplay.UI.*; import flash.external.*; public class TeagamesAPI { private static function mochiSubmit(_arg1:int, _arg2:int):void{ var o:Object; var boardID:String; var scoreNum = _arg1; var diff = _arg2; if (diff == -1){ o = {n:[4, 14, 12, 13, 0, 12, 10, 5, 4, 2, 11, 0, 1, 9, 11, 1], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; boardID = o.f(0, ""); MochiScores.showLeaderboard({boardID:boardID, score:scoreNum}); } else { if (diff == 0){ o = {n:[10, 4, 8, 15, 7, 5, 1, 3, 3, 10, 2, 6, 2, 10, 10, 14], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; boardID = o.f(0, ""); MochiScores.showLeaderboard({boardID:boardID, score:scoreNum}); } else { if (diff == 1){ o = {n:[8, 13, 6, 6, 14, 15, 12, 4, 9, 5, 2, 14, 2, 5, 0, 6], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; boardID = o.f(0, ""); MochiScores.showLeaderboard({boardID:boardID, score:scoreNum}); }; }; }; } private static function kongSubmit(_arg1:int, _arg2:int):void{ } public static function UpsellLink():void{ if (Wrapper.TEAGAMES_V){ ExternalInterface.call("UpsellLink", ""); }; } public static function ShareTracker(_arg1:String):void{ if (Wrapper.TEAGAMES_V){ ExternalInterface.call((("ShareTracker('" + _arg1) + "')"), ""); }; } public static function SendScore():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:String; var _local5:String; var _local6:String; var _local7:String; var _local8:String; var _local9:URLRequest; var _local10:URLVariables; var _local11:URLLoader; _local1 = CashPrizeCounter.CASH; _local2 = Game.currentLevel; _local3 = Game.difficulty; if (((((Wrapper.MOCHI_V) || (Wrapper.NEWGROUNDS_V))) || (Wrapper.FGD_V))){ mochiSubmit(_local1, _local3); return; }; if (Wrapper.KONG_V){ kongSubmit(_local1, _local3); }; _local4 = "bloodysunset"; _local5 = Wrapper.PLAYER_NAME; _local6 = "joeysgoldenskull"; _local7 = ((((((((("" + String(_local4)) + ".") + String(_local1)) + ".") + String(_local6)) + ".") + String(_local5)) + ".") + String(_local3)); trace(_local7); trace(((((((("GAME ID: " + _local4) + "\nCASH: ") + _local1) + "\nPLAYER NAME: ") + _local5) + "\nDIFF: ") + _local3)); _local8 = MD5.hash(_local7); trace(_local8); _local9 = new URLRequest("submit.php"); _local9.method = URLRequestMethod.POST; _local10 = new URLVariables(); _local10.gameid = _local4; _local10.name = _local5; _local10.score = _local1; _local10.gametype = _local3; _local10.wave = _local2; _local10.check = _local8; _local9.data = _local10; _local11 = new URLLoader(); _local11.dataFormat = URLLoaderDataFormat.VARIABLES; _local11.load(_local9); } public static function PlayAgain():void{ if (Wrapper.TEAGAMES_V){ ExternalInterface.call("PlayAgain", ""); }; } public static function GameStarted():void{ if (Wrapper.TEAGAMES_V){ ExternalInterface.call("PlayStart", ""); }; } } }//package src.Wrapper
Section 127
//Wrapper (src.Wrapper.Wrapper) package src.Wrapper { import flash.display.*; import flash.events.*; import mochi.as3.*; import src.Game.*; import frosmo.*; import flash.net.*; public dynamic class Wrapper extends MovieClip { private const FROSMO_CLIENT_ID:String = "example"; private const GAME_RES:String = "600x510"; private const MOCHIBOT_STRING:String = "4877b68d"; var _mochiads_game_id:String;// = "fbb8a5a8536ef620" public static const MOCHI_LEADERBOARD:Array = [5, 6, 13, 8, 12, 14, 5, 14, 13, 4, 6, 8, 6, 15, 5, 7]; public static const LINK_MENUEXCLUSIVE:int = 2; public static const MOCHIADS_STRING:String = "fbb8a5a8536ef620"; public static const NEWGROUNDS_V:Boolean = false; public static const SOURCE_FGD:String = "?utm_source=fgd"; public static const TEAGAMES_V:Boolean = false; public static const CPM_STAR_CODE:String = "3076QAFC45E97"; public static const LINK_MENUHIGHSCORES:int = 4; public static const LINK_PREROLL:int = 0; public static const LINK_MENUMOREGAMES:int = 3; public static const TEST:Boolean = false; public static const FROSMO_PAGE:String = "http://www.teagames.com/"; public static const SOURCE_NEWGROUNDS:String = "?utm_source=newgrounds"; public static const FROSMO_V:Boolean = false; public static const FGD_PAGE:String = "http://www.flashgamedistribution.com"; public static const SOURCE_KONGREGATE:String = "?utm_source=kongregate"; public static const LINK_MENULOGO:int = 1; public static const SOURCE_MOCHI:String = "?utm_source=mochi"; public static const KONG_V:Boolean = true; public static const MOCHI_V:Boolean = false; public static const FGD_V:Boolean = false; public static var PLAYER_NAME:String; public static var FB_ENDPOINT:String; public function Wrapper(){ _mochiads_game_id = "fbb8a5a8536ef620"; super(); addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); } private function gotoGame():void{ var _local1:Game; _local1 = new Game(this); SoundManagerClass.init(); } private function onError():void{ trace("CONNECTION ERROR"); } private function onAddedToStage(_arg1:Event):void{ var _local2:KongregateLoader; var _local3:MindJoltLoader; removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage); MochiBot.track(this, "0aeca1c5"); PLAYER_NAME = root.loaderInfo.parameters.playername; FB_ENDPOINT = root.loaderInfo.parameters.fbEndpointURL; trace(("FLASHVAR: " + PLAYER_NAME)); if (KONG_V){ _local2 = new KongregateLoader(this, root); }; if (TEST){ gotoGame(); return; }; MochiServices.connect(MOCHIADS_STRING, this); if (FROSMO_V){ Api.connect(FROSMO_CLIENT_ID, this, onError, onConnected); } else { _local2 = new KongregateLoader(this, root); _local3 = new MindJoltLoader(this, root); gotoGame(); }; } private function onConnected():void{ gotoGame(); } public static function GET_CLICK_URL(_arg1:int):void{ var _local2:String; var _local3:String; _local2 = "http://www.teagames.com/"; if (KONG_V){ _local3 = SOURCE_KONGREGATE; } else { if (NEWGROUNDS_V){ _local3 = SOURCE_NEWGROUNDS; } else { if (MOCHI_V){ _local3 = SOURCE_MOCHI; } else { if (FGD_V){ _local3 = SOURCE_FGD; }; }; }; }; _local2 = (_local2 + _local3); _local2 = (_local2 + "&utm_medium=distribution&utm_content="); if (_arg1 == LINK_PREROLL){ _local2 = (_local2 + "preroll"); } else { if (_arg1 == LINK_MENUMOREGAMES){ _local2 = (_local2 + "more-games"); } else { if (_arg1 == LINK_MENULOGO){ _local2 = (_local2 + "main-menu"); } else { if (_arg1 == LINK_MENUHIGHSCORES){ } else { if (_arg1 == LINK_MENUEXCLUSIVE){ _local2 = (("http://www.teagames.com/games/bloodysunset/play.php?utm_source=" + _local3) + "&utm_medium=distribution&utm_content=exclusive-content"); }; }; }; }; }; _local2 = (_local2 + "&utm_campaign=bloodysunset"); navigateToURL(new URLRequest(_local2)); } } }//package src.Wrapper
Section 128
//FrameablePMC (utils.parentedmovieclip.FrameablePMC) package utils.parentedmovieclip { import utils.*; import flash.display.*; import flash.geom.*; public class FrameablePMC extends ParentedMovieClip { protected var frameArray:Array; public function FrameablePMC(_arg1:DisplayObjectContainer, _arg2:Array, _arg3:Point){ super(_arg1, _arg3); frameArray = _arg2; frameArray.push(this); } override public function remove():void{ super.remove(); ArrayClone.removeFromArray(frameArray, this); } public function onFrame():void{ } } }//package utils.parentedmovieclip
Section 129
//ParentedMovieClip (utils.parentedmovieclip.ParentedMovieClip) package utils.parentedmovieclip { import flash.display.*; import flash.geom.*; public class ParentedMovieClip extends MovieClip { public function ParentedMovieClip(_arg1:DisplayObjectContainer, _arg2:Point){ _arg1.addChild(this); x = _arg2.x; y = _arg2.y; } public function remove():void{ if (parent){ parent.removeChild(this); }; } } }//package utils.parentedmovieclip
Section 130
//ArrayClone (utils.ArrayClone) package utils { import flash.utils.*; public class ArrayClone { public static function removeFromArray(_arg1:Array, _arg2:Object):void{ var _local3:int; _local3 = _arg1.length; while (_local3 >= 0) { if (_arg1[_local3] == _arg2){ _arg1.splice(_local3, 1); }; _local3--; }; } public static function clone(_arg1:Object){ var _local2:ByteArray; _local2 = new ByteArray(); _local2.writeObject(_arg1); _local2.position = 0; return (_local2.readObject()); } } }//package utils
Section 131
//ColorMatrix (utils.ColorMatrix) package utils { public dynamic class ColorMatrix extends Array { private static const IDENTITY_MATRIX:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]; private static const LENGTH:Number = IDENTITY_MATRIX.length; private static const DELTA_INDEX:Array = [0, 0.01, 0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.1, 0.11, 0.12, 0.14, 0.15, 0.16, 0.17, 0.18, 0.2, 0.21, 0.22, 0.24, 0.25, 0.27, 0.28, 0.3, 0.32, 0.34, 0.36, 0.38, 0.4, 0.42, 0.44, 0.46, 0.48, 0.5, 0.53, 0.56, 0.59, 0.62, 0.65, 0.68, 0.71, 0.74, 0.77, 0.8, 0.83, 0.86, 0.89, 0.92, 0.95, 0.98, 1, 1.06, 1.12, 1.18, 1.24, 1.3, 1.36, 1.42, 1.48, 1.54, 1.6, 1.66, 1.72, 1.78, 1.84, 1.9, 1.96, 2, 2.12, 2.25, 2.37, 2.5, 2.62, 2.75, 2.87, 3, 3.2, 3.4, 3.6, 3.8, 4, 4.3, 4.7, 4.9, 5, 5.5, 6, 6.5, 6.8, 7, 7.3, 7.5, 7.8, 8, 8.4, 8.7, 9, 9.4, 9.6, 9.8, 10]; public function ColorMatrix(_arg1:Array=null){ _arg1 = fixMatrix(_arg1); copyMatrix(((_arg1.length)==LENGTH) ? _arg1 : IDENTITY_MATRIX); } public function adjustBrightness(_arg1:Number):void{ _arg1 = cleanValue(_arg1, 100); if ((((_arg1 == 0)) || (isNaN(_arg1)))){ return; }; multiplyMatrix([1, 0, 0, 0, _arg1, 0, 1, 0, 0, _arg1, 0, 0, 1, 0, _arg1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]); } protected function multiplyMatrix(_arg1:Array):void{ var _local2:Array; var _local3:uint; var _local4:uint; var _local5:Number; var _local6:Number; _local2 = []; _local3 = 0; while (_local3 < 5) { _local4 = 0; while (_local4 < 5) { _local2[_local4] = this[(_local4 + (_local3 * 5))]; _local4++; }; _local4 = 0; while (_local4 < 5) { _local5 = 0; _local6 = 0; while (_local6 < 5) { _local5 = (_local5 + (_arg1[(_local4 + (_local6 * 5))] * _local2[_local6])); _local6++; }; this[(_local4 + (_local3 * 5))] = _local5; _local4++; }; _local3++; }; } public function adjustSaturation(_arg1:Number):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _arg1 = cleanValue(_arg1, 100); if ((((_arg1 == 0)) || (isNaN(_arg1)))){ return; }; _local2 = (1 + ((_arg1)>0) ? ((3 * _arg1) / 100) : (_arg1 / 100)); _local3 = 0.3086; _local4 = 0.6094; _local5 = 0.082; multiplyMatrix([((_local3 * (1 - _local2)) + _local2), (_local4 * (1 - _local2)), (_local5 * (1 - _local2)), 0, 0, (_local3 * (1 - _local2)), ((_local4 * (1 - _local2)) + _local2), (_local5 * (1 - _local2)), 0, 0, (_local3 * (1 - _local2)), (_local4 * (1 - _local2)), ((_local5 * (1 - _local2)) + _local2), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]); } public function reset():void{ var _local1:uint; _local1 = 0; while (_local1 < LENGTH) { this[_local1] = IDENTITY_MATRIX[_local1]; _local1++; }; } public function adjustColor(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{ adjustHue(_arg4); adjustContrast(_arg2); adjustBrightness(_arg1); adjustSaturation(_arg3); } public function clone():ColorMatrix{ return (new ColorMatrix(this)); } public function toArray():Array{ return (slice(0, 20)); } protected function cleanValue(_arg1:Number, _arg2:Number):Number{ return (Math.min(_arg2, Math.max(-(_arg2), _arg1))); } public function adjustHue(_arg1:Number):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _arg1 = ((cleanValue(_arg1, 180) / 180) * Math.PI); if ((((_arg1 == 0)) || (isNaN(_arg1)))){ return; }; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); _local4 = 0.213; _local5 = 0.715; _local6 = 0.072; multiplyMatrix([((_local4 + (_local2 * (1 - _local4))) + (_local3 * -(_local4))), ((_local5 + (_local2 * -(_local5))) + (_local3 * -(_local5))), ((_local6 + (_local2 * -(_local6))) + (_local3 * (1 - _local6))), 0, 0, ((_local4 + (_local2 * -(_local4))) + (_local3 * 0.143)), ((_local5 + (_local2 * (1 - _local5))) + (_local3 * 0.14)), ((_local6 + (_local2 * -(_local6))) + (_local3 * -0.283)), 0, 0, ((_local4 + (_local2 * -(_local4))) + (_local3 * -((1 - _local4)))), ((_local5 + (_local2 * -(_local5))) + (_local3 * _local5)), ((_local6 + (_local2 * (1 - _local6))) + (_local3 * _local6)), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]); } public function concat(_arg1:Array):void{ _arg1 = fixMatrix(_arg1); if (_arg1.length != LENGTH){ return; }; multiplyMatrix(_arg1); } protected function copyMatrix(_arg1:Array):void{ var _local2:Number; var _local3:uint; _local2 = LENGTH; _local3 = 0; while (_local3 < _local2) { this[_local3] = _arg1[_local3]; _local3++; }; } protected function fixMatrix(_arg1:Array=null):Array{ if (_arg1 == null){ return (IDENTITY_MATRIX); }; if ((_arg1 is ColorMatrix)){ _arg1 = _arg1.slice(0); }; if (_arg1.length < LENGTH){ _arg1 = _arg1.slice(0, _arg1.length).concat(IDENTITY_MATRIX.slice(_arg1.length, LENGTH)); } else { if (_arg1.length > LENGTH){ _arg1 = _arg1.slice(0, LENGTH); }; }; return (_arg1); } public function adjustContrast(_arg1:Number):void{ var _local2:Number; _arg1 = cleanValue(_arg1, 100); if ((((_arg1 == 0)) || (isNaN(_arg1)))){ return; }; if (_arg1 < 0){ _local2 = (127 + ((_arg1 / 100) * 127)); } else { _local2 = (_arg1 % 1); if (_local2 == 0){ _local2 = DELTA_INDEX[_arg1]; } else { _local2 = ((DELTA_INDEX[(_arg1 << 0)] * (1 - _local2)) + (DELTA_INDEX[((_arg1 << 0) + 1)] * _local2)); }; _local2 = ((_local2 * 127) + 127); }; multiplyMatrix([(_local2 / 127), 0, 0, 0, (0.5 * (127 - _local2)), 0, (_local2 / 127), 0, 0, (0.5 * (127 - _local2)), 0, 0, (_local2 / 127), 0, (0.5 * (127 - _local2)), 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]); } public function toString():String{ return ((("ColorMatrix [ " + this.join(" , ")) + " ]")); } } }//package utils
Section 132
//Tween (utils.Tween) package utils { import flash.display.*; import flash.events.*; import flash.geom.*; public class Tween extends Sprite { private var pointChangeFlag:Boolean;// = false private var startScale:Number; private var scaleChangeTweenDelay:Number; private var startAlpha:Number; private var alphaChangeTweenDelay:int; private var scaleChangeFlag:Boolean;// = false private var coordChangeRemoveOnArrival:Boolean;// = false private var endScale:Number; private var alphaChangeFlag:Boolean;// = false private var endAlpha:Number; private var startPoint:Point; private var endPoint:Point; private var myDisplayObject:DisplayObject; private var scaleChangeFactor:Number; private var alphaChangeFactor:Number; private var coordChangeFactor:Number; private var coordChangeTweenDelay:int; public function Tween(_arg1:DisplayObject){ pointChangeFlag = false; coordChangeRemoveOnArrival = false; alphaChangeFlag = false; scaleChangeFlag = false; super(); myDisplayObject = _arg1; myDisplayObject.parent.addChild(this); addEventListener(Event.ENTER_FRAME, onFrame); _arg1.addEventListener(Event.REMOVED_FROM_STAGE, onDisplayedObjectRemove); } public function remove():void{ myDisplayObject.removeEventListener(Event.REMOVED_FROM_STAGE, onDisplayedObjectRemove); if (parent){ parent.removeChild(this); }; removeEventListener(Event.ENTER_FRAME, onFrame); } public function tweenToScale(_arg1:Number, _arg2:Number, _arg3:int=0, _arg4:Number=0.1){ this.startScale = _arg1; this.endScale = _arg2; this.scaleChangeFactor = _arg4; this.scaleChangeTweenDelay = _arg3; scaleChangeFlag = true; myDisplayObject.scaleX = (myDisplayObject.scaleY = _arg1); } public function tweenToAlpha(_arg1:Number, _arg2:Number, _arg3:int=0, _arg4:Number=0.1){ this.startAlpha = _arg1; this.endAlpha = _arg2; this.alphaChangeFactor = _arg4; this.alphaChangeTweenDelay = _arg3; alphaChangeFlag = true; myDisplayObject.alpha = _arg1; } private function onFrame(_arg1:Event):void{ if (pointChangeFlag){ if (coordChangeTweenDelay-- <= 0){ myDisplayObject.x = (myDisplayObject.x + ((endPoint.x - myDisplayObject.x) * coordChangeFactor)); myDisplayObject.y = (myDisplayObject.y + ((endPoint.y - myDisplayObject.y) * coordChangeFactor)); if ((((Math.round(myDisplayObject.x) == Math.round(endPoint.x))) && ((Math.round(myDisplayObject.y) == Math.round(endPoint.y))))){ pointChangeFlag = false; if (coordChangeRemoveOnArrival){ if (myDisplayObject){ if (myDisplayObject.parent){ myDisplayObject.parent.removeChild(myDisplayObject); }; }; }; }; }; }; if (alphaChangeFlag){ if (alphaChangeTweenDelay-- <= 0){ myDisplayObject.alpha = (myDisplayObject.alpha + ((endAlpha - myDisplayObject.alpha) * alphaChangeFactor)); if (Math.round((myDisplayObject.alpha * 100)) == Math.round(endAlpha)){ alphaChangeFlag = false; }; }; }; if (scaleChangeFlag){ if (scaleChangeTweenDelay-- <= 0){ myDisplayObject.scaleX = (myDisplayObject.scaleX + ((endScale - myDisplayObject.scaleX) * scaleChangeFactor)); myDisplayObject.scaleY = (myDisplayObject.scaleY + ((endScale - myDisplayObject.scaleY) * scaleChangeFactor)); if (Math.round((myDisplayObject.scaleX * 100)) == Math.round(endScale)){ scaleChangeFlag = false; }; }; }; if ((((((pointChangeFlag == false)) && ((alphaChangeFlag == false)))) && ((scaleChangeFlag == false)))){ remove(); }; } public function tweenToCoordinates(_arg1:Point, _arg2:Point, _arg3:int=0, _arg4:Number=0.15, _arg5:Boolean=false){ this.startPoint = _arg1; this.endPoint = _arg2; this.coordChangeFactor = _arg4; this.coordChangeTweenDelay = _arg3; pointChangeFlag = true; this.coordChangeRemoveOnArrival = _arg5; myDisplayObject.x = _arg1.x; myDisplayObject.y = _arg1.y; } private function onDisplayedObjectRemove(_arg1:Event):void{ remove(); } } }//package utils
Section 133
//_splash (_splash) package { import flash.display.*; public dynamic class _splash extends MovieClip { public function _splash(){ addFrameScript(44, frame45); } function frame45(){ stop(); } } }//package
Section 134
//aaaaa (aaaaa) package { import flash.display.*; public dynamic class aaaaa extends MovieClip { public function aaaaa(){ addFrameScript(99, frame100); } function frame100(){ stop(); } } }//package
Section 135
//AC_BarFill (AC_BarFill) package { import flash.display.*; public dynamic class AC_BarFill extends MovieClip { public var bg:Bullet_gage; } }//package
Section 136
//AchievementLockedMark (AchievementLockedMark) package { import flash.display.*; public dynamic class AchievementLockedMark extends MovieClip { } }//package
Section 137
//AchievementsButton (AchievementsButton) package { import src.Game.Buttons.*; public dynamic class AchievementsButton extends NormalButton { } }//package
Section 138
//AchievementSound (AchievementSound) package { import flash.media.*; public dynamic class AchievementSound extends Sound { } }//package
Section 139
//AchivementUnlockedMark (AchivementUnlockedMark) package { import flash.display.*; public dynamic class AchivementUnlockedMark extends MovieClip { } }//package
Section 140
//AcMask (AcMask) package { import flash.display.*; public dynamic class AcMask extends MovieClip { } }//package
Section 141
//b_utton_startcopy (b_utton_startcopy) package { import flash.display.*; public dynamic class b_utton_startcopy extends SimpleButton { } }//package
Section 142
//BackButton (BackButton) package { import src.Game.Buttons.*; public dynamic class BackButton extends NormalButton { } }//package
Section 143
//Background (Background) package { import flash.display.*; public dynamic class Background extends MovieClip { } }//package
Section 144
//BattleStartSound2 (BattleStartSound2) package { import flash.media.*; public dynamic class BattleStartSound2 extends Sound { } }//package
Section 145
//bg_2 (bg_2) package { import flash.display.*; public dynamic class bg_2 extends MovieClip { } }//package
Section 146
//bg_3 (bg_3) package { import flash.display.*; public dynamic class bg_3 extends MovieClip { } }//package
Section 147
//BloodySunsetDesert (BloodySunsetDesert) package { import flash.media.*; public dynamic class BloodySunsetDesert extends Sound { } }//package
Section 148
//BloodySunsetGameOverStinger (BloodySunsetGameOverStinger) package { import flash.media.*; public dynamic class BloodySunsetGameOverStinger extends Sound { } }//package
Section 149
//BloodySunsetGameWonStinger (BloodySunsetGameWonStinger) package { import flash.media.*; public dynamic class BloodySunsetGameWonStinger extends Sound { } }//package
Section 150
//BloodySunsetIntroStinger (BloodySunsetIntroStinger) package { import flash.media.*; public dynamic class BloodySunsetIntroStinger extends Sound { } }//package
Section 151
//BloodySunsetLevelPassed (BloodySunsetLevelPassed) package { import flash.media.*; public dynamic class BloodySunsetLevelPassed extends Sound { } }//package
Section 152
//BloodySunsetMain (BloodySunsetMain) package { import flash.media.*; public dynamic class BloodySunsetMain extends Sound { } }//package
Section 153
//Bullet_gage (Bullet_gage) package { import flash.display.*; public dynamic class Bullet_gage extends MovieClip { } }//package
Section 154
//bullet_gun (bullet_gun) package { import flash.display.*; public dynamic class bullet_gun extends MovieClip { } }//package
Section 155
//button_achievements (button_achievements) package { import src.Game.Buttons.*; public dynamic class button_achievements extends NormalButton { } }//package
Section 156
//button_back (button_back) package { import flash.display.*; public dynamic class button_back extends SimpleButton { } }//package
Section 157
//button_easy (button_easy) package { import src.Game.Buttons.*; public dynamic class button_easy extends NormalButton { } }//package
Section 158
//button_exclusive (button_exclusive) package { import flash.display.*; public dynamic class button_exclusive extends SimpleButton { } }//package
Section 159
//button_hard (button_hard) package { import src.Game.Buttons.*; public dynamic class button_hard extends NormalButton { } }//package
Section 160
//button_moregames (button_moregames) package { import src.Game.Buttons.*; public dynamic class button_moregames extends NormalButton { } }//package
Section 161
//button_normal (button_normal) package { import src.Game.Buttons.*; public dynamic class button_normal extends NormalButton { } }//package
Section 162
//button_start (button_start) package { import src.Game.Buttons.*; public dynamic class button_start extends NormalButton { } }//package
Section 163
//ButtonLocked (ButtonLocked) package { import flash.display.*; public dynamic class ButtonLocked extends MovieClip { } }//package
Section 164
//buttonperk (buttonperk) package { import src.Game.Buttons.*; public dynamic class buttonperk extends NormalButton { } }//package
Section 165
//buttons_credits (buttons_credits) package { import src.Game.Buttons.*; public dynamic class buttons_credits extends NormalButton { } }//package
Section 166
//buttons_NEXT (buttons_NEXT) package { import flash.display.*; public dynamic class buttons_NEXT extends SimpleButton { } }//package
Section 167
//Buy (Buy) package { import flash.media.*; public dynamic class Buy extends Sound { } }//package
Section 168
//BuyButton (BuyButton) package { import flash.display.*; public dynamic class BuyButton extends SimpleButton { } }//package
Section 169
//ClickSound (ClickSound) package { import flash.media.*; public dynamic class ClickSound extends Sound { } }//package
Section 170
//ContinueBut (ContinueBut) package { import flash.display.*; public dynamic class ContinueBut extends SimpleButton { } }//package
Section 171
//CPMStar (CPMStar) package { import flash.display.*; public dynamic class CPMStar extends MovieClip { } }//package
Section 172
//AdLoader (CPMStar.AdLoader) package CPMStar { import flash.display.*; import flash.events.*; import flash.net.*; import flash.system.*; public class AdLoader extends Sprite { private var contentspotid:String; private var cpmstarLoader:Loader; public function AdLoader(_arg1:String){ this.contentspotid = _arg1; addEventListener(Event.ADDED, addedHandler); } private function addedHandler(_arg1:Event):void{ var _local2:String; var _local3:DisplayObjectContainer; removeEventListener(Event.ADDED, addedHandler); Security.allowDomain("server.cpmstar.com"); _local2 = "http://server.cpmstar.com/adviewas3.swf"; _local3 = parent; cpmstarLoader = new Loader(); cpmstarLoader.contentLoaderInfo.addEventListener(Event.INIT, dispatchHandler); cpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler); cpmstarLoader.load(new URLRequest(((_local2 + "?contentspotid=") + contentspotid))); addChild(cpmstarLoader); } private function dispatchHandler(_arg1:Event):void{ dispatchEvent(_arg1); } } }//package CPMStar
Section 173
//CreditsButton (CreditsButton) package { import src.Game.Buttons.*; public dynamic class CreditsButton extends NormalButton { } }//package
Section 174
//CriticalHitSound (CriticalHitSound) package { import flash.media.*; public dynamic class CriticalHitSound extends Sound { } }//package
Section 175
//end_humsong (end_humsong) package { import flash.display.*; public dynamic class end_humsong extends MovieClip { } }//package
Section 176
//enemy1attack (enemy1attack) package { import flash.display.*; public dynamic class enemy1attack extends MovieClip { } }//package
Section 177
//Enemy1AttackSound (Enemy1AttackSound) package { import flash.media.*; public dynamic class Enemy1AttackSound extends Sound { } }//package
Section 178
//enemy1die (enemy1die) package { import flash.display.*; public dynamic class enemy1die extends MovieClip { public function enemy1die(){ addFrameScript(19, frame20); } function frame20(){ } } }//package
Section 179
//enemy1diefade (enemy1diefade) package { import flash.display.*; public dynamic class enemy1diefade extends MovieClip { public function enemy1diefade(){ addFrameScript(19, frame20); } function frame20(){ } } }//package
Section 180
//enemy1walk (enemy1walk) package { import flash.display.*; public dynamic class enemy1walk extends MovieClip { } }//package
Section 181
//Enemy2AttackSound (Enemy2AttackSound) package { import flash.media.*; public dynamic class Enemy2AttackSound extends Sound { } }//package
Section 182
//Enemy2DieSound (Enemy2DieSound) package { import flash.media.*; public dynamic class Enemy2DieSound extends Sound { } }//package
Section 183
//enemy2shadowwalk (enemy2shadowwalk) package { import flash.display.*; public dynamic class enemy2shadowwalk extends MovieClip { } }//package
Section 184
//enemy3attack (enemy3attack) package { import flash.display.*; public dynamic class enemy3attack extends MovieClip { } }//package
Section 185
//Enemy3AttackSound (Enemy3AttackSound) package { import flash.media.*; public dynamic class Enemy3AttackSound extends Sound { } }//package
Section 186
//enemy3die (enemy3die) package { import flash.display.*; public dynamic class enemy3die extends MovieClip { } }//package
Section 187
//enemy3dieani (enemy3dieani) package { import flash.display.*; public dynamic class enemy3dieani extends MovieClip { } }//package
Section 188
//Enemy3DieSound (Enemy3DieSound) package { import flash.media.*; public dynamic class Enemy3DieSound extends Sound { } }//package
Section 189
//enemy3walk (enemy3walk) package { import flash.display.*; public dynamic class enemy3walk extends MovieClip { } }//package
Section 190
//enemy4attack (enemy4attack) package { import flash.display.*; public dynamic class enemy4attack extends MovieClip { } }//package
Section 191
//Enemy4AttackSound (Enemy4AttackSound) package { import flash.media.*; public dynamic class Enemy4AttackSound extends Sound { } }//package
Section 192
//enemy4die (enemy4die) package { import flash.display.*; public dynamic class enemy4die extends MovieClip { } }//package
Section 193
//Enemy4DieSound (Enemy4DieSound) package { import flash.media.*; public dynamic class Enemy4DieSound extends Sound { } }//package
Section 194
//enemy4walk (enemy4walk) package { import flash.display.*; public dynamic class enemy4walk extends MovieClip { } }//package
Section 195
//enemy4walk_hand (enemy4walk_hand) package { import flash.display.*; public dynamic class enemy4walk_hand extends MovieClip { } }//package
Section 196
//enemy5attack (enemy5attack) package { import flash.display.*; public dynamic class enemy5attack extends MovieClip { } }//package
Section 197
//enemy5ball (enemy5ball) package { import flash.display.*; public dynamic class enemy5ball extends MovieClip { } }//package
Section 198
//enemy5ball2 (enemy5ball2) package { import flash.display.*; public dynamic class enemy5ball2 extends MovieClip { } }//package
Section 199
//enemy5ballTween1 (enemy5ballTween1) package { import flash.display.*; public dynamic class enemy5ballTween1 extends MovieClip { } }//package
Section 200
//enemy5balTween10 (enemy5balTween10) package { import flash.display.*; public dynamic class enemy5balTween10 extends MovieClip { } }//package
Section 201
//enemy5balTween11 (enemy5balTween11) package { import flash.display.*; public dynamic class enemy5balTween11 extends MovieClip { } }//package
Section 202
//enemy5balTween12 (enemy5balTween12) package { import flash.display.*; public dynamic class enemy5balTween12 extends MovieClip { } }//package
Section 203
//enemy5balTween13 (enemy5balTween13) package { import flash.display.*; public dynamic class enemy5balTween13 extends MovieClip { } }//package
Section 204
//enemy5balTween14 (enemy5balTween14) package { import flash.display.*; public dynamic class enemy5balTween14 extends MovieClip { } }//package
Section 205
//enemy5balTween15 (enemy5balTween15) package { import flash.display.*; public dynamic class enemy5balTween15 extends MovieClip { } }//package
Section 206
//enemy5balTween2 (enemy5balTween2) package { import flash.display.*; public dynamic class enemy5balTween2 extends MovieClip { } }//package
Section 207
//enemy5balTween3 (enemy5balTween3) package { import flash.display.*; public dynamic class enemy5balTween3 extends MovieClip { } }//package
Section 208
//enemy5balTween4 (enemy5balTween4) package { import flash.display.*; public dynamic class enemy5balTween4 extends MovieClip { } }//package
Section 209
//enemy5balTween5 (enemy5balTween5) package { import flash.display.*; public dynamic class enemy5balTween5 extends MovieClip { } }//package
Section 210
//enemy5balTween6 (enemy5balTween6) package { import flash.display.*; public dynamic class enemy5balTween6 extends MovieClip { } }//package
Section 211
//enemy5balTween7 (enemy5balTween7) package { import flash.display.*; public dynamic class enemy5balTween7 extends MovieClip { } }//package
Section 212
//enemy5balTween8 (enemy5balTween8) package { import flash.display.*; public dynamic class enemy5balTween8 extends MovieClip { } }//package
Section 213
//enemy5balTween9 (enemy5balTween9) package { import flash.display.*; public dynamic class enemy5balTween9 extends MovieClip { } }//package
Section 214
//enemy5die (enemy5die) package { import flash.display.*; public dynamic class enemy5die extends MovieClip { } }//package
Section 215
//Enemy5DieSound (Enemy5DieSound) package { import flash.media.*; public dynamic class Enemy5DieSound extends Sound { } }//package
Section 216
//enemy5shadowTween6 (enemy5shadowTween6) package { import flash.display.*; public dynamic class enemy5shadowTween6 extends MovieClip { } }//package
Section 217
//enemy5shadowwalk (enemy5shadowwalk) package { import flash.display.*; public dynamic class enemy5shadowwalk extends MovieClip { } }//package
Section 218
//enemy5Tween1 (enemy5Tween1) package { import flash.display.*; public dynamic class enemy5Tween1 extends MovieClip { } }//package
Section 219
//enemy5Tween2 (enemy5Tween2) package { import flash.display.*; public dynamic class enemy5Tween2 extends MovieClip { } }//package
Section 220
//enemy5Tween22 (enemy5Tween22) package { import flash.display.*; public dynamic class enemy5Tween22 extends MovieClip { } }//package
Section 221
//enemy5Tween3 (enemy5Tween3) package { import flash.display.*; public dynamic class enemy5Tween3 extends MovieClip { } }//package
Section 222
//enemy5Tween4 (enemy5Tween4) package { import flash.display.*; public dynamic class enemy5Tween4 extends MovieClip { } }//package
Section 223
//enemy5walk (enemy5walk) package { import flash.display.*; public dynamic class enemy5walk extends MovieClip { } }//package
Section 224
//enemy6attack (enemy6attack) package { import flash.display.*; public dynamic class enemy6attack extends MovieClip { } }//package
Section 225
//enemy6die (enemy6die) package { import flash.display.*; public dynamic class enemy6die extends MovieClip { } }//package
Section 226
//enemy6dieact (enemy6dieact) package { import flash.display.*; public dynamic class enemy6dieact extends MovieClip { } }//package
Section 227
//Enemy6DieSound (Enemy6DieSound) package { import flash.media.*; public dynamic class Enemy6DieSound extends Sound { } }//package
Section 228
//enemy6eshadowwalk (enemy6eshadowwalk) package { import flash.display.*; public dynamic class enemy6eshadowwalk extends MovieClip { } }//package
Section 229
//enemy6walk (enemy6walk) package { import flash.display.*; public dynamic class enemy6walk extends MovieClip { } }//package
Section 230
//enemy7_die (enemy7_die) package { import flash.display.*; public dynamic class enemy7_die extends MovieClip { } }//package
Section 231
//enemy7attack (enemy7attack) package { import flash.display.*; public dynamic class enemy7attack extends MovieClip { } }//package
Section 232
//enemy7attta (enemy7attta) package { import flash.display.*; public dynamic class enemy7attta extends MovieClip { } }//package
Section 233
//enemy7die (enemy7die) package { import flash.display.*; public dynamic class enemy7die extends MovieClip { } }//package
Section 234
//enemy7laser (enemy7laser) package { import flash.display.*; public dynamic class enemy7laser extends MovieClip { } }//package
Section 235
//enemy7laserhit (enemy7laserhit) package { import flash.display.*; public dynamic class enemy7laserhit extends MovieClip { } }//package
Section 236
//enemy7Tween1 (enemy7Tween1) package { import flash.display.*; public dynamic class enemy7Tween1 extends MovieClip { } }//package
Section 237
//enemy7walk (enemy7walk) package { import flash.display.*; public dynamic class enemy7walk extends MovieClip { } }//package
Section 238
//enemy7walk2Tween1copy (enemy7walk2Tween1copy) package { import flash.display.*; public dynamic class enemy7walk2Tween1copy extends MovieClip { } }//package
Section 239
//enemy8 (enemy8) package { import flash.display.*; public dynamic class enemy8 extends MovieClip { } }//package
Section 240
//enemy8attack (enemy8attack) package { import flash.display.*; public dynamic class enemy8attack extends MovieClip { } }//package
Section 241
//enemy8die (enemy8die) package { import flash.display.*; public dynamic class enemy8die extends MovieClip { } }//package
Section 242
//Enemy8DieSound (Enemy8DieSound) package { import flash.media.*; public dynamic class Enemy8DieSound extends Sound { } }//package
Section 243
//enemy8walk (enemy8walk) package { import flash.display.*; public dynamic class enemy8walk extends MovieClip { } }//package
Section 244
//EngineeringIcon (EngineeringIcon) package { import flash.display.*; public dynamic class EngineeringIcon extends MovieClip { } }//package
Section 245
//EquipButton (EquipButton) package { import flash.display.*; public dynamic class EquipButton extends SimpleButton { } }//package
Section 246
//EquippedMark (EquippedMark) package { import flash.display.*; import flash.text.*; public dynamic class EquippedMark extends MovieClip { public var eqTxt:TextField; } }//package
Section 247
//ExitButton (ExitButton) package { import flash.display.*; public dynamic class ExitButton extends SimpleButton { } }//package
Section 248
//ExitGameButton (ExitGameButton) package { import src.Game.Buttons.*; public dynamic class ExitGameButton extends NormalButton { } }//package
Section 249
//helicopter (helicopter) package { import flash.display.*; public dynamic class helicopter extends MovieClip { } }//package
Section 250
//helicopter_fan (helicopter_fan) package { import flash.display.*; public dynamic class helicopter_fan extends MovieClip { } }//package
Section 251
//helicopter_fan2 (helicopter_fan2) package { import flash.display.*; public dynamic class helicopter_fan2 extends MovieClip { } }//package
Section 252
//helicopter_move (helicopter_move) package { import flash.display.*; public dynamic class helicopter_move extends MovieClip { } }//package
Section 253
//HelicopterIcon (HelicopterIcon) package { import flash.display.*; public dynamic class HelicopterIcon extends MovieClip { } }//package
Section 254
//HighQualityButton (HighQualityButton) package { import flash.display.*; public dynamic class HighQualityButton extends MovieClip { } }//package
Section 255
//HostGame (HostGame) package { import src.Game.Buttons.*; public dynamic class HostGame extends NormalButton { } }//package
Section 256
//HP_BarFillcopy (HP_BarFillcopy) package { import flash.display.*; public dynamic class HP_BarFillcopy extends MovieClip { public var hp:HP_gage; } }//package
Section 257
//HP_BarFillcopy1 (HP_BarFillcopy1) package { import flash.display.*; public dynamic class HP_BarFillcopy1 extends MovieClip { } }//package
Section 258
//HP_gage (HP_gage) package { import flash.display.*; public dynamic class HP_gage extends MovieClip { } }//package
Section 259
//Hp_tab_shop (Hp_tab_shop) package { import flash.display.*; public dynamic class Hp_tab_shop extends MovieClip { } }//package
Section 260
//JoeyMC (JoeyMC) package { import flash.display.*; public dynamic class JoeyMC extends MovieClip { } }//package
Section 261
//LowQualityButton (LowQualityButton) package { import flash.display.*; public dynamic class LowQualityButton extends MovieClip { } }//package
Section 262
//MagnumSound (MagnumSound) package { import flash.media.*; public dynamic class MagnumSound extends Sound { } }//package
Section 263
//MainMenuBut (MainMenuBut) package { import src.Game.Buttons.*; public dynamic class MainMenuBut extends NormalButton { } }//package
Section 264
//MediumQualityButton (MediumQualityButton) package { import flash.display.*; public dynamic class MediumQualityButton extends MovieClip { } }//package
Section 265
//MiscTab (MiscTab) package { import flash.display.*; public dynamic class MiscTab extends SimpleButton { } }//package
Section 266
//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ var _local3:MochiBot; var _local4:String; var _local5:URLVariables; var _local6:String; var _local7:URLRequest; var _local8:Loader; if (Security.sandboxType == "localWithFile"){ return (null); }; _local3 = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); _local4 = "http://core.mochibot.com/my/core.swf"; _local5 = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; _local6 = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; _local7 = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; _local8 = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 267
//MouseOverSound (MouseOverSound) package { import flash.media.*; public dynamic class MouseOverSound extends Sound { } }//package
Section 268
//ParticleBlood (ParticleBlood) package { import flash.display.*; public dynamic class ParticleBlood extends MovieClip { } }//package
Section 269
//ParticleDirt (ParticleDirt) package { import flash.display.*; public dynamic class ParticleDirt extends MovieClip { } }//package
Section 270
//PistolSound (PistolSound) package { import flash.media.*; public dynamic class PistolSound extends Sound { } }//package
Section 271
//PlayButton (PlayButton) package { import flash.display.*; public dynamic class PlayButton extends SimpleButton { } }//package
Section 272
//PlayCash (PlayCash) package { import src.Game.Buttons.*; public dynamic class PlayCash extends NormalButton { } }//package
Section 273
//PlusControl (PlusControl) package { import flash.display.*; public dynamic class PlusControl extends SimpleButton { } }//package
Section 274
//PreloadMC (PreloadMC) package { import flash.display.*; public dynamic class PreloadMC extends MovieClip { public function PreloadMC(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 275
//PropertyButton (PropertyButton) package { import flash.display.*; public dynamic class PropertyButton extends SimpleButton { } }//package
Section 276
//PropertyButtonMask (PropertyButtonMask) package { import flash.display.*; public dynamic class PropertyButtonMask extends MovieClip { } }//package
Section 277
//QHighOffButton (QHighOffButton) package { import flash.display.*; public dynamic class QHighOffButton extends SimpleButton { } }//package
Section 278
//QHighOnButton (QHighOnButton) package { import flash.display.*; public dynamic class QHighOnButton extends SimpleButton { } }//package
Section 279
//QLowOffButton (QLowOffButton) package { import flash.display.*; public dynamic class QLowOffButton extends SimpleButton { } }//package
Section 280
//QLowOnButton (QLowOnButton) package { import flash.display.*; public dynamic class QLowOnButton extends SimpleButton { } }//package
Section 281
//QMediumOffButton (QMediumOffButton) package { import flash.display.*; public dynamic class QMediumOffButton extends SimpleButton { } }//package
Section 282
//QMediumOnButton (QMediumOnButton) package { import flash.display.*; public dynamic class QMediumOnButton extends SimpleButton { } }//package
Section 283
//QuitGameBut (QuitGameBut) package { import flash.display.*; public dynamic class QuitGameBut extends SimpleButton { } }//package
Section 284
//QuitGameButton (QuitGameButton) package { import flash.display.*; public dynamic class QuitGameButton extends SimpleButton { } }//package
Section 285
//ReloadSound (ReloadSound) package { import flash.media.*; public dynamic class ReloadSound extends Sound { } }//package
Section 286
//RepairIcon (RepairIcon) package { import flash.display.*; public dynamic class RepairIcon extends MovieClip { } }//package
Section 287
//RepairManIcon (RepairManIcon) package { import flash.display.*; public dynamic class RepairManIcon extends MovieClip { } }//package
Section 288
//RestartBut (RestartBut) package { import src.Game.Buttons.*; public dynamic class RestartBut extends NormalButton { } }//package
Section 289
//ShareButton (ShareButton) package { import flash.display.*; public dynamic class ShareButton extends SimpleButton { } }//package
Section 290
//ShotgunSound (ShotgunSound) package { import flash.media.*; public dynamic class ShotgunSound extends Sound { } }//package
Section 291
//SniperSound (SniperSound) package { import flash.media.*; public dynamic class SniperSound extends Sound { } }//package
Section 292
//StartBattleSound (StartBattleSound) package { import flash.media.*; public dynamic class StartBattleSound extends Sound { } }//package
Section 293
//StartButton (StartButton) package { import src.Game.Buttons.*; public dynamic class StartButton extends NormalButton { } }//package
Section 294
//SubmitButton (SubmitButton) package { import src.Game.Buttons.*; public dynamic class SubmitButton extends NormalButton { } }//package
Section 295
//SumbitButton (SumbitButton) package { import flash.display.*; public dynamic class SumbitButton extends SimpleButton { } }//package
Section 296
//TeagamesExclusive (TeagamesExclusive) package { import flash.display.*; public dynamic class TeagamesExclusive extends MovieClip { } }//package
Section 297
//title_move (title_move) package { import flash.display.*; public dynamic class title_move extends MovieClip { public function title_move(){ addFrameScript(290, frame291); } function frame291(){ stop(); } } }//package
Section 298
//TryAgainButton (TryAgainButton) package { import flash.display.*; public dynamic class TryAgainButton extends SimpleButton { } }//package
Section 299
//TurretIcon (TurretIcon) package { import flash.display.*; public dynamic class TurretIcon extends MovieClip { } }//package
Section 300
//UziSound (UziSound) package { import flash.media.*; public dynamic class UziSound extends Sound { } }//package
Section 301
//Weapon0 (Weapon0) package { import flash.display.*; public dynamic class Weapon0 extends MovieClip { } }//package
Section 302
//Weapon1 (Weapon1) package { import flash.display.*; public dynamic class Weapon1 extends MovieClip { } }//package
Section 303
//Weapon10 (Weapon10) package { import flash.display.*; public dynamic class Weapon10 extends MovieClip { } }//package
Section 304
//Weapon11 (Weapon11) package { import flash.display.*; public dynamic class Weapon11 extends MovieClip { } }//package
Section 305
//Weapon2 (Weapon2) package { import flash.display.*; public dynamic class Weapon2 extends MovieClip { } }//package
Section 306
//Weapon3 (Weapon3) package { import flash.display.*; public dynamic class Weapon3 extends MovieClip { } }//package
Section 307
//Weapon4 (Weapon4) package { import flash.display.*; public dynamic class Weapon4 extends MovieClip { } }//package
Section 308
//Weapon5 (Weapon5) package { import flash.display.*; public dynamic class Weapon5 extends MovieClip { } }//package
Section 309
//Weapon6 (Weapon6) package { import flash.display.*; public dynamic class Weapon6 extends MovieClip { } }//package
Section 310
//Weapon7 (Weapon7) package { import flash.display.*; public dynamic class Weapon7 extends MovieClip { } }//package
Section 311
//Weapon8 (Weapon8) package { import flash.display.*; public dynamic class Weapon8 extends MovieClip { } }//package
Section 312
//Weapon9 (Weapon9) package { import flash.display.*; public dynamic class Weapon9 extends MovieClip { } }//package
Section 313
//WeaponIcon0 (WeaponIcon0) package { import flash.display.*; public dynamic class WeaponIcon0 extends MovieClip { } }//package
Section 314
//WeaponIcon1 (WeaponIcon1) package { import flash.display.*; public dynamic class WeaponIcon1 extends MovieClip { } }//package
Section 315
//WeaponIcon10 (WeaponIcon10) package { import flash.display.*; public dynamic class WeaponIcon10 extends MovieClip { } }//package
Section 316
//WeaponIcon11 (WeaponIcon11) package { import flash.display.*; public dynamic class WeaponIcon11 extends MovieClip { } }//package
Section 317
//WeaponIcon2 (WeaponIcon2) package { import flash.display.*; public dynamic class WeaponIcon2 extends MovieClip { } }//package
Section 318
//WeaponIcon3 (WeaponIcon3) package { import flash.display.*; public dynamic class WeaponIcon3 extends MovieClip { } }//package
Section 319
//WeaponIcon4 (WeaponIcon4) package { import flash.display.*; public dynamic class WeaponIcon4 extends MovieClip { } }//package
Section 320
//WeaponIcon5 (WeaponIcon5) package { import flash.display.*; public dynamic class WeaponIcon5 extends MovieClip { } }//package
Section 321
//WeaponIcon6 (WeaponIcon6) package { import flash.display.*; public dynamic class WeaponIcon6 extends MovieClip { } }//package
Section 322
//WeaponIcon7 (WeaponIcon7) package { import flash.display.*; public dynamic class WeaponIcon7 extends MovieClip { } }//package
Section 323
//WeaponIcon8 (WeaponIcon8) package { import flash.display.*; public dynamic class WeaponIcon8 extends MovieClip { } }//package
Section 324
//WeaponIcon9 (WeaponIcon9) package { import flash.display.*; public dynamic class WeaponIcon9 extends MovieClip { } }//package
Section 325
//WeaponIconExclusive (WeaponIconExclusive) package { import flash.display.*; public dynamic class WeaponIconExclusive extends MovieClip { } }//package
Section 326
//WeaponsTab (WeaponsTab) package { import flash.display.*; public dynamic class WeaponsTab extends SimpleButton { } }//package
Section 327
//ZombieDeath (ZombieDeath) package { import flash.media.*; public dynamic class ZombieDeath extends Sound { } }//package
Section 328
//ZombieDie1Sound (ZombieDie1Sound) package { import flash.media.*; public dynamic class ZombieDie1Sound extends Sound { } }//package
Section 329
//ZombieDie2Sound (ZombieDie2Sound) package { import flash.media.*; public dynamic class ZombieDie2Sound extends Sound { } }//package

Library Items

Symbol 1 GraphicUsed by:10
Symbol 2 BitmapUsed by:3
Symbol 3 GraphicUses:2Used by:10
Symbol 4 FontUsed by:5 6 204 206 208 210 212 299 651 652 654 655 657 658 660 696 697 742
Symbol 5 TextUses:4Used by:10
Symbol 6 TextUses:4Used by:10
Symbol 7 BitmapUsed by:8
Symbol 8 GraphicUses:7Used by:10
Symbol 9 GraphicUsed by:10
Symbol 10 MovieClip {_splash}Uses:1 3 5 6 8 9
Symbol 11 GraphicUsed by:15
Symbol 12 GraphicUsed by:15
Symbol 13 GraphicUsed by:15
Symbol 14 GraphicUsed by:15
Symbol 15 MovieClip {src.Game.Gameplay.Enemies.CriticalHitAnim}Uses:11 12 13 14
Symbol 16 GraphicUsed by:17 18 35 86 123 159 190 411 422 436 454 471 477 496 508 525 537 547 572 594 634 862 872 886
Symbol 17 MovieClip {enemy5shadowwalk}Uses:16
Symbol 18 MovieClip {enemy5shadowTween6}Uses:16
Symbol 19 GraphicUsed by:20 634
Symbol 20 MovieClip {enemy4walk_hand}Uses:19
Symbol 21 GraphicUsed by:35
Symbol 22 GraphicUsed by:35
Symbol 23 GraphicUsed by:35
Symbol 24 GraphicUsed by:35
Symbol 25 GraphicUsed by:35
Symbol 26 GraphicUsed by:35
Symbol 27 GraphicUsed by:35
Symbol 28 GraphicUsed by:35
Symbol 29 GraphicUsed by:35
Symbol 30 GraphicUsed by:35
Symbol 31 GraphicUsed by:35
Symbol 32 GraphicUsed by:35
Symbol 33 GraphicUsed by:35
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClip {enemy1die}Uses:16 21 22 23 24 25 26 27 28 29 30 31 32 33 34
Symbol 36 GraphicUsed by:37 40 41 525 536
Symbol 37 MovieClip {enemy5Tween22}Uses:36
Symbol 38 GraphicUsed by:40 41 525
Symbol 39 GraphicUsed by:40 525
Symbol 40 MovieClip {enemy5Tween1}Uses:36 38 39
Symbol 41 MovieClip {enemy5Tween2}Uses:36 38
Symbol 42 GraphicUsed by:47 525
Symbol 43 GraphicUsed by:47 525
Symbol 44 GraphicUsed by:47 525
Symbol 45 GraphicUsed by:47 525
Symbol 46 GraphicUsed by:47 525
Symbol 47 MovieClip {enemy5ball2}Uses:42 43 44 45 46
Symbol 48 GraphicUsed by:54 525 536
Symbol 49 GraphicUsed by:54 525 536
Symbol 50 GraphicUsed by:54 525 536
Symbol 51 GraphicUsed by:54 525 536
Symbol 52 GraphicUsed by:54 525 536
Symbol 53 GraphicUsed by:54 525 536
Symbol 54 MovieClip {enemy5ball}Uses:48 49 50 51 52 53
Symbol 55 GraphicUsed by:56 525 536
Symbol 56 MovieClip {enemy5Tween3}Uses:55
Symbol 57 GraphicUsed by:58 525 536
Symbol 58 MovieClip {enemy5Tween4}Uses:57
Symbol 59 GraphicUsed by:60 516
Symbol 60 MovieClip {enemy5ballTween1}Uses:59
Symbol 61 GraphicUsed by:62 516
Symbol 62 MovieClip {enemy5balTween2}Uses:61
Symbol 63 GraphicUsed by:64 516
Symbol 64 MovieClip {enemy5balTween3}Uses:63
Symbol 65 GraphicUsed by:66
Symbol 66 MovieClip {enemy5balTween4}Uses:65
Symbol 67 GraphicUsed by:68 516
Symbol 68 MovieClip {enemy5balTween5}Uses:67
Symbol 69 GraphicUsed by:70
Symbol 70 MovieClip {enemy5balTween6}Uses:69
Symbol 71 GraphicUsed by:72 516
Symbol 72 MovieClip {enemy5balTween7}Uses:71
Symbol 73 GraphicUsed by:74 516
Symbol 74 MovieClip {enemy5balTween8}Uses:73
Symbol 75 GraphicUsed by:76 516
Symbol 76 MovieClip {enemy5balTween9}Uses:75
Symbol 77 GraphicUsed by:78
Symbol 78 MovieClip {enemy5balTween10}Uses:77
Symbol 79 GraphicUsed by:80 516
Symbol 80 MovieClip {enemy5balTween11}Uses:79
Symbol 81 GraphicUsed by:82 516
Symbol 82 MovieClip {enemy5balTween12}Uses:81
Symbol 83 GraphicUsed by:84 85 516
Symbol 84 MovieClip {enemy5balTween13}Uses:83
Symbol 85 MovieClip {enemy5balTween14}Uses:83
Symbol 86 MovieClip {enemy5balTween15}Uses:16
Symbol 87 GraphicUsed by:88
Symbol 88 MovieClip {enemy8}Uses:87
Symbol 89 GraphicUsed by:94 475
Symbol 90 GraphicUsed by:94 475
Symbol 91 GraphicUsed by:94 475
Symbol 92 GraphicUsed by:94 475
Symbol 93 GraphicUsed by:94 475
Symbol 94 MovieClip {enemy7_die}Uses:89 90 91 92 93
Symbol 95 GraphicUsed by:101 103 106 108 475 476
Symbol 96 GraphicUsed by:101 106
Symbol 97 GraphicUsed by:101 103 106 108 475 476
Symbol 98 GraphicUsed by:101
Symbol 99 GraphicUsed by:101
Symbol 100 GraphicUsed by:101 106 108 475
Symbol 101 MovieClip {enemy7walk}Uses:95 96 97 98 99 100
Symbol 102 GraphicUsed by:103 476
Symbol 103 MovieClip {enemy7attta}Uses:95 102 97
Symbol 104 GraphicUsed by:106 108 475
Symbol 105 GraphicUsed by:106 108
Symbol 106 MovieClip {enemy7walk2Tween1copy}Uses:95 96 97 100 104 105
Symbol 107 GraphicUsed by:108 475
Symbol 108 MovieClip {enemy7Tween1}Uses:95 107 97 100 104 105
Symbol 109 GraphicUsed by:116 476 496
Symbol 110 GraphicUsed by:116 476
Symbol 111 GraphicUsed by:116 476
Symbol 112 GraphicUsed by:116 476
Symbol 113 GraphicUsed by:116 476
Symbol 114 GraphicUsed by:116 476
Symbol 115 GraphicUsed by:116 476
Symbol 116 MovieClip {enemy7laser}Uses:109 110 111 112 113 114 115
Symbol 117 GraphicUsed by:122 476 496
Symbol 118 GraphicUsed by:122 476 496
Symbol 119 GraphicUsed by:122 476 496
Symbol 120 GraphicUsed by:122 476 496
Symbol 121 GraphicUsed by:122 476 496
Symbol 122 MovieClip {enemy7laserhit}Uses:117 118 119 120 121
Symbol 123 MovieClip {enemy6eshadowwalk}Uses:16
Symbol 124 GraphicUsed by:148 477
Symbol 125 GraphicUsed by:148 477
Symbol 126 GraphicUsed by:148 477
Symbol 127 GraphicUsed by:148 477
Symbol 128 GraphicUsed by:148 477
Symbol 129 GraphicUsed by:148 477
Symbol 130 GraphicUsed by:148 477
Symbol 131 GraphicUsed by:148 477
Symbol 132 GraphicUsed by:148 477
Symbol 133 GraphicUsed by:148 477
Symbol 134 GraphicUsed by:148 477
Symbol 135 GraphicUsed by:148 477
Symbol 136 GraphicUsed by:148 477
Symbol 137 GraphicUsed by:148 477
Symbol 138 GraphicUsed by:148 477
Symbol 139 GraphicUsed by:148 477
Symbol 140 GraphicUsed by:148 477
Symbol 141 GraphicUsed by:148 477
Symbol 142 GraphicUsed by:148 477
Symbol 143 GraphicUsed by:148 477
Symbol 144 GraphicUsed by:148 477
Symbol 145 GraphicUsed by:148 477
Symbol 146 GraphicUsed by:148 477
Symbol 147 GraphicUsed by:148 477
Symbol 148 MovieClip {enemy6dieact}Uses:124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
Symbol 149 GraphicUsed by:159
Symbol 150 GraphicUsed by:159
Symbol 151 GraphicUsed by:159
Symbol 152 GraphicUsed by:159
Symbol 153 GraphicUsed by:159
Symbol 154 GraphicUsed by:159
Symbol 155 GraphicUsed by:159
Symbol 156 GraphicUsed by:159
Symbol 157 GraphicUsed by:159
Symbol 158 GraphicUsed by:159
Symbol 159 MovieClip {enemy3walk}Uses:16 149 150 151 152 153 154 155 156 157 158
Symbol 160 GraphicUsed by:189 537
Symbol 161 GraphicUsed by:189 537
Symbol 162 GraphicUsed by:189 537
Symbol 163 GraphicUsed by:189 537
Symbol 164 GraphicUsed by:189 537
Symbol 165 GraphicUsed by:189 537
Symbol 166 GraphicUsed by:189 537
Symbol 167 GraphicUsed by:189 537
Symbol 168 GraphicUsed by:189 537
Symbol 169 GraphicUsed by:189 537
Symbol 170 GraphicUsed by:189 537
Symbol 171 GraphicUsed by:189 537
Symbol 172 GraphicUsed by:189 537
Symbol 173 GraphicUsed by:189 537
Symbol 174 GraphicUsed by:189 537
Symbol 175 GraphicUsed by:189 537
Symbol 176 GraphicUsed by:189 537
Symbol 177 GraphicUsed by:189 537
Symbol 178 GraphicUsed by:189 537
Symbol 179 GraphicUsed by:189 537
Symbol 180 GraphicUsed by:189 537
Symbol 181 GraphicUsed by:189 537
Symbol 182 GraphicUsed by:189 537
Symbol 183 GraphicUsed by:189 537
Symbol 184 GraphicUsed by:189 537
Symbol 185 GraphicUsed by:189 537
Symbol 186 GraphicUsed by:189 537
Symbol 187 GraphicUsed by:189 537
Symbol 188 GraphicUsed by:189 537
Symbol 189 MovieClip {enemy3dieani}Uses:160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188
Symbol 190 MovieClip {enemy2shadowwalk}Uses:16
Symbol 191 GraphicUsed by:194
Symbol 192 GraphicUsed by:194
Symbol 193 GraphicUsed by:194
Symbol 194 MovieClip {bullet_gun}Uses:191 192 193
Symbol 195 GraphicUsed by:201
Symbol 196 GraphicUsed by:201
Symbol 197 GraphicUsed by:201
Symbol 198 GraphicUsed by:201
Symbol 199 GraphicUsed by:201
Symbol 200 GraphicUsed by:201
Symbol 201 MovieClip {src.Game.Gameplay.Turrets.gfx_missile}Uses:195 196 197 198 199 200
Symbol 202 GraphicUsed by:203
Symbol 203 MovieClip {src.Game.Gameplay.Turrets.HeliMissile}Uses:202
Symbol 204 TextUses:4Used by:205
Symbol 205 Button {BackButton}Uses:204
Symbol 206 TextUses:4Used by:207
Symbol 207 Button {SubmitButton}Uses:206
Symbol 208 TextUses:4Used by:209
Symbol 209 Button {RestartBut}Uses:208
Symbol 210 TextUses:4Used by:211
Symbol 211 Button {ExitGameButton}Uses:210
Symbol 212 TextUses:4Used by:213
Symbol 213 Button {MainMenuBut}Uses:212
Symbol 214 GraphicUsed by:217
Symbol 215 GraphicUsed by:217
Symbol 216 GraphicUsed by:217
Symbol 217 ButtonUses:214 215 216Used by:222
Symbol 218 GraphicUsed by:221
Symbol 219 GraphicUsed by:221
Symbol 220 GraphicUsed by:221
Symbol 221 ButtonUses:218 219 220Used by:222
Symbol 222 MovieClip {src.Game.Buttons.SoundButton}Uses:217 221Used by:751 975
Symbol 223 GraphicUsed by:226
Symbol 224 GraphicUsed by:226
Symbol 225 GraphicUsed by:226
Symbol 226 ButtonUses:223 224 225Used by:231
Symbol 227 GraphicUsed by:230
Symbol 228 GraphicUsed by:230
Symbol 229 GraphicUsed by:230
Symbol 230 ButtonUses:227 228 229Used by:231
Symbol 231 MovieClip {src.Game.Buttons.MusicButton}Uses:226 230Used by:751 975
Symbol 232 GraphicUsed by:239
Symbol 233 FontUsed by:234 236 238 244 284 286 288 291 293 295 308 310 312 322 323 324 325 327 329 330 332 333 334 336 337 338 364 366 371 373 376 378 647 648 649 736 752 761 762 764 766 769 771 773 778 780 781 783 784 785 789 790 791 966 971 974 996 1018 1021 1022 1023 1100 1115
Symbol 234 TextUses:233Used by:239
Symbol 235 GraphicUsed by:239
Symbol 236 TextUses:233Used by:239
Symbol 237 GraphicUsed by:239
Symbol 238 TextUses:233Used by:239
Symbol 239 Button {PlayButton}Uses:232 234 235 236 237 238
Symbol 240 MovieClip {HP_BarFillcopy1}
Symbol 241 GraphicUsed by:245
Symbol 242 FontUsed by:243 249 257 258 259 297 301 303 305 647 648 649 752 761 994 996 1005 1007 1008 1022 1023 1042 1043 1044 1046 1049 1101 1102 1105 1108 1112 1114 1116
Symbol 243 EditableTextUses:242Used by:245
Symbol 244 TextUses:233Used by:245
Symbol 245 MovieClip {src.Game.Gameplay.UI.CashPrizeCounter}Uses:241 243 244
Symbol 246 GraphicUsed by:250
Symbol 247 GraphicUsed by:248
Symbol 248 MovieClip {Weapon10}Uses:247Used by:250 1006 1039 1094 1158
Symbol 249 TextUses:242Used by:250
Symbol 250 MovieClip {WeaponIconExclusive}Uses:246 248 249
Symbol 251 GraphicUsed by:254
Symbol 252 GraphicUsed by:254
Symbol 253 GraphicUsed by:254
Symbol 254 Button {PropertyButton}Uses:251 252 253Used by:260
Symbol 255 GraphicUsed by:256
Symbol 256 MovieClip {PropertyButtonMask}Uses:255Used by:260
Symbol 257 EditableTextUses:242Used by:260
Symbol 258 EditableTextUses:242Used by:260
Symbol 259 EditableTextUses:242Used by:260
Symbol 260 MovieClip {src.Game.Screens.Upgrade.PropertyUpgradeControl}Uses:254 256 257 258 259
Symbol 261 GraphicUsed by:262
Symbol 262 MovieClip {ButtonLocked}Uses:261
Symbol 263 GraphicUsed by:264
Symbol 264 MovieClip {ParticleDirt}Uses:263
Symbol 265 GraphicUsed by:266
Symbol 266 MovieClip {ParticleBlood}Uses:265
Symbol 267 GraphicUsed by:268 992
Symbol 268 MovieClip {AcMask}Uses:267
Symbol 269 FontUsed by:270 271 341 343 344 347 349 350 353 355 356 662 664 665 668 681 683 684 687 689 691 795 796 798 799 803 1012
Symbol 270 TextUses:269Used by:281
Symbol 271 EditableTextUses:269Used by:281
Symbol 272 BitmapUsed by:273 276 278 340 342 346 348 352 354 663 667 669 674 676 678 682 686 688 690 699 700 794 801 806 978 980 982 985 987 989
Symbol 273 GraphicUses:272Used by:280 701
Symbol 274 FontUsed by:275 277 279 675 677 679 796 798 799 968 977 979 981 983 986 988 990
Symbol 275 TextUses:274Used by:280 701
Symbol 276 GraphicUses:272Used by:280
Symbol 277 TextUses:274Used by:280 701
Symbol 278 GraphicUses:272Used by:280
Symbol 279 TextUses:274Used by:280 701
Symbol 280 Button {button_start}Uses:273 275 276 277 278 279Used by:281 751 753
Symbol 281 MovieClip {src.Game.Screens.NameSelectScreen}Uses:270 271 280
Symbol 282 MovieClip {TeagamesExclusive}
Symbol 283 GraphicUsed by:289
Symbol 284 TextUses:233Used by:289
Symbol 285 GraphicUsed by:289
Symbol 286 TextUses:233Used by:289
Symbol 287 GraphicUsed by:289
Symbol 288 TextUses:233Used by:289
Symbol 289 Button {EquipButton}Uses:283 284 285 286 287 288Used by:1117
Symbol 290 GraphicUsed by:296
Symbol 291 TextUses:233Used by:296
Symbol 292 GraphicUsed by:296
Symbol 293 TextUses:233Used by:296
Symbol 294 GraphicUsed by:296
Symbol 295 TextUses:233Used by:296
Symbol 296 Button {BuyButton}Uses:290 291 292 293 294 295Used by:1117
Symbol 297 EditableTextUses:242Used by:298
Symbol 298 MovieClip {EquippedMark}Uses:297Used by:1117
Symbol 299 TextUses:4Used by:306
Symbol 300 GraphicUsed by:306
Symbol 301 TextUses:242Used by:306
Symbol 302 GraphicUsed by:306
Symbol 303 TextUses:242Used by:306
Symbol 304 GraphicUsed by:306
Symbol 305 TextUses:242Used by:306
Symbol 306 Button {ExitButton}Uses:299 300 301 302 303 304 305Used by:1056
Symbol 307 GraphicUsed by:313 767
Symbol 308 TextUses:233Used by:313
Symbol 309 GraphicUsed by:313
Symbol 310 TextUses:233Used by:313
Symbol 311 GraphicUsed by:313
Symbol 312 TextUses:233Used by:313
Symbol 313 Button {buttons_NEXT}Uses:307 308 309 310 311 312Used by:1030
Symbol 314 GraphicUsed by:316
Symbol 315 GraphicUsed by:316
Symbol 316 MovieClip {end_humsong}Uses:314 315Used by:320
Symbol 317 BitmapUsed by:319 749 811
Symbol 318 BitmapUsed by:319 749 811
Symbol 319 GraphicUses:317 318Used by:320
Symbol 320 MovieClip {aaaaa}Uses:319 316Used by:1024
Symbol 321 GraphicUsed by:326 331 335 339 782
Symbol 322 TextUses:233Used by:326
Symbol 323 TextUses:233Used by:326
Symbol 324 TextUses:233Used by:326
Symbol 325 TextUses:233Used by:326 331 335 339 782
Symbol 326 Button {ShareButton}Uses:321 322 323 324 325Used by:1019 1024
Symbol 327 TextUses:233Used by:331
Symbol 328 GraphicUsed by:331 335 339 782
Symbol 329 TextUses:233Used by:331
Symbol 330 TextUses:233Used by:331
Symbol 331 Button {SumbitButton}Uses:321 327 328 329 330 325Used by:1019 1024
Symbol 332 TextUses:233Used by:335 779
Symbol 333 TextUses:233Used by:335 779
Symbol 334 TextUses:233Used by:335
Symbol 335 Button {QuitGameButton}Uses:321 332 328 333 334 325Used by:1019 1024
Symbol 336 TextUses:233Used by:339
Symbol 337 TextUses:233Used by:339
Symbol 338 TextUses:233Used by:339
Symbol 339 Button {TryAgainButton}Uses:321 336 328 337 338 325Used by:1019
Symbol 340 GraphicUses:272Used by:345 685
Symbol 341 TextUses:269Used by:345
Symbol 342 GraphicUses:272Used by:345
Symbol 343 TextUses:269Used by:345
Symbol 344 TextUses:269Used by:345
Symbol 345 Button {button_normal}Uses:340 341 342 343 344Used by:1013
Symbol 346 GraphicUses:272Used by:351 666
Symbol 347 TextUses:269Used by:351
Symbol 348 GraphicUses:272Used by:351
Symbol 349 TextUses:269Used by:351
Symbol 350 TextUses:269Used by:351
Symbol 351 Button {button_hard}Uses:346 347 348 349 350Used by:1013
Symbol 352 GraphicUses:272Used by:357
Symbol 353 TextUses:269Used by:357
Symbol 354 GraphicUses:272Used by:357
Symbol 355 TextUses:269Used by:357
Symbol 356 TextUses:269Used by:357
Symbol 357 Button {button_easy}Uses:352 353 354 355 356Used by:1013
Symbol 358 GraphicUsed by:362
Symbol 359 GraphicUsed by:362
Symbol 360 GraphicUsed by:362
Symbol 361 GraphicUsed by:362
Symbol 362 Button {buttonperk}Uses:358 359 360 361Used by:1009
Symbol 363 GraphicUsed by:368 369 372 374 377 379
Symbol 364 TextUses:233Used by:368
Symbol 365 GraphicUsed by:368 369 372 374 377 379
Symbol 366 TextUses:233Used by:368 369
Symbol 367 GraphicUsed by:368 369 372 374 377 379
Symbol 368 Button {QHighOffButton}Uses:363 364 365 366 367Used by:370
Symbol 369 Button {QHighOnButton}Uses:363 366 365 367Used by:370
Symbol 370 MovieClip {HighQualityButton}Uses:369 368Used by:975
Symbol 371 TextUses:233Used by:372
Symbol 372 Button {QMediumOffButton}Uses:363 371 365 367Used by:375
Symbol 373 TextUses:233Used by:374
Symbol 374 Button {QMediumOnButton}Uses:363 373 365 367Used by:375
Symbol 375 MovieClip {MediumQualityButton}Uses:374 372Used by:975
Symbol 376 TextUses:233Used by:377
Symbol 377 Button {QLowOffButton}Uses:363 376 365 367Used by:380
Symbol 378 TextUses:233Used by:379
Symbol 379 Button {QLowOnButton}Uses:363 378 365 367Used by:380
Symbol 380 MovieClip {LowQualityButton}Uses:379 377Used by:975
Symbol 381 GraphicUsed by:384 963
Symbol 382 GraphicUsed by:384 963
Symbol 383 GraphicUsed by:384
Symbol 384 MovieClip {HP_gage}Uses:381 382 383Used by:385
Symbol 385 MovieClip {HP_BarFillcopy}Uses:384Used by:972
Symbol 386 GraphicUsed by:400
Symbol 387 GraphicUsed by:400
Symbol 388 GraphicUsed by:400
Symbol 389 GraphicUsed by:400
Symbol 390 GraphicUsed by:400
Symbol 391 GraphicUsed by:400
Symbol 392 GraphicUsed by:400
Symbol 393 GraphicUsed by:400
Symbol 394 GraphicUsed by:400
Symbol 395 GraphicUsed by:400
Symbol 396 GraphicUsed by:400
Symbol 397 GraphicUsed by:400
Symbol 398 GraphicUsed by:400
Symbol 399 GraphicUsed by:400
Symbol 400 MovieClip {enemy1diefade}Uses:386 387 388 389 390 391 392 393 394 395 396 397 398 399Used by:894
Symbol 401 GraphicUsed by:411
Symbol 402 GraphicUsed by:411
Symbol 403 GraphicUsed by:411
Symbol 404 GraphicUsed by:411
Symbol 405 GraphicUsed by:411
Symbol 406 GraphicUsed by:411
Symbol 407 GraphicUsed by:411
Symbol 408 GraphicUsed by:411
Symbol 409 GraphicUsed by:411
Symbol 410 GraphicUsed by:411
Symbol 411 MovieClip {enemy1attack}Uses:16 401 402 403 404 405 406 407 408 409 410Used by:894
Symbol 412 GraphicUsed by:422
Symbol 413 GraphicUsed by:422
Symbol 414 GraphicUsed by:422
Symbol 415 GraphicUsed by:422
Symbol 416 GraphicUsed by:422
Symbol 417 GraphicUsed by:422
Symbol 418 GraphicUsed by:422
Symbol 419 GraphicUsed by:422
Symbol 420 GraphicUsed by:422
Symbol 421 GraphicUsed by:422
Symbol 422 MovieClip {enemy1walk}Uses:16 412 413 414 415 416 417 418 419 420 421Used by:894
Symbol 423 GraphicUsed by:436
Symbol 424 GraphicUsed by:436
Symbol 425 GraphicUsed by:436
Symbol 426 GraphicUsed by:436
Symbol 427 GraphicUsed by:436
Symbol 428 GraphicUsed by:436
Symbol 429 GraphicUsed by:436
Symbol 430 GraphicUsed by:436
Symbol 431 GraphicUsed by:436
Symbol 432 GraphicUsed by:436
Symbol 433 GraphicUsed by:436
Symbol 434 GraphicUsed by:436
Symbol 435 GraphicUsed by:436
Symbol 436 MovieClip {enemy8die}Uses:16 423 424 425 426 427 428 429 430 431 432 433 434 435Used by:893
Symbol 437 GraphicUsed by:454
Symbol 438 GraphicUsed by:454
Symbol 439 GraphicUsed by:454
Symbol 440 GraphicUsed by:454
Symbol 441 GraphicUsed by:454
Symbol 442 GraphicUsed by:454
Symbol 443 GraphicUsed by:454
Symbol 444 GraphicUsed by:454
Symbol 445 GraphicUsed by:454
Symbol 446 GraphicUsed by:454
Symbol 447 GraphicUsed by:454
Symbol 448 GraphicUsed by:454
Symbol 449 GraphicUsed by:454
Symbol 450 GraphicUsed by:454
Symbol 451 GraphicUsed by:454
Symbol 452 GraphicUsed by:454
Symbol 453 GraphicUsed by:454
Symbol 454 MovieClip {enemy8attack}Uses:16 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453Used by:893
Symbol 455 GraphicUsed by:471
Symbol 456 GraphicUsed by:471
Symbol 457 GraphicUsed by:471
Symbol 458 GraphicUsed by:471
Symbol 459 GraphicUsed by:471
Symbol 460 GraphicUsed by:471
Symbol 461 GraphicUsed by:471
Symbol 462 GraphicUsed by:471
Symbol 463 GraphicUsed by:471
Symbol 464 GraphicUsed by:471
Symbol 465 GraphicUsed by:471
Symbol 466 GraphicUsed by:471
Symbol 467 GraphicUsed by:471
Symbol 468 GraphicUsed by:471
Symbol 469 GraphicUsed by:471
Symbol 470 GraphicUsed by:471
Symbol 471 MovieClip {enemy8walk}Uses:16 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470Used by:893
Symbol 472 GraphicUsed by:475
Symbol 473 GraphicUsed by:475
Symbol 474 GraphicUsed by:475
Symbol 475 MovieClip {enemy7die}Uses:95 107 97 100 104 89 90 472 91 473 92 474 93Used by:892
Symbol 476 MovieClip {enemy7attack}Uses:95 102 97 109 110 111 112 113 114 117 118 119 120 121 115Used by:892
Symbol 477 MovieClip {enemy6die}Uses:16 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147Used by:889
Symbol 478 GraphicUsed by:496
Symbol 479 GraphicUsed by:496
Symbol 480 GraphicUsed by:496
Symbol 481 GraphicUsed by:496
Symbol 482 GraphicUsed by:496
Symbol 483 GraphicUsed by:496
Symbol 484 GraphicUsed by:496
Symbol 485 GraphicUsed by:496
Symbol 486 GraphicUsed by:496
Symbol 487 GraphicUsed by:496
Symbol 488 GraphicUsed by:496
Symbol 489 GraphicUsed by:496
Symbol 490 GraphicUsed by:496
Symbol 491 GraphicUsed by:496
Symbol 492 GraphicUsed by:496
Symbol 493 GraphicUsed by:496
Symbol 494 GraphicUsed by:496
Symbol 495 GraphicUsed by:496
Symbol 496 MovieClip {enemy6attack}Uses:16 478 479 480 481 482 483 484 485 109 486 487 488 489 490 491 492 493 117 118 119 120 121 494 495Used by:889
Symbol 497 GraphicUsed by:508
Symbol 498 GraphicUsed by:508
Symbol 499 GraphicUsed by:508
Symbol 500 GraphicUsed by:508
Symbol 501 GraphicUsed by:508
Symbol 502 GraphicUsed by:508
Symbol 503 GraphicUsed by:508
Symbol 504 GraphicUsed by:508
Symbol 505 GraphicUsed by:508
Symbol 506 GraphicUsed by:508
Symbol 507 GraphicUsed by:508
Symbol 508 MovieClip {enemy6walk}Uses:16 497 498 499 500 501 502 503 504 505 506 507Used by:889
Symbol 509 GraphicUsed by:516
Symbol 510 GraphicUsed by:516
Symbol 511 GraphicUsed by:516
Symbol 512 GraphicUsed by:516
Symbol 513 GraphicUsed by:516
Symbol 514 GraphicUsed by:516
Symbol 515 GraphicUsed by:516
Symbol 516 MovieClip {enemy5die}Uses:509 510 511 512 513 83 514 515 79 75 71 67 63 59 81 73 61Used by:888
Symbol 517 GraphicUsed by:525
Symbol 518 GraphicUsed by:525
Symbol 519 GraphicUsed by:525
Symbol 520 GraphicUsed by:525
Symbol 521 GraphicUsed by:525
Symbol 522 GraphicUsed by:525
Symbol 523 GraphicUsed by:525
Symbol 524 GraphicUsed by:525
Symbol 525 MovieClip {enemy5attack}Uses:16 55 517 57 48 49 36 50 518 51 52 519 53 520 521 522 523 46 38 42 43 44 524 45 39Used by:888
Symbol 526 GraphicUsed by:536
Symbol 527 GraphicUsed by:536
Symbol 528 GraphicUsed by:536
Symbol 529 GraphicUsed by:536
Symbol 530 GraphicUsed by:536
Symbol 531 GraphicUsed by:536
Symbol 532 GraphicUsed by:536
Symbol 533 GraphicUsed by:536
Symbol 534 GraphicUsed by:536
Symbol 535 GraphicUsed by:536
Symbol 536 MovieClip {enemy5walk}Uses:55 526 57 48 49 36 50 527 51 52 528 53 529 530 531 532 533 534 535Used by:888
Symbol 537 MovieClip {enemy3die}Uses:16 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188Used by:853
Symbol 538 GraphicUsed by:547
Symbol 539 GraphicUsed by:547
Symbol 540 GraphicUsed by:547
Symbol 541 GraphicUsed by:547
Symbol 542 GraphicUsed by:547
Symbol 543 GraphicUsed by:547
Symbol 544 GraphicUsed by:547
Symbol 545 GraphicUsed by:547
Symbol 546 GraphicUsed by:547
Symbol 547 MovieClip {enemy3attack}Uses:16 538 539 540 541 542 543 544 545 546Used by:853
Symbol 548 GraphicUsed by:572
Symbol 549 GraphicUsed by:572
Symbol 550 GraphicUsed by:572
Symbol 551 GraphicUsed by:572
Symbol 552 GraphicUsed by:572
Symbol 553 GraphicUsed by:572
Symbol 554 GraphicUsed by:572
Symbol 555 GraphicUsed by:572
Symbol 556 GraphicUsed by:572
Symbol 557 GraphicUsed by:572
Symbol 558 GraphicUsed by:572
Symbol 559 GraphicUsed by:572
Symbol 560 GraphicUsed by:572
Symbol 561 GraphicUsed by:572
Symbol 562 GraphicUsed by:572
Symbol 563 GraphicUsed by:572
Symbol 564 GraphicUsed by:572
Symbol 565 GraphicUsed by:572
Symbol 566 GraphicUsed by:572
Symbol 567 GraphicUsed by:572
Symbol 568 GraphicUsed by:572
Symbol 569 GraphicUsed by:572
Symbol 570 GraphicUsed by:572
Symbol 571 GraphicUsed by:572
Symbol 572 MovieClip {enemy4die}Uses:16 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571Used by:841
Symbol 573 GraphicUsed by:594
Symbol 574 GraphicUsed by:594
Symbol 575 GraphicUsed by:594
Symbol 576 GraphicUsed by:594
Symbol 577 GraphicUsed by:594
Symbol 578 GraphicUsed by:594
Symbol 579 GraphicUsed by:594
Symbol 580 GraphicUsed by:594
Symbol 581 GraphicUsed by:594
Symbol 582 GraphicUsed by:594
Symbol 583 GraphicUsed by:594
Symbol 584 GraphicUsed by:594
Symbol 585 GraphicUsed by:594
Symbol 586 GraphicUsed by:594
Symbol 587 GraphicUsed by:594
Symbol 588 GraphicUsed by:594
Symbol 589 GraphicUsed by:594
Symbol 590 GraphicUsed by:594
Symbol 591 GraphicUsed by:594
Symbol 592 GraphicUsed by:594
Symbol 593 GraphicUsed by:594
Symbol 594 MovieClip {enemy4attack}Uses:573 574 575 576 16 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593Used by:841
Symbol 595 GraphicUsed by:634
Symbol 596 GraphicUsed by:634
Symbol 597 GraphicUsed by:634
Symbol 598 GraphicUsed by:634
Symbol 599 GraphicUsed by:634
Symbol 600 GraphicUsed by:634
Symbol 601 GraphicUsed by:634
Symbol 602 GraphicUsed by:634
Symbol 603 GraphicUsed by:634
Symbol 604 GraphicUsed by:634
Symbol 605 GraphicUsed by:634
Symbol 606 GraphicUsed by:634
Symbol 607 GraphicUsed by:634
Symbol 608 GraphicUsed by:634
Symbol 609 GraphicUsed by:634
Symbol 610 GraphicUsed by:634
Symbol 611 GraphicUsed by:634
Symbol 612 GraphicUsed by:634
Symbol 613 GraphicUsed by:634
Symbol 614 GraphicUsed by:634
Symbol 615 GraphicUsed by:634
Symbol 616 GraphicUsed by:634
Symbol 617 GraphicUsed by:634
Symbol 618 GraphicUsed by:634
Symbol 619 GraphicUsed by:634
Symbol 620 GraphicUsed by:634
Symbol 621 GraphicUsed by:634
Symbol 622 GraphicUsed by:634
Symbol 623 GraphicUsed by:634
Symbol 624 GraphicUsed by:634
Symbol 625 GraphicUsed by:634
Symbol 626 GraphicUsed by:634
Symbol 627 GraphicUsed by:634
Symbol 628 GraphicUsed by:634
Symbol 629 GraphicUsed by:634
Symbol 630 GraphicUsed by:634
Symbol 631 GraphicUsed by:634
Symbol 632 GraphicUsed by:634
Symbol 633 GraphicUsed by:634
Symbol 634 MovieClip {enemy4walk}Uses:16 595 596 597 598 19 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633Used by:841
Symbol 635 GraphicUsed by:636
Symbol 636 MovieClip {helicopter_fan2}Uses:635Used by:645
Symbol 637 GraphicUsed by:643
Symbol 638 GraphicUsed by:643
Symbol 639 GraphicUsed by:643
Symbol 640 GraphicUsed by:643
Symbol 641 GraphicUsed by:643
Symbol 642 GraphicUsed by:643
Symbol 643 MovieClip {helicopter_fan}Uses:637 638 639 640 641 642Used by:645
Symbol 644 GraphicUsed by:645
Symbol 645 MovieClip {helicopter_move}Uses:643 644 636Used by:646
Symbol 646 MovieClip {helicopter}Uses:645Used by:821
Symbol 647 EditableTextUses:233 242Used by:650
Symbol 648 EditableTextUses:233 242Used by:650
Symbol 649 EditableTextUses:233 242Used by:650
Symbol 650 MovieClip {src.Game.Achievements.RankManager}Uses:647 648 649Used by:1158
Symbol 651 TextUses:4Used by:653
Symbol 652 EditableTextUses:4Used by:653
Symbol 653 Button {StartButton}Uses:651 652Used by:1158
Symbol 654 TextUses:4Used by:656
Symbol 655 EditableTextUses:4Used by:656
Symbol 656 Button {PlayCash}Uses:654 655Used by:1158
Symbol 657 TextUses:4Used by:659
Symbol 658 EditableTextUses:4Used by:659
Symbol 659 Button {CreditsButton}Uses:657 658Used by:1158
Symbol 660 TextUses:4Used by:661
Symbol 661 Button {AchievementsButton}Uses:660Used by:1158
Symbol 662 TextUses:269Used by:666
Symbol 663 GraphicUses:272Used by:666
Symbol 664 TextUses:269Used by:666
Symbol 665 TextUses:269Used by:666
Symbol 666 Button {button_back}Uses:346 662 663 664 665Used by:805
Symbol 667 GraphicUses:272Used by:670
Symbol 668 TextUses:269Used by:670
Symbol 669 GraphicUses:272Used by:670
Symbol 670 Button {button_exclusive}Uses:667 668 669Used by:751
Symbol 671 BitmapUsed by:672
Symbol 672 GraphicUses:671Used by:673
Symbol 673 Button {src.Game.Buttons.FacebookButton}Uses:672Used by:751
Symbol 674 GraphicUses:272Used by:680
Symbol 675 TextUses:274Used by:680
Symbol 676 GraphicUses:272Used by:680
Symbol 677 TextUses:274Used by:680
Symbol 678 GraphicUses:272Used by:680
Symbol 679 TextUses:274Used by:680
Symbol 680 Button {button_achievements}Uses:674 675 676 677 678 679Used by:751
Symbol 681 TextUses:269Used by:685
Symbol 682 GraphicUses:272Used by:685
Symbol 683 TextUses:269Used by:685
Symbol 684 TextUses:269Used by:685
Symbol 685 Button {button_moregames}Uses:340 681 682 683 684Used by:751
Symbol 686 GraphicUses:272Used by:692
Symbol 687 TextUses:269Used by:692
Symbol 688 GraphicUses:272Used by:692
Symbol 689 TextUses:269Used by:692
Symbol 690 GraphicUses:272Used by:692
Symbol 691 TextUses:269Used by:692
Symbol 692 Button {buttons_credits}Uses:686 687 688 689 690 691Used by:751
Symbol 693 GraphicUsed by:694
Symbol 694 MovieClipUses:693Used by:695
Symbol 695 MovieClip {title_move}Uses:694Used by:748
Symbol 696 TextUses:4Used by:698
Symbol 697 EditableTextUses:4Used by:698
Symbol 698 Button {HostGame}Uses:696 697Used by:751 1158
Symbol 699 GraphicUses:272Used by:701
Symbol 700 GraphicUses:272Used by:701
Symbol 701 Button {b_utton_startcopy}Uses:273 275 699 277 700 279Used by:Timeline
Symbol 702 GraphicUsed by:703
Symbol 703 MovieClip {CPMStar}Uses:702Used by:Timeline
Symbol 704 BitmapUsed by:705
Symbol 705 GraphicUses:704Used by:706
Symbol 706 MovieClip {com.mindjolt.api.as3.MindJoltAPI}Uses:705
Symbol 707 GraphicUsed by:715 748
Symbol 708 GraphicUsed by:709 746 756
Symbol 709 MovieClipUses:708Used by:715
Symbol 710 GraphicUsed by:712 713
Symbol 711 GraphicUsed by:712 713
Symbol 712 MovieClipUses:710 711Used by:715 748 758
Symbol 713 MovieClipUses:710 711Used by:715
Symbol 714 GraphicUsed by:715
Symbol 715 MovieClip {bloodysunset_fla.bg_day_new_2}Uses:707 709 712 713 714Used by:735
Symbol 716 GraphicUsed by:721
Symbol 717 GraphicUsed by:721
Symbol 718 GraphicUsed by:721
Symbol 719 GraphicUsed by:721
Symbol 720 GraphicUsed by:721
Symbol 721 MovieClipUses:716 717 718 719 720Used by:735
Symbol 722 GraphicUsed by:727 728
Symbol 723 GraphicUsed by:727 728
Symbol 724 GraphicUsed by:727
Symbol 725 GraphicUsed by:727 728
Symbol 726 GraphicUsed by:727
Symbol 727 MovieClipUses:722 723 724 725 726Used by:735
Symbol 728 MovieClipUses:722 723 725Used by:735
Symbol 729 GraphicUsed by:734
Symbol 730 GraphicUsed by:734
Symbol 731 GraphicUsed by:734
Symbol 732 GraphicUsed by:734
Symbol 733 GraphicUsed by:734
Symbol 734 MovieClipUses:729 730 731 732 733Used by:735
Symbol 735 MovieClip {bg_3}Uses:715 721 727 728 734Used by:738 805 1158  Timeline
Symbol 736 EditableTextUses:233Used by:Timeline
Symbol 737 GraphicUsed by:738
Symbol 738 MovieClip {Background}Uses:737 735Used by:1006 1158
Symbol 739 GraphicUsed by:740
Symbol 740 Button {src.Wrapper.Branding.FrosmoLogo}Uses:739Used by:751 1158
Symbol 741 GraphicUsed by:751
Symbol 742 TextUses:4Used by:751
Symbol 743 FontUsed by:744 808
Symbol 744 TextUses:743Used by:751
Symbol 745 GraphicUsed by:748
Symbol 746 MovieClipUses:708Used by:748
Symbol 747 GraphicUsed by:748
Symbol 748 MovieClip {bloodysunset_fla.bg_Title_18}Uses:707 745 746 712 695 747Used by:750
Symbol 749 GraphicUses:317 318Used by:750
Symbol 750 MovieClip {bloodysunset_fla.bg_Title2_17}Uses:748 749Used by:751
Symbol 751 MovieClip {src.Game.Screens.IntroScreen}Uses:741 698 742 744 750 280 692 685 680 231 222 673 740 670Used by:1158
Symbol 752 EditableTextUses:233 242Used by:753
Symbol 753 MovieClip {src.Game.Screens.Instructions}Uses:752 280Used by:1158
Symbol 754 GraphicUsed by:758
Symbol 755 GraphicUsed by:758
Symbol 756 MovieClipUses:708Used by:758
Symbol 757 GraphicUsed by:758
Symbol 758 MovieClip {bg_2}Uses:754 755 756 712 757Used by:787 793 1158
Symbol 759 GraphicUsed by:760
Symbol 760 MovieClip {bloodysunset_fla.screen_credits_38}Uses:759Used by:787 793
Symbol 761 EditableTextUses:233 242Used by:787
Symbol 762 TextUses:233Used by:767
Symbol 763 GraphicUsed by:767
Symbol 764 TextUses:233Used by:767
Symbol 765 GraphicUsed by:767
Symbol 766 TextUses:233Used by:767
Symbol 767 ButtonUses:307 762 763 764 765 766Used by:787
Symbol 768 GraphicUsed by:774 786
Symbol 769 TextUses:233Used by:774
Symbol 770 GraphicUsed by:774 786
Symbol 771 TextUses:233Used by:774
Symbol 772 GraphicUsed by:774 786
Symbol 773 TextUses:233Used by:774
Symbol 774 ButtonUses:768 769 770 771 772 773Used by:787
Symbol 775 GraphicUsed by:779
Symbol 776 GraphicUsed by:779
Symbol 777 GraphicUsed by:779
Symbol 778 TextUses:233Used by:779
Symbol 779 ButtonUses:775 332 776 333 777 778Used by:787 793
Symbol 780 TextUses:233Used by:782
Symbol 781 TextUses:233Used by:782
Symbol 782 ButtonUses:321 780 328 781 325Used by:787
Symbol 783 TextUses:233Used by:786
Symbol 784 TextUses:233Used by:786
Symbol 785 TextUses:233Used by:786
Symbol 786 ButtonUses:768 783 770 784 772 785Used by:787
Symbol 787 MovieClip {src.Game.Screens.GameOverScreen}Uses:758 760 761 767 774 779 782 786Used by:1158
Symbol 788 GraphicUsed by:792
Symbol 789 TextUses:233Used by:792
Symbol 790 TextUses:233Used by:792
Symbol 791 TextUses:233Used by:792
Symbol 792 MovieClip {bloodysunset_fla.CREDITS_MOVE_45}Uses:788 789 790 791Used by:793
Symbol 793 MovieClip {src.Game.Screens.CreditsScreen}Uses:758 760 779 792Used by:1158
Symbol 794 GraphicUses:272Used by:797
Symbol 795 TextUses:269Used by:797
Symbol 796 EditableTextUses:269 274Used by:797
Symbol 797 MovieClip {src.Game.Achievements.AchievementMsg}Uses:794 795 796Used by:1158
Symbol 798 EditableTextUses:269 274Used by:800
Symbol 799 EditableTextUses:269 274Used by:800
Symbol 800 MovieClip {src.Game.Achievements.AchievementDisplay}Uses:798 799Used by:1158
Symbol 801 GraphicUses:272Used by:802
Symbol 802 MovieClip {AchievementLockedMark}Uses:801Used by:1158
Symbol 803 TextUses:269Used by:804
Symbol 804 MovieClipUses:803Used by:805
Symbol 805 MovieClip {src.Game.Achievements.AchievementsScreen}Uses:735 666 804Used by:1158
Symbol 806 GraphicUses:272Used by:807
Symbol 807 MovieClip {AchivementUnlockedMark}Uses:806Used by:1158
Symbol 808 TextUses:743Used by:809
Symbol 809 Button {src.Wrapper.Branding.GamingOcean}Uses:808Used by:1158
Symbol 810 Sound {BloodySunsetMain}Used by:1158
Symbol 811 GraphicUses:317 318Used by:820
Symbol 812 FontUsed by:813
Symbol 813 EditableTextUses:812Used by:820
Symbol 814 BitmapUsed by:816
Symbol 815 BitmapUsed by:816
Symbol 816 GraphicUses:814 815Used by:820
Symbol 817 BitmapUsed by:819
Symbol 818 BitmapUsed by:819
Symbol 819 GraphicUses:817 818Used by:820
Symbol 820 MovieClip {src.Game.Gameplay.Base.Base}Uses:811 813 816 819Used by:1158
Symbol 821 MovieClip {src.Game.Gameplay.Turrets.HeliTurret}Uses:646Used by:1158
Symbol 822 GraphicUsed by:829
Symbol 823 GraphicUsed by:829
Symbol 824 GraphicUsed by:829
Symbol 825 GraphicUsed by:829
Symbol 826 GraphicUsed by:829
Symbol 827 GraphicUsed by:829
Symbol 828 GraphicUsed by:829
Symbol 829 MovieClip {src.Game.Gameplay.Base.Explosion}Uses:822 823 824 825 826 827 828Used by:1158
Symbol 830 GraphicUsed by:838
Symbol 831 GraphicUsed by:838
Symbol 832 GraphicUsed by:838
Symbol 833 GraphicUsed by:835
Symbol 834 GraphicUsed by:835
Symbol 835 MovieClipUses:833 834Used by:838
Symbol 836 GraphicUsed by:838
Symbol 837 GraphicUsed by:838
Symbol 838 MovieClip {src.Game.Gameplay.Turrets.BaseTurret}Uses:830 831 832 835 836 837Used by:1158
Symbol 839 GraphicUsed by:840
Symbol 840 MovieClip {src.Game.Gameplay.Hero}Uses:839Used by:1158
Symbol 841 MovieClip {src.Game.Gameplay.Enemies.Enemy2}Uses:634 594 572Used by:1158
Symbol 842 GraphicUsed by:852
Symbol 843 GraphicUsed by:852
Symbol 844 GraphicUsed by:852
Symbol 845 GraphicUsed by:852
Symbol 846 GraphicUsed by:852
Symbol 847 GraphicUsed by:852
Symbol 848 GraphicUsed by:852
Symbol 849 GraphicUsed by:852
Symbol 850 GraphicUsed by:852
Symbol 851 GraphicUsed by:852
Symbol 852 MovieClipUses:842 843 844 845 846 847 848 849 850 851Used by:853
Symbol 853 MovieClip {src.Game.Gameplay.Enemies.Enemy3}Uses:852 547 537Used by:1158
Symbol 854 GraphicUsed by:862
Symbol 855 GraphicUsed by:862
Symbol 856 GraphicUsed by:862
Symbol 857 GraphicUsed by:862
Symbol 858 GraphicUsed by:862
Symbol 859 GraphicUsed by:862
Symbol 860 GraphicUsed by:862
Symbol 861 GraphicUsed by:862
Symbol 862 MovieClipUses:16 854 855 856 857 858 859 860 861Used by:887
Symbol 863 GraphicUsed by:872
Symbol 864 GraphicUsed by:872
Symbol 865 GraphicUsed by:872
Symbol 866 GraphicUsed by:872
Symbol 867 GraphicUsed by:872
Symbol 868 GraphicUsed by:872
Symbol 869 GraphicUsed by:872
Symbol 870 GraphicUsed by:872
Symbol 871 GraphicUsed by:872
Symbol 872 MovieClipUses:16 863 864 865 866 867 868 869 870 871Used by:887
Symbol 873 GraphicUsed by:886
Symbol 874 GraphicUsed by:886
Symbol 875 GraphicUsed by:886
Symbol 876 GraphicUsed by:886
Symbol 877 GraphicUsed by:886
Symbol 878 GraphicUsed by:886
Symbol 879 GraphicUsed by:886
Symbol 880 GraphicUsed by:886
Symbol 881 GraphicUsed by:886
Symbol 882 GraphicUsed by:886
Symbol 883 GraphicUsed by:886
Symbol 884 GraphicUsed by:886
Symbol 885 GraphicUsed by:886
Symbol 886 MovieClipUses:16 873 874 875 876 877 878 879 880 881 882 883 884 885Used by:887
Symbol 887 MovieClip {src.Game.Gameplay.Enemies.Enemy4}Uses:862 872 886Used by:1158
Symbol 888 MovieClip {src.Game.Gameplay.Enemies.Enemy5}Uses:536 525 516Used by:1158
Symbol 889 MovieClip {src.Game.Gameplay.Enemies.Enemy6}Uses:508 496 477Used by:1158
Symbol 890 GraphicUsed by:891
Symbol 891 MovieClipUses:890Used by:892
Symbol 892 MovieClip {src.Game.Gameplay.Enemies.Enemy7}Uses:891 476 475Used by:1158
Symbol 893 MovieClip {src.Game.Gameplay.Enemies.Enemy8}Uses:471 454 436Used by:1158
Symbol 894 MovieClip {src.Game.Gameplay.Enemies.WalkingZombie}Uses:422 411 400Used by:1158
Symbol 895 GraphicUsed by:908 922
Symbol 896 GraphicUsed by:908
Symbol 897 GraphicUsed by:908
Symbol 898 GraphicUsed by:908
Symbol 899 GraphicUsed by:908
Symbol 900 GraphicUsed by:908
Symbol 901 GraphicUsed by:908
Symbol 902 GraphicUsed by:908
Symbol 903 GraphicUsed by:908
Symbol 904 GraphicUsed by:908
Symbol 905 GraphicUsed by:908
Symbol 906 GraphicUsed by:908
Symbol 907 GraphicUsed by:908
Symbol 908 MovieClipUses:895 896 897 898 899 900 901 902 903 904 905 906 907Used by:961
Symbol 909 GraphicUsed by:922
Symbol 910 GraphicUsed by:922
Symbol 911 GraphicUsed by:922
Symbol 912 GraphicUsed by:922
Symbol 913 GraphicUsed by:922
Symbol 914 GraphicUsed by:922
Symbol 915 GraphicUsed by:922
Symbol 916 GraphicUsed by:922
Symbol 917 GraphicUsed by:922
Symbol 918 GraphicUsed by:922
Symbol 919 GraphicUsed by:922
Symbol 920 GraphicUsed by:922
Symbol 921 GraphicUsed by:922
Symbol 922 MovieClipUses:895 909 910 911 912 913 914 915 916 917 918 919 920 921Used by:961
Symbol 923 GraphicUsed by:960
Symbol 924 GraphicUsed by:960
Symbol 925 GraphicUsed by:960
Symbol 926 GraphicUsed by:960
Symbol 927 GraphicUsed by:960
Symbol 928 GraphicUsed by:960
Symbol 929 GraphicUsed by:960
Symbol 930 GraphicUsed by:960
Symbol 931 GraphicUsed by:960
Symbol 932 GraphicUsed by:960
Symbol 933 GraphicUsed by:960
Symbol 934 GraphicUsed by:960
Symbol 935 GraphicUsed by:960
Symbol 936 GraphicUsed by:960
Symbol 937 GraphicUsed by:960
Symbol 938 GraphicUsed by:960
Symbol 939 GraphicUsed by:960
Symbol 940 GraphicUsed by:960
Symbol 941 GraphicUsed by:960
Symbol 942 GraphicUsed by:960
Symbol 943 GraphicUsed by:960
Symbol 944 GraphicUsed by:960
Symbol 945 GraphicUsed by:960
Symbol 946 GraphicUsed by:960
Symbol 947 GraphicUsed by:960
Symbol 948 GraphicUsed by:960
Symbol 949 GraphicUsed by:960
Symbol 950 GraphicUsed by:960
Symbol 951 GraphicUsed by:960
Symbol 952 GraphicUsed by:960
Symbol 953 GraphicUsed by:960
Symbol 954 GraphicUsed by:960
Symbol 955 GraphicUsed by:960
Symbol 956 GraphicUsed by:960
Symbol 957 GraphicUsed by:960
Symbol 958 GraphicUsed by:960
Symbol 959 GraphicUsed by:960
Symbol 960 MovieClipUses:923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959Used by:961
Symbol 961 MovieClip {src.Game.Gameplay.Enemies.WalkingZombie1}Uses:908 922 960Used by:1158
Symbol 962 GraphicUsed by:963
Symbol 963 MovieClip {Bullet_gage}Uses:381 382 962Used by:964 1158
Symbol 964 MovieClip {AC_BarFill}Uses:963Used by:967 1158
Symbol 965 GraphicUsed by:967
Symbol 966 EditableTextUses:233Used by:967
Symbol 967 MovieClip {src.Game.Gameplay.UI.AmmoCounter}Uses:965 964 966Used by:1158
Symbol 968 EditableTextUses:274Used by:969
Symbol 969 MovieClip {src.Game.Gameplay.UI.GameplayIntro}Uses:968Used by:1158
Symbol 970 GraphicUsed by:972
Symbol 971 EditableTextUses:233Used by:972
Symbol 972 MovieClip {src.Game.Gameplay.UI.HPCounter}Uses:970 385 971Used by:1158
Symbol 973 GraphicUsed by:975
Symbol 974 TextUses:233Used by:975
Symbol 975 MovieClip {src.Game.Gameplay.UI.UIOther}Uses:973 231 222 974 380 375 370Used by:1158
Symbol 976 Sound {BloodySunsetIntroStinger}Used by:1158
Symbol 977 TextUses:274Used by:992
Symbol 978 GraphicUses:272Used by:984
Symbol 979 TextUses:274Used by:984
Symbol 980 GraphicUses:272Used by:984
Symbol 981 TextUses:274Used by:984
Symbol 982 GraphicUses:272Used by:984
Symbol 983 TextUses:274Used by:984
Symbol 984 Button {ContinueBut}Uses:978 979 980 981 982 983Used by:992 1158
Symbol 985 GraphicUses:272Used by:991
Symbol 986 TextUses:274Used by:991
Symbol 987 GraphicUses:272Used by:991
Symbol 988 TextUses:274Used by:991
Symbol 989 GraphicUses:272Used by:991
Symbol 990 TextUses:274Used by:991
Symbol 991 Button {QuitGameBut}Uses:985 986 987 988 989 990Used by:992 1158
Symbol 992 MovieClip {src.Game.Gameplay.PauseScreen}Uses:267 977 984 991Used by:1158
Symbol 993 GraphicUsed by:1006
Symbol 994 TextUses:242Used by:1006
Symbol 995 GraphicUsed by:1006
Symbol 996 EditableTextUses:233 242Used by:1006
Symbol 997 GraphicUsed by:1006
Symbol 998 GraphicUsed by:1006
Symbol 999 GraphicUsed by:1000
Symbol 1000 MovieClip {Weapon1}Uses:999Used by:1006 1039 1119 1158
Symbol 1001 GraphicUsed by:1006
Symbol 1002 GraphicUsed by:1003
Symbol 1003 MovieClip {Weapon0}Uses:1002Used by:1006 1039 1068 1158
Symbol 1004 GraphicUsed by:1006
Symbol 1005 EditableTextUses:242Used by:1006
Symbol 1006 MovieClip {src.Game.Screens.Character.CharacterScreen}Uses:738 993 994 995 996 997 248 998 1000 1001 1003 1004 1005Used by:1158
Symbol 1007 EditableTextUses:242Used by:1009
Symbol 1008 EditableTextUses:242Used by:1009
Symbol 1009 MovieClip {src.Game.Screens.Character.PerkControl}Uses:362 1007 1008Used by:1158
Symbol 1010 GraphicUsed by:1011
Symbol 1011 Button {PlusControl}Uses:1010Used by:1158
Symbol 1012 TextUses:269Used by:1013
Symbol 1013 MovieClip {src.Game.Screens.DifficultyScreen}Uses:1012 357 351 345Used by:1158
Symbol 1014 GraphicUsed by:1019
Symbol 1015 GraphicUsed by:1019
Symbol 1016 GraphicUsed by:1019
Symbol 1017 GraphicUsed by:1019
Symbol 1018 EditableTextUses:233Used by:1019
Symbol 1019 MovieClip {src.Game.Screens.LevelLostScreen}Uses:1014 1015 1016 1017 339 335 331 326 1018Used by:1158
Symbol 1020 Sound {BloodySunsetLevelPassed}Used by:1158
Symbol 1021 EditableTextUses:233Used by:1024
Symbol 1022 EditableTextUses:233 242Used by:1024
Symbol 1023 EditableTextUses:233 242Used by:1024
Symbol 1024 MovieClip {src.Game.Screens.GamePassedScreen}Uses:320 326 331 335 1021 1022 1023Used by:1158
Symbol 1025 GraphicUsed by:1030
Symbol 1026 GraphicUsed by:1030
Symbol 1027 GraphicUsed by:1029
Symbol 1028 GraphicUsed by:1029
Symbol 1029 MovieClipUses:1027 1028Used by:1030
Symbol 1030 MovieClip {src.Game.Screens.LevelPassedScreen}Uses:1025 1026 1029 313Used by:1158
Symbol 1031 GraphicUsed by:1040
Symbol 1032 FontUsed by:1033 1034 1035
Symbol 1033 EditableTextUses:1032Used by:1040
Symbol 1034 EditableTextUses:1032Used by:1040
Symbol 1035 EditableTextUses:1032Used by:1040
Symbol 1036 GraphicUsed by:1039
Symbol 1037 GraphicUsed by:1039
Symbol 1038 GraphicUsed by:1039
Symbol 1039 MovieClip {JoeyMC}Uses:248 1036 1000 1037 1003 1038Used by:1040 1158
Symbol 1040 MovieClip {src.Game.Screens.GameIntroText}Uses:1031 1033 1034 1035 1039Used by:1158
Symbol 1041 GraphicUsed by:1056
Symbol 1042 EditableTextUses:242Used by:1056
Symbol 1043 TextUses:242Used by:1056
Symbol 1044 EditableTextUses:242Used by:1056
Symbol 1045 GraphicUsed by:1047
Symbol 1046 TextUses:242Used by:1047
Symbol 1047 Button {WeaponsTab}Uses:1045 1046Used by:1051 1158
Symbol 1048 GraphicUsed by:1050
Symbol 1049 TextUses:242Used by:1050
Symbol 1050 Button {MiscTab}Uses:1048 1049Used by:1051 1158
Symbol 1051 MovieClip {src.Game.Screens.Upgrade.TabSelectControl}Uses:1047 1050Used by:1056 1158
Symbol 1052 GraphicUsed by:1055
Symbol 1053 GraphicUsed by:1055
Symbol 1054 GraphicUsed by:1055
Symbol 1055 MovieClip {Hp_tab_shop}Uses:1052 1053 1054Used by:1056 1158
Symbol 1056 MovieClip {src.Game.Screens.Upgrade.UpgradeScreen}Uses:1041 1042 1043 1044 1051 1055 306Used by:1158
Symbol 1057 GraphicUsed by:1058
Symbol 1058 MovieClip {EngineeringIcon}Uses:1057Used by:1158
Symbol 1059 GraphicUsed by:1060
Symbol 1060 MovieClip {HelicopterIcon}Uses:1059Used by:1158
Symbol 1061 GraphicUsed by:1062
Symbol 1062 MovieClip {RepairIcon}Uses:1061Used by:1158
Symbol 1063 GraphicUsed by:1064
Symbol 1064 MovieClip {RepairManIcon}Uses:1063Used by:1158
Symbol 1065 GraphicUsed by:1066
Symbol 1066 MovieClip {TurretIcon}Uses:1065Used by:1158
Symbol 1067 GraphicUsed by:1068
Symbol 1068 MovieClip {WeaponIcon0}Uses:1067 1003Used by:1158
Symbol 1069 GraphicUsed by:1072
Symbol 1070 GraphicUsed by:1071
Symbol 1071 MovieClip {Weapon2}Uses:1070Used by:1072 1158
Symbol 1072 MovieClip {WeaponIcon2}Uses:1069 1071Used by:1158
Symbol 1073 GraphicUsed by:1076
Symbol 1074 GraphicUsed by:1075
Symbol 1075 MovieClip {Weapon4}Uses:1074Used by:1076 1158
Symbol 1076 MovieClip {WeaponIcon4}Uses:1073 1075Used by:1158
Symbol 1077 GraphicUsed by:1080
Symbol 1078 GraphicUsed by:1079
Symbol 1079 MovieClip {Weapon5}Uses:1078Used by:1080 1158
Symbol 1080 MovieClip {WeaponIcon5}Uses:1077 1079Used by:1158
Symbol 1081 GraphicUsed by:1084
Symbol 1082 GraphicUsed by:1083
Symbol 1083 MovieClip {Weapon7}Uses:1082Used by:1084 1158
Symbol 1084 MovieClip {WeaponIcon7}Uses:1081 1083Used by:1158
Symbol 1085 GraphicUsed by:1088
Symbol 1086 GraphicUsed by:1087
Symbol 1087 MovieClip {Weapon8}Uses:1086Used by:1088 1158
Symbol 1088 MovieClip {WeaponIcon8}Uses:1085 1087Used by:1158
Symbol 1089 GraphicUsed by:1092
Symbol 1090 GraphicUsed by:1091
Symbol 1091 MovieClip {Weapon9}Uses:1090Used by:1092 1158
Symbol 1092 MovieClip {WeaponIcon9}Uses:1089 1091Used by:1158
Symbol 1093 GraphicUsed by:1094
Symbol 1094 MovieClip {WeaponIcon10}Uses:1093 248Used by:1158
Symbol 1095 GraphicUsed by:1098
Symbol 1096 GraphicUsed by:1097
Symbol 1097 MovieClip {Weapon11}Uses:1096Used by:1098 1158
Symbol 1098 MovieClip {WeaponIcon11}Uses:1095 1097Used by:1158
Symbol 1099 GraphicUsed by:1103
Symbol 1100 EditableTextUses:233Used by:1103
Symbol 1101 EditableTextUses:242Used by:1103
Symbol 1102 EditableTextUses:242Used by:1103
Symbol 1103 MovieClip {src.Game.Screens.Upgrade.MiscUpgradeControl}Uses:1099 1100 1101 1102Used by:1158
Symbol 1104 GraphicUsed by:1106
Symbol 1105 EditableTextUses:242Used by:1106
Symbol 1106 MovieClip {src.Game.Screens.Upgrade.MiscUpgradeIcon}Uses:1104 1105Used by:1158
Symbol 1107 GraphicUsed by:1110
Symbol 1108 TextUses:242Used by:1110
Symbol 1109 GraphicUsed by:1110
Symbol 1110 MovieClip {src.Game.Screens.Upgrade.MiscUpgradeScreen}Uses:1107 1108 1109Used by:1158
Symbol 1111 GraphicUsed by:1117
Symbol 1112 TextUses:242Used by:1117
Symbol 1113 GraphicUsed by:1117
Symbol 1114 EditableTextUses:242Used by:1117
Symbol 1115 EditableTextUses:233Used by:1117
Symbol 1116 EditableTextUses:242Used by:1117
Symbol 1117 MovieClip {src.Game.Screens.Upgrade.WeaponUpgradeScreen}Uses:1111 1112 1113 298 1114 1115 296 289 1116Used by:1158
Symbol 1118 GraphicUsed by:1119
Symbol 1119 MovieClip {WeaponIcon1}Uses:1118 1000Used by:1158
Symbol 1120 GraphicUsed by:1123
Symbol 1121 GraphicUsed by:1122
Symbol 1122 MovieClip {Weapon3}Uses:1121Used by:1123
Symbol 1123 MovieClip {WeaponIcon3}Uses:1120 1122Used by:1158
Symbol 1124 GraphicUsed by:1127
Symbol 1125 GraphicUsed by:1126
Symbol 1126 MovieClip {Weapon6}Uses:1125Used by:1127
Symbol 1127 MovieClip {WeaponIcon6}Uses:1124 1126Used by:1158
Symbol 1128 Sound {BloodySunsetGameWonStinger}Used by:1158
Symbol 1129 Sound {BloodySunsetGameOverStinger}Used by:1158
Symbol 1130 Sound {BloodySunsetDesert}Used by:1158
Symbol 1131 Sound {PistolSound}Used by:1158
Symbol 1132 Sound {UziSound}Used by:1158
Symbol 1133 Sound {MagnumSound}Used by:1158
Symbol 1134 Sound {ShotgunSound}Used by:1158
Symbol 1135 Sound {SniperSound}Used by:1158
Symbol 1136 Sound {AchievementSound}Used by:1158
Symbol 1137 Sound {BattleStartSound2}Used by:1158
Symbol 1138 Sound {Buy}Used by:1158
Symbol 1139 Sound {ClickSound}Used by:1158
Symbol 1140 Sound {CriticalHitSound}Used by:1158
Symbol 1141 Sound {Enemy1AttackSound}Used by:1158
Symbol 1142 Sound {Enemy2AttackSound}Used by:1158
Symbol 1143 Sound {Enemy2DieSound}Used by:1158
Symbol 1144 Sound {Enemy3AttackSound}Used by:1158
Symbol 1145 Sound {Enemy3DieSound}Used by:1158
Symbol 1146 Sound {Enemy4AttackSound}Used by:1158
Symbol 1147 Sound {Enemy5DieSound}Used by:1158
Symbol 1148 Sound {Enemy6DieSound}Used by:1158
Symbol 1149 Sound {Enemy8DieSound}Used by:1158
Symbol 1150 Sound {MouseOverSound}Used by:1158
Symbol 1151 Sound {ReloadSound}Used by:1158
Symbol 1152 SoundUsed by:1158
Symbol 1153 Sound {ZombieDeath}Used by:1158
Symbol 1154 Sound {ZombieDie1Sound}Used by:1158
Symbol 1155 Sound {ZombieDie2Sound}Used by:1158
Symbol 1156 Sound {StartBattleSound}Used by:1158
Symbol 1157 Sound {Enemy4DieSound}Used by:1158
Symbol 1158 MovieClip {PreloadMC}Uses:738 740 751 753 787 793 797 800 802 805 807 661 659 698 656 653 809 650 810 820 821 829 838 840 841 853 887 888 889 892 893 894 961 964 967 963 969 972 975 758 735 976 992 984 991 1006 1009 1011 1013 1019 1020 1024 1030 1040 1039 1056 1055 1058 1060 1062 1064 1066 1068 1072 1076 1080 1084 1088 1092 1094 1098 1003 1000 1071 1075 1079 1083 1087 1091 248 1097 1051 1050 1047 1103 1106 1110 1117 1119 1123 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157Used by:Timeline

Instance Names

"perc"Frame 1Symbol 736 EditableText
"adBox"Frame 1Symbol 703 MovieClip {CPMStar}
"playB"Frame 1Symbol 701 Button {b_utton_startcopy}
"cashTxt"Symbol 245 MovieClip {src.Game.Gameplay.UI.CashPrizeCounter} Frame 1Symbol 243 EditableText
"but"Symbol 260 MovieClip {src.Game.Screens.Upgrade.PropertyUpgradeControl} Frame 1Symbol 254 Button {PropertyButton}
"butOff"Symbol 260 MovieClip {src.Game.Screens.Upgrade.PropertyUpgradeControl} Frame 1Symbol 256 MovieClip {PropertyButtonMask}
"propertyTxt"Symbol 260 MovieClip {src.Game.Screens.Upgrade.PropertyUpgradeControl} Frame 1Symbol 257 EditableText
"nameTxt"Symbol 260 MovieClip {src.Game.Screens.Upgrade.PropertyUpgradeControl} Frame 1Symbol 258 EditableText
"costTxt"Symbol 260 MovieClip {src.Game.Screens.Upgrade.PropertyUpgradeControl} Frame 1Symbol 259 EditableText
"myTxt"Symbol 281 MovieClip {src.Game.Screens.NameSelectScreen} Frame 1Symbol 271 EditableText
"start"Symbol 281 MovieClip {src.Game.Screens.NameSelectScreen} Frame 1Symbol 280 Button {button_start}
"eqTxt"Symbol 298 MovieClip {EquippedMark} Frame 1Symbol 297 EditableText
"hp"Symbol 385 MovieClip {HP_BarFillcopy} Frame 1Symbol 384 MovieClip {HP_gage}
"rankT"Symbol 650 MovieClip {src.Game.Achievements.RankManager} Frame 1Symbol 647 EditableText
"bestT"Symbol 650 MovieClip {src.Game.Achievements.RankManager} Frame 1Symbol 648 EditableText
"nextT"Symbol 650 MovieClip {src.Game.Achievements.RankManager} Frame 1Symbol 649 EditableText
"tmove"Symbol 748 MovieClip {bloodysunset_fla.bg_Title_18} Frame 1Symbol 695 MovieClip {title_move}
"bg"Symbol 750 MovieClip {bloodysunset_fla.bg_Title2_17} Frame 1Symbol 748 MovieClip {bloodysunset_fla.bg_Title_18}
"hostBut"Symbol 751 MovieClip {src.Game.Screens.IntroScreen} Frame 1Symbol 698 Button {HostGame}
"bg"Symbol 751 MovieClip {src.Game.Screens.IntroScreen} Frame 1Symbol 750 MovieClip {bloodysunset_fla.bg_Title2_17}
"startBut"Symbol 751 MovieClip {src.Game.Screens.IntroScreen} Frame 1Symbol 280 Button {button_start}
"creditsBut"Symbol 751 MovieClip {src.Game.Screens.IntroScreen} Frame 1Symbol 692 Button {buttons_credits}
"cashBut"Symbol 751 MovieClip {src.Game.Screens.IntroScreen} Frame 1Symbol 685 Button {button_moregames}
"acBut"Symbol 751 MovieClip {src.Game.Screens.IntroScreen} Frame 1Symbol 680 Button {button_achievements}
"musicBut"Symbol 751 MovieClip {src.Game.Screens.IntroScreen} Frame 1Symbol 231 MovieClip {src.Game.Buttons.MusicButton}
"exclusiveBut"Symbol 751 MovieClip {src.Game.Screens.IntroScreen} Frame 1Symbol 670 Button {button_exclusive}
"msgT"Symbol 753 MovieClip {src.Game.Screens.Instructions} Frame 1Symbol 752 EditableText
"startB"Symbol 753 MovieClip {src.Game.Screens.Instructions} Frame 1Symbol 280 Button {button_start}
"scoreT"Symbol 787 MovieClip {src.Game.Screens.GameOverScreen} Frame 1Symbol 761 EditableText
"exitB"Symbol 787 MovieClip {src.Game.Screens.GameOverScreen} Frame 1Symbol 767 Button
"acBut"Symbol 787 MovieClip {src.Game.Screens.GameOverScreen} Frame 1Symbol 774 Button
"restartBut"Symbol 787 MovieClip {src.Game.Screens.GameOverScreen} Frame 1Symbol 782 Button
"submitBut"Symbol 787 MovieClip {src.Game.Screens.GameOverScreen} Frame 1Symbol 786 Button
"backBut"Symbol 793 MovieClip {src.Game.Screens.CreditsScreen} Frame 1Symbol 779 Button
"acName"Symbol 797 MovieClip {src.Game.Achievements.AchievementMsg} Frame 1Symbol 796 EditableText
"acName"Symbol 800 MovieClip {src.Game.Achievements.AchievementDisplay} Frame 1Symbol 798 EditableText
"acDesc"Symbol 800 MovieClip {src.Game.Achievements.AchievementDisplay} Frame 1Symbol 799 EditableText
"backB"Symbol 805 MovieClip {src.Game.Achievements.AchievementsScreen} Frame 1Symbol 666 Button {button_back}
"sMC"Symbol 805 MovieClip {src.Game.Achievements.AchievementsScreen} Frame 1Symbol 804 MovieClip
"myTxt"Symbol 820 MovieClip {src.Game.Gameplay.Base.Base} Frame 1Symbol 813 EditableText
"walk"Symbol 894 MovieClip {src.Game.Gameplay.Enemies.WalkingZombie} Frame 1Symbol 422 MovieClip {enemy1walk}
"bg"Symbol 964 MovieClip {AC_BarFill} Frame 1Symbol 963 MovieClip {Bullet_gage}
"acfill"Symbol 967 MovieClip {src.Game.Gameplay.UI.AmmoCounter} Frame 1Symbol 964 MovieClip {AC_BarFill}
"ammoText"Symbol 967 MovieClip {src.Game.Gameplay.UI.AmmoCounter} Frame 1Symbol 966 EditableText
"myTxt"Symbol 969 MovieClip {src.Game.Gameplay.UI.GameplayIntro} Frame 1Symbol 968 EditableText
"acfill"Symbol 972 MovieClip {src.Game.Gameplay.UI.HPCounter} Frame 1Symbol 385 MovieClip {HP_BarFillcopy}
"HPText"Symbol 972 MovieClip {src.Game.Gameplay.UI.HPCounter} Frame 1Symbol 971 EditableText
"musicBut"Symbol 975 MovieClip {src.Game.Gameplay.UI.UIOther} Frame 1Symbol 231 MovieClip {src.Game.Buttons.MusicButton}
"soundBut"Symbol 975 MovieClip {src.Game.Gameplay.UI.UIOther} Frame 1Symbol 222 MovieClip {src.Game.Buttons.SoundButton}
"lowBut"Symbol 975 MovieClip {src.Game.Gameplay.UI.UIOther} Frame 1Symbol 380 MovieClip {LowQualityButton}
"medBut"Symbol 975 MovieClip {src.Game.Gameplay.UI.UIOther} Frame 1Symbol 375 MovieClip {MediumQualityButton}
"highBut"Symbol 975 MovieClip {src.Game.Gameplay.UI.UIOther} Frame 1Symbol 370 MovieClip {HighQualityButton}
"cont"Symbol 992 MovieClip {src.Game.Gameplay.PauseScreen} Frame 1Symbol 984 Button {ContinueBut}
"quit"Symbol 992 MovieClip {src.Game.Gameplay.PauseScreen} Frame 1Symbol 991 Button {QuitGameBut}
"bg"Symbol 1006 MovieClip {src.Game.Screens.Character.CharacterScreen} Frame 1Symbol 738 MovieClip {Background}
"lvlDataTxt"Symbol 1006 MovieClip {src.Game.Screens.Character.CharacterScreen} Frame 1Symbol 996 EditableText
"descTxt"Symbol 1006 MovieClip {src.Game.Screens.Character.CharacterScreen} Frame 1Symbol 1005 EditableText
"plusC"Symbol 1009 MovieClip {src.Game.Screens.Character.PerkControl} Frame 1Symbol 362 Button {buttonperk}
"perkNameTxt"Symbol 1009 MovieClip {src.Game.Screens.Character.PerkControl} Frame 1Symbol 1007 EditableText
"perkLvlTxt"Symbol 1009 MovieClip {src.Game.Screens.Character.PerkControl} Frame 1Symbol 1008 EditableText
"easyB"Symbol 1013 MovieClip {src.Game.Screens.DifficultyScreen} Frame 1Symbol 357 Button {button_easy}
"hardB"Symbol 1013 MovieClip {src.Game.Screens.DifficultyScreen} Frame 1Symbol 351 Button {button_hard}
"normalB"Symbol 1013 MovieClip {src.Game.Screens.DifficultyScreen} Frame 1Symbol 345 Button {button_normal}
"submitMsg"Symbol 1019 MovieClip {src.Game.Screens.LevelLostScreen} Frame 80Symbol 1018 EditableText
"shareBut"Symbol 1024 MovieClip {src.Game.Screens.GamePassedScreen} Frame 1Symbol 326 Button {ShareButton}
"submitBut"Symbol 1024 MovieClip {src.Game.Screens.GamePassedScreen} Frame 1Symbol 331 Button {SumbitButton}
"menuBut"Symbol 1024 MovieClip {src.Game.Screens.GamePassedScreen} Frame 1Symbol 335 Button {QuitGameButton}
"submittedTxt"Symbol 1024 MovieClip {src.Game.Screens.GamePassedScreen} Frame 1Symbol 1021 EditableText
"restT"Symbol 1024 MovieClip {src.Game.Screens.GamePassedScreen} Frame 1Symbol 1022 EditableText
"whileT"Symbol 1024 MovieClip {src.Game.Screens.GamePassedScreen} Frame 1Symbol 1023 EditableText
"myTxt"Symbol 1040 MovieClip {src.Game.Screens.GameIntroText} Frame 1Symbol 1033 EditableText
"myTxt2"Symbol 1040 MovieClip {src.Game.Screens.GameIntroText} Frame 1Symbol 1034 EditableText
"myTxt3"Symbol 1040 MovieClip {src.Game.Screens.GameIntroText} Frame 1Symbol 1035 EditableText
"joeyMC"Symbol 1040 MovieClip {src.Game.Screens.GameIntroText} Frame 1Symbol 1039 MovieClip {JoeyMC}
"weapons"Symbol 1051 MovieClip {src.Game.Screens.Upgrade.TabSelectControl} Frame 1Symbol 1047 Button {WeaponsTab}
"misc"Symbol 1051 MovieClip {src.Game.Screens.Upgrade.TabSelectControl} Frame 1Symbol 1050 Button {MiscTab}
"healthTxt"Symbol 1056 MovieClip {src.Game.Screens.Upgrade.UpgradeScreen} Frame 1Symbol 1042 EditableText
"cashTxt"Symbol 1056 MovieClip {src.Game.Screens.Upgrade.UpgradeScreen} Frame 1Symbol 1044 EditableText
"tabCtrl"Symbol 1056 MovieClip {src.Game.Screens.Upgrade.UpgradeScreen} Frame 1Symbol 1051 MovieClip {src.Game.Screens.Upgrade.TabSelectControl}
"hp"Symbol 1056 MovieClip {src.Game.Screens.Upgrade.UpgradeScreen} Frame 1Symbol 1055 MovieClip {Hp_tab_shop}
"exitBut"Symbol 1056 MovieClip {src.Game.Screens.Upgrade.UpgradeScreen} Frame 1Symbol 306 Button {ExitButton}
"nameTxt"Symbol 1103 MovieClip {src.Game.Screens.Upgrade.MiscUpgradeControl} Frame 1Symbol 1100 EditableText
"costTxt"Symbol 1103 MovieClip {src.Game.Screens.Upgrade.MiscUpgradeControl} Frame 1Symbol 1101 EditableText
"descTxt"Symbol 1103 MovieClip {src.Game.Screens.Upgrade.MiscUpgradeControl} Frame 1Symbol 1102 EditableText
"lvlTxt"Symbol 1106 MovieClip {src.Game.Screens.Upgrade.MiscUpgradeIcon} Frame 1Symbol 1105 EditableText
"eqMark"Symbol 1117 MovieClip {src.Game.Screens.Upgrade.WeaponUpgradeScreen} Frame 1Symbol 298 MovieClip {EquippedMark}
"descTxt"Symbol 1117 MovieClip {src.Game.Screens.Upgrade.WeaponUpgradeScreen} Frame 1Symbol 1114 EditableText
"nameTxt"Symbol 1117 MovieClip {src.Game.Screens.Upgrade.WeaponUpgradeScreen} Frame 1Symbol 1115 EditableText
"buyBut"Symbol 1117 MovieClip {src.Game.Screens.Upgrade.WeaponUpgradeScreen} Frame 1Symbol 296 Button {BuyButton}
"equipBut"Symbol 1117 MovieClip {src.Game.Screens.Upgrade.WeaponUpgradeScreen} Frame 1Symbol 289 Button {EquipButton}
"costTxt"Symbol 1117 MovieClip {src.Game.Screens.Upgrade.WeaponUpgradeScreen} Frame 1Symbol 1116 EditableText

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.




http://swfchan.com/18/89283/info.shtml
Created: 29/3 -2019 01:54:42 Last modified: 29/3 -2019 01:54:42 Server time: 27/04 -2024 20:25:36